.news-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.news-grid > * { min-width: 0; }
@media (min-width: 768px) { .news-grid { grid-template-columns: repeat(min(2, var(--news-columns, 3)), minmax(0, 1fr)); } }
@media (min-width: 1024px) { .news-grid { grid-template-columns: repeat(var(--news-columns, 3), minmax(0, 1fr)); } }
.news-load-actions { display: flex; justify-content: center; margin-top: 2.75rem; }
.news-load-more { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-width: 180px; padding: .95rem 1.75rem; border: 1px solid #d6ae58; border-radius: 999px; background: linear-gradient(120deg, #344d75, #122e52); color: #fff; font-size: .9rem; font-weight: 700; box-shadow: 0 8px 22px #122e5220; transition: transform .25s, box-shadow .25s; cursor: pointer; }
.news-load-more:hover { transform: translateY(-3px); box-shadow: 0 12px 28px #122e5235; }
.news-load-more:focus-visible { outline: 3px solid #d6ae58; outline-offset: 5px; }
.news-load-more:disabled { cursor: wait; opacity: .75; transform: none; }
.news-button-icon { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: #ffffff18; transition: transform .25s; }
.news-load-more:hover .news-button-icon { transform: translateY(2px); }
.news-load-more[aria-busy="true"] .news-button-icon { border: 2px solid #ffffff40; border-top-color: #e7c675; background: transparent; font-size: 0; animation: news-spin .7s linear infinite; }
.news-load-status { text-align: center; color: #64748b; font-size: .85rem; margin: 1rem 0 0; }
.news-load-status:empty { display: none; }
.news-card-enter { animation: news-reveal .65s cubic-bezier(.2,.65,.3,1) both; animation-delay: var(--news-delay, 0ms); }
@keyframes news-reveal { from { opacity: 0; transform: translateY(28px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes news-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .news-card-enter, .news-load-more[aria-busy="true"] .news-button-icon { animation: none; } .news-load-more, .news-button-icon { transition: none; } .news-load-more:hover, .news-load-more:hover .news-button-icon { transform: none; } }
