body { color: #30343b; }
a:focus-visible, button:focus-visible { outline: 3px solid #145bb0 !important; outline-offset: 4px; box-shadow: 0 0 0 6px white; }
.skip-link { position: absolute; z-index: 10000; top: 8px; left: 8px; padding: 12px; background: #245842; color: white; transform: translateY(-180%); }
.skip-link:focus { transform: none; color: white; }
.page-header { padding: 54px 0; }
.page-header h1 { color: white; font-size: clamp(2rem,5vw,3rem); font-weight: 700; }
.thm-breadcrumb { margin: 12px 0 0; padding: 0; }
.thm-breadcrumb li, .thm-breadcrumb li a { color: white; }
.conventions-content { padding-top: 48px; padding-bottom: 64px; }
.conventions-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; list-style: none; padding: 0; margin: 0; }
.conventions-grid > li { min-width: 0; }
.convention-card { height: 100%; display: flex; flex-direction: column; border: 1px solid #d5dfdc; border-radius: 8px; overflow: hidden; background: white; }
.convention-card > img { width: 100%; height: 280px; object-fit: contain; background: #f3f6f4; }
.convention-card__body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.convention-card h2 { font-size: 1.4rem; line-height: 1.35; margin-bottom: 14px; }
.convention-card p { line-height: 1.65; margin-bottom: 20px; }
.convention-card .convention-category { color: #245842; font-weight: 700; margin-bottom: 8px; }
.convention-card a { margin-top: auto; color: #245842; text-decoration: underline; padding: 12px 0; font-weight: 700; }
.site-footer p, .site-footer li, .site-footer a, .site-footer .footer-widget__link-list li a { color: white; }
.site-footer a:hover { color: white; text-decoration: underline; }
.site-footer__social a { background: #245842; }
.site-footer__img { pointer-events: none; }
.back-top { display: block; padding: 16px; text-align: center; color: #245842; text-decoration: underline; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media(max-width: 991px) { .conventions-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; } }
@media(max-width: 575px) {
 .conventions-grid { grid-template-columns: minmax(0,1fr); }
}
@media(prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
