.jsm-archive {
    max-width: 1100px;
    margin: 0 auto;
}

.jsm-archive__heading {
    margin-bottom: 1.25rem;
}

.jsm-magazine {
    margin: 0 0 1rem;
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 12px;
    overflow: hidden;
    background: var(--wp--preset--color--base, #fff);
}

.jsm-magazine summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.2rem;
    cursor: pointer;
    font-weight: 700;
    list-style: none;
}

.jsm-magazine summary::-webkit-details-marker {
    display: none;
}

.jsm-magazine summary::before {
    content: "▸";
    margin-right: .65rem;
    transition: transform .18s ease;
}

.jsm-magazine details[open] summary::before {
    transform: rotate(90deg);
}

.jsm-magazine__title {
    flex: 1;
}

.jsm-magazine__count {
    font-size: .85rem;
    font-weight: 500;
    opacity: .7;
}

.jsm-magazine__content {
    padding: 0 1.2rem 1.2rem;
}


.jsm-magazine__intro.has-thumbnail {
    display: grid;
    grid-template-columns: minmax(120px, 180px) 1fr;
    gap: 1.25rem;
    align-items: start;
    margin-bottom: 1.25rem;
}

.jsm-magazine__thumbnail img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
}

.jsm-magazine__intro.has-thumbnail .jsm-magazine__description {
    margin-bottom: 0;
}

.jsm-magazine__description {
    margin-bottom: 1.25rem;
    opacity: .85;
}

.jsm-year {
    margin-top: 1.4rem;
}


.jsm-months {
    margin: 0;
    padding: 0;
    list-style: none;
}

.jsm-issue {
    margin: 0 0 .5rem;
}

.jsm-issue a {
    display: grid;
    grid-template-columns: minmax(90px, 130px) 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: .75rem .85rem;
    border: 1px solid rgba(127, 127, 127, .18);
    border-radius: 8px;
    text-decoration: none;
}

.jsm-issue a:hover,
.jsm-issue a:focus {
    border-color: currentColor;
}

.jsm-issue__date {
    font-weight: 700;
}

.jsm-issue__action {
    font-size: .82rem;
    opacity: .72;
}

.jsm-single-issue {
    width: 100%;
    max-width: none;
    margin: 2rem auto;
}

.jsm-single-issue__header {
    width: min(1100px, calc(100% - 2rem));
    margin: 0 auto 1.25rem;
}


.jsm-single-issue__magazine {
    margin: 0 0 .35rem;
}

.jsm-single-issue__date {
    margin: 0 0 1rem;
    opacity: .72;
}

.jsm-single-issue__back-heading {
    margin: .75rem 0 0;
}

.jsm-single-issue__back {
    display: inline-block;
    text-decoration: none;
}


.jsm-single-issue__summary,
.jsm-single-issue__highlights {
    width: min(1100px, calc(100% - 2rem));
    margin: 1.5rem auto;
}

.jsm-single-issue__summary h2,
.jsm-single-issue__highlights h2 {
    margin: 0 0 .75rem;
}

.jsm-single-issue__summary-content > :first-child {
    margin-top: 0;
}

.jsm-single-issue__summary-content > :last-child {
    margin-bottom: 0;
}


.jsm-single-issue__summary-preview > :first-child,
.jsm-single-issue__summary-expanded > :first-child {
    margin-top: 0;
}

.jsm-single-issue__summary-preview > :last-child,
.jsm-single-issue__summary-expanded > :last-child {
    margin-bottom: 0;
}

.jsm-single-issue__summary-accordion {
    margin-top: .85rem;
    border-top: 1px solid rgba(127, 127, 127, .25);
    padding-top: .65rem;
}

.jsm-single-issue__summary-accordion > summary {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    cursor: pointer;
    font-weight: 700;
    list-style: none;
}

.jsm-single-issue__summary-accordion > summary::-webkit-details-marker {
    display: none;
}

.jsm-single-issue__summary-accordion > summary::before {
    content: "+";
    width: 1.2em;
    text-align: center;
    font-size: 1.15em;
    line-height: 1;
}

.jsm-single-issue__summary-accordion[open] > summary::before {
    content: "−";
}

.jsm-summary-label-open {
    display: none;
}

.jsm-single-issue__summary-accordion[open] .jsm-summary-label-closed {
    display: none;
}

.jsm-single-issue__summary-accordion[open] .jsm-summary-label-open {
    display: inline;
}

.jsm-single-issue__summary-expanded {
    margin-top: .9rem;
}

.jsm-single-issue__highlights ul {
    margin: 0;
    padding-left: 1.4rem;
}

.jsm-single-issue__highlights li + li {
    margin-top: .45rem;
}

.jsm-single-issue__viewer {
    width: min(1100px, calc(100% - 2rem));
    margin: 0 auto;
    min-height: 70vh;
}

.jsm-single-issue__content {
    width: min(1100px, calc(100% - 2rem));
    margin: 1.5rem auto 0;
}



.jsm-single-issue__viewer-inner {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    position: relative;
}

.jsm-single-issue__viewer-inner > * {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

.jsm-single-issue__viewer-inner > iframe {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    border: 0;
}

@media (max-width: 900px) {
    .jsm-single-issue__header,
    .jsm-single-issue__summary,
    .jsm-single-issue__viewer,
    .jsm-single-issue__highlights,
    .jsm-single-issue__content {
        width: calc(100% - 2rem);
    }
}

.jsm-pdf-fallback iframe {
    width: 100%;
    min-height: 80vh;
    border: 0;
}

.jsm-viewer-notice {
    padding: 1rem;
    border: 1px solid rgba(127, 127, 127, .3);
    border-radius: 8px;
}

@media (max-width: 700px) {
    .jsm-magazine__intro.has-thumbnail {
        grid-template-columns: 90px 1fr;
        gap: .9rem;
    }

    .jsm-issue a {
        grid-template-columns: 1fr;
        gap: .25rem;
    }

    .jsm-issue__action {
        margin-top: .25rem;
    }
}

.jsm-highlight-page-link {
    text-decoration-thickness: .08em;
    text-underline-offset: .15em;
}

.jsm-highlight-page-link::after {
    content: " ↗";
    font-size: .8em;
    opacity: .7;
}

#jsm-flipbook:target {
    scroll-margin-top: 2rem;
}


.jsm-toc-field {
    grid-column: 1 / -1;
}

.jsm-issue-toc {
    width: min(1100px, calc(100% - 2rem));
    margin: 2rem auto 0;
}

.jsm-issue-toc__list {
    margin: 0;
    padding-left: 1.5rem;
}

.jsm-issue-toc__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: baseline;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(127, 127, 127, .22);
}

.jsm-issue-toc__title {
    font-weight: 700;
}

.jsm-issue-toc__author {
    display: block;
    margin-top: .15rem;
    opacity: .75;
}

.jsm-issue-toc__pages {
    white-space: nowrap;
}

.jsm-toc-page-link + .jsm-toc-page-link {
    margin-left: .2rem;
}

@media (max-width: 700px) {
    .jsm-issue-toc__item {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    .jsm-issue-toc__pages {
        white-space: normal;
    }
}


.jsm-issue-toc {
    width: min(1100px, calc(100% - 2rem));
    margin: 2rem auto 0;
}

.jsm-issue-toc__accordion {
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 10px;
    overflow: hidden;
}

.jsm-issue-toc__accordion > summary {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    list-style: none;
    font-size: 1.35rem;
    font-weight: 700;
}

.jsm-issue-toc__accordion > summary::-webkit-details-marker {
    display: none;
}

.jsm-issue-toc__accordion > summary::before {
    content: "▸";
    flex: 0 0 auto;
    transition: transform .18s ease;
}

.jsm-issue-toc__accordion[open] > summary::before {
    transform: rotate(90deg);
}

.jsm-issue-toc__count {
    margin-left: auto;
    font-size: .85rem;
    font-weight: 500;
    opacity: .7;
}

.jsm-issue-toc__body {
    padding: 0 1.15rem 1.15rem;
}

.jsm-issue-toc__list {
    margin: 0;
    padding-left: 1.5rem;
}

.jsm-issue-toc__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: baseline;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(127, 127, 127, .22);
}

.jsm-issue-toc__item:last-child {
    border-bottom: 0;
}

.jsm-issue-toc__title {
    font-weight: 700;
}

.jsm-issue-toc__author {
    display: block;
    margin-top: .15rem;
    opacity: .75;
}

.jsm-issue-toc__pages {
    white-space: nowrap;
}

@media (max-width: 700px) {
    .jsm-issue-toc__item {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    .jsm-issue-toc__pages {
        white-space: normal;
    }
}


.jsm-research-index {
    width: min(1100px, calc(100% - 2rem));
    margin: 2rem auto;
}

.jsm-toc-search__form {
    padding: 1rem;
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 10px;
}

.jsm-toc-search__form label {
    display: block;
    margin-bottom: .5rem;
    font-weight: 700;
}

.jsm-toc-search__controls {
    display: flex;
    gap: .65rem;
}

.jsm-toc-search__controls input[type="search"] {
    flex: 1;
    min-width: 0;
    padding: .7rem .8rem;
}

.jsm-toc-search__controls button {
    padding: .7rem 1rem;
    cursor: pointer;
}

.jsm-toc-search__results {
    margin-top: 1.5rem;
}

.jsm-toc-search__entries,
.jsm-author-group__entries {
    display: grid;
    gap: .75rem;
}

.jsm-index-entry {
    padding: .9rem 1rem;
    border: 1px solid rgba(127, 127, 127, .22);
    border-radius: 8px;
}

.jsm-index-entry__title {
    margin: 0 0 .25rem;
    font-size: 1.05rem;
}

.jsm-index-entry__author {
    margin-bottom: .3rem;
    font-weight: 600;
    opacity: .85;
}

.jsm-index-entry__context {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    font-size: .9rem;
    opacity: .78;
}

.jsm-author-index__letters {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: 1rem 0 1.5rem;
}

.jsm-author-index__letters a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    padding: .25rem .45rem;
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 6px;
    text-decoration: none;
}

.jsm-author-group {
    scroll-margin-top: 2rem;
    margin: 0 0 .85rem;
}

.jsm-author-group__accordion {
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 9px;
    overflow: hidden;
}

.jsm-author-group__accordion > summary {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1rem;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.jsm-author-group__accordion > summary::-webkit-details-marker {
    display: none;
}

.jsm-author-group__accordion > summary::before {
    content: "▸";
    flex: 0 0 auto;
    transition: transform .18s ease;
}

.jsm-author-group__accordion[open] > summary::before {
    transform: rotate(90deg);
}

.jsm-author-group__name {
    font-size: 1.1rem;
}

.jsm-author-group__count {
    margin-left: auto;
    font-size: .82rem;
    font-weight: 500;
    opacity: .7;
}

.jsm-author-group__entries {
    padding: 0 1rem 1rem;
}

@media (max-width: 600px) {
    .jsm-toc-search__controls {
        display: grid;
    }
}


.jsm-year {
    margin-top: .85rem;
}

.jsm-year__accordion {
    border: 1px solid rgba(127, 127, 127, .24);
    border-radius: 9px;
    overflow: hidden;
}

.jsm-year__accordion > summary {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.jsm-year__accordion > summary::-webkit-details-marker {
    display: none;
}

.jsm-year__accordion > summary::before {
    content: "▸";
    flex: 0 0 auto;
    transition: transform .18s ease;
}

.jsm-year__accordion[open] > summary::before {
    transform: rotate(90deg);
}

.jsm-year__label {
    font-size: 1.1rem;
}

.jsm-year__count {
    margin-left: auto;
    font-size: .82rem;
    font-weight: 500;
    opacity: .7;
}

.jsm-year__body {
    padding: 0 1rem 1rem;
}


.jsm-archive__stats {
    margin: -.6rem 0 1.25rem;
    font-size: 1.05rem;
    font-weight: 600;
    opacity: .78;
}

/* BEGIN JSM SEARCH ARCHIVE COUNTS */
.jsm-research-index__counts {
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.7);
}

.jsm-research-index__counts h3 {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.4;
}
/* END JSM SEARCH ARCHIVE COUNTS */

/* BEGIN JSM SUMMARY PARAGRAPH REPAIR */

/*
 * Preserve readable paragraph structure in issue summaries.
 * These rules are deliberately scoped to the archive issue
 * summary so global theme typography cannot flatten it.
 */

.jsm-single-issue__summary-content,
.jsm-single-issue__summary-preview,
.jsm-single-issue__summary-expanded {
    display: block;
}

.jsm-single-issue__summary-preview > p,
.jsm-single-issue__summary-expanded > p {
    display: block;
    margin-top: 0;
    margin-bottom: 1.25em;
    padding: 0;
    white-space: normal;
}

.jsm-single-issue__summary-preview > p:last-child,
.jsm-single-issue__summary-expanded > p:last-child {
    margin-bottom: 0;
}

.jsm-single-issue__summary-accordion {
    display: block;
    width: 100%;
    margin-top: 1.25rem;
}

.jsm-single-issue__summary-accordion > summary {
    display: list-item;
    cursor: pointer;
    margin: 0;
    padding: 0.75rem 1rem;
    font-weight: 700;
}

.jsm-single-issue__summary-accordion[open] > summary {
    margin-bottom: 1.25rem;
}

.jsm-single-issue__summary-expanded {
    display: block;
    width: 100%;
}

.jsm-single-issue__summary-expanded > * {
    max-width: 100%;
}

.jsm-single-issue__summary-expanded br {
    display: block;
    content: "";
    margin-bottom: 0.75em;
}

/*
 * The open and closed labels occupy the same control, with
 * only the contextually correct one displayed.
 */

.jsm-single-issue__summary-accordion
    .jsm-summary-label-open {
    display: none;
}

.jsm-single-issue__summary-accordion[open]
    .jsm-summary-label-closed {
    display: none;
}

.jsm-single-issue__summary-accordion[open]
    .jsm-summary-label-open {
    display: inline;
}

/* END JSM SUMMARY PARAGRAPH REPAIR */
