:root {
    color-scheme: light;
    --primary-color: #173f67;
    --primary-ink: #0b2038;
    --primary-soft: #e9f1f8;
    --primary-soft-strong: #d6e5f2;
    --accent-color: #b98b35;
    --accent-soft: #f5ebd9;
    --sage-color: #5a735e;
    --text-color: #1f2a37;
    --heading-color: #101c2e;
    --muted-color: #667085;
    --muted-strong: #475467;
    --border-color: #dbe4ee;
    --border-subtle: rgba(20, 34, 52, 0.1);
    --background-color: #f5f7fa;
    --surface-color: #ffffff;
    --paper-color: #fbfaf7;
    --surface-glass: rgba(255, 255, 255, 0.78);
    --success-color: #1f6b3b;
    --warning-color: #9a6700;
    --header-height-expanded: 96px;
    --header-height-compact: 64px;
    --header-dark: #050b14;
    --overlay-color: rgba(6, 12, 22, 0.62);
    --sidebar-width: min(22rem, 92vw);
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 8px;
    --radius-xl: 8px;
    --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
    --shadow-sm: 0 10px 28px rgba(15, 23, 42, 0.07);
    --shadow-md: 0 22px 55px rgba(15, 23, 42, 0.11);
    --shadow-lg: 0 34px 90px rgba(7, 16, 31, 0.2);
    --ease-premium: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
    --font-size-base: 16px;
}

html {
    font-size: var(--font-size-base);
    scroll-behavior: smooth;
}

body {
    background:
        linear-gradient(180deg, rgba(245, 247, 250, 0.92) 0%, rgba(251, 250, 247, 0.76) 44%, rgba(245, 247, 250, 0.98) 100%),
        var(--background-color);
    color: var(--text-color);
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.sidebar-open {
    overflow: hidden;
}

::selection {
    background-color: rgba(185, 139, 53, 0.22);
    color: var(--heading-color);
}

h1,
h2,
h3,
h4,
.font-serif {
    color: var(--heading-color);
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-weight: 650;
    letter-spacing: 0;
}

h1,
h2,
h3,
h4 {
    line-height: 1.12;
}

p {
    line-height: 1.75;
}

a {
    color: var(--primary-color);
    text-underline-offset: 0.18em;
    transition: color 0.22s var(--ease-standard), text-decoration-color 0.22s var(--ease-standard);
}

a:hover {
    color: #0f3152;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus,
.form-select:focus {
    border-color: rgba(185, 139, 53, 0.64);
    box-shadow: 0 0 0 0.22rem rgba(185, 139, 53, 0.18);
    outline: 0;
}

.bg-paper {
    background-color: var(--paper-color);
}

.text-muted-portal {
    color: var(--muted-color);
}

.brand-wordmark {
    color: var(--primary-color);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.page-kicker {
    color: var(--accent-color);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.35;
    text-transform: uppercase;
}

.section-block {
    padding-block: 4.75rem;
}

.section-header {
    gap: 1.5rem;
}

.section-heading {
    font-size: 2rem;
    /* max-width: 13ch; */
}

.section-lede {
    color: var(--muted-strong);
    font-size: 1.05rem;
    max-width: 44rem;
}

/* .container {
    margin-inline: auto;
    max-width: 1180px;
    padding-inline: 1rem;
    width: 100%;
} */

img {
    max-width: 100%;
}

.row {
    --portal-gutter-x: 1.5rem;
    --portal-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-inline: calc(-0.5 * var(--portal-gutter-x));
    margin-top: calc(-1 * var(--portal-gutter-y));
}

.row > * {
    flex-shrink: 0;
    margin-top: var(--portal-gutter-y);
    max-width: 100%;
    padding-inline: calc(0.5 * var(--portal-gutter-x));
    width: 100%;
}

.g-2 {
    --portal-gutter-x: 0.5rem;
    --portal-gutter-y: 0.5rem;
}

.g-3 {
    --portal-gutter-x: 1rem;
    --portal-gutter-y: 1rem;
}

.g-4 {
    --portal-gutter-x: 1.5rem;
    --portal-gutter-y: 1.5rem;
}

.col-6 {
    flex: 0 0 auto;
    width: 50%;
}

.d-flex {
    display: flex;
}

.d-grid {
    display: grid;
}

.d-none {
    display: none !important;
}

.align-items-start {
    align-items: flex-start;
}

.align-items-center {
    align-items: center;
}

.align-items-end {
    align-items: flex-end;
}

.justify-content-start {
    justify-content: flex-start;
}

.justify-content-between {
    justify-content: space-between;
}

.justify-content-center {
    justify-content: center;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-3 {
    gap: 1rem;
}

.gap-4 {
    gap: 1.5rem;
}

.w-100 {
    width: 100%;
}

.h-100 {
    height: 100%;
}

.p-3 {
    padding: 1rem !important;
}

.p-4 {
    padding: 1.5rem !important;
}

.py-5 {
    padding-block: 3rem !important;
}

.pb-5 {
    padding-bottom: 3rem !important;
}

.mt-2 {
    margin-top: 0.5rem !important;
}

.mt-4 {
    margin-top: 1.5rem !important;
}

.mt-5 {
    margin-top: 3rem !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-1 {
    margin-bottom: 0.25rem !important;
}

.mb-2 {
    margin-bottom: 0.5rem !important;
}

.mb-3 {
    margin-bottom: 1rem !important;
}

.mb-4 {
    margin-bottom: 1.5rem !important;
}

.text-decoration-none {
    text-decoration: none !important;
}

.fw-semibold {
    font-weight: 700 !important;
}

.small,
small {
    font-size: 0.875rem;
}

.lead {
    font-size: 1.15rem;
    line-height: 1.72;
}

.text-muted {
    color: var(--muted-color) !important;
}

.text-end {
    text-align: end !important;
}

.list-unstyled {
    list-style: none;
    padding-left: 0;
}

.nav {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin-bottom: 0;
    padding-left: 0;
}

.nav-link {
    background: none;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: block;
    text-decoration: none;
}

.tab-content > .tab-pane {
    display: none;
}

.tab-content > .active {
    display: block;
}

.fade {
    opacity: 0;
    transition: opacity 0.2s linear;
}

.fade.show {
    opacity: 1;
}

.collapse:not(.show) {
    display: none;
}

.dropdown {
    position: relative;
}

.dropdown-menu {
    left: 0;
    position: absolute;
    top: 100%;
    z-index: 1000;
}

.dropdown-menu-end {
    left: auto;
    right: 0;
}

.visually-hidden {
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}

.brightness-0 {
    filter: brightness(0) invert(1) !important;
}

.brightness-100 {
    filter: brightness(1) invert(0) !important;
}

.table > thead {
  vertical-align: middle;
  text-align: center;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1040;
}

.portal-home .site-header {
    left: 0;
    position: fixed;
    right: 0;
}

.site-header-shell {
    background-color: rgba(255, 255, 255, 0.88);
    border-bottom: 1px solid rgba(219, 228, 238, 0.72);
    box-shadow: 0 8px 32px rgba(15, 23, 42, 0.055);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    transition:
        background-color 0.35s var(--ease-standard),
        border-color 0.35s var(--ease-standard),
        box-shadow 0.35s var(--ease-standard),
        backdrop-filter 0.35s var(--ease-standard);
}

.portal-home .site-header:not(.is-scrolled) .site-header-shell {
    background-color: rgba(4, 10, 19, 0.38);
    border-color: rgba(255, 255, 255, 0.13);
    box-shadow: none;
}

.site-header-row {
    align-items: center;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr auto 1fr;
    min-height: var(--header-height-expanded);
    transition: min-height 0.35s var(--ease-premium);
}

.site-header-left,
.site-header-right {
    align-items: center;
    display: flex;
    gap: 0.75rem;
}

.site-header-right {
    justify-content: flex-end;
}

.site-header-center {
    display: flex;
    justify-content: center;
}

.site-logo {
    align-items: center;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    transition: transform 0.35s var(--ease-premium);
}

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

.site-logo-mark {
    color: var(--primary-color);
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 2.45rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1;
    text-transform: uppercase;
    transition: color 0.35s var(--ease-standard), font-size 0.35s var(--ease-premium);
}

.site-logo-subtitle {
    color: var(--muted-color);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    margin-top: 0.42rem;
    text-transform: uppercase;
    transition: color 0.35s var(--ease-standard), opacity 0.35s var(--ease-standard), margin-top 0.35s var(--ease-premium);
}

.portal-home .site-header:not(.is-scrolled) .site-logo-mark,
.portal-home .site-header:not(.is-scrolled) .site-logo-subtitle,
.portal-home .site-header:not(.is-scrolled) .site-header-right .dropdown-toggle,
.portal-home .site-header:not(.is-scrolled) .header-action-button,
.portal-home .site-header:not(.is-scrolled) .header-icon-button {
    color: #ffffff;
}

.portal-home .site-header:not(.is-scrolled) .site-logo-subtitle {
    color: rgba(255, 255, 255, 0.76);
}

.header-action-button,
.header-icon-button {
    min-height: 44px;
}

.header-action-button {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0.01em;
    padding-inline: 1.05rem;
    transition:
        background-color 0.24s var(--ease-standard),
        border-color 0.24s var(--ease-standard),
        color 0.24s var(--ease-standard),
        transform 0.24s var(--ease-premium),
        box-shadow 0.24s var(--ease-standard);
}

.header-action-button:hover {
    transform: translateY(-1px);
}

.header-icon-button {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.74);
    border: 1px solid var(--border-color);
    border-radius: 999px;
    color: var(--text-color);
    display: inline-flex;
    height: 44px;
    justify-content: center;
    transition:
        background-color 0.24s var(--ease-standard),
        border-color 0.24s var(--ease-standard),
        color 0.24s var(--ease-standard),
        transform 0.24s var(--ease-premium),
        box-shadow 0.24s var(--ease-standard);
    width: 44px;
}

.portal-home .site-header:not(.is-scrolled) .header-icon-button,
.portal-home .site-header:not(.is-scrolled) .header-action-button.btn-outline-secondary,
.portal-home .site-header:not(.is-scrolled) .site-header-right .dropdown-toggle {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.2);
}

.header-icon-button:hover,
.header-icon-button:focus-visible {
    background-color: #ffffff;
    border-color: rgba(23, 63, 103, 0.24);
    box-shadow: var(--shadow-xs);
    color: var(--primary-color);
    transform: translateY(-1px);
}

.portal-home .site-header:not(.is-scrolled) .header-icon-button:hover,
.portal-home .site-header:not(.is-scrolled) .header-action-button.btn-outline-secondary:hover,
.portal-home .site-header:not(.is-scrolled) .site-header-right .dropdown-toggle:hover {
    background-color: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.34);
    color: #ffffff;
}

.header-icon-hamburger {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    width: 18px;
}

.header-icon-hamburger span {
    background-color: currentColor;
    border-radius: 999px;
    display: block;
    height: 2px;
    width: 100%;
}

.header-icon-svg {
    fill: none;
    height: 18px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 18px;
}

.site-logo-image {
    height: 60px;
    width: auto;
    filter: brightness(1) invert(0);
    transition: height 0.3s ease, filter 0.3s ease;
}

.site-header.is-scrolled .site-header-shell {
    background-color: rgba(5, 11, 20, 0.88);
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 15px 46px rgba(0, 0, 0, 0.24);
}

.site-header.is-scrolled .site-header-row {
    min-height: var(--header-height-compact);
}

.site-header.is-scrolled .site-logo-mark,
.site-header.is-scrolled .site-logo-subtitle,
.site-header.is-scrolled .site-header-right .dropdown-toggle,
.site-header.is-scrolled .header-action-button,
.site-header.is-scrolled .header-icon-button {
    color: #ffffff;
}

.site-header.is-scrolled .site-logo-image {
    height: 54px;
    filter: brightness(0) invert(1);
}

.site-header.is-scrolled .site-logo-mark {
    font-size: 1.55rem;
}

.site-header.is-scrolled .site-logo-subtitle {
    color: rgba(255, 255, 255, 0.72);
    margin-top: 0.2rem;
}

.site-header.is-scrolled .header-icon-button,
.site-header.is-scrolled .header-action-button.btn-outline-secondary,
.site-header.is-scrolled .site-header-right .dropdown-toggle {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.site-header.is-scrolled .header-icon-button:hover,
.site-header.is-scrolled .header-action-button.btn-outline-secondary:hover,
.site-header.is-scrolled .site-header-right .dropdown-toggle:hover {
    background-color: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.34);
    color: #ffffff;
}

.dropdown-menu {
    background-color: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(219, 228, 238, 0.86);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    display: none;
    margin-top: 0.75rem;
    min-width: 11rem;
    padding: 0.55rem;
}

.dropdown-menu.show {
    display: block;
}

.dropdown-item {
    border-radius: 8px;
    color: var(--text-color);
    font-size: 0.92rem;
    font-weight: 600;
    padding: 0.65rem 0.75rem;
    transition: background-color 0.2s var(--ease-standard), color 0.2s var(--ease-standard);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--primary-soft);
    color: var(--primary-color);
}

.portal-sidebar-overlay {
    background: rgba(6, 12, 22, 0.58);
    inset: 0;
    opacity: 0;
    position: fixed;
    transition: opacity 0.3s var(--ease-standard);
    z-index: 1080;
}

.portal-sidebar-overlay.is-visible {
    opacity: 1;
}

.portal-sidebar-drawer {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(251, 250, 247, 0.98)),
        var(--surface-color);
    box-shadow: 24px 0 70px rgba(15, 23, 42, 0.2);
    display: flex;
    flex-direction: column;
    height: 100vh;
    left: 0;
    max-width: var(--sidebar-width);
    position: fixed;
    top: 0;
    transform: translateX(-102%);
    transition: transform 0.42s var(--ease-premium);
    width: 100%;
    z-index: 1090;
}

.portal-sidebar-drawer.is-open {
    transform: translateX(0);
}

.portal-sidebar-header {
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    justify-content: space-between;
    padding: 1.35rem 1.35rem 1.15rem;
}

.portal-sidebar-body {
    overflow-y: auto;
    padding: 1.35rem;
}

.portal-sidebar-search .form-label {
    color: var(--heading-color);
}

/* .portal-sidebar-actions {
    background-color: rgba(233, 241, 248, 0.55);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: 0.75rem;
} */

.portal-sidebar-actions .btn {
    gap: 0.55rem;
    min-height: 46px;
}

.portal-sidebar-actions .btn i {
    font-size: 1rem;
    line-height: 1;
}

.portal-sidebar-search .form-control,
.form-control,
.form-select {
    border-color: var(--border-color);
    border-radius: var(--radius-sm);
}

.portal-sidebar-search .form-control {
    min-height: 50px;
}

.portal-sidebar-accordion .accordion-item {
    background-color: rgba(255, 255, 255, 0.76);
    /* border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs); */
    margin-bottom: 0.75rem;
    overflow: hidden;
    border: none;
    border-bottom: 1px solid var(--border-subtle);
}

.portal-sidebar-accordion .accordion-button {
    background-color: transparent;
    color: var(--heading-color);
    font-weight: normal;
    padding: 1rem 1.05rem;
}

.portal-sidebar-accordion .accordion-button:not(.collapsed) {
    /* background-color: var(--primary-soft); */
    box-shadow: none;
    color: var(--primary-color);
    font-weight: bold;
    border-bottom: 1px solid var(--border-subtle);
}

.portal-sidebar-accordion .accordion-button:focus {
    box-shadow: none;
}

.sidebar-link-list li + li {
    margin-top: 0.55rem;
}

.sidebar-link-list a {
    color: var(--text-color);
    font-size: 0.94rem;
    font-weight: normal;
    text-decoration: none;
}

.sidebar-link-list a::before {
    content: "\F234";
    margin-right: 0.5rem;
    font-family: "bootstrap-icons";
}

.sidebar-link-list a:hover {
    color: var(--primary-color);
}

.btn {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0.01em;
    line-height: 1.5;
    padding: 0.6rem 1.05rem;
    text-decoration: none;
    transition:
        background-color 0.24s var(--ease-standard),
        border-color 0.24s var(--ease-standard),
        color 0.24s var(--ease-standard),
        transform 0.24s var(--ease-premium),
        box-shadow 0.24s var(--ease-standard);
}

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

.btn-sm {
    font-size: 0.86rem;
    padding: 0.44rem 0.8rem;
}

.form-control,
.form-select {
    background-color: #ffffff;
    border: 1px solid var(--border-color);
    color: var(--text-color);
    display: block;
    font: inherit;
    padding: 0.68rem 0.85rem;
    width: 100%;
}

.portal-button-primary,
.btn-journal {
    background: linear-gradient(135deg, #17446f 0%, #0f3152 100%);
    border-color: rgba(23, 63, 103, 0.94);
    box-shadow: 0 10px 24px rgba(23, 63, 103, 0.16);
    color: #ffffff;
}

.portal-button-primary:hover,
.portal-button-primary:focus,
.btn-journal:hover,
.btn-journal:focus {
    background: linear-gradient(135deg, #0f3152 0%, #0a243f 100%);
    border-color: #0f3152;
    box-shadow: 0 16px 36px rgba(23, 63, 103, 0.22);
    color: #ffffff;
}

.portal-button-soft,
.btn-soft {
    background-color: var(--primary-soft);
    border-color: var(--primary-soft);
    color: var(--primary-color);
}

.portal-button-soft:hover,
.portal-button-soft:focus,
.btn-soft:hover,
.btn-soft:focus {
    background-color: var(--primary-soft-strong);
    border-color: var(--primary-soft-strong);
    color: #0f3152;
}

.btn-outline-secondary {
    background-color: rgba(255, 255, 255, 0.72);
    border-color: rgba(102, 112, 133, 0.24);
    color: var(--muted-strong);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    background-color: var(--primary-soft);
    border-color: rgba(23, 63, 103, 0.24);
    color: var(--primary-color);
}

.portal-card,
.hero-panel,
.content-panel,
.journal-card,
.article-list-item,
.sidebar-panel,
.metric-panel,
.submission-step,
.dashboard-card,
.card {
    background-color: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
}

.shadow-soft {
    box-shadow: var(--shadow-sm);
}

.content-panel {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(251, 250, 247, 0.9)),
        var(--surface-color);
    box-shadow: var(--shadow-sm);
}

.journal-profile-banner {
    background-color: var(--surface-color);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    height: clamp(12rem, 28vw, 24rem);
    overflow: hidden;
}

.journal-profile-banner img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.journal-classification-list {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 0;
    padding-left: 1.25rem;
    text-align: left;
}

.journal-classification-list li {
    padding-left: 0.25rem;
}

.hero-search .form-control,
.hero-search .btn,
.submission-form .form-control,
.submission-form .form-select,
.submission-form .form-control:focus,
.submission-form .form-select:focus {
    min-height: 52px;
}

.journal-card,
.article-list-item,
.list-group-item,
.card {
    transition:
        border-color 0.28s var(--ease-standard),
        box-shadow 0.28s var(--ease-standard),
        transform 0.28s var(--ease-premium),
        background-color 0.28s var(--ease-standard);
}

.journal-card {
    isolation: isolate;
    overflow: hidden;
    position: relative;
}

.journal-card::before {
    background: linear-gradient(90deg, var(--accent-color), rgba(23, 63, 103, 0.72));
    content: "";
    height: 3px;
    inset: 0 0 auto;
    opacity: 0;
    position: absolute;
    transform: scaleX(0.35);
    transform-origin: left;
    transition: opacity 0.28s var(--ease-standard), transform 0.32s var(--ease-premium);
    z-index: 1;
}

.journal-card:hover,
.article-list-item:hover,
.list-group-item:hover,
.card:hover {
    border-color: rgba(23, 63, 103, 0.2);
    box-shadow: var(--shadow-sm);
    transform: translateY(-3px);
}

.journal-card:hover::before {
    opacity: 1;
    transform: scaleX(1);
}

.contact-page {
    background:
        linear-gradient(180deg, rgba(232, 239, 246, 0.55) 0%, rgba(251, 250, 247, 0.86) 42%, rgba(245, 247, 250, 0.94) 100%);
}

.contact-hero {
    align-items: stretch;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1.35fr) minmax(19rem, 0.65fr);
    margin-bottom: 2rem;
}

.contact-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.contact-hero-actions .btn,
.contact-form .btn {
    align-items: center;
    display: inline-flex;
    gap: 0.5rem;
    justify-content: center;
}

.contact-response-panel,
.contact-route-card,
.contact-info-card {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(251, 250, 247, 0.9)),
        var(--surface-color);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
}

.contact-response-panel {
    display: grid;
    gap: 0;
    overflow: hidden;
}

.contact-response-item {
    display: grid;
    gap: 0.35rem;
    padding: 1.25rem;
}

.contact-response-item + .contact-response-item {
    border-top: 1px solid var(--border-subtle);
}

.contact-response-item span {
    color: var(--muted-color);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
}

.contact-response-item strong {
    color: var(--heading-color);
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    line-height: 1.1;
}

.contact-route-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact-route-card {
    overflow: hidden;
    padding: 1.35rem;
    position: relative;
}

.contact-route-card::before {
    background: linear-gradient(90deg, var(--accent-color), rgba(23, 63, 103, 0.72));
    content: "";
    height: 3px;
    inset: 0 0 auto;
    position: absolute;
}

.contact-route-icon {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(23, 63, 103, 0.1), rgba(185, 139, 53, 0.14)),
        #ffffff;
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    color: var(--primary-color);
    display: inline-flex;
    font-size: 1.28rem;
    height: 3rem;
    justify-content: center;
    margin-bottom: 1rem;
    width: 3rem;
}

.contact-route-card a {
    font-size: 0.9rem;
    font-weight: 800;
    text-decoration: none;
}

.contact-form-panel {
    overflow: hidden;
}

.contact-form-header {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
}

.contact-form .form-control,
.contact-form .form-select {
    background-color: rgba(255, 255, 255, 0.82);
    border-color: rgba(102, 112, 133, 0.22);
}

.contact-form textarea.form-control {
    min-height: 10rem;
}

.contact-sidebar-stack {
    display: grid;
    gap: 1rem;
    position: sticky;
    top: calc(var(--header-height-compact) + 1.25rem);
}

.contact-info-card {
    transition: border-color 0.28s var(--ease-standard), box-shadow 0.28s var(--ease-standard), transform 0.28s var(--ease-premium);
}

.contact-info-card:hover {
    border-color: rgba(23, 63, 103, 0.2);
    box-shadow: var(--shadow-sm);
    transform: translateY(-3px);
}

.contact-info-link {
    align-items: flex-start;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-color);
    display: flex;
    gap: 0.85rem;
    padding-block: 0.95rem;
    text-decoration: none;
}

.contact-info-link:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.contact-info-link:last-child {
    padding-bottom: 0;
}

.contact-info-link i {
    align-items: center;
    background-color: var(--primary-soft);
    border-radius: 999px;
    color: var(--primary-color);
    display: inline-flex;
    flex: 0 0 auto;
    height: 2.35rem;
    justify-content: center;
    width: 2.35rem;
}

.contact-info-link strong {
    color: var(--heading-color);
    display: block;
    font-size: 0.84rem;
    line-height: 1.35;
}

.contact-checklist {
    display: grid;
    gap: 0.8rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.contact-checklist li {
    align-items: flex-start;
    color: var(--muted-strong);
    display: flex;
    font-size: 0.92rem;
    gap: 0.62rem;
    line-height: 1.45;
}

.contact-checklist i {
    color: var(--sage-color);
    flex: 0 0 auto;
    font-size: 1.05rem;
    line-height: 1.35;
}

.article-tracker-page {
    background:
        linear-gradient(180deg, rgba(232, 239, 246, 0.58), rgba(251, 250, 247, 0.9) 44%, rgba(245, 247, 250, 0.96));
}

.article-tracker-hero {
    align-items: stretch;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1.25fr) minmax(21rem, 0.75fr);
    margin-bottom: 2rem;
}

.article-tracker-examples {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.article-tracker-examples span {
    background-color: rgba(255, 255, 255, 0.78);
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    color: var(--muted-strong);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 0.48rem 0.72rem;
}

.article-tracker-search,
.tracker-help-card {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(251, 250, 247, 0.9)),
        var(--surface-color);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
}

.article-tracker-search {
    align-self: start;
    display: grid;
    gap: 0.9rem;
    padding: 1.35rem;
}

.article-tracker-input-row {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.article-tracker-input-row .form-control,
.article-tracker-input-row .btn {
    min-height: 52px;
}

.tracker-result-panel,
.tracker-empty-state {
    margin-bottom: 1.5rem;
}

.tracker-result-header {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
}

.tracker-status-badge {
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.2;
    padding: 0.58rem 0.8rem;
    text-align: center;
}

.tracker-status-badge.is-neutral {
    background-color: var(--primary-soft);
    color: var(--primary-color);
}

.tracker-status-badge.is-review {
    background-color: #eaf1fb;
    color: #17446f;
}

.tracker-status-badge.is-warning {
    background-color: #fff4db;
    color: var(--warning-color);
}

.tracker-status-badge.is-success {
    background-color: #e7f6ec;
    color: var(--success-color);
}

.tracker-status-badge.is-danger {
    background-color: #fdecec;
    color: #9f1d1d;
}

.tracker-meta-grid {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 1.5rem;
}

.tracker-meta-grid div {
    background-color: rgba(233, 241, 248, 0.58);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    min-width: 0;
    padding: 0.9rem;
}

.tracker-meta-grid span {
    color: var(--muted-color);
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.tracker-meta-grid strong {
    color: var(--heading-color);
    display: block;
    font-size: 0.94rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.tracker-current-note,
.tracker-privacy-note {
    background-color: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
}

.tracker-current-note {
    margin-bottom: 1.5rem;
    padding: 1.15rem;
}

.tracker-timeline {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin-bottom: 1.5rem;
}

.tracker-timeline-step {
    color: var(--muted-color);
    display: grid;
    gap: 0.38rem;
    min-width: 0;
    padding-top: 1.1rem;
    position: relative;
    text-align: center;
}

.tracker-timeline-step::before {
    background-color: var(--border-color);
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0.36rem;
}

.tracker-timeline-step:first-child::before {
    left: 50%;
}

.tracker-timeline-step:last-child::before {
    right: 50%;
}

.tracker-timeline-dot {
    background-color: #ffffff;
    border: 2px solid var(--border-color);
    border-radius: 999px;
    height: 0.8rem;
    left: 50%;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 0.8rem;
    z-index: 1;
}

.tracker-timeline-step strong {
    color: var(--muted-strong);
    font-size: 0.8rem;
    line-height: 1.25;
}

.tracker-timeline-step small {
    font-size: 0.72rem;
    line-height: 1.3;
}

.tracker-timeline-step.is-complete::before,
.tracker-timeline-step.is-current::before {
    background-color: rgba(23, 63, 103, 0.58);
}

.tracker-timeline-step.is-complete .tracker-timeline-dot,
.tracker-timeline-step.is-current .tracker-timeline-dot {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.tracker-timeline-step.is-current strong {
    color: var(--primary-color);
}

.tracker-privacy-note {
    align-items: flex-start;
    color: var(--muted-strong);
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
}

.tracker-privacy-note i {
    color: var(--sage-color);
    flex: 0 0 auto;
    font-size: 1.2rem;
    line-height: 1.45;
}

.tracker-empty-state {
    align-items: flex-start;
    display: grid;
    justify-items: start;
}

.tracker-empty-icon,
.tracker-help-icon {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(23, 63, 103, 0.1), rgba(185, 139, 53, 0.14)),
        #ffffff;
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    color: var(--primary-color);
    display: inline-flex;
    justify-content: center;
}

.tracker-empty-icon {
    font-size: 1.45rem;
    height: 3.4rem;
    margin-bottom: 1rem;
    width: 3.4rem;
}

.tracker-help-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tracker-help-card {
    padding: 1.35rem;
}

.tracker-help-icon {
    font-size: 1.18rem;
    height: 3rem;
    margin-bottom: 1rem;
    width: 3rem;
}

.journal-card .page-kicker {
    color: var(--sage-color);
}

.journal-card h3 a,
.list-group-item h3 a {
    color: var(--heading-color);
    text-decoration: none;
}

.journal-card h3 a:hover,
.list-group-item h3 a:hover {
    color: var(--primary-color);
}

.journal-card img {
    border-radius: var(--radius-sm);
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.09);
}

.journal-card .d-flex.gap-2 {
    flex-wrap: wrap;
}

.article-meta-line,
.small-meta {
    color: var(--muted-color);
    font-size: 0.75rem;
    line-height: 1.25;
}

.portal-sidebar {
    top: 5.5rem;
}

.portal-article-layout p,
.portal-article-layout li {
    line-height: 1.82;
}

.portal-article-meta {
    border-bottom: 1px solid var(--border-color);
    border-top: 1px solid var(--border-color);
}

.tab-shell .nav-link {
    color: var(--muted-color);
    font-weight: normal;
    font-size: 0.92rem;
}

.tab-shell .nav-link.active {
    background-color: var(--surface-color);
    border-color: var(--border-color) var(--border-color) var(--surface-color);
    color: var(--primary-color);
}

.status-badge {
    border-radius: 999px;
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 0.45rem 0.7rem;
}

.status-under-review {
    background-color: var(--primary-soft);
    color: var(--primary-color);
}

.status-revision {
    background-color: #fff4db;
    color: var(--warning-color);
}

.status-accepted {
    background-color: #e7f6ec;
    color: var(--success-color);
}

.dashboard-sidebar .nav-link {
    border-radius: var(--radius-sm);
    color: var(--text-color);
    font-weight: 700;
    padding: 0.75rem 0.9rem;
}

.dashboard-sidebar .nav-link.active,
.dashboard-sidebar .nav-link:hover {
    background-color: var(--primary-soft);
    color: var(--primary-color);
}

.metric-value {
    color: var(--primary-color);
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
}

.metric-label {
    color: var(--muted-color);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.citation-box {
    background-color: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
}

.is-copied {
    background-color: #e7f6ec;
    border-color: #b6e0c4;
    color: var(--success-color);
}

.list-group-item {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
}

.pagination {
    gap: 0.35rem;
}

.page-link {
    border-color: var(--border-color);
    border-radius: 999px;
    color: var(--primary-color);
    font-weight: 700;
    min-width: 2.4rem;
    text-align: center;
}

.active > .page-link,
.page-link.active {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

/* .hero-slider-section {
    background-color: #07101d;
    padding-bottom: 4.5rem;
} */

.slick-dotted.slick-slider {
    margin-bottom: 0;
}

.hero-slider {
    background-color: #07101d;
    overflow: hidden;
    margin-top: 96.8px;
}

.hero-slider:not(.slick-initialized) .hero-slide:not(:first-child) {
    display: none;
}

.hero-slide {
    /* min-height: 760px; */
    width: 100%;
    aspect-ratio: 4 / 1;
    position: relative;
}

/* .hero-slide::after {
    background:
        linear-gradient(180deg, rgba(5, 10, 18, 0.22) 0%, rgba(5, 10, 18, 0.14) 38%, rgba(5, 10, 18, 0.58) 100%),
        linear-gradient(90deg, rgba(5, 10, 18, 0.92) 0%, rgba(5, 10, 18, 0.68) 42%, rgba(5, 10, 18, 0.24) 100%);
    content: "";
    inset: 0;
    position: absolute;
    z-index: 1;
} */

.hero-slide-media,
.hero-slide-media img,
.hero-slide-overlay {
    inset: 0;
    position: absolute;
}

.hero-slide-media {
    overflow: hidden;
}

.hero-slide-media img {
    width: 100%;
    /* aspect-ratio: 3 / 1; */
    height: 100%;
    object-fit: cover;
    /* transform: scale(1.045); */
}

.hero-slide-overlay {
    background:
        radial-gradient(circle at 20% 50%, rgba(185, 139, 53, 0.13), transparent 32%),
        linear-gradient(90deg, rgba(6, 10, 18, 0.84), rgba(6, 10, 18, 0.34));
    z-index: 1;
}

.hero-slide-content {
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* min-height: 690px;
    padding-bottom: 5rem;
    padding-top: 11rem; */
    position: relative;
    z-index: 2;
    display: none;
}

.hero-slide-content .page-kicker {
    color: rgba(246, 224, 184, 0.86);
}

.hero-slide-title {
    color: #ffffff;
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 3.75rem;
    line-height: 1.04;
    max-width: 24ch;
    text-wrap: balance;
}

.hero-slide-text {
    color: rgba(255, 255, 255, 0.83);
    font-size: 1.08rem;
    line-height: 1.8;
    max-width: 46rem;
}

.hero-slide-button {
    align-self: flex-start;
    min-width: 10.5rem;
    padding-block: 0.8rem;
}

/* .hero-slider .slick-current .hero-slide-media img {
    animation: heroKenBurns 7200ms var(--ease-premium) both;
} */

.hero-slider .slick-current .page-kicker,
.hero-slider .slick-current .hero-slide-title,
.hero-slider .slick-current .hero-slide-text,
.hero-slider .slick-current .hero-slide-button {
    animation: heroTextReveal 900ms var(--ease-premium) both;
}

.hero-slider .slick-current .hero-slide-title {
    animation-delay: 90ms;
}

.hero-slider .slick-current .hero-slide-text {
    animation-delay: 170ms;
}

.hero-slider .slick-current .hero-slide-button {
    animation-delay: 250ms;
}

.hero-slider .slick-dots {
    align-items: center;
    bottom: 2rem;
    display: flex;
    justify-content: center;
}

.hero-slider .slick-dots li {
    height: auto;
    margin-inline: 0.22rem;
    width: auto;
}

.hero-slider .slick-dots li button {
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 999px;
    height: 8px;
    padding: 0;
    transition: width 0.3s var(--ease-premium), background-color 0.3s var(--ease-standard), border-color 0.3s var(--ease-standard);
    width: 8px;
}

.hero-slider .slick-dots li button:before {
    display: none;
}

.hero-slider .slick-dots li.slick-active button {
    background-color: #ffffff;
    border-color: #ffffff;
    width: 30px;
}

.hero-slider .slick-prev,
.hero-slider .slick-next {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    display: flex;
    height: 46px;
    justify-content: center;
    transition: background-color 0.24s var(--ease-standard), border-color 0.24s var(--ease-standard), transform 0.24s var(--ease-premium);
    width: 46px;
    z-index: 3;
}

.hero-slider .slick-prev {
    left: 1.5rem;
}

.hero-slider .slick-next {
    right: 1.5rem;
}

.hero-slider .slick-prev:hover,
.hero-slider .slick-next:hover {
    background-color: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.32);
}

.hero-slider .slick-prev:before,
.hero-slider .slick-next:before {
    display: none;
}

.hero-slider .slick-prev svg,
.hero-slider .slick-next svg {
    fill: none;
    height: 22px;
    stroke: #ffffff;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    width: 22px;
}

.featured-journals-section {
    background: linear-gradient(180deg, #f5f7fa 0%, #fbfaf7 100%);
}

.equal-card-grid > [class*="col-"] {
    display: flex;
}

.equal-card-grid .journal-card {
    width: 100%;
}

.latest-articles-section {
    background:
        linear-gradient(180deg, #fbfaf7 0%, rgba(233, 241, 248, 0.72) 100%);
}

.departments-carousel-section {
    background:
        linear-gradient(180deg, rgba(245, 247, 250, 0.95) 0%, #fbfaf7 100%);
}

.home-carousel-shell {
    position: relative;
}

.home-carousel {
    margin-inline: -0.75rem;
}

.home-carousel:not(.slick-initialized) {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-inline: 0;
    overflow: hidden;
}

.departments-carousel:not(.slick-initialized) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.latest-articles-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+4),
.departments-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+5) {
    display: none;
}

.home-carousel .slick-track {
    display: flex;
}

.home-carousel .slick-slide {
    height: auto;
}

.home-carousel .slick-slide > div,
.home-carousel-slide {
    height: 100%;
}

.home-carousel.slick-initialized .home-carousel-slide {
    padding: 0.75rem;
}

.home-carousel .slick-prev,
.home-carousel .slick-next {
    align-items: center;
    background-color: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    box-shadow: var(--shadow-sm);
    display: inline-flex;
    height: 42px;
    justify-content: center;
    top: -3.05rem;
    transition:
        background-color 0.22s var(--ease-standard),
        border-color 0.22s var(--ease-standard),
        transform 0.22s var(--ease-standard);
    width: 42px;
    z-index: 2;
}

.home-carousel .slick-prev {
    left: auto;
    right: 3.8rem;
}

.home-carousel .slick-next {
    right: 0.75rem;
}

.home-carousel .slick-prev:hover,
.home-carousel .slick-next:hover {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    transform: translateY(-1px);
}

.home-carousel .slick-prev:before,
.home-carousel .slick-next:before {
    display: none;
}

.home-carousel .slick-prev svg,
.home-carousel .slick-next svg {
    fill: none;
    height: 21px;
    stroke: var(--primary-color);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.3;
    transition: stroke 0.22s var(--ease-standard);
    width: 21px;
}

.home-carousel .slick-prev:hover svg,
.home-carousel .slick-next:hover svg {
    stroke: #ffffff;
}

.home-carousel .slick-dots {
    align-items: center;
    bottom: auto;
    display: flex;
    justify-content: center;
    margin-top: 1.2rem;
    position: static;
}

.home-carousel .slick-dots li {
    height: auto;
    margin-inline: 0.22rem;
    width: auto;
}

.home-carousel .slick-dots li button {
    border: 1px solid rgba(23, 63, 103, 0.22);
    border-radius: 999px;
    height: 8px;
    padding: 0;
    transition:
        background-color 0.22s var(--ease-standard),
        border-color 0.22s var(--ease-standard),
        width 0.22s var(--ease-standard);
    width: 8px;
}

.home-carousel .slick-dots li button:before {
    display: none;
}

.home-carousel .slick-dots li.slick-active button {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    width: 30px;
}

.latest-article-card,
.department-card {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(251, 250, 247, 0.94)),
        var(--surface-color);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    min-height: 100%;
    overflow: hidden;
    padding: 1.45rem;
    position: relative;
    transition:
        border-color 0.24s var(--ease-standard),
        box-shadow 0.24s var(--ease-standard),
        transform 0.24s var(--ease-standard);
}

.latest-article-card::before,
.department-card::before {
    background: linear-gradient(90deg, var(--accent-color), rgba(23, 63, 103, 0.78));
    content: "";
    height: 3px;
    inset: 0 0 auto;
    opacity: 0.72;
    position: absolute;
}

.latest-article-card:hover,
.department-card:hover {
    border-color: rgba(23, 63, 103, 0.2);
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.latest-article-topline {
    align-items: center;
    color: var(--muted-color);
    display: flex;
    font-size: 0.76rem;
    font-weight: 700;
    gap: 0.75rem;
    justify-content: space-between;
    line-height: 1.35;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

.latest-article-topline span {
    color: var(--sage-color);
}

.latest-article-title {
    font-size: 1.28rem;
    line-height: 1.34;
    margin-bottom: 0.85rem;
}

.latest-article-title a {
    color: var(--heading-color);
    text-decoration: none;
}

.latest-article-title a:hover {
    color: var(--primary-color);
}

.latest-article-summary {
    color: var(--muted-strong);
    display: -webkit-box;
    font-size: 0.95rem;
    line-height: 1.65;
    margin-bottom: 1.1rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.latest-article-meta {
    color: var(--muted-color);
    display: grid;
    font-size: 0.78rem;
    gap: 0.35rem;
    line-height: 1.35;
    margin-bottom: 1.2rem;
}

.latest-article-footer {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 1rem;
}

.article-card-stats {
    color: var(--muted-color);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.72rem;
    gap: 0.35rem 0.75rem;
}

.department-card {
    min-height: 18.5rem;
}

.department-card-mark {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(23, 63, 103, 0.1), rgba(185, 139, 53, 0.14)),
        #ffffff;
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    color: var(--primary-color);
    display: inline-flex;
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    font-weight: 700;
    height: 3.25rem;
    justify-content: center;
    margin-bottom: 1.15rem;
    width: 3.25rem;
}

.department-card-metrics {
    border-top: 1px solid var(--border-subtle);
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: auto;
    padding-top: 1rem;
}

.department-card-metrics strong {
    color: var(--heading-color);
    display: block;
    font-size: 1.35rem;
    line-height: 1;
}

.department-card-metrics span {
    color: var(--muted-color);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.department-card-link {
    font-size: 0.88rem;
    font-weight: 700;
    margin-top: 1rem;
    text-decoration: none;
}

.journal-tabs-section {
    background:
        linear-gradient(180deg, rgba(251, 250, 247, 0.12) 0%, rgba(232, 239, 246, 0.62) 100%);
}

.journal-tabs-section .content-panel {
    border-radius: var(--radius-xl);
    overflow: hidden;
    padding: 2rem;
}

.journal-tabs-nav-wrap {
    overflow-x: auto;
    padding-bottom: 0.15rem;
    scrollbar-color: rgba(23, 63, 103, 0.28) transparent;
    scrollbar-width: thin;
}

.journal-tabs-nav {
    background-color: rgba(255, 255, 255, 0.68);
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    flex-wrap: nowrap;
    gap: 0.25rem;
    min-width: max-content;
    padding: 0.3rem;
    white-space: nowrap;
}

.journal-tabs-nav .nav-link {
    border: 0;
    border-radius: 999px;
    color: var(--muted-strong);
    font-size: 0.9rem;
    font-weight: 800;
    margin-bottom: 0;
    padding: 0.82rem 1rem;
    position: relative;
}

.journal-tabs-nav .nav-link:hover {
    color: var(--primary-color);
}

.journal-tabs-nav .nav-link.active {
    background-color: #ffffff;
    /* box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08); */
    color: var(--primary-color);
}

.journal-tabs-nav .nav-link::after {
    background-color: var(--accent-color);
    border-radius: 999px;
    bottom: 0.34rem;
    content: "";
    height: 2px;
    left: 1rem;
    opacity: 0;
    position: absolute;
    right: 1rem;
    transform: scaleX(0.45);
    transition: opacity 0.25s var(--ease-standard), transform 0.25s var(--ease-premium);
}

.journal-tabs-nav .nav-link.active::after {
    opacity: 1;
    transform: scaleX(1);
}

.journal-tabs-section .tab-pane.show {
    animation: tabPanelReveal 520ms var(--ease-premium) both;
}

.journal-cover-card {
    background-color: #f9fbfd;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    position: relative;
}

.journal-cover-card::after {
    background: linear-gradient(180deg, transparent 0%, rgba(5, 11, 20, 0.12) 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.journal-cover-card img {
    display: block;
    height: 22rem;
    object-fit: cover;
    transition: transform 0.7s var(--ease-premium);
    width: 100%;
}

.journal-cover-card:hover img {
    transform: scale(1.035);
}

.journal-cover-meta {
    background: rgba(255, 255, 255, 0.94);
    padding: 1.35rem;
    position: relative;
    z-index: 1;
}

.journal-article-list {
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}

.journal-tab-article {
    background:
        linear-gradient(90deg, rgba(233, 241, 248, 0.45), transparent 34%),
        #ffffff;
    padding: 1.35rem 1.5rem;
    position: relative;
    transition: background-color 0.25s var(--ease-standard), transform 0.25s var(--ease-premium);
}

.journal-tab-article + .journal-tab-article {
    border-top: 1px solid var(--border-subtle);
}

.journal-tab-article::before {
    background-color: var(--accent-color);
    border-radius: 999px;
    content: "";
    height: 42%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 29%;
    transition: opacity 0.25s var(--ease-standard);
    width: 3px;
}

.journal-tab-article:hover {
    background-color: #fbfaf7;
    transform: translateX(3px);
}

.journal-tab-article:hover::before {
    opacity: 1;
}

.journal-tab-article-title {
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 1.22rem;
    line-height: 1.4;
    margin-bottom: 0.45rem;
}

.journal-tab-article-title a {
    color: var(--heading-color);
    text-decoration: none;
    transition: color 0.22s var(--ease-standard);
}

.journal-tab-article-title a:hover {
    color: var(--primary-color);
}

.archive-index-panel,
.archive-volume-list,
.archive-empty-state,
.archive-no-results {
    margin-top: 1.25rem;
}

.archive-index-panel {
    background-color: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.archive-index-toolbar {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(14rem, 0.85fr) minmax(0, 1fr);
    padding: 1rem;
}

.archive-search-wrap {
    position: relative;
}

.archive-search-wrap .bi {
    color: var(--muted-color);
    left: 0.85rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.archive-search-wrap .form-control {
    min-height: 46px;
    padding-left: 2.35rem;
}

.archive-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.archive-stats span,
.archive-status {
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.28rem 0.58rem;
    text-transform: uppercase;
}

.archive-stats span {
    background-color: var(--primary-soft);
    border: 1px solid var(--border-subtle);
    color: var(--primary-color);
}

.archive-table-head,
.archive-volume-summary {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(14rem, 1.5fr) 0.45fr 0.55fr 0.65fr;
}

.archive-table-head {
    background-color: rgba(233, 241, 248, 0.72);
    border-top: 1px solid var(--border-subtle);
    color: var(--muted-strong);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    padding: 0.72rem 1rem;
    text-transform: uppercase;
}

.archive-volume-list {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.archive-volume-row {
    background-color: rgba(255, 255, 255, 0.88);
}

.archive-volume-row + .archive-volume-row {
    border-top: 1px solid var(--border-subtle);
}

.archive-volume-summary {
    align-items: center;
    cursor: pointer;
    list-style: none;
    padding: 0.95rem 1rem;
    transition: background-color 0.22s var(--ease-standard);
}

.archive-volume-summary:hover {
    background-color: rgba(233, 241, 248, 0.42);
}

.archive-volume-summary::-webkit-details-marker {
    display: none;
}

.archive-volume-cell {
    color: var(--muted-strong);
    font-size: 0.9rem;
    min-width: 0;
}

.archive-volume-title strong {
    color: var(--heading-color);
    display: block;
    font-size: 1rem;
}

.archive-volume-title small {
    color: var(--muted-color);
    display: block;
    font-size: 0.82rem;
    line-height: 1.4;
    margin-top: 0.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.archive-volume-cell:last-child {
    align-items: center;
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
}

.archive-status {
    background-color: rgba(154, 103, 0, 0.1);
    color: var(--warning-color);
}

.archive-status.is-released {
    background-color: rgba(31, 107, 59, 0.1);
    color: var(--success-color);
}

.archive-status.is-upcoming {
    background-color: rgba(154, 103, 0, 0.1);
    color: var(--warning-color);
}

.archive-toggle-icon {
    color: var(--muted-color);
    transition: transform 0.22s var(--ease-standard);
}

.archive-volume-row[open] .archive-toggle-icon {
    transform: rotate(180deg);
}

.archive-issue-table-wrap {
    background-color: #ffffff;
    border-top: 1px solid var(--border-subtle);
    overflow-x: auto;
}

.archive-issue-table {
    border-collapse: collapse;
    min-width: 760px;
    width: 100%;
}

.archive-issue-table th,
.archive-issue-table td {
    border-bottom: 1px solid var(--border-subtle);
    padding: 0.85rem 1rem;
    text-align: left;
    vertical-align: top;
}

.archive-issue-table th {
    background-color: rgba(251, 250, 247, 0.86);
    color: var(--muted-strong);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.archive-issue-table tr:last-child td {
    border-bottom: 0;
}

.archive-issue-table td {
    color: var(--muted-strong);
    font-size: 0.88rem;
    line-height: 1.55;
}

.archive-issue-title {
    color: var(--heading-color);
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 0.4rem;
}

.archive-issue-title span {
    color: var(--muted-strong);
    display: block;
    font-size: 0.86rem;
    font-weight: 600;
    margin-top: 0.18rem;
}

.archive-issue-empty,
.archive-no-results,
.archive-empty-state {
    background-color: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    padding: 1rem;
}

.editorial-board-shell {
    display: grid;
    gap: 2rem;
}

.editorial-board-group {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1.5rem;
}

.editorial-board-group:first-child {
    border-top: 0;
    padding-top: 0;
}

.editorial-board-heading {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.editorial-count {
    background-color: var(--primary-soft);
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    color: var(--primary-color);
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.42rem 0.7rem;
}

.editorial-board-list {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.editor-card {
    align-items: flex-start;
    background:
        linear-gradient(135deg, rgba(233, 241, 248, 0.6), rgba(255, 255, 255, 0.96)),
        #ffffff;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    display: grid;
    gap: 1rem;
    grid-template-columns: 5rem minmax(0, 1fr);
    min-height: 11.5rem;
    padding: 1rem;
    transition: border-color 0.24s var(--ease-standard), box-shadow 0.24s var(--ease-standard), transform 0.24s var(--ease-premium);
}

.editor-card:hover {
    border-color: rgba(185, 139, 53, 0.34);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.editor-card-photo,
.editorial-summary-photo,
.editor-profile-photo {
    background-color: var(--primary-soft);
    object-fit: cover;
}

.editor-card-photo {
    aspect-ratio: 1;
    border: 3px solid #ffffff;
    border-radius: 999px;
    box-shadow: var(--shadow-xs);
    width: 5rem;
}

.editor-card-body {
    min-width: 0;
}

.editor-card-name {
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 1.12rem;
    line-height: 1.25;
    margin-bottom: 0.35rem;
}

.editor-card-affiliation {
    color: var(--muted-strong);
    font-size: 0.86rem;
    line-height: 1.45;
}

.editor-card-affiliation span {
    color: var(--muted-color);
    display: block;
}

.editor-card-interest {
    color: var(--muted-color);
    display: -webkit-box;
    font-size: 0.88rem;
    line-height: 1.55;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.editorial-empty-state,
.editorial-summary-panel,
.editor-profile-sidebar {
    background-color: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
}

.editorial-empty-state {
    padding: 1rem;
}

.editorial-summary-panel {
    position: sticky;
    top: calc(var(--header-height-compact) + 1.25rem);
}

.editorial-summary-photo {
    aspect-ratio: 1;
    border-radius: var(--radius-lg);
    display: block;
    margin-bottom: 1rem;
    width: 100%;
}

.editor-profile-panel {
    overflow: hidden;
}

.editor-profile-sidebar {
    padding: 1.25rem;
}

.editor-profile-photo {
    aspect-ratio: 1;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    display: block;
    margin-bottom: 1.25rem;
    width: 100%;
}

.editor-profile-main {
    max-width: 44rem;
}

.editor-profile-section {
    border-top: 1px solid var(--border-subtle);
    padding-block: 1.4rem;
}

.editor-profile-section:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.trust-authority-section {
    background:
        linear-gradient(180deg, rgba(232, 239, 246, 0.62), rgba(251, 250, 247, 0.98));
    padding-top: 2.5rem;
}

.trust-authority-panel {
    border-top: 1px solid rgba(185, 139, 53, 0.3);
    padding-top: 2rem;
    position: relative;
}

.trust-authority-panel::before {
    background: linear-gradient(90deg, rgba(185, 139, 53, 0.88), rgba(23, 63, 103, 0.72));
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    top: -1px;
    width: 8rem;
}

.trust-authority-panel::after {
    background: linear-gradient(90deg, transparent, rgba(23, 63, 103, 0.12), transparent);
    content: "";
    height: 1px;
    left: 8rem;
    right: 0;
    position: absolute;
    top: -1px;
}

.indexed-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    justify-content: flex-start;
}

.indexed-strip span,
.footer-highlights span {
    background-color: rgba(255, 255, 255, 0.78);
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    color: var(--muted-strong);
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 0.55rem 0.78rem;
    text-transform: uppercase;
}

.trust-metric-card {
    background-color: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    min-height: 9.25rem;
    padding: 1.35rem;
    transition: transform 0.28s var(--ease-premium), box-shadow 0.28s var(--ease-standard), border-color 0.28s var(--ease-standard);
}

.trust-metric-card:hover {
    border-color: rgba(185, 139, 53, 0.34);
    box-shadow: var(--shadow-sm);
    transform: translateY(-3px);
}

.trust-metric-value {
    color: var(--primary-color);
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
    font-size: 2.35rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.8rem;
}

.trust-metric-label {
    color: var(--muted-strong);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
}

.footer-shell {
    background:
        linear-gradient(180deg, #07111f 0%, #050b14 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.78);
    padding-block: 3rem 7rem;
    position: relative;
}

.footer-shell::before {
    background: linear-gradient(90deg, transparent, rgba(185, 139, 53, 0.62), transparent);
    content: "";
    height: 1px;
    inset: 0 0 auto;
    opacity: 0.7;
    position: absolute;
}

.footer-shell .brand-wordmark,
.footer-shell .page-kicker {
    color: #f2d49a;
}

.footer-shell a {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
}

.footer-shell a:hover {
    color: #ffffff;
}

.footer-newsletter {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
    padding-bottom: 2rem;
}

.footer-newsletter-title {
    color: #ffffff;
    font-size: 1.65rem;
}

.footer-newsletter-form {
    background-color: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    display: flex;
    gap: 0.5rem;
    padding: 0.45rem;
}

.footer-newsletter-form .form-control {
    background-color: transparent;
    border: 0;
    color: #ffffff;
    min-height: 44px;
}

.footer-newsletter-form .form-control::placeholder {
    color: rgba(255, 255, 255, 0.56);
}

.footer-newsletter-form .btn {
    flex: 0 0 auto;
}

.footer-main {
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1.4fr) minmax(12rem, 0.55fr) minmax(12rem, 0.65fr);
    padding-block: 2.25rem;
}

.footer-brand p {
    max-width: 34rem;
}

.footer-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1.25rem;
}

.footer-highlights span {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.72);
}

.footer-panel h2 {
    color: #ffffff;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

.footer-panel li + li {
    margin-top: 0.58rem;
}

.footer-panel a {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.94rem;
    position: relative;
}

.footer-panel a::after {
    background-color: #f2d49a;
    bottom: -0.16rem;
    content: "";
    height: 1px;
    left: 0;
    opacity: 0;
    position: absolute;
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity 0.22s var(--ease-standard), transform 0.22s var(--ease-premium);
    width: 100%;
}

.footer-panel a:hover::after {
    opacity: 1;
    transform: scaleX(1);
}

.footer-bottom {
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.56);
    display: flex;
    font-size: 0.88rem;
    gap: 1rem;
    justify-content: space-between;
    padding-top: 1.25rem;
}

.home-about-panel {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(23, 63, 103, 0.08), rgba(185, 139, 53, 0.1)),
        #ffffff;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 3rem;
    /* grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr); */
    padding: clamp(2rem, 3vw, 4.5rem);
}

.home-about-content {
    /* max-width: 48rem; */
}

.home-about-values {
    display: grid;
    gap: 0.85rem;
}

.home-about-values article {
    align-items: flex-start;
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    display: flex;
    gap: 1rem;
    padding: 1.1rem;
}

.home-about-values i {
    align-items: center;
    background-color: var(--primary-soft);
    border-radius: 999px;
    color: var(--primary-color);
    display: flex;
    flex: 0 0 auto;
    font-size: 1.15rem;
    height: 2.75rem;
    justify-content: center;
    width: 2.75rem;
}

.home-about-values h3 {
    color: var(--heading-color);
    font-size: 1rem;
    margin: 0 0 0.25rem;
}

.home-about-values p {
    color: var(--muted-color);
    font-size: 0.86rem;
    line-height: 1.55;
    margin: 0;
}

.floating-site-actions {
    bottom: calc(1.25rem + env(safe-area-inset-bottom));
    right: 0%;
    bottom: 6rem;
    position: fixed;
    z-index: 1050;
}

.floating-site-action {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px 0 0 999px;
    color: #ffffff;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.5rem;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.7rem 1.25rem;
    text-decoration: none;
    transition: transform 0.18s var(--ease-standard), box-shadow 0.18s var(--ease-standard);
    white-space: nowrap;
}

.floating-site-action:hover,
.floating-site-action:focus {
    color: #ffffff;
    transform: translateY(-2px);
}

.floating-site-action:focus-visible {
    outline: 3px solid rgba(242, 212, 154, 0.92);
    outline-offset: 3px;
}

.floating-site-action-submit {
    background: linear-gradient(135deg, #17446f, #0d2d4d);
    box-shadow: 0 12px 26px rgba(13, 45, 77, 0.24);
}

.whatsapp-chat-widget {
    bottom: calc(1.25rem + env(safe-area-inset-bottom));
    left: 1.25rem;
    position: fixed;
    z-index: 1060;
}

.floating-circle-button {
    align-items: center;
    border: 0;
    border-radius: 999px;
    color: #ffffff;
    display: inline-flex;
    font-size: 1.45rem;
    height: 3.65rem;
    justify-content: center;
    transition: opacity 0.2s var(--ease-standard), transform 0.2s var(--ease-standard), visibility 0.2s var(--ease-standard);
    width: 3.65rem;
}

.floating-circle-button:hover,
.floating-circle-button:focus {
    color: #ffffff;
    transform: translateY(-3px);
}

.floating-circle-button:focus-visible {
    outline: 3px solid rgba(242, 212, 154, 0.92);
    outline-offset: 3px;
}

.floating-whatsapp-button {
    background-color: #20c866;
    box-shadow: 0 14px 34px rgba(32, 200, 102, 0.36);
}

.scroll-to-top-button {
    background: linear-gradient(135deg, #17446f, #0d2d4d);
    bottom: calc(1.25rem + env(safe-area-inset-bottom));
    box-shadow: 0 14px 34px rgba(13, 45, 77, 0.28);
    opacity: 0;
    pointer-events: none;
    position: fixed;
    right: 1.25rem;
    transform: translateY(0.75rem);
    visibility: hidden;
    z-index: 1060;
}

.scroll-to-top-button.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
}

.scroll-to-top-button.is-visible:hover,
.scroll-to-top-button.is-visible:focus {
    transform: translateY(-3px);
}

.whatsapp-chat-panel {
    background-color: #ffffff;
    border: 1px solid rgba(15, 49, 82, 0.12);
    border-radius: 1rem;
    bottom: 4.5rem;
    box-shadow: 0 24px 60px rgba(7, 17, 31, 0.22);
    left: 0;
    overflow: hidden;
    position: absolute;
    width: min(24rem, calc(100vw - 2rem));
}

.whatsapp-chat-header {
    align-items: flex-start;
    background-color: #20c866;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    padding: 1.2rem;
}

.whatsapp-chat-header strong,
.whatsapp-chat-header span {
    display: block;
}

.whatsapp-chat-header strong {
    font-size: 1.08rem;
}

.whatsapp-chat-header span {
    font-size: 0.82rem;
    margin-top: 0.15rem;
    opacity: 0.9;
}

.whatsapp-chat-close {
    background: transparent;
    border: 0;
    color: #ffffff;
    font-size: 1.1rem;
    padding: 0.1rem;
}

.whatsapp-chat-body {
    padding: 1.5rem;
}

.whatsapp-chat-body h2 {
    font-size: 1.1rem;
    margin-bottom: 0.65rem;
}

.whatsapp-chat-body p {
    color: var(--muted-strong);
    line-height: 1.55;
    margin-bottom: 1.25rem;
}

.whatsapp-chat-link {
    align-items: center;
    background-color: #159557;
    border-radius: 0.7rem;
    color: #ffffff;
    display: flex;
    font-weight: 700;
    gap: 0.55rem;
    justify-content: center;
    padding: 0.85rem 1rem;
    text-decoration: none;
}

.whatsapp-chat-link:hover,
.whatsapp-chat-link:focus {
    background-color: #117e49;
    color: #ffffff;
}

.whatsapp-chat-body small {
    color: var(--muted-color);
    display: block;
    margin-top: 1.25rem;
    text-align: center;
}

.reveal-ready {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.7s var(--ease-premium), transform 0.7s var(--ease-premium);
}

.reveal-ready.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.loading-skeleton {
    background: linear-gradient(90deg, rgba(219, 228, 238, 0.42), rgba(255, 255, 255, 0.72), rgba(219, 228, 238, 0.42));
    background-size: 220% 100%;
    border-radius: var(--radius-sm);
    min-height: 1rem;
    animation: skeletonShimmer 1.4s ease-in-out infinite;
}

@keyframes heroKenBurns {
    from {
        transform: scale(1.045) translate3d(0, 0, 0);
    }

    to {
        transform: scale(1.11) translate3d(-1.2%, -0.6%, 0);
    }
}

@keyframes heroTextReveal {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes tabPanelReveal {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes skeletonShimmer {
    from {
        background-position: 220% 0;
    }

    to {
        background-position: -220% 0;
    }
}

@media (min-width: 1200px) {
    .section-heading {
        font-size: 2.35rem;
    }

    .col-xl-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }
}

@media (min-width: 992px) {
    .g-lg-4 {
        --portal-gutter-x: 1.5rem;
        --portal-gutter-y: 1.5rem;
    }

    .col-lg-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-lg-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-lg-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-lg-7 {
        flex: 0 0 auto;
        width: 58.333333%;
    }

    .col-lg-8 {
        flex: 0 0 auto;
        width: 66.666667%;
    }

    .col-lg-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .p-lg-5 {
        padding: 3rem !important;
    }
}

@media (min-width: 768px) {
    .col-md-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-md-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }

    .col-md-5 {
        flex: 0 0 auto;
        width: 41.666667%;
    }

    .col-md-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .d-md-block {
        display: block !important;
    }

    .d-md-flex {
        display: flex !important;
    }

    .d-md-inline-flex {
        display: inline-flex !important;
    }
}

@media (min-width: 1200px) {
    .col-xl-4 {
        flex: 0 0 auto;
        width: 33.333333%;
    }
}

@media (max-width: 1199.98px) {
    .hero-slide,
    .hero-slide-content {
        min-height: 690px;
    }

    .hero-slide-title {
        font-size: 3.4rem;
    }

    .departments-carousel:not(.slick-initialized) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .departments-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+4) {
        display: none;
    }
}

@media (max-width: 991.98px) {
    .site-header-row {
        grid-template-columns: auto 1fr auto;
        min-height: 84px;
    }

    .site-header-right .dropdown,
    .site-header-right .btn-outline-secondary:not(.header-action-button:last-child) {
        display: none;
    }

    .site-logo-mark {
        font-size: 1.85rem;
    }

    .site-logo-subtitle {
        letter-spacing: 0.12em;
    }

    .section-block {
        padding-block: 3.75rem;
    }

    .section-heading {
        font-size: 1.85rem;
        max-width: none;
    }

    .portal-sidebar {
        top: auto;
    }

    .hero-slide,
    .hero-slide-content {
        min-height: 620px;
    }

    .hero-slide-content {
        padding-top: 8rem;
    }

    .hero-slide-title {
        font-size: 3rem;
        max-width: 16ch;
    }

    .home-carousel:not(.slick-initialized),
    .departments-carousel:not(.slick-initialized) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .latest-articles-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+3),
    .departments-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+3) {
        display: none;
    }

    .footer-newsletter,
    .footer-main {
        grid-template-columns: 1fr;
    }

    .contact-hero,
    .contact-route-grid,
    .article-tracker-hero,
    .tracker-help-grid {
        grid-template-columns: 1fr;
    }

    .contact-sidebar-stack {
        position: static;
    }

    .footer-newsletter-form {
        max-width: 34rem;
    }

    .editorial-summary-panel {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .section-header {
        align-items: flex-start !important;
        flex-direction: column;
    }

    .section-header a {
        align-self: flex-start;
    }

    .content-panel,
    .journal-tabs-section .content-panel,
    .trust-authority-panel {
        padding: 1.25rem;
    }

    .journal-tabs-nav {
        border-radius: var(--radius-md);
    }

    .journal-tabs-nav .nav-link {
        padding-inline: 0.85rem;
    }

    .journal-tab-article {
        padding: 1.15rem;
    }

    .editorial-board-list {
        grid-template-columns: 1fr;
    }

    .home-carousel:not(.slick-initialized),
    .departments-carousel:not(.slick-initialized) {
        grid-template-columns: 1fr;
    }

    .latest-articles-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+2),
    .departments-carousel:not(.slick-initialized) .home-carousel-slide:nth-child(n+2) {
        display: none;
    }

    .home-carousel .slick-prev,
    .home-carousel .slick-next {
        display: none !important;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-form-header {
        flex-direction: column;
    }

    .tracker-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .site-header-row {
        gap: 0.5rem;
        min-height: 76px;
    }

    .site-logo-mark {
        font-size: 1.46rem;
        letter-spacing: 0.08em;
    }

    .site-logo-subtitle {
        display: none;
    }

    .header-action-button {
        padding-inline: 0.78rem;
    }

    .site-header-right {
        gap: 0.45rem;
    }

    .header-icon-button {
        height: 42px;
        min-height: 42px;
        width: 42px;
    }

    .section-block {
        padding-block: 3rem;
    }

    .hero-slider-section {
        padding-bottom: 3rem;
    }

    .hero-slide,
    .hero-slide-content {
        min-height: 560px;
    }

    .hero-slide-content {
        padding-bottom: 4.5rem;
        padding-top: 7rem;
    }

    .hero-slide-title {
        font-size: 2.35rem;
        max-width: none;
    }

    .hero-slide-text {
        font-size: 1rem;
    }

    .hero-slider .slick-prev,
    .hero-slider .slick-next {
        display: none !important;
    }

    .hero-slider .slick-dots {
        bottom: 1.35rem;
    }

    .journal-cover-card img {
        height: 16rem;
    }

    .journal-card {
        padding: 1.25rem !important;
    }

    .archive-index-toolbar,
    .archive-table-head,
    .archive-volume-summary {
        grid-template-columns: 1fr;
    }

    .archive-table-head {
        display: none;
    }

    .archive-stats {
        justify-content: flex-start;
    }

    .archive-volume-cell:last-child {
        justify-content: flex-start;
    }

    .archive-issue-table {
        min-width: 620px;
    }

    .editorial-board-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .editor-card {
        grid-template-columns: 4.5rem minmax(0, 1fr);
        min-height: 0;
    }

    .editor-card-photo {
        width: 4.5rem;
    }

    .journal-card.d-flex {
        flex-direction: column;
    }

    .journal-card img.flex-shrink-0 {
        height: 180px !important;
        width: 100% !important;
    }

    .latest-article-card,
    .department-card {
        padding: 1.2rem;
    }

    .latest-article-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .trust-metric-card {
        min-height: 8.4rem;
        padding: 1rem;
    }

    .trust-metric-value {
        font-size: 1.85rem;
    }

    .footer-newsletter-form {
        align-items: stretch;
        border-radius: var(--radius-lg);
        flex-direction: column;
        padding: 0.75rem;
    }

    .footer-newsletter-form .btn {
        width: 100%;
    }

    .article-tracker-input-row,
    .tracker-meta-grid {
        grid-template-columns: 1fr;
    }

    .article-tracker-input-row .btn {
        width: 100%;
    }

    .tracker-result-header {
        flex-direction: column;
    }

    .tracker-status-badge {
        align-self: flex-start;
    }

    .tracker-timeline {
        gap: 0.75rem;
        grid-template-columns: 1fr;
    }

    .tracker-timeline-step {
        min-height: 2.7rem;
        padding-left: 2rem;
        padding-top: 0;
        text-align: left;
    }

    .tracker-timeline-step::before {
        bottom: -0.8rem;
        height: auto;
        left: 0.38rem;
        right: auto;
        top: 0.8rem;
        width: 2px;
    }

    .tracker-timeline-step:first-child::before {
        left: 0.38rem;
    }

    .tracker-timeline-step:last-child::before {
        display: none;
    }

    .tracker-timeline-dot {
        left: 0;
        top: 0.35rem;
        transform: none;
    }

    .contact-hero-actions .btn,
    .contact-form .btn {
        width: 100%;
    }

    .contact-response-item,
    .contact-route-card,
    .contact-info-card {
        padding: 1.1rem;
    }

    .footer-shell {
        padding-bottom: 6rem;
    }

    .home-about-panel {
        gap: 1.5rem;
        grid-template-columns: 1fr;
        padding: 1.5rem;
    }

    .whatsapp-chat-widget {
        bottom: calc(0.85rem + env(safe-area-inset-bottom));
        left: 0.85rem;
    }

    .scroll-to-top-button {
        bottom: calc(0.85rem + env(safe-area-inset-bottom));
        right: 0.85rem;
    }

    .floating-site-actions {
        bottom: calc(0.85rem + env(safe-area-inset-bottom));
    }

    .floating-site-action {
        font-size: 0.72rem;
        min-height: 3.25rem;
        padding: 0.65rem 0.9rem;
    }

    .floating-circle-button {
        font-size: 1.25rem;
        height: 3.25rem;
        width: 3.25rem;
    }

    .whatsapp-chat-panel {
        bottom: 4rem;
        width: min(22rem, calc(100vw - 1.7rem));
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media print {
    .floating-site-actions,
    .whatsapp-chat-widget,
    .scroll-to-top-button {
        display: none !important;
    }
}
