/*
===============================================================================
Ghalib Journal — OJS 3.5.x Default Theme
Bilingual Persian / English — RTL/LTR
Version: 1.0
Purpose: Custom journal stylesheet for OJS 3.5 Default Theme
===============================================================================

IMPORTANT:
1) Upload this file as the journal's Custom Stylesheet in OJS.
2) This file does NOT modify OJS core files.
3) The ORCID rules below style OJS's native .orcid / .orcid_icon markup.
   The ORCID Profile functionality/plugin must still provide the icon/URL.
4) Replace the colors in :root only if you want another visual identity.
===============================================================================
*/

/* ==========================================================================
   01. DESIGN TOKENS
   ========================================================================== */

:root {
    --gj-primary: #1e6292;
    --gj-primary-dark: #174b70;
    --gj-primary-light: #eaf3f8;
    --gj-gold: #c9a227;
    --gj-gold-light: #f5edd2;

    --gj-text: #222;
    --gj-text-soft: #5f6870;
    --gj-heading: #17324d;
    --gj-link: #145f91;
    --gj-link-hover: #0c4266;

    --gj-bg: #fff;
    --gj-bg-soft: #f7f9fb;
    --gj-bg-muted: #eef2f5;
    --gj-border: #d9e0e5;
    --gj-border-soft: #e7ecef;

    --gj-success: #16794c;
    --gj-danger: #b42318;
    --gj-warning: #9a6700;

    --gj-radius: 5px;
    --gj-radius-lg: 8px;
    --gj-shadow: 0 2px 12px rgba(20, 40, 55, .08);
    --gj-shadow-hover: 0 5px 18px rgba(20, 40, 55, .13);

    --gj-container: 1280px;
    --gj-sidebar: 280px;
    --gj-gap: 30px;

    --gj-font-fa: "Vazirmatn", "Vazir", Tahoma, Arial, sans-serif;
    --gj-font-en: "Inter", "Roboto", "Segoe UI", Arial, sans-serif;
    --gj-font-mono: "Cascadia Code", "Consolas", monospace;
}

/* ==========================================================================
   02. GLOBAL RESET / BASE
   ========================================================================== */

html {
    box-sizing: border-box;
    scroll-behavior: smooth;
    background: var(--gj-bg);
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    margin: 0;
    padding: 0;
    background: var(--gj-bg);
    color: var(--gj-text);
    font-family: var(--gj-font-en);
    font-size: 15px;
    line-height: 1.75;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea {
    font-variant-numeric: proportional-nums;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: var(--gj-link);
    transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

a:hover,
a:focus {
    color: var(--gj-link-hover);
}

p,
li,
dd,
blockquote,
figcaption,
td,
th {
    text-align: justify;
    text-justify: inter-word;
}

/* Do not justify technical strings. */
code,
pre,
kbd,
samp,
.doi,
.orcid,
.email,
.url,
[class*="doi"],
[class*="url"] {
    text-align: initial;
    overflow-wrap: anywhere;
}

/* ==========================================================================
   03. LANGUAGE / DIRECTION
   ========================================================================== */

/* English is the default. */
html[lang^="en"],
body[lang^="en"] {
    direction: ltr;
}

html[lang^="fa"],
html[lang^="fa-IR"],
html[lang^="ps"],
body[lang^="fa"],
body[lang^="ps"],
[dir="rtl"] {
    direction: rtl;
    font-family: var(--gj-font-fa);
}

/* Explicit LTR islands inside Persian pages. */
[dir="ltr"],
.ltr,
.en,
.language-en,
.lang-en {
    direction: ltr;
    text-align: left;
    font-family: var(--gj-font-en);
}

/* Explicit RTL islands. */
[dir="rtl"],
.rtl,
.fa,
.language-fa,
.lang-fa {
    direction: rtl;
    font-family: var(--gj-font-fa);
}

/* Numbers, DOI, URLs, e-mail and Latin technical strings remain readable. */
[dir="rtl"] .doi,
[dir="rtl"] .orcid,
[dir="rtl"] .email,
[dir="rtl"] .url,
[dir="rtl"] input[type="email"],
[dir="rtl"] input[type="url"],
[dir="rtl"] input[name*="doi"],
[dir="rtl"] input[name*="email"],
[dir="rtl"] input[name*="url"] {
    direction: ltr;
    text-align: left;
    unicode-bidi: plaintext;
}

/* ==========================================================================
   04. PAGE CONTAINER
   ========================================================================== */

body > .pkp_structure_page {
    width: 100%;
    max-width: var(--gj-container);
    margin: 0 auto;
    background: var(--gj-bg);
    box-shadow: 0 0 24px rgba(0, 0, 0, .04);
}

.pkp_structure_content,
.pkp_structure_footer,
.pkp_head_wrapper {
    width: 100%;
    max-width: var(--gj-container);
    margin-left: auto;
    margin-right: auto;
}

.pkp_structure_content {
    background: var(--gj-bg);
}

/* ==========================================================================
   05. HEADER
   ========================================================================== */

.pkp_structure_head {
    position: relative;
    z-index: 100;
    background: var(--gj-primary);
    color: #fff;
    border-bottom: 4px solid var(--gj-gold);
}

.pkp_head_wrapper {
    position: relative;
}

/* User menu */
.pkp_navigation_user_wrapper {
    position: absolute;
    top: 0;
    z-index: 110;
}

[dir="ltr"] .pkp_navigation_user_wrapper,
html[lang^="en"] .pkp_navigation_user_wrapper {
    right: 0;
    left: auto;
}

[dir="rtl"] .pkp_navigation_user_wrapper,
html[lang^="fa"] .pkp_navigation_user_wrapper {
    left: 0;
    right: auto;
}

.pkp_navigation_user,
.pkp_navigation_user ul {
    margin: 0;
    padding: 0;
}

.pkp_navigation_user > li > a,
.pkp_navigation_user a {
    color: rgba(255,255,255,.95);
    font-size: .82rem;
    text-decoration: none;
}

.pkp_navigation_user > li > a:hover,
.pkp_navigation_user > li > a:focus {
    color: #fff;
    background: rgba(255,255,255,.10);
}

/* Journal title / logo */
.pkp_site_name_wrapper {
    min-height: 92px;
    display: flex;
    align-items: center;
}

.pkp_site_name {
    position: relative;
    inset: auto;
    width: 100%;
    margin: 0;
    padding: 10px 0;
    color: #fff;
    text-align: inherit;
}

.pkp_site_name > a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    text-decoration: none;
}

.pkp_site_name .is_img {
    margin: 0;
    padding: 0;
}

.pkp_site_name .is_img img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 78px;
}

.pkp_site_name .is_text {
    color: #fff;
    font-family: inherit;
    font-size: clamp(1.25rem, 2.2vw, 2rem);
    font-weight: 700;
    line-height: 1.35;
}

/* ==========================================================================
   06. PRIMARY NAVIGATION
   ========================================================================== */

.pkp_navigation_primary_wrapper {
    width: 100%;
    background: var(--gj-primary-dark);
    border-top: 1px solid rgba(255,255,255,.10);
}

.pkp_navigation_primary {
    margin: 0;
    padding: 0;
}

.pkp_navigation_primary > li > a {
    color: #fff;
    font-size: .93rem;
    font-weight: 600;
    text-decoration: none;
    padding: 12px 15px;
}

.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus,
.pkp_navigation_primary > li.current > a {
    color: #fff;
    background: rgba(255,255,255,.12);
}

/* Dropdown */
.pkp_navigation_primary ul {
    min-width: 220px;
    margin: 0;
    padding: 6px 0;
    background: #fff;
    border: 1px solid var(--gj-border);
    border-radius: 0 0 var(--gj-radius) var(--gj-radius);
    box-shadow: var(--gj-shadow-hover);
    z-index: 9999;
}

.pkp_navigation_primary ul a {
    display: block;
    padding: 9px 14px;
    color: var(--gj-text);
    background: #fff;
    font-size: .9rem;
    line-height: 1.5;
    text-align: inherit;
    white-space: normal;
}

.pkp_navigation_primary ul a:hover,
.pkp_navigation_primary ul a:focus {
    color: var(--gj-primary-dark);
    background: var(--gj-primary-light);
}

/* Direction-aware dropdown placement. */
[dir="rtl"] .pkp_navigation_primary ul,
html[lang^="fa"] .pkp_navigation_primary ul {
    left: auto;
    right: 0;
    text-align: right;
}

[dir="ltr"] .pkp_navigation_primary ul,
html[lang^="en"] .pkp_navigation_primary ul {
    left: 0;
    right: auto;
    text-align: left;
}

/* Search */
.pkp_navigation_search_wrapper {
    margin-inline-start: 8px;
}

.pkp_navigation_search_wrapper a {
    color: #fff;
}

.pkp_search {
    background: #fff;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius);
    box-shadow: var(--gj-shadow);
}

.pkp_search .search_input input,
.page_search input[type="text"],
.page_search input[type="search"] {
    min-height: 42px;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius);
    background: #fff;
    color: var(--gj-text);
    font-family: inherit;
}

[dir="rtl"] .pkp_search input,
[dir="rtl"] .page_search input {
    text-align: right;
    direction: rtl;
}

/* Mobile toggle */
.pkp_site_nav_toggle {
    color: #fff;
    border-color: rgba(255,255,255,.35);
}

.pkp_site_nav_toggle:hover,
.pkp_site_nav_toggle:focus {
    color: #fff;
    background: rgba(255,255,255,.10);
}

/* ==========================================================================
   07. MAIN + SIDEBAR LAYOUT
   ========================================================================== */

@media (min-width: 992px) {
    .has_sidebar > .pkp_structure_main,
    .pkp_structure_content.has_sidebar > .pkp_structure_main {
        float: none;
        width: calc(100% - var(--gj-sidebar) - var(--gj-gap));
        max-width: none;
        margin: 0;
    }

    .has_sidebar > .pkp_structure_sidebar,
    .pkp_structure_content.has_sidebar > .pkp_structure_sidebar {
        float: none;
        width: var(--gj-sidebar);
        max-width: none;
        margin: 0;
    }

    /* Persian: sidebar on the right. */
    [dir="rtl"] .has_sidebar,
    html[lang^="fa"] .has_sidebar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) var(--gj-sidebar);
        gap: var(--gj-gap);
        align-items: start;
    }

    [dir="rtl"] .has_sidebar > .pkp_structure_main,
    html[lang^="fa"] .has_sidebar > .pkp_structure_main {
        grid-column: 1;
        grid-row: 1;
    }

    [dir="rtl"] .has_sidebar > .pkp_structure_sidebar,
    html[lang^="fa"] .has_sidebar > .pkp_structure_sidebar {
        grid-column: 2;
        grid-row: 1;
    }

    /* English: sidebar on the left. */
    [dir="ltr"] .has_sidebar,
    html[lang^="en"] .has_sidebar {
        display: grid;
        grid-template-columns: var(--gj-sidebar) minmax(0, 1fr);
        gap: var(--gj-gap);
        align-items: start;
    }

    [dir="ltr"] .has_sidebar > .pkp_structure_sidebar,
    html[lang^="en"] .has_sidebar > .pkp_structure_sidebar {
        grid-column: 1;
        grid-row: 1;
    }

    [dir="ltr"] .has_sidebar > .pkp_structure_main,
    html[lang^="en"] .has_sidebar > .pkp_structure_main {
        grid-column: 2;
        grid-row: 1;
    }
}

.pkp_structure_main {
    min-width: 0;
    padding-top: 34px;
    padding-bottom: 42px;
}

.pkp_structure_main > .page {
    width: 100%;
}

/* ==========================================================================
   08. TYPOGRAPHY
   ========================================================================== */

.pkp_structure_main h1,
.pkp_structure_main h2,
.pkp_structure_main h3,
.pkp_structure_main h4,
.pkp_structure_main h5,
.pkp_structure_main h6 {
    margin-top: 0;
    color: var(--gj-heading);
    font-family: inherit;
    font-weight: 700;
    line-height: 1.45;
    text-align: inherit;
}

.pkp_structure_main h1 {
    font-size: clamp(1.55rem, 3vw, 2.05rem);
}

.pkp_structure_main h2 {
    font-size: clamp(1.25rem, 2.2vw, 1.55rem);
}

.pkp_structure_main h3 {
    font-size: 1.2rem;
}

.pkp_structure_main p,
.pkp_structure_main li {
    font-size: 1rem;
    line-height: 1.95;
}

[dir="rtl"] .pkp_structure_main p,
[dir="rtl"] .pkp_structure_main li,
html[lang^="fa"] .pkp_structure_main p,
html[lang^="fa"] .pkp_structure_main li {
    line-height: 2.05;
}

.pkp_structure_main .page_title {
    margin-bottom: 26px;
    padding-bottom: 13px;
    border-bottom: 2px solid var(--gj-gold);
}

/* ==========================================================================
   09. BREADCRUMBS
   ========================================================================== */

.cmp_breadcrumbs {
    margin: 0 0 25px;
    padding: 10px 14px;
    background: var(--gj-bg-soft);
    border: 1px solid var(--gj-border-soft);
    border-radius: var(--gj-radius);
    color: var(--gj-text-soft);
    font-size: .88rem;
}

[dir="rtl"] .cmp_breadcrumbs {
    text-align: right;
}

[dir="ltr"] .cmp_breadcrumbs {
    text-align: left;
}

/* ==========================================================================
   10. LINKS / BUTTONS
   ========================================================================== */

button,
.button,
input[type="submit"],
input[type="button"],
input[type="reset"],
a.cmp_button,
.cmp_button {
    border-radius: var(--gj-radius);
    font-family: inherit;
    font-weight: 600;
}

.cmp_button,
button,
input[type="submit"],
input[type="button"] {
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.cmp_button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
    box-shadow: var(--gj-shadow);
}

a.obj_galley_link {
    border-radius: var(--gj-radius);
    font-weight: 700;
    text-decoration: none;
}

/* PDF / HTML / XML article links */
.obj_galley_link.pdf,
.obj_galley_link.html,
.obj_galley_link.xml {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: 1px solid var(--gj-primary);
}

.obj_galley_link.pdf {
    color: #fff;
    background: var(--gj-primary);
}

.obj_galley_link.html,
.obj_galley_link.xml {
    color: var(--gj-primary-dark);
    background: var(--gj-primary-light);
}

.obj_galley_link:hover {
    transform: translateY(-1px);
}

/* ==========================================================================
   11. ARTICLE SUMMARY / ARTICLE LIST
   ========================================================================== */

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

.cmp_article_list > li {
    margin: 0 0 18px;
    padding: 0;
}

.obj_article_summary {
    padding: 20px;
    background: #fff;
    border: 1px solid var(--gj-border);
    border-inline-start: 4px solid var(--gj-primary);
    border-radius: var(--gj-radius-lg);
    box-shadow: 0 1px 5px rgba(0,0,0,.03);
    transition: box-shadow .18s ease, transform .18s ease;
}

.obj_article_summary:hover {
    box-shadow: var(--gj-shadow-hover);
    transform: translateY(-1px);
}

.obj_article_summary .title {
    margin: 0 0 8px;
    color: var(--gj-heading);
    font-size: 1.16rem;
    line-height: 1.6;
}

.obj_article_summary .meta,
.obj_article_summary .authors,
.obj_article_summary .abstract {
    color: var(--gj-text-soft);
}

.obj_article_summary .authors {
    margin-bottom: 8px;
}

/* ==========================================================================
   12. ARTICLE DETAILS
   ========================================================================== */

.obj_article_details {
    width: 100%;
}

.obj_article_details > .page_title {
    color: var(--gj-heading);
    font-weight: 800;
    text-align: inherit;
}

.obj_article_details .subtitle {
    margin-top: -14px;
    margin-bottom: 24px;
    color: var(--gj-text-soft);
    font-weight: 500;
}

/* Article two-column detail layout */
.obj_article_details .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 34px;
    margin: 0;
}

.obj_article_details .main_entry,
.obj_article_details .entry_details {
    min-width: 0;
}

/* Authors */
.obj_article_details .item.authors {
    margin-bottom: 28px;
    padding: 18px 20px;
    background: var(--gj-bg-soft);
    border: 1px solid var(--gj-border);
    border-inline-start: 4px solid var(--gj-gold);
    border-radius: var(--gj-radius-lg);
}

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

.obj_article_details .authors > li {
    margin: 0 0 13px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--gj-border-soft);
}

.obj_article_details .authors > li:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.obj_article_details .authors .name {
    display: inline;
    color: var(--gj-heading);
    font-size: 1rem;
    font-weight: 700;
}

.obj_article_details .authors .affiliation {
    display: block;
    margin-top: 3px;
    color: var(--gj-text-soft);
    font-size: .9rem;
}

/* ==========================================================================
   13. ORCID — NATIVE OJS MARKUP
   ========================================================================== */

.obj_article_details .authors .orcid,
.obj_article_summary .orcid,
.orcid {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-inline-start: 8px;
    padding: 2px 7px;
    color: #4b5560;
    background: transparent;
    border-radius: 999px;
    font-family: var(--gj-font-en);
    font-size: .78rem;
    line-height: 1.4;
    vertical-align: middle;
    direction: ltr;
    unicode-bidi: isolate;
}

.obj_article_details .authors .orcid a,
.obj_article_summary .orcid a,
.orcid a {
    color: #5b6670;
    text-decoration: none;
    direction: ltr;
}

.obj_article_details .authors .orcid a:hover,
.obj_article_details .authors .orcid a:focus,
.orcid a:hover,
.orcid a:focus {
    color: #3f8d45;
    text-decoration: underline;
}

/* Native OJS ORCID image/icon. */
.orcid .orcid_icon,
.orcid_icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin: 0 !important;
    flex: 0 0 18px;
    vertical-align: middle;
}

/* If only the icon is rendered, keep it immediately after the author name. */
.obj_article_details .authors .name + .orcid {
    margin-inline-start: 8px;
}

/* OJS screen-reader text remains accessible. */
.orcid .pkp_screen_reader {
    position: absolute;
}

/* ==========================================================================
   14. ARTICLE CONTENT / ABSTRACTS / REFERENCES
   ========================================================================== */

.obj_article_details .item {
    margin-bottom: 28px;
}

.obj_article_details .item > .label,
.obj_article_details .item > .sub_item > .label {
    margin-bottom: 9px;
    color: var(--gj-heading);
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.5;
    text-align: inherit;
}

.obj_article_details .item.abstract,
.obj_article_details .item.author_bios,
.obj_article_details .item.references,
.obj_article_details .item.dataAvailability,
.obj_article_details .item.fundingStatement,
.obj_article_details .item.copyright {
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius-lg);
}

.obj_article_details .item.abstract p,
.obj_article_details .item.author_bios p,
.obj_article_details .item.references p,
.obj_article_details .item.dataAvailability p,
.obj_article_details .item.fundingStatement p,
.obj_article_details .item.copyright p {
    margin-top: 0;
    margin-bottom: 1em;
    text-align: justify;
}

/* References: hanging indent */
.obj_article_details .references .value p {
    padding-inline-start: 1.8em;
    text-indent: -1.8em;
}

/* ==========================================================================
   15. ARTICLE SIDE DETAILS
   ========================================================================== */

.obj_article_details .entry_details {
    padding: 18px;
    background: var(--gj-bg-soft);
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius-lg);
}

.obj_article_details .entry_details .item {
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--gj-border);
}

.obj_article_details .entry_details .item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.obj_article_details .entry_details .label {
    color: var(--gj-heading);
    font-size: .86rem;
    font-weight: 800;
}

.obj_article_details .entry_details .value {
    color: var(--gj-text-soft);
    font-size: .9rem;
    overflow-wrap: anywhere;
}

.obj_article_details .cover_image img {
    display: block;
    width: 100%;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius);
    box-shadow: var(--gj-shadow);
}

.obj_article_details .galleys_links,
.obj_article_details .supplementary_galleys_links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.obj_article_details .galleys_links li,
.obj_article_details .supplementary_galleys_links li {
    margin-bottom: 8px;
}

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

.obj_article_details .categories li {
    margin-bottom: 5px;
}

/* ==========================================================================
   16. ISSUE TABLE OF CONTENTS
   ========================================================================== */

.obj_issue_toc {
    padding: 0;
}

.obj_issue_toc .heading {
    margin-bottom: 25px;
}

.obj_issue_toc .section {
    margin-bottom: 30px;
}

.obj_issue_toc .section > h2,
.obj_issue_toc .section > h3 {
    padding: 10px 14px;
    color: #fff;
    background: var(--gj-primary);
    border-radius: var(--gj-radius);
    font-size: 1.05rem;
}

.obj_issue_toc .cmp_article_list .obj_article_summary {
    border-inline-start-width: 3px;
}

/* ==========================================================================
   17. ISSUE ARCHIVE / ISSUE SUMMARY
   ========================================================================== */

.obj_issue_summary {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 24px;
    padding: 20px 0;
    border-bottom: 1px solid var(--gj-border);
}

.obj_issue_summary .cover {
    margin: 0;
}

.obj_issue_summary .cover img {
    display: block;
    width: 100%;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius);
}

.obj_issue_summary .title {
    color: var(--gj-heading);
    font-size: 1.2rem;
    font-weight: 800;
}

/* ==========================================================================
   18. SIDEBAR
   ========================================================================== */

.pkp_structure_sidebar {
    min-width: 0;
}

.pkp_block {
    margin: 0 0 18px;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius-lg);
    box-shadow: 0 1px 5px rgba(0,0,0,.025);
}

.pkp_block .title {
    margin: 0 0 13px;
    padding-bottom: 9px;
    color: var(--gj-heading);
    border-bottom: 2px solid var(--gj-gold);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.5;
}

.pkp_block .content {
    color: var(--gj-text-soft);
    font-size: .9rem;
}

.pkp_block .content p,
.pkp_block .content li {
    font-size: .88rem;
    line-height: 1.75;
    text-align: justify;
}

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

.pkp_block li {
    padding: 5px 0;
    border-bottom: 1px solid var(--gj-border-soft);
}

.pkp_block li:last-child {
    border-bottom: 0;
}

.pkp_block a {
    text-decoration: none;
}

.pkp_block a:hover {
    text-decoration: underline;
}

/* Sidebar images / indexing logos */
.pkp_block img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 8px auto;
}

.pkp_block .content img {
    object-fit: contain;
}

/* ==========================================================================
   19. FORMS / LOGIN / REGISTER / SEARCH
   ========================================================================== */

input,
select,
textarea {
    max-width: 100%;
    min-height: 42px;
    padding: 8px 11px;
    border: 1px solid #bfc8cf;
    border-radius: var(--gj-radius);
    background: #fff;
    color: var(--gj-text);
    font-family: inherit;
    font-size: .95rem;
    line-height: 1.5;
}

textarea {
    min-height: 130px;
    resize: vertical;
}

select {
    cursor: pointer;
}

input:focus,
select:focus,
textarea:focus,
button:focus,
a:focus {
    outline: 2px solid rgba(30,98,146,.30);
    outline-offset: 2px;
}

[dir="rtl"] input:not([type="checkbox"]):not([type="radio"]),
[dir="rtl"] textarea,
[dir="rtl"] select {
    direction: rtl;
    text-align: right;
}

[dir="ltr"] input:not([type="checkbox"]):not([type="radio"]),
[dir="ltr"] textarea,
[dir="ltr"] select {
    direction: ltr;
    text-align: left;
}

/* Dropdown option alignment */
[dir="rtl"] select option,
html[lang^="fa"] select option {
    direction: rtl;
    text-align: right;
}

[dir="ltr"] select option,
html[lang^="en"] select option {
    direction: ltr;
    text-align: left;
}

/* ==========================================================================
   20. NOTIFICATIONS
   ========================================================================== */

.cmp_notification {
    margin-bottom: 20px;
    padding: 14px 17px;
    border: 1px solid var(--gj-border);
    border-inline-start: 4px solid var(--gj-primary);
    border-radius: var(--gj-radius);
    background: var(--gj-bg-soft);
    color: var(--gj-text);
}

.cmp_notification.warning {
    border-inline-start-color: var(--gj-warning);
}

.cmp_notification.error {
    border-inline-start-color: var(--gj-danger);
}

.cmp_notification.success {
    border-inline-start-color: var(--gj-success);
}

/* ==========================================================================
   21. SEARCH RESULTS / PAGINATION
   ========================================================================== */

.page_search .submit button {
    min-height: 42px;
    border-radius: var(--gj-radius);
    background: var(--gj-primary);
    color: #fff;
}

.page_search .submit button:hover {
    background: var(--gj-primary-dark);
}

.pagination,
.pkp_page_index .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 25px;
}

.pagination a,
.pagination span {
    min-width: 36px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius);
    text-decoration: none;
}

.pagination .current,
.pagination a:hover,
.pagination a:focus {
    color: #fff;
    background: var(--gj-primary);
    border-color: var(--gj-primary);
}

/* ==========================================================================
   22. TABLES
   ========================================================================== */

table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background: #fff;
    font-size: .92rem;
}

th,
td {
    padding: 10px 12px;
    border: 1px solid var(--gj-border);
    vertical-align: top;
}

th {
    color: var(--gj-heading);
    background: var(--gj-bg-soft);
    font-weight: 800;
}

tr:nth-child(even) td {
    background: #fcfdfe;
}

/* ==========================================================================
   23. IMAGES / FIGURES / BLOCKQUOTES
   ========================================================================== */

figure {
    margin: 25px 0;
    text-align: center;
}

figure img {
    border-radius: var(--gj-radius);
}

figcaption {
    margin-top: 8px;
    color: var(--gj-text-soft);
    font-size: .88rem;
}

blockquote {
    margin: 25px 0;
    padding: 15px 20px;
    background: var(--gj-bg-soft);
    border-inline-start: 4px solid var(--gj-gold);
    border-radius: var(--gj-radius);
    color: #4a5258;
}

/* ==========================================================================
   24. CODE / DOI / URL
   ========================================================================== */

pre,
code {
    font-family: var(--gj-font-mono);
    direction: ltr;
    text-align: left;
}

pre {
    overflow-x: auto;
    padding: 15px;
    background: #f5f7f9;
    border: 1px solid var(--gj-border);
    border-radius: var(--gj-radius);
}

.obj_article_details a[href*="doi.org"],
.obj_article_details a[href^="https://doi.org/"],
.obj_article_details a[href^="http://doi.org/"] {
    direction: ltr;
    unicode-bidi: isolate;
    overflow-wrap: anywhere;
}

/* ==========================================================================
   25. FOOTER
   ========================================================================== */

.pkp_structure_footer_wrapper {
    margin-top: 0;
    background: #eef0f2;
    border-top: 4px solid var(--gj-gold);
}

.pkp_structure_footer {
    padding: 0;
    color: #4f5961;
}

.pkp_footer_content {
    padding: 35px 0 25px;
    text-align: inherit;
}

.pkp_footer_content p,
.pkp_footer_content li {
    text-align: justify;
}

.pkp_brand_footer {
    padding: 18px 0 28px;
    border-top: 1px solid #d5dadd;
}

.pkp_brand_footer a {
    display: inline-block;
}

.pkp_brand_footer img {
    max-width: 130px;
    opacity: .78;
}

[dir="rtl"] .pkp_brand_footer {
    text-align: left;
}

/* ==========================================================================
   26. SOCIAL / ICONS
   ========================================================================== */

[class*="social"] a,
.pkp_footer_content a {
    text-decoration: none;
}

.fa,
.fas,
.far,
.fab {
    direction: ltr;
}

/* ==========================================================================
   27. ACCESSIBILITY
   ========================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(201,162,39,.65);
    outline-offset: 2px;
}

/* ==========================================================================
   28. MOBILE / TABLET
   ========================================================================== */

@media (max-width: 991px) {
    body > .pkp_structure_page {
        width: 100%;
        box-shadow: none;
    }

    .pkp_structure_main {
        padding: 25px 18px 35px;
    }

    .pkp_structure_sidebar {
        padding: 0 18px 25px;
    }

    .pkp_site_name_wrapper {
        min-height: 75px;
    }

    .pkp_site_name .is_img img {
        max-height: 62px;
    }

    .pkp_navigation_primary_wrapper {
        padding-bottom: 0;
    }

    .obj_article_details .row {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .obj_article_details .entry_details {
        order: 2;
    }

    .obj_issue_summary {
        grid-template-columns: 120px minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    body {
        font-size: 14px;
    }

    .pkp_structure_main {
        padding: 20px 14px 30px;
    }

    .pkp_structure_sidebar {
        padding: 0 14px 20px;
    }

    .pkp_site_name_wrapper {
        min-height: 66px;
    }

    .pkp_site_name .is_img img {
        max-height: 54px;
    }

    .pkp_site_name .is_text {
        font-size: 1.15rem;
    }

    .pkp_navigation_primary_wrapper {
        border-top: 0;
    }

    .pkp_navigation_primary > li > a {
        padding: 10px 12px;
    }

    .pkp_structure_main h1 {
        font-size: 1.45rem;
    }

    .obj_article_summary {
        padding: 15px;
    }

    .obj_article_details .item.authors,
    .obj_article_details .item.abstract,
    .obj_article_details .item.author_bios,
    .obj_article_details .item.references,
    .obj_article_details .item.dataAvailability,
    .obj_article_details .item.fundingStatement,
    .obj_article_details .item.copyright {
        padding: 15px;
    }

    .obj_issue_summary {
        grid-template-columns: 1fr;
    }

    .obj_issue_summary .cover {
        max-width: 170px;
    }

    .pkp_footer_content {
        padding: 25px 14px 15px;
    }

    .pkp_brand_footer {
        padding: 15px 14px 25px;
    }

    table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* ==========================================================================
   29. VERY SMALL SCREENS
   ========================================================================== */

@media (max-width: 480px) {
    .pkp_site_name_wrapper {
        min-height: 58px;
    }

    .pkp_site_name .is_img img {
        max-height: 48px;
    }

    .pkp_site_name .is_text {
        font-size: 1rem;
    }

    .pkp_block {
        padding: 14px;
    }

    .orcid {
        display: inline-flex;
        margin-inline-start: 4px;
        padding-inline: 3px;
    }

    .orcid .orcid_icon,
    .orcid_icon {
        width: 16px;
        height: 16px;
        flex-basis: 16px;
    }

    .orcid a {
        display: none;
    }
}

/* ==========================================================================
   30. PRINT
   ========================================================================== */

@media print {
    body {
        background: #fff !important;
        color: #000 !important;
        font-size: 11pt;
    }

    .pkp_structure_head,
    .pkp_structure_sidebar,
    .pkp_structure_footer_wrapper,
    .pkp_navigation_primary_wrapper,
    .pkp_navigation_user_wrapper,
    .obj_article_details .entry_details {
        display: none !important;
    }

    .pkp_structure_main {
        width: 100% !important;
        max-width: none !important;
        padding: 0 !important;
    }

    .obj_article_details .row {
        display: block;
    }

    a {
        color: #000 !important;
        text-decoration: none !important;
    }

    .obj_article_details .item,
    .obj_article_summary {
        box-shadow: none !important;
        break-inside: avoid;
    }
}

/* ==========================================================================
   31. OJS / PKP SPECIFIC RTL CORRECTIONS
   ========================================================================== */

/* Main structural navigation */
[dir="rtl"] .pkp_nav_list,
html[lang^="fa"] .pkp_nav_list {
    direction: rtl;
}

[dir="rtl"] .pkp_nav_list ul,
html[lang^="fa"] .pkp_nav_list ul {
    text-align: right;
}

/* Lists and list markers */
[dir="rtl"] ul,
[dir="rtl"] ol,
html[lang^="fa"] ul,
html[lang^="fa"] ol {
    padding-right: 1.5em;
    padding-left: 0;
}

/* Do not reverse technical identifiers. */
[dir="rtl"] .orcid,
[dir="rtl"] .doi,
[dir="rtl"] .email,
[dir="rtl"] .url,
html[lang^="fa"] .orcid,
html[lang^="fa"] .doi,
html[lang^="fa"] .email,
html[lang^="fa"] .url {
    direction: ltr;
    unicode-bidi: isolate;
}

/* ==========================================================================
   END
   ========================================================================== */
