/* ============================================================
   PAGE ÉLECTIONS CONSULAIRES
   ============================================================ */

/* ---- SECTION POURQUOI VOTER ---- */
.pourquoi-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.1rem; margin-top:2rem; }
.pourquoi-card { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-md); padding:1.5rem; position:relative; overflow:hidden; transition:border-color 0.25s,background 0.25s,transform 0.25s; }
.pourquoi-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gradient); transform:scaleX(0); transition:transform 0.3s; transform-origin:left; }
.pourquoi-card:hover { border-color:rgba(var(--magenta-light-rgb),0.32); transform:translateY(-2px); }
.pourquoi-card:hover::before { transform:scaleX(1); }
.pq-icon { font-size:1.6rem; margin-bottom:0.6rem; }

/* ---- BLOC SÉNAT ---- */
.senat-box { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius-card); padding:2.2rem; position:relative; overflow:hidden; margin-top:2.5rem; }
.senat-box::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gradient); }
.senat-box-title { font-family:var(--font-spartan); font-weight:800; font-size:clamp(1.2rem,3vw,1.6rem); line-height:1.2; margin-bottom:1.1rem; }

.senat-exemples { display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width: 768px) { .senat-exemples { grid-template-columns:1fr 1fr; } }
a.senat-ex { display:flex; gap:0.9rem; align-items:flex-start; background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.07); border-radius:var(--radius-sm); padding:1.1rem; text-decoration:none; color:inherit; }
a.senat-ex:hover { border-color:rgba(var(--magenta-light-rgb),0.25); background:rgba(var(--magenta-light-rgb),0.04); }
.senat-ex-icon  { font-size:1.4rem; flex-shrink:0; margin-top:0.1rem; }
.senat-ex strong { font-family:var(--font-spartan); font-weight:700; font-size:0.92rem; display:block; margin-bottom:0.3rem; }

/* ---- FAQ (questions/réponses) ---- */
.faq { margin-top:1.5rem; display:flex; flex-direction:column; gap:0.8rem; }
.faq-item { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:16px; overflow:hidden; }
.faq-q { font-family:var(--font-spartan); font-weight:700; font-size:0.95rem; padding:1.1rem 1.4rem; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; user-select:none; transition:background 0.2s; width:100%; background:none; border:none; color:white; text-align:left; }
.faq-q:hover { background:rgba(var(--magenta-light-rgb),0.07); }
.faq-q .faq-arrow { font-size:0.9rem; transition:transform 0.3s; flex-shrink:0; }
.faq-q[aria-expanded="true"] .faq-arrow { transform:rotate(180deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.38s ease, padding 0.3s ease; }
.faq-a.open { max-height:800px; padding:0 1.4rem 1.1rem; }
.faq-a p { font-size:0.9rem; color:rgba(255,255,255,0.68); line-height:1.7; margin-bottom:0.6rem; }

/* ---- GRILLE MINI CANDIDAT·ES ---- */
.cands-mini-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:2rem; }
@media (max-width: 768px) { .cands-mini-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width: 600px) { .cands-mini-grid { grid-template-columns:repeat(2,1fr); } }
.cand-mini { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-sm); overflow:hidden; text-decoration:none; display:block; transition:transform 0.25s,border-color 0.25s,box-shadow 0.25s; }
.cand-mini:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(var(--magenta-light-rgb),0.18); border-color:rgba(var(--magenta-light-rgb),0.3); }
.cand-mini-photo { width:100%; aspect-ratio:3/4; background:var(--gradient); display:flex; align-items:center; justify-content:center; font-family:var(--font-serif); font-style:italic; font-size:1.8rem; color:rgba(255,255,255,0.35); position:relative; }
.cand-mini-photo::after { content:''; position:absolute; inset:0; background-image:radial-gradient(circle,rgba(255,255,255,0.08) 1px,transparent 1px); background-size:5px 5px; }
.cand-mini-info { padding:10px; }
.cand-mini-name { font-family:var(--font-spartan); font-weight:800; font-size:0.72rem; margin:0 0 2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cand-mini-meta { font-size:0.65rem; color:var(--magenta); font-weight:600; font-family:var(--font-spartan); margin:0 0 3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cand-mini-tag  { font-size:0.62rem; color:rgba(255,255,255,0.5); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ---- SECTION S'INSCRIRE — ÉTAPES ---- */
.steps-g { display:grid; grid-template-columns:1fr; gap:1.1rem; margin:2rem 0; }
@media (min-width: 768px) { .steps-g { grid-template-columns:1fr 1fr; } }
.step { display:flex; gap:1rem; align-items:flex-start; background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-md); padding:1.5rem; transition:border-color 0.25s,background 0.25s; }
.step:hover { border-color:rgba(var(--magenta-light-rgb),0.3); background:rgba(var(--magenta-light-rgb),0.05); }
.step-n { font-family:var(--font-serif); font-style:italic; font-weight:900; font-size:2.8rem; line-height:1; background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; flex-shrink:0; width:2.2rem; text-align:center; }
.step-txt h3 { font-family:var(--font-spartan); font-weight:700; font-size:0.98rem; margin-bottom:0.35rem; }

/* Encart documents nécessaires */
.docs-box { background:rgba(var(--violet-tint-rgb),0.09); border:1px solid rgba(var(--violet-tint-rgb),0.24); border-radius:var(--radius-md); padding:1.6rem; display:flex; gap:1rem; align-items:flex-start; margin-top:1.5rem; }
.docs-icon { font-size:1.8rem; flex-shrink:0; }
.docs-txt h3 { font-family:var(--font-spartan); font-weight:700; font-size:1rem; margin-bottom:0.5rem; }
.docs-txt ul { list-style:disc; padding-left:1.2rem; }
.docs-txt li { font-size:0.88rem; color:rgba(255,255,255,0.68); line-height:1.6; margin-bottom:0.2rem; }

/* Mini-cartes de dates */
.dates-mini { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0.8rem; margin:1.5rem 0; }
.dm { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-sm); padding:1.1rem 1.3rem; border-top:3px solid transparent; border-image:var(--gradient) 1; }
.dm-label { font-family:var(--font-spartan); font-weight:700; font-size:0.62rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--magenta); margin-bottom:0.3rem; }
.dm-val   { font-family:var(--font-spartan); font-weight:800; font-size:0.95rem; }

/* ---- SECTION PROGRAMME ---- */
.prog-grid { display:grid; gap:1.1rem; margin-top:2rem; }
@media (min-width: 768px) { .prog-grid { grid-template-columns:1fr 1fr; } }

/* ---- SECTION AIDER ---- */
.aider-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1.1rem; margin-top:2rem; }
.aider-c { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-md); padding:1.5rem; position:relative; overflow:hidden; transition:border-color 0.25s,background 0.25s,transform 0.25s; }
.aider-c::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gradient); transform:scaleX(0); transition:transform 0.3s; transform-origin:left; }
.aider-c:hover { border-color:rgba(var(--magenta-light-rgb),0.32); transform:translateY(-2px); }
.aider-c:hover::before { transform:scaleX(1); }
.aider-icon { font-size:1.6rem; margin-bottom:0.6rem; }

/* Cartes outils (liens utiles) */
.outil { background:rgba(255,255,255,0.042); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-sm); padding:1.2rem 1.4rem; display:flex; align-items:center; gap:0.7rem; transition:border-color 0.2s,background 0.2s; }
.outil:hover { border-color:rgba(var(--magenta-light-rgb),0.3); background:rgba(var(--magenta-light-rgb),0.06); }
.outil-icon { font-size:1.3rem; flex-shrink:0; }
.outil-txt h4 { font-family:var(--font-spartan); font-weight:700; font-size:0.88rem; margin-bottom:0.1rem; }
.outil-txt p  { font-size:0.78rem; color:rgba(255,255,255,0.52); }
