/* One request dialog and one filter treatment for every archive year. */
.modal-overlay { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:20px; background:rgb(23 42 54 / .78); }
.modal-overlay[hidden], .form-message[hidden], .article-card[hidden] { display:none !important; }
.modal-content { position:relative; width:100%; max-width:540px; max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); overflow-y:auto; overscroll-behavior:contain; background:#fff; color:var(--dark); border:1px solid #d9dfdf; border-radius:4px; padding:32px; box-shadow:0 16px 64px rgb(0 0 0 / .18); text-align:left; }
.modal-content h2 { font-size:var(--type-card); line-height:1.35; padding:0 32px 0 0; margin:0 0 12px; }
.modal-content h2::after { display:none; }
/* The positioned heading follows this button in the DOM: keep the close target above it. */
.close-modal { position:absolute; z-index:1; right:12px; top:12px; width:44px; height:44px; display:grid; place-items:center; border:0; background:transparent; color:var(--primary); font:inherit; font-size:28px; cursor:pointer; }
.request-article { margin:0 0 24px; font-size:.9375rem; line-height:1.6; overflow-wrap:anywhere; }
.modal-content label { display:block; font-size:.875rem; font-weight:600; margin-bottom:7px; }
.modal-content label span { font-weight:400; }
.request-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.modal-content input:not([type="checkbox"]):not([type="hidden"]), .modal-content textarea { display:block; width:100%; margin:0 0 16px; border:1px solid #9daeb5; border-radius:3px; background:#fff; color:var(--dark); padding:10px 12px; font:inherit; font-size:1rem; line-height:1.5; cursor:text; }
.modal-content textarea { min-height:76px; resize:vertical; }
.modal-content .checkbox-label { display:flex; align-items:flex-start; gap:10px; margin:2px 0 12px; font-size:.875rem; line-height:1.6; font-weight:400; }
.checkbox-label input[type="checkbox"] { width:18px; height:18px; flex:none; margin-top:3px; accent-color:var(--primary); }
.checkbox-label a { color:var(--secondary); text-decoration:underline; text-underline-offset:3px; }
.request-privacy-note { font-size:.875rem; line-height:1.6; color:var(--gray); margin:0 0 20px; }
.request-honeypot { display:none; }
.submit-btn { display:block; width:100%; min-height:46px; border:1px solid var(--primary); border-radius:3px; background:var(--primary); color:#fff; padding:11px 18px; font:600 .9375rem/1.5 'Montserrat',sans-serif; cursor:pointer; }
.submit-btn:hover { background:var(--secondary); border-color:var(--secondary); }
.submit-btn:disabled { background:#53616b; border-color:#53616b; cursor:default; }
.form-message { margin-top:16px; padding:14px; font-size:.9375rem; line-height:1.6; border-left:3px solid; }
.form-message.success { background:#eef5ef; color:#204c32; }
.form-message.error { background:#fbefeb; color:#81351f; }
.modal-content :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.request-noscript { max-width:760px; margin:24px auto; padding:20px; }
.filter-controls { margin-inline:auto; max-width:1120px; }
.filter-buttons { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.filter-buttons .filter-btn { min-height:40px; padding:8px 14px; font-size:.875rem; letter-spacing:0; }
.archive-mobile-filter { display:none; }
.article-filter-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.article-card:focus-within .article-overlay { opacity:1; }
.download-btn.open-pdf-modal { width:auto; min-height:44px; height:auto; border-radius:3px; gap:9px; padding:11px 16px; font-size:.875rem; line-height:1.5; text-decoration:none; }
.download-btn.open-pdf-modal:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.article-info h2 { font-size:1.125rem; font-weight:500; line-height:1.4; margin-bottom:8px; color:#fff; }
.article-info h2::after { display:none; }
@media (max-width:600px) {
    .modal-overlay { padding:12px; }
    .modal-content { max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); padding:24px 20px; }
    .request-fields { grid-template-columns:1fr; gap:0; }
    .request-article { margin-bottom:18px; }
    .filter-buttons { display:none; }
    .archive-mobile-filter { display:grid; gap:8px; text-align:left; max-width:440px; margin:auto; }
    .archive-mobile-filter label { font-size:.875rem; font-weight:600; }
    .archive-mobile-filter select { width:100%; min-height:44px; border:1px solid #8b9ca5; border-radius:3px; padding:9px 12px; font:inherit; font-size:1rem; color:var(--primary); background:#fff; }
    .article-card.year-card { display:none; }
    .article-overlay { opacity:1; background:linear-gradient(transparent 40%,rgb(23 42 54 / .88)); align-items:flex-end; padding-bottom:18px; }
    .article-overlay .article-info { background:transparent; }
}
