:root{--ink:#2a1b6e;--accent:#5b1a8f;--g:linear-gradient(135deg,#2A1B6E 0%,#5B1A8F 50%,#8E1450 100%)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;background:#fff;color:var(--ink);font:1rem/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;overflow-wrap:break-word}
img,svg{max-width:100%}
a{color:var(--accent);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
a:focus-visible,main:focus-visible{outline:3px solid currentColor;outline-offset:3px;border-radius:2px}
main:focus{outline:none}
h1,h2{margin:0 0 1rem;line-height:1.2;font-weight:700}
p{margin:0 0 1.2rem}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--ink);padding:.7rem 1rem;z-index:20;font-weight:700}
.skip:focus{left:0;outline:3px solid var(--ink)}
.n,.w{margin:0 auto;padding:0 1.25rem}
.n{max-width:42.5rem}
.w{max-width:58rem}
.j{text-align:justify;hyphens:auto;-webkit-hyphens:auto}

/* En-tête fixe */
.top{position:sticky;top:0;z-index:10;background:#2a1b6e var(--g);color:#fff;padding:.55rem 1rem}
.top a{color:#fff;text-decoration:none;display:inline-block;line-height:1.25}
.top strong{display:block;font-size:1.4rem}
.top span{font-size:.9rem}

/* Citation */
.intro{display:flex;align-items:center;justify-content:center;gap:2rem;padding:3rem 1.25rem 1rem}
.intro img{display:block;width:5.5rem;height:auto}
.intro blockquote{margin:0;text-align:center;font-weight:300;font-size:clamp(1.25rem,3.5vw,1.5rem);line-height:1.3}
.intro blockquote p{margin:0 0 .75rem}
.intro footer{font-size:.95rem;font-style:italic}
.first{padding:1rem 0 3rem}

/* Bandeaux Créer / Référencer / Diffuser */
.band{padding:4rem 0}
.band--g{background:#2a1b6e var(--g);color:#fff}
.band .n{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:1rem 1.25rem;align-items:start}
.band svg{width:4.2rem;height:4.2rem;margin-top:.4rem}
.band h2{font-size:clamp(2rem,6vw,2.6rem);margin:0 0 .25rem}
.band p{margin:0}
.band .bar{grid-column:2;margin-top:1.25rem;padding:.5rem 1.1rem;border-radius:.6rem;text-align:right;font-size:clamp(1.25rem,4vw,1.5rem);font-weight:700;line-height:1.3}
.band--g .bar{background:linear-gradient(90deg,rgba(255,255,255,.55),#fff);color:var(--ink)}
.band--w .bar{background:linear-gradient(90deg,#2A1B6E,#5B1A8F 60%,#8E1450);color:#fff}

/* Sections larges */
.sec{padding:3.5rem 0 0}
.sec h2{font-size:clamp(1.5rem,4.5vw,1.75rem)}
.sec p{font-size:.95rem}
.carte{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap}
.carte img{display:block;width:10.9rem;height:auto;border-radius:.9rem}
.carte div{flex:1 1 15rem}
.carte p{margin:0 0 .6rem}
.btn{display:inline-block;background:var(--ink);color:#fff;font-weight:700;padding:.65rem 1.1rem;border-radius:.5rem;text-decoration:none;margin-top:.4rem}
.btn:hover{background:var(--accent)}
.btn:focus-visible{outline-color:var(--accent)}
.sujets{list-style:none;margin:0;padding:0}
.sujets li{margin:0 0 .35rem}
main{padding-bottom:4rem}

/* Mentions légales / 404 */
.legal{padding:2.5rem 0 4rem}
.legal h1{font-size:clamp(1.6rem,6vw,2rem)}
.legal h2{margin-top:2rem;font-size:1.3rem}
.legal p{font-size:.95rem}
.maj{color:#4a4663}

/* Pied de page */
.foot{background:#2a1b6e var(--g);color:#fff;padding:1.25rem 1rem 1.5rem;font-size:.9rem}
.foot a{color:#fff;display:inline-flex;align-items:center;gap:.5rem;padding:.4rem 0;min-height:2rem}
.foot strong{display:block;font-size:1.35rem;margin-bottom:.25rem}
.foot ul{list-style:none;margin:0;padding:0}
.foot svg{width:1.5rem;height:1.5rem;flex:none}
.foot p{margin:.75rem 0 0}

/* Tablette et mobile */
@media (max-width:48rem){
.band{padding:3rem 0}
.first{padding-bottom:2.5rem}
.sec{padding-top:2.75rem}
}
@media (max-width:40rem){
.top{text-align:center;padding:.6rem 1rem}
.j{text-align:left;hyphens:manual}
.intro{flex-direction:column;gap:1rem;padding-top:2rem}
.band .n{grid-template-columns:3.25rem minmax(0,1fr);gap:.75rem 1rem}
.band svg{width:3rem;height:3rem}
.carte img{width:min(100%,14rem)}
.carte div{flex-basis:100%}
.btn{display:block;text-align:center}
}
@media (max-width:22rem){
.n,.w{padding:0 1rem}
.top strong{font-size:1.2rem}
}
/* Paysage bas ou fort zoom : l'en-tête ne masque plus le contenu */
@media (max-height:32rem){.top{position:static}}
@media (forced-colors:active){.band--g .bar,.band--w .bar{border:2px solid CanvasText}}
@media print{.top,.foot,.skip{background:none;color:#000}.top a,.foot a{color:#000}.band--g{background:none;color:#000}}
