﻿/**
 * Academic Journal Theme - Main Stylesheet
 * Professional, clean design for academic journals
 * OJS 3.5.x Compatible
 */

/* ========================================
   CSS Variables & Root Configuration
   ======================================== */
:root {
    --aj-primary-color: #1e3a8a;
    --aj-secondary-color: #64748b;
    --aj-header-background: #ffffff;
    --aj-text-color: #1e293b;
    --aj-link-color: #2563eb;
    --aj-hero-background-image: url('../images/header-bg.jpg');
    --aj-primary-rgb: 30, 58, 138;
    --aj-secondary-rgb: 100, 116, 139;
    
    /* Typography */
    --aj-font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --aj-font-heading: 'Merriweather', Georgia, serif;
    --aj-font-mono: 'Fira Code', 'Courier New', monospace;
    
    /* Spacing */
    --aj-spacing-xs: 0.25rem;
    --aj-spacing-sm: 0.5rem;
    --aj-spacing-md: 1rem;
    --aj-spacing-lg: 1.5rem;
    --aj-spacing-xl: 2rem;
    --aj-spacing-2xl: 3rem;
    --aj-spacing-3xl: 4rem;
    
    /* Border Radius */
    --aj-radius-sm: 0.25rem;
    --aj-radius-md: 0.5rem;
    --aj-radius-lg: 0.75rem;
    --aj-radius-xl: 1rem;
    
    /* Shadows */
    --aj-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --aj-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --aj-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --aj-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    
    /* Transitions */
    --aj-transition-fast: 150ms ease;
    --aj-transition-base: 250ms ease;
    --aj-transition-slow: 350ms ease;
    --aj-container-max-width: 1540px;
}

/* ========================================
   Base Styles & Reset
   ======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--aj-font-primary);
    color: var(--aj-text-color);
    line-height: 1.6;
    background-color: #f8fafc;
    overflow-x: hidden;
}

/* ========================================
   Typography
   ======================================== */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--aj-font-heading);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--aj-spacing-md);
    color: var(--aj-text-color);
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1.125rem; }

p {
    margin-bottom: var(--aj-spacing-md);
}

a {
    color: var(--aj-link-color);
    text-decoration: none;
    transition: color var(--aj-transition-fast);
}

a:hover {
    color: var(--aj-primary-color);
    text-decoration: underline;
}

/* ========================================
   Header & Navigation
   ======================================== */
.pkp_structure_head {
    background:
        linear-gradient(rgba(3, 7, 18, 0.54), rgba(3, 7, 18, 0.62)),
        var(--aj-hero-background-image) center center / cover no-repeat !important;
    min-height: 680px;
    border-bottom: 0;
    box-shadow: none;
    position: relative;
    z-index: 10;
    color: #ffffff;
    /* overflow must be visible so the dropdown can appear below the header */
    overflow: visible;
}

.pkp_structure_head::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: clamp(3.25rem, 7vw, 5.75rem);
    background: rgba(var(--aj-secondary-rgb), 0.24);
    clip-path: polygon(0 62%, 32% 48%, 69% 26%, 87% 76%, 100% 70%, 100% 100%, 0 100%);
    z-index: 1;
    pointer-events: none;
}

.pkp_structure_head::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: clamp(1.1rem, 2.7vw, 2.2rem);
    height: 26px;
    background: var(--aj-primary-color);
    clip-path: polygon(0 52%, 32% 34%, 69% 0, 87% 76%, 100% 67%, 100% 100%, 87% 98%, 69% 28%, 32% 62%, 0 80%);
    z-index: 2;
    pointer-events: none;
}
.pkp_structure_head > * {
    position: relative;
    z-index: 3;
}

/* Navigation wrapper stacking context */
.pkp_structure_head .pkp_head_wrapper {
    position: relative;
    z-index: 20;
}

/* Allow overflow so the submenu panel can extend below the header */
.pkp_structure_head .pkp_site_nav_menu,
.pkp_structure_head .pkp_navigation_primary_row,
.pkp_structure_head .pkp_navigation_primary_wrapper {
    overflow: visible !important;
}

.aj_top_bar {
    background: var(--aj-header-background, transparent);
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    font-size: 0.875rem;
}

.aj_top_bar_inner {
    max-width: var(--aj-container-max-width);
    min-height: 46px;
    margin: 0 auto;
    padding: 0 var(--aj-spacing-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--aj-spacing-md);
}

.aj_top_left,
.aj_top_right {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
}

.aj_top_bar a,
.aj_top_bar span {
    color: rgba(255, 255, 255, 0.92);
}

.aj_top_bar a {
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
}

.aj_top_bar a:hover {
    color: #ffffff;
    text-decoration: none;
}

.aj_call_text {
    color: rgba(255, 255, 255, 0.72);
    white-space: nowrap;
}

.aj_call_text strong {
    color: #ffffff;
}

.aj_header_search {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.aj_header_search input[type="search"] {
    width: clamp(170px, 18vw, 260px);
    height: 32px;
    padding: 0 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.78);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.96);
    color: #111827;
}

.aj_header_search button {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 1.1rem;
    cursor: pointer;
}

.pkp_head_wrapper,
.pkp_head_content {
    max-width: var(--aj-container-max-width);
    margin: 0 auto;
    padding: 2.5rem var(--aj-spacing-lg) 1.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    background: transparent;
}

.pkp_site_name_wrapper {
    display: flex;
    align-items: center;
    min-width: 0;
}

.pkp_site_nav_toggle {
    display: none;
}

.pkp_site_name {
    font-family: var(--aj-font-heading);
    font-size: 1.35rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.25;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.pkp_site_name a {
    color: inherit;
    text-decoration: none;
}

.pkp_site_name img {
    display: block;
    max-height: 78px;
    width: auto;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.45));
}

.aj-header-hero-title {
    max-width: var(--aj-container-max-width);
    margin: 0 auto;
    padding: 0 var(--aj-spacing-lg) 2.25rem;
    text-align: center;
}

.aj-header-hero-title h2 {
    color: #ffffff;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    line-height: 1.2;
    margin: 0;
    text-shadow: 0 2px 8px rgba(15, 23, 42, 0.65);
}

.aj-header-hero-title-page {
    padding-top: clamp(1rem, 3vw, 2.25rem);
    padding-bottom: clamp(5rem, 8vw, 7rem);
}

.aj-header-hero-title-page h2 {
    font-size: clamp(2rem, 3.4vw, 3.25rem);
    margin-left: auto;
    margin-right: auto;
    max-width: 68rem;
}

body:not(.pkp_page_index) .pkp_structure_head {
    min-height: clamp(340px, 45vw, 440px);
}

.aj-featured-slider {
    max-width: var(--aj-container-max-width);
    margin: 0 auto;
    padding: 0 var(--aj-spacing-lg) clamp(4.75rem, 8vw, 6.5rem);
}

.aj-featured-slider-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 1.2rem;
    min-height: 2.5rem;
    position: relative;
}

.aj-featured-slider-kicker {
    color: #ffffff;
    font-size: clamp(1.05rem, 2.2vw, 1.7rem);
    font-weight: 800;
    letter-spacing: 0.02em;
    margin: 0;
    text-shadow: 0 2px 9px rgba(15, 23, 42, 0.62);
}

.aj-featured-slider-controls {
    display: flex;
    gap: 0.55rem;
    position: absolute;
    right: 0;
    top: 0;
}

.aj-featured-slider-btn {
    align-items: center;
    backdrop-filter: blur(12px);
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    color: #ffffff;
    cursor: pointer;
    display: inline-flex;
    font-size: 1.7rem;
    height: 2.45rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: background var(--aj-transition-fast), transform var(--aj-transition-fast), opacity var(--aj-transition-fast);
    width: 2.45rem;
}

.aj-featured-slider-btn:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-1px);
}

.aj-featured-slider-btn:disabled {
    cursor: not-allowed;
    opacity: 0.42;
    transform: none;
}

.aj-featured-slider-viewport {
    margin: 0 auto;
    max-width: 74rem;
    overflow: hidden;
    padding: 0.3rem 0 1rem;
}

.aj-featured-slider-track {
    align-items: flex-end;
    display: flex;
    gap: clamp(1.5rem, 3vw, 2.8rem);
    justify-content: center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}

.aj-featured-slide {
    flex: 0 0 clamp(14rem, 26vw, 23rem);
    min-width: 0;
    position: relative;
    z-index: 4;
}

.aj-featured-slide-link {
    background: rgba(255, 255, 255, 0.08);
    border: 0;
    border-radius: 0;
    box-shadow: 0 28px 42px -28px rgba(0, 0, 0, 0.78);
    display: block;
    height: clamp(16rem, 30vw, 25rem);
    overflow: hidden;
    text-decoration: none;
    transition: transform var(--aj-transition-base), box-shadow var(--aj-transition-base), filter var(--aj-transition-base);
}

.aj-featured-slide-link:hover,
.aj-featured-slide-link:focus-visible {
    box-shadow: 0 36px 58px -30px rgba(0, 0, 0, 0.88);
    filter: saturate(1.08);
    text-decoration: none;
    transform: translateY(-8px);
}

.aj-featured-slide-media {
    align-items: center;
    background:
        radial-gradient(circle at 25% 20%, rgba(251, 191, 36, 0.35), transparent 32%),
        linear-gradient(145deg, rgba(var(--aj-primary-rgb), 0.92), rgba(15, 23, 42, 0.92));
    color: rgba(255, 255, 255, 0.78);
    display: flex;
    font-size: 2.3rem;
    justify-content: center;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.aj-featured-slide-media img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform 0.55s ease;
    width: 100%;
}

.aj-featured-slide-link:hover .aj-featured-slide-media img {
    transform: scale(1.045);
}

.aj-featured-generated-cover {
    align-items: flex-start;
    background:
        radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.55), transparent 16%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0 18%, transparent 18%),
        linear-gradient(135deg, #46b8e8 0%, #71d2ed 43%, #f97316 43%, #f97316 62%, #06b6d4 62%);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
    overflow: hidden;
    padding: clamp(1rem, 2.5vw, 2rem);
    position: relative;
    text-shadow: 0 2px 8px rgba(15, 23, 42, 0.36);
    width: 100%;
}

.aj-featured-slide:nth-child(2n) .aj-featured-generated-cover {
    background:
        radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.45), transparent 15%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.22) 0 16%, transparent 16%),
        linear-gradient(135deg, #c7df85 0%, #c7df85 34%, #f97316 34%, #f97316 66%, #0ea5e9 66%);
}

.aj-featured-slide:nth-child(3n) .aj-featured-generated-cover {
    background:
        radial-gradient(circle at 22% 72%, rgba(255, 255, 255, 0.38), transparent 16%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0 18%, transparent 18%),
        linear-gradient(135deg, #2563eb 0%, #38bdf8 45%, #f59e0b 45%, #f43f5e 100%);
}

.aj-featured-generated-cover::after {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.28) 1px, transparent 1px),
        linear-gradient(rgba(255, 255, 255, 0.18) 1px, transparent 1px);
    background-size: 28px 28px;
    content: "";
    inset: 0;
    opacity: 0.34;
    position: absolute;
}

.aj-featured-generated-label {
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    margin-bottom: 0.75rem;
    position: relative;
    text-transform: uppercase;
    z-index: 1;
}

.aj-featured-generated-cover strong {
    font-family: var(--aj-font-heading);
    font-size: clamp(1.4rem, 2.7vw, 2.45rem);
    line-height: 1.08;
    position: relative;
    z-index: 1;
}

.aj-featured-generated-cover small {
    font-size: 0.9rem;
    font-weight: 700;
    margin-top: 1rem;
    opacity: 0.9;
    position: relative;
    z-index: 1;
}

.aj-featured-slide-body {
    background: linear-gradient(180deg, transparent, rgba(3, 7, 18, 0.82));
    bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    left: 0;
    opacity: 0;
    padding: 4rem 1rem 1rem;
    position: absolute;
    right: 0;
    transform: translateY(0.65rem);
    transition: opacity var(--aj-transition-base), transform var(--aj-transition-base);
}

.aj-featured-slide-section {
    color: #fbbf24;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.aj-featured-slide h3 {
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.28;
    margin: 0;
}

.aj-featured-slide-authors,
.aj-featured-slide-abstract {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.82rem;
    line-height: 1.45;
    margin: 0;
}

.aj-featured-slide-authors {
    font-weight: 700;
}

.aj-featured-slide-abstract {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.aj-featured-slide-more {
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    margin-top: auto;
}

.aj-featured-slide-link:hover .aj-featured-slide-body,
.aj-featured-slide-link:focus-visible .aj-featured-slide-body {
    opacity: 1;
    transform: translateY(0);
}

.aj-featured-slide:nth-child(2),
.aj-featured-slide-2 {
    transform: translateY(-3.1rem);
    z-index: 5;
}

.aj-featured-slide:nth-child(1),
.aj-featured-slide:nth-child(3n + 1) {
    transform: translateY(0.95rem);
}

.aj-featured-slide:nth-child(3),
.aj-featured-slide:nth-child(3n) {
    transform: translateY(0.95rem);
}

.aj-featured-slider-dots {
    display: flex;
    gap: 0.45rem;
    justify-content: center;
    margin-top: 1rem;
}

.aj-featured-slider-dot {
    background: rgba(255, 255, 255, 0.35);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    height: 0.5rem;
    padding: 0;
    transition: background var(--aj-transition-fast), width var(--aj-transition-fast);
    width: 0.5rem;
}

.aj-featured-slider-dot.is-active {
    background: #ffffff;
    width: 1.65rem;
}

@media (max-width: 980px) {
    .aj-featured-slide {
        flex-basis: clamp(13rem, 42vw, 20rem);
    }

    .aj-featured-slide-media {
        height: 100%;
    }
}

@media (max-width: 640px) {
    .aj-header-hero-title,
    .aj-featured-slider {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .aj-featured-slider-header {
        align-items: center;
        flex-direction: column;
        margin-bottom: 0.6rem;
    }

    .aj-featured-slider-controls {
        position: static;
    }

    .aj-featured-slide {
        flex-basis: min(78vw, 18rem);
        transform: none !important;
    }

    .aj-featured-slide-link {
        height: 19rem;
    }
}

/* ── Desktop inline navigation ── */
.pkp_site_nav_menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 1;
    gap: var(--aj-spacing-lg);
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

.pkp_navigation_primary_row,
.pkp_navigation_primary_wrapper {
    display: flex;
    align-items: center;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

.pkp_navigation_primary {
    display: flex;
    gap: var(--aj-spacing-lg);
    list-style: none;
    align-items: center;
    margin: 0;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

/* Hide the hamburger toggle on desktop */
@media (min-width: 769px) {
    .aj-mobile-menu-toggle {
        display: none;
    }
}

/* ========================================
   Navigation drawer (right side) — mobile only
   ======================================== */
@media (max-width: 768px) {
    .aj-mobile-menu-toggle {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        min-width: 44px;
        padding: 10px;
        background: transparent;
        border: 0;
        border-radius: 8px;
        cursor: pointer;
        flex-shrink: 0;
        -webkit-tap-highlight-color: transparent;
        transition: background 150ms ease;
    }

    .aj-mobile-menu-toggle:hover,
    .aj-mobile-menu-toggle:focus-visible {
        background: rgba(255, 255, 255, 0.14);
        outline: none;
    }

    .aj-mobile-menu-toggle .aj-menu-toggle-bar {
        display: block;
        height: 2px;
        width: 20px;
        background: #ffffff;
        border-radius: 2px;
        transition: transform 0.25s ease, opacity 0.25s ease;
    }

    .aj-mobile-menu-toggle[aria-expanded="true"] .aj-menu-toggle-bar:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .aj-mobile-menu-toggle[aria-expanded="true"] .aj-menu-toggle-bar:nth-child(2) {
        opacity: 0;
    }

    .aj-mobile-menu-toggle[aria-expanded="true"] .aj-menu-toggle-bar:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .pkp_site_nav_menu {
        position: fixed;
        top: 0;
        left: auto !important;
        right: 0 !important;
        bottom: 0;
        margin: 0 !important;
        height: 100dvh;
        width: min(340px, 86vw);
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        padding: 1.25rem 1.25rem 2rem;
        background: rgba(13, 20, 38, 0.985) !important;
        box-shadow: -14px 0 44px rgba(0, 0, 0, 0.5) !important;
        border: 0 !important;
        border-left: 1px solid rgba(255, 255, 255, 0.08) !important;
        transform: translateX(105%);
        visibility: hidden;
        transition: transform 280ms ease, visibility 280ms ease;
        z-index: 1050;
        overflow-x: hidden;
        overflow-y: auto !important;
    }

    .pkp_site_nav_menu.is-open {
        transform: translateX(0);
        visibility: visible;
    }

    /* Inside the drawer, allow internal scrolling; override the desktop
       "overflow: visible" rule so long navs scroll instead of clipping. */
    .pkp_structure_head .pkp_site_nav_menu,
    .pkp_structure_head .pkp_site_nav_menu .pkp_navigation_primary_row,
    .pkp_structure_head .pkp_site_nav_menu .pkp_navigation_primary_wrapper {
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .aj-nav-backdrop {
        position: fixed;
        inset: 0;
        height: 100%;
        background: rgba(3, 7, 18, 0.55);
        opacity: 0;
        visibility: hidden;
        transition: opacity 280ms ease, visibility 280ms ease;
        z-index: 1040;
    }

    .aj-nav-backdrop.is-visible {
        opacity: 1;
        visibility: visible;
    }

    .pkp_site_nav_menu .pkp_navigation_primary_row,
    .pkp_site_nav_menu .pkp_navigation_primary_wrapper {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        background: transparent !important;
        box-shadow: none !important;
        border: 0 !important;
    }

    .pkp_site_nav_menu .pkp_navigation_primary {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.25rem;
        list-style: none;
        margin: 0;
        width: 100%;
        background: transparent !important;
        box-shadow: none !important;
        border: 0 !important;
    }

    .pkp_site_nav_menu .pkp_navigation_primary > li {
        width: 100%;
    }

    .pkp_site_nav_menu .pkp_navigation_primary > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        padding: 0.7rem 0.85rem;
        border-radius: 8px;
        color: #ffffff;
        font-size: 1rem;
        font-weight: 600;
        text-shadow: none;
        white-space: nowrap;
        width: 100%;
    }

    .pkp_site_nav_menu .pkp_navigation_primary > li > a:hover,
    .pkp_site_nav_menu .pkp_navigation_primary > li > a:focus-visible {
        background-color: rgba(255, 255, 255, 0.1);
        color: #ffffff;
        text-decoration: none;
    }

    .pkp_site_nav_menu .pkp_navigation_user_wrapper {
        margin-left: 0;
        margin-top: auto;
        padding-top: 1rem;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        width: 100%;
    }

    .pkp_site_nav_menu .pkp_navigation_user {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
        list-style: none;
        margin: 0;
        width: 100%;
    }
}

.pkp_navigation_primary li,
.pkp_navigation_user li {
    margin: 0;
}

.pkp_navigation_primary li a,
.pkp_navigation_user li a,
.pkp_search {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 600;
    padding: 0.55rem 0.75rem;
    border-radius: 4px;
    transition: all var(--aj-transition-fast);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

.pkp_navigation_primary li a:hover,
.pkp_navigation_user li a:hover,
.pkp_search:hover {
    background-color: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    text-decoration: none;
}

/* Parent nav items with children get a pointer cursor */
.pkp_navigation_primary > li:has(> ul) > a {
    cursor: default;
}

.pkp_navigation_user_wrapper {
    margin-left: auto;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

.pkp_navigation_user {
    display: flex;
    gap: var(--aj-spacing-sm);
    list-style: none;
    margin: 0;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

/* ── Primary nav: submenu ──────────────────────── */
/*
 * The parent <li> is set to position:relative so the submenu
 * is absolutely positioned relative to it — appearing directly
 * below the parent link without pushing any other nav items.
 * OJS hides the ul with left:-9999px; we override to visibility/opacity
 * so the panel stays in flow and doesn't cause layout shifts.
 */

/* Give the parent li a positioning context */
.pkp_navigation_primary > li {
    position: relative !important;
}

/* Submenu panel: absolutely positioned under the parent li */
.pkp_navigation_primary li > ul,
.pkp_navigation_primary .sub_menu,
.pkp_navigation_primary .child_menu,
.pkp_navigation_primary .dropdown-menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    /* Stay hidden off-screen until hovered — match OJS default pattern
       but use visibility+opacity instead of left:-9999px so layout is stable */
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    min-width: 260px !important;
    width: max-content !important;
    max-width: 360px !important;
    margin: 0.25rem 0 0 0 !important;
    padding: 0.4rem 0 !important;
    list-style: none !important;
    background: rgba(15, 23, 42, 0.97) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 0.6rem !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45) !important;
    transition: opacity 160ms ease, visibility 160ms ease, transform 160ms ease !important;
    transform: translateY(-6px) !important;
    z-index: 9999 !important;
}

/* Reveal on hover / focus */
.pkp_navigation_primary li:hover > ul,
.pkp_navigation_primary li:focus-within > ul {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

/* Submenu list items */
.pkp_navigation_primary li > ul li,
.pkp_navigation_primary .sub_menu li,
.pkp_navigation_primary .child_menu li,
.pkp_navigation_primary .dropdown-menu li {
    display: block !important;
    margin: 0 !important;
    position: static !important;
    width: 100% !important;
}

/* Separator */
.pkp_navigation_primary li > ul li + li {
    border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
}

/* Submenu links */
.pkp_navigation_primary li > ul li a,
.pkp_navigation_primary .sub_menu li a,
.pkp_navigation_primary .child_menu li a,
.pkp_navigation_primary .dropdown-menu li a {
    display: block !important;
    padding: 0.6rem 1.1rem !important;
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    text-shadow: none !important;
    border-radius: 0 !important;
    border-left: 2px solid transparent !important;
    background: transparent !important;
    white-space: nowrap !important;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease !important;
    line-height: 1.45 !important;
}

.pkp_navigation_primary li > ul li a:hover,
.pkp_navigation_primary li > ul li a:focus,
.pkp_navigation_primary .sub_menu li a:hover,
.pkp_navigation_primary .child_menu li a:hover,
.pkp_navigation_primary .dropdown-menu li a:hover {
    background: rgba(255, 255, 255, 0.09) !important;
    color: #ffffff !important;
    border-left-color: var(--aj-primary-color) !important;
    text-decoration: none !important;
}

/* Rounded corners on first/last item */
.pkp_navigation_primary li > ul li:first-child a { border-radius: 0.5rem 0.5rem 0 0 !important; }
.pkp_navigation_primary li > ul li:last-child  a { border-radius: 0 0 0.5rem 0.5rem !important; }

/* Caret on parent items that have a submenu */
.pkp_navigation_primary > li:has(> ul) > a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    white-space: nowrap !important;
}

.pkp_navigation_primary > li:has(> ul) > a::after {
    content: "" !important;
    display: inline-block !important;
    width: 0 !important;
    height: 0 !important;
    border-top: 4px solid currentColor !important;
    border-right: 4px solid transparent !important;
    border-left: 4px solid transparent !important;
    border-bottom: 0 !important;
    opacity: 0.75 !important;
    flex-shrink: 0 !important;
    transition: transform 200ms ease, opacity 200ms ease !important;
}

.pkp_navigation_primary > li:has(> ul):hover > a::after,
.pkp_navigation_primary > li:has(> ul):focus-within > a::after {
    transform: rotate(180deg) !important;
    opacity: 1 !important;
}
/* ========================================
   Hero Banner
   ======================================== */
.aj-hero-banner {
    background: transparent;
    color: #ffffff;
    min-height: 650px;
    padding: 8rem var(--aj-spacing-lg) 11rem;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
    margin-bottom: 0;
}

.aj-hero-banner h1,
.aj-hero-banner h2 {
    color: #ffffff;
    font-family: var(--aj-font-primary);
    font-size: clamp(2.4rem, 4vw, 4.6rem);
    font-weight: 300;
    line-height: 1.12;
    letter-spacing: 0;
    margin-bottom: 1.25rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.65);
}

.aj-hero-banner p {
    color: rgba(255, 255, 255, 0.95);
    font-size: clamp(1.15rem, 2vw, 1.75rem);
    font-weight: 300;
    max-width: 980px;
    margin: 0 auto var(--aj-spacing-xl);
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.62);
}

.aj-hero-content {
    max-width: var(--aj-container-max-width);
}

.aj-hero-banner .btn-primary {
    background-color: #ffffff;
    color: var(--aj-primary-color);
    padding: var(--aj-spacing-md) var(--aj-spacing-xl);
    border-radius: var(--aj-radius-lg);
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    transition: all var(--aj-transition-base);
    box-shadow: var(--aj-shadow-lg);
}

.aj-hero-banner .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--aj-shadow-xl);
    text-decoration: none;
}

/* ========================================
   Main Content Area
   ======================================== */
.pkp_structure_content {
    position: relative;
    width: 100%;
    max-width: var(--aj-container-max-width);
    margin: 0 auto;
    padding: clamp(1.4rem, 2.8vw, 2.8rem) clamp(1.1rem, 2.6vw, 2.6rem);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.9rem;
}

.pkp_structure_content.has_sidebar {
    grid-template-columns: minmax(0, 1fr) 340px;
}

/* If OJS keeps `has_sidebar` but sidebar has no rendered content, use a single column */
.pkp_structure_content.has_sidebar:not(:has(.pkp_structure_sidebar .pkp_block, .pkp_structure_sidebar .block, .pkp_structure_sidebar > *)) {
    grid-template-columns: minmax(0, 1fr);
}

.pkp_structure_content,
.pkp_structure_content.has_sidebar {
    column-gap: 0.9rem !important;
}

.pkp_structure_content::before {
    display: none;
}

.pkp_structure_content > * {
    position: relative;
    z-index: 1;
}

.pkp_structure_main {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
    clear: none !important;
    background: #ffffff;
    padding: clamp(1rem, 2vw, 2rem);
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-right: 0;
    box-shadow: 0 18px 44px -30px rgba(15, 23, 42, 0.35);
}

.pkp_structure_main::before,
.pkp_structure_main::after,
.page_index_journal::before,
.page_index_journal::after {
    display: none !important;
    content: none !important;
}

/* ========================================
   Sidebar
   ======================================== */
.pkp_structure_sidebar {
    width: 340px !important;
    max-width: 340px !important;
    margin: 0 !important;
    float: none !important;
    clear: none !important;
    justify-self: stretch;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-left: 0;
    box-shadow: 0 18px 44px -32px rgba(15, 23, 42, 0.42);
    height: fit-content;
    position: sticky;
    top: 86px;
}

.pkp_structure_sidebar .pkp_block {
    margin-bottom: 0.9rem;
    padding: 1rem;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 10px;
    box-shadow: 0 8px 24px -20px rgba(2, 6, 23, 0.5);
}

.aj_dynamic_sidebar {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.aj_sidebar_section {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 10px;
    box-shadow: 0 8px 24px -20px rgba(2, 6, 23, 0.5);
    overflow: hidden;
}

.aj_sidebar_section[open] {
    box-shadow: 0 14px 32px -24px rgba(2, 6, 23, 0.65);
}

.aj_sidebar_section_title {
    align-items: center;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    color: #0f172a;
    cursor: pointer;
    display: flex;
    font-size: 0.9rem;
    font-weight: 800;
    justify-content: space-between;
    letter-spacing: 0.02em;
    list-style: none;
    padding: 0.85rem 1rem;
}

.aj_sidebar_section_title::-webkit-details-marker {
    display: none;
}

.aj_sidebar_section_title::after {
    color: var(--aj-primary-color);
    content: "+";
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
}

.aj_sidebar_section[open] .aj_sidebar_section_title::after {
    content: "\2212";
}

.aj_sidebar_section_panel {
    padding: 0.35rem 0.65rem 0.75rem;
}

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

.aj_sidebar_links li + li {
    border-top: 1px solid #f1f5f9;
}

.aj_sidebar_links a {
    align-items: center;
    border-radius: 0.45rem;
    color: #475569;
    display: flex;
    font-size: 0.86rem;
    font-weight: 600;
    gap: 0.55rem;
    padding: 0.65rem 0.55rem;
    text-decoration: none;
    transition: background var(--aj-transition-fast), color var(--aj-transition-fast), transform var(--aj-transition-fast);
}

.aj_sidebar_links a::before {
    background: var(--aj-primary-color);
    border-radius: 999px;
    content: "";
    flex: 0 0 0.38rem;
    height: 0.38rem;
    opacity: 0.55;
    width: 0.38rem;
}

.aj_sidebar_links a:hover,
.aj_sidebar_links a:focus-visible {
    background: rgba(var(--aj-primary-rgb), 0.08);
    color: var(--aj-primary-color);
    text-decoration: none;
    transform: translateX(2px);
}

.aj_sidebar_links a:hover::before,
.aj_sidebar_links a:focus-visible::before {
    opacity: 1;
}

.pkp_structure_sidebar .pkp_block:last-child {
    margin-bottom: 0;
}

.pkp_structure_sidebar .title,
.sidebar_block h2 {
    position: relative;
    font-size: 1rem;
    color: #0f172a;
    margin-bottom: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    line-height: 1.25;
    padding-bottom: 0.55rem;
}

.pkp_structure_sidebar .title::after,
.sidebar_block h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 38px;
    height: 2px;
    background: #2563eb;
    border-radius: 2px;
}

.pkp_structure_sidebar .content ul,
.sidebar_block ul {
    list-style: none;
}

.pkp_structure_sidebar .content ul li,
.sidebar_block ul li {
    margin-bottom: 0.35rem;
}

.pkp_structure_sidebar .content ul li a,
.sidebar_block ul li a {
    color: #334155;
    display: block;
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    transition: all var(--aj-transition-fast);
    font-size: 0.95rem;
    line-height: 1.35;
}

.pkp_structure_sidebar .content ul li a:hover,
.sidebar_block ul li a:hover {
    background-color: rgba(37, 99, 235, 0.1);
    color: #1e40af;
    text-decoration: none;
    transform: translateX(2px);
}

/* ========================================
   Custom Page Templates
   ======================================== */
.aj_page_shell {
    display: grid;
    gap: 1rem;
}

.aj_section,
.aj_surface_card {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 12px;
    padding: clamp(1rem, 1.9vw, 1.7rem);
    box-shadow: 0 10px 26px -24px rgba(15, 23, 42, 0.42);
}

.aj_page_header h1,
.aj_surface_card h1,
.aj_surface_card h2 {
    margin-bottom: 0.8rem;
}

.aj_richtext p:last-child {
    margin-bottom: 0;
}

.aj_issue_archive_grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.95rem;
}

.aj_issue_archive_grid > li {
    margin: 0;
}

.aj_issue_cover_header {
    display: grid;
    gap: 0.35rem;
}

.aj_issue_subtitle {
    color: #475569;
    margin: 0;
}

.aj_issue_toc_wrap .sections {
    margin-top: 0;
}

.aj_article_details_wrap .item {
    border-color: rgba(148, 163, 184, 0.2);
}

.page_index_journal {
    gap: 1.15rem;
}

.page_index_journal .aj_section {
    margin: 0;
}

.aj_home_intro {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(var(--aj-primary-rgb), 0.96), rgba(15, 23, 42, 0.94)),
        linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent);
    border: 0;
    border-radius: 12px;
    box-shadow: 0 18px 36px -28px rgba(15, 23, 42, 0.65);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    overflow: hidden;
    padding: clamp(1.25rem, 2.3vw, 2rem);
    position: relative;
}

.aj_home_intro::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 4px;
    background: linear-gradient(90deg, #f59e0b, #e11d48, #38bdf8);
}

.aj_home_intro h1 {
    color: #ffffff;
    font-size: clamp(1.65rem, 3vw, 2.6rem);
    letter-spacing: 0;
    margin: 0;
    max-width: 56rem;
}

.aj_home_kicker,
.aj_section_kicker {
    color: var(--aj-kicker-color, #2563eb);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin: 0 0 0.45rem;
    text-transform: uppercase;
}

.aj_home_kicker {
    color: #fbbf24;
}

.aj_home_meta {
    align-items: center;
    color: rgba(255, 255, 255, 0.84);
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0.85rem 0 0;
}

.aj_home_meta strong {
    color: #ffffff;
    font-weight: 700;
}

.aj_home_actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
    min-width: min(100%, 20rem);
}

.aj_home_action {
    align-items: center;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 8px;
    color: #ffffff;
    display: inline-flex;
    gap: 0.55rem;
    min-height: 2.75rem;
    padding: 0.65rem 0.95rem;
    text-decoration: none;
}

.aj_home_action:hover {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
    text-decoration: none;
}

.aj_home_action_primary {
    background: #ffffff;
    color: var(--aj-primary-color);
    font-weight: 700;
}

.aj_home_action_primary:hover {
    background: #f8fafc;
    color: #1e40af;
}

.aj_home_current_issue {
    padding: clamp(1rem, 2vw, 1.85rem);
}

.aj_section_header {
    align-items: flex-start;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
}

.aj_section_header h2 {
    color: #0f172a;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
    margin: 0;
}

.aj_section_link {
    align-items: center;
    border: 1px solid var(--aj-viewall-color, #1d4ed8);
    border-color: color-mix(in srgb, var(--aj-viewall-color, #1d4ed8) 25%, transparent);
    border-radius: 8px;
    color: var(--aj-viewall-color, #1d4ed8);
    display: inline-flex;
    font-weight: 700;
    min-height: 2.5rem;
    padding: 0.55rem 0.85rem;
    text-decoration: none;
    white-space: nowrap;
}

.aj_section_link:hover {
    background: color-mix(in srgb, var(--aj-viewall-color, #1d4ed8) 10%, transparent);
    color: var(--aj-viewall-hover-color, #1e40af);
    text-decoration: none;
}

.page_index_journal .current_issue_title {
    display: none;
}

.page_index_journal .sections {
    display: grid;
    gap: 1.1rem;
    margin: 0;
    padding: 0;
}

.page_index_journal .section {
    margin: 0;
}

.page_index_journal .section > h2,
.page_index_journal .section > h3 {
    color: #0f172a;
    font-size: 1.15rem;
    margin-bottom: 0.85rem;
}

.page_index_journal .obj_article_summary {
    margin-bottom: 0.85rem;
}

.page_index_journal .obj_article_summary:last-child {
    margin-bottom: 0;
}

/* ========================================
   Article Cards
   ======================================== */
.obj_article_summary {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: var(--aj-radius-lg);
    padding: var(--aj-spacing-lg);
    margin-bottom: var(--aj-spacing-lg);
    transition: all var(--aj-transition-base);
}

.obj_article_summary:hover {
    box-shadow: var(--aj-shadow-lg);
    transform: translateY(-2px);
    border-color: var(--aj-primary-color);
}

.obj_article_summary h3 {
    font-size: 1.25rem;
    margin-bottom: var(--aj-spacing-sm);
}

.obj_article_summary h3 a {
    color: var(--aj-text-color);
}

.obj_article_summary h3 a:hover {
    color: var(--aj-primary-color);
    text-decoration: none;
}

.obj_article_summary .authors {
    color: var(--aj-secondary-color);
    font-size: 0.875rem;
    margin-bottom: 0.65rem;
}

.aj_article_card_metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0 0 var(--aj-spacing-md);
}

.aj_article_metric {
    align-items: center;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 999px;
    color: #475569;
    display: inline-flex;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    min-height: 1.8rem;
    padding: 0.35rem 0.65rem;
}

.aj_article_metric .fa {
    color: var(--aj-primary-color);
    font-size: 0.8rem;
}

.obj_article_summary .abstract {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--aj-text-color);
    margin-bottom: 0.8rem;
}

.aj_article_card_actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0 0 var(--aj-spacing-md);
}

.obj_article_summary .galleys_links {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.obj_article_summary .galleys_links li {
    margin: 0;
}

.aj_article_abstract_button,
.obj_article_summary .galleys_links .obj_galley_link,
.obj_article_summary .galleys_links a {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(37, 99, 235, 0.28);
    border-radius: 8px;
    color: #1d4ed8;
    cursor: pointer;
    display: inline-flex;
    gap: 0.45rem;
    font-size: 0.86rem;
    font-weight: 700;
    min-height: 2.2rem;
    padding: 0.45rem 0.75rem;
    transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.aj_article_abstract_button:hover,
.aj_article_abstract_button:focus,
.obj_article_summary .galleys_links .obj_galley_link:hover,
.obj_article_summary .galleys_links .obj_galley_link:focus,
.obj_article_summary .galleys_links a:hover,
.obj_article_summary .galleys_links a:focus {
    background: rgba(37, 99, 235, 0.08);
    border-color: rgba(37, 99, 235, 0.48);
    color: #1e40af;
    text-decoration: none;
    transform: translateY(-1px);
}

.aj_modal_open {
    overflow: hidden;
}

.aj_abstract_modal[hidden] {
    display: none;
}

.aj_abstract_modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.2rem;
    position: fixed;
    z-index: 10000;
}

.aj_abstract_modal_backdrop {
    background: rgba(15, 23, 42, 0.62);
    inset: 0;
    position: absolute;
}

.aj_abstract_modal_dialog {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.3);
    border-radius: 10px;
    box-shadow: 0 28px 60px -26px rgba(15, 23, 42, 0.72);
    display: flex;
    flex-direction: column;
    max-height: min(82vh, 760px);
    max-width: min(720px, 100%);
    overflow: hidden;
    position: relative;
    width: 100%;
}

.aj_abstract_modal_header {
    align-items: flex-start;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.1rem 1.25rem;
}

.aj_abstract_modal_header h2 {
    color: #0f172a;
    font-family: var(--aj-font-primary);
    font-size: 1.15rem;
    line-height: 1.35;
    margin: 0;
}

.aj_abstract_modal_close {
    align-items: center;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.34);
    border-radius: 999px;
    color: #334155;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.25rem;
    height: 2rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 2rem;
}

.aj_abstract_modal_close:hover,
.aj_abstract_modal_close:focus {
    background: #e2e8f0;
    color: #0f172a;
}

.aj_abstract_modal_body {
    color: #1f2937;
    flex: 1 1 auto;
    font-size: 0.98rem;
    line-height: 1.7;
    min-height: 0;
    overflow: auto;
    padding: 1.25rem;
    white-space: pre-line;
}

.aj_abstract_modal_footer {
    align-items: center;
    border-top: 1px solid rgba(148, 163, 184, 0.24);
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    padding: 0.95rem 1.25rem;
}

.aj_abstract_modal_more {
    align-items: center;
    background: var(--aj-primary-color);
    border-radius: 8px;
    color: #ffffff;
    display: inline-flex;
    font-weight: 700;
    min-height: 2.4rem;
    padding: 0.55rem 0.95rem;
    text-decoration: none;
}

.aj_abstract_modal_more:hover,
.aj_abstract_modal_more:focus {
    background: #1d4ed8;
    color: #ffffff;
    text-decoration: none;
}

/* ========================================
   Buttons
   ======================================== */
.btn-primary,
.cmp_button,
.obj_galley_link {
    background-color: var(--aj-primary-color);
    color: #ffffff;
    padding: var(--aj-spacing-sm) var(--aj-spacing-lg);
    border-radius: var(--aj-radius-md);
    font-weight: 500;
    text-decoration: none;
    display: inline-block;
    transition: all var(--aj-transition-fast);
    border: none;
    cursor: pointer;
}

.btn-primary:hover,
.cmp_button:hover,
.obj_galley_link:hover {
    background-color: var(--aj-link-color);
    color: #ffffff;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: var(--aj-shadow-md);
}

.btn-secondary {
    background-color: transparent;
    color: var(--aj-primary-color);
    padding: var(--aj-spacing-sm) var(--aj-spacing-lg);
    border-radius: var(--aj-radius-md);
    font-weight: 500;
    text-decoration: none;
    display: inline-block;
    transition: all var(--aj-transition-fast);
    border: 2px solid var(--aj-primary-color);
    cursor: pointer;
}

.btn-secondary:hover {
    background-color: var(--aj-primary-color);
    color: #ffffff;
    text-decoration: none;
}

/* ========================================
   Footer
   ======================================== */
.pkp_structure_footer_wrapper {
    margin-top: 0;
    width: 100%;
    background: var(--aj-footer-background);
}

.pkp_structure_footer.aj_footer {
    background: var(--aj-footer-background);
    color: #dce5ee;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding: 0;
    border-top: 0;
}

.aj_footer_inner {
    max-width: var(--aj-container-max-width);
    width: 100%;
    margin: 0 auto;
    padding: 2.6rem 5.8vw 1.25rem;
}

.aj_footer_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 3rem;
    padding-bottom: 2.15rem;
    border-bottom: 1px solid rgba(198, 211, 223, 0.22);
    justify-items: start;
}

.aj_footer_block h3 {
    position: relative;
    color: #f8fbff;
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 1.4rem;
    font-family: var(--aj-font-primary);
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

.aj_footer_block h3::after {
    content: "";
    display: block;
    width: 64px;
    height: 3px;
    margin-top: 0.5rem;
    background: rgba(245, 250, 255, 0.9);
}

.aj_footer_block p {
    color: #e3ebf3;
    font-size: 1.01rem;
    line-height: 1.48;
    margin: 0;
    max-width: 60ch;
}

.aj_footer_about {
    text-align: left;
}

.aj_footer_logo_title {
    margin-bottom: 1.15rem !important;
    text-align: left;
}

.aj_footer_logo_title::after {
    display: none !important;
}

.aj_footer_logo_image {
    max-width: 270px;
    width: 100%;
    height: auto;
}

.aj_footer_issn {
    margin-top: 2rem;
    font-size: 1rem;
    font-weight: 700;
    color: #f1f6fb;
    text-align: left;
}

.aj_footer_about p {
    text-align: justify;
    text-justify: inter-word;
}

.aj_footer_links {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: space-between;
}

.aj_footer_links li {
    margin: 0;
    padding: 0.5rem 0;
    width: 100%;
}

.aj_footer_links a {
    color: #e3ebf3;
    font-size: 1rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    width: 100%;
}

.aj_footer_links li {
    color: #e3ebf3;
    font-size: 1rem;
    text-decoration: none;
}

.aj_footer_links a:hover {
    color: #ffffff;
    text-decoration: none;
}

.aj_contact_list li {
    display: flex;
    gap: 0;
    align-items: flex-start;
    border-bottom: 1px solid rgba(198, 211, 223, 0.22);
}

.aj_contact_list li .fa {
    margin-top: 0.12rem;
    margin-right: 0.5rem;
    width: 1rem;
    color: #f4f8fd;
}

.aj_footer_socials {
    margin-top: 1rem;
    display: flex;
    align-items: center;
    gap: 1.45rem;
}

.aj_footer_socials a {
    color: #f3f8fd;
    font-size: 2.35rem;
    line-height: 1;
}

.aj_footer_socials a:hover {
    color: #ffffff;
}

.aj_line_links li {
    display: flex;
    gap: 0;
    align-items: center;
    border-bottom: 1px solid rgba(198, 211, 223, 0.22);
}

.aj_line_links .fa {
    margin-right: 0.5rem;
    color: #f4f8fd;
}

.aj_footer_custom {
    margin-top: 1.2rem;
    padding-top: 0.2rem;
    color: #dce5ee;
}

.aj_footer_bottom {
    padding-top: 1.8rem;
    text-align: center;
}

.aj_footer_navline {
    margin: 0 0 0.45rem;
    color: #f6fbff;
    font-size: 1rem;
}

.aj_footer_navline a {
    color: #f6fbff;
}

.aj_footer_meta {
    margin: 0 0 0.28rem;
    color: #f1f6fb;
    font-size: 1.04rem;
}

.aj_footer_meta_small {
    font-size: 1rem;
    color: #f4f8fd;
}

.pkp_brand_footer {
    display: none;
}

.pkp_brand_footer img {
    max-height: 34px;
    width: auto;
    opacity: 0.85;
    transition: opacity var(--aj-transition-fast);
}

.pkp_brand_footer a:hover img {
    opacity: 1;
}

/* ========================================
   Forms & Inputs
   ======================================== */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="url"],
input[type="search"],
textarea,
select {
    width: 100%;
    padding: var(--aj-spacing-sm) var(--aj-spacing-md);
    border: 1px solid #cbd5e1;
    border-radius: var(--aj-radius-md);
    font-family: var(--aj-font-primary);
    font-size: 1rem;
    transition: all var(--aj-transition-fast);
    background-color: #ffffff;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--aj-primary-color);
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.1);
}

label {
    display: block;
    margin-bottom: var(--aj-spacing-xs);
    font-weight: 500;
    color: var(--aj-text-color);
}

/* ========================================
   Tables
   ======================================== */
table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--aj-spacing-lg);
}

table thead {
    background-color: rgba(var(--aj-primary-rgb), 0.05);
}

table th {
    padding: var(--aj-spacing-md);
    text-align: left;
    font-weight: 600;
    color: var(--aj-primary-color);
    border-bottom: 2px solid var(--aj-primary-color);
}

table td {
    padding: var(--aj-spacing-md);
    border-bottom: 1px solid #e2e8f0;
}

table tbody tr:hover {
    background-color: rgba(var(--aj-primary-rgb), 0.02);
}

/* ========================================
   Breadcrumbs & Navigation
   ======================================== */
.pkp_breadcrumbs {
    background: #ffffff;
    padding: var(--aj-spacing-md) var(--aj-spacing-lg);
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: var(--aj-spacing-lg);
}

.pkp_breadcrumbs ul {
    list-style: none;
    display: flex;
    gap: var(--aj-spacing-sm);
    flex-wrap: wrap;
}

.pkp_breadcrumbs li::after {
    content: "â€º";
    margin-left: var(--aj-spacing-sm);
    color: var(--aj-secondary-color);
}

.pkp_breadcrumbs li:last-child::after {
    content: "";
}

.pkp_breadcrumbs a {
    color: var(--aj-secondary-color);
}

.pkp_breadcrumbs a:hover {
    color: var(--aj-primary-color);
}

.pkp_breadcrumbs {
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 8px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
    box-shadow: 0 10px 24px -22px rgba(15, 23, 42, 0.45);
    margin: 0 0 var(--aj-spacing-lg);
    padding: 0.7rem 0.85rem;
}

.pkp_breadcrumbs ol,
.pkp_breadcrumbs ul {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.pkp_breadcrumbs li {
    align-items: center;
    color: #64748b;
    display: inline-flex;
    font-size: 0.9rem;
    line-height: 1.35;
    min-width: 0;
}

.pkp_breadcrumbs li::after {
    color: #94a3b8;
    content: "/";
    font-weight: 500;
    margin-left: 0.45rem;
}

.pkp_breadcrumbs li:last-child::after {
    content: "";
    margin-left: 0;
}

.pkp_breadcrumbs a {
    align-items: center;
    border-radius: 999px;
    color: #475569;
    display: inline-flex;
    gap: 0.4rem;
    max-width: 28rem;
    min-height: 2rem;
    overflow: hidden;
    padding: 0.25rem 0.55rem;
    text-decoration: none;
    text-overflow: ellipsis;
    transition: background-color 150ms ease, color 150ms ease;
    white-space: nowrap;
}

.pkp_breadcrumbs a:hover {
    background: rgba(var(--aj-primary-rgb), 0.08);
    color: var(--aj-primary-color);
}

.pkp_breadcrumbs li > span {
    color: #64748b;
    display: inline-block;
    max-width: 24rem;
    overflow: hidden;
    padding: 0.25rem 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pkp_breadcrumbs .current span {
    color: #0f172a;
    display: inline-block;
    font-weight: 600;
    max-width: min(42rem, 70vw);
    overflow: hidden;
    padding: 0.25rem 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pkp_breadcrumbs .aj_breadcrumbs_home a {
    background: rgba(var(--aj-primary-rgb), 0.08);
    color: var(--aj-primary-color);
    font-weight: 600;
}

.pkp_breadcrumbs .fa {
    color: #f59e0b;
    font-size: 0.9rem;
}

/* ========================================
   Alerts & Messages
   ======================================== */
.pkp_notification {
    padding: var(--aj-spacing-md) var(--aj-spacing-lg);
    border-radius: var(--aj-radius-md);
    margin-bottom: var(--aj-spacing-lg);
    border-left: 4px solid;
}

.pkp_notification_success {
    background-color: #f0fdf4;
    border-color: #22c55e;
    color: #166534;
}

.pkp_notification_warning {
    background-color: #fef3c7;
    border-color: #f59e0b;
    color: #92400e;
}

.pkp_notification_error {
    background-color: #fef2f2;
    border-color: #ef4444;
    color: #991b1b;
}

.pkp_notification_info {
    background-color: #eff6ff;
    border-color: var(--aj-link-color);
    color: #1e40af;
}

/* ========================================
   Pagination
   ======================================== */
.pkp_page_numbers {
    display: flex;
    gap: var(--aj-spacing-xs);
    justify-content: center;
    margin-top: var(--aj-spacing-xl);
}

.pkp_page_numbers a,
.pkp_page_numbers span {
    padding: var(--aj-spacing-sm) var(--aj-spacing-md);
    border-radius: var(--aj-radius-md);
    text-decoration: none;
    transition: all var(--aj-transition-fast);
}

.pkp_page_numbers a {
    background-color: #ffffff;
    color: var(--aj-text-color);
    border: 1px solid #e2e8f0;
}

.pkp_page_numbers a:hover {
    background-color: var(--aj-primary-color);
    color: #ffffff;
    border-color: var(--aj-primary-color);
}

.pkp_page_numbers span.current {
    background-color: var(--aj-primary-color);
    color: #ffffff;
    font-weight: 600;
}

/* ========================================
   Utility Classes
   ======================================== */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.mt-xs { margin-top: var(--aj-spacing-xs); }
.mt-sm { margin-top: var(--aj-spacing-sm); }
.mt-md { margin-top: var(--aj-spacing-md); }
.mt-lg { margin-top: var(--aj-spacing-lg); }
.mt-xl { margin-top: var(--aj-spacing-xl); }

.mb-xs { margin-bottom: var(--aj-spacing-xs); }
.mb-sm { margin-bottom: var(--aj-spacing-sm); }
.mb-md { margin-bottom: var(--aj-spacing-md); }
.mb-lg { margin-bottom: var(--aj-spacing-lg); }
.mb-xl { margin-bottom: var(--aj-spacing-xl); }

.p-xs { padding: var(--aj-spacing-xs); }
.p-sm { padding: var(--aj-spacing-sm); }
.p-md { padding: var(--aj-spacing-md); }
.p-lg { padding: var(--aj-spacing-lg); }
.p-xl { padding: var(--aj-spacing-xl); }

.hidden { display: none; }
.visible { display: block; }

/* ========================================
   Loading States
   ======================================== */
.aj-loading {
    opacity: 0.6;
    pointer-events: none;
}

.aj-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 3px solid rgba(var(--aj-primary-rgb), 0.3);
    border-radius: 50%;
    border-top-color: var(--aj-primary-color);
    animation: aj-spin 1s ease-in-out infinite;
}

@keyframes aj-spin {
    to { transform: rotate(360deg); }
}

/* ========================================
   Accessibility
   ======================================== */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

*:focus-visible {
    outline: 2px solid var(--aj-primary-color);
    outline-offset: 2px;
}

/* ========================================
   Print Styles
   ======================================== */
@media print {
    .pkp_structure_head,
    .pkp_structure_sidebar,
    .pkp_structure_footer,
    .aj-hero-banner {
        display: none;
    }
    
    .pkp_structure_content {
        grid-template-columns: 1fr;
    }
    
    body {
        background: #ffffff;
        color: #000000;
    }
    
    a {
        color: #000000;
        text-decoration: underline;
    }
}

/* ========================================
   Article Tabs + Side Meta Layout
   ======================================== */
body.pkp_page_article .pkp_structure_content.has_sidebar {
    grid-template-columns: minmax(0, 1fr) !important;
}

body.pkp_page_article .pkp_structure_content.has_sidebar > .pkp_structure_sidebar {
    display: none !important;
}

.page_article .obj_article_details .row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 300px !important;
    gap: 1rem !important;
    align-items: start;
}

.page_article .obj_article_details .main_entry {
    float: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    border: 0 !important;
    border-right: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.page_article .obj_article_details .entry_details {
    float: none !important;
    width: 300px !important;
    max-width: 300px !important;
    min-width: 0 !important;
    border-left: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid;
    gap: 0.85rem;
}

.page_article .obj_article_details .entry_details .item {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 10px;
    padding: 0.85rem;
    margin: 0 !important;
}

.aj-article-tabs {
    margin: 0 0 1rem;
    background: #ffffff;
    border: 0;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
}

.aj-article-tablist {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
    background: #ffffff;
}

.aj-article-tab {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: #8a8f98;
    font-size: 1rem;
    font-weight: 500;
    padding: 0.8rem 1.2rem;
    border-radius: 0;
    cursor: pointer;
    transition: color 150ms ease, border-color 150ms ease, background-color 150ms ease;
}

.aj-article-tab svg {
    width: 1.05rem;
    height: 1.05rem;
    fill: none;
    stroke: #f59e0b;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aj-article-tab:hover {
    background: #f8fafc;
    color: #334155;
}

.aj-article-tab[aria-selected="true"] {
    color: #31363f;
    background: #ffffff;
    border-color: #1d9bf0;
    box-shadow: none;
}

.aj-article-tab[aria-selected="true"] svg {
    stroke: #7c3aed;
}

.aj-article-tabpanels {
    padding: 1.55rem 0 0;
}

.aj-article-panel > .item {
    margin: 0;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.aj-article-panel > .item + .item {
    margin-top: 1.35rem !important;
}

.aj-article-panel > .item.keywords {
    border-top: 1px solid rgba(148, 163, 184, 0.22) !important;
    padding-top: 1.25rem !important;
}

.aj-article-panel > .item.keywords h2,
.aj-article-panel > .item.keywords h3,
.aj-article-panel > .item.keywords .label {
    color: #0f172a;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0;
    margin: 0 0 0.75rem;
}

.aj-article-panel > .item.keywords .value,
.aj-article-panel > .item.keywords ul,
.aj-article-panel > .item.keywords .aj-keyword-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.aj-article-panel > .item.keywords li,
.aj-article-panel > .item.keywords .value > span,
.aj-article-panel > .item.keywords .value > a,
.aj-article-panel > .item.keywords .aj-keyword-chip {
    align-items: center;
    background: #f0f9ff;
    border: 1px solid rgba(14, 165, 233, 0.22);
    border-radius: 999px;
    color: #075985;
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25;
    padding: 0.35rem 0.75rem;
}

.aj-article-panel > .item.keywords a {
    color: #0369a1;
    text-decoration: none;
}

.aj-article-panel > .item.keywords a:hover {
    color: #0c4a6e;
    text-decoration: underline;
}

.aj_article_details_wrap > .aj-citation-source {
    display: none;
}

.aj-citation-text {
    color: #1f2937;
    font-size: 1rem;
    line-height: 1.45;
    max-width: 72rem;
}

.aj-citation-controls {
    margin-top: 1.25rem;
}

.aj-citation-format {
    appearance: none;
    min-width: 13rem;
    border: 1px solid #9ca3af;
    border-radius: 4px;
    background-color: #f3f4f6;
    background-image: linear-gradient(45deg, transparent 50%, #111827 50%), linear-gradient(135deg, #111827 50%, transparent 50%);
    background-position: calc(100% - 1.35rem) 50%, calc(100% - 1rem) 50%;
    background-size: 0.36rem 0.36rem, 0.36rem 0.36rem;
    background-repeat: no-repeat;
    color: #1f2937;
    cursor: pointer;
    font-size: 0.875rem;
    padding: 0.6rem 2rem 0.6rem 1.4rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
}

.aj-citation-downloads {
    display: grid;
    gap: 0.8rem;
    margin-top: 2.25rem;
}

.aj-citation-downloads h3 {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #1f2937;
    font-size: 1rem;
    font-weight: 500;
    margin: 0;
}

.aj-citation-downloads h3::before {
    content: "";
    width: 1rem;
    height: 1rem;
    background-color: #7c3aed;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3Cpath d='M12 15V3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3Cpath d='M12 15V3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.aj-citation-downloads a {
    color: #1d8fe8;
    display: inline-flex;
    font-size: 1rem;
    text-decoration: none;
}

.aj-citation-downloads a:hover {
    color: #0f6fb8;
    text-decoration: underline;
}

@media (max-width: 980px) {
    .page_article .obj_article_details .row {
        grid-template-columns: 1fr !important;
    }

    .page_article .obj_article_details .entry_details {
        width: auto !important;
        max-width: none !important;
    }
}

/* ========================================
   Article Layout Final Stabilizer
   ======================================== */
body.pkp_page_article .pkp_structure_main::before,
body.pkp_page_article .pkp_structure_main::after {
    display: none !important;
}

body.pkp_page_article .obj_article_details .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-top: 1px solid rgba(148, 163, 184, 0.28) !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.28) !important;
}

body.pkp_page_article .obj_article_details .main_entry {
    float: none !important;
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 1rem !important;
    border-right: 1px solid rgba(148, 163, 184, 0.28) !important;
}

body.pkp_page_article .obj_article_details .entry_details {
    float: none !important;
    flex: 0 0 300px !important;
    width: 300px !important;
    max-width: 300px !important;
    min-width: 300px !important;
    margin: 0 !important;
    padding: 1rem !important;
    border: 0 !important;
}

body.pkp_page_article .obj_article_details .entry_details .item {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

@media (max-width: 980px) {
    body.pkp_page_article .obj_article_details .row {
        display: block !important;
    }

    body.pkp_page_article .obj_article_details .main_entry {
        border-right: 0 !important;
    }

    body.pkp_page_article .obj_article_details .entry_details {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        padding-top: 0 !important;
    }
}
/* Donation system */
:root {
    --mjt-text: var(--aj-text-color);
    --mjt-muted: var(--aj-secondary-color);
    --mjt-accent: var(--aj-primary-color);
    --mjt-accent-strong: var(--aj-link-color);
    --mjt-accent-soft: rgba(var(--aj-primary-rgb), 0.08);
    --mjt-surface: #ffffff;
    --mjt-border: #dbe3ef;
    --mjt-radius-md: var(--aj-radius-md);
    --mjt-radius-lg: var(--aj-radius-lg);
    --mjt-shadow-sm: var(--aj-shadow-sm);
}

/* ── Sidebar: Latest Announcements ──────────────────────────── */
.aj_sidebar_announcements {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 10px;
    box-shadow: 0 8px 24px -20px rgba(2, 6, 23, 0.5);
    margin-bottom: 0.9rem;
    overflow: hidden;
}

.aj_sidebar_announcements_header {
    align-items: center;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    display: flex;
    gap: 0.55rem;
    padding: 0.85rem 1rem;
}

.aj_sidebar_announcements_icon {
    color: var(--aj-primary-color);
    display: flex;
    flex-shrink: 0;
}

.aj_sidebar_announcements_title {
    color: #0f172a;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
}

/* remove the ::after underline decoration inherited from .pkp_structure_sidebar .title */
.aj_sidebar_announcements_title::after {
    display: none !important;
}

.aj_sidebar_announcements_list {
    list-style: none;
    margin: 0;
    padding: 0.4rem 0;
}

.aj_sidebar_ann_item {
    border-bottom: 1px solid #f1f5f9;
    padding: 0.7rem 1rem;
}

.aj_sidebar_ann_item:last-child {
    border-bottom: 0;
}

.aj_sidebar_ann_date {
    color: #94a3b8;
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
}

.aj_sidebar_ann_link {
    color: var(--aj-text-color);
    display: block;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    transition: color var(--aj-transition-fast);
}

.aj_sidebar_ann_link:hover {
    color: var(--aj-primary-color);
    text-decoration: none;
}

.aj_sidebar_ann_excerpt {
    color: #64748b;
    font-size: 0.8rem;
    line-height: 1.5;
    margin: 0.3rem 0 0;
}

.aj_sidebar_announcements_more {
    border-top: 1px solid #f1f5f9;
    color: var(--aj-primary-color);
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.6rem 1rem;
    text-align: right;
    text-decoration: none;
    transition: background var(--aj-transition-fast), color var(--aj-transition-fast);
}

.aj_sidebar_announcements_more:hover {
    background: rgba(var(--aj-primary-rgb), 0.05);
    color: var(--aj-primary-color);
    text-decoration: none;
}

/* ── Sidebar: Donation card ──────────────────────────────────── */
.aj_donation_sidebar_card {
    padding: 1.1rem;
    border-radius: var(--aj-radius-lg);
    background: linear-gradient(135deg, rgba(var(--aj-primary-rgb), 0.96), rgba(15, 23, 42, 0.94));
    color: #fff;
    box-shadow: var(--aj-shadow-lg);
}

.aj_donation_sidebar_card h2 {
    margin: 0 0 0.5rem;
    color: #fff;
    font-size: 1rem;
}

.aj_donation_sidebar_card p {
    margin: 0 0 0.85rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.9rem;
    line-height: 1.55;
}

.aj_donation_sidebar_button,
.mjt-donate-submit,
.mjt-donate-nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border: 0;
    border-radius: var(--aj-radius-md);
    background: var(--aj-primary-color);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: transform var(--aj-transition-fast), box-shadow var(--aj-transition-fast), background var(--aj-transition-fast);
}

.aj_donation_sidebar_button {
    width: 100%;
    padding: 0.7rem 1rem;
    background: #fff;
    color: var(--aj-primary-color);
}

.mjt-donate-page,
.mjt-report-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.mjt-donate-page__header {
    text-align: center;
    margin-bottom: 2.5rem;
}

.mjt-donate-page__title,
.mjt-report-page__title {
    margin: 0 0 0.75rem;
    color: var(--aj-text-color);
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight: 800;
}

.mjt-donate-page__subtitle {
    max-width: 680px;
    margin: 0 auto;
    color: var(--aj-secondary-color);
    line-height: 1.7;
}

.mjt-donate-page__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(260px, 0.8fr);
    gap: 2rem;
}

.mjt-donate-step,
.mjt-donate-success,
.mjt-donate-thankyou,
.mjt-donate-sidebar-card,
.mjt-report-stat-card,
.mjt-report-table-wrap {
    margin-bottom: 1.5rem;
    padding: 1.5rem;
    border: 1px solid var(--mjt-border);
    border-radius: var(--aj-radius-lg);
    background: #fff;
    box-shadow: var(--aj-shadow-sm);
}

.mjt-donate-step__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-bottom: 1rem;
    border-radius: 999px;
    background: var(--aj-primary-color);
    color: #fff;
    font-weight: 800;
}

.mjt-donate-step__title,
.mjt-donate-sidebar-card__title {
    margin: 0 0 1rem;
    color: var(--aj-text-color);
    font-size: 1.15rem;
    font-weight: 800;
}

.mjt-donate-amounts,
.mjt-donate-gateways,
.mjt-donate-success__actions,
.mjt-report-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.mjt-donate-amount,
.mjt-donate-gateway__card {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.8rem 1rem;
    border: 2px solid var(--mjt-border);
    border-radius: var(--aj-radius-md);
    background: #fff;
    color: var(--aj-text-color);
    cursor: pointer;
    transition: border-color var(--aj-transition-fast), background var(--aj-transition-fast), color var(--aj-transition-fast);
}

.mjt-donate-amount:hover,
.mjt-donate-gateway:hover .mjt-donate-gateway__card,
.mjt-donate-amount--selected,
.mjt-donate-gateway--selected .mjt-donate-gateway__card {
    border-color: var(--aj-primary-color);
    background: rgba(var(--aj-primary-rgb), 0.08);
}

.mjt-donate-amount--selected {
    background: var(--aj-primary-color);
    color: #fff;
}

.mjt-donate-custom,
.mjt-donate-info,
.mjt-donate-summary,
.mjt-donate-instructions {
    margin-top: 1rem;
}

.mjt-donate-custom__label,
.mjt-donate-info__label,
.mjt-donate-actions__note,
.mjt-donate-sidebar-card p,
.mjt-donate-sidebar-card li,
.mjt-report-page__back {
    color: var(--aj-secondary-color);
}

.mjt-donate-custom__input-wrap {
    display: inline-flex;
    overflow: hidden;
    border: 1px solid var(--mjt-border);
    border-radius: var(--aj-radius-md);
}

.mjt-donate-custom__prefix {
    padding: 0.7rem 0.85rem;
    background: #f3f6fb;
    border-right: 1px solid var(--mjt-border);
    font-weight: 700;
}

.mjt-donate-custom__input,
.mjt-donate-info__input {
    width: 100%;
    min-height: 2.9rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--mjt-border);
    border-radius: var(--aj-radius-md);
    color: var(--aj-text-color);
}

.mjt-donate-custom__input {
    width: 180px;
    border: 0;
}

.mjt-donate-info {
    display: grid;
    gap: 1rem;
}

.mjt-donate-gateway__radio {
    position: absolute;
    opacity: 0;
}

.mjt-donate-gateway__icon,
.mjt-donate-gateway__check,
.mjt-donate-success__icon,
.mjt-donate-thankyou__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
}

.mjt-donate-gateway__icon {
    width: 2.4rem;
    height: 2.4rem;
    background: rgba(var(--aj-primary-rgb), 0.1);
    color: var(--aj-primary-color);
}

.mjt-donate-gateway__check {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid var(--mjt-border);
}

.mjt-donate-gateway--selected .mjt-donate-gateway__check {
    background: var(--aj-primary-color);
    border-color: var(--aj-primary-color);
    color: #fff;
}

.mjt-donate-summary {
    padding: 1rem;
    border-radius: var(--aj-radius-md);
    background: #f8fafc;
}

.mjt-donate-summary__row {
    display: flex;
    justify-content: space-between;
    padding: 0.35rem 0;
}

.mjt-donate-submit {
    padding: 0.85rem 1.5rem;
}

.mjt-donate-submit:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.mjt-donate-instructions {
    padding: 1.25rem;
    border: 2px solid var(--aj-primary-color);
    border-radius: var(--aj-radius-lg);
    background: rgba(var(--aj-primary-rgb), 0.04);
}

.mjt-donate-success,
.mjt-donate-thankyou {
    text-align: center;
}

.mjt-donate-success__title,
.mjt-donate-thankyou__title {
    color: #047857;
}

.mjt-donate-success__button {
    padding: 0.8rem 1.2rem;
    border-radius: var(--aj-radius-md);
    background: var(--aj-primary-color);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

.mjt-status {
    display: inline-flex;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
}

.mjt-status--success {
    background: #dcfce7;
    color: #166534;
}

.mjt-status--pending {
    background: #fef3c7;
    color: #92400e;
}

.mjt-status--failed {
    background: #fee2e2;
    color: #991b1b;
}

.mjt-report-page__header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.mjt-report-stat-card {
    flex: 1 1 180px;
    text-align: center;
}

.mjt-report-table {
    width: 100%;
    border-collapse: collapse;
}

.mjt-report-table th,
.mjt-report-table td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--mjt-border);
    text-align: left;
}

@media (max-width: 900px) {
    .mjt-donate-page__layout {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   Authentication Pages — Login & Register
   All selectors scoped under .aj-auth-page so they beat
   the parent theme's .cmp_form rules without !important spam
   ============================================================ */

/* ── Page shell ─────────────────────────────────────────────── */
.aj-auth-page {
    --auth-brand-w: 400px;
    --auth-rail-w:  300px;
    --auth-radius:  12px;
    background: #eef2f7;
    min-height: calc(100vh - 160px);
    padding: 0;
    margin: 0;
}

/* Neutralise the pkp_structure_main card around auth pages */
.pkp_structure_main:has(.aj-auth-page) {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* ── Shared: form header ────────────────────────────────────── */
.aj-auth-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.aj-auth-header__icon {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, var(--aj-primary-color), #3b5cc4);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(var(--aj-primary-rgb), 0.35);
}
.aj-auth-header__title {
    font-family: var(--aj-font-heading);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.2rem;
    line-height: 1.15;
}
.aj-auth-header__sub {
    font-size: 0.9rem;
    color: #64748b;
    margin: 0;
}

/* ── Shared: alerts ─────────────────────────────────────────── */
.aj-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.75rem 1rem;
    border-radius: 0.6rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 1.1rem;
}
.aj-alert svg { flex-shrink: 0; margin-top: 2px; }
.aj-alert--info  { background: #eff6ff; border: 1px solid #bfdbfe; color: #1d4ed8; }
.aj-alert--error { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; }

/* ── Field container ────────────────────────────────────────── */
/* Override .cmp_form .fields > div padding */
.aj-auth-page .aj-fields { border: 0; padding: 0; margin: 0; }
.aj-auth-page .aj-fields > .aj-field { padding-bottom: 0 !important; }
.aj-auth-page .aj-field { display: flex; flex-direction: column; gap: 0.35rem; }

/* ── Labels ─────────────────────────────────────────────────── */
/* Override .cmp_form label { display:block } */
.aj-auth-page .aj-label {
    display: block !important;
    font-size: 0.835rem !important;
    font-weight: 700 !important;
    color: #334155 !important;
    cursor: default !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}
.aj-label__req { color: #e11d48; margin-left: 0.15rem; }

/* ── Input wrapper — icon + input + toggle ──────────────────── */
.aj-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

/* Icon: absolutely centred on the left */
.aj-auth-page .aj-input-icon {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    color: #94a3b8;
    pointer-events: none;
    z-index: 2;
    line-height: 1;
    transition: color 150ms ease;
}

/*
 * The single most important rule: override .cmp_form input padding
 * with a left-pad wide enough to clear the icon (0.85rem offset + 16px icon + 8px gap ≈ 2.7rem)
 */
.aj-auth-page .aj-input {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;       /* beats .cmp_form @media max-width: 20em */
    height: 2.85rem !important;
    padding: 0 1rem 0 2.75rem !important;  /* left clears 16px icon at 0.85rem + gap */
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 0.6rem !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 0.925rem !important;
    font-family: var(--aj-font-primary) !important;
    line-height: normal !important;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    outline: none !important;
    appearance: none;
    box-sizing: border-box;
}
.aj-auth-page .aj-input::placeholder { color: #94a3b8; }
.aj-auth-page .aj-input:focus {
    border-color: var(--aj-primary-color) !important;
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.14) !important;
}
/* Password: extra right-padding for the toggle */
.aj-auth-page .aj-input--pw { padding-right: 2.85rem !important; }

/* When input is focused, tint the icon */
.aj-auth-page .aj-input-wrap:focus-within .aj-input-icon { color: var(--aj-primary-color); }

/* ── Password show/hide toggle ──────────────────────────────── */
.aj-pw-toggle {
    position: absolute !important;
    right: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    cursor: pointer;
    color: #94a3b8;
    border-radius: 0.4rem;
    padding: 0;
    z-index: 2;
    transition: color 150ms ease, background 150ms ease;
    /* keep this button out of the .cmp_form .buttons scope */
    line-height: 1;
}
.aj-pw-toggle:hover { color: var(--aj-primary-color); background: rgba(var(--aj-primary-rgb), 0.07) !important; }

/* ── Forgot password — block link below the input ───────────── */
.aj-forgot {
    display: block;
    text-align: right;
    margin-top: 0.3rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--aj-link-color);
    text-decoration: none;
    line-height: 1.4;
}
.aj-forgot:hover { text-decoration: underline; color: var(--aj-primary-color); }

/* ── Custom checkbox — single row ───────────────────────────── */
.aj-field--check { margin-top: 0.1rem; }

/*
 * Override .cmp_form label { display: block }  and
 * .cmp_form label > input[type="checkbox"] { margin-right: 0.25em }
 * so the checkbox and text sit on one line.
 */
.aj-auth-page .aj-check-label {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.6rem !important;
    cursor: pointer !important;
    user-select: none;
    line-height: 1.4;
    margin: 0 !important;
}

/* Hide the native checkbox — the .aj-check-box renders visually */
.aj-check {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.aj-check-box {
    flex-shrink: 0;
    width: 1.1rem;
    height: 1.1rem;
    border: 2px solid #cbd5e1;
    border-radius: 0.3rem;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 150ms ease, background 150ms ease;
    /* do NOT add margin-top — parent uses align-items:center */
}
.aj-check-box::after {
    content: "";
    display: block;
    width: 0.32rem;
    height: 0.58rem;
    border: 2px solid #fff;
    border-top: 0;
    border-left: 0;
    transform: rotate(45deg) scale(0);
    transition: transform 120ms ease;
}
.aj-check:checked ~ .aj-check-box {
    background: var(--aj-primary-color);
    border-color: var(--aj-primary-color);
}
.aj-check:checked ~ .aj-check-box::after { transform: rotate(45deg) scale(1); }
.aj-check:focus-visible ~ .aj-check-box { outline: 2px solid var(--aj-primary-color); outline-offset: 2px; }

.aj-check-text {
    font-size: 0.855rem;
    color: #475569;
    line-height: 1.4;
}
.aj-check-text a { color: var(--aj-link-color); }

/* ── Optin list (register page) ─────────────────────────────── */
.aj-optins {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    border: 0;
    padding: 0;
    margin: 0;
}
.aj-optins__legend {
    font-size: 0.875rem;
    font-weight: 700;
    color: #334155;
    margin-bottom: 0.65rem;
    display: block;
}

/* ── CAPTCHA ────────────────────────────────────────────────── */
.aj-captcha { border: 0; padding: 0; margin: 0; }

/* ── Required note ──────────────────────────────────────────── */
.aj-required-note {
    font-size: 0.82rem;
    color: #94a3b8;
    margin: -0.75rem 0 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* ── Submit button ──────────────────────────────────────────── */
/*
 * Scoped under .aj-auth-page to beat .cmp_form specificity.
 * All overrides use !important only where the parent theme
 * would otherwise win (padding, background, border, box-shadow).
 */
.aj-auth-page .aj-btn-primary {
    /* Layout */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.55rem;
    width: 100%;
    height: 3.25rem;
    padding: 0 2rem !important;
    margin: 0;

    /* Stacking context for ::before shimmer */
    position: relative;
    overflow: hidden;
    isolation: isolate;

    /* Colour — uses the journal's own primary color variable */
    background: var(--aj-primary-color) !important;
    color: #ffffff !important;

    /* Subtle top-highlight + coloured glow */
    box-shadow:
        0 1px 0 rgba(255,255,255,0.18) inset,
        0 -1px 0 rgba(0,0,0,0.2) inset,
        0 4px 20px -6px rgba(var(--aj-primary-rgb), 0.6),
        0 1px 4px rgba(0,0,0,0.14) !important;

    /* Shape */
    border: 0 !important;
    border-radius: 0.8rem !important;

    /* Typography */
    font-family: var(--aj-font-primary) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased;
    text-decoration: none;

    cursor: pointer;

    /* Base transition — all animating props listed explicitly */
    transition:
        box-shadow   200ms ease,
        transform    200ms cubic-bezier(0.34, 1.4, 0.64, 1),
        filter       200ms ease,
        background   200ms ease !important;
}

/* ── Shimmer pseudo-element ── */
.aj-auth-page .aj-btn-primary::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        108deg,
        transparent 30%,
        rgba(255, 255, 255, 0.22) 50%,
        transparent 70%
    );
    transform: translateX(-110%);
    transition: transform 520ms cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    z-index: 0;
}

/* Bring text/icon above shimmer */
.aj-auth-page .aj-btn-primary > * { position: relative; z-index: 1; }
.aj-auth-page .aj-btn-primary > span { position: relative; z-index: 1; }

/* ── Hover ── */
.aj-auth-page .aj-btn-primary:hover {
    transform: translateY(-2px) !important;
    filter: brightness(1.08) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.2) inset,
        0 -1px 0 rgba(0,0,0,0.2) inset,
        0 10px 28px -6px rgba(var(--aj-primary-rgb), 0.65),
        0 3px 8px rgba(0,0,0,0.16) !important;
    color: #fff !important;
    text-decoration: none;
}
.aj-auth-page .aj-btn-primary:hover::before {
    transform: translateX(110%);
}

/* ── Active / pressed ── */
.aj-auth-page .aj-btn-primary:active {
    transform: translateY(0) scale(0.985) !important;
    filter: brightness(0.96) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.1) inset,
        0 -1px 0 rgba(0,0,0,0.2) inset,
        0 2px 10px -4px rgba(var(--aj-primary-rgb), 0.45),
        0 1px 3px rgba(0,0,0,0.12) !important;
    transition-duration: 80ms !important;
}

/* ── Keyboard focus ring ── */
.aj-auth-page .aj-btn-primary:focus-visible {
    outline: none;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.18) inset,
        0 -1px 0 rgba(0,0,0,0.2) inset,
        0 0 0 3px #fff,
        0 0 0 5px rgba(var(--aj-primary-rgb), 0.65),
        0 4px 20px -6px rgba(var(--aj-primary-rgb), 0.6) !important;
}

/* ── Arrow SVG nudge on hover ── */
.aj-auth-page .aj-btn-primary svg {
    flex-shrink: 0;
    transition: transform 220ms cubic-bezier(0.34, 1.4, 0.64, 1);
}
.aj-auth-page .aj-btn-primary:hover svg { transform: translateX(4px); }

/* ── Login/Register switch line ─────────────────────────────── */
.aj-auth-switch {
    text-align: center;
    font-size: 0.855rem;
    color: #64748b;
    margin: 0.6rem 0 0;
}
.aj-auth-switch__link { color: var(--aj-link-color); font-weight: 700; text-decoration: none; }
.aj-auth-switch__link:hover { text-decoration: underline; }

/* ── Form actions ───────────────────────────────────────────── */
.aj-form-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

/* ============================================================
   LOGIN  —  two-column split
   ============================================================ */
.aj-login-wrap {
    display: grid;
    grid-template-columns: var(--auth-brand-w) 1fr;
    min-height: calc(100vh - 160px);
}

/* Brand panel */
.aj-login-brand {
    background:
        radial-gradient(ellipse at 15% 85%, rgba(96,165,250,0.18), transparent 55%),
        radial-gradient(ellipse at 85% 15%, rgba(251,191,36,0.1), transparent 50%),
        linear-gradient(160deg, #1e3a8a 0%, #0f172a 100%);
    color: #fff;
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    overflow: hidden;
}
.aj-login-brand::after {
    content: ""; position: absolute; right: -80px; top: -80px;
    width: 280px; height: 280px; border-radius: 50%;
    background: rgba(255,255,255,0.04); pointer-events: none;
}
.aj-login-brand::before {
    content: ""; position: absolute; left: -60px; bottom: -60px;
    width: 220px; height: 220px; border-radius: 50%;
    background: rgba(255,255,255,0.03); pointer-events: none;
}
.aj-login-brand__body {
    display: flex; flex-direction: column; gap: 2rem;
    padding: clamp(2rem, 4vw, 3.5rem) clamp(1.75rem, 3vw, 3rem);
    width: 100%; position: relative; z-index: 1;
}
.aj-login-brand__logo-link { display: block; text-decoration: none; }
.aj-login-brand__logo {
    max-height: 56px;
    width: auto;
    display: block;
    object-fit: contain;
    /* drop shadow helps readability on both light and dark panel backgrounds */
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.35));
}
.aj-login-brand__site-name {
    font-family: var(--aj-font-heading); font-size: 1.35rem;
    font-weight: 800; color: #fff;
}
.aj-login-brand__copy { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.aj-login-brand__eyebrow {
    display: inline-flex; align-items: center; gap: 0.4rem;
    font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em;
    text-transform: uppercase; color: #fbbf24; margin: 0 0 0.9rem;
}
.aj-login-brand__headline {
    font-family: var(--aj-font-heading);
    font-size: clamp(1.6rem, 2.5vw, 2.2rem);
    font-weight: 800; color: #fff; line-height: 1.2; margin: 0 0 0.75rem;
}
.aj-login-brand__tagline {
    color: rgba(255,255,255,0.7); font-size: 0.9rem;
    line-height: 1.65; margin: 0; max-width: 28rem;
}
.aj-login-brand__features {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.65rem;
    border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1.5rem;
}
.aj-login-brand__features li {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 0.875rem; color: rgba(255,255,255,0.82); font-weight: 500;
}
.aj-login-brand__feat-icon {
    flex-shrink: 0; width: 2rem; height: 2rem;
    border-radius: 0.5rem;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.12);
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,0.9);
}

/* Form panel */
.aj-login-form-panel {
    display: flex; align-items: center; justify-content: center;
    background: #eef2f7;
    padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3rem);
    overflow-y: auto;
}
.aj-login-form-inner { width: 100%; max-width: 26rem; }

/* The form card */
.aj-login-form-inner .aj-form {
    background: #fff;
    border-radius: var(--auth-radius);
    padding: 2rem;
    box-shadow: 0 8px 40px -16px rgba(15,23,42,0.18), 0 1px 4px rgba(15,23,42,0.06);
    border: 1px solid rgba(148,163,184,0.2);
    margin-top: 1.5rem;
    /* reset OJS cmp_form margin */
    margin-bottom: 0;
}
/* fieldset inside login card — no extra margin */
.aj-login-form-inner .aj-form .aj-fields { margin: 0; display: flex; flex-direction: column; gap: 1.1rem; }

/* ============================================================
   REGISTER  —  accent rail + scrollable form
   ============================================================ */
.aj-register-wrap {
    display: grid;
    grid-template-columns: var(--auth-rail-w) 1fr;
    min-height: calc(100vh - 160px);
}

/* Rail */
.aj-register-rail {
    background:
        radial-gradient(ellipse at 10% 90%, rgba(96,165,250,0.15), transparent 55%),
        linear-gradient(160deg, #1e3a8a 0%, #0f172a 100%);
    color: #fff;
    position: sticky; top: 0; height: 100vh;
    display: flex; overflow: hidden;
}
.aj-register-rail__body {
    display: flex; flex-direction: column; gap: 1.75rem;
    padding: 2.5rem 1.75rem; width: 100%;
    position: relative; z-index: 1; overflow-y: auto;
}
.aj-register-rail__logo-link { display: block; text-decoration: none; }
.aj-register-rail__logo {
    max-height: 52px;
    width: auto;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.35));
}
.aj-register-rail__site-name {
    font-family: var(--aj-font-heading); font-size: 1.15rem;
    font-weight: 800; color: #fff; line-height: 1.3;
}
.aj-register-rail__headline {
    font-family: var(--aj-font-heading); font-size: 1.25rem;
    font-weight: 800; color: #fff; margin: 0 0 0.5rem; line-height: 1.25;
}
.aj-register-rail__sub {
    color: rgba(255,255,255,0.65); font-size: 0.82rem; line-height: 1.6; margin: 0;
}
.aj-register-steps {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0;
    border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1.25rem;
}
.aj-register-step {
    display: flex; align-items: flex-start; gap: 0.75rem;
    padding: 0.75rem 0; position: relative;
    opacity: 0.45; transition: opacity 250ms ease;
}
.aj-register-step + .aj-register-step::before {
    content: ""; position: absolute; left: 0.825rem; top: -0.75rem;
    width: 2px; height: 0.75rem; background: rgba(255,255,255,0.15);
}
.aj-register-step.is-active,
.aj-register-step.is-done { opacity: 1; }
.aj-register-step__num {
    flex-shrink: 0; width: 1.65rem; height: 1.65rem;
    border-radius: 50%;
    background: rgba(255,255,255,0.12); border: 2px solid rgba(255,255,255,0.2);
    display: flex; align-items: center; justify-content: center;
    font-size: 0.72rem; font-weight: 800; color: rgba(255,255,255,0.7);
    transition: background 250ms ease, border-color 250ms ease, color 250ms ease;
}
.aj-register-step.is-active .aj-register-step__num { background: #fbbf24; border-color: #fbbf24; color: #1e3a8a; }
.aj-register-step.is-done .aj-register-step__num  { background: #22c55e; border-color: #22c55e; color: #fff; font-size: 0; }
.aj-register-step.is-done .aj-register-step__num::after { content: "✓"; font-size: 0.75rem; }
.aj-register-step__text { display: flex; flex-direction: column; gap: 0.15rem; }
.aj-register-step__text strong { font-size: 0.82rem; font-weight: 700; color: #fff; line-height: 1.3; }
.aj-register-step__text span  { font-size: 0.74rem; color: rgba(255,255,255,0.55); line-height: 1.45; }
.aj-register-rail__quote { margin: 0; border-left: 3px solid rgba(251,191,36,0.6); padding-left: 0.9rem; }
.aj-register-rail__quote p { color: rgba(255,255,255,0.65); font-size: 0.8rem; font-style: italic; line-height: 1.65; margin: 0; }

/* Main area */
.aj-register-main {
    background: #eef2f7; overflow-y: auto;
    padding: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 3vw, 2.5rem);
    display: flex; justify-content: center;
}
.aj-register-main__inner { width: 100%; max-width: 52rem; }

/* Section cards */
.aj-form-section {
    background: #fff;
    border-radius: var(--auth-radius);
    border: 1px solid rgba(148,163,184,0.22);
    box-shadow: 0 4px 20px -8px rgba(15,23,42,0.1);
    margin-bottom: 1.25rem;
    overflow: hidden;
    transition: box-shadow 200ms ease;
}
.aj-form-section:focus-within { box-shadow: 0 6px 28px -8px rgba(15,23,42,0.16); }
.aj-form-section__head {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid rgba(148,163,184,0.16);
    background: #f8fafc;
}
.aj-form-section__badge {
    flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 0.5rem;
    background: linear-gradient(135deg, rgba(var(--aj-primary-rgb),0.12), rgba(var(--aj-primary-rgb),0.05));
    color: var(--aj-primary-color);
    display: flex; align-items: center; justify-content: center;
}
.aj-form-section__title {
    font-size: 0.93rem; font-weight: 800; color: #0f172a;
    margin: 0; font-family: var(--aj-font-primary); letter-spacing: 0.01em;
}
.aj-form-section__body { padding: 1.5rem; }

/* OJS registrationForm.tpl field grid — override .cmp_form styles */
.aj-form-section__body .fields {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1rem 1.25rem !important;
    padding: 0 !important;
    margin: 0 !important;
}
.aj-form-section__body .fields > div { padding-bottom: 0 !important; }
/* Full-width cells */
.aj-form-section__body .fields .affiliation,
.aj-form-section__body .fields .country,
.aj-form-section__body .fields .email,
.aj-form-section__body .fields .password { grid-column: 1 / -1; }

/* Labels inside registrationForm */
.aj-form-section__body .fields label {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
    cursor: default !important;
}
.aj-form-section__body .fields .label {
    font-size: 0.835rem !important;
    font-weight: 700 !important;
    color: #334155 !important;
}
.aj-form-section__body .fields .required { color: #e11d48 !important; }
.aj-form-section__body .fields .pkp_screen_reader {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Inputs inside registrationForm — override .cmp_form max-width: 20em */
.aj-form-section__body .fields input[type="text"],
.aj-form-section__body .fields input[type="email"],
.aj-form-section__body .fields input[type="password"],
.aj-form-section__body .fields select {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 2.75rem !important;
    padding: 0 0.9rem !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 0.6rem !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 0.915rem !important;
    font-family: var(--aj-font-primary) !important;
    line-height: normal !important;
    box-sizing: border-box !important;
    appearance: none;
    outline: none !important;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
.aj-form-section__body .fields input:focus,
.aj-form-section__body .fields select:focus {
    border-color: var(--aj-primary-color) !important;
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.14) !important;
}
/* Country select chevron */
.aj-form-section__body .fields select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.9rem center !important;
    padding-right: 2.5rem !important;
}

/* pw-toggle buttons injected into OJS password wrappers by JS */
.aj-form-section__body .fields .password { position: relative; }
.aj-pw-toggle--reg {
    position: absolute;
    right: 0.5rem; top: 50%; transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center;
    width: 2rem; height: 2rem;
    background: transparent !important; border: 0 !important;
    box-shadow: none !important; cursor: pointer;
    color: #94a3b8; border-radius: 0.4rem; padding: 0; z-index: 2;
    transition: color 150ms ease;
}
.aj-pw-toggle--reg:hover { color: var(--aj-primary-color); }

/* formErrors */
.pkp_form_error,
.aj-form-section__body .pkp_form_error {
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    border-radius: 0.5rem;
    color: #b91c1c !important;
    font-size: 0.875rem !important;
    padding: 0.65rem 0.9rem !important;
    margin-bottom: 1rem;
    font-weight: 500 !important;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 860px) {
    .aj-login-wrap { grid-template-columns: 1fr; }
    .aj-login-brand { position: static; height: auto; }
    .aj-login-brand__body { padding: 2rem 1.5rem; gap: 1.25rem; }
    .aj-login-brand__copy { flex: unset; }
    .aj-login-brand__features { flex-direction: row; flex-wrap: wrap; gap: 0.5rem; }
    .aj-login-brand__features li { font-size: 0.8rem; }
    .aj-login-form-panel { padding: 2rem 1.25rem; }
    .aj-login-form-inner { max-width: 100%; }
    .aj-login-form-inner .aj-form { margin-top: 1rem; }
}

@media (max-width: 720px) {
    .aj-register-wrap { grid-template-columns: 1fr; }
    .aj-register-rail { position: static; height: auto; }
    .aj-register-rail__body { padding: 1.5rem 1.25rem; flex-direction: row; flex-wrap: wrap; gap: 1rem; }
    .aj-register-rail__copy, .aj-register-rail__quote { display: none; }
    .aj-register-steps { flex-direction: row; flex-wrap: wrap; border-top: 0; padding-top: 0; gap: 0.35rem; }
    .aj-register-step + .aj-register-step::before { display: none; }
    .aj-register-step { padding: 0.35rem 0.65rem; background: rgba(255,255,255,0.07); border-radius: 999px; gap: 0.4rem; }
    .aj-register-step__text span { display: none; }
    .aj-register-main { padding: 1.5rem 1rem; }
    .aj-form-section__body .fields { grid-template-columns: 1fr !important; }
    .aj-form-section__body .fields .affiliation,
    .aj-form-section__body .fields .country,
    .aj-form-section__body .fields .email,
    .aj-form-section__body .fields .password { grid-column: 1; }
}

@media (max-width: 480px) {
    .aj-login-brand__features { display: none; }
    .aj-login-form-inner .aj-form { padding: 1.25rem; }
    .aj-form-section__body { padding: 1.1rem; }
    .aj-form-section__head { padding: 0.85rem 1.1rem; }
}


/* ============================================================
   DOI — article card badge  &  article detail sidebar block
   ============================================================ */

/* ── Card badge ─────────────────────────────────────────────── */
.aj_article_doi {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.55rem 0 0.1rem;
    font-size: 0.8rem;
    line-height: 1.3;
    flex-wrap: wrap;
}

.aj_article_doi__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.15rem 0.5rem;
    background: var(--aj-primary-color);
    color: #ffffff;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    border-radius: 0.3rem;
    text-transform: uppercase;
    flex-shrink: 0;
    line-height: 1.5;
}

.aj_article_doi__link {
    color: #475569;
    font-size: 0.78rem;
    font-weight: 500;
    text-decoration: none;
    word-break: break-all;
    transition: color 150ms ease;
}

.aj_article_doi__link:hover {
    color: var(--aj-primary-color);
    text-decoration: underline;
}

/* ── Sidebar block on article detail page ───────────────────── */
.aj-doi-sidebar {
    margin-bottom: 0.1rem;
}

.aj-doi-sidebar__inner {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    background: linear-gradient(
        135deg,
        rgba(var(--aj-primary-rgb), 0.07) 0%,
        rgba(var(--aj-primary-rgb), 0.03) 100%
    );
    border: 1.5px solid rgba(var(--aj-primary-rgb), 0.18);
    border-radius: 0.65rem;
    padding: 0.75rem 1rem;
}

.aj-doi-sidebar__badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    padding: 0.2rem 0.55rem;
    background: var(--aj-primary-color);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    border-radius: 0.35rem;
    text-transform: uppercase;
    line-height: 1.6;
    margin-top: 0.05rem;
}

.aj-doi-sidebar__url {
    color: var(--aj-primary-color);
    font-size: 0.82rem;
    font-weight: 600;
    word-break: break-all;
    line-height: 1.5;
    text-decoration: none;
    transition: color 150ms ease, text-decoration-color 150ms ease;
    text-decoration-color: transparent;
}

.aj-doi-sidebar__url:hover {
    text-decoration: underline;
    text-decoration-color: var(--aj-primary-color);
    color: var(--aj-link-color);
}


/* ============================================================
   Issue Archive — filter bar, results bar, grid, empty state
   ============================================================ */

/* ── Page header ────────────────────────────────────────────── */
.aj_archive_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.5rem) clamp(1rem, 2.5vw, 2rem);
}

.aj_archive_header__title {
    font-size: clamp(1.4rem, 2.5vw, 1.85rem);
    font-family: var(--aj-font-heading);
    font-weight: 800;
    color: #0f172a;
    margin: 0;
}

.aj_archive_header__count {
    font-size: 0.875rem;
    color: #64748b;
    margin: 0.25rem 0 0;
}

/* ── Filter bar ─────────────────────────────────────────────── */
.aj_archive_filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding: 1rem clamp(1rem, 2.5vw, 2rem);
}

.aj_filter_group {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.aj_filter_group--search { flex: 1 1 220px; }
.aj_filter_group--sort   { min-width: 140px; }

.aj_filter_label {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: default;
    user-select: none;
}

/* Search input wrapper */
.aj_filter_input_wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.aj_filter_input {
    width: 100%;
    height: 2.5rem;
    padding: 0 2.25rem 0 0.85rem;
    border: 1.5px solid #cbd5e1;
    border-radius: 0.55rem;
    background: #fff;
    color: #0f172a;
    font-size: 0.9rem;
    font-family: var(--aj-font-primary);
    outline: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    appearance: none;
}

.aj_filter_input::placeholder { color: #94a3b8; }

.aj_filter_input:focus {
    border-color: var(--aj-primary-color);
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.12);
}

.aj_filter_clear_search {
    position: absolute;
    right: 0.55rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    background: #e2e8f0;
    border: 0;
    border-radius: 50%;
    color: #64748b;
    cursor: pointer;
    padding: 0;
    transition: background 150ms ease, color 150ms ease;
}

.aj_filter_clear_search:hover { background: #cbd5e1; color: #1e293b; }

/* Select dropdowns */
.aj_filter_select {
    height: 2.5rem;
    padding: 0 2.2rem 0 0.85rem;
    border: 1.5px solid #cbd5e1;
    border-radius: 0.55rem;
    background: #fff;
    color: #0f172a;
    font-size: 0.9rem;
    font-family: var(--aj-font-primary);
    outline: none;
    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 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    min-width: 130px;
}

.aj_filter_select:focus {
    border-color: var(--aj-primary-color);
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.12);
}

/* Reset button */
.aj_filter_reset {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    height: 2.5rem;
    padding: 0 0.9rem;
    background: transparent;
    border: 1.5px solid #e2e8f0;
    border-radius: 0.55rem;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
    font-family: var(--aj-font-primary);
    cursor: pointer;
    transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
    align-self: flex-end;
    white-space: nowrap;
}

.aj_filter_reset:hover {
    border-color: var(--aj-primary-color);
    color: var(--aj-primary-color);
    background: rgba(var(--aj-primary-rgb), 0.05);
}

/* Keyboard shortcut hint */
.aj_archive_filters::after {
    content: "Press  /  to search";
    display: none; /* shown via JS class */
    font-size: 0.72rem;
    color: #94a3b8;
    align-self: flex-end;
    padding-bottom: 0.6rem;
    white-space: nowrap;
}

/* ── Results bar ────────────────────────────────────────────── */
.aj_archive_results_bar {
    min-height: 1.5rem;
    padding: 0 0.25rem;
    font-size: 0.82rem;
    color: #64748b;
    font-weight: 500;
    display: flex;
    align-items: center;
}

/* ── Grid ───────────────────────────────────────────────────── */
.aj_archive_grid_wrap {
    padding: clamp(1rem, 2vw, 1.5rem);
}

/* Entrance animation for filtered items */
@keyframes aj-issue-appear {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

.aj_issue_item.aj-issue-appear {
    animation: aj-issue-appear 280ms ease both;
}

/* ── Empty state ────────────────────────────────────────────── */
.aj_archive_empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem 1rem;
    color: #94a3b8;
    text-align: center;
}

.aj_archive_empty svg { opacity: 0.45; }

.aj_archive_empty p {
    font-size: 0.95rem;
    color: #64748b;
    margin: 0;
}

.aj_archive_empty .aj_filter_reset {
    border-color: rgba(var(--aj-primary-rgb), 0.3);
    color: var(--aj-primary-color);
}

/* ── Active-filter highlight on select/input ────────────────── */
.aj_filter_input:not(:placeholder-shown),
.aj_filter_select.is-active {
    border-color: var(--aj-primary-color);
    background-color: rgba(var(--aj-primary-rgb), 0.03);
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 640px) {
    .aj_archive_filters {
        flex-direction: column;
        align-items: stretch;
    }
    .aj_filter_group--search,
    .aj_filter_group--sort,
    .aj_filter_group { flex: 1 1 auto; width: 100%; }
    .aj_filter_select { min-width: 0; width: 100%; }
    .aj_filter_reset  { width: 100%; justify-content: center; }
}

/* ============================================================
   Social Media Icons — header top bar & footer
   ============================================================ */

/* ── Shared icon SVG sizing ─────────────────────────────────── */
.aj_social_icon {
    display: block;
    flex-shrink: 0;
    /* fill is inherited from the link color */
}

/* ── Header top-bar social links ────────────────────────────── */
.aj_top_social_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.78);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    text-decoration: none;
    transition:
        color       150ms ease,
        background  150ms ease,
        border-color 150ms ease,
        transform   150ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.aj_top_social_link:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.35);
    transform: translateY(-2px);
    text-decoration: none;
}

.aj_top_social_link:active {
    transform: translateY(0) scale(0.95);
}

/* Keep the left cluster nicely spaced when social links are present */
.aj_top_left:has(.aj_top_social_link) {
    gap: 0.4rem;
}

/* Empty left cluster — hide the bar item gracefully */
.aj_top_left:empty {
    display: none;
}

/* ── Footer social links ─────────────────────────────────────── */
.aj_footer_socials {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1rem;
}

.aj_footer_social_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.45rem;
    color: rgba(255, 255, 255, 0.65);
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.1);
    text-decoration: none;
    transition:
        color        150ms ease,
        background   150ms ease,
        border-color 150ms ease,
        transform    160ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.aj_footer_social_link:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.28);
    transform: translateY(-2px);
    text-decoration: none;
}

.aj_footer_social_link:active {
    transform: translateY(0) scale(0.94);
}

/* Per-network accent colours on hover (optional polish) */
.aj_footer_social_link[aria-label="X / Twitter"]:hover       { background: rgba(0,   0,   0,   0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="Facebook"]:hover          { background: rgba(24,  119, 242, 0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="LinkedIn"]:hover          { background: rgba(10,  102, 194, 0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="Instagram"]:hover         { background: rgba(225,  48, 108, 0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="YouTube"]:hover           { background: rgba(255,   0,   0, 0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="ResearchGate"]:hover      { background: rgba(0,   204, 187, 0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="ORCID"]:hover             { background: rgba(166, 206,  57, 0.85); border-color: rgba(255,255,255,0.2); }
.aj_footer_social_link[aria-label="Google Scholar"]:hover    { background: rgba(66,  133, 244, 0.85); border-color: rgba(255,255,255,0.2); }


/* ============================================================
   Article Detail — Enhanced Authors List
   ============================================================ */

/* ── Section heading ────────────────────────────────────────── */
.aj-authors-section {
    margin-bottom: 1.75rem;
}

.aj-authors-heading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--aj-font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 2px solid #e2e8f0;
    letter-spacing: 0.01em;
}

.aj-authors-heading svg {
    color: var(--aj-primary-color);
    flex-shrink: 0;
}

/* ── List reset ─────────────────────────────────────────────── */
.aj-authors-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* ── Individual author card ─────────────────────────────────── */
.aj-author-card {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 1rem 1.1rem;
    transition: border-color 200ms ease, box-shadow 200ms ease;
}

.aj-author-card:hover {
    border-color: rgba(var(--aj-primary-rgb), 0.3);
    box-shadow: 0 4px 16px -6px rgba(var(--aj-primary-rgb), 0.15);
}

/* ── Avatar circle ──────────────────────────────────────────── */
.aj-author-avatar {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: linear-gradient(
        135deg,
        var(--aj-primary-color),
        rgba(var(--aj-primary-rgb), 0.7)
    );
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 0.85rem;
    font-weight: 800;
    font-family: var(--aj-font-primary);
    letter-spacing: 0.03em;
    user-select: none;
    box-shadow: 0 2px 8px -2px rgba(var(--aj-primary-rgb), 0.4);
}

/* Different hue per nth avatar for visual variety */
.aj-authors-list li:nth-child(2) .aj-author-avatar {
    background: linear-gradient(135deg, #0e7490, #06b6d4);
}
.aj-authors-list li:nth-child(3) .aj-author-avatar {
    background: linear-gradient(135deg, #7c3aed, #a78bfa);
}
.aj-authors-list li:nth-child(4) .aj-author-avatar {
    background: linear-gradient(135deg, #b45309, #f59e0b);
}
.aj-authors-list li:nth-child(5) .aj-author-avatar {
    background: linear-gradient(135deg, #be123c, #fb7185);
}
.aj-authors-list li:nth-child(6) .aj-author-avatar {
    background: linear-gradient(135deg, #065f46, #34d399);
}

/* ── Info block ─────────────────────────────────────────────── */
.aj-author-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

/* ── Name row ───────────────────────────────────────────────── */
.aj-author-name-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    line-height: 1.3;
}

.aj-author-name {
    font-size: 0.975rem;
    font-weight: 700;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* Corresponding author envelope marker */
.aj-author-corresponding {
    font-style: normal;
    font-size: 0.8rem;
    color: var(--aj-primary-color);
    text-decoration: none;
    cursor: help;
    line-height: 1;
}

/* Role badge */
.aj-author-role {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    background: rgba(var(--aj-primary-rgb), 0.08);
    color: var(--aj-primary-color);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    border-radius: 999px;
    text-transform: uppercase;
    line-height: 1.6;
    border: 1px solid rgba(var(--aj-primary-rgb), 0.15);
    white-space: nowrap;
}

/* ── Affiliations ───────────────────────────────────────────── */
.aj-author-affiliations {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.aj-author-affiliation {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    font-size: 0.825rem;
    color: #475569;
    line-height: 1.45;
}

.aj-author-affiliation svg {
    flex-shrink: 0;
    margin-top: 0.15rem;
    color: #94a3b8;
}

.aj-author-ror-link {
    display: inline-flex;
    align-items: center;
    margin-left: 0.2rem;
    opacity: 0.7;
    transition: opacity 150ms ease;
    text-decoration: none;
}
.aj-author-ror-link:hover { opacity: 1; }

/* ── Country ────────────────────────────────────────────────── */
.aj-author-country {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 500;
}

.aj-author-country svg {
    flex-shrink: 0;
    color: #94a3b8;
}

/* ── Links row ──────────────────────────────────────────────── */
.aj-author-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 0.15rem;
}

.aj-author-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    padding: 0.2rem 0.6rem;
    border-radius: 0.35rem;
    border: 1px solid;
    transition: background 150ms ease, color 150ms ease;
    line-height: 1.5;
}

/* ORCID link — green tones */
.aj-author-link--orcid {
    color: #4c7a1e;
    border-color: rgba(76, 122, 30, 0.25);
    background: rgba(76, 122, 30, 0.06);
}
.aj-author-link--orcid:hover {
    background: rgba(76, 122, 30, 0.12);
    color: #3a5f17;
    text-decoration: none;
}

/* ORCID icons from OJS — constrain size */
.aj-author-link--orcid img,
.aj-author-link--orcid svg:first-child {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

/* Web link — primary tones */
.aj-author-link--web {
    color: var(--aj-primary-color);
    border-color: rgba(var(--aj-primary-rgb), 0.2);
    background: rgba(var(--aj-primary-rgb), 0.05);
}
.aj-author-link--web:hover {
    background: rgba(var(--aj-primary-rgb), 0.12);
    color: var(--aj-primary-color);
    text-decoration: none;
}

/* ── Biography collapsible ──────────────────────────────────── */
.aj-author-bio {
    margin-top: 0.35rem;
    border-top: 1px dashed #e2e8f0;
    padding-top: 0.5rem;
}

.aj-author-bio__toggle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    user-select: none;
    list-style: none;
    padding: 0.1rem 0;
    transition: color 150ms ease;
}

.aj-author-bio__toggle::-webkit-details-marker { display: none; }
.aj-author-bio__toggle::marker { display: none; }

.aj-author-bio__toggle:hover { color: var(--aj-primary-color); }

.aj-author-bio__toggle svg {
    flex-shrink: 0;
    transition: transform 200ms ease;
}

details.aj-author-bio[open] .aj-author-bio__toggle svg {
    transform: rotate(180deg);
}

.aj-author-bio__body {
    font-size: 0.85rem;
    color: #475569;
    line-height: 1.65;
    padding-top: 0.5rem;
}

.aj-author-bio__body p:last-child { margin-bottom: 0; }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 520px) {
    .aj-author-card { flex-direction: column; gap: 0.65rem; }
    .aj-author-avatar { width: 2.25rem; height: 2.25rem; font-size: 0.75rem; }
}


/* ============================================================
   Editorial Masthead Page
   ============================================================ */

/* ── Hero header ────────────────────────────────────────────── */
.aj-masthead-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 2.5vw, 2rem);
}

.aj-masthead-hero__title {
    font-family: var(--aj-font-heading);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.3rem;
    line-height: 1.2;
}

.aj-masthead-hero__sub {
    font-size: 0.9rem;
    color: #64748b;
    margin: 0;
    max-width: 52rem;
    line-height: 1.55;
}

.aj-masthead-history-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 1rem;
    border: 1.5px solid rgba(var(--aj-primary-rgb), 0.25);
    border-radius: 0.6rem;
    color: var(--aj-primary-color);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background 150ms ease, border-color 150ms ease;
}

.aj-masthead-history-link:hover {
    background: rgba(var(--aj-primary-rgb), 0.06);
    border-color: var(--aj-primary-color);
    text-decoration: none;
}

/* ── Role group card ────────────────────────────────────────── */
.aj-masthead-group {
    padding: 0;
    overflow: hidden;
}

.aj-masthead-group__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
}

.aj-masthead-group__icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: linear-gradient(135deg,
        rgba(var(--aj-primary-rgb), 0.12),
        rgba(var(--aj-primary-rgb), 0.05));
    color: var(--aj-primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.aj-masthead-group__icon--reviewers {
    background: linear-gradient(135deg, rgba(5,150,105,0.12), rgba(5,150,105,0.05));
    color: #059669;
}

.aj-masthead-group__title {
    font-family: var(--aj-font-heading);
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0;
    flex: 1;
    letter-spacing: 0.01em;
}

.aj-masthead-group__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 0.5rem;
    background: var(--aj-primary-color);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 800;
    border-radius: 999px;
    flex-shrink: 0;
}

.aj-masthead-group--reviewers .aj-masthead-group__count {
    background: #059669;
}

/* ── Member list ────────────────────────────────────────────── */
.aj-masthead-members {
    list-style: none;
    margin: 0;
    padding: 1.25rem 1.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

/* ── Individual member card ─────────────────────────────────── */
.aj-masthead-member {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 0.75rem;
    padding: 1rem;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.aj-masthead-member:hover {
    border-color: rgba(var(--aj-primary-rgb), 0.3);
    box-shadow: 0 4px 16px -6px rgba(var(--aj-primary-rgb), 0.15);
}

/* ── Avatar ─────────────────────────────────────────────────── */
.aj-masthead-avatar {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--aj-primary-color), rgba(var(--aj-primary-rgb),0.7));
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 800;
    font-family: var(--aj-font-primary);
    letter-spacing: 0.03em;
    box-shadow: 0 2px 8px -2px rgba(var(--aj-primary-rgb), 0.4);
    user-select: none;
}

/* Colour variants per position */
.aj-masthead-members li:nth-child(4n+2) .aj-masthead-avatar { background: linear-gradient(135deg,#0e7490,#06b6d4); }
.aj-masthead-members li:nth-child(4n+3) .aj-masthead-avatar { background: linear-gradient(135deg,#7c3aed,#a78bfa); }
.aj-masthead-members li:nth-child(4n+4) .aj-masthead-avatar { background: linear-gradient(135deg,#b45309,#f59e0b); }
.aj-masthead-members li:nth-child(4n+5) .aj-masthead-avatar { background: linear-gradient(135deg,#be123c,#fb7185); }

/* ── Member info block ──────────────────────────────────────── */
.aj-masthead-member__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.aj-masthead-member__name-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.aj-masthead-member__name {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

/* ORCID button */
.aj-masthead-orcid-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: rgba(166, 206, 57, 0.12);
    border: 1px solid rgba(166, 206, 57, 0.35);
    color: #4c7a1e;
    text-decoration: none;
    flex-shrink: 0;
    transition: background 150ms ease, transform 150ms ease;
}

.aj-masthead-orcid-link:hover {
    background: rgba(166, 206, 57, 0.22);
    transform: scale(1.1);
    text-decoration: none;
}

.aj-masthead-orcid-link--sm {
    width: 1.35rem;
    height: 1.35rem;
}

/* Meta lines (affiliation, country, url, since) */
.aj-masthead-member__affiliation,
.aj-masthead-member__country,
.aj-masthead-member__since,
.aj-masthead-member__url {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.4;
}

.aj-masthead-member__affiliation svg,
.aj-masthead-member__country svg,
.aj-masthead-member__since svg { flex-shrink: 0; margin-top: 0.1rem; color: #94a3b8; }

.aj-masthead-member__url {
    color: var(--aj-link-color);
    text-decoration: none;
    font-weight: 500;
    word-break: break-all;
}

.aj-masthead-member__url:hover { text-decoration: underline; }

/* Biography collapsible */
.aj-masthead-bio {
    margin-top: 0.35rem;
    border-top: 1px dashed #e2e8f0;
    padding-top: 0.5rem;
}

.aj-masthead-bio__toggle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    user-select: none;
    list-style: none;
    padding: 0;
    transition: color 150ms ease;
}

.aj-masthead-bio__toggle::-webkit-details-marker,
.aj-masthead-bio__toggle::marker { display: none; }

.aj-masthead-bio__toggle:hover { color: var(--aj-primary-color); }

details.aj-masthead-bio[open] .aj-masthead-bio__toggle svg { transform: rotate(180deg); }

.aj-masthead-bio__toggle svg { transition: transform 200ms ease; }

.aj-masthead-bio__body {
    font-size: 0.82rem;
    color: #475569;
    line-height: 1.65;
    padding-top: 0.5rem;
}

.aj-masthead-bio__body p:last-child { margin-bottom: 0; }

/* ── Peer reviewers section ─────────────────────────────────── */
.aj-masthead-reviewers__desc {
    font-size: 0.875rem;
    color: #64748b;
    margin: 0;
    padding: 0.75rem 1.5rem 0;
    line-height: 1.55;
}

.aj-masthead-reviewers-list {
    list-style: none;
    margin: 0;
    padding: 1.25rem 1.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.65rem;
}

.aj-masthead-reviewer {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 0.85rem;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 0.6rem;
    transition: border-color 150ms ease;
}

.aj-masthead-reviewer:hover {
    border-color: rgba(5, 150, 105, 0.3);
}

.aj-masthead-reviewer__avatar {
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #059669, #34d399);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 800;
    font-family: var(--aj-font-primary);
    user-select: none;
}

.aj-masthead-reviewer__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.aj-masthead-reviewer__name {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.aj-masthead-reviewer__affil {
    font-size: 0.75rem;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 640px) {
    .aj-masthead-members,
    .aj-masthead-reviewers-list { grid-template-columns: 1fr; }
    .aj-masthead-hero { flex-direction: column; align-items: flex-start; }
    .aj-masthead-group__header { padding: 0.85rem 1rem; }
    .aj-masthead-members { padding: 1rem; }
}


/* ============================================================
   User Social Profile Fields — public profile form injection
   ============================================================ */
.aj-profile-social-section {
    margin-top: 1.75rem;
    padding-top: 1.75rem;
    border-top: 2px solid #e2e8f0;
}

.aj-profile-social-section__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.4rem;
}

.aj-profile-social-section__title svg { color: var(--aj-primary-color); flex-shrink: 0; }

.aj-profile-social-section__hint {
    font-size: 0.82rem;
    color: #64748b;
    margin: 0 0 1.1rem;
    line-height: 1.5;
}

.aj-profile-social-fields {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.85rem;
}

.aj-profile-social-field {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.6rem;
    padding: 0.75rem 0.9rem;
    transition: border-color 150ms ease;
}

.aj-profile-social-field:focus-within {
    border-color: var(--aj-primary-color);
    background: #fff;
}

.aj-profile-social-field__icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 0.45rem;
    background: rgba(var(--aj-primary-rgb), 0.08);
    color: var(--aj-primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.1rem;
}

.aj-profile-social-field__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.aj-profile-social-field__label {
    font-size: 0.78rem;
    font-weight: 700;
    color: #475569;
    letter-spacing: 0.02em;
    cursor: default;
    display: block !important;
    margin: 0 !important;
}

.aj-profile-social-field__input {
    width: 100% !important;
    max-width: 100% !important;
    height: 2.2rem !important;
    padding: 0 0.75rem !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 0.45rem !important;
    background: #fff !important;
    color: #0f172a !important;
    font-size: 0.85rem !important;
    font-family: var(--aj-font-primary) !important;
    outline: none !important;
    transition: border-color 150ms ease, box-shadow 150ms ease !important;
    box-sizing: border-box !important;
}

.aj-profile-social-field__input::placeholder { color: #94a3b8; }

.aj-profile-social-field__input:focus {
    border-color: var(--aj-primary-color) !important;
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.12) !important;
}

/* ============================================================
   Masthead — social links row on member cards
   ============================================================ */
.aj-masthead-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.3rem;
}

.aj-masthead-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.4rem;
    background: rgba(var(--aj-primary-rgb), 0.07);
    border: 1px solid rgba(var(--aj-primary-rgb), 0.15);
    color: var(--aj-primary-color);
    text-decoration: none;
    flex-shrink: 0;
    transition: background 140ms ease, color 140ms ease, transform 140ms cubic-bezier(0.34,1.5,0.64,1);
}

.aj-masthead-social-link:hover {
    background: var(--aj-primary-color);
    color: #ffffff;
    border-color: var(--aj-primary-color);
    transform: translateY(-2px);
    text-decoration: none;
}

/* Per-network accent colours */
.aj-masthead-social-link[aria-label="X / Twitter"]:hover    { background: #000;    border-color: #000; }
.aj-masthead-social-link[aria-label="LinkedIn"]:hover        { background: #0a66c2; border-color: #0a66c2; }
.aj-masthead-social-link[aria-label="Facebook"]:hover        { background: #1877f2; border-color: #1877f2; }
.aj-masthead-social-link[aria-label="Instagram"]:hover       { background: #e1306c; border-color: #e1306c; }
.aj-masthead-social-link[aria-label="ResearchGate"]:hover    { background: #00ccbb; border-color: #00ccbb; }
.aj-masthead-social-link[aria-label="Google Scholar"]:hover  { background: #4285f4; border-color: #4285f4; }
.aj-masthead-social-link[aria-label="ORCID"]:hover           { background: #a6ce39; border-color: #a6ce39; color: #1a1a1a; }
.aj-masthead-social-link[aria-label="GitHub"]:hover          { background: #24292f; border-color: #24292f; }


/* ============================================================
   Profile photo avatars — masthead & article author cards
   ============================================================ */

/* ── Shared: photo variant overrides the gradient background ── */

/* Masthead avatar */
.aj-masthead-avatar--photo {
    background: transparent;
    box-shadow: none;
    padding: 0;
    overflow: hidden;
    border: 2px solid rgba(var(--aj-primary-rgb), 0.18);
}

.aj-masthead-avatar__photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* Article author card avatar */
.aj-author-avatar--photo {
    background: transparent;
    box-shadow: none;
    padding: 0;
    overflow: hidden;
    border: 2px solid rgba(var(--aj-primary-rgb), 0.18);
}

.aj-author-avatar__photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* Smooth fade-in when the image loads */
.aj-masthead-avatar__photo,
.aj-author-avatar__photo {
    animation: aj-avatar-fadein 300ms ease both;
}

@keyframes aj-avatar-fadein {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}

/* ========================================
   Subscription Page Styles
   ======================================== */
.page_subscription {
    gap: 1.5rem;
}

.aj_subscription_section {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 12px;
    padding: clamp(1.5rem, 2.5vw, 2.5rem);
    box-shadow: 0 10px 26px -24px rgba(15, 23, 42, 0.42);
}

.aj_subscription_container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}

.aj_subscription_content h1 {
    font-size: clamp(1.8rem, 3.2vw, 2.6rem);
    color: #0f172a;
    margin-bottom: 1rem;
    line-height: 1.2;
}

.aj_subscription_intro {
    font-size: 1.05rem;
    color: #475569;
    line-height: 1.7;
    margin-bottom: 1.8rem;
    max-width: 580px;
}

.aj_subscription_benefits {
    background: linear-gradient(135deg, #f0f4ff 0%, #faf4ff 100%);
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 10px;
    padding: 1.5rem;
    margin-top: 2rem;
}

.aj_subscription_benefits h2 {
    font-size: 1.2rem;
    color: #0f172a;
    margin-bottom: 1rem;
    margin-top: 0;
}

.aj_subscription_benefits ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.aj_subscription_benefits li {
    align-items: center;
    color: #334155;
    display: flex;
    font-size: 0.95rem;
    font-weight: 500;
    gap: 0.8rem;
    line-height: 1.5;
    margin: 0;
    padding: 0;
}

.aj_subscription_benefits li .fa {
    color: var(--aj-primary-color);
    flex: 0 0 1.2rem;
    font-size: 1.1rem;
    text-align: center;
}

.aj_subscription_form_wrapper {
    background: linear-gradient(135deg, rgba(var(--aj-primary-rgb), 0.02) 0%, rgba(37, 99, 235, 0.04) 100%);
    border: 2px solid rgba(37, 99, 235, 0.15);
    border-radius: 10px;
    padding: 2rem;
}

.aj_subscription_form_wrapper h2 {
    font-size: 1.35rem;
    color: #0f172a;
    margin-bottom: 1.5rem;
    margin-top: 0;
}

.aj_subscription_form {
    display: grid;
    gap: 1.2rem;
}

.aj_form_group {
    display: flex;
    flex-direction: column;
}

.aj_form_group label {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 0.4rem;
    line-height: 1.4;
}

.aj_form_group label .required {
    color: #ef4444;
    font-weight: 700;
}

.aj_form_input {
    padding: 0.75rem 0.95rem;
    font-size: 0.95rem;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    background: #ffffff;
    color: #0f172a;
    font-family: var(--aj-font-primary);
    transition: border-color var(--aj-transition-fast), box-shadow var(--aj-transition-fast), background-color var(--aj-transition-fast);
}

.aj_form_input::placeholder {
    color: #94a3b8;
    opacity: 0.8;
}

.aj_form_input:focus {
    outline: none;
    border-color: var(--aj-primary-color);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.1);
}

.aj_form_checkbox {
    flex-direction: row;
    align-items: flex-start;
}

.aj_form_label {
    display: inline-block;
    font-size: 0.92rem;
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 0.4rem;
}

.aj_form_checkbox_input {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 1.25rem;
    height: 1.25rem;
    min-width: 1.25rem;
    min-height: 1.25rem;
    margin-top: 0.15rem;
    margin-right: 0.75rem;
    border: 1.5px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    cursor: pointer;
    transition: all var(--aj-transition-fast);
}

.aj_form_checkbox_input:checked {
    background: var(--aj-primary-color);
    border-color: var(--aj-primary-color);
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1rem 1rem;
}

.aj_form_checkbox_input:focus {
    outline: none;
    border-color: var(--aj-primary-color);
    box-shadow: 0 0 0 3px rgba(var(--aj-primary-rgb), 0.1);
}

.aj_form_checkbox_input:hover:not(:checked) {
    border-color: var(--aj-primary-color);
}

.aj_form_checkbox_label {
    font-size: 0.9rem;
    color: #334155;
    line-height: 1.5;
    font-weight: 500;
    cursor: pointer;
}

.aj_subscription_button {
    align-items: center;
    background: var(--newsletter-button-bg, #0066cc);
    border: none;
    border-radius: 8px;
    color: var(--newsletter-button-color, #ffffff);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 700;
    gap: 0.6rem;
    justify-content: center;
    min-height: 2.6rem;
    padding: 0.75rem 1.5rem;
    transition: all var(--aj-transition-base);
    width: 100%;
}

.aj_subscription_button:hover {
    background: var(--newsletter-button-hover, #0052a3);
    box-shadow: 0 12px 28px -8px rgba(var(--aj-primary-rgb), 0.35);
    transform: translateY(-2px);
}

.aj_subscription_button:active {
    transform: translateY(0);
}

.aj_subscription_button:disabled {
    background: #cbd5e1;
    cursor: not-allowed;
    opacity: 0.7;
    transform: none;
}

.aj_subscription_privacy {
    font-size: 0.8rem;
    color: #64748b;
    margin-top: 1rem;
    text-align: center;
    line-height: 1.5;
}

.aj_subscription_message {
    background: linear-gradient(135deg, #f0fdf4 0%, #e7f9f1 100%);
    border: 1px solid #86efac;
    border-radius: 10px;
    padding: 1.2rem;
    text-align: center;
}

.aj_alert {
    color: #166534;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.6;
}

/* Success state */
.aj_subscription_message.success .aj_alert {
    color: #166534;
}

.aj_subscription_message.success {
    background: linear-gradient(135deg, #f0fdf4 0%, #e7f9f1 100%);
    border-color: #86efac;
}

/* Error state */
.aj_subscription_message.error .aj_alert {
    color: #991b1b;
}

.aj_subscription_message.error {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    border-color: #fca5a5;
}

/* Responsive design */
@media (max-width: 980px) {
    .aj_subscription_container {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .aj_subscription_form_wrapper {
        padding: 1.5rem;
    }
}

@media (max-width: 640px) {
    .aj_subscription_section {
        padding: 1.25rem;
    }

    .aj_subscription_content h1 {
        font-size: 1.5rem;
    }

    .aj_subscription_intro {
        font-size: 0.95rem;
    }

    .aj_subscription_benefits {
        padding: 1rem;
    }

    .aj_subscription_form_wrapper {
        padding: 1.25rem;
    }

    .aj_subscription_form_wrapper h2 {
        font-size: 1.15rem;
    }

    .aj_form_input,
    .aj_subscription_button {
        font-size: 0.9rem;
    }

    .aj_subscription_button {
        min-height: 2.4rem;
        padding: 0.65rem 1.25rem;
    }
}
