.publications-main, .publication-main { width: min(1120px, 92%); margin: 2rem auto; }
.publication-main { color: #21344c; line-height: 1.65; }
.site-title .site-brand { display: block; font-weight: 700; text-transform: uppercase; }
.publication-page .publication-main { flex: 1; }
.publication-article h1, .publication-article h2 { font-weight: 700; }
.publication-page a { text-underline-offset: .2em; }
.publication-page main a { color: #22598e; }
.publication-article { max-width: 850px; padding: clamp(1rem, 4vw, 3rem); margin: 1.5rem auto; background: white; border-radius: 20px; overflow-wrap: anywhere; }
.publication-article h1 { font-size: clamp(1.6rem, 4vw, 2.5rem); line-height: 1.25; text-transform: none; }
.publication-article h2 { font-size: 1.4rem; margin-top: 2rem; }
.publication-summary { font-size: 1.1rem; }
.publication-text { white-space: pre-line; margin: 1.5rem 0; }
.publication-cover { display: block; width: 100%; max-height: 550px; object-fit: contain; margin: 1rem 0; border-radius: 12px; }
.publication-meta { color: #506177; font-size: .9rem; }
.publication-expired { padding: .7rem 1rem; background: #eee; color: #444; border-radius: 8px; }
.publication-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.5rem 0; }
.publication-filters button, .publication-button { display: inline-block; border: 1px solid #254c79; border-radius: 10px; padding: .75rem 1rem; font: inherit; cursor: pointer; background: white; color: #254c79; text-decoration: none; }
.publication-filters button[aria-pressed="true"], .publication-button { background: #254c79; color: white; }
.publication-page main .publication-button { color: white; }
.publication-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1.3rem; margin: 1rem 0 2rem; }
.publication-card { border: 1px solid #dce3ed; border-radius: 18px; background: white; padding: 1rem; overflow-wrap: anywhere; color: #21344c; }
.publication-card img { width: 100%; height: 210px; object-fit: contain; border-radius: 12px; background: #f2f5f9; }
.publication-card h3 { font-size: 1.3rem; line-height: 1.4; margin: 1rem 0; }
.publication-card p { line-height: 1.6; margin: .7rem 0; }
.publication-card a { color: #22598e; text-underline-offset: .2em; }
.publications-main h2 { font-size: clamp(1.6rem, 4vw, 2.4rem); }
.publications-main > h2 + p { margin-top: 1rem; line-height: 1.6; }
.publication-filters button:focus-visible, .publication-button:focus-visible { outline: 3px solid #edab4f; outline-offset: 3px; }
[hidden] { display: none !important; }
.publication-figure { margin: 1.8rem 0; }
.publication-figure img { display: block; width: 100%; max-height: 650px; object-fit: contain; border-radius: 12px; }
.publication-figure figcaption { color: #506177; margin-top: .6rem; font-size: .95rem; white-space: pre-line; }
.publication-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 1rem; }
.publication-gallery img { height: 260px; background: #f2f5f9; }
.publication-figure a:focus-visible { outline: 3px solid #edab4f; outline-offset: 3px; }
.publication-filters a { display: inline-block; padding: .75rem 1rem; border: 1px solid #254c79; border-radius: 10px; color: #254c79; background: white; text-decoration: none; }
.publication-filters a[aria-current="page"] { color: white; background: #254c79; }
.publication-filters a:focus-visible { outline: 3px solid #edab4f; outline-offset: 3px; }
.publication-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 2rem 0; }
