/* ==========================================================================
   GSP Theme — Modern Design System
   shadcn-inspired, academic-focused
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root {
  --gsp-primary: #044597;
  --gsp-primary-light: #1a5fc9;
  --gsp-primary-dark: #032d64;
  --gsp-primary-foreground: #ffffff;
  --gsp-background: #ffffff;
  --gsp-foreground: #0f172a;
  --gsp-muted: #f1f5f9;
  --gsp-muted-foreground: #64748b;
  --gsp-border: #e2e8f0;
  --gsp-card: #ffffff;
  --gsp-card-foreground: #0f172a;
  --gsp-accent: #f8fafc;
  --gsp-radius: 12px;
  --gsp-radius-sm: 8px;
  --gsp-radius-lg: 16px;
  --gsp-shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --gsp-shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
  --gsp-shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);
  --gsp-transition: 150ms ease;
  --gsp-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --gsp-max-width: 1200px;
  /* Site header row: wider than main article/journal columns so nav stays one line without in-nav scrollbars */
  --gsp-header-max-width: min(100vw - 24px, 1680px);
}

/* ---------- Base ---------- */
html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}

html, body {
  font-family: var(--gsp-font) !important;
  font-weight: 400;
  color: var(--gsp-foreground);
  background: var(--gsp-background);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--gsp-primary);
  transition: color var(--gsp-transition);
}
a:hover, a:focus {
  color: var(--gsp-primary-light);
}

/* ---------- Header / Navigation ---------- */
.pkp_structure_head {
  background: #fff !important;
  border-bottom: 1px solid var(--gsp-border) !important;
  position: sticky;
  top: 0;
  z-index: 1000;
  height: auto !important;
}

.pkp_head_wrapper,
.has_site_logo .pkp_head_wrapper {
  max-width: var(--gsp-header-max-width);
  width: 100% !important;
  margin: 0 auto;
  padding: 0 24px !important;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0 12px;
  min-height: 72px;
}

.pkp_site_name_wrapper {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.pkp_site_name {
  position: relative !important;
  left: auto !important;
  width: auto !important;
  padding: 0 !important;
}

.pkp_site_name .is_img,
.has_site_logo .pkp_site_name .is_img,
.has_journal_banner .pkp_site_name .is_img {
  display: flex !important;
  align-items: center;
  max-width: 280px !important;
}

.pkp_site_name .is_img img,
.has_site_logo .pkp_site_name .is_img img,
.has_journal_banner .pkp_site_name .is_img img {
  max-height: 44px !important;
  width: auto !important;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

.pkp_site_nav_menu {
  position: static !important;
  background: transparent !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 0;
}

.pkp_navigation_primary_row {
  flex: 1 1 auto;
  min-width: 0;
}

.pkp_navigation_primary_wrapper {
  display: flex;
  align-items: center;
  padding: 0 !important;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.pkp_navigation_primary.pkp_nav_list {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  height: auto !important;
  overflow: visible;
}

.pkp_navigation_primary.pkp_nav_list > li {
  flex-shrink: 0;
}

.pkp_navigation_primary.pkp_nav_list > li:last-child {
  margin-left: 0;
}

@media (min-width: 1200px) {
  .pkp_navigation_primary {
    max-width: none !important;
    text-align: center !important;
    display: flex !important;
  }

  .pkp_navigation_primary > li > a {
    font-size: 15px !important;
    font-weight: 500 !important;
    color: var(--gsp-foreground) !important;
    letter-spacing: 0 !important;
    padding: 8px 9px !important;
    margin: 0 !important;
    border: none !important;
    border-radius: var(--gsp-radius-sm);
    transition: background var(--gsp-transition), color var(--gsp-transition);
    line-height: 1.5 !important;
    white-space: nowrap !important;
  }

  .pkp_navigation_primary > li > a:hover {
    background: var(--gsp-muted) !important;
    color: var(--gsp-foreground) !important;
  }

  .pkp_navigation_primary > li > a:focus {
    background: var(--gsp-muted) !important;
    color: var(--gsp-foreground) !important;
    outline: 2px solid var(--gsp-primary);
    outline-offset: 2px;
  }

  .pkp_head_wrapper {
    padding-top: 0 !important;
    margin-top: 0 !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    column-gap: 12px;
    row-gap: 0;
    align-items: center;
    justify-items: stretch;
  }

  .has_site_logo .pkp_head_wrapper {
    padding-top: 0 !important;
  }

  .pkp_site_name_wrapper {
    grid-column: 1;
    grid-row: 1;
    height: auto !important;
    max-width: none !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
  }

  .pkp_site_nav_menu {
    grid-column: 2;
    grid-row: 1;
  }

  .gsp-uni-logo {
    grid-column: 4;
    grid-row: 1;
    margin: 0 0 0 10px !important;
    justify-self: end;
  }

  .pkp_site_name .is_img img {
    max-height: 44px !important;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
  }

  .pkp_navigation_search_wrapper {
    margin: 0 0 0 8px !important;
    padding: 0 !important;
    border: none !important;
    float: none !important;
    flex-shrink: 0 !important;
  }

  .pkp_navigation_search_wrapper a,
  .pkp_site_nav_menu a.pkp_search_desktop {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    font-size: 15px !important;
    color: var(--gsp-muted-foreground) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--gsp-border) !important;
    border-radius: 50% !important;
    transition: all var(--gsp-transition);
    line-height: 1 !important;
  }

  .pkp_navigation_search_wrapper a:hover,
  .pkp_site_nav_menu a.pkp_search_desktop:hover {
    background: var(--gsp-muted) !important;
    color: var(--gsp-foreground) !important;
    border-color: var(--gsp-border) !important;
  }

  .pkp_navigation_user_wrapper {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    padding: 0 !important;
    z-index: auto !important;
    display: flex !important;
    align-items: center;
    margin-left: 0 !important;
    flex-shrink: 0;
  }

  .pkp_navigation_user {
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
  }

  .pkp_navigation_user > li > a {
    font-size: 14px !important;
    font-weight: 500 !important;
    padding: 6px 16px !important;
    border-radius: 999px !important;
    line-height: 1.5 !important;
    color: var(--gsp-foreground) !important;
    transition: all var(--gsp-transition);
    white-space: nowrap !important;
  }

  /* Logged-out: Register (outlined) + Login (filled blue) */
  .pkp_navigation_user > li.register > a,
  .pkp_navigation_user > li:first-child > a {
    color: var(--gsp-foreground) !important;
    border: 1px solid var(--gsp-border);
    background: transparent !important;
  }

  .pkp_navigation_user > li.register > a:hover,
  .pkp_navigation_user > li:first-child > a:hover {
    background: var(--gsp-muted) !important;
  }

  .pkp_navigation_user > li.login > a,
  .pkp_navigation_user > li:last-child:not(.profile) > a {
    background: var(--gsp-primary) !important;
    color: var(--gsp-primary-foreground) !important;
    margin-right: 0 !important;
  }

  .pkp_navigation_user > li.login > a:hover,
  .pkp_navigation_user > li:last-child:not(.profile) > a:hover {
    background: var(--gsp-primary-light) !important;
  }

  /* Logged-in: profile items — dark text, no blue bg */
  .pkp_navigation_user > li.profile > a {
    color: var(--gsp-foreground) !important;
    background: transparent !important;
    border: 1px solid var(--gsp-border) !important;
  }

  .pkp_navigation_user > li.profile > a:hover {
    background: var(--gsp-muted) !important;
  }

  .pkp_navigation_user > li > a:focus {
    outline: 2px solid var(--gsp-primary) !important;
    outline-offset: 2px !important;
  }
}

/* Mobile-only elements — hidden on desktop */
.pkp_navigation_user_mobile {
  display: none;
}

.mobile-search-btn {
  display: none;
}

.gsp-mobile-search {
  display: none;
}

.gsp-mobile-search__scrim {
  display: none;
}

/* Mobile nav */
@media (max-width: 1199px) {
  .pkp_structure_head {
    position: sticky;
    top: 0;
    z-index: 10000;
  }

  .pkp_head_wrapper {
    padding: 0 16px !important;
    min-height: 56px;
    flex-wrap: nowrap;
    justify-content: space-between !important;
  }

  .pkp_site_name_wrapper {
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    text-align: center !important;
    padding: 0 !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    position: relative !important;
  }

  .pkp_site_nav_toggle {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) scale(0.8) !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: var(--gsp-radius-sm);
    flex-shrink: 0;
    z-index: 1;
  }

  .mobile-search-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: absolute !important;
    right: -8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    color: var(--gsp-foreground);
    font-size: 22px;
    cursor: pointer;
    z-index: 1;
    padding: 0;
    text-decoration: none !important;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-search-btn i {
    transition: transform .25s ease;
  }

  .mobile-search-btn.is-active i {
    transform: rotate(90deg);
  }

  /* Slide-down search bar */
  .gsp-mobile-search {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--gsp-primary);
    padding: 10px 16px 14px;
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: transform .25s cubic-bezier(.4,0,.2,1), opacity .2s ease;
    z-index: 9998;
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
  }

  .gsp-mobile-search.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .gsp-mobile-search__form {
    display: flex;
    gap: 8px;
    align-items: center;
  }

  .gsp-mobile-search__input {
    flex: 1;
    height: 42px;
    padding: 0 14px;
    border: 1.5px solid rgba(255,255,255,.2);
    border-radius: 8px;
    font-size: 15px;
    font-family: var(--gsp-font);
    background: rgba(255,255,255,.12);
    color: #fff;
    outline: none;
    transition: border-color .2s ease, background .2s ease;
    -webkit-appearance: none;
    appearance: none;
  }

  .gsp-mobile-search__input::placeholder {
    color: rgba(255,255,255,.45);
  }

  .gsp-mobile-search__input:focus {
    background: rgba(255,255,255,.18);
    border-color: rgba(255,255,255,.4);
  }

  .gsp-mobile-search__submit {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 8px;
    background: rgba(255,255,255,.15);
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    transition: background .15s ease;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
  }

  .gsp-mobile-search__submit:active {
    background: rgba(255,255,255,.25);
  }

  .gsp-mobile-search__scrim {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.3);
    z-index: 9997;
    -webkit-tap-highlight-color: transparent;
  }

  .gsp-mobile-search__scrim.is-open {
    display: block;
  }

  .pkp_site_name {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    overflow: visible !important;
  }

  .pkp_site_name .is_img {
    display: flex !important;
    align-items: center !important;
    max-width: 220px !important;
  }

  .pkp_site_name .is_img img {
    max-height: 28px !important;
    width: auto !important;
  }

  .pkp_navigation_user_wrapper {
    display: none !important;
  }

  .pkp_head_wrapper {
    position: static !important;
  }

  .pkp_site_nav_menu {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
    background: #044597 !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 24px 20px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
    flex-direction: column;
    z-index: 9999;
    box-sizing: border-box !important;
  }

  .pkp_site_nav_menu--isOpen {
    display: flex !important;
  }

  .pkp_navigation_primary_row {
    width: 100%;
  }

  .pkp_navigation_primary_wrapper {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .pkp_navigation_primary.pkp_nav_list,
  .pkp_navigation_primary {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    text-align: left !important;
  }

  .pkp_navigation_primary > li {
    display: block !important;
    float: none !important;
    width: 100% !important;
  }

  /* Hide the "Search" nav item on mobile — replaced by header icon */
  .pkp_navigation_primary > li.mobile-hide-search,
  #navigationPrimary > li:has(> a[href$="/search"]) {
    display: none !important;
  }

  .pkp_navigation_primary > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 0 !important;
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: #fff !important;
    border-bottom: 1px solid rgba(255,255,255,.15) !important;
    border-radius: 0 !important;
    background: transparent !important;
    white-space: normal !important;
  }

  /* Kill parent theme's [aria-haspopup]::after caret (992–1199px overlap zone) */
  .pkp_nav_list [aria-haspopup]::after,
  .pkp_navigation_primary > li > a::after {
    display: none !important;
    content: none !important;
  }

  .pkp_navigation_primary > li:last-child > a {
    border-bottom: none !important;
  }

  /* Submenu: hidden by default, toggled by JS */
  .pkp_navigation_primary > li > ul {
    position: static !important;
    display: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: rgba(0,0,0,.1) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
    overflow: hidden;
  }

  .pkp_navigation_primary > li.mobile-submenu-open > ul {
    display: block !important;
  }

  .pkp_navigation_primary > li > ul li {
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
  }

  .pkp_navigation_primary > li > ul li:last-child {
    border-bottom: none !important;
  }

  .pkp_navigation_primary > li > ul a {
    display: block !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    border-radius: 0 !important;
    border-bottom: none !important;
    color: rgba(255,255,255,.85) !important;
    margin-bottom: 0 !important;
  }

  .pkp_navigation_primary > li > ul a:hover,
  .pkp_navigation_primary > li > ul a:focus {
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
  }

  /* Chevron toggle for items with submenus — uses inline SVG, no FA dependency */
  .pkp_navigation_primary > li > a .mobile-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: -12px -8px -12px 0;
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
  }
  .pkp_navigation_primary > li > a .mobile-chevron svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: rgba(255,255,255,.55);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .25s ease;
  }
  .pkp_navigation_primary > li.mobile-submenu-open > a .mobile-chevron svg {
    transform: rotate(180deg);
  }

  .pkp_navigation_primary > li > a .gsp-caret {
    display: none !important;
  }

  .pkp_navigation_search_wrapper {
    display: none !important;
  }

  .pkp_navigation_user_mobile {
    display: block !important;
    border-top: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
    position: static !important;
    transform: none !important;
    width: 100% !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_navigation_user.pkp_nav_list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    list-style: none !important;
    text-align: left !important;
    border: none !important;
    float: none !important;
    position: static !important;
    transform: none !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile {
    list-style: none !important;
    list-style-type: none !important;
    display: block !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > a {
    display: block !important;
    padding: 14px 0 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: #fff !important;
    border-radius: 0 !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,.15) !important;
    text-align: left !important;
    text-decoration: none !important;
    line-height: 1.5 !important;
    margin: 0 !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile:last-child > a {
    border-bottom: none !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > ul {
    position: static !important;
    display: block !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > ul > li {
    list-style: none !important;
    display: block !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > ul > li > a {
    display: block !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    color: rgba(255,255,255,.85) !important;
    background: rgba(0,0,0,.08) !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    text-align: left !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > ul > li:last-child > a {
    border-bottom: none !important;
  }

  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > ul > li > a:hover,
  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > ul > li > a:focus {
    background: rgba(255,255,255,.1) !important;
    color: #fff !important;
  }

  /* Hide task_count on the top-level "admin" link, show only in submenu */
  .pkp_navigation_user_mobile .pkp_navigation_user.pkp_nav_list > li.profile > a .task_count {
    display: none !important;
  }

  /* Style the task_count badge inside the submenu Dashboard link */
  .pkp_navigation_user_mobile .task_count {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    margin-left: 8px;
    border-radius: 11px;
    background: rgba(255,255,255,.2) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 600;
    line-height: 1;
    vertical-align: middle;
  }

  .pkp_site_nav_toggle > span {
    border-bottom-color: var(--gsp-foreground) !important;
  }
  .pkp_site_nav_toggle > span:before,
  .pkp_site_nav_toggle > span:after {
    background: var(--gsp-foreground) !important;
  }
}

/* Dropdown menus */

.gsp-caret {
  font-size: 9px !important;
  margin-left: 2px;
  opacity: 0.5;
  transition: transform var(--gsp-transition), opacity var(--gsp-transition);
}

.pkp_nav_list > li:hover .gsp-caret {
  opacity: 0.8;
  transform: rotate(180deg);
}

@media (min-width: 1200px) {
  #navigationPrimary > li > ul {
    min-width: 200px;
    margin: 0 !important;
  }

  #navigationPrimary > li:hover > ul,
  #navigationPrimary > li > ul.show {
    transform: none !important;
    will-change: auto !important;
  }

  #navigationPrimary > li.gsp-dropdown-open > a,
  #navigationPrimary > li.gsp-dropdown-open > a:hover,
  #navigationPrimary > li.gsp-dropdown-open > a:focus {
    background: var(--gsp-muted) !important;
    color: var(--gsp-foreground) !important;
    outline: none !important;
  }
}

.pkp_nav_list ul {
  border-radius: var(--gsp-radius) !important;
  border: 1px solid var(--gsp-border) !important;
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.05) !important;
  padding: 8px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  list-style: none !important;
  text-align: left !important;
}

.pkp_nav_list ul a {
  display: block !important;
  border-radius: 6px !important;
  padding: 10px 16px !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: var(--gsp-foreground) !important;
  border-left: none !important;
  transition: all var(--gsp-transition) !important;
  text-align: left !important;
  margin-bottom: 2px !important;
}

.pkp_nav_list ul li:last-child a {
  margin-bottom: 0 !important;
}

.pkp_nav_list ul a:hover,
.pkp_nav_list ul a:focus {
  background: var(--gsp-muted) !important;
  color: var(--gsp-primary) !important;
  border-color: transparent !important;
}

/* ---------- Journals Mega-Dropdown ---------- */

.gsp-mega-dropdown {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: #fff;
  border-bottom: 1px solid var(--gsp-border);
  box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.12), 0 4px 12px -4px rgba(0, 0, 0, 0.06);
}

.gsp-mega-dropdown__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px 40px 24px;
}

.gsp-mega-dropdown__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px 40px;
}

.gsp-mega-dropdown__col {
  min-width: 0;
}

.gsp-mega-dropdown__heading {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gsp-primary);
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--gsp-primary);
}

.gsp-mega-dropdown__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gsp-mega-dropdown__list li {
  margin: 0;
}

.gsp-mega-dropdown__list a {
  display: block;
  padding: 5px 8px;
  font-size: 13.5px;
  font-weight: 450;
  color: var(--gsp-foreground);
  border-radius: 4px;
  text-decoration: none;
  transition: background var(--gsp-transition), color var(--gsp-transition);
  line-height: 1.4;
}

.gsp-mega-dropdown__list a:hover,
.gsp-mega-dropdown__list a:focus {
  background: var(--gsp-muted);
  color: var(--gsp-primary);
  text-decoration: none;
}

.gsp-mega-dropdown__footer {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--gsp-border);
  text-align: left;
}

.gsp-mega-dropdown__all-link {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  transition: opacity var(--gsp-transition);
}

.gsp-mega-dropdown__all-link:hover {
  opacity: 0.8;
  text-decoration: none;
}

.gsp-mega-dropdown__all-link i {
  margin-left: 4px;
  font-size: 11px;
}

@media (max-width: 1199px) {
  .gsp-mega-dropdown {
    display: none !important;
  }
}

/* ---------- Hero Section ---------- */
.gsp-hero {
  color: var(--gsp-primary-foreground);
  padding: 100px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: #044597;
}

.gsp-hero__slides {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.gsp-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.gsp-hero__slide {
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}

.gsp-hero__slide--active {
  opacity: 1;
}

.gsp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(4, 69, 151, 0.55);
  pointer-events: none;
  z-index: 1;
}

.gsp-hero__inner {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.gsp-hero__title {
  font-size: 52px !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1 !important;
  margin: 0 0 20px !important;
  text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.gsp-hero__subtitle {
  font-size: 20px;
  line-height: 1.6;
  opacity: 0.9;
  margin: 0 0 40px;
  font-weight: 400;
}

.gsp-hero-search {
  display: flex;
  max-width: 560px;
  margin: 0 auto 32px;
  border-radius: 999px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
}

.gsp-hero-search__input {
  flex: 1;
  padding: 14px 24px;
  border: none;
  font-size: 15px;
  color: var(--gsp-foreground);
  background: #fff;
  outline: none;
  min-width: 0;
}

.gsp-hero-search__input::placeholder {
  color: #94a3b8;
}

.gsp-hero-search__btn {
  padding: 14px 24px;
  border: none;
  background: var(--gsp-primary);
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  transition: background var(--gsp-transition);
  display: flex;
  align-items: center;
}

.gsp-hero-search__btn:hover {
  background: var(--gsp-primary-light);
}

.gsp-hero__actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

@media (max-width: 768px) {
  .gsp-hero {
    padding: 48px 20px;
  }
  .gsp-hero__title {
    font-size: 32px !important;
  }
  .gsp-hero__subtitle {
    font-size: 16px;
  }
  .gsp-hero-search {
    margin-bottom: 24px;
  }
  .gsp-hero-search__input {
    padding: 12px 16px;
    font-size: 14px;
  }
  .gsp-hero-search__btn {
    padding: 12px 18px;
  }
  .gsp-hero__actions {
    flex-direction: column;
    align-items: stretch;
    max-width: 280px;
    margin: 0 auto;
  }
  .gsp-hero__actions .gsp-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ---------- Buttons ---------- */
.gsp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 600;
  font-family: var(--gsp-font);
  border-radius: var(--gsp-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--gsp-transition);
  text-decoration: none;
  line-height: 1.5;
}

.gsp-btn--primary {
  background: var(--gsp-primary);
  color: var(--gsp-primary-foreground);
  border-color: var(--gsp-primary);
}
.gsp-btn--primary:hover {
  background: var(--gsp-primary-light);
  color: var(--gsp-primary-foreground);
  border-color: var(--gsp-primary-light);
}

.gsp-btn--outline {
  background: transparent;
  color: var(--gsp-primary-foreground);
  border-color: rgba(255,255,255,.4);
}
.gsp-btn--outline:hover {
  background: rgba(255,255,255,.15);
  color: var(--gsp-primary-foreground);
  border-color: rgba(255,255,255,.6);
}

.gsp-btn--secondary {
  background: var(--gsp-muted);
  color: var(--gsp-foreground);
  border-color: var(--gsp-border);
}
.gsp-btn--secondary:hover {
  background: var(--gsp-border);
  color: var(--gsp-foreground);
}

.gsp-btn--ghost {
  background: transparent;
  color: var(--gsp-primary);
  border-color: transparent;
}
.gsp-btn--ghost:hover {
  background: var(--gsp-muted);
}

.gsp-btn--sm {
  padding: 6px 14px;
  font-size: 13px;
}

/* ---------- Cards ---------- */
.gsp-card {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  overflow: hidden;
  transition: box-shadow var(--gsp-transition), transform var(--gsp-transition);
  display: flex;
  flex-direction: column;
}

.gsp-card:hover {
  box-shadow: var(--gsp-shadow-md);
  transform: translateY(-2px);
}

.gsp-card__img-wrapper {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--gsp-muted);
  border-bottom: 1px solid var(--gsp-border);
  overflow: hidden;
  padding: 16px;
  position: relative;
}

.gsp-card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform var(--gsp-transition);
}

.gsp-card:hover .gsp-card__img {
  transform: scale(1.05);
}

.gsp-card__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.gsp-card__title {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin: 0 0 8px !important;
  color: var(--gsp-card-foreground);
  letter-spacing: -0.01em !important;
}

.gsp-card__title a {
  color: inherit;
  text-decoration: none;
}
.gsp-card__title a:hover {
  color: var(--gsp-primary);
}

.gsp-card__meta {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  margin: 0;
}

.gsp-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.gsp-card__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  margin-top: auto;
  padding-top: 16px;
  transition: gap var(--gsp-transition);
}
.gsp-card__link:hover {
  gap: 8px;
  color: var(--gsp-primary-light);
}

/* ---------- Badges ---------- */
.gsp-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 999px;
  border: 1px solid var(--gsp-border);
  background: var(--gsp-accent);
  color: var(--gsp-muted-foreground);
  line-height: 1.4;
  white-space: nowrap;
}

.gsp-badge--primary {
  background: var(--gsp-primary);
  color: var(--gsp-primary-foreground);
  border-color: var(--gsp-primary);
}

.gsp-badge--success {
  background: #dcfce7;
  color: #166534;
  border-color: #bbf7d0;
}

.gsp-badge--info {
  background: #dbeafe;
  color: #1e40af;
  border-color: #bfdbfe;
}

.gsp-badge--purple {
  background: #ede9fe;
  color: #6d28d9;
  border-color: #ddd6fe;
}

.gsp-badge--teal {
  background: #ccfbf1;
  color: #0f766e;
  border-color: #99f6e4;
}

.gsp-badge--warning {
  background: #fef3c7;
  color: #92400e;
  border-color: #fde68a;
}

/* ---------- Stats Section ---------- */
.gsp-stats {
  background: var(--gsp-muted);
  padding: 48px 24px;
}

.gsp-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: var(--gsp-max-width);
  margin: 0 auto;
}

.gsp-stat {
  text-align: center;
  padding: 20px 16px;
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  box-shadow: 0 4px 6px rgba(0,0,0,0.02);
  transition: transform var(--gsp-transition), box-shadow var(--gsp-transition);
}
.gsp-stat:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 15px rgba(0,0,0,0.05);
}

.gsp-stat__value {
  font-size: 36px;
  font-weight: 700;
  color: var(--gsp-primary);
  letter-spacing: -0.025em;
  line-height: 1.2;
  margin-bottom: 4px;
}

.gsp-stat__label {
  font-size: 14px;
  color: var(--gsp-muted-foreground);
  font-weight: 500;
}

@media (max-width: 768px) {
  .gsp-stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .gsp-stat__value {
    font-size: 28px;
  }
}

@media (max-width: 480px) {
  .gsp-stats__grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* ---------- Indexing Logos (inside Stats bar) ---------- */
.gsp-stats__indexing {
  max-width: var(--gsp-max-width);
  margin: 32px auto 0;
  text-align: center;
  padding-top: 24px;
  border-top: 1px solid var(--gsp-border);
}
.gsp-stats__indexing-label {
  display: block;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #999;
  margin-bottom: 16px;
}
.gsp-stats__indexing-logos {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: center;
  justify-content: center;
}
.gsp-stats__indexing-logos img {
  height: 40px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
}
@media (max-width: 768px) {
  .gsp-stats__indexing-logos {
    gap: 20px;
  }
  .gsp-stats__indexing-logos img {
    height: 36px;
    max-width: 130px;
  }
}

/* ---------- Journal Filter Tabs ---------- */
.gsp-jtabs {
  display: flex;
  gap: 4px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--gsp-border);
  padding-bottom: 0;
}
.gsp-jtab {
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--gsp-font);
  color: var(--gsp-muted-foreground);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
  margin-bottom: -1px;
}
.gsp-jtab:hover {
  color: var(--gsp-foreground);
}
.gsp-jtab.active {
  color: var(--gsp-primary);
  border-bottom-color: var(--gsp-primary);
  font-weight: 600;
}
@media (max-width: 480px) {
  .gsp-jtab {
    padding: 8px 10px;
    font-size: 13px;
  }
}

/* ---------- Recently Published List ---------- */
.gsp-section--recent {
  padding-top: 0;
}
.gsp-recent-list {
  margin-top: 8px;
}
.gsp-recent-row {
  display: block;
  padding: 16px 0;
  border-bottom: 1px solid var(--gsp-border);
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease;
}
.gsp-recent-row:first-child {
  border-top: 1px solid var(--gsp-border);
}
.gsp-recent-row:hover {
  background: var(--gsp-accent);
}
.gsp-recent-row__journal {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #999;
  margin-bottom: 4px;
}
.gsp-recent-row__title {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: var(--gsp-foreground);
  line-height: 1.4;
  margin-bottom: 4px;
}
.gsp-recent-row:hover .gsp-recent-row__title {
  color: var(--gsp-primary);
}
.gsp-recent-row__authors {
  display: block;
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gsp-recent-row__date {
  display: block;
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  margin-top: 4px;
}

/* ---------- Newsletter Band ---------- */
.gsp-newsletter-band {
  background: var(--gsp-primary);
  padding: 48px 24px;
  color: #fff;
}
.gsp-newsletter-band__inner {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.gsp-newsletter-band__title {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 4px;
}
.gsp-newsletter-band__desc {
  font-size: 14px;
  opacity: 0.8;
  margin: 0;
}
.gsp-newsletter-band__form {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.gsp-newsletter-band__input {
  padding: 10px 16px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 4px;
  background: rgba(255,255,255,0.1);
  color: #fff;
  font-size: 14px;
  font-family: var(--gsp-font);
  min-width: 260px;
  outline: none;
}
.gsp-newsletter-band__input::placeholder {
  color: rgba(255,255,255,0.6);
}
.gsp-newsletter-band__input:focus {
  border-color: rgba(255,255,255,0.6);
}
.gsp-newsletter-band__btn {
  padding: 10px 24px;
  background: #fff;
  color: var(--gsp-primary);
  border: none;
  border-radius: 4px;
  font-weight: 600;
  font-size: 14px;
  font-family: var(--gsp-font);
  cursor: pointer;
  transition: background 0.15s ease;
  white-space: nowrap;
}
.gsp-newsletter-band__btn:hover {
  background: #f0f4ff;
}
@media (max-width: 768px) {
  .gsp-newsletter-band__inner {
    flex-direction: column;
    text-align: center;
  }
  .gsp-newsletter-band__form {
    width: 100%;
    flex-direction: column;
  }
  .gsp-newsletter-band__input {
    min-width: 0;
    width: 100%;
  }
  .gsp-newsletter-band__btn {
    width: 100%;
  }
}

/* ---------- Section Components ---------- */
.gsp-section {
  padding: 64px 24px;
  max-width: var(--gsp-max-width);
  margin: 0 auto;
}

.gsp-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}

.gsp-section__title {
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 !important;
}

.gsp-section__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  transition: gap var(--gsp-transition);
}
.gsp-section__link:hover {
  gap: 10px;
}

/* ---------- Journal Card Grid ---------- */
.gsp-journals-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

@media (max-width: 1024px) {
  .gsp-journals-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .gsp-journals-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .gsp-journals-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- About Section ---------- */
.gsp-about {
  background: var(--gsp-muted);
  padding: 64px 24px;
}

.gsp-about__inner {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

.gsp-about__title {
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
  margin: 0 0 16px !important;
}

.gsp-about__text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--gsp-muted-foreground);
  margin: 0 0 24px;
}

.gsp-about__img {
  border-radius: var(--gsp-radius);
  width: 100%;
  height: auto;
  border: 1px solid var(--gsp-border);
}

@media (max-width: 768px) {
  .gsp-about__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ---------- Footer ---------- */
.pkp_structure_footer_wrapper {
  background: var(--gsp-foreground) !important;
  margin-top: 0 !important;
}

.gsp-footer {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 48px 24px 24px;
  color: #cbd5e1;
}

.gsp-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}

.gsp-footer__brand-text {
  font-size: 14px;
  line-height: 1.7;
  color: #94a3b8;
  margin-top: 16px;
}

.gsp-footer__heading {
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #e2e8f0 !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  border: none !important;
}

.gsp-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gsp-footer__links li {
  margin-bottom: 10px;
}

.gsp-footer__links a {
  font-size: 14px;
  color: #94a3b8;
  text-decoration: none;
  transition: color var(--gsp-transition);
}
.gsp-footer__links a:hover {
  color: #ffffff;
}

.gsp-footer__socials {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}

.gsp-footer__socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--gsp-radius-sm);
  background: rgba(255,255,255,.08);
  color: #94a3b8;
  font-size: 16px;
  text-decoration: none;
  transition: all var(--gsp-transition);
}
.gsp-footer__socials a.social--facebook  { color: #60a5fa; }
.gsp-footer__socials a.social--twitter   { color: #e2e8f0; }
.gsp-footer__socials a.social--linkedin  { color: #60a5fa; }
.gsp-footer__socials a.social--wechat    { color: #07C160; }
.gsp-footer__socials a.social--researchgate { color: #40d9cc; }
.gsp-footer__socials a:hover { background: rgba(255,255,255,.15); }
.gsp-footer__socials a.social--facebook:hover  { color: #1877F2; }
.gsp-footer__socials a.social--twitter:hover   { color: #fff; }
.gsp-footer__socials a.social--linkedin:hover  { color: #0A66C2; }
.gsp-footer__socials a.social--wechat:hover    { color: #07C160; }
.gsp-footer__socials a.social--researchgate:hover { color: #00CCBB; }

.gsp-footer__newsletter {
  margin-top: 20px;
}
.gsp-footer__nl-form {
  display: flex;
  gap: 0;
  margin-top: 8px;
}
.gsp-footer__nl-input {
  flex: 1;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.2);
  border-right: none;
  border-radius: 4px 0 0 4px;
  background: rgba(255,255,255,.08);
  color: #fff;
  font-size: 13px;
  font-family: var(--gsp-font);
  outline: none;
  min-width: 0;
}
.gsp-footer__nl-input::placeholder {
  color: rgba(255,255,255,.4);
}
.gsp-footer__nl-input:focus {
  border-color: rgba(255,255,255,.4);
}
.gsp-footer__nl-btn {
  padding: 8px 14px;
  background: var(--gsp-primary-light);
  color: #fff;
  border: 1px solid rgba(255,255,255,.2);
  border-left: none;
  border-radius: 0 4px 4px 0;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.15s ease;
}
.gsp-footer__nl-btn:hover {
  background: var(--gsp-primary);
}

.gsp-footer__bottom {
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  color: #64748b;
  flex-wrap: wrap;
  gap: 12px;
}

.gsp-footer__logo img {
  height: 32px;
  width: auto;
  opacity: .9;
}

@media (max-width: 768px) {
  .gsp-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}
@media (max-width: 480px) {
  .gsp-footer__grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Journals Listing Page (jlp) ---------- */
.jlp {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 32px 24px 80px;
}

/* Stats bar — hidden on journals listing */
.jlp-stats {
  display: none;
}
.jlp-stats__item {
  flex: 1 1 0;
  min-width: 120px;
  background: #fff;
  padding: 18px 16px;
  text-align: center;
}
.jlp-stats__num {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: var(--gsp-foreground);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.jlp-stats__label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gsp-muted-foreground);
  margin-top: 4px;
}

/* Journals listing: left = sidebar | right = .jlp-main (toolbar + grid, same top line) */
#journalsApp {
  display: grid;
  grid-template-columns: minmax(232px, 300px) minmax(0, 1fr);
  grid-template-rows: auto;
  column-gap: 24px;
  align-items: start;
}

/* Left rail: categories + filters — one sticky unit */
#journalsApp > .jlp-sidebar {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  position: sticky;
  top: 84px;
  z-index: 2;
  max-height: calc(100vh - 96px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

#journalsApp > .jlp-sidebar .jlp-tabs-box {
  margin-bottom: 0;
  flex-shrink: 0;
  overflow: visible;
}

#journalsApp > .jlp-sidebar .jlp-controls {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin-bottom: 0;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid var(--gsp-border);
  border-radius: 8px;
  box-sizing: border-box;
  flex-shrink: 0;
}

#journalsApp .jlp-search {
  flex: none;
  width: 100%;
  max-width: none;
}

#journalsApp .jlp-sort-wrap {
  margin-left: 0;
  width: 100%;
}

#journalsApp .jlp-sort {
  width: 100%;
  box-sizing: border-box;
}

#journalsApp > .jlp-main {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

#journalsApp > .jlp-main .jlp-toolbar {
  margin-bottom: 0;
}

/* Category tabs (vertical sidebar) */
.jlp-tabs-box {
  background: #f8fafc;
  border: 1px solid var(--gsp-border);
  border-radius: 8px;
  padding: 4px 8px 0;
  margin-bottom: 20px;
  overflow: visible;
}
.jlp-tabs {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 2px;
  border-bottom: none;
}
.jlp-tab {
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 500;
  color: var(--gsp-muted-foreground);
  background: none;
  border: none;
  border-left: 3px solid transparent;
  margin-bottom: 0;
  cursor: pointer;
  white-space: normal;
  text-align: left;
  line-height: 1.35;
  border-radius: 6px;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.jlp-tab:hover {
  color: var(--gsp-foreground);
  background: rgba(15, 23, 42, 0.04);
}
.jlp-tab:focus-visible {
  outline: 2px solid var(--gsp-primary);
  outline-offset: 2px;
}
.jlp-tab--active {
  color: var(--gsp-primary);
  border-left-color: var(--gsp-primary);
  font-weight: 600;
  background: rgba(4, 69, 151, 0.08);
}
.jlp-tab__count {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  background: #e8ecf1;
  color: var(--gsp-muted-foreground);
  border-radius: 999px;
  padding: 1px 7px;
  margin-left: 4px;
  vertical-align: 1px;
}
.jlp-tab--active .jlp-tab__count {
  background: var(--gsp-primary);
  color: #fff;
}

/* Filter / search row (layout on #journalsApp is column 1, row 2) */
.jlp-controls {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin-bottom: 16px;
}
.jlp-search {
  position: relative;
  flex: 1 1 240px;
  max-width: 360px;
}
.jlp-search__icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gsp-muted-foreground);
  pointer-events: none;
}
.jlp-search__input {
  width: 100%;
  padding: 9px 12px 9px 34px;
  border: 1px solid var(--gsp-border);
  border-radius: 8px;
  font-size: 13px;
  background: #fff;
  color: var(--gsp-foreground);
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.jlp-search__input:focus {
  outline: none;
  border-color: var(--gsp-primary);
  box-shadow: 0 0 0 3px rgba(4, 69, 151, 0.1);
}
.jlp-search__input::placeholder {
  color: var(--gsp-muted-foreground);
}

/* Filter pills */
.jlp-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.jlp-pill {
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 999px;
  border: 1px solid var(--gsp-border);
  background: #fff;
  color: var(--gsp-muted-foreground);
  cursor: pointer;
  transition: all 0.15s;
}
.jlp-pill:hover {
  border-color: var(--gsp-primary);
  color: var(--gsp-primary);
}
.jlp-pill--active:hover,
.jlp-pill--active {
  background: var(--gsp-primary);
  color: #fff;
  border-color: var(--gsp-primary);
}

/* Sort */
.jlp-sort-wrap { margin-left: auto; }
.jlp-sort {
  padding: 8px 32px 8px 12px;
  font-size: 13px;
  border: 1px solid var(--gsp-border);
  border-radius: 8px;
  background: #fff;
  color: var(--gsp-foreground);
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' stroke='%2364748b' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

/* Toolbar */
.jlp-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.jlp-result-count {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
}
.jlp-views {
  display: flex;
  gap: 2px;
  background: var(--gsp-accent);
  border-radius: 6px;
  padding: 2px;
}
.jlp-view-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 28px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--gsp-muted-foreground);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.jlp-view-btn:hover { color: var(--gsp-foreground); }
.jlp-view-btn--active {
  background: #fff;
  color: var(--gsp-foreground);
  box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

/* Grid layout */
.jlp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
}
.jlp-grid--list {
  grid-template-columns: 1fr;
  gap: 0;
}

/* Card — grid view */
.jlp-card {
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 8px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.15s, transform 0.15s;
}
.jlp-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  transform: translateY(-1px);
}
.jlp-card__top {
  display: flex;
  gap: 14px;
  min-height: 100px;
  margin-bottom: 6px;
}
.jlp-card__cover {
  width: 72px;
  height: 100px;
  object-fit: contain;
  background: var(--gsp-accent);
  border-radius: 4px;
  border: 1px solid var(--gsp-border);
  flex-shrink: 0;
  padding: 3px;
}
.jlp-card__info {
  flex: 1;
  min-width: 0;
}
.jlp-card__acro {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: var(--gsp-primary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 3px;
}
.jlp-card__title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--gsp-foreground);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.jlp-card__title a {
  color: inherit;
  text-decoration: none;
}
.jlp-card__title a:hover {
  color: var(--gsp-primary);
}
.jlp-card__eic {
  font-size: 12px;
  color: var(--gsp-muted-foreground);
  margin-top: 4px;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: 18px;
}
.jlp-card__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid #f1f5f9;
}
.jlp-card__badges {
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  align-items: center;
  align-content: center;
  min-height: 52px;
  overflow: hidden;
}
.jlp-card__badges .gsp-badge {
  flex-shrink: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gsp-badge--more {
  background: #e8ecf1;
  color: var(--gsp-muted-foreground);
  border-color: #cbd5e1;
  cursor: help;
  font-weight: 600;
}
.jlp-card__articles {
  font-size: 12px;
  font-weight: 500;
  color: var(--gsp-muted-foreground);
  white-space: nowrap;
  margin-left: auto;
}

/* Card — list view */
.jlp-card--list {
  border-radius: 0;
  border-left: none;
  border-right: none;
  border-bottom: none;
  padding: 14px 20px;
  flex-direction: row;
  align-items: center;
  gap: 16px;
}
.jlp-card--list:first-child {
  border-top: 1px solid var(--gsp-border);
  border-radius: 8px 8px 0 0;
}
.jlp-card--list:last-child {
  border-bottom: 1px solid var(--gsp-border);
  border-radius: 0 0 8px 8px;
}
.jlp-card--list:only-child {
  border-radius: 8px;
  border: 1px solid var(--gsp-border);
}
.jlp-grid--list .jlp-card--list {
  border-top: 1px solid var(--gsp-border);
}
.jlp-card--list:hover {
  transform: none;
  background: var(--gsp-accent);
}
.jlp-card__left {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.jlp-card--list .jlp-card__acro {
  flex-shrink: 0;
  min-width: 56px;
  margin-bottom: 0;
}
.jlp-card--list .jlp-card__title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jlp-card--list .jlp-card__eic {
  margin-top: 0;
  flex-shrink: 0;
  max-width: 200px;
}
.jlp-card--list .jlp-card__badges {
  flex-shrink: 0;
  min-height: 28px;
  max-width: min(360px, 42vw);
  flex-wrap: nowrap;
}
.jlp-card--list .jlp-card__articles {
  flex-shrink: 0;
  min-width: 80px;
  text-align: right;
}

/* Empty state */
.jlp-empty {
  text-align: center;
  color: var(--gsp-muted-foreground);
  padding: 48px 0;
  font-size: 14px;
}

/* Sort label — hidden on desktop, shown on mobile */
.jlp-sort-label { display: none; }

/* Responsive */
@media (max-width: 1024px) {
  .jlp-grid { grid-template-columns: repeat(2, 1fr); }
  .jlp-card--list .jlp-card__eic { display: none; }
}
@media (max-width: 768px) {
  #journalsApp {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    column-gap: 0;
    row-gap: 16px;
  }
  #journalsApp > .jlp-sidebar,
  #journalsApp > .jlp-main {
    grid-column: 1;
    grid-row: auto;
  }
  #journalsApp > .jlp-sidebar {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
    z-index: auto;
  }
  #journalsApp > .jlp-sidebar .jlp-controls {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }
  #journalsApp .jlp-search {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
  }
  .jlp-stats { gap: 1px; }
  .jlp-stats__item { min-width: 80px; padding: 10px 6px; }
  .jlp-stats__num { font-size: 18px; }
  .jlp-stats__label { font-size: 10px; }
  .jlp-controls {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }
  .jlp-search {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
  }
  .jlp-sort-wrap {
    margin-left: 0;
    flex-shrink: 0;
  }
  .jlp-sort-label { display: none; }
  .jlp-pills {
    width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }
  .jlp-pills::-webkit-scrollbar { display: none; }
  .jlp-pill { flex-shrink: 0; }
  .jlp-tabs-box {
    margin-left: -16px;
    margin-right: -16px;
    border-radius: 0;
    border-left: none;
    border-right: none;
    padding: 8px 16px;
    overflow: visible;
  }
}
@media (max-width: 640px) {
  .jlp-grid { grid-template-columns: 1fr; }
  .jlp { padding: 20px 16px 60px; }
  .jlp-card--list .jlp-card__badges { display: none; }
  .jlp-stats__item { min-width: 33.33%; box-sizing: border-box; }
}

/* ---------- Page Header Banner ---------- */
.gsp-page-header {
  background: url('../img/page-header-bg.png') center/cover no-repeat;
  padding: 56px 24px;
  position: relative;
}

.gsp-page-header::before {
  display: none;
}

.gsp-page-header__inner {
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.gsp-page-header__title {
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.2 !important;
  color: #fff !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

.has_journal_banner .gsp-page-header {
  background: #fff !important;
  padding: 56px 24px 8px;
}
.has_journal_banner .gsp-page-header__title {
  color: var(--gsp-foreground) !important;
  font-size: 26px !important;
}

.gsp-journal-banner {
  padding: 0 24px;
  line-height: 0;
}
.gsp-journal-banner img {
  max-width: var(--gsp-max-width);
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* ---------- Content Pages (Static Pages, About, etc.) ---------- */
.gsp-content {
  max-width: 720px;
  margin: 0 auto;
  padding: 48px 24px 80px;
}

/* Breadcrumbs — hidden, nav header provides context */
.cmp_breadcrumbs {
  display: none !important;
}

/* ---------- Prose Typography ---------- */
.gsp-prose h1, .section-text h1, .homepage_about h1,
.page h1:not(.gsp-page-header__title), .editor-box h1 {
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
  margin: 40px 0 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--gsp-border) !important;
  color: var(--gsp-foreground) !important;
}

.gsp-prose h2, .section-text h2, .homepage_about h2, .page h2, .editor-box h2 {
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
  margin: 36px 0 12px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--gsp-border) !important;
  color: var(--gsp-primary) !important;
}

.gsp-prose h3, .section-text h3, .homepage_about h3, .page h3, .editor-box h3 {
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin: 28px 0 8px !important;
  color: var(--gsp-foreground) !important;
}

.gsp-prose h4:not(.section__title), .section-text h4:not(.section__title),
.homepage_about h4:not(.section__title), .page h4:not(.section__title), .editor-box h4 {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin: 24px 0 8px !important;
  color: var(--gsp-foreground) !important;
}

.gsp-prose h5, .gsp-prose h6,
.section-text h5, .section-text h6,
.homepage_about h5, .homepage_about h6,
.page h5, .page h6,
.editor-box h5, .editor-box h6 {
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  margin: 16px 0 8px !important;
  color: var(--gsp-muted-foreground) !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.gsp-prose p, .section-text p, .homepage_about p, .page p, .editor-box p {
  font-size: 15px;
  line-height: 1.8;
  color: #475569;
  margin: 0 0 20px;
}

.gsp-prose ul, .gsp-prose ol,
.section-text ul, .section-text ol,
.homepage_about ul, .homepage_about ol,
.page ul, .page ol {
  font-size: 15px;
  line-height: 1.8;
  color: #475569;
  padding-left: 20px;
  margin: 0 0 20px;
}

.gsp-prose li, .section-text li, .homepage_about li, .page li {
  margin-bottom: 8px;
  padding-left: 4px;
}

.gsp-prose li::marker {
  color: var(--gsp-primary);
}

.gsp-prose strong, .section-text strong {
  color: var(--gsp-foreground);
  font-weight: 600;
}

.gsp-prose a, .section-text a {
  color: var(--gsp-primary);
  text-decoration: none;
  font-weight: 500;
  border-bottom: 1px solid transparent;
  transition: border-color var(--gsp-transition);
}

.gsp-prose a:hover, .section-text a:hover {
  border-bottom-color: var(--gsp-primary);
}

.gsp-prose > *:first-child {
  margin-top: 0 !important;
}

/* Tables */
.gsp-prose table, .section-text table, .gsp-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0 32px;
  font-size: 14px;
  line-height: 1.6;
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  overflow: hidden;
}

.gsp-prose thead, .section-text thead, .gsp-content thead {
  background: var(--gsp-muted);
}

.gsp-prose th, .section-text th, .gsp-content th {
  text-align: left;
  font-weight: 600;
  color: var(--gsp-foreground);
  padding: 12px 16px;
  border-bottom: 2px solid var(--gsp-border);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.gsp-prose td, .section-text td, .gsp-content td {
  padding: 10px 16px;
  border-bottom: 1px solid var(--gsp-border);
  color: #475569;
}

.gsp-prose tr:last-child td, .section-text tr:last-child td, .gsp-content tr:last-child td {
  border-bottom: none;
}

.gsp-prose tbody tr:hover, .section-text tbody tr:hover, .gsp-content tbody tr:hover {
  background: var(--gsp-muted);
}

/* Blockquotes */
.gsp-prose blockquote, .section-text blockquote {
  border-left: 3px solid var(--gsp-primary);
  margin: 24px 0;
  padding: 12px 20px;
  background: var(--gsp-muted);
  border-radius: 0 var(--gsp-radius-sm) var(--gsp-radius-sm) 0;
  color: #475569;
  font-size: 15px;
  line-height: 1.7;
}

/* Horizontal rules */
.gsp-prose hr, .section-text hr {
  border: none;
  border-top: 1px solid var(--gsp-border);
  margin: 32px 0;
}

/* Code inline */
.gsp-prose code, .section-text code {
  background: var(--gsp-muted);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 13px;
  color: var(--gsp-foreground);
}

@media (max-width: 768px) {
  .gsp-page-header {
    padding: 32px 20px;
  }
  .gsp-page-header__title {
    font-size: 24px !important;
  }
  .gsp-content {
    padding: 32px 20px 60px;
  }
  .gsp-prose table, .section-text table, .gsp-content table {
    font-size: 13px;
  }
  .gsp-prose th, .section-text th, .gsp-content th,
  .gsp-prose td, .section-text td, .gsp-content td {
    padding: 8px 10px;
  }
}

/* ---------- Search Page ---------- */
.page_search .homepage_about {
  display: none !important;
}

.page.page_search {
  max-width: 640px;
  margin: 0 auto;
  padding: 48px 24px 80px;
}

.search-form-box {
  background: var(--gsp-card) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius) !important;
  padding: 32px !important;
  margin-bottom: 32px;
  box-shadow: var(--gsp-shadow) !important;
}

.search-form-box .search_input {
  margin-bottom: 24px;
}

.search-form-box .query {
  width: 100% !important;
  padding: 14px 18px !important;
  font-size: 16px !important;
  font-family: var(--gsp-font) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius) !important;
  background: var(--gsp-background) !important;
  color: var(--gsp-foreground) !important;
  outline: none !important;
  transition: border-color var(--gsp-transition), box-shadow var(--gsp-transition);
  box-sizing: border-box !important;
}

.search-form-box .query::placeholder {
  color: var(--gsp-muted-foreground) !important;
  font-weight: 400 !important;
}

.search-form-box .query:focus {
  border-color: var(--gsp-primary) !important;
  box-shadow: 0 0 0 3px rgba(4, 69, 151, 0.1) !important;
}

/* Advanced filters container */
.search-form-box .search_advanced {
  border: none !important;
  border-radius: var(--gsp-radius) !important;
  padding: 24px !important;
  margin: 0 0 24px !important;
  background: var(--gsp-muted) !important;
}

.search-form-box .search_advanced > .legend-title {
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--gsp-muted-foreground) !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
  display: block !important;
}

/* All fieldsets inside advanced */
.search-form-box .search_advanced fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.search-form-box .search_advanced fieldset > legend {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-foreground) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin-bottom: 8px !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Hide individual Year/Month/Day labels inside date fieldsets */
.search-form-box .date_range label {
  display: none !important;
}

/* Date range: stack vertically */
.search-form-box .date_range {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  margin-bottom: 20px !important;
  width: 100% !important;
  float: none !important;
}

.search-form-box .date_range .from,
.search-form-box .date_range .to {
  width: 100% !important;
  float: none !important;
}

.search-form-box .date_range fieldset {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}

.search-form-box .date_range fieldset > legend {
  grid-column: 1 / -1 !important;
  display: block !important;
}

/* All selects and text inputs */
.search-form-box select,
.search-form-box input[type="text"] {
  width: 100% !important;
  height: auto !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  font-family: var(--gsp-font) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius-sm) !important;
  background-color: var(--gsp-card) !important;
  background-image: none !important;
  color: var(--gsp-foreground) !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color var(--gsp-transition), box-shadow var(--gsp-transition);
}

.search-form-box select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  padding-right: 38px !important;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px 8px !important;
}

/* Specific styling for date selects */
.search-form-box .date_range select {
  padding: 10px 32px 10px 8px !important;
  font-size: 13px !important;
  background-position: right 10px center !important;
}

.search-form-box select:focus,
.search-form-box input[type="text"]:focus {
  border-color: var(--gsp-primary) !important;
  box-shadow: 0 0 0 3px rgba(4, 69, 151, 0.1) !important;
}

/* Author + Journal labels */
.search-form-box .author {
  clear: both !important;
  width: 100% !important;
}

.search-form-box .author .label,
.search-form-box .label_contexts {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-foreground) !important;
  margin: 16px 0 8px !important;
}

/* Buttons */
.search-form-box .buttons {
  display: flex !important;
  gap: 12px !important;
  justify-content: center !important;
  padding-top: 4px !important;
}

.search-form-box .buttons button {
  padding: 11px 32px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  font-family: var(--gsp-font) !important;
  border-radius: var(--gsp-radius-sm) !important;
  cursor: pointer !important;
  transition: all var(--gsp-transition) !important;
  line-height: 1.5 !important;
}

.search-form-box .register-btn {
  background: var(--gsp-card) !important;
  color: var(--gsp-foreground) !important;
  border: 1px solid var(--gsp-border) !important;
}

.search-form-box .register-btn:hover {
  background: var(--gsp-muted) !important;
}

.search-form-box .submit-btn {
  background: var(--gsp-primary) !important;
  color: var(--gsp-primary-foreground) !important;
  border: 1px solid var(--gsp-primary) !important;
}

.search-form-box .submit-btn:hover {
  background: var(--gsp-primary-light) !important;
  border-color: var(--gsp-primary-light) !important;
}

/* Results */
.search_results {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.cmp_notification.notice {
  background: var(--gsp-muted) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius) !important;
  padding: 24px !important;
  font-size: 14px !important;
  color: var(--gsp-muted-foreground) !important;
  text-align: center;
}

@media (max-width: 640px) {
  .search-form-box {
    padding: 20px !important;
  }
  .search-form-box .date_range fieldset {
    grid-template-columns: 1fr !important;
  }
}

/* ---------- Pagination ---------- */
.gsp-pagination {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 40px 0 20px !important;
  font-family: var(--gsp-font) !important;
}

.gsp-pagination__info {
  font-size: 13px !important;
  color: var(--gsp-muted-foreground) !important;
}

.gsp-pagination__links {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--gsp-primary) !important;
}

.gsp-pagination__links a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 36px !important;
  height: 36px !important;
  padding: 0 10px !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius-sm) !important;
  background: var(--gsp-card) !important;
  color: var(--gsp-foreground) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  transition: all var(--gsp-transition) !important;
}

.gsp-pagination__links a:hover {
  border-color: var(--gsp-primary) !important;
  color: var(--gsp-primary) !important;
  background: rgba(4, 69, 151, 0.04) !important;
}

/* Also keep cmp_pagination for other pages */
.cmp_pagination {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin: 32px 0 16px !important;
  font-family: var(--gsp-font) !important;
  font-size: 14px !important;
}

.cmp_pagination .current {
  font-weight: 600 !important;
  color: var(--gsp-foreground) !important;
}

.cmp_pagination a {
  padding: 8px 16px !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius-sm) !important;
  background: var(--gsp-card) !important;
  color: var(--gsp-foreground) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  transition: all var(--gsp-transition) !important;
}

.cmp_pagination a:hover {
  border-color: var(--gsp-primary) !important;
  color: var(--gsp-primary) !important;
}

/* ---------- Journal Homepage: Intro & Cover Sections ---------- */
.journal-intro-top {
  padding: 0 24px;
}

.cover-box {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  display: flex;
  gap: 32px;
  padding: 28px 0 0;
}

.cover-box > .max-width860 {
  flex: 1;
  min-width: 0;
}

.journal-cover-box {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.journal-cover-box .journal-cover {
  flex-shrink: 0;
  width: 180px;
  float: none;
}

.journal-cover-box .journal-cover img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--gsp-radius-sm);
  border: 1px solid var(--gsp-border);
  box-shadow: var(--gsp-shadow);
}

.journal-cover-box .journal-cover-info {
  flex: 1;
  min-width: 0;
  float: none;
}

.journal-cover-box .journal-cover-info h3 {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
  color: var(--gsp-foreground);
}

.cover-chief {
  margin-bottom: 16px;
}

.cover-chief .cover-chief .chief-label,
.cover-chief .chief-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--gsp-muted-foreground);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 4px;
}

.cover-chief .chief-name {
  font-size: 15px;
  font-weight: 500;
  color: var(--gsp-foreground);
  line-height: 1.4;
}

.cover-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.editorial-board {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  padding: 8px 16px;
  border: 1.5px solid var(--gsp-primary);
  border-radius: var(--gsp-radius-sm);
  transition: all var(--gsp-transition);
}

.editorial-board:hover {
  background: var(--gsp-primary);
  color: var(--gsp-primary-foreground);
}

.editorial-board i {
  font-size: 12px;
  transition: transform var(--gsp-transition);
}

.editorial-board:hover i {
  transform: translateX(3px);
}

.submit-article {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 600;
  color: var(--gsp-primary-foreground);
  background: var(--gsp-primary);
  border-radius: 999px;
  text-decoration: none;
  transition: all var(--gsp-transition);
}

.submit-article:hover {
  background: var(--gsp-primary-light);
  color: var(--gsp-primary-foreground);
}

.submit-article i {
  font-size: 11px;
}

.ip-box {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font-size: 13px;
  color: var(--gsp-muted-foreground);
}

.ip-box svg {
  width: 20px;
  height: 20px;
  fill: var(--gsp-muted-foreground);
}

.right-wrap {
  flex-shrink: 0;
  width: 280px;
}

/* --- Institutional Access Strip (journal sidebar) --- */
.institution-access-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: var(--gsp-radius);
  margin-bottom: 12px;
  font-size: 12.5px;
  line-height: 1;
}
.institution-access-strip--granted {
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
}
.institution-access-strip--open-access {
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
}
.institution-access-strip--open-access > i {
  color: #16a34a;
  font-size: 14px;
  flex-shrink: 0;
}
.institution-access-strip--open-access .institution-access-strip__label {
  color: #15803d;
  font-weight: 600;
  white-space: nowrap;
}
.institution-access-strip--denied {
  background: #fef2f2;
  border: 1px solid #fecaca;
  flex-wrap: wrap;
  line-height: 1.4;
}
.institution-access-strip--denied .institution-access-strip__sep {
  display: none;
}
.institution-access-strip--granted > i {
  color: #16a34a;
  font-size: 14px;
  flex-shrink: 0;
}
.institution-access-strip--denied > i {
  color: #dc2626;
  font-size: 14px;
  flex-shrink: 0;
}
.institution-access-strip__name {
  color: #1e293b;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.institution-access-strip__sep {
  color: #cbd5e1;
  flex-shrink: 0;
}
.institution-access-strip__ip {
  color: #94a3b8;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11.5px;
  white-space: nowrap;
  flex-shrink: 0;
}
.institution-access-strip__label {
  font-size: 12px;
  color: #dc2626;
  font-weight: 500;
  white-space: nowrap;
}
.institution-access-strip__help {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
  vertical-align: middle;
  cursor: help;
}
.institution-access-strip__help > i {
  font-size: 12px;
  color: #9ca3af;
  transition: color 0.15s;
}
.institution-access-strip__help:hover > i,
.institution-access-strip__help:focus > i {
  color: #6b7280;
}
.institution-access-strip__tooltip {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 260px;
  padding: 12px 14px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.55;
  color: #374151;
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius-sm);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  z-index: 100;
  white-space: normal;
}
.institution-access-strip__tooltip a {
  color: var(--gsp-primary);
  text-decoration: underline;
  font-weight: 500;
}
.institution-access-strip__help:hover .institution-access-strip__tooltip,
.institution-access-strip__help:focus .institution-access-strip__tooltip {
  display: block;
}

.impact-factor-box {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 0;
  margin-bottom: 20px;
  overflow: hidden;
}

.impact-factor-box__title {
  font-size: 14px;
  font-weight: 700;
  color: var(--gsp-foreground);
  padding: 16px 20px;
  border-bottom: 1px solid var(--gsp-border);
  background: var(--gsp-muted);
  margin: 0;
}

.impact-factor-box--metrics {
  border: none;
  background: transparent;
}

.impact-factor-box--metrics .impact-factor-box__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--gsp-primary);
  background: transparent;
  border-bottom: 3px solid var(--gsp-primary);
  padding: 0 0 10px 0;
}

.impact-factor-box--metrics .impact-factor-box__body {
  padding: 0;
}

.impact-factor-box--metrics .impact-factor--metric {
  border-bottom: 1px solid var(--gsp-border);
  padding: 14px 0;
}

.impact-factor-box--metrics .impact-factor--metric:last-child {
  border-bottom: none;
}

.impact-factor-box__body {
  padding: 4px 0;
}

.impact-factor {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 20px;
  border-bottom: 1px solid var(--gsp-border);
  font-size: 13px;
  margin: 0;
}

.impact-factor:last-child {
  border-bottom: none;
}

.impact-factor span:first-child {
  color: var(--gsp-muted-foreground);
  font-weight: 600;
}

.impact-factor span:last-child {
  font-weight: 600;
  color: var(--gsp-foreground);
  font-size: 14px;
}

.impact-factor--metric {
  justify-content: flex-start;
  gap: 14px;
  align-items: center;
  padding: 14px 20px;
}

.impact-factor__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--gsp-muted);
  color: var(--gsp-primary);
  font-size: 15px;
  flex-shrink: 0;
}

.impact-factor__detail {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.impact-factor__label {
  font-size: 13px;
  color: var(--gsp-primary);
  font-weight: 600;
}

.impact-factor__value {
  font-size: 18px;
  font-weight: 700;
  color: var(--gsp-foreground);
  line-height: 1.2;
}

.socials {
  margin-bottom: 20px;
}

.cover-social-row {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  margin-top: 16px;
}
.cover-social-row .socials--inline {
  margin: 0;
}
.cover-social-row .socials--inline h6 {
  margin-bottom: 6px;
}
.cover-social-row__alerts {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  white-space: nowrap;
  padding: 6px 14px;
  border: 1px solid var(--gsp-border);
  border-radius: 20px;
  transition: background 0.15s, border-color 0.15s;
}
.cover-social-row__alerts:hover {
  background: #f0f4f8;
  border-color: var(--gsp-primary);
  color: var(--gsp-primary);
  text-decoration: none;
}

.socials h6 {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gsp-muted-foreground);
  margin: 0 0 12px;
}

.socials ul {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.socials ul a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--gsp-radius-sm);
  border: 1px solid var(--gsp-border);
  color: var(--gsp-muted-foreground);
  font-size: 16px;
  text-decoration: none;
  transition: all var(--gsp-transition);
}

.socials ul a.social--facebook  { color: #1877F2; border-color: #1877F2; }
.socials ul a.social--twitter   { color: #000;    border-color: #000; }
.socials ul a.social--linkedin  { color: #0A66C2; border-color: #0A66C2; }
.socials ul a.social--wechat    { color: #07C160; border-color: #07C160; }
.socials ul a.social--researchgate { color: #00CCBB; border-color: #00CCBB; }
.socials ul a:hover { color: #fff !important; }
.socials ul a.social--facebook:hover  { background: #1877F2; border-color: #1877F2; }
.socials ul a.social--twitter:hover   { background: #000;    border-color: #000; }
.socials ul a.social--linkedin:hover  { background: #0A66C2; border-color: #0A66C2; }
.socials ul a.social--wechat:hover    { background: #07C160; border-color: #07C160; }
.socials ul a.social--researchgate:hover { background: #00CCBB; border-color: #00CCBB; }

.app-sign-up-for-alerts__container {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: var(--gsp-muted);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  text-decoration: none;
  transition: box-shadow var(--gsp-transition);
}

.app-sign-up-for-alerts__container:hover {
  box-shadow: var(--gsp-shadow);
}

.app-sign-up-for-alerts__heading {
  font-size: 14px;
  font-weight: 600;
  color: var(--gsp-foreground);
  margin: 0 0 4px;
}

.app-sign-up-for-alerts__text {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  margin: 0;
}

.app-sign-up-for-alerts__icon-container {
  flex-shrink: 0;
}

.app-sign-up-for-alerts__icon {
  width: 24px;
  height: 24px;
  fill: var(--gsp-primary);
}

.page_index_journal > .homepage_about:not(.current_issue):not(.gsp-home-indexing-wrap),
.page_index_journal > .max-width860 > .homepage_about {
  max-width: none;
  margin: 0;
  padding: 0 24px;
  box-sizing: border-box;
}

/* Indexing strip: column padding comes only from .j-cover-box > .max-width860 (no extra section inset) */
.page_index_journal .gsp-home-indexing-wrap {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Indexing logo grid */
.gsp-indexing-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 24px 32px;
  padding: 8px 0 20px;
}

.gsp-indexing-logos__item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 4px 8px;
  box-sizing: border-box;
}

.gsp-indexing-logos__item img {
  display: block;
  max-height: 36px;
  max-width: 160px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1) opacity(0.7);
  transition: filter 0.2s;
}

.gsp-indexing-logos__item:hover img {
  filter: grayscale(0) opacity(1);
}

.gsp-indexing-logos__item--dark {
  background: #1a1a1a;
  border-radius: 6px;
  padding: 6px 12px;
}

.gsp-indexing-logos__item--dark img {
  filter: grayscale(1) brightness(1.6) opacity(0.7);
}

.gsp-indexing-logos__item--dark:hover img {
  filter: grayscale(0) opacity(1);
}

.gsp-indexing-text {
  border-top: 1px solid var(--gsp-border);
  padding-top: 14px !important;
  font-size: 13px !important;
  color: var(--gsp-muted-foreground);
  line-height: 1.8;
}

.gsp-indexing-text p {
  font-size: 13px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 !important;
}

@media (max-width: 640px) {
  .gsp-indexing-logos {
    gap: 16px 24px;
  }
  .gsp-indexing-logos__item img {
    max-height: 28px;
    max-width: 120px;
  }
}

.aims-box {
  padding: 0;
  margin-top: -10px;
}

.aims-box .editor-box p {
  text-align: left !important;
}

.aims-collapse {
  position: relative;
  max-height: 160px;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.aims-collapse.is-expanded {
  max-height: 2000px;
}
.aims-collapse__fade {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff);
  pointer-events: none;
  transition: opacity 0.3s;
}
.aims-collapse.is-expanded .aims-collapse__fade {
  opacity: 0;
}
.aims-collapse__toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 0;
  background: none;
  border: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  cursor: pointer;
  transition: color 0.15s;
}
.aims-collapse__toggle:hover {
  color: #033576;
}
.aims-collapse__toggle i {
  font-size: 11px;
  transition: transform 0.3s;
}
.aims-collapse__toggle.is-expanded i {
  transform: rotate(180deg);
}

.aims-box .section__title {
  font-size: 18px !important;
}

/* Current Issue Cover */
.j-cover-box {
  background: var(--gsp-muted);
  padding: 36px 24px;
  margin-bottom: 0;
}

.j-cover-box .max-width860 {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/*
 * Journal homepage — Current Issue gray bar + accordion strips.
 * The gray .j-cover-box background spans the full page width.  Strip boxes
 * (.gsp-home-section / .gsp-collapsible-box--issue-toc) must visually match
 * that width so their left/right edges align with the gray bar.
 *
 * Strategy: strips get no max-width / no extra padding on .max-width860 so
 * the visible white boxes stretch to match the gray background.  The gray bar
 * keeps its own 24px padding (sets content inset).
 */

/* Strip wrappers: transparent, flush, full-width */
.page_index_journal .j-cover-box--strip {
  background: transparent;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Inside strips, .max-width860 becomes a pass-through — no constraints */
.page_index_journal .j-cover-box--strip .max-width860 {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* Small gap between Current Issue gray bar and the first strip (Articles) */
.page_index_journal .current_issue > .j-cover-box--strip {
  margin-top: 14px;
  padding-top: 0;
}

/* Bottom margin for the last strip (indexing) before footer */
.page_index_journal .gsp-home-indexing-wrap .j-cover-box--strip {
  margin-bottom: 48px;
}

/* White accordion boxes: full-width, box-sizing */
.page_index_journal .j-cover-box--strip .gsp-home-section,
.page_index_journal .j-cover-box--strip .obj_issue_toc .gsp-collapsible-box--issue-toc {
  max-width: 100%;
  box-sizing: border-box;
}

/* Horizontal padding on the gray bar's .max-width860 insets content to match strip toggle padding */
.page_index_journal section.current_issue > .j-cover-box:not(.j-cover-box--strip) .max-width860 {
  max-width: var(--gsp-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

.obj_issue_toc__preview-note {
  margin-top: 30px;
}
.page_index_journal .current_issue .obj_issue_toc__preview-note {
  margin-bottom: 24px;
}
.page_index_journal .current_issue .obj_issue_toc .sections {
  margin-bottom: 0 !important;
}

.j-cover-wrap {
  display: flex;
  align-items: center;
  gap: 32px;
}

.j-cover-wrap > img {
  display: block;
  width: 170px;
  height: auto;
  flex-shrink: 0;
  border-radius: var(--gsp-radius-sm);
  border: 1px solid var(--gsp-border);
  box-shadow: var(--gsp-shadow);
}

.j-info-wrap {
  flex: 1;
  min-width: 0;
}

.j-info-wrap .latest {
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gsp-primary);
  margin-bottom: 10px;
}

.j-info-wrap .issue-wrap {
  margin-bottom: 16px;
}

.j-info-wrap .issue-wrap span {
  font-size: 16px;
  color: var(--gsp-muted-foreground);
  margin-right: 10px;
}

.j-info-wrap .issue-wrap a {
  font-size: 22px;
  font-weight: 700;
  color: var(--gsp-foreground);
  text-decoration: none;
}

.j-info-wrap .issue-wrap a:hover {
  color: var(--gsp-primary);
}

.j-info-wrap .issue-read-more {
  font-size: 16px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
}

.j-info-wrap .issue-read-more:hover {
  color: var(--gsp-primary-light);
}

/* Homepage image */
.homepage_image {
  margin: 0;
}

.homepage_image img {
  display: block;
  width: 100%;
  max-height: 300px;
  object-fit: cover;
}

.max-width860 {
  max-width: 860px;
}

/*
 * Journal homepage: announcements row — align with j-cover column when possible
 */
.page_index_journal > .max-width860 {
  max-width: var(--gsp-max-width);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
  margin-bottom: 16px;
}

@media (max-width: 991px) {
  .cover-box {
    flex-direction: column;
  }
  .right-wrap {
    width: 100%;
  }
}

@media (max-width: 640px) {
  .max-width860 {
    padding-left: 16px;
    padding-right: 16px;
  }
  .journal-cover-box {
    flex-direction: column;
  }
  .journal-cover-box .journal-cover {
    width: 140px;
  }
  .j-cover-wrap {
    flex-direction: column;
    align-items: flex-start;
  }
  .j-cover-wrap > img {
    width: 120px;
  }
}

/* ---------- Editorial Masthead ---------- */
.gsp-masthead {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 40px 24px 80px;
}

.gsp-masthead__section {
  margin-bottom: 48px;
}

.gsp-masthead__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}

.gsp-masthead__role-title {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 !important;
  padding-left: 16px !important;
  border-left: 3px solid var(--gsp-primary) !important;
  line-height: 1.3 !important;
}

.gsp-masthead__count {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  background: rgba(4, 69, 151, 0.06);
  border: 1px solid rgba(4, 69, 151, 0.15);
  border-radius: 999px;
  white-space: nowrap;
}

.gsp-masthead__reviewer-desc {
  font-size: 14px;
  color: var(--gsp-muted-foreground);
  margin: -8px 0 24px;
  line-height: 1.6;
}

.gsp-masthead__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.gsp-masthead__card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  transition: box-shadow var(--gsp-transition);
}

.gsp-masthead__card:hover {
  box-shadow: var(--gsp-shadow-md);
}

.gsp-masthead__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--gsp-primary-dark);
  color: var(--gsp-primary-foreground);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  overflow: hidden;
}
.gsp-masthead__avatar--photo {
  background: #e5e7eb;
}
.gsp-masthead__avatar--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gsp-masthead__info {
  flex: 1;
  min-width: 0;
}

.gsp-masthead__name {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--gsp-primary) !important;
  margin: 0 0 4px !important;
  line-height: 1.4 !important;
  display: flex;
  align-items: center;
  gap: 6px;
}

.gsp-masthead__orcid,
.gsp-masthead__scholar {
  display: inline-flex;
  flex-shrink: 0;
  margin-left: 4px;
  vertical-align: middle;
}

.gsp-masthead__orcid img,
.gsp-masthead__orcid svg {
  width: 16px;
  height: 16px;
}

.gsp-masthead__scholar img {
  width: 16px;
  height: 16px;
}
.gsp-masthead__scholar svg {
  width: 16px;
  height: 16px;
  fill: #4285F4;
}

.gsp-masthead__email {
  font-size: 12px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 0 4px !important;
}
.gsp-masthead__email a {
  color: var(--gsp-muted-foreground);
  text-decoration: none;
}
.gsp-masthead__email a:hover {
  color: var(--gsp-primary);
  text-decoration: underline;
}
.gsp-masthead__email i {
  font-size: 10px;
  margin-right: 2px;
}
.gsp-masthead__affiliation {
  font-size: 13px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 0 6px !important;
  line-height: 1.5 !important;
}
.gsp-masthead__research {
  font-size: 12px !important;
  color: #94a3b8 !important;
  margin: 4px 0 0 !important;
  font-style: italic;
  line-height: 1.4;
}
.gsp-masthead__research strong {
  font-style: normal;
  color: #64748b;
}

.gsp-masthead__country {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--gsp-muted-foreground);
  padding: 2px 10px;
  background: var(--gsp-muted);
  border: 1px solid var(--gsp-border);
  border-radius: 999px;
}

/* Editorial History HTML content styled as cards */
.gsp-masthead__editorial-content {
  max-width: 100%;
}

.gsp-masthead__editorial-content .editorial-nav {
  margin-top: 40px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--gsp-border);
}

.gsp-masthead__editorial-content .editorial-nav:first-child {
  margin-top: 0;
}

.gsp-masthead__editorial-content .editorial-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gsp-masthead__editorial-content .editorial-nav li a,
.gsp-masthead__editorial-content .editorial-nav p a {
  font-size: 22px;
  font-weight: 700;
  color: var(--gsp-foreground);
  padding-left: 16px;
  border-left: 3px solid var(--gsp-primary);
  text-decoration: none;
  cursor: default;
  display: block;
  line-height: 1.3;
}

.gsp-masthead__editorial-content .editor-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.gsp-masthead__editorial-content .editor-content {
  display: flex;
  flex-direction: column;
  padding: 20px;
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  transition: box-shadow var(--gsp-transition);
}

.gsp-masthead__editorial-content .editor-content:hover {
  box-shadow: var(--gsp-shadow-md);
}

.gsp-masthead__editorial-content .editor-content > a {
  text-decoration: none;
  margin-bottom: 6px;
}

.gsp-masthead__editorial-content .editor-content > a strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--gsp-primary);
  line-height: 1.4;
}

.gsp-masthead__editorial-content .editor-content > a:hover strong {
  color: var(--gsp-primary-light);
}

.gsp-masthead__editorial-content .editor-content .email {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  margin: 0 0 6px;
  line-height: 1.5;
  word-break: break-all;
}

.gsp-masthead__editorial-content .editor-content .email::before {
  content: '\f0e0';
  font-family: var(--fa-family, 'Font Awesome 7 Free');
  font-weight: 400;
  margin-right: 6px;
  font-size: 11px;
}

.gsp-masthead__editorial-content .editor-content .introduct {
  font-size: 13px;
  color: #475569;
  margin: 0;
  line-height: 1.6;
  flex: 1;
}

@media (max-width: 768px) {
  .gsp-masthead__grid,
  .gsp-masthead__editorial-content .editor-list {
    grid-template-columns: 1fr;
  }
  .gsp-masthead__section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

/* ---------- OJS Overrides (article, issue, archive) ---------- */
.obj_article_summary {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 20px;
  box-shadow: none;
  transition: box-shadow var(--gsp-transition);
}

.obj_article_summary:hover {
  box-shadow: var(--gsp-shadow);
}

.obj_article_summary .title a {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  color: var(--gsp-foreground);
}

.obj_article_summary .title a:hover {
  color: var(--gsp-primary);
}

.obj_article_summary .doi {
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.4;
}

.obj_article_summary .doi a {
  color: var(--gsp-primary);
  text-decoration: none;
  word-break: break-all;
}

.obj_article_summary .doi a:hover {
  text-decoration: underline;
}

.obj_article_summary .nums-box {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 8px;
  font-size: 12px;
  line-height: 1;
  color: var(--gsp-muted-foreground);
}

.obj_article_summary .nums-box__item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.obj_article_summary .nums-box__item i {
  font-size: 11px;
  opacity: 0.7;
}

.obj_article_summary .nums-box__item--oa {
  color: #16a34a;
  font-weight: 500;
}

.obj_article_summary .nums-box__item--oa i {
  opacity: 1;
}

/* Article summary: side-by-side layout with thumbnail */
@media (min-width: 768px) {
  .obj_article_summary {
    display: flex;
    align-items: flex-start;
    gap: 20px;
  }
  .obj_article_summary .obj_article_info {
    flex: 1;
    min-width: 0;
  }
  .obj_article_summary .cover {
    flex-shrink: 0;
    width: 160px;
    float: none;
    margin: 0;
    order: 2;
  }
  .obj_article_summary .cover img {
    width: 100%;
    height: auto;
    max-height: 200px;
    object-fit: contain;
    border-radius: 4px;
  }
}
@media (max-width: 767px) {
  .obj_article_summary .cover {
    float: none;
    width: 120px;
    margin-top: 12px;
  }
  .obj_article_summary .cover img {
    width: 100%;
    height: auto;
    max-height: 160px;
    object-fit: contain;
    border-radius: 4px;
  }
}

.obj_galley_link {
  border-radius: var(--gsp-radius-sm) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border-color: var(--gsp-primary) !important;
  color: var(--gsp-primary) !important;
  transition: all var(--gsp-transition);
}

.obj_galley_link:hover, .obj_galley_link:focus {
  background: var(--gsp-primary) !important;
  color: var(--gsp-primary-foreground) !important;
}

/* ---------- Issue View Page ---------- */
.page_issue .cmp_breadcrumbs {
  display: block !important;
  margin-top: 32px;
  margin-bottom: 24px;
}

.page_issue .cmp_breadcrumbs ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}

.page_issue .cmp_breadcrumbs li {
  display: inline-flex;
  align-items: center;
  color: var(--gsp-muted-foreground);
}

.page_issue .cmp_breadcrumbs .separator {
  margin: 0 8px;
  color: var(--gsp-border);
  font-weight: 400;
}

.page_issue .cmp_breadcrumbs a {
  color: var(--gsp-muted-foreground);
  text-decoration: none;
  font-weight: 500;
  transition: color var(--gsp-transition);
}

.page_issue .cmp_breadcrumbs a:hover {
  color: var(--gsp-primary);
}

.page_issue .cmp_breadcrumbs .current span {
  color: var(--gsp-foreground);
  font-weight: 500;
}

.page_issue .section__title {
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--gsp-foreground) !important;
  border: none !important;
  border-left: 3px solid var(--gsp-primary) !important;
  padding: 0 0 0 16px !important;
  margin-top: 32px !important;
  margin-bottom: 24px !important;
}

.obj_issue_toc .galleys,
.obj_issue_toc .section {
  position: relative;
  margin: 0 !important;
  padding: 0 !important;
}

.obj_issue_toc .galleys:before,
.obj_issue_toc .section:before {
  display: none !important;
}

.obj_issue_toc .section > h2,
.obj_issue_toc .section > h3,
.obj_issue_toc .galleys > h2,
.obj_issue_toc .galleys > h3 {
  display: block !important;
  position: static !important;
  left: auto !important;
  background: none !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  border: none !important;
  border-left: 3px solid var(--gsp-primary) !important;
  padding: 0 0 0 14px !important;
  margin: 0 0 20px !important;
  line-height: 1.4 !important;
}

.obj_issue_toc .sections ul.articles {
  list-style: none;
  padding: 0;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.obj_issue_toc .sections ul.articles > li {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.obj_issue_toc .sections ul.articles > li:before,
.obj_issue_toc .sections ul.articles > li:after {
  display: none !important;
}

.obj_issue_toc .heading {
  margin: 0;
}

.obj_issue_toc .sections {
  margin-bottom: 24px !important;
}

/* Collapsible section headings (issue TOC — all journals) */
.obj_issue_toc .section > .issue-toc-section__heading {
  border: none !important;
  padding: 0 !important;
  margin: 0 0 20px !important;
  background: none !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
.obj_issue_toc .issue-toc-section__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
  margin: 0;
  padding: 0 0 0 14px;
  border: none;
  border-left: 3px solid var(--gsp-primary);
  background: transparent;
  font-size: 20px;
  font-weight: 700;
  color: var(--gsp-foreground);
  line-height: 1.4;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: color 0.15s, border-color 0.15s;
}
.obj_issue_toc .issue-toc-section__toggle:hover {
  color: var(--gsp-primary);
}
.obj_issue_toc .issue-toc-section__toggle:focus-visible {
  outline: 2px solid var(--gsp-primary);
  outline-offset: 2px;
}
.obj_issue_toc .issue-toc-section__label {
  flex: 1;
  min-width: 0;
}
.obj_issue_toc .issue-toc-section__chevron {
  flex-shrink: 0;
  font-size: 14px;
  color: #94a3b8;
  transition: transform 0.25s ease, color 0.15s;
}
.obj_issue_toc .issue-toc-section__toggle:hover .issue-toc-section__chevron {
  color: var(--gsp-primary);
}
.obj_issue_toc .issue-toc-section__toggle.is-collapsed .issue-toc-section__chevron {
  transform: rotate(-90deg);
}
.obj_issue_toc .issue-toc-section__body.is-collapsed {
  display: none;
}

/* Bordered box around collapsible TOC sections (visible when collapsed) */
.obj_issue_toc .gsp-collapsible-box--issue-toc {
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  background: #fff;
  overflow: hidden;
  margin-bottom: 16px;
}
.obj_issue_toc .gsp-collapsible-box--issue-toc:last-child {
  margin-bottom: 0;
}
.obj_issue_toc .gsp-collapsible-box--issue-toc .issue-toc-section__heading {
  margin: 0 !important;
}
.obj_issue_toc .gsp-collapsible-box--issue-toc .issue-toc-section__toggle {
  padding: 14px 16px;
  border-left: 3px solid var(--gsp-primary);
  background: #f8fafc;
  border-radius: 0;
  margin: 0;
}
.obj_issue_toc .gsp-collapsible-box--issue-toc .issue-toc-section__body {
  padding: 16px;
  border-top: 1px solid var(--gsp-border);
  background: #fff;
}
.obj_issue_toc .gsp-collapsible-box--issue-toc .issue-toc-section__body.is-collapsed {
  display: none;
}
.obj_issue_toc .gsp-collapsible-box--issue-toc .issue-toc-section__toggle.is-collapsed {
  border-bottom: none;
}

/* Journal homepage: boxed collapsible sections (Just Published, Most Read, indexing) */
.gsp-collapsible-box.gsp-home-section {
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  background: #fff;
  overflow: hidden;
  margin-bottom: 0;
}
.page_index_journal .gsp-home-section__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
  margin: 0;
  padding: 14px 16px;
  border: none;
  border-left: 3px solid var(--gsp-primary);
  background: #f8fafc;
  font-size: 18px;
  font-weight: 700;
  color: var(--gsp-foreground);
  line-height: 1.3;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: background 0.15s, color 0.15s;
}
.page_index_journal .gsp-home-section__toggle:hover {
  background: #eef4fb;
  color: var(--gsp-primary);
}
.page_index_journal .gsp-home-section__toggle:focus-visible {
  outline: 2px solid var(--gsp-primary);
  outline-offset: 2px;
}
.page_index_journal .gsp-home-section__title--main {
  flex: 1;
  min-width: 0;
}
.page_index_journal .gsp-home-section__chevron {
  flex-shrink: 0;
  font-size: 14px;
  color: #94a3b8;
  transition: transform 0.25s ease, color 0.15s;
}
.page_index_journal .gsp-home-section__toggle:hover .gsp-home-section__chevron {
  color: var(--gsp-primary);
}
.page_index_journal .gsp-home-section__toggle.is-collapsed .gsp-home-section__chevron {
  transform: rotate(-90deg);
}
.page_index_journal .gsp-home-section__body {
  padding: 16px;
  border-top: 1px solid var(--gsp-border);
  background: #fff;
}
.page_index_journal .gsp-home-section__body.is-collapsed {
  display: none;
}
/* ---------- Issue Archive Page ---------- */
.page_issue_archive {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 48px 24px 80px;
}

.page_issue_archive .section .section__title,
.page_issue_archive .section__title {
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--gsp-foreground) !important;
  border: none !important;
  border-left: 3px solid var(--gsp-primary) !important;
  padding: 0 0 0 16px !important;
  margin-bottom: 32px !important;
}

/* --- Volume list layout --- */
.page_issue_archive .archive-volume-list {
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  overflow: hidden;
}

.page_issue_archive .archive-vol-row {
  display: flex;
  align-items: baseline;
  gap: 0;
  border-bottom: 1px solid var(--gsp-border);
  transition: background 0.12s;
}
.page_issue_archive .archive-vol-row:last-child {
  border-bottom: none;
}
.page_issue_archive .archive-vol-row:hover {
  background: #f8fafc;
}

.page_issue_archive .archive-vol-header {
  flex: 0 0 160px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 14px 20px;
  background: #f8fafc;
  border-right: 1px solid var(--gsp-border);
}

.page_issue_archive .archive-vol-number {
  font-size: 15px;
  font-weight: 600;
  color: var(--gsp-foreground);
  white-space: nowrap;
}

.page_issue_archive .archive-vol-year {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  white-space: nowrap;
}

.page_issue_archive .archive-vol-issues {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
}

.page_issue_archive .archive-issue-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-size: 14px;
  font-weight: 500;
  color: var(--gsp-primary);
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.15s;
  white-space: nowrap;
}
.page_issue_archive .archive-issue-link:hover {
  background: var(--gsp-primary);
  color: #fff;
  border-color: var(--gsp-primary);
}

.page_issue_archive .archive-oa-badge {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #166534;
  background: #dcfce7;
  padding: 2px 6px;
  border-radius: 4px;
  line-height: 1;
}

/* Responsive: stack on mobile */
@media (max-width: 600px) {
  .page_issue_archive .archive-vol-row {
    flex-direction: column;
    align-items: stretch;
  }
  .page_issue_archive .archive-vol-header {
    flex: none;
    border-right: none;
    border-bottom: 1px solid var(--gsp-border);
    padding: 12px 16px;
  }
  .page_issue_archive .archive-vol-issues {
    padding: 12px 16px;
  }
}

/* Section title (used in content pages) */
.section .section__title {
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
  color: var(--gsp-foreground) !important;
  border-left: 3px solid var(--gsp-primary) !important;
  padding-left: 16px !important;
  margin-bottom: 24px !important;
}

/* ---------- Login / Register / Lost Password (shadcn-inspired) ---------- */
.page_login,
.page_lost_password {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  padding: 60px 20px 80px !important;
}

.page_login .cmp_breadcrumbs,
.page_login .section__title,
.page_lost_password .cmp_breadcrumbs,
.page_lost_password .section__title {
  display: none !important;
}

.login-card {
  width: 100% !important;
  max-width: 400px !important;
  margin: 0 auto !important;
  padding: 32px !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 16px rgba(0,0,0,0.04) !important;
  background: var(--gsp-card) !important;
  box-sizing: border-box !important;
}

.login-card__header {
  margin-bottom: 24px !important;
}

.login-card__title {
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 6px !important;
  line-height: 1.2 !important;
}

.login-card__desc {
  font-size: 14px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

.login-card__message {
  font-size: 14px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 0 16px !important;
}

.login-card__purchase-banner {
  padding: 28px 24px 24px;
  background: #eef4fb;
  border: 1px solid #c8ddf2;
  border-radius: var(--gsp-radius);
  margin-bottom: 8px;
  text-align: center;
}

.login-card__purchase-banner > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--gsp-primary);
  color: #fff;
  font-size: 22px;
  margin-bottom: 16px;
}

.login-card__purchase-banner .login-card__title {
  font-size: 20px !important;
  margin: 0 0 8px !important;
  text-align: center !important;
}

.login-card__purchase-banner .login-card__desc {
  margin: 0 !important;
  font-size: 13px !important;
  text-align: center !important;
  line-height: 1.5 !important;
}

.login-card__error {
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  color: #dc2626 !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  font-size: 13px !important;
  margin-bottom: 16px !important;
}

.login-card__form {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.login-card__field {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.login-card__label-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
}

.login-card__label {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--gsp-foreground) !important;
  line-height: 1 !important;
}

.login-card__forgot {
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--gsp-foreground) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.login-card__forgot:hover {
  color: var(--gsp-primary) !important;
}

.login-card__input {
  display: block !important;
  width: 100% !important;
  height: 40px !important;
  padding: 0 12px !important;
  font-size: 14px !important;
  font-family: var(--gsp-font) !important;
  color: var(--gsp-foreground) !important;
  background: var(--gsp-card) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: 8px !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}

.login-card__input::placeholder {
  color: #a1a1aa !important;
}

.login-card__input:focus {
  border-color: var(--gsp-primary) !important;
  box-shadow: 0 0 0 2px rgba(4, 69, 151, 0.12) !important;
}

.login-card__remember {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.login-card__remember input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  accent-color: var(--gsp-primary) !important;
  border-radius: 4px !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
}

.login-card__remember label {
  font-size: 13px !important;
  color: var(--gsp-muted-foreground) !important;
  cursor: pointer !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.login-card__submit {
  display: block !important;
  width: 100% !important;
  height: 40px !important;
  padding: 0 !important;
  margin: 4px 0 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  font-family: var(--gsp-font) !important;
  color: #fff !important;
  background: var(--gsp-primary) !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: opacity 0.15s !important;
  line-height: 40px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.login-card__submit:hover {
  opacity: 0.9 !important;
}

.login-card__signup {
  text-align: center !important;
  font-size: 14px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 20px 0 0 !important;
}

.login-card__signup a {
  color: var(--gsp-foreground) !important;
  font-weight: 500 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.login-card__signup a:hover {
  color: var(--gsp-primary) !important;
}

.login-card__hint {
  font-size: 12px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 2px 0 0 !important;
  line-height: 1.4 !important;
}

.login-card__privacy {
  font-size: 12px !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

.login-card__privacy a {
  color: var(--gsp-primary) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* Register page (wider card) */
.page_register {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  padding: 48px 20px 80px !important;
}

.page_register .cmp_breadcrumbs,
.page_register .section__title {
  display: none !important;
}

.login-card--wide {
  max-width: 520px !important;
}

.login-card__section-title {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--gsp-foreground) !important;
  letter-spacing: -0.01em !important;
}

.login-card__row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}

.login-card__req {
  color: #dc2626 !important;
}

.login-card__select {
  display: block !important;
  width: 100% !important;
  height: 40px !important;
  padding: 0 32px 0 12px !important;
  font-size: 14px !important;
  font-family: var(--gsp-font) !important;
  color: var(--gsp-foreground) !important;
  background-color: var(--gsp-card) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: 8px !important;
  outline: none !important;
  box-sizing: border-box !important;
  appearance: auto !important;
  -webkit-appearance: menulist !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}

.login-card__select:focus {
  border-color: var(--gsp-primary) !important;
  box-shadow: 0 0 0 2px rgba(4, 69, 151, 0.12) !important;
}

.login-card__divider {
  height: 1px !important;
  background: var(--gsp-border) !important;
  margin: 4px 0 !important;
}

.login-card__checkbox {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
}

.login-card__checkbox input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  margin-top: 2px !important;
  accent-color: var(--gsp-primary) !important;
  flex-shrink: 0 !important;
}

.login-card__checkbox label {
  font-size: 13px !important;
  color: var(--gsp-muted-foreground) !important;
  line-height: 1.5 !important;
  cursor: pointer !important;
  margin: 0 !important;
}

.login-card__checkbox label a {
  color: var(--gsp-foreground) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* --- Registration: Journal accordion --- */
.reg-contexts {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.reg-context {
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius-sm);
  overflow: hidden;
}

.reg-context__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 14px;
  background: var(--gsp-muted);
  border: none;
  cursor: pointer;
  text-align: left;
  gap: 8px;
}

.reg-context__toggle:hover {
  background: var(--gsp-border);
}

.reg-context__name {
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-foreground);
  line-height: 1.4;
}

.reg-context__chevron {
  flex-shrink: 0;
  color: var(--gsp-muted-foreground);
  transition: transform 0.2s ease;
}

.reg-context__toggle[aria-expanded="true"] .reg-context__chevron {
  transform: rotate(180deg);
}

.reg-context__body {
  display: none;
  padding: 12px 14px;
  border-top: 1px solid var(--gsp-border);
}

.reg-context__toggle[aria-expanded="true"] + .reg-context__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Hide old register form fieldset styling */
.login-card .identity,
.login-card .login,
.login-card .consent,
.login-card .reviewer {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.login-card .identity legend,
.login-card .login legend,
.login-card .consent legend,
.login-card .reviewer legend {
  display: none !important;
}

/* Form errors */
.login-card #formErrors {
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
}

.login-card .pkp_form_error {
  display: block !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #b91c1c !important;
  margin-bottom: 8px !important;
}

.login-card .pkp_form_error_list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.login-card .pkp_form_error_list li {
  margin-bottom: 4px !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

.login-card .pkp_form_error_list li:last-child {
  margin-bottom: 0 !important;
}

.login-card .pkp_form_error_list li a {
  color: #991b1b !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 500 !important;
}

.login-card .pkp_form_error_list li a:hover {
  color: #7f1d1d !important;
}

@media (max-width: 480px) {
  .login-card {
    padding: 24px 20px !important;
  }
  .login-card__row {
    grid-template-columns: 1fr !important;
  }
}

/* ---------- Forms (general) ---------- */
.cmp_form input[type="text"],
.cmp_form input[type="email"],
.cmp_form input[type="password"],
.cmp_form input[type="url"],
.cmp_form input[type="tel"],
.cmp_form select,
.page_search .search_input .query {
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius-sm) !important;
  font-size: 14px !important;
  height: 40px !important;
  padding: 8px 12px !important;
  transition: border-color var(--gsp-transition), box-shadow var(--gsp-transition);
  background-color: var(--gsp-background) !important;
}

.cmp_form input:focus,
.cmp_form select:focus {
  border-color: var(--gsp-primary) !important;
  box-shadow: 0 0 0 3px rgba(4,69,151,.1) !important;
  outline: none !important;
}

.cmp_form .buttons .submit-btn,
.cmp_form .buttons button {
  background: var(--gsp-primary) !important;
  color: var(--gsp-primary-foreground) !important;
  border: 1px solid var(--gsp-primary) !important;
  border-radius: var(--gsp-radius-sm) !important;
  padding: 8px 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: background var(--gsp-transition);
}

.cmp_form .buttons .submit-btn:hover,
.cmp_form .buttons button:hover {
  background: var(--gsp-primary-light) !important;
}

/* ---------- Utility overrides ---------- */
.pkp_structure_page {
  word-break: break-word;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.pkp_structure_page > .content,
.pkp_structure_page > div:not(.pkp_structure_head):not(.pkp_structure_footer_wrapper) {
  flex: 1;
}

.content {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
}

.pkp_page_index .content {
  max-width: none;
}

@media (min-width: 992px) {
  .pkp_structure_page .content,
  .has_sidebar .content {
    max-width: var(--gsp-max-width);
  }
}

/* Hide old footer styling remnants */
.footer-logo { display: none; }
.footer-nav { list-style: none; padding: 0; margin: 0; }

/* Fix row clearing from bundle.css */
.row:before, .row:after {
  content: "" !important;
  display: table !important;
}
.row:after { clear: both !important; }

/* ==========================================================================
   Article Detail Page
   ========================================================================== */

/* --- Article page wrapper --- */
.obj_article_details {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 32px 24px 60px;
}

/* --- Breadcrumb --- */
.article-breadcrumb {
  margin-bottom: 24px;
}

.article-breadcrumb ol {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  overflow: hidden;
}

.article-breadcrumb li {
  display: inline-flex;
  align-items: center;
  color: var(--gsp-muted-foreground);
  flex-shrink: 0;
}

.article-breadcrumb li:last-child {
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
}

.article-breadcrumb li:last-child span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.article-breadcrumb li + li::before {
  content: '/';
  margin: 0 8px;
  color: var(--gsp-border);
  font-weight: 400;
}

.article-breadcrumb li a {
  color: var(--gsp-muted-foreground);
  text-decoration: none;
  font-weight: 500;
  transition: color var(--gsp-transition);
}

.article-breadcrumb li a:hover {
  color: var(--gsp-primary);
}

.article-breadcrumb li[aria-current="page"] span {
  color: var(--gsp-foreground);
  font-weight: 500;
}

.obj_article_details .section__title {
  font-size: 26px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.35 !important;
  color: var(--gsp-foreground) !important;
  border-left: none !important;
  padding-left: 0 !important;
  margin-bottom: 8px !important;
}

.obj_article_details .subtitle {
  font-size: 17px;
  font-weight: 400;
  color: var(--gsp-muted-foreground);
  margin: 0 0 4px;
  padding-left: 0;
  line-height: 1.5;
}

/* --- Purchase Card (sidebar) --- */
.purchase-card {
  background: var(--gsp-card) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius) !important;
  padding: 0 !important;
  overflow: hidden;
  margin-bottom: 16px !important;
}

.purchase-card__header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--gsp-foreground);
  padding: 16px 20px;
  background: var(--gsp-muted);
  border-bottom: 1px solid var(--gsp-border);
  margin: 0;
}

.purchase-card__header i {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
}

.purchase-card__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  padding: 20px;
}

.purchase-card__price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0;
}

.purchase-card__currency {
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-muted-foreground);
}

.purchase-card__amount {
  font-size: 28px;
  font-weight: 800;
  color: var(--gsp-foreground);
  line-height: 1;
}

.purchase-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 700;
  border-radius: var(--gsp-radius-sm);
  background: var(--gsp-primary);
  color: #fff;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

.purchase-card__btn:hover {
  background: #033576;
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(4, 69, 151, 0.25);
}

.purchase-card__btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}

.purchase-card__btn-label {
  flex: 1 1 auto;
  text-align: center;
}

.purchase-card__btn-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  opacity: 0.7;
  transition: transform 0.2s ease;
}

.purchase-card__btn:hover .purchase-card__btn-arrow {
  transform: translateX(2px);
  opacity: 1;
}

/* --- Institution / IP Status Box (article sidebar) --- */

/* --- Access Panel (article sidebar) — base overrides handled by card styles below --- */

.access-panel__buy-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: var(--gsp-primary);
  border: none;
  border-radius: var(--gsp-radius-sm);
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
  line-height: 1;
}

.access-panel__buy-btn:hover {
  background: var(--gsp-primary-dark);
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(4, 69, 151, 0.25);
}

.access-panel__buy-divider {
  display: inline-block;
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.3);
  margin: 0 14px;
  vertical-align: middle;
}

.access-panel__recommend-link,
button.access-panel__recommend-link {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-primary) !important;
  text-decoration: none !important;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer !important;
  width: 100% !important;
  font-family: var(--gsp-font) !important;
  transition: color 0.15s ease !important;
  box-shadow: none !important;
  outline: none !important;
}

.access-panel__recommend-link:hover,
button.access-panel__recommend-link:hover {
  color: var(--gsp-primary-dark) !important;
  background: none !important;
  background-color: transparent !important;
}

.access-panel__recommend-link i:first-child {
  font-size: 13px;
}

.access-panel__recommend-link i:last-child {
  margin-left: auto;
  font-size: 11px;
  transition: transform 0.2s ease;
}

.access-panel__recommend-link:hover i:last-child {
  transform: translateX(3px);
}

/* --- Recommend to Library Modal --- */
.recommend-modal__overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(3px);
  justify-content: center;
  align-items: center;
  padding: 24px;
}
.recommend-modal__overlay.is-open {
  display: flex;
}
.recommend-modal {
  background: #fff;
  border-radius: 14px;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 32px 28px 28px;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,0.18);
  animation: recommendSlideUp 0.25s ease-out;
}
@keyframes recommendSlideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.recommend-modal__close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  font-size: 24px;
  color: #94a3b8;
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background 0.15s, color 0.15s;
}
.recommend-modal__close:hover {
  background: #f1f5f9;
  color: #334155;
}
.recommend-modal__header {
  text-align: center;
  margin-bottom: 24px;
}
.recommend-modal__header > i {
  font-size: 28px;
  color: var(--gsp-primary, #0f4c81);
  margin-bottom: 10px;
  display: block;
}
.recommend-modal__header h3 {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 8px;
}
.recommend-modal__header p {
  font-size: 14px;
  color: #64748b;
  margin: 0;
  line-height: 1.5;
}
.recommend-modal__field {
  margin-bottom: 16px;
}
.recommend-modal__field label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 5px;
}
.recommend-modal__req {
  color: #ef4444;
}
.recommend-modal__field input[type="text"],
.recommend-modal__field input[type="email"],
.recommend-modal__field select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  font-size: 14px;
  color: #1e293b;
  background: #f8fafc;
  transition: border-color 0.15s, box-shadow 0.15s;
  box-sizing: border-box;
}
.recommend-modal__field input:focus,
.recommend-modal__field select:focus {
  outline: none;
  border-color: var(--gsp-primary, #0f4c81);
  box-shadow: 0 0 0 3px rgba(15,76,129,0.1);
  background: #fff;
}
.recommend-modal__field select {
  appearance: auto;
  cursor: pointer;
  background: #f8fafc;
  color: var(--gsp-foreground, #0f172a);
  font-family: var(--gsp-font);
}
.recommend-modal__field textarea {
  width: 100%; padding: 10px 12px; border: 1px solid #cbd5e1;
  border-radius: 8px; font-size: 14px; color: #1e293b; background: #f8fafc;
  font-family: var(--gsp-font); resize: vertical; box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.recommend-modal__field textarea:focus {
  outline: none; border-color: var(--gsp-primary); box-shadow: 0 0 0 3px rgba(15,76,129,0.1); background: #fff;
}
.recommend-modal__checks {
  display: flex; flex-direction: column; gap: 6px; margin-top: 4px;
}
.recommend-modal__check {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px !important; font-weight: 400 !important; color: #475569 !important;
  cursor: pointer; margin-bottom: 0 !important;
}
.recommend-modal__check input[type="checkbox"] {
  width: 16px; height: 16px; accent-color: var(--gsp-primary); cursor: pointer;
}
.recommend-modal__field input.is-invalid {
  border-color: #ef4444;
}
.recommend-modal__reasons {
  border: none;
  padding: 0;
  margin: 0 0 16px;
}
.recommend-modal__reasons legend {
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 8px;
}
.recommend-modal__reasons label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 400;
  color: #475569;
  font-size: 13.5px;
  padding: 5px 0;
  cursor: pointer;
}
.recommend-modal__reasons input[type="checkbox"] {
  accent-color: var(--gsp-primary, #0f4c81);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.recommend-modal__actions {
  margin-top: 20px;
}
.recommend-modal__submit {
  width: 100%;
  padding: 12px;
  border: none;
  border-radius: 8px;
  background: var(--gsp-primary, #0f4c81);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.recommend-modal__submit:hover {
  background: #033576;
}
.recommend-modal__submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.recommend-modal__msg {
  margin-top: 14px;
  font-size: 13px;
  text-align: center;
  min-height: 20px;
}
.recommend-modal__msg--success {
  color: #16a34a;
}
.recommend-modal__msg--error {
  color: #ef4444;
}

@media (max-width: 480px) {
  .recommend-modal {
    padding: 24px 18px 20px;
    border-radius: 12px;
  }
}

/* --- Action Bar (galley buttons + share) --- */
.article-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding: 0 0 16px;
  margin-bottom: 8px;
  border-bottom: none;
}

.article-action-bar__galleys {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.article-action-bar__galleys .obj_galley_link {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 8px 18px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border-radius: var(--gsp-radius-sm) !important;
  border: 1px solid var(--gsp-border) !important;
  color: var(--gsp-foreground) !important;
  background: var(--gsp-card) !important;
  text-decoration: none !important;
  transition: all var(--gsp-transition);
  line-height: 1.5 !important;
}

.article-action-bar__galleys .obj_galley_link:hover,
.article-action-bar__galleys .obj_galley_link:focus {
  border-color: var(--gsp-primary) !important;
  color: var(--gsp-primary) !important;
  background: rgba(4, 69, 151, 0.04) !important;
}

.article-action-bar__galleys .obj_galley_link.restricted:hover::before,
.article-action-bar__galleys .obj_galley_link.restricted:focus::before {
  color: var(--gsp-primary) !important;
}

.article-action-bar__galleys .obj_galley_link.pdf {
  background: transparent !important;
  color: var(--gsp-primary) !important;
  border-color: var(--gsp-primary) !important;
}

.article-action-bar__galleys .obj_galley_link.pdf:hover {
  background: rgba(4, 69, 151, 0.04) !important;
  border-color: var(--gsp-primary) !important;
  color: var(--gsp-primary) !important;
}

/* Galley button icons */
.article-action-bar__galleys .obj_galley_link::before {
  content: '\f06e';
  font-family: 'Font Awesome 7 Free';
  font-weight: 400;
  font-size: 13px;
}

.article-action-bar__galleys .obj_galley_link.pdf::before {
  content: '\f1c1';
  font-family: 'Font Awesome 7 Free';
  font-weight: 400;
  font-size: 13px;
}

.article-action-bar__galleys .obj_galley_link.restricted::before {
  content: '\f023';
  font-family: 'Font Awesome 7 Free';
  font-weight: 900;
  font-size: 11px;
}

/* Sidebar Share Block */
.article-share-group {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.article-share-label {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-muted-foreground) !important;
}

.article-share-btns {
  display: flex;
  align-items: center;
  gap: 8px;
}

.article-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--gsp-radius-sm);
  border: 1px solid var(--gsp-border);
  background: var(--gsp-card);
  color: var(--gsp-muted-foreground);
  font-size: 14px;
  cursor: pointer;
  transition: all var(--gsp-transition);
  padding: 0;
}

.article-share-btn[title="Facebook"]  { color: #1877F2; border-color: #1877F2; }
.article-share-btn[title="X"]         { color: #000;    border-color: #000; }
.article-share-btn[title="LinkedIn"]  { color: #0A66C2; border-color: #0A66C2; }
.article-share-btn[title="Email"]     { color: #EA4335; border-color: #EA4335; }
.article-share-btn[title="WeChat"]    { color: #07C160; border-color: #07C160; }
.article-share-btn[title="Email"]     { color: #EA4335; border-color: #EA4335; }
.article-share-btn:hover { color: #fff !important; }
.article-share-btn[title="Facebook"]:hover  { background: #1877F2; border-color: #1877F2; }
.article-share-btn[title="X"]:hover         { background: #000;    border-color: #000; }
.article-share-btn[title="LinkedIn"]:hover  { background: #0A66C2; border-color: #0A66C2; }
.article-share-btn[title="Email"]:hover     { background: #EA4335; border-color: #EA4335; }
.article-share-btn[title="WeChat"]:hover    { background: #07C160; border-color: #07C160; }
.article-share-btn[title="Email"]:hover     { background: #EA4335; border-color: #EA4335; }

/* --- Two-column Grid Layout --- */
.obj_article_details .article-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 40px;
  align-items: start;
  margin: 16px 0 0 !important;
  border: none !important;
  float: none !important;
}

.obj_article_details .article-layout::before,
.obj_article_details .article-layout::after {
  display: none !important;
}

.obj_article_details .main_entry {
  float: none !important;
  width: auto !important;
  border: none !important;
  padding: 0 !important;
  min-width: 0;
  max-width: 100%;
}

.obj_article_details .entry_details {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  position: sticky;
  top: 80px;
}

@media (max-width: 991px) {
  .obj_article_details .article-layout {
    grid-template-columns: 1fr !important;
    gap: 32px;
  }
  .obj_article_details .entry_details {
    position: static;
  }
}

/* --- Main Entry Items --- */
.obj_article_details .main_entry .item {
  padding: 24px 0 !important;
  border-bottom: none;
}

.obj_article_details .main_entry .item.author_bios {
  border-top: none;
  margin-top: 16px;
}

.obj_article_details .main_entry .item > .label {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--gsp-primary) !important;
  margin: 0 0 16px !important;
  letter-spacing: -0.01em;
  line-height: 1.3;
}

/* --- Authors Section --- */
.obj_article_details .item.authors {
  padding-top: 16px !important;
}

.obj_article_details .item.authors > .label {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--gsp-muted-foreground) !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 12px !important;
}

.obj_article_details .author-wrap {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

/* Superscript affiliation indices (Springer/Nature style) */
.obj_article_details .author-affil-sup {
  font-size: 10px;
  font-weight: 400;
  color: var(--gsp-primary);
  line-height: 0;
  position: relative;
  top: -0.4em;
  margin-left: 1px;
  pointer-events: none;
}

/* Numbered affiliation list below author row */
.obj_article_details .author-affiliations-list {
  margin-top: 8px;
  padding: 0;
}

.obj_article_details .author-affil-item {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  line-height: 1.7;
}

.obj_article_details .author-affil-item sup {
  font-size: 10px;
  color: var(--gsp-primary);
  font-weight: 600;
  margin-right: 3px;
}

.obj_article_details .author-affil-ror {
  font-size: 12px;
  vertical-align: middle;
}

/* Publication dates & grant support (Springer-style metadata block) */
.obj_article_details .item.gsp-article-meta {
  padding: 12px 0 !important;
  border: none !important;
  background: none !important;
  margin-bottom: 0 !important;
}

.obj_article_details .gsp-article-dates {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 0;
  font-size: 15px;
  line-height: 1.8;
  color: var(--gsp-foreground);
}

.obj_article_details .gsp-date-item strong {
  font-weight: 700;
  color: var(--gsp-primary);
}

.obj_article_details .gsp-date-sep {
  display: inline-block;
  width: 24px;
}

.obj_article_details .gsp-grant-support {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--gsp-foreground);
}

.obj_article_details .gsp-grant-bullet {
  color: var(--gsp-primary);
  font-weight: 700;
  margin-right: 4px;
}

.obj_article_details .item.authors .dropup,
.obj_article_details .item.authors .dropup-center {
  margin: 0 !important;
  padding: 0 !important;
}

.obj_article_details .author-wrap .dropdown-toggle {
  font-size: 15px;
  font-weight: 600;
  color: var(--gsp-primary);
  cursor: pointer;
  padding: 2px 0;
  border-bottom: 1px dashed transparent;
  transition: border-color var(--gsp-transition);
}

.obj_article_details .author-wrap .dropdown-toggle:hover {
  border-bottom-color: var(--gsp-primary);
}

.obj_article_details .author-wrap .dropdown-toggle::after {
  display: inline-block;
  content: '';
  border: solid var(--gsp-muted-foreground);
  border-width: 0 1.5px 1.5px 0;
  padding: 2.5px;
  transform: rotate(45deg);
  margin-left: 5px;
  vertical-align: 2px;
  transition: transform var(--gsp-transition);
}

.obj_article_details .author-wrap.show .dropdown-toggle::after {
  transform: rotate(-135deg);
}

.obj_article_details .author-info-wrap {
  min-width: 320px !important;
  max-width: 420px;
  padding: 20px !important;
  border-radius: var(--gsp-radius) !important;
  border: 1px solid var(--gsp-border) !important;
  box-shadow: var(--gsp-shadow-md) !important;
  background: var(--gsp-card) !important;
}

.obj_article_details .author-info-wrap .j-author {
  font-size: 16px;
  font-weight: 700;
  color: var(--gsp-foreground);
  margin-bottom: 8px;
  line-height: 1.3;
}

.obj_article_details .author-info-wrap .j-affiliation {
  font-size: 13px;
  color: var(--gsp-muted-foreground);
  line-height: 1.6;
  margin-bottom: 8px;
}

.obj_article_details .j-affiliation--multi {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.obj_article_details .j-affiliation--multi > .affiliation {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.obj_article_details .j-affiliation--multi > .affiliation::before {
  content: "•";
  color: var(--gsp-muted-foreground);
  flex-shrink: 0;
  font-size: 11px;
}

.affiliation--multi {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.affiliation--multi > span::before {
  content: "• ";
  color: var(--gsp-muted-foreground);
  font-size: 11px;
}

.obj_article_details .author-info-wrap .j-orcid {
  margin-bottom: 12px;
}

.obj_article_details .author-info-wrap .j-orcid a {
  font-size: 13px;
  color: var(--gsp-primary);
  word-break: break-all;
}

.obj_article_details .author-info-wrap .j-biography {
  font-size: 13px;
  line-height: 1.6;
  color: var(--gsp-muted-foreground);
  border-top: 1px solid var(--gsp-border);
  padding-top: 10px;
  margin-top: 10px;
  max-height: 160px;
  overflow-y: auto;
}

.obj_article_details .author-info-wrap .j-biography p {
  margin: 0 0 6px;
  font-size: 13px;
  line-height: 1.6;
}

.obj_article_details .author-info-wrap .j-biography p:last-child {
  margin-bottom: 0;
}

.obj_article_details .author-search-box {
  border-top: 1px solid var(--gsp-border);
  padding-top: 12px;
  margin-top: 12px;
}

.obj_article_details .author-search-wrap a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  padding: 4px 0;
}

.obj_article_details .author-search-wrap a:hover {
  color: var(--gsp-primary-light);
}

.obj_article_details .web-search-wrap {
  margin-top: 8px;
}

.obj_article_details .c-article-authors-search__links-text {
  font-size: 12px;
  color: var(--gsp-muted-foreground);
  margin-right: 4px;
}

.obj_article_details .c-article-identifiers__item {
  font-size: 12px;
  font-weight: 500;
  color: var(--gsp-primary);
  padding: 2px 8px;
  border: 1px solid var(--gsp-border);
  border-radius: 999px;
  text-decoration: none;
  transition: all var(--gsp-transition);
}

.obj_article_details .c-article-identifiers__item:hover {
  background: var(--gsp-primary);
  color: var(--gsp-primary-foreground);
  border-color: var(--gsp-primary);
}

.obj_article_details .c-article-authors-search__text {
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}

.obj_article_details .c-article-identifiers {
  display: inline-flex;
  gap: 6px;
}

.obj_article_details .u-hide {
  display: none;
}

/* Chinese author list */
.obj_article_details .item.authors ul.authors {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.obj_article_details .item.authors ul.authors li {
  display: inline;
}

/* --- Abstract (boxed, journal article page) --- */
.obj_article_details .main_entry .item.abstract {
  background: #f8fafc !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: var(--gsp-radius) !important;
  padding: 26px 28px !important;
  margin-bottom: 24px !important;
  font-family: Charter, 'Georgia', 'Times New Roman', serif !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: var(--gsp-foreground) !important;
  text-align: justify !important;
}

.obj_article_details .main_entry .item.abstract > .label {
  display: block;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.3 !important;
}

.obj_article_details .main_entry .item.abstract .value,
.obj_article_details .main_entry .item.abstract > p,
.obj_article_details .main_entry .item.abstract p {
  font-family: Charter, 'Georgia', 'Times New Roman', serif !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: var(--gsp-foreground) !important;
  text-align: justify !important;
  margin: 0 0 1em !important;
}

.obj_article_details .main_entry .item.abstract p:last-child {
  margin-bottom: 0 !important;
}

.obj_article_details .main_entry .item.abstract a {
  word-break: break-word;
}

@media (max-width: 576px) {
  .obj_article_details .main_entry .item.abstract {
    padding: 18px 16px !important;
  }

  .obj_article_details .main_entry .item.abstract .value,
  .obj_article_details .main_entry .item.abstract > p,
  .obj_article_details .main_entry .item.abstract p {
    font-size: 15px !important;
  }
}

/* --- Keywords --- */
.obj_article_details .item.keywords {
  padding: 0 !important;
  border-bottom: none !important;
  margin-top: 8px;
}

.obj_article_details .keywords-box {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 20px;
}

.obj_article_details .keywords-box .label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 4px !important;
  width: 100%;
  border: none !important;
  padding-bottom: 0 !important;
}

.obj_article_details .keywords-item {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 500;
  color: var(--gsp-primary);
  background: rgba(4, 69, 151, 0.06);
  border: 1px solid rgba(4, 69, 151, 0.15);
  border-radius: 999px;
  text-decoration: none;
  line-height: 1.4;
  transition: all var(--gsp-transition);
  white-space: nowrap;
}

.obj_article_details .keywords-item:hover {
  background: var(--gsp-primary);
  color: var(--gsp-primary-foreground);
  border-color: var(--gsp-primary);
}

/* --- References --- */
.obj_article_details .item.references .value p {
  font-size: 14px;
  line-height: 1.7;
  color: #475569;
  margin: 0 0 12px;
  padding-left: 24px;
  text-indent: -24px;
}

.obj_article_details .item.references .value p:last-child {
  margin-bottom: 0;
}

.obj_article_details .item.references .value a {
  color: var(--gsp-primary);
  word-break: break-all;
}

/* --- Author Biographies (compact, under Authors) --- */
.obj_article_details .item.author_bios--compact {
  padding-top: 0 !important;
  margin-top: -8px;
  border-top: none !important;
}

.obj_article_details .item.author_bios--compact > .label {
  font-size: 14px !important;
  margin-bottom: 6px !important;
}

.obj_article_details .item.author_bios ul.authors {
  list-style: none;
  padding: 0;
  margin: 0;
}

.obj_article_details .item.author_bios .sub_item {
  padding: 4px 0;
  border-bottom: none;
}

.obj_article_details .item.author_bios .sub_item .label {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-foreground) !important;
  margin-bottom: 0 !important;
  display: inline;
}

.obj_article_details .item.author_bios .sub_item .value {
  font-size: 13px;
  line-height: 1.5;
  color: var(--gsp-muted-foreground);
  display: inline;
}

.obj_article_details .item.author_bios .sub_item .value p {
  display: inline;
  margin: 0;
}

/* --- Sidebar: About This Article --- */
.obj_article_details .entry_details .item.published {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 0 !important;
  overflow: hidden;
}

.obj_article_details .entry_details .item.published .title {
  font-size: 14px;
  font-weight: 700;
  color: var(--gsp-foreground);
  padding: 16px 20px;
  border-bottom: 1px solid var(--gsp-border);
  background: var(--gsp-muted);
  margin: 0;
}

.obj_article_details .entry_details .published-box {
  padding: 4px 0;
}

.obj_article_details .entry_details .published-box .sub_item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 10px 20px;
  margin: 0;
  border-bottom: 1px solid var(--gsp-border);
}

.obj_article_details .entry_details .published-box .sub_item:last-child {
  border-bottom: none;
}

.obj_article_details .entry_details .published-box .sub_item .label {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 !important;
  white-space: nowrap;
  border: none !important;
  padding-bottom: 0 !important;
}

.obj_article_details .entry_details .published-box .sub_item .value {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: right;
}

.obj_article_details .entry_details .published-box .sub_item .value li {
  font-size: 14px;
  font-weight: 600;
  color: var(--gsp-foreground);
  list-style: none;
}

.obj_article_details .entry_details .published-box .sub_item .value a {
  font-size: 13px;
  font-weight: 500;
  color: var(--gsp-primary);
  word-break: break-all;
}

.obj_article_details .entry_details .published-box .sub_item .icon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.obj_article_details .entry_details .published-box .sub_item .icon::before {
  font-size: 14px;
  color: var(--gsp-muted-foreground);
}

.obj_article_details .entry_details .published-box .icon-view::before {
  content: '\f06e';
  font-family: 'Font Awesome 7 Free';
  font-weight: 400;
}

.obj_article_details .entry_details .published-box .icon-download::before {
  content: '\f019';
  font-family: 'Font Awesome 7 Free';
  font-weight: 900;
}

/* Kill all label underlines in sidebar */
.obj_article_details .entry_details .label {
  border-bottom: none !important;
  border-top: none !important;
  padding-bottom: 0 !important;
}

/* Sidebar versions */
.obj_article_details .entry_details .sub_item.versions .value {
  text-align: right;
}

.obj_article_details .entry_details .sub_item.versions .value li {
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* Sidebar other items (data availability, pubids, license) */
.obj_article_details .entry_details > .item:not(.published) {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 20px !important;
  margin-top: 16px;
}

.obj_article_details .entry_details > .item:not(.published) > .label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 12px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

/* Purchase card should override generic sidebar card styles */
.obj_article_details .entry_details > .item.purchase-card {
  padding: 0 !important;
  margin: 0 0 16px !important;
}

.obj_article_details .entry_details > .item.purchase-card a.purchase-card__btn,
.obj_article_details .entry_details > .item.purchase-card a.purchase-card__btn:visited,
.obj_article_details .entry_details > .item.purchase-card a.purchase-card__btn:hover,
.obj_article_details .entry_details > .item.purchase-card a.purchase-card__btn:focus {
  display: inline-flex !important;
  width: 100%;
  color: #fff !important;
  text-decoration: none !important;
}

/* ── Institution Session Card ── */
/* ── Institution Card — Denied ──────────────────────────────────────── */

.obj_article_details .entry_details > .item.inst-card--denied {
  display: block !important;
  padding: 0 !important;
  margin: 0 0 12px !important;
  background: var(--gsp-card) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: 10px !important;
  overflow: hidden;
}

.obj_article_details .entry_details > .item.inst-card--denied .inst-card__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  padding: 14px 16px 4px;
}

.obj_article_details .entry_details > .item.inst-card--denied .inst-card__denied-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-muted-foreground);
  line-height: 1.4;
}

.obj_article_details .entry_details > .item.inst-card--denied .inst-card__help > i {
  font-size: 12px;
  color: #9ca3af;
}

.obj_article_details .entry_details > .item.inst-card--denied .inst-card__meta {
  padding: 2px 16px 14px;
}

.obj_article_details .entry_details > .item.inst-card--denied .inst-card__ip {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--gsp-foreground);
  font-family: ui-monospace, SFMono-Regular, monospace;
  letter-spacing: 0.01em;
  line-height: 1.35;
}

.inst-card__help {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
  vertical-align: middle;
  cursor: help;
}

.inst-card__help > i {
  font-size: 12px;
  color: #9ca3af;
  transition: color 0.15s;
}

.inst-card__help:hover > i,
.inst-card__help:focus > i {
  color: #6b7280;
}

.inst-card__tooltip {
  display: none;
  position: fixed;
  width: 280px;
  padding: 14px 16px;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.6;
  color: #374151;
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  z-index: 10000;
  white-space: normal;
  text-transform: none;
  letter-spacing: normal;
}

.inst-card__tooltip a {
  color: var(--gsp-primary);
  text-decoration: underline;
  font-weight: 500;
}

/* ── Access Panel (Premium Article Access Card) ── */
/* ── Access Panel — Shared Base ─────────────────────────────────────── */

.obj_article_details .entry_details > .item.access-panel,
.ap-sb > .item.access-panel {
  display: block !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
  background: var(--gsp-card) !important;
  border: 1px solid var(--gsp-border) !important;
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: var(--gsp-shadow-sm);
  transition: box-shadow 0.2s ease;
}

.obj_article_details .entry_details > .item.access-panel:hover,
.ap-sb > .item.access-panel:hover {
  box-shadow: var(--gsp-shadow-md);
}

.obj_article_details .entry_details > .item.access-panel a,
.ap-sb > .item.access-panel a {
  text-decoration: none !important;
}

.ap-sb > .item.access-panel .access-panel__bar {
  height: 4px;
  background: var(--gsp-primary);
}

.access-panel__bar {
  height: 3px;
  width: 100%;
  background: var(--gsp-primary);
}

.access-panel__content {
  padding: 18px 18px 14px;
}

.access-panel__row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.access-panel__icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 18px;
  overflow: hidden;
}

.access-panel__icon--buy {
  background: var(--gsp-muted);
  color: var(--gsp-muted-foreground);
}

.access-panel__icon--granted {
  background: var(--gsp-primary);
  color: #fff;
}
.access-panel__icon--granted:has(.access-panel__icon-logo) {
  background: #fff;
  border: 1px solid var(--gsp-border);
}

.access-panel__icon--oa {
  background: var(--gsp-primary);
  color: #EAB308;
}

.access-panel__icon-logo {
  display: block;
  width: 44px;
  height: 44px;
  max-width: 44px;
  max-height: 44px;
  object-fit: contain;
  border-radius: 6px;
}

.access-panel__info {
  flex: 1;
  min-width: 0;
}

.access-panel__title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 2px !important;
  text-align: left;
  line-height: 1.3;
}

.access-panel__desc {
  font-size: 12px;
  color: var(--gsp-muted-foreground);
  margin: 0;
  text-align: left;
  line-height: 1.4;
  max-width: none;
}

.access-panel__desc strong {
  color: var(--gsp-foreground);
  font-weight: 600;
}

/* ── Granted / OA Status Banner ─────────────────────────────────────── */

.access-panel__status {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--gsp-radius-sm);
  font-size: 13px;
  line-height: 1.4;
}

.access-panel__status--granted,
.access-panel__status--oa {
  background: rgba(4, 69, 151, 0.06);
  border: 1px solid rgba(4, 69, 151, 0.12);
}

.access-panel__status-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gsp-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
  font-size: 10px;
}

.access-panel__status-text {
  flex: 1;
  min-width: 0;
}

.access-panel__status-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--gsp-foreground);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.3;
}

.access-panel__status-sub {
  font-size: 11px;
  color: var(--gsp-muted-foreground);
  line-height: 1.3;
  margin-top: 1px;
}

/* ── Secure Badge ───────────────────────────────────────────────────── */

.access-panel__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 12px;
  color: #94a3b8;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.access-panel__secure > i {
  font-size: 10px;
}

/* ── Recommend to Library ───────────────────────────────────────────── */

.access-panel__recommend-section {
  padding: 10px 18px;
  background: #f8fafc !important;
  border-top: 1px solid var(--gsp-border);
}

/* ── Kill Old Elements ──────────────────────────────────────────────── */

.access-panel__shield {
  display: none !important;
}

.access-panel__banner {
  display: none !important;
}

/* Plugin box in sidebar (citation, etc.) */
.obj_article_details .entry_details .plugin-box {
  margin-top: 16px;
}

.obj_article_details .entry_details .plugin-box .item {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 20px !important;
  margin-bottom: 16px;
}

.obj_article_details .entry_details .plugin-box .item:last-child {
  margin-bottom: 0;
}

.obj_article_details .entry_details .plugin-box .item .label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 12px !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

/* Citation format widget */
.obj_article_details .citation_display .value {
  font-size: 13px !important;
  line-height: 1.7;
  color: #475569;
}

.obj_article_details .citation_display .citation_formats {
  margin-top: 12px !important;
  border-radius: var(--gsp-radius-sm) !important;
  border: 1px solid var(--gsp-border) !important;
  overflow: hidden;
}

.obj_article_details .citation_display .citation_formats_button {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gsp-muted-foreground) !important;
  padding: 12px 14px !important;
  width: 100%;
  background: var(--gsp-card) !important;
  border: none !important;
  cursor: pointer;
  text-align: left;
}

.obj_article_details .citation_display .citation_formats_button::after {
  position: static !important;
  transform: none !important;
  margin-left: 8px;
}

.obj_article_details .citation_display .citation_formats_styles a {
  font-size: 13px !important;
  padding: 8px 14px !important;
}

/* --- Downloads Chart --- */
.obj_article_details .item.downloads_chart {
  border-bottom: none !important;
}

/* --- Mobile Purchase Banner (hidden on desktop) --- */
.purchase-mobile-banner {
  display: none;
}

@media (max-width: 991px) {
  .purchase-mobile-banner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 12px;
    border-radius: var(--gsp-radius-sm);
    background: var(--gsp-muted);
    border: 1px solid var(--gsp-border);
  }

  .purchase-mobile-banner__left {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gsp-muted-foreground);
  }

  .purchase-mobile-banner__left i {
    font-size: 12px;
  }

  .purchase-mobile-banner__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 700;
    border-radius: var(--gsp-radius-sm);
    background: var(--gsp-primary);
    color: #fff;
    text-decoration: none;
    transition: all 0.2s ease;
  }

  .purchase-mobile-banner__btn:hover {
    background: #033576;
    color: #fff;
    text-decoration: none;
  }

  .purchase-mobile-banner__btn i {
    font-size: 12px;
    opacity: 0.7;
  }

  .obj_article_details .entry_details .purchase-card {
    display: none !important;
  }

  .obj_article_details .entry_details .access-panel {
    display: none !important;
  }
}

/* --- Mobile adjustments --- */
@media (max-width: 640px) {
  .obj_article_details {
    padding: 0 16px 40px;
  }
  .obj_article_details .section__title {
    font-size: 20px !important;
  }
  .article-action-bar {
    flex-direction: column;
    align-items: flex-start;
  }
  .obj_article_details .author-info-wrap {
    min-width: 260px !important;
  }

  .article-breadcrumb {
    margin-top: 16px;
    margin-bottom: 16px;
  }

  .article-breadcrumb ol {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

  .article-breadcrumb li + li::before {
    content: '/';
    margin: 0 6px 0 0;
  }

  .article-breadcrumb li {
    font-size: 12px;
    line-height: 1.4;
  }

  .obj_article_details .section__title {
    margin-bottom: 21px !important;
  }

  .purchase-mobile-banner {
    padding: 16px;
    margin-bottom: 16px;
  }
}

/* ========================================
   Content Pages (About, Submissions, Contact, Privacy, etc.)
   ======================================== */

/* --- Notice / Info banner (submissions page) --- */
.gsp-notice {
  background: rgba(4, 69, 151, 0.06);
  border: 1px solid rgba(4, 69, 151, 0.15);
  border-left: 3px solid var(--gsp-primary);
  border-radius: var(--gsp-radius-sm);
  padding: 16px 20px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--gsp-foreground);
  margin-bottom: 40px;
}

.gsp-notice a {
  color: var(--gsp-primary);
  font-weight: 600;
  text-decoration: none;
}

.gsp-notice a:hover {
  text-decoration: underline;
}

/* --- Sub-sections (submissions page) --- */
.page_submissions .gsp-section {
  margin-bottom: 48px;
}

.page_submissions .gsp-section__title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 20px !important;
  padding-left: 16px !important;
  border-left: 3px solid var(--gsp-primary) !important;
  line-height: 1.3 !important;
}

/* --- Contact cards --- */
.page_contact .gsp-content {
  max-width: 960px;
}

.gsp-contact-page {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.gsp-contact-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 32px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(4, 69, 151, 0.12);
  border-radius: var(--gsp-radius-lg);
  box-shadow: var(--gsp-shadow-sm);
}

.gsp-contact-intro__content {
  flex: 1;
  min-width: 0;
}

.gsp-contact-intro__eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gsp-primary);
  margin-bottom: 10px;
}

.gsp-contact-intro__title {
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: none !important;
}

.gsp-contact-intro__text {
  font-size: 15px;
  line-height: 1.7;
  color: var(--gsp-muted-foreground);
  margin: 0 !important;
  max-width: 560px;
}

.gsp-contact-intro__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 280px;
}

.gsp-contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 999px;
  color: var(--gsp-foreground);
  box-shadow: var(--gsp-shadow-sm);
}

.gsp-contact-pill i {
  color: var(--gsp-primary);
  font-size: 13px;
}

.gsp-contact-pill span,
.gsp-contact-pill a {
  color: inherit;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
}

.gsp-contact-pill a:hover {
  color: var(--gsp-primary);
}

.gsp-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
  align-items: stretch;
}

.gsp-contact-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  height: 100%;
  padding: 28px;
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius-lg);
  margin-bottom: 0;
  box-shadow: var(--gsp-shadow-sm);
  transition: box-shadow var(--gsp-transition), transform var(--gsp-transition), border-color var(--gsp-transition);
}

.gsp-contact-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--gsp-shadow-md);
  border-color: rgba(4, 69, 151, 0.18);
}

.gsp-contact-card--address {
  grid-column: 1 / -1;
}

.gsp-contact-card--principal .gsp-contact-card__icon,
.gsp-contact-card--support .gsp-contact-card__icon {
  align-self: center;
}

.gsp-contact-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  background: rgba(4, 69, 151, 0.08);
  border-radius: 50%;
  color: var(--gsp-primary);
  font-size: 18px;
}

.gsp-contact-card__body {
  flex: 1;
  min-width: 0;
}

.gsp-contact-card__label {
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gsp-muted-foreground) !important;
  margin: 0 0 8px !important;
  border: none !important;
  padding: 0 !important;
}

.gsp-contact-card__name {
  font-size: 18px;
  font-weight: 600;
  color: var(--gsp-foreground);
  margin-bottom: 6px;
}

.gsp-contact-card__meta {
  font-size: 14px;
  color: var(--gsp-muted-foreground);
  margin-bottom: 4px;
}

.gsp-contact-card__row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #475569;
  margin-top: 8px;
}

.gsp-contact-card__row i {
  color: var(--gsp-primary);
  font-size: 13px;
  width: 16px;
  text-align: center;
}

.gsp-contact-card__row a {
  color: var(--gsp-primary);
  text-decoration: none;
}

.gsp-contact-card__row a:hover {
  text-decoration: underline;
}

.gsp-contact-card__value {
  font-size: 14px;
  line-height: 1.7;
  color: #475569;
}

.gsp-contact-card__value a {
  color: var(--gsp-primary);
  text-decoration: none;
  font-weight: 500;
}

.gsp-contact-card__value a:hover {
  text-decoration: underline;
}

/* Ensure prose container doesn't interfere with contact cards */
.gsp-prose .gsp-contact-card {
  margin-bottom: 16px;
}

.gsp-prose .gsp-contact-card h3 {
  margin: 0 0 8px !important;
  border: none !important;
  padding: 0 !important;
}

.gsp-prose .gsp-contact-card p {
  margin: 0 !important;
}

/* --- Mobile: Contact cards --- */
@media (max-width: 768px) {
  .page_contact .gsp-content {
    max-width: 720px;
  }

  .gsp-contact-intro {
    flex-direction: column;
    align-items: flex-start;
    padding: 22px 20px;
  }

  .gsp-contact-intro__title {
    font-size: 24px !important;
  }

  .gsp-contact-intro__actions {
    min-width: 0;
    width: 100%;
  }

  .gsp-contact-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .gsp-contact-card {
    flex-direction: column;
    gap: 12px;
    padding: 22px 20px;
  }

  .gsp-contact-card__icon,
  .gsp-contact-card--principal .gsp-contact-card__icon,
  .gsp-contact-card--support .gsp-contact-card__icon {
    align-self: flex-start;
  }
}

/* ========================================
   Announcements Page
   ======================================== */

.gsp-announcements-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 24px;
}

.gsp-announcement-card {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  overflow: hidden;
  transition: box-shadow var(--gsp-transition), transform var(--gsp-transition);
}

.gsp-announcement-card:hover {
  box-shadow: var(--gsp-shadow-md);
  transform: translateY(-2px);
}

.gsp-announcement-card__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.gsp-announcement-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gsp-announcement-card__body {
  padding: 24px;
}

.gsp-announcement-card__date {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: var(--gsp-muted-foreground);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}

.gsp-announcement-card__date i {
  font-size: 11px;
}

.gsp-announcement-card__title {
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin: 0 0 10px !important;
  border: none !important;
  padding: 0 !important;
}

.gsp-announcement-card__title a {
  color: var(--gsp-foreground) !important;
  text-decoration: none !important;
}

.gsp-announcement-card__title a:hover {
  color: var(--gsp-primary) !important;
}

.gsp-announcement-card__summary {
  font-size: 14px;
  line-height: 1.6;
  color: var(--gsp-muted-foreground);
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gsp-announcement-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
}

.gsp-announcement-card__link:hover {
  color: var(--gsp-primary-light);
  text-decoration: none;
}

.gsp-announcement-card__link i {
  font-size: 11px;
  transition: transform var(--gsp-transition);
}

.gsp-announcement-card__link:hover i {
  transform: translateX(3px);
}

/* --- Empty state --- */
.gsp-empty-state {
  text-align: center;
  padding: 80px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.gsp-empty-state__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--gsp-muted);
  color: var(--gsp-muted-foreground);
  font-size: 28px;
  margin-bottom: 20px;
}

.gsp-empty-state__title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--gsp-foreground) !important;
  margin: 0 0 8px !important;
  border: none !important;
  padding: 0 !important;
}

.gsp-empty-state__text {
  font-size: 14px;
  color: var(--gsp-muted-foreground);
  max-width: 360px;
  margin: 0 auto;
  line-height: 1.6;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

/* --- Mobile: Announcements --- */
@media (max-width: 640px) {
  .gsp-announcements-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .gsp-announcement-card__body {
    padding: 16px;
  }
}

/* ========================================
   Forthcoming / Online First Page
   ======================================== */

.page_forthcoming {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 48px 24px 80px;
}

.page_forthcoming .section__title {
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--gsp-foreground) !important;
  border: none !important;
  border-left: 3px solid var(--gsp-primary) !important;
  padding: 0 0 0 16px !important;
  margin-bottom: 32px !important;
}

.gsp-forthcoming-content {
  padding: 0;
}

.gsp-forthcoming-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.gsp-forthcoming-card {
  background: var(--gsp-card);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-radius);
  padding: 24px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  transition: box-shadow var(--gsp-transition), transform var(--gsp-transition);
}

.gsp-forthcoming-card:hover {
  box-shadow: var(--gsp-shadow-md);
  transform: translateY(-1px);
}

.gsp-forthcoming-card__body {
  flex: 1;
  min-width: 0;
}

.gsp-forthcoming-card__title {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  margin: 0 0 8px !important;
  border: none !important;
  padding: 0 !important;
}

.gsp-forthcoming-card__title a {
  color: var(--gsp-foreground) !important;
  text-decoration: none !important;
}

.gsp-forthcoming-card__title a:hover {
  color: var(--gsp-primary) !important;
}

.gsp-forthcoming-card__subtitle {
  display: block;
  font-weight: 400;
  font-size: 14px;
  color: var(--gsp-muted-foreground);
  margin-top: 4px;
}

.gsp-forthcoming-card__authors {
  font-size: 14px;
  color: var(--gsp-muted-foreground);
  margin: 0 0 10px;
  line-height: 1.5;
}

.gsp-forthcoming-card__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.gsp-forthcoming-card__date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--gsp-muted-foreground);
}

.gsp-forthcoming-card__date i {
  font-size: 11px;
}

.gsp-forthcoming-card__actions {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.gsp-forthcoming-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gsp-primary);
  text-decoration: none;
  padding: 8px 16px;
  border: 1px solid var(--gsp-primary);
  border-radius: var(--gsp-radius-sm);
  transition: all var(--gsp-transition);
  white-space: nowrap;
}

.gsp-forthcoming-card__link:hover {
  background: var(--gsp-primary);
  color: var(--gsp-primary-foreground);
  text-decoration: none;
}

.gsp-forthcoming-card__link i {
  font-size: 11px;
  transition: transform var(--gsp-transition);
}

.gsp-forthcoming-card__link:hover i {
  transform: translateX(3px);
}

/* Open Access badge (shared) */
.gsp-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: 4px;
}

.gsp-badge--open {
  background: #dcfce7;
  color: #15803d;
}

/* --- University/Institution Logo (desktop header: after Login, in flex flow) --- */
.gsp-uni-logo {
  position: static !important;
  flex-shrink: 0;
  display: flex !important;
  align-items: center;
  margin: 0 0 0 16px !important;
  padding: 0 !important;
  background: transparent;
  z-index: auto;
}
.gsp-uni-logo img {
  height: 32px;
  width: auto;
  max-height: 40px;
  display: block;
}
@media (max-width: 1199px) {
  .gsp-uni-logo {
    display: none !important;
  }
}
/* Task count badge next to username */
.pkp_navigation_user > li.profile > a .task_count {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  margin-left: 6px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  background: #e2e8f0 !important;
  color: #475569 !important;
}
.pkp_navigation_user > li.profile > a .task_count:empty {
  display: none !important;
}

/* User dropdown menu */
.pkp_navigation_user > li.profile > ul {
  min-width: 13em;
  margin-top: 4px;
  padding: 4px 0 !important;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.pkp_navigation_user > li.profile > ul li {
  list-style: none;
}
.pkp_navigation_user > li.profile > ul a {
  display: block;
  padding: 8px 16px !important;
  font-size: 14px !important;
  color: #374151 !important;
  text-decoration: none !important;
  transition: background 0.15s;
}
.pkp_navigation_user > li.profile > ul a:hover,
.pkp_navigation_user > li.profile > ul a:focus {
  background: #f1f5f9 !important;
  color: #111827 !important;
}

/* --- Mobile: Forthcoming --- */
@media (max-width: 640px) {
  .gsp-forthcoming-card {
    flex-direction: column;
    gap: 16px;
    padding: 16px;
  }
  .gsp-forthcoming-card__actions {
    width: 100%;
  }
  .gsp-forthcoming-card__link {
    width: 100%;
    justify-content: center;
  }
}

/* ===== Quick Stats Bar ===== */
.quick-stats {
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  padding: 28px 20px;
  margin: 0 0 32px;
}
.quick-stats__inner {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px 16px;
  align-items: start;
}
.quick-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 0;
}
.quick-stats__number {
  font-size: 28px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.1;
}
.quick-stats__number--access {
  font-size: 22px;
  letter-spacing: 0.02em;
}
.quick-stats__label {
  font-size: 13px;
  color: #64748b;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
@media (max-width: 1024px) {
  .quick-stats__inner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .quick-stats__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .quick-stats__number {
    font-size: 24px;
  }
  .quick-stats__number--access {
    font-size: 20px;
  }
}

/* ===== Just Published (Latest Articles) ===== */
.latest-articles {
  padding: 28px 0;
}
.latest-articles .section__title {
  margin-bottom: 16px;
}
.latest-articles__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.latest-articles__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid #e2e8f0;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.latest-articles__item:first-child {
  border-top: 1px solid #e2e8f0;
}
.latest-articles__item:hover {
  background: #f8fafc;
}
.latest-articles__date {
  flex-shrink: 0;
  display: inline-block;
  min-width: 90px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: #3b82f6;
  border-radius: 4px;
  padding: 4px 8px;
  text-align: center;
  line-height: 1.3;
  margin-top: 2px;
}
.latest-articles__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.latest-articles__title {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.4;
}
.latest-articles__authors {
  font-size: 13px;
  color: #64748b;
  line-height: 1.3;
}
@media (max-width: 640px) {
  .latest-articles__item {
    flex-direction: column;
    gap: 6px;
  }
  .latest-articles__date {
    min-width: auto;
  }
}

/* ===== Most Read Articles ===== */
.most-read {
  padding: 28px 0;
}
.most-read .section__title {
  margin-bottom: 16px;
}
.most-read__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.most-read__card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.15s, border-color 0.15s;
}
.most-read__card:hover {
  border-color: #3b82f6;
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);
}
.most-read__rank {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #3b82f6;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}
.most-read__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.most-read__title {
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.most-read__authors {
  font-size: 12px;
  color: #64748b;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.most-read__downloads {
  font-size: 12px;
  color: #94a3b8;
}
.most-read__downloads i {
  margin-right: 2px;
}
@media (max-width: 900px) {
  .most-read__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .most-read__grid {
    grid-template-columns: 1fr;
  }
}

/* ═══ Article Page Redesign (ap-*) ═══ */

/* Page wrapper */
.ap-page { max-width: var(--gsp-max-width); margin: 0 auto; padding: 0 24px; }

/* Breadcrumb */
.ap-breadcrumb {
  font-size: 15px; color: var(--gsp-muted-foreground);
  padding: 20px 0 16px; line-height: 1.5;
}
.ap-breadcrumb a { color: var(--gsp-primary); text-decoration: none; font-weight: 500; }
.ap-breadcrumb a:hover { text-decoration: underline; }
.ap-bc-sep { margin: 0 8px; color: #cbd5e1; }
.ap-bc-current { color: var(--gsp-fg); font-weight: 500; }

@media (max-width: 767px) {
  .ap-breadcrumb { font-size: 12.5px; padding: 14px 0 10px; }
  .ap-bc-sep { margin: 0 6px; }
}

/* Two-column layout — sidebar sits at the top alongside metadata */
.ap-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px; align-items: start; padding: 0 0 64px;
}
@media (max-width: 991px) { .ap-layout { grid-template-columns: 1fr; gap: 28px; } }
.ap-main { min-width: 0; }
.ap-sb {
  position: sticky; top: 80px;
  align-self: start;
}
@media (max-width: 991px) {
  .ap-sb { position: static; }
}

/* ── Tinted metadata card (badge → affiliations) ── */
.ap-meta-card {
  background: #f6f8fb;
  border: 1px solid #e8edf4;
  border-radius: 10px;
  padding: 8px 28px 20px;
  margin-bottom: 20px;
}

/* Article type badge */
.ap-type {
  display: inline-block; font-size: 11px; font-weight: 600;
  color: var(--gsp-primary); background: rgba(4,69,151,0.08);
  border: 1px solid rgba(4,69,151,0.15); border-radius: 999px;
  padding: 3px 14px; margin-bottom: 12px;
  text-transform: uppercase; letter-spacing: 0.05em;
}

/* Title */
.ap-title {
  font-size: 26px; font-weight: 700; letter-spacing: -0.02em;
  line-height: 1.3; color: var(--gsp-fg);
  margin: 0 0 10px;
}
.ap-subtitle {
  font-size: 18px; font-weight: 500; color: #475569;
  line-height: 1.4; margin-bottom: 10px;
}

/* Meta line */
.ap-meta-row {
  display: flex; align-items: flex-start; gap: 20px;
}
.ap-meta-row__cover {
  width: 120px; height: auto; object-fit: contain;
  border-radius: 6px; border: 1px solid var(--gsp-border);
  flex-shrink: 0; box-shadow: var(--gsp-shadow-sm);
  margin-top: 2px;
}
.ap-meta-row__info { flex: 1; min-width: 0; }
.ap-meta-journal {
  font-size: 14px; font-weight: 600; color: var(--gsp-muted-foreground);
  margin-bottom: 2px;
}
.ap-meta-vol {
  font-size: 13px; color: var(--gsp-muted-foreground);
  margin-bottom: 2px;
}
.ap-meta-doi {
  font-size: 13px; color: var(--gsp-muted-foreground);
  margin-bottom: 32px;
}
.ap-doi-inline { font-weight: 500; color: var(--gsp-primary); }
.ap-meta-row__info .ap-galleys { margin-bottom: 0; }

/* Galleys */
.ap-galleys {
  display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 20px;
}
.ap-galleys .galley_link,
.ap-galleys .obj_galley_link a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 16px; font-size: 13px; font-weight: 600;
  border-radius: 6px; border: 1px solid #d0d9e6;
  color: var(--gsp-primary); background: #fff;
  transition: all 0.15s; text-decoration: none;
}
.ap-galleys .galley_link:hover,
.ap-galleys .obj_galley_link a:hover {
  background: var(--gsp-primary); color: #fff; border-color: var(--gsp-primary);
}
.ap-galley-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 18px; font-size: 13px; font-weight: 600;
  border-radius: 6px; text-decoration: none; transition: all 0.15s;
  line-height: 1.4; white-space: nowrap; cursor: pointer;
}
.ap-galley-btn--preview {
  border: 1px solid #d0d9e6; color: var(--gsp-primary); background: #fff;
}
.ap-galley-btn--preview:hover {
  background: var(--gsp-muted); border-color: var(--gsp-primary); color: var(--gsp-primary);
  text-decoration: none;
}
.ap-galley-btn--pdf {
  border: 1px solid #d0d9e6; color: var(--gsp-primary); background: #fff;
}
.ap-galley-btn--pdf:hover {
  background: var(--gsp-primary); color: #fff; border-color: var(--gsp-primary);
  text-decoration: none;
}
.ap-galley-btn--buy {
  border: none; color: #fff; background: var(--gsp-primary);
}
.ap-galley-btn--buy:hover {
  background: var(--gsp-primary-dark); color: #fff; text-decoration: none;
}
.ap-galley-restricted {
  font-size: 12.5px; color: var(--gsp-muted-foreground);
  display: flex; align-items: center; gap: 5px;
  width: 100%; margin-top: 6px;
}
.ap-galley-restricted i { font-size: 11px; }
.ap-galley-access {
  font-size: 12px; display: flex; align-items: center; gap: 5px;
  width: 100%; margin-top: 6px; padding: 6px 10px;
  border-radius: 6px; line-height: 1.4;
}
.ap-galley-access--inst {
  background: rgba(4,69,151,.06); color: var(--gsp-primary);
}
.ap-galley-access--personal {
  background: rgba(22,163,74,.06); color: #16a34a;
}
.ap-galley-access--oa {
  background: none; border: none; color: #16a34a;
  display: inline-flex; width: auto; padding: 4px 0;
}
.ap-galley-access i { font-size: 11px; flex-shrink: 0; }

/* Authors */
.ap-authors { margin-top: 18px; margin-bottom: 4px; }
.ap-authors__label {
  font-size: 11px; font-weight: 600; color: var(--gsp-muted-foreground);
  text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 8px;
}
.ap-author-list { display: flex; flex-wrap: wrap; gap: 2px; align-items: baseline; line-height: 1.9; }
.ap-author__name {
  font-size: 14.5px; font-weight: 600; color: var(--gsp-primary);
  cursor: pointer; border-bottom: 1px dashed transparent;
  transition: border-color 0.15s;
}
.ap-author__name:hover { border-bottom-color: var(--gsp-primary); }
.ap-sup { font-size: 10px; color: var(--gsp-primary); font-weight: 600; position: relative; top: -5px; margin-left: 1px; }
.ap-orcid { display: inline-flex; align-items: center; margin-left: 2px; position: relative; top: 2px; }
.ap-orcid img { width: 16px; height: 16px; }
.ap-author-sep { color: var(--gsp-muted-foreground); font-size: 14px; }

/* Affiliations */
.ap-affils { margin-top: 8px; }
.ap-affil { font-size: 12.5px; color: var(--gsp-muted-foreground); line-height: 1.7; }
.ap-affil sup { font-size: 10px; color: var(--gsp-primary); font-weight: 600; margin-right: 3px; }

/* Timeline (sits below meta card) */
.ap-timeline {
  display: flex; align-items: center; justify-content: center; gap: 0;
  margin: 16px 0 0; padding: 14px 0 0;
  border-top: 1px solid #e2e8f0;
}
.ap-timeline__step {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; flex: 0 0 auto;
}
.ap-timeline__dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--gsp-primary); margin-bottom: 6px;
}
.ap-timeline__label {
  font-size: 10px; font-weight: 600; color: var(--gsp-muted-foreground);
  text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 1px;
}
.ap-timeline__date { font-size: 12px; font-weight: 500; color: var(--gsp-fg); }
.ap-timeline__conn {
  width: 48px; height: 2px; background: var(--gsp-primary);
  margin: 0 6px; margin-bottom: 20px; flex-shrink: 0;
}

/* Metrics bar */
.ap-metrics {
  display: none;
  gap: 0; margin-bottom: 24px;
  border: 1px solid var(--gsp-border); border-radius: 8px;
  overflow: hidden;
}
.ap-metric {
  flex: 1; text-align: center; padding: 14px 12px;
  border-right: 1px solid var(--gsp-border);
}
.ap-metric:last-child { border-right: none; }
.ap-metric__val { font-size: 20px; font-weight: 700; color: var(--gsp-fg); line-height: 1.2; }
.ap-metric__lbl { font-size: 11px; font-weight: 600; color: var(--gsp-muted-foreground); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 3px; }
.ap-metric--cited .ap-metric__val { color: var(--gsp-primary); }

/* Content tabs (Abstract / Full text / References) */
.ap-content-tabs {
  display: flex; gap: 0; border-bottom: 2px solid var(--gsp-border);
  margin-bottom: 24px;
}
.ap-ctab {
  padding: 11px 18px; font-size: 13px; font-weight: 500;
  color: var(--gsp-muted-foreground); cursor: pointer;
  border-bottom: 2px solid transparent; margin-bottom: -2px;
  transition: all 0.15s; white-space: nowrap;
  display: flex; align-items: center; gap: 6px;
}
.ap-ctab:hover { color: var(--gsp-fg); }
.ap-ctab.active { color: var(--gsp-primary); border-bottom-color: var(--gsp-primary); font-weight: 600; }
.ap-ctab i { font-size: 11px; }
.ap-tab-panel { min-height: 40px; }
.ap-tab-placeholder {
  text-align: center; padding: 40px 20px;
  color: var(--gsp-muted-foreground); font-size: 14px;
}
.ap-tab-placeholder i { font-size: 24px; display: block; margin-bottom: 10px; color: var(--gsp-border); }

/* Abstract */
.ap-abstract {
  background: #f8fafc; border: 1px solid var(--gsp-border);
  border-radius: 10px; padding: 24px 26px; margin-bottom: 24px;
}
.ap-abstract__label {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.07em; color: var(--gsp-muted-foreground); margin-bottom: 12px;
}
.ap-abstract__text {
  font-size: 15px; line-height: 1.7; color: #1e293b; text-align: justify;
}

/* Keywords */
.ap-keywords { margin-bottom: 24px; }
.ap-keywords__label {
  font-size: 12px; font-weight: 700; color: var(--gsp-fg); margin-bottom: 10px;
}
.ap-keywords__list { display: flex; flex-wrap: wrap; gap: 7px; }
.ap-kw {
  display: inline-block; padding: 4px 13px; font-size: 12.5px; font-weight: 500;
  color: var(--gsp-primary); background: rgba(4,69,151,0.06);
  border: 1px solid rgba(4,69,151,0.14); border-radius: 999px;
  transition: all 0.15s; text-decoration: none;
}
.ap-kw:hover { background: var(--gsp-primary); color: #fff; border-color: var(--gsp-primary); }

/* References */
.ap-references { margin-bottom: 32px; }
.ap-references__label {
  font-size: 16px; font-weight: 700; color: var(--gsp-fg);
  margin-bottom: 14px; padding-left: 14px;
  border-left: 3px solid var(--gsp-primary);
}
.ap-references__list { font-size: 13.5px; line-height: 1.7; color: #475569; }
.ap-references__list p { margin-bottom: 8px; }
.ap-references__list a { color: var(--gsp-primary); }

/* Related articles */
.ap-related { margin-bottom: 32px; }
.ap-related__heading {
  font-size: 16px; font-weight: 700; color: var(--gsp-fg);
  margin-bottom: 14px; padding-left: 14px;
  border-left: 3px solid var(--gsp-primary);
}
.ap-related__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ap-rcard {
  border: 1px solid var(--gsp-border); border-radius: 8px;
  padding: 14px 16px; transition: all 0.15s;
  text-decoration: none; color: inherit; display: block;
}
.ap-rcard:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); transform: translateY(-1px); }
.ap-rcard__title {
  font-size: 13px; font-weight: 600; line-height: 1.4; color: var(--gsp-fg);
  margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.ap-rcard__authors { font-size: 12px; color: var(--gsp-muted-foreground); margin-bottom: 3px; }
.ap-rcard__meta { font-size: 11px; color: var(--gsp-muted-foreground); }
@media (max-width: 640px) { .ap-related__grid { grid-template-columns: 1fr; } }

/* Hidden staging: Templates::Article::Details output before split (no visible jump; .ap-sb is position:sticky above) */
.ap-details-plugins-root {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ap-details-plugins-root--emptied {
	display: none !important;
}

.ap-article-details-cards {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 14px;
}

/* Sidebar cards */
.ap-sb-card {
  border: 1px solid var(--gsp-border); border-radius: 8px;
  border-left: 3px solid var(--gsp-primary);
  margin-bottom: 14px; overflow: hidden;
}
.ap-sb-card__h {
  font-size: 12.5px; font-weight: 700; color: var(--gsp-fg);
  padding: 12px 16px; background: #f1f5f9;
  border-bottom: 1px solid var(--gsp-border);
  display: flex; align-items: center; gap: 7px;
}
.ap-sb-card__h i { font-size: 11px; color: var(--gsp-muted-foreground); }
.ap-sb-card__b { padding: 14px 16px; }

/* CSL cards: "More" menu is position:absolute — parent .ap-sb-card overflow:hidden would clip it */
.ap-sb-card.ap-sb-card--cite,
.ap-sb-card.ap-sb-card--cite .ap-sb-card__b {
	overflow: visible;
}

/* Cited-by card (prominent) */
.ap-sb-card--cited { border: 2px solid var(--gsp-primary); }
.ap-sb-card--cited .ap-sb-card__h {
  background: rgba(4,69,151,0.06); color: var(--gsp-primary);
}
.ap-sb-card--cited .ap-sb-card__h i { color: var(--gsp-primary); }

/* Skeleton placeholder for citation loading */
.cite-skeleton__row {
  display: flex; align-items: center; gap: 10px; padding: 16px 0;
}
.cite-skeleton__icon {
  width: 28px; height: 28px; border-radius: 4px;
  background: linear-gradient(90deg, #eef1f5 25%, #e2e8f0 50%, #eef1f5 75%);
  background-size: 200% 100%; animation: cite-shimmer 1.5s ease infinite;
}
.cite-skeleton__text {
  flex: 1; height: 16px; border-radius: 4px;
  background: linear-gradient(90deg, #eef1f5 25%, #e2e8f0 50%, #eef1f5 75%);
  background-size: 200% 100%; animation: cite-shimmer 1.5s ease infinite;
}
.cite-skeleton__num {
  width: 32px; height: 24px; border-radius: 4px;
  background: linear-gradient(90deg, #eef1f5 25%, #e2e8f0 50%, #eef1f5 75%);
  background-size: 200% 100%; animation: cite-shimmer 1.5s ease infinite;
}
@keyframes cite-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.cite-skeleton.hidden { display: none; }

/* Strip default plugin chrome inside cited card */
.ap-sb-card--cited .ap-cited-plugin-inner .citations_display { margin: 0; padding: 0; border: none; }
.ap-sb-card--cited .ap-cited-plugin-inner .citations_display > .label { display: none; }
.ap-sb-card--cited .ap-cited-plugin-inner .citations_display > .value { padding: 0; }
.ap-sb-card--cited #citations-loader { display: none !important; }

/* Chips → vertical provider rows (image-style).
   citations.js sets inline style="display:inline-flex" when data arrives;
   we restyle that into a full-width row but NEVER force display ourselves. */
.ap-sb-card--cited .cite-chips {
  flex-direction: column; gap: 0; margin: 0; padding: 0;
}
.ap-sb-card--cited .cite-chip.ap-ready {
  display: flex !important; width: 100%; border: none;
  border-bottom: 1px solid var(--gsp-border); border-radius: 0;
  padding: 16px 0; gap: 10px; align-items: center;
  background: transparent !important; box-shadow: none !important;
}
.ap-sb-card--cited .cite-chip.ap-ready:last-of-type { border-bottom: none; }
.ap-sb-card--cited .cite-chip.ap-ready:hover { background: transparent !important; box-shadow: none !important; }
.ap-sb-card--cited .cite-chip.ap-ready.is-active { background: transparent !important; }
.ap-sb-card--cited .cite-chip__icon { height: 28px; width: auto; }
.ap-sb-card--cited .cite-chip__name {
  display: block !important; flex: 1; font-size: 15px; font-weight: 600;
  color: var(--gsp-fg); line-height: 1;
}
.ap-sb-card--cited .cite-chip__count {
  font-size: 24px; font-weight: 700; line-height: 1;
  background: none !important; color: var(--gsp-primary);
  min-width: auto; height: auto; padding: 0; border-radius: 0;
  cursor: pointer;
}

/* Hide Scopus, Google Scholar, and Europe PMC in sidebar — keep only CrossRef */
.ap-sb-card--cited .cite-chip[data-provider="scopus"] { display: none !important; }
.ap-sb-card--cited .cite-chip[data-provider="google"] { display: none !important; }
.ap-sb-card--cited .cite-chip[data-provider="europepmc"] { display: none !important; }


/* Hide accordion panels (replaced by hover popover) */
.ap-sb-card--cited .cite-panels { display: none !important; }

/* Citation slide-over panel — appended to <body> */
.ap-slide-backdrop {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,.35); z-index: 8999;
  transition: opacity 0.3s ease;
  opacity: 0;
}
.ap-slide-backdrop.show { display: block; opacity: 1; }

.ap-slide {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(55vw, 720px);
  background: #fff; z-index: 9000;
  display: flex; flex-direction: column;
  box-shadow: -8px 0 40px rgba(0,0,0,.15);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(.4,0,.2,1);
}
.ap-slide.show { transform: translateX(0); }

.ap-slide__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 28px 16px; flex-shrink: 0;
  border-bottom: 1px solid var(--gsp-border);
}
.ap-slide__title {
  font-size: 16px; font-weight: 700; color: var(--gsp-fg);
  display: flex; align-items: center; gap: 10px;
}
.ap-slide__title i { color: var(--gsp-primary); font-size: 14px; }
.ap-slide__close {
  background: none; border: none; font-size: 18px; color: var(--gsp-muted-foreground);
  cursor: pointer; padding: 4px 6px; border-radius: 6px; transition: all 0.15s;
}
.ap-slide__close:hover { background: var(--gsp-muted); color: var(--gsp-fg); }

.ap-slide__search-wrap {
  position: relative; padding: 12px 28px; flex-shrink: 0;
  border-bottom: 1px solid var(--gsp-border); background: #fafbfc;
}
.ap-slide__search-icon {
  position: absolute; left: 42px; top: 50%; transform: translateY(-50%);
  font-size: 13px; color: var(--gsp-muted-foreground); pointer-events: none;
}
.ap-slide__search {
  width: 100%; padding: 9px 12px 9px 32px; font-size: 13.5px;
  border: 1px solid var(--gsp-border); border-radius: 8px;
  background: #fff; outline: none; font-family: inherit;
  transition: border-color 0.15s;
}
.ap-slide__search:focus { border-color: var(--gsp-primary); box-shadow: 0 0 0 3px rgba(4,69,151,.08); }

.ap-slide__body {
  flex: 1; overflow-y: auto; padding: 0;
}
.ap-slide__body::-webkit-scrollbar { width: 6px; }
.ap-slide__body::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }

.ap-slide__card {
  padding: 18px 28px; border-bottom: 1px solid #f1f5f9;
  transition: background 0.1s;
}
.ap-slide__card:hover { background: #f8fafc; }
.ap-slide__card:last-child { border-bottom: none; }
.ap-slide__card .cite-row__authors {
  font-size: 13px; color: var(--gsp-muted-foreground); margin-bottom: 4px;
}
.ap-slide__card .cite-row__title {
  font-size: 15px; font-weight: 600; color: var(--gsp-fg);
  line-height: 1.45; margin-bottom: 4px;
}
.ap-slide__card .cite-row__journal {
  font-size: 13px; color: var(--gsp-muted-foreground); font-style: italic;
  margin-bottom: 3px;
}
.ap-slide__card .cite-row__doi {
  font-size: 12.5px;
}
.ap-slide__card .cite-row__doi a {
  color: var(--gsp-primary); text-decoration: none;
}
.ap-slide__card .cite-row__doi a:hover { text-decoration: underline; }

.ap-slide__empty {
  padding: 40px 28px; text-align: center;
  color: var(--gsp-muted-foreground); font-size: 14px;
}

.ap-slide__foot {
  padding: 12px 28px; flex-shrink: 0;
  border-top: 1px solid var(--gsp-border);
  font-size: 12px; font-weight: 600; color: var(--gsp-muted-foreground);
  text-transform: uppercase; letter-spacing: .03em;
  background: #fafbfc;
}

@media (max-width: 767px) {
  .ap-slide { width: 100vw; }
}

/* Altmetric badge area (currently unused, kept for future) */
.ap-altmetric {
  margin-top: 10px; padding-top: 12px;
  border-top: 1px solid var(--gsp-border);
}
.ap-altmetric .altmetric-embed { min-height: 40px; }

/* DOI row */
.ap-doi-row { display: flex; align-items: center; gap: 8px; }
.ap-doi-link {
  font-size: 13px; font-weight: 500; color: var(--gsp-primary);
  word-break: break-all; flex: 1;
}
.ap-copy-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 6px;
  border: 1px solid var(--gsp-border); background: #fff;
  color: var(--gsp-muted-foreground); font-size: 12px; cursor: pointer;
  transition: all 0.15s; flex-shrink: 0;
}
.ap-copy-btn:hover { background: var(--gsp-primary); color: #fff; border-color: var(--gsp-primary); }

/* Share */
/* Stay Updated card — newsletter + social + recommend */
.ap-newsletter {
  display: flex; gap: 0; margin-bottom: 10px;
}
.ap-newsletter__input {
  flex: 1; min-width: 0; padding: 8px 12px;
  border: 1px solid var(--gsp-border); border-right: none;
  border-radius: 6px 0 0 6px; font-size: 13px;
  font-family: var(--gsp-font); color: var(--gsp-foreground);
  outline: none; transition: border-color 150ms ease;
}
.ap-newsletter__input:focus { border-color: var(--gsp-primary); }
.ap-newsletter__input::placeholder { color: #94a3b8; }
.ap-newsletter__btn {
  display: flex; align-items: center; justify-content: center;
  width: 40px; border: none; border-radius: 0 6px 6px 0;
  background: var(--gsp-primary); color: #fff; font-size: 14px;
  cursor: pointer; transition: background 150ms ease;
}
.ap-newsletter__btn:hover { background: var(--gsp-primary-dark); }
.ap-newsletter__msg {
  font-size: 12px; line-height: 1.4; padding: 6px 0; border-radius: 4px;
}
.ap-newsletter__msg--ok { color: #16a34a; }
.ap-newsletter__msg--err { color: #dc2626; }
.ap-sb-card__recommend {
  border-top: 1px solid var(--gsp-border);
  padding: 10px 16px;
}
.ap-sb-card__recommend-link {
  display: flex; align-items: center; gap: 6px;
  width: 100%; padding: 0; border: none; background: none;
  font-size: 12.5px; font-weight: 600; color: var(--gsp-primary);
  cursor: pointer; font-family: var(--gsp-font);
  transition: color 150ms ease;
}
.ap-sb-card__recommend-link:hover { color: var(--gsp-primary-dark); }
.ap-sb-card__recommend-link .fa-arrow-right { margin-left: auto; font-size: 11px; }

.ap-share-row { display: flex; gap: 8px; }
.ap-share-btn {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 4px;
  border: none; color: #fff;
  font-size: 15px; cursor: pointer;
  transition: opacity 0.15s;
}
.ap-share-btn:hover { opacity: 0.85; }
.ap-share-btn[title="LinkedIn"]    { background: #0A66C2; }
.ap-share-btn[title="X / Twitter"] { background: #000; }
.ap-share-btn[title="Email"]       { background: #EA4335; }
.ap-share-btn[title="WeChat"]      { background: #07C160; }
.ap-share-btn[title="Copy link"]   { background: var(--gsp-primary); }

/* Citation */
/* Citation style selector */
.ap-csl-tabs {
  display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px;
  position: relative;
}
.ap-csl-tab {
  padding: 4px 10px; font-size: 11.5px; font-weight: 600;
  border: 1px solid var(--gsp-border); border-radius: 999px;
  background: #fff; color: var(--gsp-muted-foreground);
  cursor: pointer; font-family: inherit; transition: all 0.15s;
  line-height: 1.4; white-space: nowrap;
}
.ap-csl-tab:hover { border-color: var(--gsp-primary); color: var(--gsp-primary); }
.ap-csl-tab.is-active {
  background: var(--gsp-primary); color: #fff; border-color: var(--gsp-primary);
}
.ap-csl-tab--more { background: transparent; border-color: transparent; color: var(--gsp-muted-foreground); }
.ap-csl-tab--more:hover { color: var(--gsp-primary); border-color: transparent; }
.ap-csl-tab--more i { font-size: 9px; margin-left: 2px; }
.ap-csl-more-wrap { position: relative; }
.ap-csl-more-menu {
  display: none; position: absolute; top: calc(100% + 4px); right: 0;
  background: #fff; border: 1px solid var(--gsp-border); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 4px; z-index: 200;
  min-width: 140px;
}
.ap-csl-more-menu.show { display: block; }
.ap-csl-menu-item {
  display: block; width: 100%; text-align: left;
  padding: 6px 12px; font-size: 12px; font-weight: 500;
  border: none; background: none; color: var(--gsp-fg);
  cursor: pointer; font-family: inherit; border-radius: 5px;
  transition: background 0.1s;
}
.ap-csl-menu-item:hover { background: var(--gsp-muted); }
.ap-csl-menu-item.is-active { color: var(--gsp-primary); font-weight: 700; }

.ap-csl-body {
  background: var(--gsp-muted); border-radius: 8px;
  padding: 14px 16px; margin-bottom: 10px; min-height: 48px;
}
.ap-csl-loading { text-align: center; color: var(--gsp-muted-foreground); padding: 8px 0; }
.ap-csl-text { font-size: 12.5px; line-height: 1.7; color: #475569; word-break: break-word; }
.ap-csl-text .csl-entry { margin: 0; }
.ap-csl-text--err { color: #94a3b8; font-style: italic; }

.ap-csl-actions {
  display: flex; align-items: center; gap: 8px;
}
.ap-csl-copy {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 12px; font-size: 12px; font-weight: 600;
  background: var(--gsp-primary); border: 1px solid var(--gsp-primary);
  border-radius: 6px; cursor: pointer; color: #fff;
  font-family: inherit; transition: all 0.15s;
}
.ap-csl-copy:hover { background: var(--gsp-primary-dark); border-color: var(--gsp-primary-dark); }
.ap-dl-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--gsp-border); border-radius: 6px;
  color: var(--gsp-fg); transition: all 0.15s; text-decoration: none;
}
.ap-dl-btn i { font-size: 11px; color: var(--gsp-muted-foreground); }
.ap-dl-btn:hover { border-color: var(--gsp-primary); color: var(--gsp-primary); text-decoration: none; }

/* Toast */
.ap-toast {
  position: fixed; bottom: 24px; left: 50%;
  transform: translateX(-50%) translateY(60px);
  background: var(--gsp-foreground, #0f172a); color: #fff;
  padding: 10px 20px; border-radius: 4px;
  font-size: 13px; font-weight: 500;
  opacity: 0; transition: all 0.3s ease;
  z-index: 9999; pointer-events: none;
}
.ap-toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }

/* Responsive */
@media (max-width: 640px) {
  .ap-meta-card { padding: 18px 16px 14px; }
  .ap-meta-row { flex-direction: column; gap: 12px; }
  .ap-meta-row__cover { width: 90px; }
  .ap-title { font-size: 22px; }
  .ap-timeline { flex-wrap: wrap; gap: 8px; }
  .ap-timeline__conn { width: 24px; }
  .ap-metrics { flex-direction: column; }
  .ap-metric { border-right: none; border-bottom: 1px solid var(--gsp-border); padding: 10px 12px; }
  .ap-metric:last-child { border-bottom: none; }
}

/* ═══ Journal Homepage Redesign (jh-*) ═══ */

/* Per-journal theme colour: --jh-color is set via inline style on .page_index_journal
   when a custom themeColor exists. Override the primary palette so every element
   on the journal page picks up the colour automatically. */
.page_index_journal {
  --gsp-primary: var(--jh-color, #044597);
  --gsp-primary-dark: color-mix(in srgb, var(--gsp-primary), #000 35%);
  --gsp-primary-light: color-mix(in srgb, var(--gsp-primary), #fff 25%);
}

/* Hide the generic stock-photo banner on journal homepages and article pages */
.pkp_page_index .gsp-journal-banner,
.pkp_page_article .gsp-journal-banner { display: none !important; }

/* Hero header */
.jh-hero {
  background: linear-gradient(135deg, color-mix(in srgb, var(--gsp-primary), #000 30%) 0%, var(--gsp-primary) 40%, color-mix(in srgb, var(--gsp-primary), #fff 12%) 100%);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.jh-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.06) 0%, transparent 50%),
              radial-gradient(circle at 75% 80%, rgba(0,0,0,.08) 0%, transparent 40%);
  pointer-events: none;
}
.jh-hero__inner {
  max-width: var(--gsp-max-width);
  margin: 0 auto;
  padding: 22px 24px 24px;
  display: flex;
  gap: 28px;
  align-items: flex-start;
  position: relative;
  z-index: 1;
}
.jh-cover { width: 144px; flex-shrink: 0; }
.jh-cover img { width: 100%; height: auto; border-radius: 6px; border: 2px solid rgba(255,255,255,.3); box-shadow: 0 4px 20px rgba(0,0,0,.3); }
.jh-info { flex: 1; min-width: 0; text-shadow: 0 1px 3px rgba(0,0,0,.15); }
.jh-abbr { font-size: 12px; font-weight: 700; color: rgba(255,255,255,.85); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 4px; }
.jh-title { font-size: 24px; font-weight: 800; letter-spacing: -.02em; line-height: 1.25; margin-bottom: 6px; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.2); }
.jh-editors { font-size: 12.5px; color: rgba(255,255,255,.92); line-height: 1.6; margin-bottom: 14px; }
.jh-editors strong { font-weight: 600; color: #fff; }

/* Metric pills */
.jh-pills { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
.jh-pill {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600;
  padding: 5px 12px; border-radius: 20px;
  background: rgba(255,255,255,.18); color: #fff;
  backdrop-filter: blur(4px);
}
.jh-pill i { font-size: 10px; }
.jh-pill--accent { background: rgba(255,255,255,.30); }

/* Action buttons */
.jh-actions { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.jh-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; font-size: 12.5px; font-weight: 600; border-radius: 6px; cursor: pointer; border: none; transition: all 0.15s; text-decoration: none; }
.jh-btn i { font-size: 11px; }
.jh-btn--white { background: #fff; color: var(--gsp-primary); }
.jh-btn--white:hover { background: #f0f4ff; color: var(--gsp-primary-dark); }
.jh-btn--outline { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.45); }
.jh-btn--outline:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.7); color: #fff; }

@media (max-width: 768px) {
  .jh-hero__inner { flex-direction: column; align-items: center; text-align: center; }
  .jh-cover { width: 104px; }
  .jh-pills { justify-content: center; }
  .jh-actions { justify-content: center; }
}

/* Content tabs */
.jh-tabs-bar { border-bottom: 1px solid var(--gsp-border); margin-bottom: 0; }
.jh-tabs-inner { max-width: var(--gsp-max-width); margin: 0 auto; padding: 0 24px; display: flex; gap: 0; overflow-x: auto; overflow-y: hidden; }
.jh-ctab { padding: 14px 20px; font-size: 13.5px; font-weight: 500; color: var(--gsp-muted-foreground); cursor: pointer; border-bottom: 2px solid transparent; white-space: nowrap; transition: all 0.15s; margin-bottom: -1px; }
.jh-ctab:hover { color: var(--gsp-foreground); }
.jh-ctab.active { color: var(--gsp-primary); border-bottom-color: var(--gsp-primary); font-weight: 600; }
.jh-ctab i { margin-right: 5px; font-size: 11px; }

/* Two-column layout */
.jh-page { max-width: var(--gsp-max-width); margin: 0 auto; padding: 0 24px; }
.jh-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; align-items: start; padding: 28px 0 64px; }
@media (max-width: 991px) { .jh-layout { grid-template-columns: 1fr; gap: 32px; } }

/* Scope card (tinted box with left accent) */
.jh-scope-card {
  background: #f1f5f9;
  border-left: 4px solid var(--gsp-primary);
  border-radius: 0 8px 8px 0;
  padding: 18px 20px 14px;
  margin-bottom: 28px;
}
.jh-scope-card__head {
  font-size: 15px; font-weight: 700;
  color: var(--gsp-foreground);
  margin-bottom: 10px;
  display: flex; align-items: center; gap: 7px;
}
.jh-scope-card__head i { font-size: 12px; color: var(--gsp-primary); }
.jh-scope-card__body { font-size: 14px; line-height: 1.8; color: #475569; position: relative; }
.jh-scope-card__body.collapsed {
  max-height: 200px; overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 75%, transparent);
  mask-image: linear-gradient(to bottom, #000 75%, transparent);
}
.jh-scope-card__toggle {
  font-size: 13px; font-weight: 600; color: var(--gsp-primary);
  cursor: pointer; border: none; background: none;
  margin-top: 6px; padding: 0;
  display: flex; align-items: center; gap: 4px;
}
.jh-scope-card__icon { font-size: 9px; transition: transform 0.2s; }

/* Issue header */
.jh-issue-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 8px; }
.jh-issue-title { font-size: 18px; font-weight: 700; color: var(--gsp-foreground); }
.jh-issue-title span { font-weight: 400; color: var(--gsp-muted-foreground); }
.jh-issue-link { font-size: 13px; font-weight: 600; color: var(--gsp-primary); }

/* Trending list (most read / most downloaded) */
.jh-trending { margin-top: 8px; }
.jh-trending__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.jh-trending__title { font-size: 16px; font-weight: 700; color: var(--gsp-foreground); }
.jh-trending__period { font-size: 12px; color: var(--gsp-muted-foreground); border: 1px solid var(--gsp-border); border-radius: 6px; padding: 4px 10px; }
.jh-titem { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gsp-border); }
.jh-titem:last-child { border-bottom: none; }
.jh-titem__rank { font-size: 18px; font-weight: 800; color: var(--gsp-border); min-width: 24px; text-align: right; padding-top: 2px; }
.jh-titem:nth-child(-n+3) .jh-titem__rank { color: var(--gsp-primary); }
.jh-titem__body { flex: 1; min-width: 0; }
.jh-titem__title { font-size: 13.5px; font-weight: 600; line-height: 1.4; margin-bottom: 2px; }
.jh-titem__title a { color: var(--gsp-foreground); text-decoration: none; }
.jh-titem__title a:hover { color: var(--gsp-primary); }
.jh-titem__meta { font-size: 12px; color: var(--gsp-muted-foreground); }

/* Sidebar */
.jh-sb { position: sticky; top: 76px; }
.jh-sb-card { border: 1px solid var(--gsp-border); border-radius: 8px; margin-bottom: 14px; overflow: hidden; }
.jh-sb-h { font-size: 12.5px; font-weight: 700; color: var(--gsp-foreground); padding: 12px 16px; background: var(--gsp-accent, #f1f5f9); border-bottom: 1px solid var(--gsp-border); display: flex; align-items: center; gap: 6px; }
.jh-sb-h i { font-size: 11px; color: var(--gsp-muted-foreground); }
.jh-sb-b { padding: 14px 16px; }

/* Access notice */
.jh-access { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 8px; font-size: 11.5px; line-height: 1.5; margin-bottom: 14px; }
.jh-access i { font-size: 12px; flex-shrink: 0; }
.jh-access a { font-weight: 600; text-decoration: underline; }
.jh-access--oa { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.jh-access--oa i { color: #16a34a; }
.jh-access--granted { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; }
.jh-access--granted i { color: #2563eb; }
.jh-access--denied { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.jh-access--denied i { color: #d97706; }
.jh-access--denied a { color: #92400e; }
.jh-access--stack { flex-direction: column; align-items: stretch; gap: 10px; }
.jh-access__main { display: flex; align-items: center; gap: 8px; }
.jh-access-ip { display: flex; align-items: flex-start; gap: 8px; padding: 8px 12px; margin-bottom: 14px; border-radius: 8px; font-size: 11px; line-height: 1.45; background: #f8fafc; border: 1px solid #e2e8f0; color: #475569; }
.jh-access-ip--inset { margin-bottom: 0; background: rgba(255, 255, 255, 0.55); border-color: rgba(146, 64, 14, 0.22); color: #78350f; }
.jh-access-ip--inset i { color: #b45309; }
.jh-access-ip--inset .jh-access-ip__val { color: #451a03; }
.jh-access-ip i { font-size: 11px; margin-top: 2px; flex-shrink: 0; color: #64748b; }
.jh-access-ip__val { font-weight: 600; color: #0f172a; letter-spacing: 0.02em; }

/* Newsletter */
.jh-newsletter { display: flex; gap: 0; margin-bottom: 10px; }
.jh-newsletter__input { flex: 1; padding: 8px 12px; border: 1px solid var(--gsp-border); border-radius: 6px 0 0 6px; font-size: 12.5px; outline: none; min-width: 0; }
.jh-newsletter__input:focus { border-color: var(--gsp-primary); }
.jh-newsletter__btn { padding: 8px 14px; background: var(--gsp-primary); color: #fff; border: 1px solid var(--gsp-primary); border-radius: 0 6px 6px 0; cursor: pointer; font-size: 12px; }
.jh-newsletter__btn:hover { background: var(--gsp-primary-dark); }
.jh-newsletter__msg { font-size: 12px; padding: 6px 10px; border-radius: 4px; margin-bottom: 8px; }
.jh-newsletter__msg--ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.jh-newsletter__msg--err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

/* Social row */
.jh-social-row { display: flex; gap: 8px; }
.jh-soc {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 4px;
  border: none; color: #fff; font-size: 14px;
  transition: opacity 0.15s; text-decoration: none;
}
.jh-soc:hover { opacity: 0.85; color: #fff; }
.jh-soc[title="X / Twitter"] { background: #000; }
.jh-soc[title="LinkedIn"]    { background: #0A66C2; }
.jh-soc[title="WeChat"]      { background: #07C160; }

/* Online first sidebar articles */
.jh-rec { padding: 10px 0; border-bottom: 1px solid var(--gsp-border); }
.jh-rec:last-child { border-bottom: none; }
.jh-rec__date { font-size: 11px; font-weight: 600; color: var(--gsp-muted-foreground); margin-bottom: 2px; }
.jh-rec__title { font-size: 12.5px; font-weight: 600; line-height: 1.4; margin-bottom: 1px; }
.jh-rec__title a { color: var(--gsp-foreground); text-decoration: none; }
.jh-rec__title a:hover { color: var(--gsp-primary); }
.jh-rec__auth { font-size: 11.5px; color: var(--gsp-muted-foreground); }

/* Info rows */
.jh-info-r { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--gsp-border); font-size: 12.5px; }
.jh-info-r:last-child { border-bottom: none; }
.jh-info-l { color: var(--gsp-muted-foreground); }
.jh-info-v { font-weight: 600; color: var(--gsp-foreground); text-align: right; }

/* Indexing logos */
.jh-idx-logos { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: center; justify-content: center; padding: 12px 10px; }
.jh-idx-logo { height: 38px; width: auto; transition: transform 0.15s; }
.jh-idx-logo:hover { transform: scale(1.08); }

/* Sidebar announcements — compact, font-consistent */
.jh-sb-announce .homepage_about { margin: 0; padding: 0; }
.jh-sb-announce .section__title { display: none; }
.jh-sb-announce .obj_announcement_summary {
  padding: 10px 0;
  border-bottom: 1px solid var(--gsp-border);
  font-family: inherit;
}
.jh-sb-announce .obj_announcement_summary:last-child { border-bottom: none; }
.jh-sb-announce .obj_announcement_summary h3,
.jh-sb-announce .obj_announcement_summary h4 {
  font-family: inherit;
  font-size: 12.5px; font-weight: 600;
  margin: 0 0 3px; line-height: 1.4;
}
.jh-sb-announce .obj_announcement_summary h3 a,
.jh-sb-announce .obj_announcement_summary h4 a {
  color: var(--gsp-foreground); text-decoration: none;
}
.jh-sb-announce .obj_announcement_summary h3 a:hover,
.jh-sb-announce .obj_announcement_summary h4 a:hover {
  color: var(--gsp-primary);
}
.jh-sb-announce .obj_announcement_summary .date {
  font-family: inherit;
  font-size: 11px; color: var(--gsp-muted-foreground);
}
.jh-sb-announce .obj_announcement_summary .summary {
  font-family: inherit;
  font-size: 12px; color: #64748b; line-height: 1.5;
  margin-top: 4px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.jh-sb-announce .more { margin: 0; padding: 0; border: none; }
.jh-sb-announce a.read_more {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: inherit; font-size: 11.5px; font-weight: 600;
  color: var(--gsp-primary); margin-top: 6px;
}

/* ── Full-text inline article (Elsevier-style) ── */

.full-text-article {
  margin-top: 32px !important;
  border-top: 2px solid var(--gsp-primary, #044597) !important;
  padding-top: 0 !important;
}

.full-text-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 24px;
}

.full-text-tab {
  background: none;
  border: none;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 600;
  color: #6b7280;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  font-family: system-ui, -apple-system, sans-serif;
  transition: color 0.15s, border-color 0.15s;
}

.full-text-tab:hover {
  color: var(--gsp-primary, #044597);
}

.full-text-tab--active {
  color: var(--gsp-primary, #044597);
  border-bottom-color: var(--gsp-primary, #044597);
}

.full-text-content {
  font-family: 'Charter', 'Georgia', 'Times New Roman', serif;
  font-size: 16.5px;
  line-height: 1.8;
  color: #1a1a1a;
}

.full-text-content h2 {
  font-size: 20px !important;
  font-weight: 700 !important;
  margin: 36px 0 14px !important;
  padding-top: 12px !important;
  border-top: 1px solid #e5e7eb !important;
  color: #111827 !important;
  font-family: system-ui, -apple-system, sans-serif !important;
}

.full-text-content h3 {
  font-size: 17px !important;
  font-weight: 600 !important;
  margin: 28px 0 10px !important;
  color: #111827 !important;
  font-family: system-ui, -apple-system, sans-serif !important;
}

.full-text-content h4 {
  font-size: 15px !important;
  font-weight: 600 !important;
  margin: 20px 0 8px !important;
  color: #374151 !important;
  font-family: system-ui, -apple-system, sans-serif !important;
}

.full-text-content p {
  margin: 0 0 14px !important;
}

.full-text-content .figure {
  text-align: center;
  margin: 24px 0;
}

.full-text-content .figure img {
  max-width: 100%;
  height: auto;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  cursor: zoom-in;
}

.full-text-content .abstract {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 16px 20px;
  margin-bottom: 24px;
  font-size: 15px;
  line-height: 1.7;
}

.full-text-content .math-block {
  display: block;
  overflow-x: auto;
  margin: 16px 0;
  padding: 8px 0;
  text-align: center;
}

.full-text-content .ref-list {
  font-size: 14px;
  line-height: 1.65;
}

.full-text-content .ref-list p {
  padding-left: 2em !important;
  text-indent: -2em;
  margin-bottom: 6px !important;
}

.full-text-figures-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.full-text-figure-item {
  text-align: center;
}

.full-text-figure-item img {
  max-width: 100%;
  height: auto;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
}

.full-text-figure-item p {
  font-size: 13px;
  color: #6b7280;
  margin-top: 6px;
}

@media (max-width: 768px) {
  .full-text-figures-grid {
    grid-template-columns: 1fr;
  }
  .full-text-content {
    font-size: 15.5px;
  }
}

/* ── My Account / My Purchases / Edit Profile ── */

.page_my_account,
.page_my_purchases,
.page_edit_profile {
  padding: 60px 20px 80px !important;
  background: var(--gsp-bg) !important;
  font-family: var(--gsp-font) !important;
  font-size: 15px;
}

.acct-container {
  max-width: 700px;
  margin: 0 auto;
}

/* Profile card */
.acct-profile {
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 4px;
  overflow: hidden;
}

.acct-profile__top {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 24px 16px;
  background: #f8fafc;
  border-bottom: 1px solid var(--gsp-border);
}

.acct-avatar {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 4px;
  background: var(--gsp-primary);
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 1px;
}

.acct-profile__name-block {
  min-width: 0;
}

.acct-name {
  font-size: 22px;
  font-weight: 700;
  color: var(--gsp-text);
  margin: 0;
  line-height: 1.3;
}

.acct-since {
  font-size: 13px;
  color: #94a3b8;
  margin-top: 2px;
}

.acct-profile__details {
  padding: 16px 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.acct-detail {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.acct-detail__label {
  font-size: 13px;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  min-width: 90px;
  flex-shrink: 0;
}

.acct-detail__value {
  font-size: 16px;
  color: var(--gsp-text);
}

/* Section cards */
.acct-sections {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 16px;
}

.acct-section {
  padding: 20px;
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 4px;
}

.acct-section__icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  background: #eef4fb;
  color: var(--gsp-primary);
  font-size: 15px;
  margin-bottom: 12px;
}

.acct-section__title {
  font-size: 16px;
  font-weight: 600;
  color: var(--gsp-text);
  margin: 0 0 6px;
}

.acct-section__desc {
  font-size: 14px;
  color: var(--gsp-text-muted);
  margin: 0 0 14px;
  line-height: 1.5;
}

/* Buttons */
.acct-btn {
  display: inline-block;
  font-family: var(--gsp-font);
  font-size: 14px;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 4px;
  text-decoration: none;
  cursor: pointer;
  border: none;
  line-height: 1;
}

.acct-btn--primary {
  background: var(--gsp-primary);
  color: #fff;
}

.acct-btn--primary:hover {
  background: var(--gsp-primary-dark);
  color: #fff;
  text-decoration: none;
}

.acct-btn--outline {
  background: transparent;
  color: var(--gsp-primary);
  border: 1px solid var(--gsp-primary);
}

.acct-btn--outline:hover {
  background: var(--gsp-primary);
  color: #fff;
  text-decoration: none;
}

.acct-btn--sm {
  font-size: 12px;
  padding: 6px 12px;
}

/* ── Purchases page ── */

.acct-page-header {
  margin-bottom: 20px;
}

.acct-back {
  font-size: 14px;
  color: var(--gsp-text-muted);
  text-decoration: none;
}

.acct-back:hover {
  color: var(--gsp-primary);
}

.acct-page-title {
  font-size: 22px;
  font-weight: 700;
  margin: 6px 0 0;
  color: var(--gsp-text);
}

.acct-empty {
  text-align: center;
  padding: 48px 20px;
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 4px;
}

.acct-empty i {
  font-size: 32px;
  color: #d1d5db;
  margin-bottom: 12px;
}

.acct-empty p {
  font-size: 15px;
  color: var(--gsp-text-muted);
  margin: 0 0 16px;
}

.acct-purchases {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.acct-purchase {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 4px;
}

.acct-purchase__main {
  flex: 1;
  min-width: 0;
}

.acct-purchase__type-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 2px;
  margin-bottom: 6px;
}

.acct-purchase__type-badge--article {
  background: #eef4fb;
  color: var(--gsp-primary);
}

.acct-purchase__type-badge--issue {
  background: #f0fdf4;
  color: #15803d;
}

.acct-purchase__title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  margin: 0 0 6px;
  color: var(--gsp-text);
}

.acct-purchase__title a {
  color: inherit;
  text-decoration: none;
}

.acct-purchase__title a:hover {
  color: var(--gsp-primary);
}

.acct-purchase__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 13px;
  color: var(--gsp-text-muted);
}

.acct-purchase__actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}

/* ── Edit Profile page ── */

.acct-form-card {
  background: #fff;
  border: 1px solid var(--gsp-border);
  border-radius: 4px;
  padding: 24px;
  margin-top: 16px;
}

.acct-form-card__title {
  font-size: 15px;
  font-weight: 600;
  color: var(--gsp-text);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gsp-border);
}

.acct-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px;
}

.acct-field__label {
  font-size: 14px;
  font-weight: 600;
  color: #374151;
}

.acct-field__input {
  display: block;
  width: 100%;
  padding: 10px 12px;
  font-family: var(--gsp-font);
  font-size: 15px;
  border: 1px solid var(--gsp-border);
  border-radius: 4px;
  background: #fff;
  color: var(--gsp-text);
  outline: none;
}

.acct-field__input:focus {
  border-color: var(--gsp-primary);
}

.acct-field__input--readonly {
  background: #f9fafb;
  color: var(--gsp-text-muted);
  cursor: default;
}

.acct-field__help {
  font-size: 13px;
  color: #94a3b8;
}

.acct-field__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.acct-form-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--gsp-border);
}

.acct-alert {
  padding: 10px 14px;
  border-radius: 4px;
  font-size: 14px;
  margin-bottom: 16px;
}

.acct-alert--success {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}

.acct-alert--error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

@media (max-width: 640px) {
  .acct-profile__top {
    flex-direction: column;
    text-align: center;
  }

  .acct-profile__details {
    gap: 8px;
  }

  .acct-detail {
    flex-direction: column;
    gap: 2px;
  }

  .acct-sections {
    grid-template-columns: 1fr;
  }

  .acct-purchase {
    flex-direction: column;
  }

  .acct-purchase__actions {
    flex-direction: row;
  }

  .acct-field__row {
    grid-template-columns: 1fr;
  }
}
