/* News use native WordPress articles and preserve full event logos/posters. */
.news-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.news-card { display:flex; flex-direction:column; border:1px solid var(--line); background:#fff; border-radius:4px; overflow:hidden; }
.news-card-featured { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
.news-card-featured.news-card-no-image { grid-template-columns:1fr; }
.news-card-visual { background:#fff; display:grid; place-items:center; min-height:240px; border-bottom:1px solid var(--line); }
.news-card-visual img { display:block; width:100%; height:100%; max-height:420px; object-fit:contain; padding:26px; }
.news-card-featured .news-card-visual { border-bottom:0; border-right:1px solid var(--line); }
.news-card-copy { padding:32px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.news-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-bottom:20px; font-size:12px; }
.news-meta>span { display:inline-block; padding:5px 10px; background:#f7edf2; color:#99174f; font-weight:650; border-radius:2px; }
.news-meta time { color:var(--muted); font-size:12px; }
.news-card h2 { font-size:clamp(25px,2.5vw,38px); line-height:1.18; margin-bottom:18px; }
.news-card p { font-size:15px; color:var(--muted); margin-bottom:28px; }
.news-card:hover .text-link { text-decoration:underline; text-underline-offset:5px; }
.news-card .text-link svg { transition:transform .2s ease; }
.news-card:hover .text-link svg { transform:translateX(4px); }
.news-pagination { display:flex; flex-wrap:wrap; gap:10px; padding-top:32px; }
.news-pagination .page-numbers { padding:8px 14px; border:1px solid var(--line); border-radius:2px; }
.news-pagination .current { color:#fff; background:var(--blue); border-color:var(--blue); }
.news-detail { padding-top:30px; }
.news-detail .news-detail-header { max-width:1040px; margin:0 0 42px; }
.news-detail h1 { font-size:clamp(34px,4.4vw,64px); line-height:1.08; margin-top:0; }
.news-detail .intro-text { max-width:980px; font-size:19px; }
.news-detail-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px; align-items:start; }
.news-detail-visual { margin:0; position:sticky; top:calc(var(--header-height) + 24px); border:1px solid var(--line); background:#fff; }
.news-detail-image { width:100%; height:auto; max-height:600px; object-fit:contain; padding:26px; }
.news-detail-visual figcaption { border-top:1px solid var(--line); padding:14px 20px; color:var(--muted); font-size:11px; line-height:1.6; }
.news-detail .news-detail-body { max-width:none; min-width:0; margin:0; }
.news-detail-body h2 { font-size:28px; margin-top:32px; margin-bottom:18px; }
.news-detail-body p,.news-detail-body li { font-size:15px; }
.news-detail-body ul { padding-left:22px; margin:0 0 24px; }
.news-detail-body li { padding-left:5px; margin-bottom:12px; }
.news-detail-body .has-small-font-size { font-size:12px; color:var(--muted); }
.news-detail-body a:not(.text-link) { color:var(--blue); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.news-detail-body .news-back { border-top:1px solid var(--line); margin-top:20px; padding-top:24px; display:flex; justify-content:space-between; }
.news-detail-no-image { display:block; max-width:820px; }
@media(max-width:900px) {
 .news-card-copy { padding:26px; }
 .news-detail-layout { gap:30px; }
 .news-detail-body h2 { font-size:25px; }
}
@media(max-width:680px) {
 .news-grid { grid-template-columns:1fr; gap:24px; }
 .news-card-featured { display:flex; }
 .news-card-featured .news-card-visual { border-right:0; border-bottom:1px solid var(--line); }
 .news-card-visual { min-height:0; }
 .news-card-visual img { height:auto; max-height:300px; padding:20px; }
 .news-card-copy { padding:24px; }
 .news-card h2 { font-size:28px; }
 .news-meta { gap:8px 14px; margin-bottom:16px; }
 .news-detail { padding-top:16px; padding-bottom:45px; }
 .news-detail .news-detail-header { margin-bottom:26px; }
 .news-detail .intro-text { font-size:16px; }
 .news-detail-layout { display:flex; flex-direction:column; gap:30px; }
 .news-detail-visual { position:static; width:100%; }
 .news-detail-image { padding:20px; max-height:340px; }
}
@media(prefers-reduced-motion:reduce) { .news-card .text-link svg { transition:none; } }

