.titulaires-section { background: #f5f6f8; padding: 3rem 0 4rem; color: #30343b; }
.titulaires-container { width: calc(100% - 2rem); max-width: 960px; margin: 0 auto; }
.titulaires-year { color: #2b378e; font-weight: 600; margin-bottom: .5rem; }
.titulaires-section h2 { color: #2b378e; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.3; margin-bottom: 1rem; }
.titulaires-years { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.5rem 0 2.5rem; }
.titulaires-years a { padding: .65rem 1rem; border: 1px solid #2b378e; border-radius: 4px; color: #2b378e; background: #fff; font-weight: 600; }
.titulaires-years a:hover { background: #2b378e; color: #fff; }
.titulaires-section a:focus-visible { outline: 3px solid #007d78; outline-offset: 4px; }
.titulaires-group { margin-bottom: 2rem; }
.titulaires-group h3 { color: #2b378e; font-size: 1.25rem; margin: 0 0 .75rem; scroll-margin-top: 150px; }
.titulaires-table { width: 100%; border-collapse: collapse; background: #fff; table-layout: fixed; }
.titulaires-table th, .titulaires-table td { padding: 1rem 1.25rem; text-align: left; border-bottom: 1px solid #dfe3ea; overflow-wrap: anywhere; }
.titulaires-table thead th { background: #2b378e; color: #fff; font-weight: 600; }
.titulaires-table thead th:first-child { width: 18%; }
.titulaires-table tbody th { color: #2b378e; font-weight: 700; }
.titulaires-table tbody tr:nth-child(even) { background: #edf3f6; }
.titulaires-source { margin-top: 2.5rem; }
.titulaires-source a { color: #2b378e; text-decoration: underline; text-underline-offset: .2em; }
.titulaires-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 575px) {
    .titulaires-section { padding: 2rem 0; }
    .titulaires-table th, .titulaires-table td { padding: .85rem .5rem; font-size: .875rem; line-height: 1.5; }
    .titulaires-table thead th:first-child { width: 64px; white-space: nowrap; }
}
@media print {
    .titulaires-years { display: none; }
    .titulaires-group { break-inside: avoid; }
}
