/* Travail sportif : styles limités à cette page, palette de la charte. */
.sportif-page .sp-shell { width: min(1560px, calc(100% - 2rem)); margin: 2rem auto 3rem; }
.sportif-page .sp-section { padding: clamp(1.25rem, 2.5vw, 2rem); margin-bottom: 2rem; border: 1px solid var(--sdo-border); border-top: 3px solid var(--sdo-orange); border-radius: 4px; background: var(--sdo-surface); scroll-margin-top: 6rem; }
html.sdo-public .sportif-page :is(p, li) { text-align: left; text-wrap: wrap; line-height: 1.75; }
html.sdo-public .sportif-page p { margin: 0 0 1rem; }
html.sdo-public .sportif-page h2 { margin: 0 0 1.5rem; }
html.sdo-public .sportif-page h3 { margin: 0 0 .75rem; font-size: 1.15rem; line-height: 1.5; font-weight: 700; color: var(--sdo-text); }
.sportif-page .sp-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 2rem; align-items: center; }
.sportif-page .sp-split > *, .sportif-page .sp-two-columns > * { min-width: 0; }
.sportif-page .sp-photo { width: 100%; max-width: 640px; margin: 0; justify-self: end; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface-deep); overflow: hidden; }
.sportif-page .sp-photo img { display: block; width: 100%; height: auto; margin: 0; box-shadow: none !important; }
.sportif-page .sp-photo figcaption { padding: .75rem 1rem; font-size: .875rem; color: var(--sdo-text-muted); line-height: 1.5; text-align: left; }
.sportif-page .sp-nav { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; border-top: 1px solid var(--sdo-border); padding-top: .75rem; margin-top: 1.5rem; }
html.sdo-public .sportif-page .sp-nav a { display: inline-flex; gap: .5rem; align-items: center; min-height: 44px; }
html.sdo-public .sportif-page .sp-shell a { color: var(--sdo-orange); text-decoration: none; text-underline-offset: .2em; }
html.sdo-public .sportif-page .sp-shell a:hover, html.sdo-public .sportif-page .sp-shell a:focus-visible { color: var(--sdo-orange-hover); text-decoration: underline; }
html.sdo-public .sportif-page .sp-shell :is(a, summary, .sp-table-scroll):focus-visible { outline: 3px solid var(--sdo-orange-hover); outline-offset: 3px; }
.sportif-page .sp-families { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding-block: .5rem 1.5rem; }
.sportif-page .sp-families > div { padding-top: 1rem; border-top: 1px solid var(--sdo-border); }
.sportif-page .sp-defense { border-top: 1px solid var(--sdo-border); padding-top: 1.5rem; }
.sportif-page .sp-table-scroll { max-width: 100%; overflow-x: auto; margin: 1.5rem 0; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface-deep); scrollbar-color: var(--sdo-orange) var(--sdo-surface-deep); }
.sportif-page .sp-table { width: 100%; min-width: 600px; margin: 0; border-collapse: collapse; font-size: 1rem; color: var(--sdo-text); text-align: left; }
.sportif-page .sp-table caption { caption-side: top; padding: 1rem; color: var(--sdo-text); font-weight: 700; text-align: left; line-height: 1.5; }
.sportif-page .sp-table th, .sportif-page .sp-table td { padding: .75rem 1rem; border-top: 1px solid var(--sdo-border); vertical-align: top; line-height: 1.6; }
.sportif-page .sp-table tbody th { font-weight: 400; }
.sportif-page .sp-table :is(thead, tfoot), .sportif-page .sp-table .sp-group { background: var(--sdo-surface); }
.sportif-page .sp-table .sp-group th { font-weight: 700; color: var(--sdo-orange); }
.sportif-page #ring3-bareme { min-width: 0; table-layout: fixed; }
.sportif-page #ring3-bareme .sp-score-col { width: 82px; }
.sportif-page .sp-exercise-note { display: block; margin-top: .25rem; font-size: .875rem; font-weight: 400; color: var(--sdo-text-muted); }
.sportif-page #ring3-bareme td:last-child, .sportif-page #ring3-bareme thead th:last-child { text-align: right; white-space: nowrap; }
.sportif-page .sp-table tfoot td { font-weight: 700; }
html.sdo-public .sportif-page :is(.sp-table-hint, .sp-source-note) { font-size: .875rem !important; color: var(--sdo-text-muted); }
.sportif-page .sp-table-hint { display: none; }
.sportif-page .sp-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.sportif-page .sp-regulation-note { padding: 1rem 1.25rem; margin: 1rem 0 1.5rem; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface-deep); }
.sportif-page .sp-regulation-note summary { min-height: 44px; padding-block: .5rem; cursor: pointer; font-weight: 700; color: var(--sdo-text); }
.sportif-page .sp-regulation-note summary:hover { color: var(--sdo-orange-hover); }
html.sdo-public .sportif-page .sp-regulation-note p { font-size: 1rem !important; margin-top: .75rem; }
html.sdo-public .sportif-page .sp-work-title { margin-top: 1.5rem; }
.sportif-page .sp-references { padding: 1.25rem 1.5rem; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface-deep); }
html.sdo-public .sportif-page .sp-references h2 { margin: 0 0 .75rem; font-size: 1rem; text-transform: none; }
html.sdo-public .sportif-page .sp-references :is(p, li) { font-size: .875rem !important; line-height: 1.6; }
.sportif-page .sp-references ul { padding-left: 1.25rem; margin-bottom: 1rem; }
.sportif-page .sp-references li + li { margin-top: .5rem; }
@media (max-width: 991px) {
    .sportif-page .sp-split, .sportif-page .sp-families, .sportif-page .sp-two-columns { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .sportif-page .sp-photo { justify-self: center; }
    .sportif-page .sp-families { gap: .5rem; }
    .sportif-page .sp-table-hint { display: block; }
}
@media (max-width: 767px) {
    .sportif-page .sp-shell { margin-top: 1.5rem; }
    .sportif-page .sp-nav { gap: .25rem .75rem; }
    .sportif-page .sp-references { padding: 1.25rem; }
}
