/**
 * NBGR — Nusantara Border Governance Review
 * Main stylesheet — extracted from "Sovereign Gateway" design
 */

/* ============================================================
   GOOGLE FONTS
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Merriweather:ital,wght@0,400;0,700;0,900;1,400&display=swap');

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
    /* Navy palette */
    --nbgr-navy:          #223658;
    --nbgr-navy-dark:     #15243a;
    --nbgr-navy-mid:      #1a2c47;
    --nbgr-navy-light:    #2e497a;
    --nbgr-navy-bg:       #16263f;
    --nbgr-navy-card:     #16263f;
    --nbgr-navy-border:   #2c456c;

    /* Gold palette */
    --nbgr-gold:          #C3A24E;
    --nbgr-gold-light:    #d8bd7e;
    --nbgr-gold-muted:    #b08d3a;

    /* Accent */
    --nbgr-teal:          #6fb39e;
    --nbgr-forest:        #143b2c;

    /* Cream / surface */
    --nbgr-cream:         #f7f4ec;
    --nbgr-cream-mid:     #f4f2ea;
    --nbgr-cream-border:  #e2ddcd;
    --nbgr-cream-border2: #e6e1d3;

    /* Text on light */
    --nbgr-text:          #1c2a40;
    --nbgr-text-mid:      #454f63;
    --nbgr-text-muted:    #5e6678;
    --nbgr-text-light:    #6e7890;
    --nbgr-text-faint:    #8fa3c2;

    /* Text on dark */
    --nbgr-on-dark:       #c5d0e2;
    --nbgr-on-dark-mid:   #c7d2e4;
    --nbgr-on-dark-muted: #9fb0cc;

    /* Typography */
    --nbgr-font-sans:  'Montserrat', system-ui, sans-serif;
    --nbgr-font-serif: 'Merriweather', Georgia, serif;

    /* Layout */
    --nbgr-max-width: 1240px;
    --nbgr-gutter:    28px;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--nbgr-font-sans);
    color: var(--nbgr-text);
    background: #fff;
    -webkit-font-smoothing: antialiased;
}

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

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

input { font-family: inherit; }

::selection {
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
}

/* ============================================================
   STRUCTURAL PAGE WRAPPER
   ============================================================ */
.pkp_structure_page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.pkp_structure_content {
    flex: 1;
}

.pkp_structure_main {
    /* No padding here — each section handles its own */
}

/* ============================================================
   SKIP LINKS (a11y) — OJS generates <nav class="cmp_skip_to_content">
   ============================================================ */
.pkp_screen_reader {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.cmp_skip_to_content {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 9999;
}

.cmp_skip_to_content a {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
}

.cmp_skip_to_content a:focus {
    position: fixed;
    top: 0;
    left: 0;
    width: auto;
    height: auto;
    padding: 10px 18px;
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
    font-weight: 700;
    font-size: 13px;
    text-decoration: none;
    z-index: 9999;
    clip: auto;
}

/* ============================================================
   HEADER — institutional strip
   ============================================================ */
.pkp_structure_head {
    background: #fff;
}

.nbgr-institutional {
    background: var(--nbgr-navy-dark);
    border-top: 3px solid var(--nbgr-gold);
    color: var(--nbgr-on-dark);
}

.nbgr-institutional__inner {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 0 var(--nbgr-gutter);
    height: 40px;
    display: flex;
    align-items: center;
    font-size: 11px;
    letter-spacing: .05em;
}

.nbgr-institutional__publisher {
    text-transform: uppercase;
    font-weight: 600;
    color: #aebbd1;
}

.nbgr-institutional__right {
    margin-left: auto;
    display: flex;
    align-items: center;
    align-self: stretch;       /* fill 40px strip so child anchors can reach its bottom edge */
    gap: 0;
}

.nbgr-utility-sep {
    height: 13px;
    width: 1px;
    background: #2c456c;
    margin: 0 14px;
    flex-shrink: 0;
}

/* ── Language dropdown ── */
.nbgr-lang {
    position: relative;
    align-self: stretch;       /* fill the 40px strip so menu/triangle anchor to its bottom edge */
    display: flex;
    align-items: center;
}

.nbgr-lang__trigger {
    display: flex;
    align-items: center;
    gap: 5px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--nbgr-on-dark-muted);
    font-size: 11px;
    font-weight: 600;
    font-family: inherit;
    letter-spacing: .04em;
    padding: 0 2px;
    transition: color .15s;
}

.nbgr-lang__trigger:hover { color: #e7ecf4; }

.nbgr-lang__globe {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.nbgr-lang__caret {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    opacity: .6;
}

.nbgr-lang__current { letter-spacing: .06em; }

/* Single locale — show as non-interactive indicator */
.nbgr-lang--single .nbgr-lang__trigger {
    cursor: default;
    pointer-events: none;
}

.nbgr-lang__menu {
    display: none;
    flex-direction: column;
    gap: 3px;                 /* breathing room between items */
    position: absolute;
    top: calc(100% + 8px);    /* gap = triangle height, tip touches parent's bottom edge */
    left: 50%;                /* centered on parent */
    right: auto;
    transform: translateX(-50%);
    min-width: 170px;
    background: #fff;
    border-radius: 8px;
    border-top: 2px solid var(--nbgr-gold);
    box-shadow: 0 10px 30px rgba(0,0,0,.22);
    z-index: 2000;
    padding: 7px;
    list-style: none;
    margin: 0;
}

/* Transparent full-width bridge keeps hover alive across the gap */
.nbgr-lang__menu::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 10px;
}

/* Visible triangle "bridge" centered above the menu, pointing at the parent */
.nbgr-lang__menu::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-bottom-color: var(--nbgr-gold);
}

.nbgr-lang:hover .nbgr-lang__menu,
.nbgr-lang__trigger:focus + .nbgr-lang__menu,
.nbgr-lang__menu:hover {
    display: flex;
}

.nbgr-lang__option {
    display: block;
    padding: 8px 14px;
    font-size: 12.5px;
    color: var(--nbgr-text-mid);
    border-radius: 6px;       /* inset rounded hover */
    transition: background .12s, color .12s;
    cursor: pointer;
}

a.nbgr-lang__option:hover {
    background: var(--nbgr-cream);
    color: var(--nbgr-navy);
    text-decoration: none;
}

.nbgr-lang__option--active {
    color: var(--nbgr-navy);
    font-weight: 700;
    background: var(--nbgr-cream-mid);
}

/* ── User nav in institutional strip ── */
.nbgr-user-nav {
    display: flex;
    align-items: center;
    align-self: stretch;       /* fill the 40px strip so menu/triangle anchor to its bottom edge */
}

.nbgr-user-nav .pkp_navigation_user {
    display: flex;
    align-items: center;
    height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    gap: 0;
}

.nbgr-user-nav .pkp_navigation_user > li {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
}

.nbgr-user-nav .pkp_navigation_user > li > a,
.nbgr-user-nav .pkp_navigation_user > li > [data-toggle="dropdown"] {
    font-size: 11px;
    font-weight: 600;
    color: var(--nbgr-on-dark-muted);
    padding: 0 8px;
    transition: color .15s;
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    background: transparent;
    border: none;
    font-family: inherit;
    letter-spacing: .04em;
}

.nbgr-user-nav .pkp_navigation_user > li > a:hover,
.nbgr-user-nav .pkp_navigation_user > li > [data-toggle="dropdown"]:hover {
    color: #e7ecf4;
    text-decoration: none;
}

/* User nav sub-menu — OJS renders a plain nested <ul>, not .dropdown-menu */
.nbgr-user-nav .pkp_navigation_user > li > ul,
.nbgr-user-nav .dropdown-menu {
    display: none;
    flex-direction: column;
    gap: 3px;                 /* breathing room between items */
    position: absolute;
    top: calc(100% + 8px);    /* gap = triangle height, tip touches parent's bottom edge */
    left: 50%;                /* centered on parent */
    right: auto;
    transform: translateX(-50%);
    min-width: 190px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,.22);
    border-top: 2px solid var(--nbgr-gold);
    z-index: 2000;
    padding: 7px;
    list-style: none;
    margin: 0;
}

/* Show: CSS hover OR Bootstrap JS adds .show class */
.nbgr-user-nav .pkp_navigation_user > li:hover > ul,
.nbgr-user-nav .pkp_navigation_user > li:hover > .dropdown-menu,
.nbgr-user-nav .dropdown-menu.show {
    display: flex;
}

/* Transparent full-width bridge keeps hover alive across the gap */
.nbgr-user-nav .pkp_navigation_user > li > ul::before,
.nbgr-user-nav .dropdown-menu::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 10px;
}

/* Visible triangle "bridge" centered above the menu, pointing at the parent */
.nbgr-user-nav .pkp_navigation_user > li > ul::after,
.nbgr-user-nav .dropdown-menu::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-bottom-color: var(--nbgr-gold);
}

.nbgr-user-nav .pkp_navigation_user > li > ul li,
.nbgr-user-nav .dropdown-menu li {
    display: block;
    width: 100%;
}

.nbgr-user-nav .pkp_navigation_user > li > ul a,
.nbgr-user-nav .dropdown-menu a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--nbgr-text-mid);
    white-space: nowrap;
    border-radius: 6px;       /* inset rounded hover */
    transition: background .12s, color .12s;
}

.nbgr-user-nav .pkp_navigation_user > li > ul a:hover,
.nbgr-user-nav .dropdown-menu a:hover {
    background: var(--nbgr-cream);
    color: var(--nbgr-navy);
    text-decoration: none;
}

/* Notification count → pill badge (e.g. unread tasks next to Dashboard) */
.nbgr-user-nav .task_count {
    flex-shrink: 0;
    min-width: 19px;
    height: 19px;
    line-height: 19px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
    font-size: 10.5px;
    font-weight: 700;
    text-align: center;
}

/* Hide the badge when there is nothing unread (count renders as 0) */
.nbgr-user-nav .task_count:empty {
    display: none;
}

/* Narrow screens: user nav sits in the right corner, so a centered dropdown
   overflows the viewport. Right-align the menu and shift the triangle right. */
@media (max-width: 1200px) {
    .nbgr-user-nav .pkp_navigation_user > li > ul,
    .nbgr-user-nav .dropdown-menu {
        left: auto;
        right: 0;
        transform: none;
    }
    .nbgr-user-nav .pkp_navigation_user > li > ul::after,
    .nbgr-user-nav .dropdown-menu::after {
        left: auto;
        right: 16px;
        transform: none;
    }
}

/* ============================================================
   HEADER — masthead
   ============================================================ */
.pkp_head_wrapper {
    background: #fff;
    border-bottom: 1px solid var(--nbgr-cream-border2);
}

.pkp_head_inner {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 18px var(--nbgr-gutter);
    display: flex;
    align-items: center;
    gap: 18px;
}

.pkp_site_name_wrapper { flex-shrink: 0; }

.pkp_site_name a,
.pkp_site_name a.is_img,
.pkp_site_name a.is_text {
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
}

.pkp_site_name img {
    height: 54px;
    width: auto;
}

.nbgr-site-name-text { display: block; }

.nbgr-site-name-abbr {
    display: block;
    font-weight: 800;
    font-size: 24px;
    letter-spacing: .02em;
    color: var(--nbgr-navy);
    line-height: 1;
}

.nbgr-site-name-full {
    display: block;
    font-size: 10.5px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--nbgr-text-light);
    margin-top: 5px;
    font-weight: 600;
}

.nbgr-head-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Header search */
.pkp_search.cmp_form {
    display: flex;
    align-items: center;
    background: var(--nbgr-cream-mid);
    border: 1px solid var(--nbgr-cream-border);
    border-radius: 4px;
    padding: 9px 13px;
    width: 252px;
}

.pkp_search .search_icon {
    color: var(--nbgr-gold-muted);
    font-size: 14px;
    flex-shrink: 0;
}

.pkp_search .search_input {
    border: none;
    background: transparent;
    outline: none;
    font-size: 12.5px;
    color: var(--nbgr-text);
    margin-left: 9px;
    width: 100%;
}

/* Submit CTA in header */
.pkp_button.submit_manuscript {
    background: var(--nbgr-navy);
    color: #fff;
    font-size: 12.5px;
    font-weight: 700;
    padding: 11px 18px;
    border-radius: 4px;
    letter-spacing: .02em;
    transition: background .15s;
    white-space: nowrap;
}

.pkp_button.submit_manuscript:hover { background: var(--nbgr-navy-light); }

/* ============================================================
   HEADER — primary navigation
   ============================================================ */
.pkp_site_nav_menu {
    background: var(--nbgr-navy);
    position: sticky;
    top: 0;
    z-index: 1030;
    box-shadow: 0 3px 14px rgba(0,0,0,.16);
}

.pkp_navigation_primary_row {
    background: var(--nbgr-navy);
    position: sticky;
    top: 0;
    z-index: 40;
    box-shadow: 0 2px 14px rgba(34,54,88,.15);
}

.pkp_navigation_primary_wrapper {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 0 var(--nbgr-gutter);
    display: flex;
    align-items: center;
    height: 50px;
}

.pkp_navigation_primary {
    display: flex;
    align-items: center;
    background: transparent;
}

.pkp_navigation_primary li {
    height: 50px;
    display: flex;
    position: relative;
}

.pkp_navigation_primary li a {
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .03em;
    color: #cdd7e8;
    padding: 0 17px;
    height: 50px;
    display: flex;
    align-items: center;
    border-bottom: 3px solid transparent;
    transition: color .15s, border-color .15s;
}

.pkp_navigation_primary li a:hover,
.pkp_navigation_primary li.active a {
    color: #fff;
    border-bottom-color: var(--nbgr-gold);
    text-decoration: none;
}

/* Open access badge */
.nbgr-oa-badge {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--nbgr-on-dark-muted);
    font-size: 11px;
    letter-spacing: .06em;
}

.nbgr-oa-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--nbgr-teal);
    display: inline-block;
    flex-shrink: 0;
}

/* Mobile nav toggle (hidden by default on desktop) */
.pkp_site_nav_toggle { display: none; }

/* The old user nav wrapper inside <nav> is not used in NBGR — user nav is in the institutional strip */
.pkp_navigation_user_wrapper { display: none; }

/* ── Primary nav sub-menu dropdown ── */

/* Sub-menus hidden by default (Bootstrap dropdown pattern + plain ul) */
.pkp_navigation_primary .dropdown-menu,
.pkp_navigation_primary li ul {
    display: none;
    flex-direction: column;
    gap: 3px;                 /* breathing room between items */
    position: absolute;
    top: calc(100% + 8px);    /* gap = triangle height, tip touches parent's bottom edge */
    left: 50%;                /* centered on parent */
    transform: translateX(-50%);
    z-index: 1000;
    min-width: 210px;
    margin: 0;
    padding: 7px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,.22);
    list-style: none;
    border-top: 2px solid var(--nbgr-gold);
}

/* Transparent full-width bridge keeps hover alive across the gap */
.pkp_navigation_primary .dropdown-menu::before,
.pkp_navigation_primary li ul::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 10px;
}

/* Visible triangle "bridge" centered above the menu, pointing at the parent */
.pkp_navigation_primary .dropdown-menu::after,
.pkp_navigation_primary li ul::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-bottom-color: var(--nbgr-gold);
}

/* Show on hover (CSS) AND when Bootstrap JS adds .show class */
.pkp_navigation_primary li:hover > .dropdown-menu,
.pkp_navigation_primary li:hover > ul,
.pkp_navigation_primary [data-toggle="dropdown"]:hover + .dropdown-menu,
.pkp_navigation_primary .dropdown-menu.show {
    display: flex;
}

/* Reset the global flex/height li+a rules so dropdown rows behave like a list */
.pkp_navigation_primary .dropdown-menu li,
.pkp_navigation_primary li ul li {
    display: block;
    width: 100%;
    height: auto;
    position: static;
}

/* Dropdown item links */
.pkp_navigation_primary .dropdown-menu a,
.pkp_navigation_primary li ul a {
    display: block;
    width: 100%;
    padding: 9px 16px;
    height: auto;             /* override the 50px masthead-link height */
    font-size: 12.5px;
    font-weight: 500;
    color: var(--nbgr-text-mid);
    border-bottom: none;
    border-radius: 6px;       /* inset rounded hover */
    transition: background .12s, color .12s;
    letter-spacing: .01em;
}

.pkp_navigation_primary .dropdown-menu a:hover,
.pkp_navigation_primary li ul a:hover {
    background: var(--nbgr-cream);
    color: var(--nbgr-navy);
    text-decoration: none;
    border-bottom: none;
}

/* Caret on items with sub-menus */
.pkp_navigation_primary [aria-haspopup]::after {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 5px;
    border-top: 4px solid currentColor;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    vertical-align: middle;
    opacity: .7;
}

/* ============================================================
   HERO — current issue feature
   ============================================================ */
.homepage_hero {
    position: relative;
    background: linear-gradient(135deg, var(--nbgr-navy) 0%, var(--nbgr-navy-mid) 55%, var(--nbgr-forest) 125%);
    color: #fff;
    overflow: hidden;
}

.homepage_hero__dot-grid {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(195,162,78,.12) 1px, transparent 1.5px);
    background-size: 26px 26px;
    opacity: .6;
    pointer-events: none;
}

.homepage_hero__ring1,
.homepage_hero__ring2 {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.homepage_hero__ring1 {
    top: -80px; right: -60px;
    width: 520px; height: 520px;
    border: 1px solid rgba(255,255,255,.063);
}

.homepage_hero__ring2 {
    top: 30px; right: 120px;
    width: 360px; height: 360px;
    border: 1px solid rgba(195,162,78,.094);
}

.homepage_hero__inner {
    position: relative;
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 64px var(--nbgr-gutter) 70px;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 56px;
    align-items: center;
}

.homepage_hero__eyebrow {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 22px;
}

.homepage_hero__rule {
    height: 2px;
    width: 42px;
    background: var(--nbgr-gold);
    flex-shrink: 0;
}

.homepage_hero__issue-label {
    font-size: 11.5px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--nbgr-gold-light);
    font-weight: 600;
}

.homepage_hero__title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 46px;
    line-height: 1.13;
    letter-spacing: -.01em;
    margin: 0 0 22px;
}

.homepage_hero__description {
    font-size: 16px;
    line-height: 1.7;
    color: #c7d2e4;
    max-width: 520px;
    margin: 0 0 32px;
}

.homepage_hero__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.homepage_hero__cta-primary {
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
    font-weight: 700;
    font-size: 14px;
    padding: 14px 26px;
    border-radius: 3px;
    letter-spacing: .02em;
    transition: background .15s;
}

.homepage_hero__cta-primary:hover { background: var(--nbgr-gold-light); }

.homepage_hero__cta-secondary {
    border: 1px solid rgba(255,255,255,.267);
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    padding: 14px 24px;
    border-radius: 3px;
    letter-spacing: .02em;
    transition: background .15s;
}

.homepage_hero__cta-secondary:hover { background: rgba(255,255,255,.08); }

/* Hero cover */
.homepage_hero__cover-wrap {
    position: relative;
    justify-self: center;
}

.homepage_hero__cover-frame {
    position: absolute;
    inset: -14px;
    border: 1px solid rgba(195,162,78,.25);
    border-radius: 3px;
    pointer-events: none;
}

.homepage_hero__cover-wrap .obj_issue_cover {
    display: block;
    width: 316px;
    max-width: 100%;
    height: auto;
    border: 3px solid var(--nbgr-gold);
    box-shadow: 0 30px 70px rgba(0,0,0,.4);
    position: relative;
}

.homepage_hero__cover-date {
    position: absolute;
    bottom: -2px; right: -2px;
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    padding: 6px 11px;
    text-transform: uppercase;
}

/* ============================================================
   CURRENT ISSUE TOC
   ============================================================ */
.obj_issue_toc {
    background: var(--nbgr-cream);
}

.nbgr-toc__inner {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 62px var(--nbgr-gutter);
}

.nbgr-toc__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 34px;
    flex-wrap: wrap;
    gap: 14px;
}

.nbgr-toc__eyebrow {
    font-size: 11.5px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--nbgr-gold-muted);
    font-weight: 700;
}

.obj_issue_toc .heading {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 30px;
    color: var(--nbgr-navy);
    margin: 12px 0 0;
}

.nbgr-toc__view-all {
    font-size: 13px;
    font-weight: 700;
    color: #3b629a;
    letter-spacing: .02em;
    transition: color .15s;
}

.nbgr-toc__view-all:hover { color: var(--nbgr-navy); }

/* Section within TOC */
.obj_issue_toc .section {
    margin-bottom: 30px;
}

.nbgr-section-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.nbgr-section-header h3,
.nbgr-section-header h4 {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 17px;
    color: var(--nbgr-navy);
    margin: 0;
    letter-spacing: .01em;
    white-space: nowrap;
}

.nbgr-section-rule {
    flex: 1;
    height: 2px;
    background: linear-gradient(90deg, var(--nbgr-gold), var(--nbgr-cream-border2));
}

/* Article list grid */
.obj_issue_toc .cmp_article_list.articles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

/* ============================================================
   ARTICLE SUMMARY CARD
   ============================================================ */
.obj_article_summary {
    background: #fff;
    border: 1px solid var(--nbgr-cream-border2);
    border-top: 3px solid var(--nbgr-gold);
    border-radius: 2px;
    padding: 24px;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: box-shadow .18s, transform .18s;
}

.obj_article_summary:hover {
    box-shadow: 0 18px 40px rgba(34,54,88,.12);
    transform: translateY(-3px);
}

.nbgr-article-section-label {
    font-size: 10.5px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--nbgr-gold-muted);
    font-weight: 700;
    margin-bottom: 12px;
}

.obj_article_summary .title {
    margin: 0 0 12px;
}

.obj_article_summary .title a {
    font-family: var(--nbgr-font-serif);
    font-weight: 700;
    font-size: 17.5px;
    line-height: 1.36;
    color: var(--nbgr-text);
    transition: color .15s;
}

.obj_article_summary .title a:hover { color: #3b629a; }

.obj_article_summary .subtitle {
    display: block;
    font-size: 14px;
    margin-top: 4px;
}

.obj_article_summary .abstract {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--nbgr-text-muted);
    margin: 0;
}

.obj_article_summary .meta {
    margin-bottom: 16px;
}

.nbgr-article-footer {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 14px;
    border-top: 1px solid #eee6d4;
}

.obj_article_summary .authors {
    font-size: 12px;
    color: var(--nbgr-text-light);
    font-weight: 600;
}

.obj_article_summary .pages { display: none; }

.obj_article_summary .galleys_links {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.obj_galley_link {
    font-size: 10.5px;
    font-weight: 700;
    padding: 5px 9px;
    border-radius: 3px;
    transition: background .15s, border-color .15s, color .15s;
}

.obj_galley_link.pdf {
    background: var(--nbgr-navy);
    color: #fff;
}

.obj_galley_link.pdf:hover { background: var(--nbgr-navy-light); }

.obj_galley_link.html,
.obj_galley_link:not(.pdf) {
    border: 1px solid #cdc6b3;
    color: var(--nbgr-text-muted);
    background: transparent;
}

.obj_galley_link.html:hover,
.obj_galley_link:not(.pdf):hover {
    border-color: var(--nbgr-navy);
    color: var(--nbgr-navy);
}

/* ============================================================
   EDITORIAL / ABOUT SECTION
   ============================================================ */
.homepage_about {
    background: #fff;
}

.nbgr-about__inner {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 64px var(--nbgr-gutter);
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 54px;
}

.nbgr-about__eyebrow {
    font-size: 11.5px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--nbgr-gold-muted);
    font-weight: 700;
    margin-bottom: 14px;
}

.nbgr-editor-block {
    display: flex;
    gap: 22px;
    align-items: flex-start;
}

.nbgr-editor-avatar {
    flex-shrink: 0;
    width: 78px;
    height: 78px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--nbgr-navy), #3b629a);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nbgr-gold-light);
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 26px;
    border: 2px solid var(--nbgr-gold);
}

.nbgr-editorial-title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 25px;
    color: var(--nbgr-navy);
    line-height: 1.3;
    margin: 0 0 14px;
}

.nbgr-editorial-body {
    font-size: 15px;
    line-height: 1.75;
    color: var(--nbgr-text-mid);
    margin: 0 0 14px;
}

.nbgr-editorial-byline {
    font-size: 13px;
    color: var(--nbgr-text-light);
}

.nbgr-editorial-byline strong {
    font-weight: 700;
    color: var(--nbgr-navy);
}

.nbgr-editorial-link {
    display: inline-block;
    margin-top: 18px;
    font-size: 13px;
    font-weight: 700;
    color: #3b629a;
    transition: color .15s;
}

.nbgr-editorial-link:hover { color: var(--nbgr-navy); }

/* Why NBGR sidebar */
.nbgr-why {
    background: var(--nbgr-cream);
    border-left: 3px solid var(--nbgr-gold);
    padding: 30px 30px 28px;
}

.nbgr-why__title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 19px;
    color: var(--nbgr-navy);
    margin: 0 0 18px;
}

.nbgr-why__item {
    display: flex;
    gap: 13px;
    padding: 13px 0;
    border-top: 1px solid var(--nbgr-cream-border2);
}

.nbgr-why__number {
    color: var(--nbgr-gold);
    font-weight: 900;
    font-family: var(--nbgr-font-serif);
    flex-shrink: 0;
}

.nbgr-why__head {
    font-weight: 700;
    font-size: 13.5px;
    color: var(--nbgr-navy);
    margin-bottom: 3px;
}

.nbgr-why__text {
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--nbgr-text-muted);
}

/* ============================================================
   SEARCH + ARCHIVE SECTION
   ============================================================ */
.issues_archive {
    background: linear-gradient(135deg, var(--nbgr-navy) 0%, var(--nbgr-navy-mid) 60%, var(--nbgr-forest) 135%);
    color: #fff;
    position: relative;
    overflow: hidden;
}

.issues_archive__dot-grid {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(195,162,78,.11) 1px, transparent 1.5px);
    background-size: 26px 26px;
    opacity: .55;
    pointer-events: none;
}

.issues_archive__inner {
    position: relative;
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 60px var(--nbgr-gutter) 64px;
}

.issues_archive__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 30px;
}

.issues_archive__headline-area { max-width: 560px; }

.issues_archive__eyebrow {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 16px;
}

.issues_archive__rule {
    height: 2px;
    width: 42px;
    background: var(--nbgr-gold);
    flex-shrink: 0;
}

.issues_archive__eyebrow-label {
    font-size: 11.5px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--nbgr-gold-light);
    font-weight: 600;
}

.issues_archive__headline {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 32px;
    line-height: 1.15;
    margin: 0 0 14px;
}

.issues_archive__lead {
    font-size: 15px;
    line-height: 1.7;
    color: var(--nbgr-on-dark-mid);
    margin: 0;
}

/* Search form in archive */
.issues_archive .cmp_search {
    flex-shrink: 0;
    width: 420px;
    max-width: 100%;
    background: #fff;
    border-radius: 6px;
    display: flex;
    align-items: center;
    padding: 7px 7px 7px 16px;
    box-shadow: 0 20px 50px rgba(11,22,43,.33);
}

.issues_archive .cmp_search .search_icon {
    color: #9aabc6;
    font-size: 16px;
    flex-shrink: 0;
}

.issues_archive .cmp_search .search_input {
    border: none;
    outline: none;
    flex: 1;
    font-size: 13.5px;
    color: #2a3550;
    padding: 10px 12px;
    background: transparent;
    font-family: inherit;
}

.issues_archive .cmp_search .search_button {
    background: var(--nbgr-navy);
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    padding: 11px 20px;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s;
    white-space: nowrap;
}

.issues_archive .cmp_search .search_button:hover {
    background: var(--nbgr-navy-light);
}

/* Keyword chips */
.nbgr-keyword-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 34px;
}

.nbgr-keyword-chip {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    background: rgba(255,255,255,.071);
    border: 1px solid rgba(255,255,255,.18);
    color: #dbe6f2;
    padding: 7px 14px;
    border-radius: 20px;
    transition: background .15s;
}

.nbgr-keyword-chip:hover { background: rgba(255,255,255,.141); }

/* Volume heading */
.nbgr-volume-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
}

.nbgr-volume-title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 19px;
    color: #fff;
    margin: 0;
    white-space: nowrap;
}

.nbgr-volume-title span {
    color: var(--nbgr-on-dark-muted);
    font-weight: 400;
}

.nbgr-volume-rule { flex: 1; height: 1px; background: rgba(255,255,255,.133); }

.nbgr-volume-all {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--nbgr-gold-light);
    transition: color .15s;
    white-space: nowrap;
}

.nbgr-volume-all:hover { color: #fff; }

/* Issues list grid */
.issues_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* ============================================================
   ISSUE SUMMARY CARD (archive grid)
   ============================================================ */
.obj_issue_summary {
    display: flex;
    flex-direction: column;
    background: var(--nbgr-navy-card);
    border: 1px solid var(--nbgr-navy-border);
    border-radius: 3px;
    overflow: hidden;
    height: 100%;
    transition: box-shadow .18s, transform .18s, border-color .18s;
    text-decoration: none;
    color: inherit;
}

.obj_issue_summary:hover {
    box-shadow: 0 18px 44px rgba(0,0,0,.33);
    transform: translateY(-3px);
    border-color: rgba(195,162,78,.4);
}

.obj_issue_summary .cover {
    position: relative;
    height: 248px;
    overflow: hidden;
}

.obj_issue_summary .cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

/* Placeholder cover for issues without image */
.nbgr-issue-placeholder {
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 22px 20px;
    color: #fff;
}

.nbgr-issue-placeholder__dot-bg {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(195,162,78,.11) 1px, transparent 1.4px);
    background-size: 20px 20px;
    opacity: .6;
    pointer-events: none;
}

.nbgr-issue-placeholder__mark {
    position: relative;
    height: 34px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: .85;
}

.nbgr-issue-placeholder__bottom { position: relative; }

.nbgr-issue-placeholder__vol {
    font-size: 10.5px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--nbgr-gold-light);
    font-weight: 600;
    margin-bottom: 9px;
}

.nbgr-issue-placeholder__theme {
    font-family: var(--nbgr-font-serif);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3;
}

/* Issue status badge */
.nbgr-issue-badge {
    position: absolute;
    top: 12px; right: 12px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 2px;
}

.nbgr-issue-badge--current {
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
}

.nbgr-issue-badge--published {
    background: rgba(255,255,255,.9);
    color: var(--nbgr-navy);
}

/* Issue card body */
.obj_issue_summary .series {
    padding: 18px 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.obj_issue_summary .published {
    font-size: 11px;
    letter-spacing: .04em;
    color: var(--nbgr-text-faint);
    font-weight: 700;
    margin-bottom: 7px;
}

.obj_issue_summary .title {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: #e7ecf4;
    margin-bottom: 14px;
    flex: 1;
}

.nbgr-issue-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: var(--nbgr-text-faint);
    margin-top: auto;
}

.nbgr-issue-browse {
    color: var(--nbgr-gold-light);
    font-weight: 700;
}

/* ============================================================
   ANNOUNCEMENTS + SUBMIT BAND
   ============================================================ */
.pkp_announcements {
    background: var(--nbgr-navy);
    color: #fff;
}

.nbgr-announcements__inner {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 54px var(--nbgr-gutter);
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 54px;
    align-items: center;
}

.nbgr-announcements__eyebrow {
    font-size: 11.5px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--nbgr-gold-light);
    font-weight: 700;
    margin-bottom: 20px;
}

.nbgr-announcements__list { margin: 0; }

.obj_announcement_summary {
    display: flex;
    gap: 18px;
    padding: 15px 0;
    border-top: 1px solid rgba(255,255,255,.122);
    align-items: baseline;
}

.obj_announcement_summary .date {
    flex-shrink: 0;
    font-size: 11px;
    color: var(--nbgr-text-faint);
    width: 96px;
    letter-spacing: .03em;
}

.obj_announcement_summary .title a,
.obj_announcement_summary .title {
    font-size: 14px;
    color: #e7ecf4;
    line-height: 1.45;
}

.obj_announcement_summary .title a:hover { color: var(--nbgr-gold-light); }

/* Submit sidebar */
.nbgr-submit-aside {
    background: linear-gradient(150deg, var(--nbgr-navy-mid), var(--nbgr-forest));
    border: 1px solid rgba(195,162,78,.25);
    border-radius: 4px;
    padding: 34px 32px;
    text-align: center;
}

.nbgr-submit-aside__title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 23px;
    margin: 0 0 10px;
}

.nbgr-submit-aside__lead {
    font-size: 13.5px;
    color: var(--nbgr-on-dark-mid);
    line-height: 1.6;
    margin: 0 0 22px;
}

.nbgr-submit-aside__cta {
    display: block;
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
    font-weight: 700;
    font-size: 14px;
    padding: 14px;
    border-radius: 3px;
    letter-spacing: .02em;
    transition: background .15s;
}

.nbgr-submit-aside__cta:hover { background: var(--nbgr-gold-light); }

/* ============================================================
   INDEXING BAR
   ============================================================ */
.nbgr-indexing {
    background: var(--nbgr-cream);
    border-top: 1px solid var(--nbgr-cream-border2);
}

.nbgr-indexing__inner {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 34px var(--nbgr-gutter);
    display: flex;
    align-items: center;
    gap: 26px;
    flex-wrap: wrap;
}

.nbgr-indexing__label {
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #8a7c5a;
    font-weight: 700;
    white-space: nowrap;
}

.nbgr-indexing__badges {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.nbgr-indexing__badge {
    font-size: 12px;
    font-weight: 600;
    color: var(--nbgr-text-muted);
    background: #fff;
    border: 1px solid var(--nbgr-cream-border);
    padding: 8px 14px;
    border-radius: 3px;
}

/* ============================================================
   FOOTER
   ============================================================ */
.pkp_structure_footer_wrapper {
    background: var(--nbgr-navy-dark);
    color: #aebbd1;
    border-top: 2px solid var(--nbgr-gold);
}

.pkp_structure_footer {
    max-width: var(--nbgr-max-width);
    margin: 0 auto;
    padding: 54px var(--nbgr-gutter) 30px;
}

.nbgr-footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 40px;
}

/* Footer brand column */
.pkp_footer_content { }

.nbgr-footer__brand {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 18px;
}

.nbgr-footer__mark {
    height: 42px;
    filter: brightness(0) invert(1);
    opacity: .9;
}

.nbgr-footer__brand-name {
    font-weight: 800;
    color: #fff;
    font-size: 17px;
}

.nbgr-footer__brand-sub {
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #7d8eaa;
    margin-top: 3px;
}

.nbgr-footer__desc {
    font-size: 12.5px;
    line-height: 1.7;
    color: #8fa0bb;
    margin: 0 0 16px;
    max-width: 300px;
}

.nbgr-footer__meta {
    font-size: 11.5px;
    color: #7d8eaa;
    line-height: 1.8;
}

/* Footer nav columns */
.nbgr-footer__nav-heading {
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--nbgr-gold-light);
    font-weight: 700;
    margin-bottom: 16px;
}

.nbgr-footer__nav-list li a {
    display: block;
    font-size: 12.5px;
    color: var(--nbgr-on-dark-muted);
    padding: 6px 0;
    transition: color .15s;
}

.nbgr-footer__nav-list li a:hover { color: #fff; }

/* Brand/copyright strip */
.pkp_brand_footer {
    margin-top: 40px;
    padding-top: 22px;
    border-top: 1px solid #26384f;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    font-size: 11.5px;
    color: #7d8eaa;
}

.pkp_brand_footer a {
    color: #7d8eaa;
    transition: color .15s;
}

.pkp_brand_footer a:hover { color: #aebbd1; }

.pkp_brand_footer img {
    height: 20px;
    width: auto;
    opacity: .6;
    filter: brightness(0) invert(1);
}

.nbgr-footer__wcag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.nbgr-footer__wcag-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--nbgr-teal);
    flex-shrink: 0;
}

.nbgr-footer__legal {
    margin-left: auto;
}

/* ============================================================
   PAGE — login / auth (userLogin.tpl)
   Split layout: navy brand panel + cream form card.
   ============================================================ */
.nbgr-auth {
    background:
        radial-gradient(circle at 18% 20%, rgba(195,162,78,.06), transparent 42%),
        var(--nbgr-cream);
    padding: 56px var(--nbgr-gutter) 80px;
}

.nbgr-auth__inner {
    max-width: 960px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.85fr 1fr;
    background: #fff;
    border: 1px solid var(--nbgr-cream-border);
    border-top: 3px solid var(--nbgr-gold);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 18px 50px rgba(21,36,58,.12);
}

/* --- Brand panel --- */
.nbgr-auth__brand {
    position: relative;
    background:
        radial-gradient(circle at 80% 12%, rgba(195,162,78,.18), transparent 55%),
        linear-gradient(160deg, var(--nbgr-navy) 0%, var(--nbgr-navy-dark) 100%);
    padding: 48px 38px;
    display: flex;
    align-items: center;
}

.nbgr-auth__brand::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);
    background-size: 18px 18px;
    opacity: .5;
    pointer-events: none;
}

.nbgr-auth__brand-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
}

.nbgr-auth__brand-acronym {
    font-family: var(--nbgr-font-serif);
    font-size: 52px;
    font-weight: 700;
    line-height: 1;
    color: var(--nbgr-gold);
    letter-spacing: .02em;
}

.nbgr-auth__brand-rule {
    width: 44px;
    height: 3px;
    background: var(--nbgr-gold);
    margin: 18px 0;
    border-radius: 2px;
}

.nbgr-auth__brand-name {
    font-family: var(--nbgr-font-serif);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--nbgr-on-dark);
}

.nbgr-auth__brand-tagline {
    margin-top: 14px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--nbgr-on-dark-muted);
    line-height: 1.5;
}

/* --- Form card --- */
.nbgr-auth__main {
    padding: 44px 46px 48px;
}

.nbgr-auth .cmp_breadcrumbs {
    margin-bottom: 18px;
    font-size: 12px;
}
.nbgr-auth .cmp_breadcrumbs ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.nbgr-auth .cmp_breadcrumbs a { color: var(--nbgr-navy-light); }
.nbgr-auth .cmp_breadcrumbs a:hover { color: var(--nbgr-gold-muted); }
.nbgr-auth .cmp_breadcrumbs .separator { color: var(--nbgr-text-light); }
.nbgr-auth .cmp_breadcrumbs .current span { color: var(--nbgr-text-mid); }

.nbgr-auth__title {
    font-family: var(--nbgr-font-serif);
    font-size: 30px;
    font-weight: 700;
    color: var(--nbgr-navy);
    margin: 0 0 6px;
    line-height: 1.15;
}

.nbgr-auth__required-note {
    font-size: 12.5px;
    color: var(--nbgr-text-light);
    margin: 0 0 24px;
}

.nbgr-auth__intro {
    font-size: 14px;
    line-height: 1.6;
    color: var(--nbgr-text-mid);
    margin: 0 0 24px;
    max-width: 42ch;
}

.nbgr-auth__message {
    background: var(--nbgr-cream-mid);
    border-left: 3px solid var(--nbgr-gold);
    padding: 12px 14px;
    border-radius: 4px;
    font-size: 13.5px;
    color: var(--nbgr-text-mid);
    margin: 0 0 22px;
}

/* Error block (OJS .pkp_form_error) */
.nbgr-auth .pkp_form_error {
    background: #fbeded;
    border-left: 3px solid #c0392b;
    color: #8e2a20;
    padding: 12px 14px;
    border-radius: 4px;
    font-size: 13.5px;
    margin: 0 0 20px;
}

/* Fields */
.nbgr-auth .cmp_form .fields {
    border: none;
    margin: 0;
    padding: 0;
}

.nbgr-auth .username,
.nbgr-auth .password,
.nbgr-auth .email {
    margin-bottom: 18px;
}

.nbgr-auth .cmp_form label {
    display: block;
}

.nbgr-auth .cmp_form .label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--nbgr-text);
    margin-bottom: 7px;
    letter-spacing: .01em;
}

.nbgr-auth .cmp_form .required {
    color: var(--nbgr-gold-muted);
    margin-left: 2px;
}

.nbgr-auth .cmp_form input[type="text"],
.nbgr-auth .cmp_form input[type="email"],
.nbgr-auth .cmp_form input[type="password"],
.nbgr-auth .cmp_form select {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 13px;
    font-size: 14px;
    font-family: var(--nbgr-font-sans);
    color: var(--nbgr-text);
    background: var(--nbgr-cream);
    border: 1px solid var(--nbgr-cream-border);
    border-radius: 6px;
    transition: border-color .15s, box-shadow .15s, background .15s;
}

.nbgr-auth .cmp_form select {
    height: 42px;
    cursor: pointer;
}

.nbgr-auth .cmp_form input[type="text"]:focus,
.nbgr-auth .cmp_form input[type="email"]:focus,
.nbgr-auth .cmp_form input[type="password"]:focus,
.nbgr-auth .cmp_form select:focus {
    outline: none;
    background: #fff;
    border-color: var(--nbgr-gold);
    box-shadow: 0 0 0 3px rgba(195,162,78,.18);
}

.nbgr-auth__forgot {
    display: inline-block;
    margin-top: 8px;
    font-size: 12.5px;
    color: var(--nbgr-navy-light);
}
.nbgr-auth__forgot:hover { color: var(--nbgr-gold-muted); }

/* Remember-me checkbox */
.nbgr-auth .remember.checkbox label {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
}
.nbgr-auth .remember.checkbox .label {
    margin: 0;
    font-weight: 500;
    font-size: 13px;
    color: var(--nbgr-text-mid);
}
.nbgr-auth .remember.checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--nbgr-navy);
    flex-shrink: 0;
}

.nbgr-auth .recaptcha_wrapper,
.nbgr-auth .altcha_wrapper {
    border: none;
    padding: 0;
    margin: 0 0 20px;
}

/* Buttons / actions */
.nbgr-auth .buttons {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    margin-top: 26px;
}

.nbgr-auth .buttons .submit {
    background: var(--nbgr-navy);
    color: #fff;
    font-family: var(--nbgr-font-sans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 12px 30px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background .15s, transform .05s;
}
.nbgr-auth .buttons .submit:hover { background: var(--nbgr-navy-light); }
.nbgr-auth .buttons .submit:active { transform: translateY(1px); }

.nbgr-auth .buttons .register,
.nbgr-auth .buttons .login {
    font-size: 13px;
    font-weight: 600;
    color: var(--nbgr-navy-light);
}
.nbgr-auth .buttons .register:hover,
.nbgr-auth .buttons .login:hover { color: var(--nbgr-gold-muted); }

/* ------------------------------------------------------------
   Register variant — full-width card + navy top-band + 2-col grid
   ------------------------------------------------------------ */
.nbgr-auth--register .nbgr-auth__inner {
    grid-template-columns: 1fr;
    max-width: 760px;
}

.nbgr-auth__topband {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 46px;
    background:
        radial-gradient(circle at 92% 0%, rgba(195,162,78,.16), transparent 60%),
        linear-gradient(160deg, var(--nbgr-navy) 0%, var(--nbgr-navy-dark) 100%);
}

.nbgr-auth__topband-acronym {
    font-family: var(--nbgr-font-serif);
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    color: var(--nbgr-gold);
    letter-spacing: .02em;
    flex-shrink: 0;
}

.nbgr-auth__topband-rule {
    width: 1px;
    align-self: stretch;
    background: rgba(255,255,255,.18);
    flex-shrink: 0;
}

.nbgr-auth__topband-name {
    font-family: var(--nbgr-font-serif);
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--nbgr-on-dark);
}

/* fieldset section headings (legends): user.profile / user.login etc. */
.nbgr-auth--register .cmp_form fieldset {
    border: none;
    margin: 0 0 26px;
    padding: 0;
}

.nbgr-auth--register .cmp_form fieldset > legend:not(.pkp_screen_reader) {
    display: block;
    width: 100%;
    font-family: var(--nbgr-font-sans);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--nbgr-navy);
    padding: 0 0 9px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--nbgr-cream-border);
}

/* Two-column field grid for the main identity + login fieldsets */
.nbgr-auth--register fieldset.identity > .fields,
.nbgr-auth--register fieldset.login > .fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 18px;
    border: none;
    padding: 0;
}

.nbgr-auth--register fieldset.identity > .fields > div,
.nbgr-auth--register fieldset.login > .fields > div {
    margin: 0;
}

/* Items that should span the full row */
.nbgr-auth--register .identity .affiliation,
.nbgr-auth--register .identity .country {
    grid-column: 1 / -1;
}

/* Consent / reviewer opt-in checkboxes — no background, just spacing */
.nbgr-auth--register .cmp_form fieldset.consent,
.nbgr-auth--register .cmp_form fieldset.reviewer {
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 14px;
}

.nbgr-auth--register .optin label {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--nbgr-text-mid);
    cursor: pointer;
}

/* Space between successive opt-in rows (each wrapped in its own .fields) */
.nbgr-auth--register .consent .fields + .fields,
.nbgr-auth--register .reviewer .fields + .fields,
.nbgr-auth--register .optin label + label {
    margin-top: 14px;
}

.nbgr-auth--register .optin input[type="checkbox"],
.nbgr-auth--register .reviewer input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-top: 1px;
    accent-color: var(--nbgr-navy);
    flex-shrink: 0;
}

.nbgr-auth--register .optin label a {
    color: var(--nbgr-navy-light);
    text-decoration: underline;
}
.nbgr-auth--register .optin label a:hover { color: var(--nbgr-gold-muted); }

.nbgr-auth--register .reviewer .optin label {
    margin-bottom: 10px;
}
.nbgr-auth--register .reviewer_interests { margin-top: 14px; }
.nbgr-auth--register .reviewer_interests .label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--nbgr-text);
    margin-bottom: 7px;
}

/* Form-level error summary (common/formErrors.tpl) */
.nbgr-auth #formErrors {
    background: #fbeded;
    border-left: 3px solid #c0392b;
    border-radius: 4px;
    padding: 12px 16px;
    margin: 0 0 22px;
}
.nbgr-auth #formErrors .pkp_form_error {
    display: block;
    font-weight: 700;
    color: #8e2a20;
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 6px;
    font-size: 13.5px;
}
.nbgr-auth .pkp_form_error_list {
    margin: 0;
    padding-left: 18px;
    font-size: 13px;
}
.nbgr-auth .pkp_form_error_list a { color: #8e2a20; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .homepage_hero__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .homepage_hero__eyebrow { justify-content: center; }
    .homepage_hero__description { max-width: 100%; }
    .homepage_hero__actions { justify-content: center; }
    .homepage_hero__cover-wrap { justify-self: center; order: -1; }

    .nbgr-about__inner { grid-template-columns: 1fr; }
    .nbgr-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
    .obj_issue_toc .cmp_article_list.articles { grid-template-columns: repeat(2, 1fr); }

    .nbgr-auth__inner { grid-template-columns: 1fr; }
    .nbgr-auth__brand { padding: 36px 38px; }
    .nbgr-auth__brand-inner {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 0 18px;
    }
    .nbgr-auth__brand-acronym { font-size: 40px; }
    .nbgr-auth__brand-rule { display: none; }
    .nbgr-auth__brand-tagline { width: 100%; margin-top: 10px; }
}

@media (max-width: 768px) {
    :root { --nbgr-gutter: 16px; }

    .nbgr-head-actions { display: none; }
    .pkp_site_nav_toggle { display: block; }

    .homepage_hero__title { font-size: 32px; }
    .obj_issue_toc .cmp_article_list.articles { grid-template-columns: 1fr; }
    .issues_list { grid-template-columns: 1fr; }
    .issues_archive__head { flex-direction: column; align-items: flex-start; }
    .issues_archive .cmp_search { width: 100%; }
    .nbgr-announcements__inner { grid-template-columns: 1fr; }
    .nbgr-footer__grid { grid-template-columns: 1fr; }
    .pkp_brand_footer { flex-direction: column; align-items: flex-start; }
    .nbgr-footer__legal { margin-left: 0; }

    .nbgr-auth { padding: 32px var(--nbgr-gutter) 56px; }
    .nbgr-auth__main { padding: 32px 26px 36px; }
    .nbgr-auth__title { font-size: 25px; }
    .nbgr-auth .buttons { gap: 14px; }
    .nbgr-auth .buttons .submit { width: 100%; text-align: center; }

    .nbgr-auth__topband { padding: 18px 26px; }
    .nbgr-auth--register fieldset.identity > .fields,
    .nbgr-auth--register fieldset.login > .fields {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   INTERIOR PAGES — dark hero + body (Sovereign Gateway)
   Pages: about, contact, privacy, submissions, editorial masthead,
   search. Each override wraps content as:
     <div class="page page_X nbgr-ipage">
       {nbgr_page_hero}            ← full-bleed navy hero
       <div class="nbgr-ipage__body">…</div>
   ============================================================ */

/* Full-bleed wrapper (hero dark, body white) */
.nbgr-ipage {
    max-width: none;
    margin: 0;
    padding: 0;
    background: #fff;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

/* ── Dark hero ── */
.nbgr-phero {
    position: relative;
    color: #fff;
    background: linear-gradient(135deg, var(--nbgr-navy) 0%, #1a2c47 60%, var(--nbgr-navy-light) 130%);
    overflow: hidden;
}
.nbgr-phero--forest { background: linear-gradient(135deg, var(--nbgr-navy), var(--nbgr-forest)); }
.nbgr-phero::before {
    content: "";
    position: absolute; inset: 0;
    background-image: radial-gradient(rgba(195, 162, 78, 0.10) 1px, transparent 1.5px);
    background-size: 26px 26px;
    opacity: 0.6;
}
.nbgr-phero__inner {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 44px 28px 46px;
}
.nbgr-phero__eyebrow {
    display: flex; align-items: center; gap: 13px;
    font-size: 11.5px; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--nbgr-gold-light); font-weight: 600; margin-bottom: 14px;
}
.nbgr-phero__rule { display: inline-block; width: 40px; height: 2px; background: var(--nbgr-gold); }
.nbgr-phero__rule--solo { margin-bottom: 18px; }
.nbgr-phero__title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900; font-size: 38px; line-height: 1.16;
    color: #fff; margin: 0; max-width: 760px;
}
.nbgr-phero__intro {
    font-size: 15px; line-height: 1.7; color: var(--nbgr-on-dark);
    max-width: 640px; margin: 16px 0 0;
}
.nbgr-phero__intro a { color: var(--nbgr-gold-light); border-bottom: 1px solid rgba(216, 189, 126, 0.4); }
.nbgr-phero__intro a:hover { color: #fff; }

/* ── Body ── */
.nbgr-ipage__body {
    max-width: 1040px;
    margin: 0 auto;
    padding: 48px 28px 72px;
}
.nbgr-ipage__body--prose { max-width: 820px; }
.nbgr-ipage__body--narrow { max-width: 880px; }
.nbgr-ipage__body--rail {
    max-width: 1120px;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 50px;
    align-items: start;
}
.nbgr-ipage__main { min-width: 0; }
.nbgr-ipage__rail { position: sticky; top: 66px; display: flex; flex-direction: column; gap: 16px; }

/* ── Prose document sections ── */
.nbgr-doc { color: var(--nbgr-text); font-size: 15.5px; line-height: 1.78; }
.nbgr-doc + .nbgr-doc { margin-top: 34px; }
.nbgr-doc h2 {
    font-family: var(--nbgr-font-serif); font-weight: 900; font-size: 22px;
    color: var(--nbgr-navy); line-height: 1.3; margin: 0 0 14px;
}
.nbgr-doc h3 { font-family: var(--nbgr-font-serif); font-weight: 700; font-size: 17px; color: var(--nbgr-navy); margin: 1.6em 0 0.5em; }
.nbgr-doc p { margin: 0 0 1.05em; }
.nbgr-doc ul, .nbgr-doc ol { margin: 0 0 1.05em; padding-left: 1.4em; }
.nbgr-doc ul { list-style: disc; }
.nbgr-doc ol { list-style: decimal; }
.nbgr-doc li { margin: 0.3em 0; }
.nbgr-doc li::marker { color: var(--nbgr-gold-muted); }
.nbgr-doc a { color: var(--nbgr-navy-light); border-bottom: 1px solid rgba(46, 73, 122, 0.3); transition: color 0.15s, border-color 0.15s; }
.nbgr-doc a:hover { color: var(--nbgr-gold-muted); border-color: var(--nbgr-gold); }
.nbgr-doc blockquote { margin: 1.4em 0; padding: 6px 0 6px 22px; border-left: 3px solid var(--nbgr-gold); color: var(--nbgr-text-mid); font-style: italic; }
.nbgr-doc hr { border: 0; border-top: 1px solid var(--nbgr-cream-border); margin: 2em 0; }
.nbgr-doc img { max-width: 100%; height: auto; }

/* edit link for managers — small subtle pill, not an inline word run-on */
.nbgr-ipage .pkpEditLink,
.nbgr-ipage a[href*="management/settings"] {
    display: inline-block;
    margin-left: 10px;
    font-family: var(--nbgr-font-sans);
    font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--nbgr-navy-light);
    background: var(--nbgr-cream);
    border: 1px solid var(--nbgr-cream-border);
    border-radius: 20px; padding: 3px 10px;
    vertical-align: middle; border-bottom: 1px solid var(--nbgr-cream-border);
}
.nbgr-ipage .pkpEditLink:hover,
.nbgr-ipage a[href*="management/settings"]:hover { color: var(--nbgr-navy); border-color: var(--nbgr-navy-light); }

/* ── Submissions: checklist + CTA rail ── */
.nbgr-rail-card--accent {
    background: var(--nbgr-cream);
    border: 1px solid var(--nbgr-cream-border);
    border-top: 3px solid var(--nbgr-gold);
    border-radius: 3px;
    padding: 22px 24px;
}
.nbgr-rail-card--accent .nbgr-rail-card__title { color: var(--nbgr-gold-muted); }
.nbgr-checklist ul { list-style: none; margin: 0; padding: 0; }
.nbgr-checklist li {
    position: relative; padding: 9px 0 9px 26px;
    font-size: 12.5px; line-height: 1.5; color: var(--nbgr-text-mid);
    border-top: 1px solid var(--nbgr-cream-border);
}
.nbgr-checklist li:first-child { border-top: 0; }
.nbgr-checklist li::before { content: "\2713"; position: absolute; left: 0; top: 9px; color: var(--nbgr-forest); font-weight: 800; }
.nbgr-submit-cta__title { font-family: var(--nbgr-font-serif); font-weight: 900; font-size: 18px; color: #fff; margin-bottom: 6px; }
.nbgr-submit-cta__lead { font-size: 12.5px; color: var(--nbgr-on-dark-muted); line-height: 1.55; margin: 0 0 16px; }
.nbgr-submit-cta__btn {
    display: block; text-align: center;
    background: var(--nbgr-gold); color: var(--nbgr-navy-dark);
    font-weight: 700; font-size: 13.5px; padding: 12px; border-radius: 3px;
}
.nbgr-submit-cta__btn:hover { background: var(--nbgr-gold-light); }

/* ── Contact ── */
.page_contact .contact_section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
}
.page_contact .address { grid-column: 1 / -1; color: var(--nbgr-text-mid); line-height: 1.7; }
.page_contact .contact {
    background: var(--nbgr-cream);
    border: 1px solid var(--nbgr-cream-border);
    border-radius: 6px; padding: 22px 24px;
}
.page_contact .contact h2 {
    font-family: var(--nbgr-font-sans); font-size: 12px; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--nbgr-gold-muted); margin: 0 0 14px;
}
.page_contact .contact .name { font-family: var(--nbgr-font-serif); font-size: 18px; color: var(--nbgr-navy); margin-bottom: 4px; }
.page_contact .contact .title, .page_contact .contact .affiliation { color: var(--nbgr-text-mid); font-size: 14px; line-height: 1.5; }
.page_contact .contact .phone, .page_contact .contact .email { margin-top: 12px; font-size: 14px; }
.page_contact .contact .phone .label { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--nbgr-text-light); }
.page_contact .contact .email a { color: var(--nbgr-navy-light); border-bottom: 1px solid rgba(46, 73, 122, 0.3); }
.page_contact .contact .email a:hover { color: var(--nbgr-gold-muted); border-color: var(--nbgr-gold); }

/* ── Editorial masthead ── */
.nbgr-role-heading {
    font-family: var(--nbgr-font-serif); font-size: 19px; color: var(--nbgr-navy);
    margin: 1.7em 0 0.2em; padding-bottom: 8px; border-bottom: 1px solid var(--nbgr-cream-border);
}
.nbgr-role-heading:first-child { margin-top: 0; }
.page_masthead .user_listing {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 6px 24px; margin: 14px 0 8px;
}
.page_masthead .user_listing li { padding: 12px 0; border-bottom: 1px solid var(--nbgr-cream-mid); }
.page_masthead .user_listing .name { display: block; font-weight: 600; color: var(--nbgr-navy); }
.page_masthead .user_listing .affiliation { display: block; font-size: 13px; color: var(--nbgr-text-mid); margin-top: 2px; }
.page_masthead .user_listing .date_start { display: block; font-size: 12px; color: var(--nbgr-text-light); }
.page_masthead .user_listing .orcid { margin-left: 4px; }
.page_masthead .user_listing .orcid svg, .page_masthead .user_listing .orcid img { width: 14px; height: 14px; vertical-align: -2px; }
.nbgr-masthead-note { color: var(--nbgr-text-mid); font-size: 14px; margin: 1.4em 0; }

/* ── Search ── */
.page_search .cmp_form .search_input { margin-bottom: 16px; }
.page_search input.query {
    width: 100%; padding: 13px 16px; font-size: 16px; color: var(--nbgr-text);
    background: #fff; border: 1px solid var(--nbgr-cream-border); border-radius: 6px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.page_search input.query:focus { outline: none; border-color: var(--nbgr-gold); box-shadow: 0 0 0 3px rgba(195, 162, 78, 0.18); }
.page_search .search_advanced { border: 1px solid var(--nbgr-cream-border); border-radius: 8px; padding: 18px 20px 20px; margin: 0 0 18px; background: var(--nbgr-cream); }
.page_search .search_advanced legend { font-family: var(--nbgr-font-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--nbgr-gold-muted); padding: 0 6px; }
.page_search .search_advanced .label, .page_search .search_advanced label { display: inline-block; font-size: 13px; font-weight: 600; color: var(--nbgr-text-mid); margin: 8px 8px 4px 0; }
.page_search .search_advanced input[type="text"], .page_search .search_advanced select { padding: 8px 10px; font-size: 14px; border: 1px solid var(--nbgr-cream-border); border-radius: 5px; background: #fff; }
.page_search .date_range { display: flex; flex-wrap: wrap; gap: 16px 28px; margin-bottom: 10px; }
.page_search .submit { margin-top: 4px; }
.page_search button.submit {
    font-family: var(--nbgr-font-sans); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
    color: var(--nbgr-navy-dark); background: var(--nbgr-gold); border: 0; border-radius: 6px; padding: 12px 28px; cursor: pointer;
    transition: background 0.15s, transform 0.1s;
}
.page_search button.submit:hover { background: var(--nbgr-gold-light); }
.page_search button.submit:active { transform: translateY(1px); }
.page_search .search_results { list-style: none; margin: 26px 0 0; padding: 0; }
.page_search .search_results > li { padding: 0; margin-bottom: 18px; }
.page_search .cmp_pagination { margin-top: 24px; color: var(--nbgr-text-mid); font-size: 14px; }

/* ── Interior pages: responsive ── */
@media (max-width: 980px) {
    .nbgr-ipage__body--rail { grid-template-columns: 1fr; gap: 32px; }
    .nbgr-ipage__rail { position: static; }
}
@media (max-width: 767px) {
    .nbgr-phero__inner { padding: 30px 18px 32px; }
    .nbgr-phero__title { font-size: 27px; }
    .nbgr-ipage__body { padding: 30px 18px 50px; }
}

/* ============================================================
   ARTICLE PAGE (obj_article_details — Sovereign Gateway)
   ============================================================ */
.pkp_page_article .pkp_structure_content { background: #fff; }

.page_article {
    max-width: 1180px;
    margin: 0 auto;
    padding: 8px 28px 64px;
}
.page_article .cmp_breadcrumbs { margin: 14px 0 4px; }

/* ── Header band ── */
.nbgr-article__head {
    padding: 20px 0 26px;
    border-bottom: 1px solid var(--nbgr-cream-border);
    margin-bottom: 36px;
}
.nbgr-article__badge {
    display: inline-block;
    font-family: var(--nbgr-font-sans);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #fff;
    background: var(--nbgr-navy-light);
    padding: 5px 11px;
    border-radius: 2px;
    margin-bottom: 16px;
}
.obj_article_details .page_title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900;
    font-size: 33px;
    line-height: 1.22;
    color: var(--nbgr-text);
    margin: 0 0 10px;
    max-width: 900px;
}
.obj_article_details .subtitle {
    font-family: var(--nbgr-font-serif);
    font-weight: 400;
    font-size: 20px;
    color: var(--nbgr-text-mid);
    margin: 0 0 12px;
    max-width: 900px;
}

/* author cards */
.nbgr-article__authors { margin: 22px 0 0; }
.nbgr-article__authors ul.authors {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 38px;
}
.nbgr-author { display: flex; gap: 12px; align-items: flex-start; }
.nbgr-author__avatar {
    flex: none;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--nbgr-navy), var(--nbgr-navy-light));
    color: var(--nbgr-gold-light);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    display: flex; align-items: center; justify-content: center;
}
.nbgr-author__body { display: flex; flex-direction: column; }
.nbgr-author .name {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--nbgr-navy);
    display: flex; align-items: center; gap: 7px;
}
.nbgr-author__corr {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.04em;
    background: var(--nbgr-forest);
    color: #fff;
    padding: 2px 6px;
    border-radius: 2px;
}
.nbgr-author .affiliation { font-size: 11.5px; color: var(--nbgr-text-mid); margin-top: 2px; }
.nbgr-author .orcid {
    font-size: 11px;
    color: var(--nbgr-navy-light);
    margin-top: 3px;
    display: inline-flex; align-items: center; gap: 5px;
}
/* tame the oversized ORCID/ROR icons */
.nbgr-author .orcid svg,
.nbgr-author .orcid img,
.nbgr-author .affiliation svg,
.nbgr-author .affiliation img { width: 13px; height: 13px; vertical-align: -2px; }

/* meta row */
.nbgr-article__meta {
    display: flex; flex-wrap: wrap; gap: 10px 24px;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--nbgr-cream-border);
    font-size: 12px;
    color: var(--nbgr-text-light);
}
.nbgr-article__meta strong { color: var(--nbgr-text-mid); font-weight: 700; }
.nbgr-article__meta a { color: var(--nbgr-navy-light); }
.nbgr-article__meta a:hover { color: var(--nbgr-gold-muted); }

/* ── Body + rail grid ── */
.obj_article_details .row {
    display: grid;
    grid-template-columns: 1fr 312px;
    gap: 54px;
    align-items: start;
}
.obj_article_details .main_entry { min-width: 0; }

/* generic item label in body */
.obj_article_details .main_entry .item { margin-bottom: 30px; }
.obj_article_details .main_entry .item > .label {
    font-family: var(--nbgr-font-sans);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--nbgr-gold-muted);
    margin: 0 0 12px;
}

/* abstract */
.nbgr-abstract {
    border-left: 3px solid var(--nbgr-gold);
    padding: 4px 0 4px 26px;
}
.nbgr-abstract__body, .nbgr-abstract__body p {
    font-family: var(--nbgr-font-serif);
    font-size: 16.5px;
    line-height: 1.72;
    color: #2c3850;
    margin: 0 0 12px;
}
.nbgr-keywords { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.nbgr-keyword {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--nbgr-navy-light);
    background: #eef3fb;
    border: 1px solid #dde7f4;
    padding: 5px 12px;
    border-radius: 20px;
}

/* references */
.nbgr-references__list {
    margin: 0; padding-left: 22px;
    list-style: decimal;
}
.nbgr-references__list li {
    font-size: 13px;
    line-height: 1.6;
    color: var(--nbgr-text-mid);
    margin-bottom: 12px;
}
.nbgr-references__list li::marker { color: var(--nbgr-gold-muted); font-weight: 700; }
.nbgr-references .value > p { font-size: 13px; line-height: 1.6; color: var(--nbgr-text-mid); margin: 0 0 12px; }

/* ── Right rail ── */
.obj_article_details .entry_details { position: sticky; top: 66px; display: flex; flex-direction: column; gap: 16px; }
.nbgr-rail-card {
    border: 1px solid var(--nbgr-cream-border);
    border-radius: 4px;
    padding: 18px 20px;
}
.nbgr-rail-card__title {
    font-family: var(--nbgr-font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--nbgr-text-light);
    margin: 0 0 14px;
}
.nbgr-rail-card--dark {
    background: var(--nbgr-navy);
    border-color: var(--nbgr-navy);
}
.nbgr-rail-card--dark .nbgr-rail-card__title { color: var(--nbgr-gold-light); }
.nbgr-rail-card--dark .galleys_links a,
.nbgr-rail-card--dark .galleys_links .galley_link {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--nbgr-gold);
    color: var(--nbgr-navy-dark);
    font-weight: 700;
    font-size: 13px;
    padding: 12px 14px;
    border-radius: 3px;
    margin-bottom: 8px;
}
.nbgr-rail-card--dark .galleys_links a:hover { background: var(--nbgr-gold-light); }

.nbgr-rail-card .sub_item { margin-bottom: 8px; }
.nbgr-rail-card .title {
    font-family: var(--nbgr-font-serif);
    font-weight: 700;
    font-size: 14.5px;
    color: var(--nbgr-navy);
    line-height: 1.35;
}
.nbgr-rail-card .title:hover { color: var(--nbgr-gold-muted); }
.nbgr-rail-meta { font-size: 12px; color: var(--nbgr-text-light); }
.nbgr-rail-meta span { color: var(--nbgr-text-mid); font-weight: 600; }
.nbgr-rail-card.cover_image img { width: 100%; height: auto; border: 1px solid var(--nbgr-cream-border); }
.nbgr-license p { font-size: 12px; line-height: 1.55; color: var(--nbgr-text-mid); margin: 0 0 8px; }
.nbgr-license a { color: var(--nbgr-navy-light); }

/* ── Article: responsive ── */
@media (max-width: 900px) {
    .obj_article_details .row { grid-template-columns: 1fr; gap: 32px; }
    .obj_article_details .entry_details { position: static; }
    .obj_article_details .page_title { font-size: 27px; }
}

/* ============================================================
   ISSUE PAGE (issue.tpl masthead — Sovereign Gateway)
   ============================================================ */
.page_issue { max-width: none; margin: 0; padding: 0; }

/* ── Masthead ── */
.nbgr-issue__masthead {
    position: relative;
    background: linear-gradient(135deg, var(--nbgr-navy) 0%, #1a2c47 60%, var(--nbgr-forest) 130%);
    color: #fff;
    overflow: hidden;
}
.nbgr-issue__masthead::before {
    content: "";
    position: absolute; inset: 0;
    background-image: radial-gradient(rgba(195, 162, 78, 0.11) 1px, transparent 1.5px);
    background-size: 26px 26px;
    opacity: 0.6;
}
.nbgr-issue__masthead-inner {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 30px 28px 48px;
}
.nbgr-issue__masthead .cmp_breadcrumbs { margin: 0 0 26px; padding: 0; border: 0; }
.nbgr-issue__masthead .cmp_breadcrumbs ol { font-size: 12px; text-transform: none; letter-spacing: 0.02em; }
.nbgr-issue__masthead .cmp_breadcrumbs a { color: var(--nbgr-on-dark-muted); }
.nbgr-issue__masthead .cmp_breadcrumbs a:hover { color: #fff; }
.nbgr-issue__masthead .cmp_breadcrumbs .separator { color: #46587a; }
.nbgr-issue__masthead .cmp_breadcrumbs .current span { color: var(--nbgr-gold-light); }

.nbgr-issue__grid {
    display: grid;
    grid-template-columns: 236px 1fr;
    gap: 44px;
    align-items: start;
}
.nbgr-issue__cover img {
    display: block; width: 100%; height: auto;
    border: 3px solid var(--nbgr-gold);
    box-shadow: 0 24px 56px rgba(0, 0, 0, 0.33);
}
.nbgr-issue__cover-ph {
    position: relative;
    aspect-ratio: 3 / 4;
    border: 3px solid var(--nbgr-gold);
    background: linear-gradient(160deg, var(--nbgr-navy-light), var(--nbgr-navy-card));
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 22px 20px;
    box-shadow: 0 24px 56px rgba(0, 0, 0, 0.33);
}
.nbgr-issue__cover-mark {
    font-family: var(--nbgr-font-serif);
    font-weight: 900; font-size: 30px; letter-spacing: 0.04em; color: #fff;
}
.nbgr-issue__cover-vol {
    font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--nbgr-gold-light); font-weight: 600;
}

.nbgr-issue__eyebrow {
    display: flex; align-items: center; gap: 13px;
    font-size: 11.5px; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--nbgr-gold-light); font-weight: 600;
    margin-bottom: 16px;
}
.nbgr-issue__rule { display: inline-block; width: 40px; height: 2px; background: var(--nbgr-gold); }
.nbgr-issue__title {
    font-family: var(--nbgr-font-serif);
    font-weight: 900; font-size: 34px; line-height: 1.18;
    color: #fff; margin: 0 0 18px; max-width: 640px;
}
.nbgr-issue__desc {
    font-size: 15px; line-height: 1.7; color: var(--nbgr-on-dark);
    max-width: 620px; margin: 0 0 22px;
}
.nbgr-issue__desc p { margin: 0 0 0.8em; }
.nbgr-issue__facts {
    display: flex; flex-wrap: wrap; gap: 10px 24px;
    font-size: 12.5px; color: var(--nbgr-on-dark-muted); margin-bottom: 24px;
}
.nbgr-issue__facts strong { color: #fff; font-weight: 700; }
.nbgr-issue__facts a { color: var(--nbgr-gold-light); }
.nbgr-issue__oa-dot {
    display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    background: var(--nbgr-teal); margin-right: 7px; vertical-align: 0;
}
.nbgr-issue__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.nbgr-issue__actions a,
.nbgr-issue__actions .galley_link {
    display: inline-block;
    background: var(--nbgr-gold); color: var(--nbgr-navy-dark);
    font-weight: 700; font-size: 13px;
    padding: 11px 20px; border-radius: 3px;
}
.nbgr-issue__actions a:hover { background: var(--nbgr-gold-light); }

/* ── TOC wrapper on the issue page ── */
.nbgr-issue__toc-wrap { background: var(--nbgr-cream); }
.nbgr-issue__toc-wrap .nbgr-toc__inner { max-width: 1100px; padding-top: 50px; padding-bottom: 64px; }
.nbgr-issue__empty { max-width: 1100px; margin: 0 auto; padding: 40px 28px 64px; }

/* ── Issue page: responsive ── */
@media (max-width: 767px) {
    .nbgr-issue__grid { grid-template-columns: 150px 1fr; gap: 24px; }
    .nbgr-issue__title { font-size: 25px; }
}
@media (max-width: 520px) {
    .nbgr-issue__grid { grid-template-columns: 1fr; }
    .nbgr-issue__cover { max-width: 180px; }
}

/* Issue page TOC: full-width reading list (not the homepage 3-col card grid) */
.nbgr-issue__toc-wrap .obj_issue_toc .cmp_article_list.articles { grid-template-columns: 1fr; }
.nbgr-issue__toc-wrap .obj_article_summary { max-width: none; }

/* ============================================================
   ARCHIVES PAGE (issueArchive.tpl)
   ============================================================ */
.nbgr-vol { margin-bottom: 40px; }
.nbgr-vol__head { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.nbgr-vol__title {
    font-family: var(--nbgr-font-serif); font-weight: 900; font-size: 22px;
    color: var(--nbgr-navy); margin: 0; white-space: nowrap;
}
.nbgr-vol__title span { color: var(--nbgr-text-light); font-weight: 400; }
.nbgr-vol__rule { flex: 1; height: 2px; background: linear-gradient(90deg, var(--nbgr-gold), var(--nbgr-cream-border)); }
.page_issue_archive .issues_list { list-style: none; margin: 0; padding: 0; }
.page_issue_archive .cmp_pagination { margin-top: 10px; color: var(--nbgr-text-mid); font-size: 14px; }
@media (max-width: 900px) { .page_issue_archive .issues_list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .page_issue_archive .issues_list { grid-template-columns: 1fr; } }

/* ============================================================
   ANNOUNCEMENTS (list + single)
   ============================================================ */
.cmp_announcements { list-style: none; margin: 0; padding: 0; }
.cmp_announcements > li { margin-bottom: 16px; }
.obj_announcement_summary {
    display: block;
    background: #fff;
    border: 1px solid var(--nbgr-cream-border);
    border-left: 3px solid var(--nbgr-gold);
    border-radius: 3px;
    padding: 22px 26px;
    transition: box-shadow .18s, transform .18s;
}
.obj_announcement_summary:hover { box-shadow: 0 14px 34px rgba(34, 54, 88, 0.12); transform: translateY(-2px); }
.obj_announcement_summary .obj_announcement_summary_details > a,
.obj_announcement_summary_details h2 a,
.obj_announcement_summary_details h3 a {
    font-family: var(--nbgr-font-serif); font-weight: 700; font-size: 19px;
    line-height: 1.35; color: var(--nbgr-navy);
}
.obj_announcement_summary_details h2, .obj_announcement_summary_details h3 { margin: 0 0 8px; }
.obj_announcement_summary_details h2 a:hover, .obj_announcement_summary_details h3 a:hover { color: var(--nbgr-gold-muted); }
.obj_announcement_summary .date {
    font-size: 11px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;
    color: var(--nbgr-gold-muted); margin-bottom: 10px;
}
.obj_announcement_summary .summary { font-size: 14px; line-height: 1.6; color: var(--nbgr-text-mid); }
.obj_announcement_summary .read_more {
    display: inline-block; margin-top: 10px; font-size: 12.5px; font-weight: 700;
    color: var(--nbgr-navy-light);
}
.obj_announcement_summary .read_more:hover { color: var(--nbgr-gold-muted); }
.obj_announcement_summary_image { max-width: 100%; height: auto; border-radius: 3px; margin-bottom: 14px; }

/* single announcement */
.nbgr-ann-date {
    font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;
    color: var(--nbgr-gold-muted); margin-bottom: 18px;
}
.nbgr-ann-image { max-width: 100%; height: auto; border-radius: 3px; margin-bottom: 20px; }
.nbgr-ann-back { display: inline-block; margin-top: 30px; font-size: 13px; font-weight: 700; color: var(--nbgr-navy-light); }
.nbgr-ann-back:hover { color: var(--nbgr-gold-muted); }
.nbgr-ann-intro { margin-bottom: 26px; }

/* ============================================================
   EDITORIAL TEAM (editorialMasthead.tpl — tiers + people cards)
   ============================================================ */
.nbgr-team-tier { margin-bottom: 40px; }
.nbgr-team-list { display: grid; gap: 16px; }
.nbgr-team-tier--lead .nbgr-team-list { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.nbgr-team-tier--grid .nbgr-team-list { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }

.nbgr-person { display: flex; gap: 14px; align-items: center; }
.nbgr-person__avatar {
    flex: none; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; font-weight: 700; text-transform: uppercase;
}
.nbgr-person__body { display: flex; flex-direction: column; min-width: 0; }
.nbgr-person__name { font-weight: 700; color: var(--nbgr-navy); display: flex; align-items: center; gap: 7px; }
.nbgr-person__aff { font-size: 12.5px; color: var(--nbgr-text-mid); margin-top: 2px; }
.nbgr-person .orcid svg, .nbgr-person .orcid img { width: 13px; height: 13px; vertical-align: -2px; }

/* lead tier — prominent navy cards (Editor-in-Chief, Managing Editor) */
.nbgr-team-tier--lead .nbgr-person {
    background: var(--nbgr-navy); color: #fff;
    border: 1px solid var(--nbgr-navy-border); border-radius: 4px;
    padding: 22px 26px; gap: 18px;
}
.nbgr-team-tier--lead .nbgr-person__avatar {
    width: 60px; height: 60px; font-size: 19px;
    font-family: var(--nbgr-font-serif);
    background: linear-gradient(135deg, var(--nbgr-navy-light), var(--nbgr-forest));
    border: 2px solid var(--nbgr-gold); color: var(--nbgr-gold-light);
}
.nbgr-team-tier--lead .nbgr-person__name { font-family: var(--nbgr-font-serif); font-size: 18px; color: #fff; }
.nbgr-team-tier--lead .nbgr-person__aff { color: var(--nbgr-on-dark-muted); }

/* standard tier — light people cards (associates, board, advisory) */
.nbgr-team-tier--grid .nbgr-person {
    background: #fff; border: 1px solid var(--nbgr-cream-border); border-radius: 3px;
    padding: 16px 18px;
}
.nbgr-team-tier--grid .nbgr-person__avatar {
    width: 46px; height: 46px; font-size: 14px;
    background: var(--nbgr-cream); border: 1px solid var(--nbgr-cream-border); color: var(--nbgr-navy-light);
}
.nbgr-team-tier--grid .nbgr-person__name { font-size: 14px; }

/* ============================================================
   ABOUT — "At a glance" facts list
   ============================================================ */
.nbgr-facts dl { margin: 0; }
.nbgr-facts dl > div {
    display: flex; justify-content: space-between; gap: 14px;
    padding: 10px 0; border-top: 1px solid var(--nbgr-cream-border);
}
.nbgr-facts dl > div:first-child { border-top: 0; }
.nbgr-facts dt { color: var(--nbgr-text-mid); font-size: 13px; }
.nbgr-facts dd { margin: 0; color: var(--nbgr-navy); font-weight: 700; font-size: 13px; text-align: right; }
.nbgr-submit-cta__lead br { line-height: 2; }

/* ============================================================
   BREADCRUMBS — generic base (article page; dark-context
   variants for auth + issue masthead override colors above)
   ============================================================ */
.cmp_breadcrumbs ol {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
    font-family: var(--nbgr-font-sans);
    font-size: 11.5px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;
}
.cmp_breadcrumbs li { display: inline-flex; align-items: center; gap: 4px; }
.cmp_breadcrumbs a { color: var(--nbgr-navy-light); transition: color 0.15s; }
.cmp_breadcrumbs a:hover { color: var(--nbgr-gold-muted); }
.cmp_breadcrumbs .separator { color: var(--nbgr-text-faint); padding: 0 2px; }
.cmp_breadcrumbs .current span { color: var(--nbgr-text-muted); }
.cmp_breadcrumbs .current { color: var(--nbgr-text-muted); }

/* article page: full-bleed cream breadcrumb bar (handoff) */
.nbgr-article-crumb { background: var(--nbgr-cream); border-bottom: 1px solid var(--nbgr-cream-border); }
.nbgr-article-crumb__inner { max-width: 1180px; margin: 0 auto; padding: 13px 28px; }
.nbgr-article-crumb .cmp_breadcrumbs ol { text-transform: none; letter-spacing: 0.01em; font-weight: 500; font-size: 12px; }
.nbgr-article-crumb .cmp_breadcrumbs a { color: var(--nbgr-text-muted); }
.nbgr-article-crumb .cmp_breadcrumbs a:hover { color: var(--nbgr-navy); }
.nbgr-article-crumb .cmp_breadcrumbs .separator { color: var(--nbgr-text-faint); }
.nbgr-article-crumb .cmp_breadcrumbs .current,
.nbgr-article-crumb .cmp_breadcrumbs .current span { color: var(--nbgr-text-mid); }
