
/* Site-index shell overrides for the multi-journal portal. */
body.pkp_page_index.pkp_op_index {
    overflow-x: hidden;
}
body.pkp_page_index.pkp_op_index *,
body.pkp_page_index.pkp_op_index *::before,
body.pkp_page_index.pkp_op_index *::after {
    box-sizing: border-box;
}
body.pkp_page_index.pkp_op_index .pkp_structure_head,
body.pkp_page_index.pkp_op_index .pkp_structure_footer {
    display: none !important;
}
body.pkp_page_index.pkp_op_index .pkp_structure_page,
body.pkp_page_index.pkp_op_index .pkp_structure_content,
body.pkp_page_index.pkp_op_index .pkp_structure_main,
body.pkp_page_index.pkp_op_index .page_index_site {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.pkp_page_index.pkp_op_index .pkp_structure_content {
    display: block !important;
}
.sj-topbar {
    position: relative;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(310px, 1fr) auto;
    align-items: center;
    gap: 2rem;
    width: 100%;
    max-width: 100%;
    padding: 24px max(4vw, 48px) 22px;
    border-top: 3px solid var(--sj-burgundy);
    border-bottom: 1px solid rgba(19,34,56,.08);
    background: rgba(255,255,255,.98);
}
.sj-brand {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 22px;
    color: var(--sj-ink);
}
.sj-brand__platform {
    display: flex;
    align-items: center;
    gap: 22px;
    color: var(--sj-ink);
    text-decoration: none;
}
.sj-brand__platform:hover .sj-brand__name,
.sj-brand__platform:focus-visible .sj-brand__name {
    color: var(--sj-burgundy);
}
.sj-brand__mark {
    color: var(--sj-burgundy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4rem;
    line-height: .8;
    letter-spacing: -.08em;
}
.sj-brand__name {
    padding-right: 22px;
    border-right: 1px solid #d6dbe2;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: .13em;
    line-height: 1.25;
}
.sj-brand__university {
    max-width: 290px;
    color: var(--sj-ink);
    font-size: .93rem;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    transition: color .18s ease;
}
.sj-brand__university:hover,
.sj-brand__university:focus-visible {
    color: var(--sj-burgundy);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.sj-topbar__nav {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: clamp(18px, 2vw, 34px);
}
.sj-topbar__nav a {
    color: var(--sj-ink);
    font-size: .92rem;
    text-decoration: none;
    white-space: nowrap;
}
.sj-topbar__nav a:hover,
.sj-topbar__nav a:focus { color: var(--sj-burgundy); }
.sj-topbar__languages {
    display: inline-flex;
    gap: 10px;
    padding-left: 18px;
    border-left: 1px solid #d6dbe2;
}
.sj-topbar__languages a[aria-current="page"] {
    color: var(--sj-burgundy);
    font-weight: 700;
}
.sj-site-footer {
    display: grid;
    grid-template-columns: minmax(270px, 1fr) auto auto;
    align-items: center;
    gap: 2rem;
    padding: 30px max(4vw, 48px);
    border-top: 1px solid var(--sj-line);
    background: #fff;
}
.sj-site-footer__brand { display:flex; align-items:center; gap:14px; }
.sj-site-footer__mark { color:var(--sj-burgundy); font-family:Georgia,serif; font-size:2.8rem; line-height:.8; }
.sj-site-footer__name { font-size:.76rem; font-weight:700; letter-spacing:.12em; line-height:1.25; }
.sj-site-footer__links { display:flex; gap:24px; }
.sj-site-footer__links a { color:var(--sj-ink); font-size:.8rem; text-decoration:none; }
.sj-site-footer__copy { color:var(--sj-muted); font-size:.74rem; text-align:right; }

.sj-nowrap { white-space: nowrap; }

/* Approved typographic marks: no cover thumbnails in the platform identity. */
.sj-monogram {
    position: relative;
    display: inline-block;
    color: currentColor;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
    letter-spacing: -.10em;
    line-height: .9;
}
.sj-monogram::after {
    content: "";
    position: absolute;
    right: -.08em;
    bottom: -.16em;
    width: .82em;
    height: .30em;
    border-bottom: .065em solid currentColor;
    border-radius: 0 0 80% 0;
    transform: rotate(7deg);
    transform-origin: right center;
    opacity: .95;
}
.sj-node .sj-monogram { font-size: 2.6rem; }
.sj-journal-card .sj-monogram { font-size: clamp(2.8rem, 3.5vw, 4rem); }

:root {
    --sj-burgundy: #8b0e3a;
    --sj-burgundy-dark: #4a1528;
    --sj-ink: #132238;
    --sj-muted: #667085;
    --sj-line: #e8e2e4;
    --sj-paper: #ffffff;
    --sj-soft: #fbf8f9;
    --sj-green: #1e6a3a;
    --sj-purple: #6b3fa0;
    --sj-blue: #1d3a6b;
    --sj-teal: #0e7c6c;
    --sj-orange: #e67e22;
    --sj-brown: #7a4a2a;
}

html { scroll-behavior: smooth; }
body {
    color: var(--sj-ink);
    background: var(--sj-paper);
    font-family: Inter, "Noto Sans", Arial, sans-serif;
}

.pkp_structure_head,
header.pkp_structure_head {
    border-top: 3px solid var(--sj-burgundy);
    background: rgba(255,255,255,.97);
    box-shadow: 0 1px 0 rgba(19,34,56,.08);
}

.pkp_site_name_wrapper,
.pkp_navigation_primary_wrapper,
.pkp_structure_content,
.pkp_structure_footer_wrapper {
    max-width: 1500px;
}

.pkp_navigation_primary > li > a,
.pkp_navigation_user > li > a {
    color: var(--sj-ink);
}
.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus,
.pkp_navigation_user > li > a:hover,
.pkp_navigation_user > li > a:focus {
    color: var(--sj-burgundy);
}

.page_index_site { max-width: none; padding: 0; }
.sj-site-index { background: #fff; width: 100%; max-width: 100%; overflow-x: clip; }
.sj-topbar, .sj-hero, .sj-journals, .sj-standards, .sj-site-footer { max-width: 100%; }

.sj-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(520px, 1.08fr) minmax(430px, .92fr);
    min-height: 560px;
    overflow: hidden;
    padding: 44px max(4.5vw, 56px) 38px;
    background:
        radial-gradient(circle at 27% 70%, rgba(255,255,255,.58) 0 18%, transparent 48%),
        linear-gradient(108deg,
            #fff 0%,
            #fffaf9 18%,
            #fae7e8 40%,
            #e4aab6 63%,
            #a42c55 82%,
            #760027 100%);
}

.sj-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .42;
    background-image:
        repeating-radial-gradient(
            ellipse at 38% 78%,
            transparent 0 11px,
            rgba(139,14,58,.12) 12px 13px,
            transparent 14px 23px
        );
    mask-image: linear-gradient(to right, #000 0%, #000 76%, rgba(0,0,0,.45) 100%);
}

.sj-hero__copy {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 720px;
    margin: 0;
    align-self: center;
}

.sj-ecosystem {
    position: relative;
    z-index: 2;
    width: min(100%, 500px);
    aspect-ratio: 720 / 520;
    margin-left: -2.4rem;
    margin-right: auto;
    align-self: center;
}
.sj-hero h1 {
    margin: 0;
    color: var(--sj-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 4.15vw, 5.1rem);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -.045em;
    white-space: nowrap;
}
.sj-hero h1 span { color: var(--sj-burgundy); }
.sj-hero__lead {
    margin: 1.35rem 0 1.7rem;
    max-width: 590px;
    color: var(--sj-ink);
    font-size: clamp(1.05rem, 1.45vw, 1.38rem);
    line-height: 1.45;
}
.sj-benefits {
    margin: 0 0 1.7rem;
    padding: 0;
    list-style: none;
}
.sj-benefits li {
    position: relative;
    margin: .7rem 0;
    padding-left: 2.1rem;
    font-size: 1rem;
}
.sj-benefits li::before {
    content: "◉";
    position: absolute;
    left: 0;
    top: -.08rem;
    color: var(--sj-burgundy);
    font-size: 1.1rem;
}
.sj-button {
    display: inline-flex;
    gap: 1.4rem;
    align-items: center;
    justify-content: center;
    padding: .95rem 1.45rem;
    color: #fff !important;
    background: linear-gradient(135deg, var(--sj-burgundy-dark), var(--sj-burgundy));
    border-radius: 4px;
    font-size: .92rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(74,21,40,.18);
    transition: transform .2s ease, box-shadow .2s ease;
}
.sj-button:hover,
.sj-button:focus {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(74,21,40,.25);
}

.sj-ecosystem {
    width: min(100%, 760px);
    aspect-ratio: 720/520;
    margin-inline: auto;
}
.sj-ecosystem__lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.sj-ecosystem__lines line { stroke: rgba(255,255,255,.86); stroke-width: 2.2; stroke-dasharray: 3 5; }
.sj-hub,
.sj-node {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(7px);
    box-shadow: 0 10px 34px rgba(74,21,40,.13);
}
.sj-hub {
    left: 50%; top: 50%;
    width: 150px; height: 150px;
    transform: translate(-50%, -50%);
    border: 3px solid rgba(255,255,255,.85);
    outline: 1px solid rgba(139,14,58,.18);
}
.sj-hub__mark {
    color: var(--sj-burgundy);
    font-family: Georgia, serif;
    font-size: 3.75rem;
    line-height: .82;
    letter-spacing: -.08em;
}
.sj-hub__name {
    margin-top: 1rem;
    color: var(--sj-ink);
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.15;
}
.sj-node {
    width: 102px; height: 102px;
    padding: 8px;
    color: var(--sj-ink);
    border: 2px solid currentColor;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease;
}
.sj-node:hover,
.sj-node:focus { transform: scale(1.05); box-shadow: 0 15px 38px rgba(38,18,25,.2); }
.sj-node img { max-width: 70px; max-height: 44px; object-fit: contain; }
.sj-node__mark {
    font-family: Georgia, serif;
    font-size: 1.68rem;
    line-height: 1;
    letter-spacing: -.06em;
}
.sj-node__title {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .42rem;
    font-size: .50rem;
    font-weight: 600;
    line-height: 1.18;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
.sj-node--1 { left: 64%; top: 9%; color: var(--sj-burgundy); }
.sj-node--2 { left: 50%; top: 0; transform: translateX(-50%); color: var(--sj-green); }
.sj-node--2:hover,.sj-node--2:focus { transform: translateX(-50%) scale(1.05); }
.sj-node--3 { left: 17%; top: 9%; color: var(--sj-purple); }
.sj-node--4 { left: 7%; top: 39%; color: var(--sj-blue); }
.sj-node--5 { right: 4%; top: 39%; color: var(--sj-teal); }
.sj-node--6 { left: 24%; bottom: 0; color: var(--sj-orange); }
.sj-node--7 { right: 18%; bottom: 0; color: var(--sj-brown); }

.sj-hero__watermark {
    position: absolute;
    z-index: 1;
    right: 3.2%;
    top: 20%;
    display: flex;
    flex-direction: column;
    width: 330px;
    color: rgba(255,255,255,.46);
    text-shadow: 0 2px 22px rgba(74,21,40,.18);
    font-family: Georgia, serif;
    line-height: .92;
    pointer-events: none;
}
.sj-hero__watermark strong { font-size: 4.4rem; font-weight: 500; }
.sj-hero__watermark span:first-child { font-size: 2.2rem; }
.sj-hero__watermark span:last-child { margin-top: .65rem; font-size: 1.5rem; line-height: 1.05; }

.sj-standard-section,
.sj-journals,
.sj-standards { max-width: 1500px; margin-inline: auto; }
.sj-journals { padding: 44px max(3vw, 28px) 28px; }
.sj-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 22px;
}
.sj-section-heading h2 {
    position: relative;
    margin: 0;
    padding-bottom: .55rem;
    color: var(--sj-ink);
    font-family: Georgia, serif;
    font-size: 2rem;
    font-weight: 500;
}
.sj-section-heading h2::after {
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    width: 42px; height: 2px;
    background: var(--sj-burgundy);
}
.sj-section-heading span { color: var(--sj-burgundy); font-size: .88rem; }

.sj-journal-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(150px, 1fr));
    gap: 15px;
}
.sj-journal-card {
    display: flex;
    min-height: 285px;
    flex-direction: column;
    align-items: center;
    padding: 24px 16px 18px;
    border: 1px solid #ebe6e8;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(16,24,40,.05);
    text-align: center;
    transition: transform .18s ease, box-shadow .18s ease;
}
.sj-journal-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(16,24,40,.09); }
.sj-journal-card__logo {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: center;
    color: currentColor;
    text-decoration: none;
}
.sj-journal-card__logo img { max-width: 132px; max-height: 70px; object-fit: contain; }
.sj-journal-card__logo span {
    font-family: Georgia, serif;
    font-size: clamp(2.35rem, 3.2vw, 3.45rem);
    letter-spacing: -.08em;
    line-height: 1;
}
.sj-journal-card h3 {
    margin: 12px 0 8px;
    font-family: inherit;
    font-size: .94rem;
    font-weight: 650;
    line-height: 1.28;
}
.sj-journal-card h3 a { color: var(--sj-ink); text-decoration: none; }
.sj-journal-card__description {
    overflow: hidden;
    margin-bottom: 14px;
    color: var(--sj-muted);
    font-size: .76rem;
    line-height: 1.35;
}
.sj-journal-card__link {
    margin-top: auto;
    padding-top: 13px;
    width: 100%;
    border-top: 1px solid var(--sj-line);
    color: currentColor;
    font-size: .81rem;
    font-weight: 650;
    text-decoration: none;
}
.sj-journal-card--1 { color: var(--sj-burgundy); }
.sj-journal-card--2 { color: var(--sj-green); }
.sj-journal-card--3 { color: var(--sj-purple); }
.sj-journal-card--4 { color: var(--sj-blue); }
.sj-journal-card--5 { color: var(--sj-teal); }
.sj-journal-card--6 { color: var(--sj-orange); }
.sj-journal-card--7 { color: var(--sj-brown); }

.sj-standards {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    margin-top: 16px;
    margin-bottom: 48px;
    padding: 22px 28px;
    border: 1px solid #ebe6e8;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(16,24,40,.04);
}
.sj-standards > div {
    min-height: 54px;
    padding: 0 18px;
    border-left: 1px solid var(--sj-line);
}
.sj-standards > div:first-child { border-left: 0; }
.sj-standards strong { display: block; color: var(--sj-burgundy); font-size: .75rem; letter-spacing: .04em; }
.sj-standards span { display: block; margin-top: .3rem; color: var(--sj-muted); font-size: .72rem; line-height: 1.35; }

.pkp_structure_footer_wrapper {
    border-top: 1px solid var(--sj-line);
    background: #fff;
}

@media (max-width: 1250px) {
    .sj-topbar { padding-inline: 32px; gap: 1.25rem; }
    .sj-brand { gap: 16px; }
    .sj-brand__name { padding-right: 16px; }
    .sj-brand__university { max-width: 245px; font-size: .86rem; }
    .sj-topbar__nav { gap: 16px; }
    .sj-topbar__nav a { font-size: .86rem; }
    .sj-hero { grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); padding-inline: 35px; }
    .sj-journal-grid { grid-template-columns: repeat(4, 1fr); }
    .sj-standards { grid-template-columns: repeat(3, 1fr); }
    .sj-standards > div:nth-child(4) { border-left: 0; }
}

@media (max-width: 900px) {
    .sj-hero { grid-template-columns: 1fr; padding: 42px 24px; }
    .sj-hero__copy { max-width: 680px; }
    .sj-ecosystem { width: min(100%, 680px); }
    .sj-hero__watermark { display: none; }
    .sj-journal-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .sj-hero { min-height: auto; padding: 32px 18px 38px; }
    .sj-hero h1 { font-size: 3.1rem; }
    .sj-hero__lead { font-size: 1rem; }
    .sj-ecosystem {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        aspect-ratio: auto;
        margin-top: 8px;
    }
    .sj-ecosystem__lines,
    .sj-hub { display: none; }
    .sj-node,
    .sj-node--1,.sj-node--2,.sj-node--3,.sj-node--4,.sj-node--5,.sj-node--6,.sj-node--7 {
        position: static;
        width: auto;
        height: 126px;
        transform: none;
        border-radius: 8px;
    }
    .sj-node:hover,.sj-node:focus,.sj-node--2:hover,.sj-node--2:focus { transform: translateY(-2px); }
    .sj-journals { padding-inline: 18px; }
    .sj-section-heading { align-items: start; flex-direction: column; }
    .sj-journal-grid { grid-template-columns: 1fr; }
    .sj-journal-card { min-height: 235px; }
    .sj-standards { grid-template-columns: 1fr 1fr; margin-inline: 18px; padding: 18px 12px; }
    .sj-standards > div { padding: 12px; border-left: 0; border-top: 1px solid var(--sj-line); }
    .sj-standards > div:nth-child(-n+2) { border-top: 0; }
}


@media (max-width: 1040px) {
    .sj-topbar { grid-template-columns: 1fr; gap: 1rem; padding-inline: 28px; }
    .sj-topbar__nav { justify-content: flex-start; flex-wrap: wrap; }
    .sj-site-footer { grid-template-columns: 1fr; }
    .sj-site-footer__copy { text-align:left; }
}
@media (max-width: 700px) {
    .sj-topbar { padding: 18px; }
    .sj-brand { align-items:flex-start; gap:14px; }
    .sj-brand__mark { font-size:3rem; }
    .sj-brand__name { padding-right:0; border-right:0; font-size:.85rem; }
    .sj-brand__university { display:none; }
    .sj-topbar__nav { gap:14px 18px; }
    .sj-topbar__nav a { font-size:.8rem; }
    .sj-site-footer { padding:24px 18px; }
    .sj-site-footer__links { flex-wrap:wrap; gap:12px 18px; }
}

/* Branded site-level platform information page (Authors / About / Contacts). */
body.pkp_page_about.pkp_op_aboutThisPublishingSystem {
    overflow-x: hidden;
}
body.pkp_page_about.pkp_op_aboutThisPublishingSystem *,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem *::before,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem *::after {
    box-sizing: border-box;
}
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_head,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_footer {
    display: none !important;
}
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_page,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_content,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_main,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .page_about {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_content {
    display: block !important;
}
.sj-platform-page {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    background: #fff;
}
.sj-platform-main {
    width: 100%;
}
.sj-platform-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, .95fr) minmax(380px, 1.05fr);
    align-items: center;
    gap: 3rem;
    min-height: 480px;
    padding: 64px max(5vw, 56px);
    overflow: hidden;
    background:
        radial-gradient(circle at 34% 52%, rgba(255,255,255,.97) 0 18%, transparent 52%),
        linear-gradient(112deg, #fff 0%, #fff 38%, #fbf4f6 58%, #e7b0bc 80%, #8b0e3a 100%);
}
.sj-platform-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .32;
    background-image: repeating-radial-gradient(ellipse at 44% 76%, transparent 0 11px, rgba(139,14,58,.13) 12px 13px, transparent 14px 22px);
    mask-image: linear-gradient(to right, transparent 0, #000 28%, #000 100%);
}
.sj-platform-hero > * {
    position: relative;
    z-index: 2;
}
.sj-platform-hero h1 {
    margin: 0;
    color: var(--sj-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 4.8vw, 5.4rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.045em;
}
.sj-platform-hero h1 span {
    color: var(--sj-burgundy);
}
.sj-platform-hero > div:first-child > p:last-of-type {
    max-width: 700px;
    margin: 1.45rem 0 0;
    font-size: clamp(1.05rem, 1.3vw, 1.3rem);
    line-height: 1.55;
}
.sj-platform-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 1.8rem;
}
.sj-button--outline {
    color: var(--sj-burgundy) !important;
    border: 1px solid rgba(139,14,58,.32);
    background: rgba(255,255,255,.82);
    box-shadow: none;
}
.sj-button--outline:hover,
.sj-button--outline:focus {
    color: var(--sj-burgundy) !important;
    background: #fff;
    box-shadow: 0 10px 26px rgba(74,21,40,.12);
}
.sj-platform-orbit {
    position: relative;
    width: min(100%, 570px);
    aspect-ratio: 1;
    margin-inline: auto;
}
.sj-platform-orbit::before,
.sj-platform-orbit::after {
    content: "";
    position: absolute;
    inset: 14%;
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 50%;
}
.sj-platform-orbit::after {
    inset: 3%;
    border-style: dashed;
    opacity: .55;
}
.sj-platform-orbit__hub,
.sj-platform-orbit__item {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: var(--sj-burgundy);
    box-shadow: 0 12px 34px rgba(74,21,40,.13);
}
.sj-platform-orbit__hub {
    left: 50%;
    top: 50%;
    width: 180px;
    height: 180px;
    flex-direction: column;
    transform: translate(-50%, -50%);
    font-family: Georgia, serif;
    font-size: 4.8rem;
    line-height: .75;
}
.sj-platform-orbit__hub small {
    margin-top: 1rem;
    color: var(--sj-ink);
    font-family: Inter, "Noto Sans", Arial, sans-serif;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.15;
    text-align: center;
}
.sj-platform-orbit__item {
    width: 82px;
    height: 82px;
    border: 1px solid rgba(139,14,58,.25);
    font-family: Georgia, serif;
    font-size: 1.3rem;
    font-weight: 700;
}
.sj-platform-orbit__item--1 { left: 8%; top: 42%; }
.sj-platform-orbit__item--2 { left: 42%; top: 3%; }
.sj-platform-orbit__item--3 { right: 8%; top: 42%; }
.sj-platform-orbit__item--4 { left: 42%; bottom: 3%; }
.sj-info-section {
    max-width: 1500px;
    margin-inline: auto;
    padding: 76px max(4vw, 48px);
    scroll-margin-top: 24px;
}
.sj-info-section--soft {
    max-width: none;
    padding-inline: max(7vw, calc((100vw - 1500px) / 2 + 48px));
    background: var(--sj-soft);
    border-top: 1px solid var(--sj-line);
    border-bottom: 1px solid var(--sj-line);
}
.sj-info-section__heading {
    max-width: 850px;
}
.sj-info-section__heading h2 {
    position: relative;
    margin: 0 0 1rem;
    padding-bottom: .65rem;
    color: var(--sj-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.45rem, 3.7vw, 4rem);
    font-weight: 500;
    line-height: 1.05;
}
.sj-info-section__heading h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 52px;
    height: 2px;
    background: var(--sj-burgundy);
}
.sj-info-section__heading > p:last-child {
    margin: 0;
    color: var(--sj-muted);
    font-size: 1.03rem;
    line-height: 1.65;
}
.sj-process-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    margin-top: 34px;
}
.sj-process-grid article,
.sj-values-grid article {
    position: relative;
    min-height: 210px;
    padding: 26px 22px;
    border: 1px solid #ebe6e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(16,24,40,.045);
}
.sj-process-grid article > span {
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    border-radius: 50%;
    color: #fff;
    background: var(--sj-burgundy);
    font-size: .82rem;
    font-weight: 700;
}
.sj-process-grid h3 {
    margin: 0 0 .65rem;
    color: var(--sj-ink);
    font-size: 1.02rem;
}
.sj-process-grid p,
.sj-values-grid p {
    margin: 0;
    color: var(--sj-muted);
    font-size: .84rem;
    line-height: 1.55;
}
.sj-author-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-top: 26px;
    padding: 28px 30px;
    border: 1px solid rgba(139,14,58,.18);
    border-radius: 8px;
    background: linear-gradient(100deg, #fff 0%, #fbf3f5 100%);
}
.sj-author-callout > div {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.sj-author-callout strong {
    color: var(--sj-ink);
    font-size: 1.15rem;
}
.sj-author-callout span {
    color: var(--sj-muted);
    line-height: 1.5;
}
.sj-values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 34px;
}
.sj-values-grid article {
    min-height: 165px;
}
.sj-values-grid strong {
    display: block;
    margin-bottom: .8rem;
    color: var(--sj-burgundy);
    font-size: .82rem;
    letter-spacing: .06em;
}
.sj-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(310px, .85fr);
    align-items: start;
    gap: 3rem;
}
.sj-contact-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 30px;
    border: 1px solid #ebe6e8;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(16,24,40,.05);
    font-style: normal;
    line-height: 1.55;
}
.sj-contact-card strong {
    color: var(--sj-ink);
    font-size: 1.04rem;
}
.sj-contact-card span {
    color: var(--sj-muted);
}
.sj-contact-card a {
    color: var(--sj-burgundy);
    text-decoration: none;
}
.sj-contact-card a:hover,
.sj-contact-card a:focus {
    text-decoration: underline;
}
@media (max-width: 1100px) {
    .sj-platform-hero { grid-template-columns: 1fr; }
    .sj-platform-orbit { width: min(100%, 500px); }
    .sj-process-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 800px) {
    .sj-platform-hero { padding: 46px 24px; }
    .sj-info-section,
    .sj-info-section--soft { padding: 56px 24px; }
    .sj-process-grid,
    .sj-values-grid { grid-template-columns: 1fr 1fr; }
    .sj-contact-grid { grid-template-columns: 1fr; }
    .sj-author-callout { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 560px) {
    .sj-platform-orbit { display: none; }
    .sj-platform-hero { min-height: auto; }
    .sj-process-grid,
    .sj-values-grid { grid-template-columns: 1fr; }
    .sj-platform-hero__actions { flex-direction: column; align-items: stretch; }
    .sj-platform-hero__actions .sj-button { width: 100%; }
}

/* Release 0.2.3.0: remove inherited OJS sidebar blocks from custom portal pages. */
body.pkp_page_index.pkp_op_index .pkp_structure_sidebar,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_structure_sidebar,
body.pkp_page_index.pkp_op_index .pkp_block,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .pkp_block,
body.pkp_page_index.pkp_op_index [class*="block_language"],
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="block_language"] {
    display: none !important;
}

/* Scroll-to-top control redesigned for the SJ visual identity.
   Instead of the default purple circular button, use a clean burgundy arrow. */
body.pkp_page_index.pkp_op_index .back-to-top,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top,
body.pkp_page_index.pkp_op_index .scroll-to-top,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top,
body.pkp_page_index.pkp_op_index [class*="back-to-top"],
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"] {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 60;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    min-width: 56px;
    min-height: 56px;
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--sj-burgundy) !important;
    text-decoration: none !important;
    text-indent: -9999px;
    overflow: visible;
    transition: transform .18s ease, opacity .18s ease, color .18s ease;
}
body.pkp_page_index.pkp_op_index .back-to-top::before,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top::before,
body.pkp_page_index.pkp_op_index .scroll-to-top::before,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top::before,
body.pkp_page_index.pkp_op_index [class*="back-to-top"]::before,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"]::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 3px;
    height: 26px;
    border-radius: 2px;
    background: currentColor;
    transform: translate(-50%, -25%);
}
body.pkp_page_index.pkp_op_index .back-to-top::after,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top::after,
body.pkp_page_index.pkp_op_index .scroll-to-top::after,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top::after,
body.pkp_page_index.pkp_op_index [class*="back-to-top"]::after,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"]::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 16px;
    height: 16px;
    border-top: 3px solid currentColor;
    border-left: 3px solid currentColor;
    transform: translate(-50%, -72%) rotate(45deg);
}
body.pkp_page_index.pkp_op_index .back-to-top:hover,
body.pkp_page_index.pkp_op_index .back-to-top:focus,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top:hover,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top:focus,
body.pkp_page_index.pkp_op_index .scroll-to-top:hover,
body.pkp_page_index.pkp_op_index .scroll-to-top:focus,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top:hover,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top:focus,
body.pkp_page_index.pkp_op_index [class*="back-to-top"]:hover,
body.pkp_page_index.pkp_op_index [class*="back-to-top"]:focus,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"]:hover,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"]:focus {
    transform: translateY(-3px);
    color: var(--sj-burgundy-dark) !important;
    box-shadow: none !important;
    outline: none;
}
body.pkp_page_index.pkp_op_index .back-to-top svg,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top svg,
body.pkp_page_index.pkp_op_index .scroll-to-top svg,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top svg,
body.pkp_page_index.pkp_op_index [class*="back-to-top"] svg,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"] svg,
body.pkp_page_index.pkp_op_index .back-to-top i,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top i,
body.pkp_page_index.pkp_op_index .scroll-to-top i,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top i,
body.pkp_page_index.pkp_op_index [class*="back-to-top"] i,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"] i,
body.pkp_page_index.pkp_op_index .back-to-top span,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top span,
body.pkp_page_index.pkp_op_index .scroll-to-top span,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top span,
body.pkp_page_index.pkp_op_index [class*="back-to-top"] span,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"] span {
    opacity: 0 !important;
}

/* Additional phone refinements for the custom site header and contact page. */
@media (max-width: 480px) {
    .sj-topbar__nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 10px 14px;
    }
    .sj-topbar__languages {
        grid-column: 1 / -1;
        width: max-content;
        padding-left: 0;
        border-left: 0;
    }
    .sj-site-footer__links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
    .sj-contact-card {
        padding: 22px 18px;
    }
    .sj-nowrap {
        white-space: normal;
    }
}

@media (max-width: 640px) {
    body.pkp_page_index.pkp_op_index .back-to-top,
    body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top,
    body.pkp_page_index.pkp_op_index .scroll-to-top,
    body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top,
    body.pkp_page_index.pkp_op_index [class*="back-to-top"],
    body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"] {
        right: 14px;
        bottom: 14px;
        width: 50px;
        height: 50px;
        min-width: 50px;
        min-height: 50px;
    }
}


/* Release 0.2.4.2 — branded scroll-to-top control.
   The rest of the design is unchanged from 0.2.4.1. */
.sj-hide-inherited-scroll {
    display: none !important;
}

.sj-scroll-top {
    position: fixed;
    right: 22px;
    bottom: 18px;
    z-index: 1000;
    display: block;
    width: 46px;
    height: 58px;
    color: var(--sj-burgundy);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .2s ease, transform .2s ease, color .2s ease;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.sj-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.sj-scroll-top::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 18px;
    width: 3px;
    height: 31px;
    border-radius: 3px;
    background: currentColor;
    transform: translateX(-50%);
}
.sj-scroll-top::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 10px;
    width: 18px;
    height: 18px;
    border-top: 3px solid currentColor;
    border-left: 3px solid currentColor;
    transform: translateX(-50%) rotate(45deg);
}
.sj-scroll-top:hover,
.sj-scroll-top:focus {
    color: var(--sj-burgundy-dark);
    transform: translateY(-4px);
    outline: none;
}
.sj-scroll-top span {
    display: none;
}
@media (max-width: 640px) {
    .sj-scroll-top {
        right: 12px;
        bottom: 10px;
        width: 42px;
        height: 52px;
    }
}


/* Release 0.2.6.3 — coordinated hero layout. */

/* Desktop: one-line title and a unified compact journal fan. */
.sj-hero__copy {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 720px;
    margin: 0;
    align-self: center;
}

.sj-hero h1,
.sj-hero h1 span {
    white-space: nowrap;
}

.sj-ecosystem {
    position: relative;
    z-index: 2;
    width: min(100%, 500px);
    aspect-ratio: 720 / 520;
    margin-left: -2.4rem;
    margin-right: auto;
    align-self: center;
    transform: none;
}

/* Central platform logo. */
.sj-ecosystem .sj-hub {
    width: 150px;
    height: 150px;
}
.sj-ecosystem .sj-hub__mark {
    font-size: 3.75rem;
}
.sj-ecosystem .sj-hub__name {
    max-width: 80px;
    margin-top: .72rem;
    font-size: .70rem;
    line-height: 1.12;
}

/* Journal circles. */
.sj-ecosystem .sj-node {
    width: 102px;
    height: 102px;
    padding: 8px;
}
.sj-ecosystem .sj-node .sj-monogram {
    max-width: 100%;
    font-size: 1.68rem;
    letter-spacing: -.08em;
    white-space: nowrap;
}
.sj-ecosystem .sj-node__title {
    max-width: 78px;
    margin-top: .28rem;
    font-size: .50rem;
    line-height: 1.12;
}

/* Even fan geometry around the hub. */
.sj-ecosystem .sj-node--1 {
    left: 64%;
    top: 8%;
}
.sj-ecosystem .sj-node--2 {
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}
.sj-ecosystem .sj-node--3 {
    left: 16%;
    top: 8%;
}
.sj-ecosystem .sj-node--4 {
    left: 5%;
    top: 39%;
}
.sj-ecosystem .sj-node--5 {
    right: 4%;
    top: 39%;
}
.sj-ecosystem .sj-node--6 {
    left: 23%;
    bottom: 0;
}
.sj-ecosystem .sj-node--7 {
    right: 18%;
    bottom: 0;
}

/* Keep lines visually lighter than the circles. */
.sj-ecosystem .sj-link {
    opacity: .78;
}

/* Tablet refinements. */
@media (max-width: 1280px) and (min-width: 901px) {
    .sj-hero {
        grid-template-columns: minmax(440px, 1.05fr) minmax(390px, .95fr);
        padding-inline: 34px;
    }

    .sj-hero h1 {
        font-size: clamp(2.8rem, 4vw, 4.6rem);
    }

    .sj-ecosystem {
        width: min(100%, 460px);
        margin-left: -1.8rem;
    }

    .sj-ecosystem .sj-hub {
        width: 138px;
        height: 138px;
    }

    .sj-ecosystem .sj-node {
        width: 94px;
        height: 94px;
        padding: 7px;
    }

    .sj-ecosystem .sj-node .sj-monogram {
        font-size: 1.53rem;
    }

    .sj-ecosystem .sj-node__title {
        max-width: 72px;
        font-size: .46rem;
    }

    .sj-hero__watermark {
        right: 2.5%;
        width: 285px;
    }
}

/* On stacked layouts the title may wrap naturally. */
@media (max-width: 900px) {
    .sj-hero h1,
    .sj-hero h1 span {
        white-space: normal;
    }

    .sj-ecosystem {
        width: min(100%, 500px);
        margin-inline: auto;
    }
}

/* Phone title sizing. */
@media (max-width: 640px) {
    .sj-hero h1 {
        font-size: 3rem;
        line-height: 1;
    }
}


/* Release 0.2.6.4 — move the journal fan closer to the title. */
@media (min-width: 1281px) {
    .sj-ecosystem {
        margin-left: -6.2rem;
    }
}

@media (max-width: 1280px) and (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -4.3rem;
    }
}


/* Release 0.2.6.5 — align the fan symmetrically and shift it left. */
@media (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -8.8rem;
    }

    .sj-ecosystem .sj-node--1 {
        left: 62%;
        top: 8%;
    }

    .sj-ecosystem .sj-node--2 {
        left: 50%;
        top: 0;
        transform: translateX(-50%);
    }

    .sj-ecosystem .sj-node--3 {
        left: 17%;
        top: 8%;
    }

    .sj-ecosystem .sj-node--4 {
        left: 5%;
        top: 39%;
    }

    .sj-ecosystem .sj-node--5 {
        left: 75%;
        top: 39%;
        right: auto;
    }

    .sj-ecosystem .sj-node--6 {
        left: 22%;
        bottom: 0;
    }

    .sj-ecosystem .sj-node--7 {
        left: 58%;
        bottom: 0;
        right: auto;
    }
}

@media (max-width: 1280px) and (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -6.2rem;
    }
}


/* Release 0.2.6.6 — move the fan further left and restore clean symmetry. */
@media (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -10.8rem;
    }

    /* Align node centres with the radial guide lines for a cleaner fan. */
    .sj-ecosystem .sj-node--1 {
        left: 59%;
        top: 8%;
    }

    .sj-ecosystem .sj-node--2 {
        left: 50%;
        top: 0;
        transform: translateX(-50%);
    }

    .sj-ecosystem .sj-node--3 {
        left: 16%;
        top: 8%;
    }

    .sj-ecosystem .sj-node--4 {
        left: 8%;
        top: 39%;
    }

    .sj-ecosystem .sj-node--5 {
        left: 67%;
        top: 39%;
        right: auto;
    }

    .sj-ecosystem .sj-node--6 {
        left: 20%;
        bottom: 0;
    }

    .sj-ecosystem .sj-node--7 {
        left: 55%;
        bottom: 0;
        right: auto;
    }
}

@media (max-width: 1280px) and (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -7.8rem;
    }
}


/* Release 0.2.6.7 — final fan alignment and guide-line cleanup. */
@media (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -11.8rem;
    }

    /* Symmetrical centres around the central SJ hub. */
    .sj-ecosystem .sj-node--1 {
        left: 63.5%;
        top: 8%;
    }

    .sj-ecosystem .sj-node--2 {
        left: 50%;
        top: 0;
        transform: translateX(-50%);
    }

    .sj-ecosystem .sj-node--3 {
        left: 16%;
        top: 8%;
    }

    .sj-ecosystem .sj-node--4 {
        left: 8%;
        top: 39%;
    }

    .sj-ecosystem .sj-node--5 {
        left: 71.6%;
        top: 39%;
        right: auto;
    }

    .sj-ecosystem .sj-node--6 {
        left: 20%;
        bottom: 0;
    }

    .sj-ecosystem .sj-node--7 {
        left: 59.7%;
        bottom: 0;
        right: auto;
    }

    .sj-ecosystem__lines line {
        stroke: rgba(255,255,255,.94);
        stroke-width: 2.6;
        stroke-dasharray: 3 5;
    }
}

@media (max-width: 1280px) and (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -8.6rem;
    }
}


/* Release 0.2.6.8 — restore symmetry, lift ERR above the hub, and shift the whole fan left. */
@media (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -13.2rem;
    }

    /* Symmetric outer ring around the SJ hub. */
    .sj-ecosystem .sj-node--1 {
        left: 63.2%;
        top: 6.6%;
    }

    .sj-ecosystem .sj-node--2 {
        left: 50%;
        top: -2.1%;
        transform: translateX(-50%);
    }

    .sj-ecosystem .sj-node--3 {
        left: 16.3%;
        top: 6.6%;
    }

    .sj-ecosystem .sj-node--4 {
        left: 8.4%;
        top: 39.2%;
    }

    .sj-ecosystem .sj-node--5 {
        left: 71.2%;
        top: 39.2%;
        right: auto;
    }

    .sj-ecosystem .sj-node--6 {
        left: 19.9%;
        bottom: 0.2%;
    }

    .sj-ecosystem .sj-node--7 {
        left: 59.6%;
        bottom: 0.2%;
        right: auto;
    }

    .sj-ecosystem__lines line {
        stroke: rgba(255,255,255,.96);
        stroke-width: 2.7;
        stroke-dasharray: 3 5;
        stroke-linecap: round;
    }
}

@media (max-width: 1280px) and (min-width: 901px) {
    .sj-ecosystem {
        margin-left: -9.6rem;
    }
}

/* Release 0.2.7.3 — refine the outer ring so the 13 logos sit on a cleaner, more even circle. */
.sj-ecosystem {
    width: min(100%, 560px);
    aspect-ratio: 1 / 1;
}
.sj-ecosystem .sj-hub { width: 132px; height: 132px; }
.sj-ecosystem .sj-hub__mark { font-size: 3.3rem; }
.sj-ecosystem .sj-node { width: 90px; height: 90px; padding: 7px; }
.sj-ecosystem .sj-node .sj-monogram { font-size: 1.5rem; }
.sj-ecosystem .sj-node__title { max-width: 74px; font-size: .42rem; line-height: 1.08; }

/* Thirteen mathematically even node positions with PAE at the top apex. */
.sj-ecosystem .sj-node--1  { left: 42.0%; top: 6.6%;  right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--2  { left: 58.4%; top: 10.7%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--3  { left: 71.1%; top: 21.9%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--4  { left: 77.1%; top: 37.7%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--5  { left: 75.0%; top: 54.5%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--6  { left: 65.4%; top: 68.4%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--7  { left: 50.4%; top: 76.3%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--8  { left: 33.5%; top: 76.3%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--9  { left: 18.5%; top: 68.4%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--10 { left: 8.9%;  top: 54.5%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--11 { left: 6.9%;  top: 37.7%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--12 { left: 12.9%; top: 21.9%; right: auto; bottom: auto; transform: none; }
.sj-ecosystem .sj-node--13 { left: 25.5%; top: 10.7%; right: auto; bottom: auto; transform: none; }

.sj-journal-card--8  { color: var(--sj-burgundy); }
.sj-journal-card--9  { color: var(--sj-green); }
.sj-journal-card--10 { color: var(--sj-purple); }
.sj-journal-card--11 { color: var(--sj-blue); }
.sj-journal-card--12 { color: var(--sj-teal); }
.sj-journal-card--13 { color: var(--sj-orange); }
@media (max-width: 900px) {
    .sj-ecosystem { width: min(100%, 530px); }
}
@media (max-width: 640px) {
    .sj-ecosystem .sj-node { width: 72px; height: 72px; }
    .sj-ecosystem .sj-node .sj-monogram { font-size: 1.14rem; }
    .sj-ecosystem .sj-node__title { max-width: 60px; font-size: .35rem; }
    .sj-ecosystem .sj-hub { width: 110px; height: 110px; }
}


/* Release 0.2.7.4 — remove inherited navigation artefacts and refine the custom scroll-to-top arrow. */
body.pkp_page_index.pkp_op_index .back-to-top:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .back-to-top:not(.sj-scroll-top),
body.pkp_page_index.pkp_op_index .scroll-to-top:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-to-top:not(.sj-scroll-top),
body.pkp_page_index.pkp_op_index .scrollup:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scrollup:not(.sj-scroll-top),
body.pkp_page_index.pkp_op_index .scroll-top:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem .scroll-top:not(.sj-scroll-top),
body.pkp_page_index.pkp_op_index #back-to-top,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem #back-to-top,
body.pkp_page_index.pkp_op_index #scroll-to-top,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem #scroll-to-top,
body.pkp_page_index.pkp_op_index #scrollTop,
body.pkp_page_about.pkp_op_aboutThisPublishingSystem #scrollTop,
body.pkp_page_index.pkp_op_index a[href="#top"]:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem a[href="#top"]:not(.sj-scroll-top),
body.pkp_page_index.pkp_op_index a[href="#page-top"]:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem a[href="#page-top"]:not(.sj-scroll-top),
body.pkp_page_index.pkp_op_index [class*="back-to-top"]:not(.sj-scroll-top),
body.pkp_page_about.pkp_op_aboutThisPublishingSystem [class*="back-to-top"]:not(.sj-scroll-top) {
    display: none !important;
}

.sj-site-index .swiper-pagination,
.sj-site-index .swiper-pagination-bullets,
.sj-site-index .swiper-pagination-bullet,
.sj-site-index .slick-dots,
.sj-site-index .owl-dots,
.sj-site-index .splide__pagination,
.sj-site-index .glide__bullets,
.sj-site-index .tns-nav,
.sj-site-index [class*="pagination-bullet"],
.sj-site-index [class*="slider-dots"],
.sj-site-index [class*="carousel-dots"] {
    display: none !important;
}

.sj-scroll-top {
    right: 24px;
    bottom: 20px;
    width: 34px;
    height: 52px;
    color: var(--sj-burgundy);
}
.sj-scroll-top::before {
    top: 15px;
    width: 4px;
    height: 32px;
    border-radius: 4px;
}
.sj-scroll-top::after {
    top: 8px;
    width: 18px;
    height: 18px;
    border-top-width: 4px;
    border-left-width: 4px;
}
.sj-scroll-top:hover,
.sj-scroll-top:focus {
    color: var(--sj-burgundy-dark);
    transform: translateY(-3px);
}
@media (max-width: 640px) {
    .sj-scroll-top {
        right: 14px;
        bottom: 12px;
        width: 32px;
        height: 48px;
    }
    .sj-scroll-top::before { height: 29px; }
    .sj-scroll-top::after { width: 17px; height: 17px; }
}


/* Release 0.2.7.5 — compact bold burgundy arrow and hard suppression of the inherited bottom-left button. */
.sj-scroll-top {
    right: 24px;
    bottom: 18px;
    width: 30px;
    height: 42px;
}
.sj-scroll-top::before {
    top: 13px;
    width: 4px;
    height: 24px;
    border-radius: 4px;
}
.sj-scroll-top::after {
    top: 7px;
    width: 15px;
    height: 15px;
    border-top-width: 4px;
    border-left-width: 4px;
}
@media (max-width: 640px) {
    .sj-scroll-top { right: 13px; bottom: 11px; width: 28px; height: 39px; }
    .sj-scroll-top::before { top: 12px; height: 22px; }
    .sj-scroll-top::after { top: 6px; width: 14px; height: 14px; }
}

/* =========================================================
   Scientific Journals 0.2.7.6 — proven New Collegium
   single back-to-top implementation, recoloured burgundy
   ========================================================= */
body.sj-theme .sj-scroll-top,
body.sj-theme .sj-scroll-top[hidden] {
    position: fixed !important;
    right: 18px !important;
    bottom: 16px !important;
    left: auto !important;
    top: auto !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(139,14,58,.22) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: var(--sj-burgundy) !important;
    box-shadow: 0 8px 24px rgba(74,21,40,.14) !important;
    cursor: pointer !important;
    z-index: 10000 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    transform: translateY(8px) !important;
    pointer-events: none !important;
    transition: opacity .2s ease, transform .2s ease, color .2s ease, box-shadow .2s ease !important;
    text-decoration: none !important;
}
body.sj-theme .sj-scroll-top::before,
body.sj-theme .sj-scroll-top::after {
    content: none !important;
    display: none !important;
}
body.sj-theme .sj-scroll-top svg {
    width: 28px !important;
    height: 28px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 3.2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}
body.sj-theme .sj-scroll-top.is-visible,
body.sj-theme .sj-scroll-top.is-visible[hidden] {
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
}
body.sj-theme .sj-scroll-top.is-visible:hover,
body.sj-theme .sj-scroll-top.is-visible:focus-visible {
    color: var(--sj-burgundy-dark) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 11px 28px rgba(74,21,40,.19) !important;
    outline: none !important;
}

/* Static suppression for any inherited named controls; JS also removes unnamed bars. */
body.sj-theme .back-to-top,
body.sj-theme .scroll-to-top,
body.sj-theme .go-to-top,
body.sj-theme .to-top,
body.sj-theme .top-link,
body.sj-theme [class*="back-to-top"]:not(.sj-scroll-top),
body.sj-theme [class*="back_to_top"]:not(.sj-scroll-top),
body.sj-theme [class*="scroll-to-top"]:not(.sj-scroll-top),
body.sj-theme [class*="scroll_to_top"]:not(.sj-scroll-top),
body.sj-theme [id*="back-to-top"],
body.sj-theme [id*="scroll-to-top"],
body.sj-theme [id*="go-to-top"],
body.sj-theme [id*="to-top"] {
    display: none !important;
}
body.sj-theme .sj-scroll-top { display: flex !important; }

@media (max-width: 640px) {
    body.sj-theme .sj-scroll-top,
    body.sj-theme .sj-scroll-top[hidden] {
        right: 12px !important;
        bottom: 11px !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        border-radius: 13px !important;
    }
    body.sj-theme .sj-scroll-top svg {
        width: 26px !important;
        height: 26px !important;
    }
}


/* =========================================================
   Scientific Journals 0.2.7.7 — use the working OJS control.
   Move it to the lower-right and redraw it as a burgundy chevron only.
   ========================================================= */
body.sj-theme .sj-scroll-top {
    display: none !important;
}

body.sj-theme .sj-native-scroll-top,
body.sj-theme .sj-native-scroll-top[hidden] {
    position: fixed !important;
    left: auto !important;
    right: 18px !important;
    top: auto !important;
    bottom: 14px !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    border: 1px solid rgba(139,14,58,.22) !important;
    border-radius: 13px !important;
    background: #fff !important;
    color: var(--sj-burgundy) !important;
    box-shadow: 0 8px 22px rgba(74,21,40,.14) !important;
    cursor: pointer !important;
    z-index: 10000 !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: -9999px !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: transform .18s ease, color .18s ease, box-shadow .18s ease !important;
}
body.sj-theme .sj-native-scroll-top > * {
    display: none !important;
}
body.sj-theme .sj-native-scroll-top::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 53% !important;
    width: 15px !important;
    height: 15px !important;
    border: 0 !important;
    border-top: 4px solid currentColor !important;
    border-left: 4px solid currentColor !important;
    border-radius: 1px !important;
    background: transparent !important;
    transform: translate(-50%, -35%) rotate(45deg) !important;
    box-sizing: border-box !important;
}
body.sj-theme .sj-native-scroll-top::after {
    content: none !important;
    display: none !important;
}
body.sj-theme .sj-native-scroll-top:hover,
body.sj-theme .sj-native-scroll-top:focus-visible {
    color: var(--sj-burgundy-dark) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 11px 27px rgba(74,21,40,.19) !important;
    outline: none !important;
}
@media (max-width: 640px) {
    body.sj-theme .sj-native-scroll-top,
    body.sj-theme .sj-native-scroll-top[hidden] {
        right: 12px !important;
        bottom: 11px !important;
        width: 43px !important;
        min-width: 43px !important;
        max-width: 43px !important;
        height: 43px !important;
        min-height: 43px !important;
        max-height: 43px !important;
        border-radius: 12px !important;
    }
    body.sj-theme .sj-native-scroll-top::before {
        width: 14px !important;
        height: 14px !important;
    }
}


/* =========================================================
   Scientific Journals 0.2.7.8 — show the adopted working button
   only after a short scroll and make the burgundy chevron heavier.
   ========================================================= */
body.sj-theme .sj-native-scroll-top,
body.sj-theme .sj-native-scroll-top[hidden] {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(7px) !important;
}

body.sj-theme .sj-native-scroll-top.sj-native-scroll-top--visible,
body.sj-theme .sj-native-scroll-top.sj-native-scroll-top--visible[hidden] {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

body.sj-theme .sj-native-scroll-top::before {
    width: 17px !important;
    height: 17px !important;
    border-top-width: 5px !important;
    border-left-width: 5px !important;
    border-radius: 1.5px !important;
}

body.sj-theme .sj-native-scroll-top.sj-native-scroll-top--visible:hover,
body.sj-theme .sj-native-scroll-top.sj-native-scroll-top--visible:focus-visible {
    transform: translateY(-2px) !important;
}

@media (max-width: 640px) {
    body.sj-theme .sj-native-scroll-top::before {
        width: 16px !important;
        height: 16px !important;
        border-top-width: 5px !important;
        border-left-width: 5px !important;
    }
}


/* =========================================================
   Scientific Journals 0.2.7.10 — stronger test cover motifs for PAE, AST and HSR.
   Covers remain deliberately subtle so monograms and text stay readable.
   ========================================================= */
.sj-journal-card--1,
.sj-journal-card--2,
.sj-journal-card--3 {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #fff;
}

.sj-journal-card--1::before,
.sj-journal-card--2::before,
.sj-journal-card--3::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: .27;
    filter: saturate(1.02) contrast(.98);
    transform: scale(1.035);
    transition: opacity .22s ease, transform .22s ease;
}

.sj-journal-card--1::after,
.sj-journal-card--2::after,
.sj-journal-card--3::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        180deg,
        rgba(255,255,255,.48) 0%,
        rgba(255,255,255,.63) 38%,
        rgba(255,255,255,.88) 72%,
        rgba(255,255,255,.97) 100%
    );
    pointer-events: none;
}

.sj-journal-card--1::before { background-image: url("../images/covers/pae.webp"); background-position: 34% center; }
.sj-journal-card--2::before { background-image: url("../images/covers/astraea.webp"); background-position: center 42%; }
.sj-journal-card--3::before { background-image: url("../images/covers/hsr.webp"); background-position: center 28%; }

.sj-journal-card--1:hover::before,
.sj-journal-card--2:hover::before,
.sj-journal-card--3:hover::before {
    opacity: .36;
    transform: scale(1.065);
}

.sj-journal-card--1 > *,
.sj-journal-card--2 > *,
.sj-journal-card--3 > * {
    position: relative;
    z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
    .sj-journal-card--1::before,
    .sj-journal-card--2::before,
    .sj-journal-card--3::before {
        transition: none;
    }
}


/* =========================================================
   Scientific Journals 0.2.8.0 — approved background motifs for all 13 journal cards
   and restored OJS account controls.
   ========================================================= */
.sj-account {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 2px;
    padding-left: 14px;
    border-left: 1px solid #d6dbe2;
}
.sj-account a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 11px;
    border-radius: 4px;
    font-size: .78rem;
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
}
.sj-account__login { color: var(--sj-burgundy) !important; }
.sj-account__register,
.sj-account__dashboard {
    color: #fff !important;
    background: var(--sj-burgundy);
    box-shadow: 0 5px 14px rgba(139,14,58,.14);
}
.sj-account__register:hover,
.sj-account__register:focus,
.sj-account__dashboard:hover,
.sj-account__dashboard:focus {
    color: #fff !important;
    background: var(--sj-burgundy-dark);
}

.sj-journal-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #fff;
}
.sj-journal-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: .34;
    filter: saturate(.86) contrast(.92);
    transform: scale(1.025);
    transition: opacity .24s ease, transform .24s ease;
}
.sj-journal-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        180deg,
        rgba(255,255,255,.25) 0%,
        rgba(255,255,255,.48) 30%,
        rgba(255,255,255,.82) 57%,
        rgba(255,255,255,.965) 79%,
        rgba(255,255,255,.995) 100%
    );
    pointer-events: none;
}
.sj-journal-card:hover::before {
    opacity: .43;
    transform: scale(1.055);
}
.sj-journal-card > * { position: relative; z-index: 1; }

.sj-journal-card--1::before  { background-image: url("../images/covers/pae.webp"); }
.sj-journal-card--2::before  { background-image: url("../images/covers/astraea.webp"); }
.sj-journal-card--3::before  { background-image: url("../images/covers/hsr.webp"); }
.sj-journal-card--4::before  { background-image: url("../images/covers/ec.webp"); }
.sj-journal-card--5::before  { background-image: url("../images/covers/ht.webp"); }
.sj-journal-card--6::before  { background-image: url("../images/covers/tmt.webp"); }
.sj-journal-card--7::before  { background-image: url("../images/covers/err.webp"); }
.sj-journal-card--8::before  { background-image: url("../images/covers/sjp.webp"); }
.sj-journal-card--9::before  { background-image: url("../images/covers/slr.webp"); }
.sj-journal-card--10::before { background-image: url("../images/covers/beeb.webp"); }
.sj-journal-card--11::before { background-image: url("../images/covers/ls.webp"); }
.sj-journal-card--12::before { background-image: url("../images/covers/nc.webp"); }
.sj-journal-card--13::before { background-image: url("../images/covers/lsr.webp"); }

/* Keep the monograms and card copy crisp over the motifs. */
.sj-journal-card__logo,
.sj-journal-card h3,
.sj-journal-card__description,
.sj-journal-card__link {
    text-shadow: 0 1px 0 rgba(255,255,255,.86);
}

@media (max-width: 1160px) {
    .sj-topbar { gap: 18px; }
    .sj-topbar__nav { gap: 14px; }
    .sj-account { padding-left: 10px; }
    .sj-account a { padding-inline: 8px; font-size: .73rem; }
}
@media (max-width: 900px) {
    .sj-account { width: 100%; justify-content: flex-end; border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .sj-journal-card::before { transition: none; }
}


/* =========================================================
   Scientific Journals 0.2.8.2 — approved card motifs from the final mockups,
   without issue-cover text, plus stable click-based account menu.
   ========================================================= */
.sj-journal-card::before {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    background-size: cover !important;
    background-position: center top !important;
}
.sj-journal-card::after {
    background: linear-gradient(
        180deg,
        rgba(255,255,255,.02) 0%,
        rgba(255,255,255,.06) 27%,
        rgba(255,255,255,.20) 43%,
        rgba(255,255,255,.72) 64%,
        rgba(255,255,255,.97) 82%,
        #fff 100%
    ) !important;
}
.sj-journal-card:hover::before {
    opacity: 1 !important;
    transform: scale(1.015) !important;
}
.sj-journal-card__logo,
.sj-journal-card h3,
.sj-journal-card__description,
.sj-journal-card__link {
    text-shadow: 0 1px 0 rgba(255,255,255,.98), 0 0 8px rgba(255,255,255,.72);
}

.sj-account { position: relative; z-index: 90; overflow: visible; }
.sj-account-menu { position: relative; margin: 0; }
.sj-account-menu > summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 4px;
    color: #fff;
    background: var(--sj-burgundy);
    box-shadow: 0 5px 14px rgba(139,14,58,.14);
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.sj-account-menu > summary::-webkit-details-marker { display: none; }
.sj-account-menu > summary b { font-size: .95rem; transition: transform .18s ease; }
.sj-account-menu[open] > summary b { transform: rotate(180deg); }
.sj-account-menu > summary:hover,
.sj-account-menu > summary:focus,
.sj-account-menu[open] > summary { background: var(--sj-burgundy-dark); outline: none; }
.sj-account-menu__panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 1200;
    min-width: 210px;
    padding: 8px;
    border: 1px solid var(--sj-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(19,34,56,.20);
}
.sj-account-menu__panel::before { content:""; position:absolute; left:0; right:0; top:-9px; height:9px; }
.sj-account-menu__panel a {
    display: block;
    padding: 10px 12px;
    border-radius: 7px;
    color: var(--sj-ink) !important;
    font-size: .84rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: left;
    text-decoration: none;
}
.sj-account-menu__panel a:hover,
.sj-account-menu__panel a:focus { color: var(--sj-burgundy) !important; background: var(--sj-soft); outline: none; }
.sj-account-menu__panel .sj-account-menu__logout {
    margin-top: 5px;
    padding-top: 11px;
    border-top: 1px solid var(--sj-line);
    border-radius: 0 0 7px 7px;
    color: #a52d2d !important;
}


/* =========================================================
   Scientific Journals 0.2.8.3
   - stronger approved card motifs
   - branded OJS authentication pages
   ========================================================= */

/* Make the approved motifs more visible while preserving text readability. */
.sj-journal-card::before {
    opacity: 1 !important;
    filter: saturate(1.03) contrast(1.02) !important;
}
.sj-journal-card::after {
    background: linear-gradient(
        180deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,.02) 22%,
        rgba(255,255,255,.10) 38%,
        rgba(255,255,255,.48) 57%,
        rgba(255,255,255,.90) 76%,
        rgba(255,255,255,.995) 100%
    ) !important;
}
.sj-journal-card:hover::before {
    transform: scale(1.025) !important;
}
.sj-journal-card__logo,
.sj-journal-card h3 {
    text-shadow:
        0 1px 0 rgba(255,255,255,1),
        0 0 10px rgba(255,255,255,.82);
}

/* ---------- Branded public OJS authentication screens ---------- */

/* Base page shell for login, registration, password reset and profile-related public forms. */
body.pkp_page_login,
body.pkp_page_user,
body.pkp_page_lostPassword {
    margin: 0;
    color: var(--sj-ink);
    background:
        radial-gradient(circle at 15% 28%, rgba(139,14,58,.07), transparent 34%),
        linear-gradient(135deg, #fff 0%, #fbf6f8 48%, #f7e9ef 100%);
    font-family: Arial, Helvetica, sans-serif;
}

body.pkp_page_login .pkp_structure_page,
body.pkp_page_user .pkp_structure_page,
body.pkp_page_lostPassword .pkp_structure_page {
    min-height: 100vh;
    background: transparent;
}

/* Hide inaccessible-looking skip/menu controls visually, but keep skip links available to keyboard users. */
body.pkp_page_login .pkp_skip_to_content,
body.pkp_page_user .pkp_skip_to_content,
body.pkp_page_lostPassword .pkp_skip_to_content {
    position: fixed;
    left: -9999px;
    top: auto;
}
body.pkp_page_login .pkp_skip_to_content:focus,
body.pkp_page_user .pkp_skip_to_content:focus,
body.pkp_page_lostPassword .pkp_skip_to_content:focus {
    left: 16px;
    top: 12px;
    z-index: 9999;
    padding: 10px 14px;
    border-radius: 5px;
    color: #fff;
    background: var(--sj-burgundy);
}

body.pkp_page_login .pkp_site_nav_toggle,
body.pkp_page_user .pkp_site_nav_toggle,
body.pkp_page_lostPassword .pkp_site_nav_toggle {
    display: none !important;
}

/* Header reconstructed in the portal identity. */
body.pkp_page_login .pkp_structure_head,
body.pkp_page_user .pkp_structure_head,
body.pkp_page_lostPassword .pkp_structure_head {
    border-top: 3px solid var(--sj-burgundy);
    border-bottom: 1px solid var(--sj-line);
    background: rgba(255,255,255,.96);
    box-shadow: 0 5px 24px rgba(19,34,56,.06);
}

body.pkp_page_login .pkp_head_wrapper,
body.pkp_page_user .pkp_head_wrapper,
body.pkp_page_lostPassword .pkp_head_wrapper {
    max-width: 1220px;
    min-height: 88px;
    margin: 0 auto;
    padding: 14px 28px;
}

body.pkp_page_login .pkp_site_name,
body.pkp_page_user .pkp_site_name,
body.pkp_page_lostPassword .pkp_site_name {
    margin: 0;
}

body.pkp_page_login .pkp_site_name a,
body.pkp_page_user .pkp_site_name a,
body.pkp_page_lostPassword .pkp_site_name a {
    display: flex;
    align-items: center;
    max-width: 490px;
    color: var(--sj-ink);
    text-decoration: none;
}

body.pkp_page_login .pkp_site_name img,
body.pkp_page_user .pkp_site_name img,
body.pkp_page_lostPassword .pkp_site_name img {
    display: block;
    max-width: 430px;
    max-height: 68px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Remove parent-theme navigation clutter on the compact auth screen. */
body.pkp_page_login .pkp_navigation_primary_row,
body.pkp_page_login .pkp_navigation_user_wrapper,
body.pkp_page_user .pkp_navigation_primary_row,
body.pkp_page_user .pkp_navigation_user_wrapper,
body.pkp_page_lostPassword .pkp_navigation_primary_row,
body.pkp_page_lostPassword .pkp_navigation_user_wrapper {
    display: none !important;
}

/* Main login card. */
body.pkp_page_login .pkp_structure_content,
body.pkp_page_user .pkp_structure_content,
body.pkp_page_lostPassword .pkp_structure_content {
    display: block;
    max-width: 1180px;
    margin: 0 auto;
    padding: 48px 28px 72px;
}

body.pkp_page_login .pkp_structure_main,
body.pkp_page_user .pkp_structure_main,
body.pkp_page_lostPassword .pkp_structure_main {
    float: none;
    width: min(100%, 620px);
    margin: 0 auto;
    padding: 38px 42px 42px;
    border: 1px solid rgba(139,14,58,.13);
    border-radius: 14px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 24px 65px rgba(65,25,42,.13);
}

body.pkp_page_login .page_login,
body.pkp_page_user .page_register,
body.pkp_page_lostPassword .page_lost_password {
    margin: 0;
}

body.pkp_page_login .pkp_structure_main h1,
body.pkp_page_user .pkp_structure_main h1,
body.pkp_page_lostPassword .pkp_structure_main h1 {
    position: relative;
    margin: 0 0 30px;
    padding-bottom: 14px;
    color: var(--sj-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 500;
}
body.pkp_page_login .pkp_structure_main h1::after,
body.pkp_page_user .pkp_structure_main h1::after,
body.pkp_page_lostPassword .pkp_structure_main h1::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 52px;
    height: 3px;
    background: var(--sj-burgundy);
}

/* Breadcrumbs and page helper copy. */
body.pkp_page_login .cmp_breadcrumbs,
body.pkp_page_user .cmp_breadcrumbs,
body.pkp_page_lostPassword .cmp_breadcrumbs {
    margin: 0 0 18px;
    color: var(--sj-muted);
    font-size: .82rem;
}
body.pkp_page_login .cmp_breadcrumbs a,
body.pkp_page_user .cmp_breadcrumbs a,
body.pkp_page_lostPassword .cmp_breadcrumbs a {
    color: var(--sj-burgundy);
    text-decoration: none;
}

/* Form controls. */
body.pkp_page_login .fields,
body.pkp_page_user .fields,
body.pkp_page_lostPassword .fields {
    margin: 0;
    padding: 0;
    border: 0;
}

body.pkp_page_login .field,
body.pkp_page_user .field,
body.pkp_page_lostPassword .field {
    margin-bottom: 20px;
}

body.pkp_page_login label,
body.pkp_page_user label,
body.pkp_page_lostPassword label {
    display: block;
    margin-bottom: 7px;
    color: var(--sj-ink);
    font-size: .9rem;
    font-weight: 700;
}

body.pkp_page_login input[type="text"],
body.pkp_page_login input[type="email"],
body.pkp_page_login input[type="password"],
body.pkp_page_user input[type="text"],
body.pkp_page_user input[type="email"],
body.pkp_page_user input[type="password"],
body.pkp_page_user select,
body.pkp_page_lostPassword input[type="text"],
body.pkp_page_lostPassword input[type="email"] {
    box-sizing: border-box;
    width: 100%;
    min-height: 46px;
    padding: 10px 13px;
    border: 1px solid #d8cdd1;
    border-radius: 7px;
    color: var(--sj-ink);
    background: #fff;
    font: inherit;
    box-shadow: inset 0 1px 2px rgba(19,34,56,.04);
}
body.pkp_page_login input:focus,
body.pkp_page_user input:focus,
body.pkp_page_user select:focus,
body.pkp_page_lostPassword input:focus {
    border-color: var(--sj-burgundy);
    outline: 3px solid rgba(139,14,58,.10);
}

body.pkp_page_login .buttons,
body.pkp_page_user .buttons,
body.pkp_page_lostPassword .buttons {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 26px;
}

body.pkp_page_login button,
body.pkp_page_login input[type="submit"],
body.pkp_page_user button,
body.pkp_page_user input[type="submit"],
body.pkp_page_lostPassword button,
body.pkp_page_lostPassword input[type="submit"] {
    min-height: 44px;
    padding: 0 22px;
    border: 0;
    border-radius: 6px;
    color: #fff;
    background: var(--sj-burgundy);
    box-shadow: 0 7px 18px rgba(139,14,58,.18);
    font-size: .88rem;
    font-weight: 700;
    cursor: pointer;
}
body.pkp_page_login button:hover,
body.pkp_page_login input[type="submit"]:hover,
body.pkp_page_user button:hover,
body.pkp_page_user input[type="submit"]:hover,
body.pkp_page_lostPassword button:hover,
body.pkp_page_lostPassword input[type="submit"]:hover {
    background: var(--sj-burgundy-dark);
}

body.pkp_page_login a,
body.pkp_page_user a,
body.pkp_page_lostPassword a {
    color: var(--sj-burgundy);
}

body.pkp_page_login .remember,
body.pkp_page_login .password,
body.pkp_page_login .register {
    margin-top: 14px;
    font-size: .88rem;
}

/* Language block beneath the form. */
body.pkp_page_login .pkp_block,
body.pkp_page_user .pkp_block,
body.pkp_page_lostPassword .pkp_block {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--sj-line);
}
body.pkp_page_login .pkp_block h2,
body.pkp_page_user .pkp_block h2,
body.pkp_page_lostPassword .pkp_block h2 {
    margin: 0 0 12px;
    color: var(--sj-ink);
    font-size: 1rem;
}

/* Compact branded footer. */
body.pkp_page_login .pkp_structure_footer_wrapper,
body.pkp_page_user .pkp_structure_footer_wrapper,
body.pkp_page_lostPassword .pkp_structure_footer_wrapper {
    border-top: 1px solid var(--sj-line);
    background: #fff;
}

@media (max-width: 680px) {
    body.pkp_page_login .pkp_head_wrapper,
    body.pkp_page_user .pkp_head_wrapper,
    body.pkp_page_lostPassword .pkp_head_wrapper {
        min-height: 70px;
        padding: 10px 16px;
    }

    body.pkp_page_login .pkp_structure_content,
    body.pkp_page_user .pkp_structure_content,
    body.pkp_page_lostPassword .pkp_structure_content {
        padding: 24px 14px 48px;
    }

    body.pkp_page_login .pkp_structure_main,
    body.pkp_page_user .pkp_structure_main,
    body.pkp_page_lostPassword .pkp_structure_main {
        padding: 28px 20px 32px;
        border-radius: 10px;
    }
}


/* =========================================================
   Scientific Journals 0.2.8.4 — cards show the journal name only.
   Descriptive metadata (year, field, scope, etc.) is intentionally omitted.
   ========================================================= */
.sj-journal-card {
    min-height: 255px;
}
.sj-journal-card h3 {
    display: flex;
    min-height: 68px;
    align-items: center;
    justify-content: center;
    margin: 14px 0 18px;
    font-size: .96rem;
    line-height: 1.3;
}
.sj-journal-card__description {
    display: none !important;
}
.sj-journal-card__link {
    margin-top: auto;
}


/* =========================================================
   Scientific Journals 0.2.8.5
   - clearly visible approved card motifs
   - complete Scientific Journals identity on auth pages
   ========================================================= */

/* Card motifs: preserve a strong visual upper zone and a clean lower zone. */
.sj-journal-card::before {
    opacity: 1 !important;
    background-size: 100% auto !important;
    background-position: center top !important;
    filter: saturate(1.08) contrast(1.06) !important;
}
.sj-journal-card::after {
    background: linear-gradient(
        180deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,0) 24%,
        rgba(255,255,255,.06) 39%,
        rgba(255,255,255,.35) 54%,
        rgba(255,255,255,.83) 69%,
        rgba(255,255,255,.985) 82%,
        #fff 100%
    ) !important;
}
.sj-journal-card__logo {
    text-shadow: 0 1px 0 #fff, 0 0 14px rgba(255,255,255,.94) !important;
}
.sj-journal-card h3 {
    text-shadow: 0 1px 0 #fff, 0 0 9px rgba(255,255,255,.96) !important;
}

/* Hide the visible skip links while retaining keyboard accessibility. */
body.pkp_page_login a[href="#pkp_content_main"],
body.pkp_page_login a[href="#siteNav"],
body.pkp_page_login a[href="#siteFooter"],
body.pkp_page_user a[href="#pkp_content_main"],
body.pkp_page_user a[href="#siteNav"],
body.pkp_page_user a[href="#siteFooter"],
body.pkp_page_lostPassword a[href="#pkp_content_main"],
body.pkp_page_lostPassword a[href="#siteNav"],
body.pkp_page_lostPassword a[href="#siteFooter"] {
    position: fixed !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}
body.pkp_page_login a[href="#pkp_content_main"]:focus,
body.pkp_page_login a[href="#siteNav"]:focus,
body.pkp_page_login a[href="#siteFooter"]:focus,
body.pkp_page_user a[href="#pkp_content_main"]:focus,
body.pkp_page_user a[href="#siteNav"]:focus,
body.pkp_page_user a[href="#siteFooter"]:focus,
body.pkp_page_lostPassword a[href="#pkp_content_main"]:focus,
body.pkp_page_lostPassword a[href="#siteNav"]:focus,
body.pkp_page_lostPassword a[href="#siteFooter"]:focus {
    left: 16px !important;
    top: 12px !important;
    width: auto !important;
    height: auto !important;
    padding: 10px 14px !important;
    color: #fff !important;
    background: var(--sj-burgundy) !important;
    z-index: 9999 !important;
}

/* Replace the old site banner with the Scientific Journals portal identity. */
body.pkp_page_login .pkp_site_name img,
body.pkp_page_user .pkp_site_name img,
body.pkp_page_lostPassword .pkp_site_name img {
    display: none !important;
}
body.pkp_page_login .pkp_site_name a,
body.pkp_page_user .pkp_site_name a,
body.pkp_page_lostPassword .pkp_site_name a {
    display: grid !important;
    grid-template-columns: 54px auto;
    grid-template-rows: auto auto;
    column-gap: 15px;
    max-width: 510px;
    min-height: 58px;
    align-items: center;
}
body.pkp_page_login .pkp_site_name a::before,
body.pkp_page_user .pkp_site_name a::before,
body.pkp_page_lostPassword .pkp_site_name a::before {
    content: "Sj";
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    color: var(--sj-burgundy);
    font: 500 2.5rem/1 Georgia, "Times New Roman", serif;
    letter-spacing: -.08em;
}
body.pkp_page_login .pkp_site_name a::after,
body.pkp_page_user .pkp_site_name a::after,
body.pkp_page_lostPassword .pkp_site_name a::after {
    content: "SCIENTIFIC JOURNALS  ·  ХНПУ ІМЕНІ Г. С. СКОВОРОДИ";
    grid-column: 2;
    color: var(--sj-ink);
    font-size: .84rem;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: .08em;
}

.sj-auth-home-link {
    position: absolute;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid rgba(139,14,58,.24);
    border-radius: 6px;
    color: var(--sj-burgundy) !important;
    background: #fff;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none !important;
}
.sj-auth-home-link:hover,
.sj-auth-home-link:focus {
    color: #fff !important;
    background: var(--sj-burgundy);
    outline: none;
}
body.pkp_page_login .pkp_head_wrapper,
body.pkp_page_user .pkp_head_wrapper,
body.pkp_page_lostPassword .pkp_head_wrapper {
    position: relative;
}
@media (max-width: 760px) {
    .sj-auth-home-link { right: 14px; padding: 0 10px; }
    body.pkp_page_login .pkp_site_name a::after,
    body.pkp_page_user .pkp_site_name a::after,
    body.pkp_page_lostPassword .pkp_site_name a::after {
        content: "SCIENTIFIC JOURNALS";
        font-size: .76rem;
    }
}


/* =========================================================
   Scientific Journals 0.2.8.7
   - remove duplicated dashboard item
   - refined, more attractive authentication screens
   ========================================================= */

/* Richer but restrained portal background. */
body.pkp_page_login,
body.pkp_page_user,
body.pkp_page_lostPassword {
    background:
        radial-gradient(circle at 10% 16%, rgba(139,14,58,.10), transparent 28%),
        radial-gradient(circle at 91% 82%, rgba(205,111,145,.10), transparent 30%),
        repeating-radial-gradient(
            ellipse at 50% 48%,
            rgba(139,14,58,.025) 0,
            rgba(139,14,58,.025) 1px,
            transparent 1px,
            transparent 18px
        ),
        linear-gradient(135deg, #fff 0%, #fbf6f8 52%, #f7ebf0 100%) !important;
}

/* More polished header proportions. */
body.pkp_page_login .pkp_structure_head,
body.pkp_page_user .pkp_structure_head,
body.pkp_page_lostPassword .pkp_structure_head {
    background: rgba(255,255,255,.94) !important;
    backdrop-filter: blur(10px);
}
body.pkp_page_login .pkp_head_wrapper,
body.pkp_page_user .pkp_head_wrapper,
body.pkp_page_lostPassword .pkp_head_wrapper {
    min-height: 92px;
}

/* Elevated form card with a clear portal accent. */
body.pkp_page_login .pkp_structure_main,
body.pkp_page_user .pkp_structure_main,
body.pkp_page_lostPassword .pkp_structure_main {
    position: relative;
    overflow: hidden;
    padding: 44px 46px 46px !important;
    border: 1px solid rgba(139,14,58,.15) !important;
    border-radius: 18px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.995), rgba(255,255,255,.965)) !important;
    box-shadow:
        0 28px 80px rgba(78,25,47,.15),
        0 4px 16px rgba(19,34,56,.05) !important;
}
body.pkp_page_login .pkp_structure_main::before,
body.pkp_page_user .pkp_structure_main::before,
body.pkp_page_lostPassword .pkp_structure_main::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 6px;
    background: linear-gradient(90deg, var(--sj-burgundy), #c86a8d 58%, #ead3dd);
}
body.pkp_page_login .pkp_structure_main::after,
body.pkp_page_user .pkp_structure_main::after,
body.pkp_page_lostPassword .pkp_structure_main::after {
    content: "Sj";
    position: absolute;
    right: 28px;
    top: 24px;
    color: rgba(139,14,58,.055);
    font: 500 6.4rem/1 Georgia, "Times New Roman", serif;
    letter-spacing: -.09em;
    pointer-events: none;
}

/* Stronger heading hierarchy. */
body.pkp_page_login .pkp_structure_main h1,
body.pkp_page_user .pkp_structure_main h1,
body.pkp_page_lostPassword .pkp_structure_main h1 {
    position: relative;
    z-index: 1;
    margin-bottom: 34px !important;
    font-size: clamp(2.15rem, 4vw, 3rem) !important;
    letter-spacing: -.02em;
}
body.pkp_page_login .pkp_structure_main h1::before,
body.pkp_page_user .pkp_structure_main h1::before,
body.pkp_page_lostPassword .pkp_structure_main h1::before {
    content: "SCIENTIFIC JOURNALS";
    display: block;
    margin-bottom: 8px;
    color: var(--sj-burgundy);
    font-family: Arial, Helvetica, sans-serif;
    font-size: .69rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .18em;
}

/* Form spacing and interaction. */
body.pkp_page_login .field,
body.pkp_page_user .field,
body.pkp_page_lostPassword .field {
    margin-bottom: 22px !important;
}
body.pkp_page_login input[type="text"],
body.pkp_page_login input[type="email"],
body.pkp_page_login input[type="password"],
body.pkp_page_user input[type="text"],
body.pkp_page_user input[type="email"],
body.pkp_page_user input[type="password"],
body.pkp_page_user select,
body.pkp_page_lostPassword input[type="text"],
body.pkp_page_lostPassword input[type="email"] {
    min-height: 50px !important;
    border-color: #d9cbd1 !important;
    border-radius: 9px !important;
    background: #fff !important;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
body.pkp_page_login input:focus,
body.pkp_page_user input:focus,
body.pkp_page_user select:focus,
body.pkp_page_lostPassword input:focus {
    border-color: var(--sj-burgundy) !important;
    box-shadow: 0 0 0 4px rgba(139,14,58,.09) !important;
    transform: translateY(-1px);
}

/* Primary action looks deliberate and substantial. */
body.pkp_page_login button,
body.pkp_page_login input[type="submit"],
body.pkp_page_user button,
body.pkp_page_user input[type="submit"],
body.pkp_page_lostPassword button,
body.pkp_page_lostPassword input[type="submit"] {
    min-height: 48px !important;
    padding: 0 26px !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 24px rgba(139,14,58,.22) !important;
}

/* Secondary links and remember-me row. */
body.pkp_page_login .remember {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 17px !important;
}
body.pkp_page_login .remember input {
    width: 16px;
    height: 16px;
    accent-color: var(--sj-burgundy);
}
body.pkp_page_login .password a,
body.pkp_page_login .register a {
    font-weight: 650;
    text-underline-offset: 3px;
}

/* Language selector as compact pills instead of a raw list. */
body.pkp_page_login .pkp_block,
body.pkp_page_user .pkp_block,
body.pkp_page_lostPassword .pkp_block {
    max-width: 620px;
    margin: 24px auto 0 !important;
    padding: 18px 20px !important;
    border: 1px solid rgba(139,14,58,.10) !important;
    border-radius: 12px;
    background: rgba(255,255,255,.72);
}
body.pkp_page_login .pkp_block ul,
body.pkp_page_user .pkp_block ul,
body.pkp_page_lostPassword .pkp_block ul {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}
body.pkp_page_login .pkp_block li,
body.pkp_page_user .pkp_block li,
body.pkp_page_lostPassword .pkp_block li {
    margin: 0;
}
body.pkp_page_login .pkp_block a,
body.pkp_page_user .pkp_block a,
body.pkp_page_lostPassword .pkp_block a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(139,14,58,.16);
    border-radius: 999px;
    color: var(--sj-burgundy);
    background: #fff;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
}
body.pkp_page_login .pkp_block a:hover,
body.pkp_page_user .pkp_block a:hover,
body.pkp_page_lostPassword .pkp_block a:hover {
    color: #fff;
    background: var(--sj-burgundy);
}

/* Mobile refinements. */
@media (max-width: 680px) {
    body.pkp_page_login .pkp_structure_main,
    body.pkp_page_user .pkp_structure_main,
    body.pkp_page_lostPassword .pkp_structure_main {
        padding: 34px 22px 36px !important;
        border-radius: 14px !important;
    }
    body.pkp_page_login .pkp_structure_main::after,
    body.pkp_page_user .pkp_structure_main::after,
    body.pkp_page_lostPassword .pkp_structure_main::after {
        right: 12px;
        top: 28px;
        font-size: 4.6rem;
    }
}


/* Scientific Journals 0.2.9.1 — localized footer contact */
.sj-site-footer {
    grid-template-columns: auto minmax(220px, .8fr) minmax(300px, 1.35fr) auto;
    align-items: start;
}
.sj-site-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: var(--sj-muted);
    font-size: .76rem;
    line-height: 1.45;
}
.sj-site-footer__contact strong {
    color: var(--sj-ink);
    font-size: .82rem;
}
.sj-site-footer__contact a {
    width: fit-content;
    color: var(--sj-burgundy);
    font-weight: 700;
    text-decoration: none;
}
.sj-site-footer__contact a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 980px) {
    .sj-site-footer {
        grid-template-columns: 1fr 1fr;
    }
    .sj-site-footer__contact {
        grid-column: 1 / -1;
    }
    .sj-site-footer__copy {
        text-align: left;
    }
}
@media (max-width: 680px) {
    .sj-site-footer {
        grid-template-columns: 1fr;
    }
    .sj-site-footer__contact {
        grid-column: auto;
    }
}


/* Scientific Journals 0.2.9.1 — footer technical contact */
.sj-site-footer {
    grid-template-columns: auto minmax(210px, .75fr) minmax(330px, 1.45fr) auto;
}
.sj-site-footer__contacts {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(180px, .8fr);
    gap: 22px;
}
.sj-site-footer__contact-label {
    margin-bottom: 2px;
    color: var(--sj-burgundy);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.sj-site-footer__contact--technical {
    padding-left: 20px;
    border-left: 1px solid rgba(139,14,58,.16);
}
@media (max-width: 1100px) {
    .sj-site-footer__contacts {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .sj-site-footer__contact--technical {
        padding-top: 14px;
        padding-left: 0;
        border-top: 1px solid rgba(139,14,58,.16);
        border-left: 0;
    }
}
@media (max-width: 980px) {
    .sj-site-footer__contacts {
        grid-column: 1 / -1;
    }
}


/* Scientific Journals 0.2.9.2 — global administration entry */
.sj-account-menu__admin {
    border-top: 1px solid rgba(139,14,58,.12);
    color: var(--sj-burgundy) !important;
    font-weight: 750 !important;
}
.sj-account-menu__admin::before {
    content: "⚙";
    margin-right: .45rem;
    font-size: .9em;
}


/* =========================================================
   Scientific Journals 0.2.9.4 — linked HNPU identity in footer
   ========================================================= */
.sj-site-footer__identity {
    display: flex;
    align-items: center;
    gap: 24px;
    min-width: 0;
}
.sj-site-footer__university {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 9px 13px 9px 10px;
    border-radius: 12px;
    color: #fff !important;
    background: linear-gradient(135deg, #76062f, #a00d49);
    box-shadow: 0 8px 22px rgba(122, 6, 49, .17);
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease;
}
.sj-site-footer__university:hover,
.sj-site-footer__university:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(122, 6, 49, .25);
}
.sj-site-footer__university img {
    display: block;
    width: 52px;
    height: 52px;
    object-fit: contain;
    flex: 0 0 auto;
}
.sj-site-footer__university span {
    max-width: 112px;
    font-size: .7rem;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: .02em;
}
@media (max-width: 1180px) {
    .sj-site-footer__identity {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }
}
@media (max-width: 680px) {
    .sj-site-footer__university {
        width: fit-content;
    }
    .sj-site-footer__university img {
        width: 46px;
        height: 46px;
    }
}


/* Scientific Journals 0.2.9.5 — split top brand links */
.sj-brand__platform:focus-visible,
.sj-brand__university:focus-visible {
    outline: 3px solid rgba(139,14,58,.22);
    outline-offset: 5px;
    border-radius: 4px;
}
@media (max-width: 980px) {
    .sj-brand__platform { gap: 16px; }
}
@media (max-width: 680px) {
    .sj-brand__platform { align-items:flex-start; gap:14px; }
}


/* =========================================================
   Scientific Journals 0.2.9.6 — journal catalogue groups
   ========================================================= */
.sj-journal-group {
    margin-top: 28px;
    padding: clamp(22px, 2.4vw, 34px);
    border: 1px solid #e8e3e5;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 34px rgba(16, 24, 40, .045);
}

.sj-journal-group--external {
    background:
        linear-gradient(135deg, rgba(139, 14, 58, .035), transparent 44%),
        #fff;
}

.sj-journal-group--platform {
    background:
        linear-gradient(135deg, rgba(25, 69, 115, .03), transparent 44%),
        #fff;
}

.sj-journal-group__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 22px;
}

.sj-journal-group__heading > div {
    min-width: 0;
}

.sj-journal-group__eyebrow {
    margin: 0 0 7px;
    color: var(--sj-burgundy);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .13em;
}

.sj-journal-group__heading h3 {
    margin: 0;
    color: var(--sj-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    font-weight: 500;
    line-height: 1.2;
}

.sj-journal-group__heading > p {
    max-width: 570px;
    margin: 0;
    color: var(--sj-muted);
    font-size: .86rem;
    line-height: 1.55;
    text-align: right;
}

.sj-journal-grid--external {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.sj-journal-grid--platform {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.sj-journal-card__badge {
    position: absolute !important;
    top: 12px;
    right: 12px;
    max-width: calc(100% - 24px);
    padding: 5px 8px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    color: #4a2633;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 3px 12px rgba(16, 24, 40, .08);
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1.2;
    text-transform: uppercase;
    backdrop-filter: blur(5px);
}

.sj-journal-card--platform .sj-journal-card__badge {
    color: #244666;
}

.sj-journal-card--external,
.sj-journal-card--platform {
    min-width: 0;
}

@media (max-width: 1350px) {
    .sj-journal-grid--external,
    .sj-journal-grid--platform {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .sj-journal-group__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
    .sj-journal-group__heading > p {
        max-width: 680px;
        text-align: left;
    }
    .sj-journal-grid--external,
    .sj-journal-grid--platform {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .sj-journal-group {
        margin-top: 20px;
        padding: 18px 14px;
        border-radius: 10px;
    }
    .sj-journal-grid--external,
    .sj-journal-grid--platform {
        grid-template-columns: 1fr;
    }
}
