/* Panthéon public : un tableau d’honneur par classement, puis les années précédentes. */
html body.public-pantheon-page { background: #151719 !important; }
.pantheon-shell { max-width: 1400px; margin-inline: auto; padding: 38px 42px 20px; }
.pantheon-shell, .pantheon-shell * { box-sizing: border-box; }
body.public-pantheon-page .pantheon-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 30px; padding: 0; border: 0; background: none; text-align: left; }
body.public-pantheon-page .pantheon-heading h1 { margin: 0; color: #E7DFCB; font: 400 40px/1.2 Georgia,serif; }
.pantheon-heading > img { width: 42px; height: 52px; object-fit: contain; }
.pantheon-year { margin-bottom: 24px; border: 1px solid #454642; border-radius: 2px 12px 2px 12px; background: #1C2022; overflow: hidden; }
.pantheon-year > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 25px; list-style: none; cursor: pointer; }
.pantheon-year > summary::-webkit-details-marker { display: none; }
body.public-pantheon-page .pantheon-year > summary h2 { margin: 0; color: #D5C195; font: 400 26px/1.3 Georgia,serif; }
.pantheon-year-arrow { color: #A69672; font-size: 20px; }
.pantheon-year[open] .pantheon-year-arrow { transform: rotate(180deg); }
.pantheon-year[open] > summary { border-bottom: 1px solid #454642; }
.pantheon-rankings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; padding: 24px; align-items: start; }
.pantheon-ranking { min-width: 0; padding: 22px; background: #25282A; border: 1px solid #45483F; border-radius: 2px 10px 2px 10px; }
.pantheon-ranking:only-child { grid-column: 1/-1; width: min(100%,780px); justify-self: center; }
body.public-pantheon-page .pantheon-ranking > h3 { margin: 0 0 19px; color: #C1AE7E; font: 600 16px/1.5 var(--cx-font); text-align: center; }
.pantheon-winner { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 17px; padding: 23px 18px; border: 1px solid #7A6B48; border-radius: 2px 9px 2px 9px; background: linear-gradient(115deg,#3F392A,#2D302A); }
.pantheon-winner-trophy { width: 40px; height: 56px; object-fit: contain; }
.pantheon-winner-identity { min-width: 0; }
body.public-pantheon-page .pantheon-winner h4 { color: #E6D4A6; font: 400 25px/1.3 Georgia,serif; margin: 0 0 9px; overflow-wrap: anywhere; }
.pantheon-country, .pantheon-grade { display: flex; align-items: center; gap: 8px; color: #BEB7A2; font-size: 11px; line-height: 1.6; }
.pantheon-country > img { width: 27px; height: 18px; object-fit: cover; border: 1px solid #FFFFFF20; }
.pantheon-grade { margin-top: 8px; }
.pantheon-grade > img { width: 20px; height: 25px; object-fit: contain; }
.pantheon-winner-score { min-width: 0; text-align: right; }
.pantheon-winner-score strong { display: block; color: #E5D1A0; font: 500 26px/1.4 var(--cx-font); font-variant-numeric: tabular-nums; }
.pantheon-winner-score > span, .pantheon-place-score > span { display: block; margin-top: 3px; color: #A7A28D; font-size: 10px; }
.pantheon-places { list-style: none; padding: 0; margin: 16px 0 0; }
.pantheon-places li { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 16px 4px; border-bottom: 1px solid #FFFFFF12; }
.pantheon-places li:last-child { padding-bottom: 3px; border-bottom: 0; }
.pantheon-medal { width: 28px; height: 34px; object-fit: contain; }
.pantheon-place-identity { min-width: 0; }
.pantheon-place-identity > strong { display: block; color: #D1CEBB; font: 500 14px/1.5 var(--cx-font); overflow-wrap: anywhere; }
.pantheon-place-country { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 6px; font-size: 10px; color: #989F95; }
.pantheon-place-country > img { display: block; width: 24px; height: 16px; object-fit: cover; }
.pantheon-place-country > img.pantheon-place-grade { width: 19px; height: 21px; object-fit: contain; margin-left: 2px; }
.pantheon-place-score { min-width: 0; text-align: right; }
.pantheon-place-score strong { color: #CDBF9D; font: 500 17px/1.4 var(--cx-font); font-variant-numeric: tabular-nums; }
.pantheon-empty { padding: 26px; background: #222527; border: 1px solid #454642; border-radius: 2px 10px 2px 10px; color: #B6B5A7; font-size: 14px; }
.pantheon-empty-ranking { color: #A4AA9D; font-size: 12px; margin: 0; padding: 14px 0; }
.pantheon-shell summary:focus-visible { outline: 2px solid #D5BF88; outline-offset: -4px; }
@media(max-width: 1150px) { .pantheon-rankings { grid-template-columns: minmax(0,1fr); } .pantheon-ranking { width: min(100%,850px); justify-self: center; } }
@media(max-width: 600px) {
 .pantheon-shell { padding: 26px 14px 18px; }
 body.public-pantheon-page .pantheon-heading h1 { font-size: 32px; }
 .pantheon-heading > img { width: 32px; height: 44px; }
 .pantheon-year > summary { padding: 17px 18px; }
 body.public-pantheon-page .pantheon-year > summary h2 { font-size: 24px; }
 .pantheon-rankings { padding: 12px; gap: 16px; }
 .pantheon-ranking { padding: 14px; }
 .pantheon-winner { grid-template-columns: 31px minmax(0,1fr); gap: 12px; padding: 18px 12px; }
 .pantheon-winner-trophy { width: 30px; height: 45px; }
 body.public-pantheon-page .pantheon-winner h4 { font-size: 24px; }
 .pantheon-winner-score { grid-column: 2; display: flex; align-items: baseline; gap: 7px; text-align: left; }
 .pantheon-winner-score strong { font-size: 24px; }
 .pantheon-places li { grid-template-columns: 25px minmax(0,1fr) auto; gap: 10px; padding-block: 15px; }
 .pantheon-medal { width: 24px; height: 30px; }
 .pantheon-place-identity > strong { font-size: 13px; }
 .pantheon-place-score strong { font-size: 15px; }
}
/* Neutraliser les retraits et soulignements de l’ancien style des titres h4. */
body.public-pantheon-page .pantheon-winner h4 { text-indent: 0; text-decoration: none; text-align: left; padding: 0; }
