
:root{--red:#b5121b;--dark:#850b12;--ink:#24242a;--muted:#646872;--line:#e7e8eb;--bg:#f6f7f8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid #ffbe47;outline-offset:3px}.container{width:min(1100px,calc(100% - 36px));margin:auto}.skip{position:absolute;left:-10000px}.skip:focus{left:12px;top:12px;z-index:10;background:white;padding:10px}.header{background:#fff;border-bottom:1px solid var(--line)}.header-in{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:86px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.logo{display:grid;place-items:center;width:65px;height:53px;background:var(--red);color:white;font-weight:950;font-size:23px;letter-spacing:-1.5px;border-radius:4px;transform:skew(-4deg)}.brand-title{font-size:18px;font-weight:800;line-height:1.2}.brand-title small{display:block;color:var(--muted);font-size:12px;font-weight:500;margin-top:5px}nav{display:flex;gap:8px}nav a{padding:9px 15px;text-decoration:none;border-radius:6px;font-size:15px;font-weight:700}nav a:hover,nav a[aria-current]{background:#fcecee;color:var(--red)}.hero{background:linear-gradient(115deg,var(--dark),var(--red));color:#fff}.hero-in{padding:90px 0 100px}.kicker{font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;margin:0 0 15px}.hero h1{font-size:clamp(35px,5.5vw,62px);line-height:1.1;letter-spacing:-.04em;margin:0;max-width:850px}.hero p.lead{max-width:690px;font-size:18px;opacity:.96;margin:22px 0 29px}.btn{display:inline-block;background:#fff;color:var(--dark);font-weight:800;text-decoration:none;padding:12px 20px;border-radius:6px}.btn:hover{background:#fff1f1}.section{padding:65px 0 75px}.section h2{font-size:clamp(27px,4vw,37px);line-height:1.2;margin:0 0 12px}.intro{color:var(--muted);max-width:780px;margin:0 0 30px}.red{color:var(--red)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{border:1px solid var(--line);border-radius:10px;padding:27px;background:white;box-shadow:0 7px 25px #11111108}.num{display:inline-block;background:#fae8ea;color:var(--red);font-size:13px;font-weight:850;border-radius:6px;padding:5px 11px}.card h3{font-size:19px;margin:18px 0 8px}.card p{font-size:15px;color:var(--muted);margin:0}.card a{display:inline-block;color:var(--red);font-weight:800;text-decoration:none;margin-top:14px}.note{background:var(--bg);border-left:4px solid var(--red);padding:19px 22px;border-radius:4px;margin-top:32px;color:#51545c}.note p{margin:4px 0 0}.pagehead{background:linear-gradient(115deg,var(--dark),var(--red));color:white;padding:56px 0}.pagehead h1{font-size:clamp(37px,5vw,55px);line-height:1.1;margin:0}.pagehead p:last-child{margin:14px 0 0}.report{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:22px 0 28px}.report-head{padding:19px 24px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}.report-head h3{margin:0;font-size:20px}.tag{color:var(--red);font-size:12px;font-weight:850;letter-spacing:.08em}.report-body{background:var(--bg);padding:22px}.report-body img{display:block;width:100%;max-width:900px;height:auto;margin:0 auto 14px;border:1px solid var(--line);box-shadow:0 5px 22px #1111}.placeholder{border:2px dashed #c9ccd2;background:white;min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;color:var(--muted);border-radius:8px}.placeholder strong{color:var(--ink);font-size:18px}.placeholder code{font-size:13px;overflow-wrap:anywhere}.foot{background:#24242a;color:#f2f2f2}.foot-in{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:14px}.foot a{text-decoration:none}.foot a:hover{text-decoration:underline}@media(max-width:760px){.header-in{min-height:0;padding:16px 0;flex-direction:column;align-items:flex-start;gap:14px}.logo{width:56px;height:46px;font-size:21px}nav{width:100%;gap:5px}nav a{padding:8px 13px}.hero-in{padding:58px 0 65px}.hero p.lead{font-size:16px}.section{padding:45px 0 55px}.cards{grid-template-columns:1fr}.card{padding:22px}.report-head{padding:16px;align-items:flex-start;flex-direction:column}.report-body{padding:12px}.foot-in{padding:20px 0;flex-direction:column;align-items:flex-start;justify-content:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Personnalisation CGT Crous BFC */
.logo-image{display:block;width:70px;height:72px;object-fit:contain;flex-shrink:0}
.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.logo-image{width:62px;height:64px}.cards{grid-template-columns:1fr}}

/* Mise à jour : bandeau élections et communiqué */
.election-banner{background:#ed1c2e;display:flex;justify-content:center;align-items:center;width:100%;overflow:hidden}
.election-banner img{display:block;width:100%;max-width:1100px;height:auto;object-fit:contain}
.communique-title{font-size:16px;line-height:1.4;margin:12px 0 8px}
.card .communique-date{font-size:13px;font-weight:650;color:#646872;margin-bottom:10px}
.foot a{color:inherit;text-underline-offset:3px}
@media(max-width:760px){.election-banner img{width:100%;height:auto}}

/* Mise à jour de l'en-tête et harmonisation du rouge de l'affiche */
:root { --red:#ee2338; --dark:#ee2338; }
.hero,.pagehead { background:var(--red); }
.election-banner { background:var(--red); }
nav a:hover,nav a[aria-current] { background:#fff0f2; color:#b31229; }
.num { background:#fff0f2; color:#b31229; }
.logo-image { width:140px; height:144px; object-fit:contain; }
.header-in { min-height:164px; gap:24px; }
.brand { gap:20px; min-width:0; }
.brand-title { font-family:Impact,'Arial Narrow','Liberation Sans Narrow',sans-serif; font-stretch:condensed; font-size:clamp(30px,3.5vw,46px); font-weight:900; letter-spacing:.015em; line-height:1.08; }
@media(max-width:760px) {
  .header-in { min-height:0; padding:14px 0; gap:12px; }
  .logo-image { width:124px; height:128px; }
  .brand { gap:12px; }
  .brand-title { font-size:clamp(24px,6vw,38px); }
}
@media(max-width:390px) { .logo-image { width:106px; height:110px; } .brand-title { font-size:25px; } }

/* Bilan 2025 */
.report-head h2{font-size:clamp(22px,3vw,28px);margin:0}.report-body img{max-width:760px;margin:0 auto;background:white}.report-body{padding:clamp(10px,3vw,28px)}

/* Bilan dépliable : clic ou touche Entrée/Espace */
.report-toggle > summary{cursor:pointer;list-style:none;font-size:clamp(22px,3vw,28px);font-weight:750;line-height:1.25;user-select:none}
.report-toggle > summary::-webkit-details-marker{display:none}
.report-toggle > summary:hover{background:#f9f2f3;color:var(--red)}
.report-chevron{display:block;width:12px;height:12px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(45deg);transition:transform .15s ease;margin-right:5px;flex:none}
.report-toggle[open] .report-chevron{transform:rotate(225deg)}
.report-toggle[open] > summary{border-bottom:1px solid var(--line)}
@media(prefers-reduced-motion:reduce){.report-chevron{transition:none}}
