/* Échecs pour tous : feuille de style à fort contraste (WCAG AA/AAA) */
:root{
  --fond:#FFFFFF;
  --papier:#F4F1E8;
  --encre:#111111;
  --marine:#0B2545;
  --jaune:#FFD23F;
  --lien:#0A3A8C;
  --lien-visite:#5A1E8C;
  --focus:#B34700;
  --trait:#0B2545;
  --alerte-fond:#FFF4C2;
}
*{box-sizing:border-box}
html{font-size:112.5%;-webkit-text-size-adjust:100%;scroll-padding-top:1rem}
body{margin:0;background:var(--fond);color:var(--encre);font-family:"Atkinson Hyperlegible",Verdana,Arial,sans-serif;font-size:1.1rem;line-height:1.75}
.wrap{max-width:50rem;margin:0 auto;padding:0 1rem}
a{color:var(--lien);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:.12em}
a:visited{color:var(--lien-visite)}
a:hover{text-decoration-thickness:.25em}
:focus-visible{outline:4px solid var(--focus);outline-offset:3px;border-radius:2px}
main:focus{outline:none}
.skip{position:absolute;left:-999px;top:0;background:var(--jaune);color:#000;padding:.8rem 1.2rem;font-weight:700;z-index:10}
.skip:focus{left:0;outline:4px solid #fff}
.site-header{background:var(--marine);color:#fff;border-bottom:6px solid var(--jaune)}
.site-header a{color:#fff;text-decoration:none}
.site-header a:visited{color:#fff}
.site-header :focus-visible{outline-color:var(--jaune)}
.bar{max-width:62rem;margin:0 auto;padding:.9rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.8rem;font-weight:700;font-size:1.4rem;line-height:1.2}
.brand small{display:block;font-weight:400;font-size:.8rem;opacity:1;color:#E6ECF5}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;background:var(--jaune);color:var(--marine);border-radius:50%;font-size:2rem;line-height:1}
.menu-btn{display:none;background:var(--jaune);color:#000;border:3px solid #fff;font:inherit;font-weight:700;padding:.5rem 1.1rem;border-radius:.4rem;cursor:pointer}
.main-nav ul{list-style:none;margin:0 auto;padding:0 1rem .9rem;max-width:62rem;display:flex;flex-wrap:wrap;gap:.4rem .6rem}
.main-nav a{display:inline-block;padding:.45rem .8rem;border:2px solid #fff;border-radius:.4rem;font-size:.95rem;font-weight:700}
.main-nav a:hover{background:var(--jaune);color:#000}
.main-nav a[aria-current="page"]{background:var(--jaune);color:#000;border-color:var(--jaune)}
.crumbs{margin:1.2rem 0 0;font-size:.95rem}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}
.crumbs li+li::before{content:"›";margin-right:.4rem}
h1,h2,h3{font-weight:700;line-height:1.25;color:var(--marine)}
h1{font-size:2.1rem;margin:1.2rem 0 1rem}
h2{font-size:1.6rem;margin:2.6rem 0 .8rem;padding-top:.6rem;border-top:4px solid var(--jaune)}
h3{font-size:1.25rem;margin:1.8rem 0 .4rem}
p,li{max-width:46rem}
.lead{font-size:1.25rem;background:var(--papier);border-left:8px solid var(--marine);padding:1rem 1.2rem;margin:1rem 0 1.6rem}
.def{border:3px solid var(--marine);background:var(--alerte-fond);padding:.9rem 1.2rem;margin:1.6rem 0;border-radius:.5rem}
.def strong:first-child{display:block;margin-bottom:.2rem;color:var(--marine)}
.note{border:3px dashed var(--marine);padding:.9rem 1.2rem;margin:1.6rem 0;border-radius:.5rem;background:#fff}
ul,ol{padding-left:1.4rem}
li{margin:.4rem 0}
.tablewrap{overflow-x:auto;margin:1.4rem 0}
table{border-collapse:collapse;width:100%;min-width:34rem;font-size:1rem;line-height:1.5}
caption{text-align:left;font-weight:700;color:var(--marine);padding:.4rem 0}
th,td{border:2px solid var(--trait);padding:.6rem .7rem;text-align:left;vertical-align:top}
thead th{background:var(--marine);color:#fff}
tbody th{background:var(--papier)}
figure{margin:1.6rem 0}
figure svg{max-width:100%;height:auto;border:3px solid var(--marine);border-radius:.5rem;background:#fff}
figcaption{font-size:.95rem;margin-top:.4rem}
.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1rem 0}
.cards li{border:3px solid var(--marine);border-radius:.6rem;padding:.9rem 1rem;margin:0;background:#fff;max-width:none}
.cards li a{font-weight:700;display:block;margin-bottom:.3rem}
.cards li span{display:block;font-size:.95rem;line-height:1.5}
.related{margin:3rem 0 2rem;padding:1.2rem;background:var(--papier);border-radius:.6rem;border:3px solid var(--marine)}
.related h2{margin:0 0 .6rem;border:0;padding:0}
.related ul{list-style:none;padding:0;margin:0}
.related li{margin:.8rem 0}
.related li a{font-weight:700}
.related li span{display:block;font-size:.95rem;line-height:1.5}
.site-footer{background:var(--marine);color:#fff;padding:1.6rem 0;margin-top:3rem;border-top:6px solid var(--jaune)}
.site-footer a{color:#fff}
.site-footer a:visited{color:#fff}
.site-footer :focus-visible{outline-color:var(--jaune)}
.site-footer .small{font-size:.9rem;color:#E6ECF5}
@media (max-width:48rem){
  html{font-size:106%}
  h1{font-size:1.7rem}
  h2{font-size:1.4rem}
  .menu-btn{display:inline-block}
  .js .main-nav{display:none}
  .js .main-nav.open{display:block}
  .main-nav ul{flex-direction:column;padding-bottom:1rem}
  .main-nav a{display:block}
  .brand small{display:none}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media (forced-colors:active){.brand-mark{border:2px solid CanvasText}}

/* sélecteur de langue (pbn_i18n) */
.lang-switch{max-width:1100px;margin:24px auto 0;padding:14px 20px 0;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;line-height:1.9;text-align:center;opacity:.85}
.lang-switch a{color:inherit;text-decoration:none;white-space:nowrap}
.lang-switch a:hover{text-decoration:underline}
.lang-switch a.current{font-weight:700;text-decoration:underline}
