/* IPS 2.0 — journal issue and archive pages */
.ips-issue-hero,
.ips-archive-hero { position: relative; overflow: hidden; padding: 7rem 0; background: linear-gradient(135deg,#f4f7f9 0%,#edf3f6 100%); }
.ips-issue-hero::after,
.ips-archive-hero::after { position: absolute; width: 42rem; height: 42rem; right: -15rem; bottom: -25rem; border: 6rem solid rgba(0,58,90,.045); border-radius: 50%; content: ''; }
.ips-issue-hero__grid { display: grid; position: relative; z-index: 1; grid-template-columns: minmax(24rem,33rem) minmax(0,1fr); align-items: center; gap: 6rem; }
.ips-archive-hero__grid { display: grid; position: relative; z-index: 1; grid-template-columns: 24rem minmax(0,1fr); align-items: center; gap: 5rem; }
.ips-issue-cover,
.ips-archive-journal-cover { display: flex; overflow: hidden; align-items: center; justify-content: center; border-radius: .8rem; background: #fff; box-shadow: 0 2.5rem 6rem rgba(20,44,57,.14); }
.ips-issue-cover { min-height: 43rem; }
.ips-archive-journal-cover { min-height: 31rem; }
.ips-issue-cover img,
.ips-archive-journal-cover img { width: 100%; height: 100%; object-fit: contain; }
.ips-issue-cover__fallback,
.ips-archive-journal-cover > span { display: flex; width: 100%; min-height: inherit; align-items: center; justify-content: center; flex-direction: column; gap: 1.5rem; background: linear-gradient(145deg,#003a5a,#0c5b7f); color: #fff; }
.ips-issue-cover__fallback i,
.ips-archive-journal-cover > span i { font-size: 5rem; }
.ips-issue-cover__fallback span { font-size: 2.4rem; font-weight: 700; }
.ips-issue-hero__content h1,
.ips-archive-hero__content h1 { margin: 1.2rem 0 1.8rem; color: var(--grey-dark-one); font-size: 4.8rem; line-height: 1.16; text-transform: none; }
.ips-archive-hero__content > p { max-width: 76rem; margin: 0 0 2.6rem; color: var(--grey-dark-three); font-size: 1.65rem; line-height: 1.75; }
.ips-issue-number { display: inline-flex; align-items: center; gap: .8rem; padding: .8rem 1.2rem; border-radius: .4rem; background: rgba(0,58,90,.08); color: var(--primary-color); font-size: 1.35rem; font-weight: 700; }
.ips-issue-stats,
.ips-archive-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.2rem; margin: 3rem 0; }
.ips-issue-stats > div,
.ips-archive-stats > div { padding: 1.7rem; border: 1px solid rgba(0,58,90,.1); border-radius: .6rem; background: rgba(255,255,255,.72); }
.ips-issue-stats strong,
.ips-archive-stats strong { display: block; color: var(--primary-color); font-family: var(--primary-font); font-size: 2.4rem; line-height: 1.1; }
.ips-issue-stats span,
.ips-archive-stats span { display: block; margin-top: .6rem; color: var(--grey-dark-three); font-size: 1.15rem; line-height: 1.4; }
.ips-issue-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.ips-issue-content,
.ips-archive-section { padding: 7rem 0 8rem; }
.ips-issue-themes { display: grid; gap: 4rem; margin-top: 4rem; }
.ips-issue-theme { padding: 3rem; border: 1px solid #e1e8eb; border-radius: .8rem; background: #fff; box-shadow: 0 1.2rem 3.5rem rgba(22,47,60,.05); }
.ips-issue-theme__heading { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 2.4rem; padding-bottom: 1.8rem; border-bottom: 1px solid #e6ecef; }
.ips-issue-theme__heading > span { display: flex; width: 4rem; height: 4rem; flex: 0 0 4rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--primary-color); color: #fff; font-size: 1.3rem; font-weight: 700; }
.ips-issue-theme__heading h3 { margin: 0; color: var(--grey-dark-one); font-size: 2.35rem; line-height: 1.35; text-transform: none; }
.ips-issue-articles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.6rem; }
.ips-issue-article { display: flex; min-height: 28rem; padding: 2.2rem; border: 1px solid #e5ebee; border-radius: .7rem; background: #fafcfd; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.ips-issue-article:hover { transform: translateY(-.3rem); box-shadow: 0 1.4rem 3rem rgba(18,44,58,.08); }
.ips-issue-article__meta { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem 1.4rem; color: #708087; font-size: 1.15rem; }
.ips-issue-article__meta span { display: inline-flex; align-items: center; gap: .6rem; }
.ips-issue-article h4 { margin: 1.2rem 0 .9rem; font-size: 2rem; line-height: 1.4; text-transform: none; }
.ips-issue-article h4 a { color: var(--grey-dark-one); }
.ips-issue-article__authors { display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.ips-issue-article__authors a { color: var(--primary-color); font-size: 1.25rem; font-weight: 600; }
.ips-issue-article > p { display: -webkit-box; overflow: hidden; margin: 1.3rem 0 0; color: var(--grey-dark-three); font-size: 1.35rem; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.ips-issue-article__link { display: inline-flex; align-items: center; gap: .8rem; margin-top: auto; padding-top: 1.7rem; border-top: 1px solid #e5ebee; color: var(--primary-color); font-size: 1.25rem; font-weight: 700; }
.ips-issue-article > p + .ips-issue-article__link { margin-top: 1.6rem; }
.ips-related-issues { padding: 7rem 0 8rem; background: #f6f8f9; }
.ips-related-issues__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; }
.ips-related-issue { overflow: hidden; border: 1px solid #e0e7ea; border-radius: .8rem; background: #fff; }
.ips-related-issue__cover { display: flex; aspect-ratio: .73; align-items: center; justify-content: center; overflow: hidden; background: #eef2f4; }
.ips-related-issue__cover img { width: 100%; height: 100%; object-fit: contain; }
.ips-related-issue__cover > span { color: rgba(0,58,90,.35); font-size: 4rem; }
.ips-related-issue > div { padding: 1.8rem; }
.ips-related-issue > div > span { color: var(--primary-color); font-size: 1.15rem; font-weight: 700; }
.ips-related-issue h3 { margin: .8rem 0 1.4rem; font-size: 1.7rem; line-height: 1.4; text-transform: none; }
.ips-related-issue h3 a { color: var(--grey-dark-one); }
.ips-related-issue__links { display: flex; gap: 1.2rem; padding-top: 1.3rem; border-top: 1px solid #edf1f3; }
.ips-related-issue__links a { color: var(--primary-color); font-size: 1.15rem; font-weight: 700; }
.ips-issue-empty { padding: 6rem 2rem; border: 1px dashed #d8e1e5; border-radius: .8rem; text-align: center; }
.ips-issue-empty > i { color: rgba(0,58,90,.28); font-size: 5rem; }
.ips-issue-empty h1 { margin: 2rem 0 1rem; text-transform: none; }
.ips-issue-empty p { max-width: 60rem; margin: 1.5rem auto 0; color: var(--grey-dark-three); font-size: 1.55rem; }
.ips-issue-empty .ips-primary-button { margin-top: 2.5rem; }
.ips-issue-missing { padding: 7rem 0; }

/* Archive */
.ips-archive-filter { display: grid; grid-template-columns: minmax(0,2fr) minmax(18rem,.7fr) auto; align-items: end; gap: 1.4rem; margin-top: 3rem; padding: 2rem; border: 1px solid #e0e7ea; border-radius: .8rem; background: #f8fafb; }
.ips-archive-filter__field label { display: block; margin-bottom: .8rem; color: var(--grey-dark-two); font-size: 1.2rem; font-weight: 700; }
.ips-archive-filter__input { display: flex; height: 4.8rem; align-items: center; gap: 1rem; padding: 0 1.4rem; border: 1px solid #dfe6ea; border-radius: .5rem; background: #fff; }
.ips-archive-filter__input i { color: var(--primary-color); }
.ips-archive-filter__input input { width: 100%; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; color: var(--grey-dark-one); font-family: var(--primary-font); font-size: 1.35rem; }
.ips-select-control { position: relative; width: 100%; }
.ips-select-control select { width: 100%; height: 4.8rem; padding: 0 4rem 0 1.4rem; border: 1px solid #dfe6ea; border-radius: .5rem; outline: 0; background: #fff; color: var(--grey-dark-one); font-family: var(--primary-font); font-size: 1.35rem; appearance: none; }
.ips-select-control > i { position: absolute; top: 50%; right: 1.4rem; color: var(--primary-color); transform: translateY(-50%); pointer-events: none; }
.ips-archive-filter__actions { display: flex; align-items: center; gap: 1rem; }
.ips-archive-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin: 2.5rem 0 2rem; color: var(--grey-dark-three); font-size: 1.3rem; }
.ips-archive-toolbar strong { color: var(--grey-dark-one); font-size: 1.5rem; }
.ips-archive-view-switch { display: inline-flex; gap: .5rem; padding: .4rem; border-radius: .6rem; background: #eef3f5; }
.ips-archive-view-switch button { display: inline-flex; align-items: center; gap: .7rem; padding: .8rem 1.2rem; border: 0; border-radius: .4rem; background: transparent; color: #687982; font-family: var(--primary-font); font-size: 1.2rem; font-weight: 700; cursor: pointer; }
.ips-archive-view-switch button.is-active { background: #fff; color: var(--primary-color); box-shadow: 0 .3rem 1rem rgba(18,43,56,.08); }
.ips-archive-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; }
.ips-archive-card { display: flex; min-width: 0; overflow: hidden; border: 1px solid #e0e7ea; border-radius: .8rem; background: #fff; flex-direction: column; }
.ips-archive-card__cover { display: flex; aspect-ratio: .73; align-items: center; justify-content: center; overflow: hidden; background: #eef2f4; }
.ips-archive-card__cover img { width: 100%; height: 100%; object-fit: contain; }
.ips-archive-card__cover > span { color: rgba(0,58,90,.32); font-size: 4rem; }
.ips-archive-card__body { display: flex; padding: 1.8rem; flex: 1; flex-direction: column; }
.ips-archive-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #77868d; font-size: 1.1rem; }
.ips-archive-card__meta span { color: var(--primary-color); font-weight: 700; }
.ips-archive-card h3 { margin: 1rem 0 1.2rem; font-size: 1.75rem; line-height: 1.4; text-transform: none; }
.ips-archive-card h3 a { color: var(--grey-dark-one); }
.ips-archive-card__body > p { display: inline-flex; align-items: center; gap: .7rem; margin: 0; color: var(--grey-dark-three); font-size: 1.2rem; }
.ips-archive-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.6rem; border-top: 1px solid #edf1f3; }
.ips-archive-card__body > p + .ips-archive-card__actions { margin-top: 1.6rem; }
.ips-archive-card__actions a { color: var(--primary-color); font-size: 1.15rem; font-weight: 700; }
.ips-archive-grid.is-list { grid-template-columns: 1fr; }
.ips-archive-grid.is-list .ips-archive-card { display: grid; grid-template-columns: 16rem minmax(0,1fr); }
.ips-archive-grid.is-list .ips-archive-card__cover { height: 100%; min-height: 21rem; aspect-ratio: auto; }
.ips-archive-grid.is-list .ips-archive-card h3 { font-size: 2.1rem; }
.ips-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .7rem; margin-top: 4rem; }
.ips-pagination a,.ips-pagination span { display: inline-flex; width: 4.2rem; height: 4.2rem; align-items: center; justify-content: center; border: 1px solid #dfe6ea; border-radius: .5rem; background: #fff; color: var(--grey-dark-two); font-family: var(--primary-font); font-size: 1.35rem; font-weight: 700; }
.ips-pagination a:hover,.ips-pagination a.is-active { border-color: var(--primary-color); background: var(--primary-color); color: #fff; }
.ips-pagination span { border: 0; background: transparent; }

@media (max-width: 1199px) {
    .ips-issue-hero__grid { grid-template-columns: 28rem minmax(0,1fr); gap: 4rem; }
    .ips-related-issues__grid,.ips-archive-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 991px) {
    .ips-issue-hero__grid,.ips-archive-hero__grid { grid-template-columns: 23rem minmax(0,1fr); gap: 3rem; }
    .ips-issue-hero__content h1,.ips-archive-hero__content h1 { font-size: 3.8rem; }
    .ips-issue-articles { grid-template-columns: 1fr; }
    .ips-related-issues__grid,.ips-archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ips-archive-filter { grid-template-columns: 1fr 1fr; }
    .ips-archive-filter__field--search { grid-column: 1 / -1; }
    .ips-archive-filter__actions { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .ips-issue-hero,.ips-archive-hero { padding: 5rem 0; }
    .ips-issue-hero__grid,.ips-archive-hero__grid { grid-template-columns: 1fr; }
    .ips-issue-cover { width: min(27rem,75vw); min-height: 36rem; margin: 0 auto; }
    .ips-archive-journal-cover { width: min(22rem,60vw); min-height: 29rem; margin: 0 auto; }
    .ips-issue-hero__content,.ips-archive-hero__content { text-align: center; }
    .ips-issue-hero__content h1,.ips-archive-hero__content h1 { font-size: 3rem; }
    .ips-issue-number { justify-content: center; }
    .ips-issue-actions { justify-content: center; }
    .ips-issue-stats,.ips-archive-stats { gap: .8rem; }
    .ips-issue-stats > div,.ips-archive-stats > div { padding: 1.2rem .8rem; }
    .ips-issue-stats strong,.ips-archive-stats strong { font-size: 2rem; }
    .ips-issue-content,.ips-archive-section,.ips-related-issues { padding: 5rem 0; }
    .ips-issue-theme { padding: 1.6rem; }
    .ips-issue-theme__heading { align-items: flex-start; }
    .ips-issue-theme__heading h3 { font-size: 1.9rem; }
    .ips-issue-article { min-height: 0; padding: 1.5rem; }
    .ips-issue-article h4 { font-size: 1.65rem; }
    .ips-issue-article > p { font-size: 1.25rem; -webkit-line-clamp: 3; }
    .ips-related-issues__grid,.ips-archive-grid { gap: 1.2rem; }
    .ips-related-issue > div,.ips-archive-card__body { padding: 1.2rem; }
    .ips-related-issue h3,.ips-archive-card h3 { font-size: 1.4rem; }
    .ips-related-issue__links,.ips-archive-card__actions { align-items: flex-start; flex-direction: column; }
    .ips-archive-filter { grid-template-columns: 1fr; padding: 1.5rem; }
    .ips-archive-filter__field--search,.ips-archive-filter__actions { grid-column: auto; }
    .ips-archive-filter__actions { align-items: stretch; flex-direction: column; }
    .ips-archive-filter__actions .ips-primary-button,.ips-archive-filter__actions .ips-outline-button { width: 100%; }
    .ips-archive-view-switch button { width: 4rem; justify-content: center; padding: .8rem; }
    .ips-archive-view-switch button span { display: none; }
    .ips-archive-grid.is-list .ips-archive-card { grid-template-columns: 10rem minmax(0,1fr); }
    .ips-archive-grid.is-list .ips-archive-card__cover { min-height: 15rem; }
    .ips-archive-grid.is-list .ips-archive-card h3 { font-size: 1.55rem; }
}
@media (max-width: 420px) {
    .ips-related-issues__grid,.ips-archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ips-archive-card__meta { align-items: flex-start; flex-direction: column; gap: .4rem; }
    .ips-archive-card__body > p { font-size: 1.05rem; }
}
