/* JCSI OJS 3.4 COMPLETE CUSTOM STYLESHEET — galley blink update
   Complete replacement for the uploaded styleSheet (1).css.
   FIX: malformed rule corrected, equal-size indexing cards, automatic PDF/XML/HTML blink.
   Existing footer, abstract, references, sidebar and journal width preserved.
*/


.journal-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    width: 100%;
}

/* JCSI Indexation & Preservation — OJS 3.4 page-specific styles */
.jcsi-indexation-page .jcsi-index-grid-indexing .jcsi-index-card:nth-child(1) { --jcsi-accent: #4285F4; }
.jcsi-indexation-page .jcsi-index-grid-indexing .jcsi-index-card:nth-child(2) { --jcsi-accent: #E93343; }
.jcsi-indexation-page .jcsi-index-grid-indexing .jcsi-index-card:nth-child(3) { --jcsi-accent: #FA9316; }
.jcsi-indexation-page .jcsi-index-grid-indexing .jcsi-index-card:nth-child(4) { --jcsi-accent: #233E82; }
.jcsi-indexation-page .jcsi-index-grid-indexing .jcsi-index-card:nth-child(5) { --jcsi-accent: #087D86; }
.jcsi-indexation-page .jcsi-index-grid-indexing .jcsi-index-card:nth-child(6) { --jcsi-accent: #91CB27; }
.jcsi-indexation-page .jcsi-index-grid-preservation .jcsi-index-card:nth-child(1) { --jcsi-accent: #3C5E93; }
.jcsi-indexation-page .jcsi-index-grid-preservation .jcsi-index-card:nth-child(2) { --jcsi-accent: #087F78; }
.jcsi-indexation-page .jcsi-index-grid-preservation .jcsi-index-card:nth-child(3) { --jcsi-accent: #9255BC; }
.jcsi-indexation-page .jcsi-index-grid-preservation .jcsi-index-card:nth-child(4) { --jcsi-accent: #52A665; }
.jcsi-indexation-page .jcsi-index-grid-preservation .jcsi-index-card:nth-child(5) { --jcsi-accent: #E3892F; }
.jcsi-indexation-page .jcsi-index-grid-preservation .jcsi-index-card:nth-child(6) { --jcsi-accent: #BB4C5C; }

.jcsi-indexation-page { box-sizing: border-box; width: 100%; max-width: 100%; font-family: Arial, Helvetica, sans-serif; color: #50617d; }
.jcsi-indexation-page *, .jcsi-indexation-page *::before, .jcsi-indexation-page *::after { box-sizing: border-box; }
.jcsi-indexation-page .jcsi-page-section h2 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(27px, 3vw, 39px); font-weight: 700; color: #21344d; line-height: 1.25; margin: 25px 0 15px; }
.jcsi-indexation-page .jcsi-page-section > p:not(.jcsi-index-note) { font-size: 17px; line-height: 1.55; color: #536581; margin: 0 0 15px; }
.jcsi-indexation-page .jcsi-index-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 12px; margin: 20px 0 17px; }
.jcsi-indexation-page a.jcsi-index-card, .jcsi-indexation-page a.jcsi-index-card:visited { display: flex; flex-direction: column; justify-content: center; min-height: 78px; height: 78px; padding: 9px 12px; border: 1px solid #d2d9e2; border-left: 9px solid var(--jcsi-accent); background: #fff; border-radius: 7px; text-decoration: none !important; color: #22344a !important; transition: box-shadow .16s ease, transform .16s ease; overflow-wrap: anywhere; }
.jcsi-indexation-page a.jcsi-index-card:hover, .jcsi-indexation-page a.jcsi-index-card:focus-visible { box-shadow: 0 5px 17px rgba(29,49,73,.12); transform: translateY(-2px); outline-offset: 3px; }
.jcsi-indexation-page .jcsi-card-kicker { display: block; text-transform: uppercase; font-size: 14px; line-height: 1.35; font-weight: 400; letter-spacing: .045em; color: #566681; }
.jcsi-indexation-page .jcsi-index-grid > a.jcsi-index-card { min-width: 0; width: 100%; max-width: none; box-sizing: border-box; }


/* ================================================================
   JCSI Indexation & Preservation (current page HTML)
   These selectors affect ONLY elements inside .jcsi-index-page.
   CSS Grid ensures the last row has the SAME card width as first.
   ================================================================ */
.jcsi-index-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    font-family: Arial, Helvetica, sans-serif;
    color: #23344c;
}
.jcsi-index-page *,
.jcsi-index-page *::before,
.jcsi-index-page *::after { box-sizing: border-box; }

.jcsi-index-page .jcsi-section { margin: 0 0 30px; }
.jcsi-index-page .jcsi-heading {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.25;
    color: #22344a;
    margin: 8px 0 8px;
}
.jcsi-index-page .jcsi-intro {
    font-size: 13px;
    line-height: 1.55;
    color: #596b7e;
    margin: 0 0 13px;
}

/* Overrides any old inline display:flex from previously pasted OJS HTML. */
.jcsi-index-page .jcsi-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}
.jcsi-index-page .jcsi-grid > a.jcsi-card,
.jcsi-index-page .jcsi-grid > a.jcsi-card:visited {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 9px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 78px !important;
    min-height: 78px !important;
    flex: none !important;
    padding: 8px 10px !important;
    border: 1px solid #d5dce4;
    border-left: 5px solid var(--stripe, #3879c8);
    border-radius: 6px;
    background: #fff;
    text-decoration: none !important;
    color: #24364b !important;
    transition: box-shadow .2s ease, transform .2s ease;
    overflow: hidden;
}
.jcsi-index-page .jcsi-grid > a.jcsi-card:hover,
.jcsi-index-page .jcsi-grid > a.jcsi-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(35, 52, 75, .12);
    outline-offset: 2px;
}
.jcsi-index-page .jcsi-mark {
    flex: 0 0 27px;
    width: 27px;
    height: 27px;
}
.jcsi-index-page .jcsi-mark img {
    display: block;
    max-width: 22px;
    max-height: 22px;
    object-fit: contain;
}
.jcsi-index-page .jcsi-info { min-width: 0; }
.jcsi-index-page .jcsi-name { overflow-wrap: anywhere; }

@media (max-width: 480px) {
    .jcsi-index-page .jcsi-heading { font-size: 23px; }
    .jcsi-index-page .jcsi-grid { gap: 9px !important; }
}

/* ================================================================
   Journal layout, footer, navigation and article styling (OJS 3.4)
   ================================================================ */
.pkp_structure_page {
    max-width: 1300px !important;
    margin: 0 auto !important;
    box-sizing: border-box;
}
.journal-footer-content {
    flex: 1;
}

.journal-footer-logo {
    flex: 0 0 auto;
    margin-left: auto;
}

.journal-footer-logo img {
    width: 210px;
    max-width: 100%;
    height: auto;
    display: block;
}

/*
 * OJS footer fallback
 *
 * OJS renders content entered under Website > Appearance > Footer inside
 * .pkp_footer_content. This keeps the journal details on the left and moves
 * the footer logo to the right even when the custom .journal-footer wrapper
 * is not present in the saved footer HTML.
 */
.pkp_structure_footer .pkp_footer_content {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    min-height: 170px;
    padding-right: 300px !important;
}

.pkp_structure_footer .pkp_footer_content img {
    position: absolute !important;
    top: 50%;
    right: 70px;
    width: 210px !important;
    max-width: 210px !important;
    height: auto !important;
    margin: 0 !important;
    display: block;
    transform: translateY(-50%);
}

@media (max-width: 768px) {
    .journal-footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .journal-footer-logo {
        margin: 20px auto 0;
    }

    .pkp_structure_footer .pkp_footer_content {
        min-height: 0;
        padding-right: 0 !important;
    }

    .pkp_structure_footer .pkp_footer_content img {
        position: static !important;
        width: 210px !important;
        max-width: 100% !important;
        margin: 20px auto 0 !important;
        transform: none;
    }
}
/* Hide OJS footer brand */
.pkp_brand_footer {
    display: none !important;
}

/* ================================================================
   Link hover behaviour — scoped; do not animate OJS global navigation
   ================================================================ */
.pkp_structure_sidebar .pkp_block .content a {
    transition: transform 0.3s ease-in-out;
}
.pkp_structure_sidebar .pkp_block .content a:hover {
    transform: translateY(3px);
}

/* Existing sidebar heading bounce animation */
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(3px); }
}

/* ================================================================
   ARTICLE GALLEY BUTTONS — PDF, XML, HTML (OJS 3.4)
   Targets the real OJS .obj_galley_link class automatically. No
   manual blink-article class or HTML/theme template changes needed.
   Only the button glows/fades slightly; labels, links, counters, and
   existing theme button colours are left untouched.
   ================================================================ */
@keyframes jcsiGalleyBlink {
    0%, 100% {
        opacity: 1;
        filter: brightness(1);
        box-shadow: 0 0 0 0 rgba(121, 34, 30, 0);
    }
    50% {
        opacity: 0.65;
        filter: brightness(1.10);
        box-shadow: 0 0 0 3px rgba(121, 34, 30, 0.17);
    }
}

.pkp_structure_main a.obj_galley_link,
.pkp_structure_main a.obj_galley_link.blink-article {
    animation: jcsiGalleyBlink 2s ease-in-out infinite;
    transition: transform 0.2s ease-in-out;
}

/* Keep the link legible and clickable on hover and keyboard focus. */
.pkp_structure_main a.obj_galley_link:hover,
.pkp_structure_main a.obj_galley_link:focus,
.pkp_structure_main a.obj_galley_link:focus-visible {
    animation: none;
    opacity: 1;
    filter: none;
    transform: translateY(2px);
}

/* Accessibility: respect the visitor's reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
    .pkp_structure_main a.obj_galley_link,
    .pkp_structure_main a.obj_galley_link.blink-article {
        animation: none !important;
        opacity: 1 !important;
        filter: none !important;
        box-shadow: none;
    }
}

/* Sidebar section headings hover bounce */
.pkp_block .title {
    display: inline-block;
    position: relative;
    transition: transform 0.2s ease-in-out;
    cursor: pointer;
}

/* Bounce animation on hover */
.pkp_block .title:hover {
    animation: bounce 0.3s ease;
}

/* Justify Abstract Text */
.article-summary .abstract,
.item.abstract p,
.pkp_structure_main .abstract p {
    text-align: justify;
}

/* Force Abstract Justification */
div.abstract, 
div.abstract p, 
section.abstract, 
section.item.abstract, 
.article-details .abstract, 
.article-summary .abstract {
    text-align: justify !important;
}

/* Abstract Section Styling */
.item.abstract,
.article-summary .abstract,
.article-details .abstract,
.pkp_structure_main .abstract {
    background-color: #f2f2f2;
    border-radius: 10px;
    padding: 20px;
    margin: 20px;
    border: 1px solid #ddd;
    text-align: justify;
}

/* References Section Styling */
.item.references,
.article-summary .references,
.article-details .references,
.pkp_structure_main .references,
.citation-list {
    background-color: #f2f2f2;
    border-radius: 10px;
    padding: 20px;
    margin: 20px;
    border: 1px solid #ddd;
    text-align: justify;
}

/* Abstract and References Section Titles */
.item.abstract .title,
.item.references .title,
.article-details .references h2,
.article-details .references h3 {
    text-align: justify;
    font-weight: bold;
    margin-bottom: 10px;
}

/* Page Title Justify */
.page_title {
    text-align: justify !important;
}

/* Fix and align About Journal & Keywords section */
.pkp_block.block_custom.about,
.pkp_block.block_custom.keywords {
    margin-left: -10px;      /* shift slightly left */
    border-radius: 10px;
    background-color: #fff;
    border: 1px solid #ddd;
    padding: 0; /* reset first */
}
/* Force justify for most-read article links */
.pkp_block.block_most_read ul li a {
    text-align: justify;
    display: block;
}
/* Justify text in Most Read Articles sidebar */
.block_most_read .title,
.block_most_read a {
    text-align: justify;
}


/* ================================================================
   JCSI OJS 3.4 — article author, institution and DOI pictograms
   Based on official OJS 3.4 article_details.tpl markup.
   Scope: individual article pages only. No additional plugins, fonts,
   JavaScript, remote image services, or template changes required.
   ================================================================ */

/* Person icon beside every article author (not ORCID/ROR links). */
.obj_article_details .item.authors ul.authors > li > span.name::before {
    content: "";
    display: inline-block;
    width: 15px;
    height: 15px;
    margin-right: 8px;
    vertical-align: -2px;
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%225.4%22%20r%3D%223.5%22%20fill%3D%22%231f2933%22%2F%3E%3Cpath%20d%3D%22M3.1%2017.8c0-4.2%202.8-6.9%206.9-6.9s6.9%202.7%206.9%206.9v.5H3.1z%22%20fill%3D%22%231f2933%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
    flex-shrink: 0;
}

/* Classical institutional building beside affiliation; preserve ROR. */
.obj_article_details .item.authors ul.authors > li > span.affiliation::before {
    content: "";
    display: inline-block;
    width: 15px;
    height: 15px;
    margin-right: 8px;
    vertical-align: -2px;
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%3Cpath%20d%3D%22M2%206.2%2010%202l8%204.2v1.6H2zM3%208.8h14v1.4H3zm1.1%201.8h2v5.3h-2zm4.6%200h2v5.3h-2zm4.7%200h2v5.3h-2zM2.5%2016.5h15v1.6h-15z%22%20fill%3D%22%23758295%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
    flex-shrink: 0;
}

/* Compact yellow DOI badge beside article DOI and cited DOI links. */
.obj_article_details .item.doi .value a[href*="doi.org/"],
.obj_article_details .item.references .value a[href*="doi.org/"],
.obj_article_details .item.references .value a[href*="dx.doi.org/"],
.obj_article_details .citation-list a[href*="doi.org/"] {
    overflow-wrap: anywhere;
}
.obj_article_details .item.doi .value a[href*="doi.org/"]::before,
.obj_article_details .item.references .value a[href*="doi.org/"]::before,
.obj_article_details .item.references .value a[href*="dx.doi.org/"]::before,
.obj_article_details .citation-list a[href*="doi.org/"]::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-right: 7px;
    vertical-align: -5px;
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2222%22%20height%3D%2222%22%20viewBox%3D%220%200%2022%2022%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%2210%22%20fill%3D%22%23F5AB00%22%2F%3E%3Ctext%20x%3D%2211%22%20y%3D%2214.5%22%20text-anchor%3D%22middle%22%20font-family%3D%22Arial%2CHelvetica%2Csans-serif%22%20font-weight%3D%22bold%22%20font-size%3D%2210.8%22%20fill%3D%22%23fff%22%3Edoi%3C%2Ftext%3E%3C%2Fsvg%3E") center / contain no-repeat;
    flex-shrink: 0;
}

/* Avoid icon rotation or movement from other link hover rules. */
.obj_article_details .item.doi a[href*="doi.org/"]:hover::before,
.obj_article_details .item.references a[href*="doi.org/"]:hover::before {
    transform: none;
}

/* ================================================================
   NEW: Author icon in ISSUE TABLE OF CONTENTS / ARTICLE LIST
   OJS 3.4 Default theme (.obj_article_summary) and Classic theme
   (.article_summary). Only the article author line is affected.
   Existing author icons on individual article pages remain intact.
   ================================================================ */
.pkp_structure_main .obj_article_summary .meta .authors::before,
.pkp_structure_main .article_summary .summary_meta .authors::before {
    content: "";
    display: inline-block;
    width: 15px;
    height: 15px;
    margin-right: 7px;
    vertical-align: -2px;
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%225.4%22%20r%3D%223.5%22%20fill%3D%22%231f2933%22%2F%3E%3Cpath%20d%3D%22M3.1%2017.8c0-4.2%202.8-6.9%206.9-6.9s6.9%202.7%206.9%206.9v.5H3.1z%22%20fill%3D%22%231f2933%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}

/* ================================================================
   JCSI OJS 3.4 — ORCID iD icon before linked author ORCID URLs
   Matches existing ORCID URLs in the article author-information block.
   Does not alter profile, affiliation, ROR, DOI or galley styling.
   The icon is a visual indicator, not proof of ORCID authentication.
   ================================================================ */
.pkp_structure_main .obj_article_details .item.authors a[href*="orcid.org/"]::before,
.pkp_structure_main .obj_article_details .orcid a[href*="orcid.org/"]::before {
    content: "";
    display: inline-block;
    width: 17px;
    height: 17px;
    margin-right: 7px;
    vertical-align: -4px;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2211.4%22%20fill%3D%22%23A6CE39%22%2F%3E%3Ctext%20x%3D%2212%22%20y%3D%2215.95%22%20font-size%3D%2213.1%22%20font-weight%3D%22bold%22%20font-family%3D%22Arial%2C%20Helvetica%2C%20sans-serif%22%20text-anchor%3D%22middle%22%20fill%3D%22white%22%3EiD%3C%2Ftext%3E%3C%2Fsvg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

/* Keep the ORCID link readable when its address is long on mobile. */
.pkp_structure_main .obj_article_details .item.authors a[href*="orcid.org/"],
.pkp_structure_main .obj_article_details .orcid a[href*="orcid.org/"] {
    overflow-wrap: anywhere;
}
