* { font-family: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif; box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* Submission process timeline */
.submission-process-card {
    overflow-x: auto;
    border: 1px solid #dfe4ea;
    border-radius: 1rem;
    padding: 2.5rem 2rem 2.25rem;
    background: #fff;
}
.submission-process-flow {
    display: flex;
    align-items: flex-start;
    min-width: 1050px;
}
.submission-process-step {
    flex: 1 0 86px;
    min-width: 86px;
    text-align: center;
}
.submission-process-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 0.8rem;
    border: 1px solid #cfe4f1;
    border-radius: 50%;
    background: #eef7fc;
    color: #3c95ca;
}
.submission-process-icon svg {
    width: 1.55rem;
    height: 1.55rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.submission-process-icon span {
    position: absolute;
    top: -0.35rem;
    right: -0.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #3c8dc0;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
}
.submission-process-step p {
    min-height: 2.2rem;
    margin: 0;
    color: #1b2a3d;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.3;
}
.submission-process-step small {
    display: block;
    margin-top: 0.25rem;
    color: #98a2b3;
    font-size: 0.68rem;
    line-height: 1.35;
}
.submission-process-connector {
    flex: 0 0 1.1rem;
    height: 2px;
    margin: 1.72rem 0.2rem 0;
    border-radius: 999px;
    background: #e4e7ec;
}
.submission-process-step--loa { flex-basis: 76px; min-width: 76px; }
.submission-process-step--loa .submission-process-icon {
    width: 2.65rem;
    height: 2.65rem;
    margin-top: 0.55rem;
    margin-bottom: 1.15rem;
    border-color: #ffd0ca;
    background: #fff1ef;
    color: #f04438;
}
.submission-process-step--loa .submission-process-icon svg { width: 1.3rem; height: 1.3rem; }
.submission-process-step--loa p { color: #f04438; font-size: 0.72rem; }
.submission-process-step--published .submission-process-icon {
    border-color: #c8e9e6;
    background: #def3f1;
    color: #259b94;
}
.submission-process-step--published .submission-process-icon span { background: #259b94; }
@media (max-width: 767px) {
    .submission-process-card { padding: 1.75rem 1rem 1.5rem; }
    .submission-process-flow { min-width: 980px; }
}

/* JPMR image safety net — never let a content image overflow */
img { max-width: 100%; height: auto; }
.obj_issue_toc .cover img, .page .cover img { max-width: 12rem; border-radius: 0.6rem; }


/* ── Primary navigation (OJS load_menu) ───────────────────────── */
#navigationPrimary, #navigationUser {
    list-style: none; margin: 0; padding: 0;
    display: flex; align-items: center; gap: 4px;
}
#navigationPrimary > li { position: relative; }
#navigationPrimary > li > a {
    display: flex; align-items: center; gap: 4px;
    padding: 8px 14px; font-size: 14px; font-weight: 500;
    color: #475467; text-decoration: none; white-space: nowrap;
    border-radius: 8px; transition: color .15s, background .15s;
}
#navigationPrimary > li > a:hover { color: #3C8DC0; background: #EEF6FB; }
#navigationPrimary > li.current > a {
    color: #3C8DC0; font-weight: 600;
}

/* Caret for items with children */
#navigationPrimary > li:has(> ul) > a::after {
    content: ''; width: 8px; height: 8px; margin-left: 2px;
    border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
    transform: rotate(45deg) translateY(-2px); opacity: .7;
}

/* Dropdown sub-menus */
#navigationPrimary > li > ul {
    display: none; position: absolute; top: calc(100% + 6px); left: 0;
    background: white; border: 1px solid #EAECF0; border-radius: 12px;
    box-shadow: 0 12px 32px rgba(16,24,40,0.12); min-width: 220px;
    z-index: 100; padding: 8px; list-style: none;
}
/* Invisible bridge so the cursor can cross the gap into the submenu without it closing */
#navigationPrimary > li > ul::before {
    content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 12px;
}
#navigationPrimary > li:hover > ul,
#navigationPrimary > li:focus-within > ul { display: block; }
#navigationPrimary > li > ul > li > a {
    display: block; padding: 9px 14px; font-size: 13px; border-radius: 8px;
    color: #475467; text-decoration: none;
}
#navigationPrimary > li > ul > li > a:hover { background: #EEF6FB; color: #3C8DC0; }

/* Mobile nav stacks vertically */
#navigationPrimaryMobile {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 2px;
}
#navigationPrimaryMobile li { position: relative; }
#navigationPrimaryMobile a {
    display: block; padding: 10px 12px; font-size: 14px; font-weight: 500;
    color: #475467; text-decoration: none; border-radius: 8px;
}
#navigationPrimaryMobile a:hover { background: #EEF6FB; color: #3C8DC0; }
#navigationPrimaryMobile li.current > a {
    background: #EEF6FB; color: #3C8DC0; font-weight: 600;
}
#navigationPrimaryMobile ul { list-style: none; margin: 0; padding-left: 14px; }

/* ── Article galley / PDF links ───────────────────────────────── */
ul.galleys_links, .galleys_links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.obj_galley_link a, .obj_galley_link.pdf a, .obj_galley_link.file a {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: #3C8DC0; color: white; padding: 12px 18px;
    border-radius: 4px; text-decoration: none; font-size: 14px; font-weight: 600;
    transition: background .15s;
}
.obj_galley_link a:hover { background: #2E6E97; }

/* Article-list PDF button (solid, matches reference) */
.pdf-btn {
    display: inline-flex; align-items: center; gap: 6px;
    background: #3C8DC0; color: #fff; padding: 7px 16px;
    border-radius: 8px; font-size: 12px; font-weight: 600; text-decoration: none;
    white-space: nowrap; transition: background .15s;
}
.pdf-btn:hover { background: #2E6E97; color: #fff; }

/* ── Misc OJS components ───────────────────────────────────────── */
.pkp_screen_reader { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

.cmp_notification { padding: 12px 16px; border-radius: 4px; margin-bottom: 16px; }
.cmp_notification.notice { background: #EEF6FB; border: 1px solid #D4E7F3; color: #2E6E97; }
.cmp_notification.warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }

.cmp_skip_to_content a {
    position: absolute; left: -9999px; z-index: 999;
    padding: 8px 16px; background: #3C8DC0; color: white; border-radius: 0 0 6px 6px;
}
.cmp_skip_to_content a:focus { left: 50%; transform: translateX(-50%); }

/* Header search field — override the base OJS input styling (which is more
   specific than Tailwind's utilities). Normal height; extra right padding
   leaves room for the inset submit button. */
input.jpmr-nav-search {
    padding: 0.6rem 3.25rem 0.6rem 1.1rem;
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
    border-radius: 6px;
    font-size: 0.875rem;
}
input.jpmr-nav-search:focus {
    background: #fff;
    border-color: #3C8DC0;
    box-shadow: 0 0 0 3px rgba(60,141,192,0.15);
}

/* Indexed-in logos */
.indexed-logo-link { display: inline-flex; align-items: center; padding: 4px; cursor: pointer; }
.indexed-logo-link:focus-visible { outline: 2px solid #3C8DC0; outline-offset: 4px; border-radius: 4px; }
.indexed-logo { filter: grayscale(15%); opacity: .85; transition: filter .2s, opacity .2s; }
.indexed-logo:hover, .indexed-logo-link:hover .indexed-logo { filter: grayscale(0%); opacity: 1; }

/* Breadcrumbs */
.breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; }
.breadcrumbs a { color: #3C8DC0; text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs .separator { color: #98A2B3; }

/* Author ORCID icon */
.orcid img, .orcidIcon { width: 16px; height: 16px; vertical-align: middle; }

/* Article author list: keep every name and affiliation on one consistent axis.
   The ORCID badge follows the name so authors without ORCID are not indented. */
.article-authors {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    max-width: 52rem;
}
.article-author-item { min-width: 0; }
.article-author-name-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.article-author-name-row p { margin: 0; }
.article-author-item > p {
    margin-bottom: 0;
    overflow-wrap: anywhere;
    line-height: 1.55;
}
.article-author-orcid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 50%;
    background: #a6ce39;
    color: #fff !important;
    font-size: 0.57rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    text-decoration: none !important;
}
.article-author-orcid:hover,
.article-author-orcid:focus-visible {
    background: #86aa25;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(166, 206, 57, 0.35);
}

/* ════════════════════════════════════════════════════════════════
   BASE STYLES FOR DEFAULT OJS PAGES
   (search, issue, archive, about, login, register, submissions,
    custom content pages — everything not using a bespoke template)
   ════════════════════════════════════════════════════════════════ */

/* Page wrapper — centre + constrain default OJS page bodies */
.page {
    max-width: 80rem;
    margin: 0 auto;
    padding: 2.5rem 1.5rem 4rem;
    color: #1B2A3D;
    line-height: 1.65;
}
@media (max-width: 640px) { .page { padding: 1.5rem 1rem 3rem; } }

/* Headings */
.page h1 { font-size: 1.9rem; font-weight: 700; color: #1B2A3D; margin: 0 0 1.25rem; letter-spacing: -0.01em; }
.page h2 { font-size: 1.35rem; font-weight: 700; color: #1B2A3D; margin: 2rem 0 0.85rem; }
.page h3 { font-size: 1.1rem; font-weight: 700; color: #1B2A3D; margin: 1.5rem 0 0.6rem; }
.page h4 { font-size: 1rem; font-weight: 600; color: #1B2A3D; margin: 1.25rem 0 0.5rem; }
.page p { margin: 0 0 1rem; color: #475467; }
.page a { color: #3C8DC0; text-decoration: none; }
.page a:hover { text-decoration: underline; }
.page ul, .page ol { margin: 0 0 1rem; padding-left: 1.4rem; color: #475467; }
.page ul { list-style: disc outside; }
.page ol { list-style: decimal outside; }
.page ul ul, .page ol ul { list-style-type: circle; }
.page ul ul ul, .page ol ul ul { list-style-type: square; }
.page ol ol, .page ul ol { list-style-type: lower-alpha; }
.page li { margin-bottom: 0.4rem; }
.page hr { border: none; border-top: 1px solid #EAECF0; margin: 2rem 0; }
.page img { max-width: 100%; height: auto; border-radius: 4px; }
.page blockquote {
    border-left: 3px solid #3C8DC0; background: #F8FAFC;
    padding: 0.75rem 1.25rem; margin: 1.25rem 0; border-radius: 0 8px 8px 0; color: #475467;
}

/* Breadcrumbs (OJS component) */
.cmp_breadcrumbs { max-width: 80rem; margin: 0 auto; padding: 1.25rem 1.5rem 0; font-size: 0.8rem; color: #98A2B3; }
.cmp_breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; padding: 0; }
.cmp_breadcrumbs li { margin: 0; }
.cmp_breadcrumbs a { color: #3C8DC0; text-decoration: none; }
.cmp_breadcrumbs a:hover { text-decoration: underline; }
.cmp_breadcrumbs .separator { color: #D0D5DD; padding: 0 0.15rem; }
.cmp_breadcrumbs .current { color: #98A2B3; }
/* When breadcrumbs sit inside .page, neutralise double padding */
.page .cmp_breadcrumbs { padding-left: 0; padding-right: 0; padding-top: 0; margin-bottom: 1.25rem; }

/* ── Forms (login, register, search, contact) ─────────────────── */
.cmp_form fieldset { border: none; margin: 0 0 1.5rem; padding: 0; }
.cmp_form legend { font-weight: 600; color: #1B2A3D; margin-bottom: 0.75rem; font-size: 1.05rem; }
.fields .field, .cmp_form .fields > * { margin-bottom: 1.1rem; }
label, .label { display: block; font-size: 0.85rem; font-weight: 600; color: #344054; margin-bottom: 0.4rem; }
input[type="text"], input[type="email"], input[type="password"], input[type="search"],
input[type="url"], input[type="number"], input[type="tel"], input[type="date"],
select, textarea {
    width: 100%; max-width: 100%; padding: 0.6rem 0.85rem; font-size: 0.9rem; font-family: inherit;
    color: #1B2A3D; background: #fff; border: 1px solid #D0D5DD; border-radius: 4px;
    transition: border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus {
    outline: none; border-color: #3C8DC0; box-shadow: 0 0 0 3px rgba(28,95,201,0.12);
}
textarea { min-height: 7rem; resize: vertical; }
.checkbox label, .radio label { display: inline; font-weight: 400; }
.description, .pkp_form_error, .error { font-size: 0.8rem; color: #98A2B3; margin-top: 0.3rem; }
.pkp_form_error, .error { color: #B42318; }

/* Buttons */
.pkp_button, button.submit, input[type="submit"], .cmp_form button, .button, a.button {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
    background: #3C8DC0; color: #fff; border: none; cursor: pointer;
    padding: 0.65rem 1.4rem; border-radius: 4px; font-size: 0.875rem; font-weight: 600;
    font-family: inherit; text-decoration: none; transition: background .15s;
}
.pkp_button:hover, button.submit:hover, input[type="submit"]:hover, .button:hover, a.button:hover {
    background: #2E6E97; color: #fff; text-decoration: none;
}
.btn, a.btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.1rem;
    border-radius: 4px; font-size: 0.85rem; font-weight: 600; text-decoration: none; }
.btn-primary, a.btn-primary { background: #3C8DC0; color: #fff; }
.btn-primary:hover { background: #2E6E97; color: #fff; text-decoration: none; }
.btn-info, a.btn-info { background: #EEF6FB; color: #3C8DC0; border: 1px solid #D4E7F3; }
.btn-info:hover { background: #D4E7F3; text-decoration: none; }

/* ── Search page ──────────────────────────────────────────────── */
.search_input { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; margin-bottom: 1.5rem; }
.search_input .query { flex: 1; min-width: 220px; }
ul.search_results, .search_results { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.date_range { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1rem 0; }
.search_advanced summary, summary { cursor: pointer; color: #3C8DC0; font-weight: 600; }

/* ── Article / issue list items (obj_article_summary) ─────────── */
.obj_article_summary, .obj_issue_summary, .obj_announcement_summary {
    background: #fff; border: 1px solid #EAECF0; border-radius: 4px;
    padding: 1.25rem 1.5rem; margin-bottom: 1rem; transition: border-color .15s, background .15s;
}
.obj_article_summary:hover, .obj_issue_summary:hover { border-color: #3C8DC0; background: #FBFDFE; }
.obj_article_summary .title { margin: 0 0 0.35rem; font-size: 1rem; line-height: 1.4; }
.obj_article_summary .title a { color: #3C8DC0; font-weight: 600; }
.obj_article_summary .meta, .obj_article_summary .authors {
    color: #98A2B3; font-size: 0.82rem; margin: 0;
}
.obj_article_summary .pages { color: #98A2B3; font-size: 0.8rem; }
.obj_article_summary .galleys { margin-top: 0.6rem; }
.obj_article_summary .galleys ul { display: flex; gap: 0.5rem; list-style: none; padding: 0; margin: 0; flex-wrap: wrap; }

/* Issue table of contents */
.obj_issue_toc h2 { border-bottom: 1px solid #EAECF0; padding-bottom: 0.5rem; }
.obj_issue_toc .title { font-weight: 600; }
.sections .section > h2, .section_title { color: #1B2A3D; }
.cover img, .issue_cover { border-radius: 4px; border: 1px solid #EAECF0; }

/* Announcements */
.cmp_announcements .obj_announcement_summary .title a { color: #3C8DC0; font-weight: 600; }
.cmp_announcements .date { color: #98A2B3; font-size: 0.8rem; }

/* ── Tables ───────────────────────────────────────────────────── */
.page table, table.table-pricing {
    width: 100%; border-collapse: collapse; margin: 1.25rem 0; font-size: 0.9rem;
    border: 1px solid #EAECF0; border-radius: 4px; overflow: hidden;
}
.page th, table.table-pricing th { background: #F8FAFC; color: #1B2A3D; font-weight: 600; text-align: left; padding: 0.75rem 1rem; border-bottom: 1px solid #EAECF0; }
.page td, table.table-pricing td { padding: 0.75rem 1rem; border-bottom: 1px solid #F2F4F7; color: #475467; }
.page tr:last-child td { border-bottom: none; }

/* ── Pagination ───────────────────────────────────────────────── */
.cmp_pagination, .pagination { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; margin: 2rem 0 0; }
.cmp_pagination a, .pagination a, .cmp_pagination span, .pagination span {
    display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.25rem;
    padding: 0 0.6rem; border-radius: 4px; border: 1px solid #EAECF0; color: #475467;
    text-decoration: none; font-size: 0.85rem; font-weight: 500;
}
.cmp_pagination a:hover, .pagination a:hover { border-color: #3C8DC0; color: #3C8DC0; text-decoration: none; }
.cmp_pagination .current, .pagination .current { background: #3C8DC0; color: #fff; border-color: #3C8DC0; }

/* ── Notifications ────────────────────────────────────────────── */
.pkp_notification, ul.pkp_notification { list-style: none; padding: 0; margin: 0 0 1rem; }

/* Section-level breadcrumb container that OJS sometimes renders before .page */
nav.cmp_breadcrumbs + .page { padding-top: 1rem; }

/* ════════════════════════════════════════════════════════════════
   ARTICLE PAGE — plugin-rendered blocks (CSL cite, similar articles)
   ════════════════════════════════════════════════════════════════ */

/* How to Cite (CitationStyleLanguage plugin) */
.article-details-hooks .citation .label,
.article-details-hooks h2 { font-size: 1.1rem; font-weight: 700; color: #1B2A3D; margin: 0 0 0.75rem; }
.article-details-hooks #citationOutput {
    color: #475467; font-size: 0.9rem; line-height: 1.65; margin-bottom: 1rem;
}
.article-details-hooks #citationOutput a { color: #3C8DC0; text-decoration: none; }
.article-details-hooks #citationOutput a:hover { text-decoration: underline; }
.citation_formats { position: relative; }
.citation_formats_button {
    display: inline-flex; align-items: center; gap: 0.4rem;
    background: #fff; color: #1B2A3D; border: 1px solid #D0D5DD;
    padding: 0.55rem 1.1rem; border-radius: 4px; font-size: 0.85rem; font-weight: 600;
    cursor: pointer; font-family: inherit; transition: border-color .15s, color .15s;
}
.citation_formats_button:hover { border-color: #3C8DC0; color: #3C8DC0; }
.citation_formats_button::after {
    content: ''; width: 7px; height: 7px; margin-left: 0.15rem;
    border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
}
.citation_formats_list {
    margin-top: 0.75rem; background: #fff; border: 1px solid #EAECF0; border-radius: 12px;
    box-shadow: 0 12px 32px rgba(16,24,40,0.1); padding: 0.5rem; max-width: 22rem;
}
.citation_formats_list[aria-hidden="true"] { display: none; }
.citation_formats_list .label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: #98A2B3; font-weight: 700; padding: 0.5rem 0.75rem 0.25rem; }
ul.citation_formats_styles, .citation_formats_styles { list-style: none; margin: 0 0 0.25rem; padding: 0; }
.citation_formats_styles li { margin: 0; }
.citation_formats_styles a {
    display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem;
    border-radius: 8px; color: #475467; font-size: 0.85rem; text-decoration: none;
}
.citation_formats_styles a:hover { background: #EEF6FB; color: #3C8DC0; text-decoration: none; }
.fa-download::before { content: '\2193'; font-weight: 700; }

/* Similar Articles (recommendBySimilarity plugin) */
#articlesBySimilarityList {
    background: #fff; border: 1px solid #EAECF0; border-radius: 1rem;
    box-shadow: 0 1px 3px rgba(16,24,40,0.06); padding: 1.5rem 1.75rem; margin-top: 0.5rem;
}
#articlesBySimilarityList > h2.label {
    font-size: 1.25rem; font-weight: 700; color: #1B2A3D; margin: 0 0 1rem;
    padding-bottom: 0.75rem; border-bottom: 1px solid #F2F4F7;
}
#articlesBySimilarityList ul { list-style: none; margin: 0; padding: 0; }
#articlesBySimilarityList > ul > li {
    padding: 0.85rem 0; border-bottom: 1px solid #F2F4F7; font-size: 0.82rem; color: #98A2B3; line-height: 1.5;
}
#articlesBySimilarityList > ul > li:last-child { border-bottom: none; }
#articlesBySimilarityList > ul > li a { color: #3C8DC0; font-weight: 600; font-size: 0.9rem; text-decoration: none; }
#articlesBySimilarityList > ul > li a:hover { text-decoration: underline; }
#articlesBySimilarityPages, #articlesBySimilaritySearch { font-size: 0.82rem; color: #98A2B3; margin-top: 1rem; }
#articlesBySimilaritySearch a, #articlesBySimilarityPages a { color: #3C8DC0; }

/* CC license badge image scale */
.cc-badge img { display: inline; height: 28px; width: auto; margin-top: 0.25rem; }

/* ── Refine issue/search article summaries into horizontal cards ── */
.obj_article_summary { display: flex; gap: 1rem; align-items: flex-start; }
.obj_article_summary .cover { flex-shrink: 0; }
.obj_article_summary .cover img { width: 3.25rem; height: 3.25rem; object-fit: cover; border-radius: 0.6rem; box-shadow: none; }
.obj_article_summary > .title,
.obj_article_summary .meta { flex: 1; }
.obj_article_summary:has(.cover) .title,
.obj_article_summary:has(.cover) .meta { margin-left: 0; }
/* keep title+meta grouped when a cover is present */
.obj_article_summary .cover + .title { flex: 1; }

/* Issue archive summaries as cards with cover */
.obj_issue_summary { display: flex; gap: 1.25rem; align-items: flex-start; }
.obj_issue_summary .cover img, .obj_issue_summary a img {
    width: 7rem; height: auto; border-radius: 4px; border: 1px solid #EAECF0;
}
.obj_issue_summary .title { font-size: 1.05rem; font-weight: 600; }
.obj_issue_summary .title a { color: #3C8DC0; }
.obj_issue_summary .series { color: #98A2B3; font-size: 0.85rem; margin: 0.25rem 0; }
.obj_issue_summary .description { color: #475467; font-size: 0.88rem; }

/* Galley file links inside summaries (smaller, inline) */
.obj_article_summary .galleys a, .obj_article_summary a.file {
    display: inline-flex; align-items: center; gap: 0.35rem;
    background: #3C8DC0; color: #fff; padding: 0.4rem 0.85rem; border-radius: 8px;
    font-size: 0.75rem; font-weight: 600; text-decoration: none;
}
.obj_article_summary .galleys a:hover, .obj_article_summary a.file:hover { background: #2E6E97; }

/* How to Cite — CSL citation output links */
#citationOutput a, .csl-output a { color: #3C8DC0; text-decoration: none; }
#citationOutput a:hover, .csl-output a:hover { text-decoration: underline; }
.csl-output .csl-entry { margin: 0; }

/* Links inside rich .page content that are styled as buttons (Tailwind color
   utilities) must keep their own text color — otherwise `.page a` overrides it
   and white-on-blue buttons become invisible. */
.page a[class*="text-white"],
.page a[class*="text-white"]:hover { color: #fff; }

/* ── Search page: date-range filters (html_select_date_a11y output) ── */
.jpmr-daterange fieldset {
    border: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.65rem;
}
.jpmr-daterange legend {
    width: 100%; font-size: 0.85rem; font-weight: 600; color: #344054;
    margin: 0 0 0.55rem; padding: 0; float: none;
}
.jpmr-daterange label {
    font-size: 0.68rem; font-weight: 600; color: #98A2B3;
    text-transform: uppercase; letter-spacing: 0.04em; margin: 0;
}
.jpmr-daterange select {
    width: auto; min-width: 4.75rem; padding: 0.5rem 0.6rem; font-size: 0.85rem;
}
