:root{
  --navy:#062d4b; --navy-2:#0b4668; --teal:#0b9ea8; --teal-2:#5fd0ca;
  --gold:#d5a047; --ink:#173247; --muted:#647887; --paper:#ffffff; --soft:#f4f8fa;
  --line:#dce7ec; --sand:#f7f1e6; --shadow:0 20px 55px rgba(6,45,75,.12);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.58}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:18px;top:12px;background:#fff;padding:10px 14px;border-radius:10px;z-index:999}
.topbar{background:var(--navy);color:#dcebf1;font-size:13px}.topbar-inner{min-height:38px;display:flex;justify-content:space-between;align-items:center;gap:20px}.topbar a{font-weight:750;color:#fff}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,231,236,.9)}.nav-wrap{position:relative}.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,var(--navy),var(--teal));color:#fff;display:grid;place-items:center;font-weight:900;font-size:23px;box-shadow:0 8px 22px rgba(6,45,75,.18)}.brand-copy strong{display:block;font-size:19px;letter-spacing:-.02em}.brand-copy strong span{color:var(--teal)}.brand-copy small{display:block;color:var(--muted);font-size:11px;font-weight:700}.main-nav{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:750}.main-nav a:hover{color:var(--teal)}.nav-cta{padding:10px 15px;border-radius:999px;background:var(--navy);color:#fff!important}.menu-toggle{display:none;border:0;background:transparent;font-size:28px;color:var(--navy);cursor:pointer}
.breadcrumb{background:#f7fafb;border-bottom:1px solid var(--line)}.breadcrumb .wrap{min-height:44px;display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted)}.breadcrumb a{font-weight:700;color:var(--navy)}.breadcrumb b{color:#9aa9b3}
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#062d4b,#0b5878);color:#fff}.hero-grid{min-height:510px;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;padding:66px 0}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero h1{font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.045em;margin:18px 0 20px}.hero h1 span{color:#9fe5df}.hero-lead{font-size:18px;max-width:720px;color:#e6f0f4;margin:0 0 25px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 17px;font-weight:800;border:1px solid transparent}.btn.primary{background:#fff;color:var(--navy)}.btn.ghost{border-color:rgba(255,255,255,.35);color:#fff;background:rgba(255,255,255,.08)}.hero-media{position:relative}.hero-media img{width:100%;aspect-ratio:1200/630;object-fit:cover;border-radius:28px;border:1px solid rgba(255,255,255,.2);box-shadow:0 32px 80px rgba(0,0,0,.25)}.hero-badge{position:absolute;right:18px;bottom:18px;padding:12px 14px;border-radius:14px;background:rgba(5,32,51,.87);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18)}.hero-badge b{display:block;font-size:20px}.hero-badge span{font-size:12px;color:#d9e9ef}
.stats{background:#fff;border-bottom:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}.stat{padding:22px 18px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat b{display:block;font-size:25px;color:var(--navy);line-height:1.1}.stat span{font-size:13px;color:var(--muted)}
.section{padding:72px 0}.section.soft{background:var(--soft)}.section.sand{background:var(--sand)}.section-head{display:grid;grid-template-columns:1fr .95fr;gap:48px;align-items:end;margin-bottom:28px}.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--teal);font-weight:900}.section-head h2{font-size:clamp(30px,4vw,48px);line-height:1.08;letter-spacing:-.035em;margin:7px 0 0}.section-head p{margin:0;color:var(--muted);font-size:16px}.copy{max-width:880px}.copy p{color:#425c6e;font-size:16px}.copy strong{color:var(--navy)}
.region-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.region-card{border:1px solid var(--line);border-radius:24px;background:#fff;overflow:hidden;box-shadow:0 12px 34px rgba(6,45,75,.06);display:flex;flex-direction:column}.region-card img{width:100%;aspect-ratio:16/8.2;object-fit:cover}.region-card-body{padding:24px}.region-card h3{font-size:25px;margin:0 0 7px;letter-spacing:-.025em}.region-card p{margin:0 0 17px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 20px}.tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf6f7;color:#176a73;font-size:12px;font-weight:800}.link-arrow{display:inline-flex;align-items:center;gap:7px;color:var(--navy);font-weight:850}.link-arrow:hover{color:var(--teal)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.info-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:21px}.info-card .ico{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#e9f5f6;font-size:20px}.info-card h3{font-size:18px;margin:14px 0 7px}.info-card p{font-size:14px;color:var(--muted);margin:0}.info-card a{display:inline-block;margin-top:11px;color:var(--teal);font-size:13px;font-weight:850}
.province-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.province{padding:20px;border-radius:18px;border:1px solid var(--line);background:#fff}.province strong{display:block;color:var(--navy);font-size:17px}.province small{color:var(--muted)}
.directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.business-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;min-height:210px}.business-card .category{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--teal)}.business-card h3{font-size:20px;margin:9px 0 7px}.business-card p{font-size:14px;color:var(--muted);margin:0 0 14px}.business-card .status{margin-top:auto;display:inline-flex;align-self:flex-start;border-radius:999px;padding:6px 9px;background:#f1f5f7;color:#5f707b;font-size:11px;font-weight:850}.business-card a{margin-top:auto;color:var(--navy);font-size:13px;font-weight:850}
.seo-panel{display:grid;grid-template-columns:.95fr 1.05fr;gap:24px}.seo-box{background:var(--navy);color:#fff;border-radius:24px;padding:28px}.seo-box h2{font-size:32px;line-height:1.08;margin:0 0 12px}.seo-box p{color:#d9e7ed}.seo-box ul{padding-left:20px;color:#edf5f7}.source-box{border-radius:24px;background:#fff;border:1px solid var(--line);padding:28px}.source-box h3{margin:0 0 12px}.source-box p{color:var(--muted);font-size:14px}.source-list{display:grid;gap:9px;margin-top:14px}.source-list div{padding:10px 12px;background:var(--soft);border-radius:12px;font-size:13px;font-weight:750}
.faq{display:grid;gap:10px}.faq details{background:#fff;border:1px solid var(--line);border-radius:15px;padding:0 17px}.faq summary{cursor:pointer;font-weight:850;color:var(--navy);padding:15px 0}.faq p{margin:0 0 16px;color:var(--muted);font-size:14px}
.cta{background:linear-gradient(135deg,#062d4b,#0b5878);color:#fff;padding:55px 0}.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{margin:0 0 7px;font-size:32px}.cta p{margin:0;color:#dbe8ee}.cta .btn{flex:0 0 auto}
footer{background:#041f34;color:#aec4d0;padding:34px 0}.foot{display:flex;justify-content:space-between;align-items:center;gap:22px;font-size:13px}.foot b{color:#fff}.foot-links{display:flex;gap:15px;flex-wrap:wrap}.foot a{color:#fff}
@media(max-width:980px){.main-nav{display:none}.menu-toggle{display:block}.main-nav.open{display:flex;position:absolute;top:76px;left:18px;right:18px;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:10px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.main-nav.open a{padding:12px 14px}.hero-grid,.section-head,.seo-panel{grid-template-columns:1fr}.hero-grid{padding:48px 0;gap:28px}.stats-grid{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.grid-3,.directory-grid{grid-template-columns:1fr 1fr}.province-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.topbar{display:none}.wrap{width:min(100% - 24px,1180px)}.nav{min-height:68px}.main-nav.open{top:68px}.hero-grid{min-height:auto;padding:40px 0}.hero h1{font-size:44px}.hero-lead{font-size:16px}.region-grid,.grid-3,.directory-grid,.province-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.section{padding:54px 0}.cta .wrap,.foot{flex-direction:column;align-items:flex-start}.btn{width:100%}}

/* v1.1 — repères institutionnels et représentation parlementaire */
.civic-wrap{display:grid;gap:18px}.civic-intro{max-width:900px;color:#425c6e}.civic-note{padding:15px 17px;border:1px solid #cfe2e7;border-left:4px solid var(--teal);border-radius:14px;background:#f8fbfc;color:#425c6e;font-size:14px}.civic-note strong{color:var(--navy)}.parliament-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.parliament-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 10px 28px rgba(6,45,75,.05)}.parliament-card h3{margin:0 0 6px;font-size:21px;color:var(--navy)}.parliament-card>p{margin:0 0 14px;color:var(--muted);font-size:14px}.rep-table{width:100%;border-collapse:collapse;font-size:14px}.rep-table th{padding:10px 8px;text-align:left;color:#5d7483;font-size:11px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}.rep-table td{padding:11px 8px;vertical-align:top;border-bottom:1px solid #edf2f4}.rep-table tr:last-child td{border-bottom:0}.rep-table strong{color:var(--ink)}.party{display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf6f7;color:#176a73;font-size:11px;font-weight:850;white-space:normal}.election-status{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:18px;border-radius:18px;background:var(--navy);color:#fff}.election-status .year{min-width:68px;height:68px;border-radius:17px;display:grid;place-items:center;background:rgba(255,255,255,.11);font-size:21px;font-weight:900}.election-status h3{margin:1px 0 6px;font-size:19px}.election-status p{margin:0;color:#dcebf1;font-size:14px}.source-inline{margin-top:14px;color:#6b7f8c;font-size:12px}.source-inline strong{color:var(--navy)}
@media(max-width:980px){.parliament-grid{grid-template-columns:1fr}}
@media(max-width:640px){.parliament-card{padding:16px}.rep-table{font-size:13px}.rep-table th,.rep-table td{padding:9px 6px}.election-status{grid-template-columns:1fr}.election-status .year{min-width:0;width:68px}}

/* v1.2 — résultats législatifs 2026 */
.election-results-block{display:grid;gap:18px;margin-top:2px}.election-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.election-stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px 18px;box-shadow:0 8px 24px rgba(6,45,75,.04)}.election-stat strong{display:block;color:var(--navy);font-size:27px;line-height:1}.election-stat span{display:block;margin-top:7px;color:var(--muted);font-size:12px;font-weight:750}.election-results-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.regional-2026{margin-top:0}.micro-note{margin:10px 0 0!important;color:#7b8e99!important;font-size:11px!important}.rep-table small{color:#738792;font-size:11px}.election-results-block .source-inline{margin-top:0}
@media(max-width:980px){.election-results-grid{grid-template-columns:1fr}.election-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.election-summary-grid{grid-template-columns:1fr 1fr}.election-stat{padding:14px}.election-stat strong{font-size:23px}}

/* v1.3 — pages documentaires élections législatives 2026 */
.election-hero{background:linear-gradient(120deg,#062d4b,#17465d);color:#fff}.election-hero .hero-grid{min-height:430px}.election-hero h1{max-width:900px}.data-disclaimer{border:1px solid #d7e3e8;border-left:4px solid var(--gold);background:#fffaf0;border-radius:14px;padding:14px 16px;color:#506777;font-size:13px}.data-disclaimer strong{color:var(--navy)}
.result-table{width:100%;border-collapse:collapse}.result-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#657a88;text-align:left;padding:10px;border-bottom:1px solid var(--line)}.result-table td{padding:11px 10px;border-bottom:1px solid #edf2f4;vertical-align:top}.result-table tr:last-child td{border-bottom:0}.result-table strong{color:var(--navy)}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.result-panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.result-panel h3{margin:0 0 8px;color:var(--navy);font-size:21px}.result-panel p{color:var(--muted);font-size:14px}.source-links{display:grid;gap:8px}.source-links a{display:block;padding:10px 12px;border-radius:12px;background:var(--soft);font-size:13px;font-weight:800;color:var(--navy)}.source-links a:hover{color:var(--teal)}.region-jump{display:grid;grid-template-columns:1fr 1fr;gap:16px}.region-jump a{display:block;background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.region-jump strong{display:block;font-size:20px;color:var(--navy)}.region-jump span{color:var(--muted);font-size:13px}.arabic{font-family:Tahoma,"Noto Sans Arabic",Arial,sans-serif;direction:rtl;unicode-bidi:isolate}.source-tag{font-size:11px;font-weight:850;color:#6f8290}.neutral-note{font-size:12px;color:#6f8290}.compact-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.compact-cta .btn{width:auto}
@media(max-width:980px){.result-grid,.region-jump{grid-template-columns:1fr}}

.source-text{display:block;color:#586975;line-height:1.55;margin:.25rem 0}.source-list{display:grid;gap:.45rem;color:#586975}


/* v1.1 — refonte visuelle ciblée élections 2026 */
.election-hero{isolation:isolate;background:linear-gradient(126deg,#041f34 0%,#062d4b 48%,#0b5878 100%)}
.election-hero::before,.election-hero::after{content:"";position:absolute;z-index:-1;border-radius:999px;pointer-events:none}
.election-hero::before{width:460px;height:460px;right:-150px;top:-230px;background:radial-gradient(circle,rgba(95,208,202,.18),rgba(95,208,202,0) 68%)}
.election-hero::after{width:520px;height:520px;left:-260px;bottom:-390px;background:radial-gradient(circle,rgba(213,160,71,.16),rgba(213,160,71,0) 70%)}
.election-hero .hero-grid{min-height:470px;position:relative;z-index:1}.election-hero .eyebrow{box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.election-hero .hero-media::after{content:"";position:absolute;inset:0;border-radius:28px;background:linear-gradient(180deg,rgba(4,31,52,.03),rgba(4,31,52,.18));pointer-events:none}
.election-hero .hero-media img{filter:saturate(.96) contrast(1.04);box-shadow:0 30px 72px rgba(0,0,0,.29)}
.election-hero .hero-badge{z-index:2;border-color:rgba(255,255,255,.24);box-shadow:0 12px 28px rgba(0,0,0,.18)}

.stats.stats-cards{background:linear-gradient(180deg,#f6fafb 0%,#fff 100%);border:0;padding:0 0 4px}.stats.stats-cards .stats-grid{position:relative;z-index:4;gap:14px;transform:translateY(-22px);margin-bottom:-10px}.stats.stats-cards .stat-card{min-height:118px;padding:21px 20px 18px;border:1px solid rgba(220,231,236,.95)!important;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(6,45,75,.10);display:flex;flex-direction:column;justify-content:center}.stats.stats-cards .stat-card b{font-size:29px;letter-spacing:-.025em}.stats.stats-cards .stat-card span{margin-top:7px;line-height:1.35}.stat-meter{display:block!important;width:100%;height:5px;margin-top:13px!important;border-radius:999px;background:#e7eff2;overflow:hidden}.stat-meter i{display:block;height:100%;width:var(--value);border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--teal-2))}

.election-subnav-wrap{background:#fff;border-bottom:1px solid var(--line)}.election-subnav{display:flex;gap:8px;align-items:center;padding:10px 0 16px;overflow-x:auto;scrollbar-width:thin}.election-subnav a{flex:0 0 auto;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-size:12px;font-weight:850;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.election-subnav a:hover{transform:translateY(-1px);border-color:#b9d6dc;color:var(--teal);box-shadow:0 7px 16px rgba(6,45,75,.08)}

.section{padding:62px 0}.section-head{margin-bottom:24px}.section-head h2{max-width:820px}.result-panel{border-color:#d8e4e9;box-shadow:0 14px 34px rgba(6,45,75,.065);overflow:hidden}.result-panel>.table-scroll{margin:0 -2px}.result-table{font-variant-numeric:tabular-nums}.result-table thead{background:linear-gradient(180deg,#f5f9fa,#edf4f6)}.result-table th{padding:12px 13px;color:#4d6575;border-bottom:1px solid #cfdee4}.result-table td{padding:13px;border-bottom:1px solid #e7eef1}.result-table tbody tr:nth-child(even){background:#fbfdfe}.result-table tbody tr{transition:background .16s ease}.result-table tbody tr:hover{background:#f3f9fa}.party-code{display:inline-flex;min-width:42px;justify-content:center;padding:5px 8px;border-radius:999px;background:#e9f5f6;color:#176a73!important;font-size:11px;letter-spacing:.03em}.seat-visual{display:grid;grid-template-columns:minmax(34px,auto) minmax(88px,1fr);align-items:center;gap:10px;min-width:150px}.seat-number{font-size:16px;color:var(--navy)!important}.seat-bar,.mini-meter{display:block;height:7px;border-radius:999px;background:#e5eef1;overflow:hidden}.seat-bar i,.mini-meter i{display:block;height:100%;width:var(--value);border-radius:inherit;background:linear-gradient(90deg,var(--teal),#48bfc0)}.participation-value{display:block;font-weight:850;color:var(--navy);white-space:nowrap}.mini-meter{width:105px;height:5px;margin-top:7px}.circ-seat{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border-radius:10px;background:#edf6f7;color:#176a73!important;font-size:15px}.table-hint{display:none;color:#758994;font-size:11px;font-weight:750;text-align:right;margin:0 0 7px}.neutral-note{margin-top:12px;padding-left:2px;line-height:1.5}

.region-card-grid{grid-template-columns:repeat(3,1fr);gap:18px}.region-jump .election-region-card{padding:0;overflow:hidden;border-radius:20px;box-shadow:0 12px 30px rgba(6,45,75,.07);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.region-jump .election-region-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(6,45,75,.13);border-color:#c6dde2}.election-region-media{display:block;overflow:hidden;background:#eaf1f3}.election-region-media img{width:100%;aspect-ratio:1200/630;object-fit:cover;transition:transform .28s ease}.election-region-card:hover .election-region-media img{transform:scale(1.018)}.election-region-body{display:block;padding:18px 19px 20px}.region-jump .election-region-body strong{font-size:18px;line-height:1.2;min-height:44px}.election-region-numbers{display:block!important;margin-top:7px;color:var(--muted)!important;font-size:12px!important}.election-region-link{display:inline-flex!important;margin-top:13px;color:var(--teal)!important;font-size:12px!important;font-weight:900}

.methodology-note{max-width:940px;margin:22px auto 0;padding:17px 19px;border:1px solid #e8d7b6;border-left:4px solid var(--gold);background:linear-gradient(180deg,#fffaf1,#fffdf8);box-shadow:0 9px 24px rgba(111,79,24,.055);line-height:1.55}.seo-panel-single{grid-template-columns:1fr}.seo-panel-single .seo-box{width:100%;display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:18px 34px;align-items:center;padding:26px 30px;background:linear-gradient(135deg,#062d4b,#0a405f);box-shadow:0 18px 46px rgba(6,45,75,.13)}.seo-panel-single .seo-box h2{font-size:28px;margin:0}.seo-panel-single .seo-box p{margin:0}.seo-panel-single .seo-box .compact-cta{grid-column:2;margin-top:0;justify-content:flex-start}

.btn,.region-jump a{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.btn:hover{transform:translateY(-1px)}

@media(max-width:980px){.region-card-grid{grid-template-columns:repeat(2,1fr)}.stats.stats-cards .stats-grid{gap:12px}.seo-panel-single .seo-box{grid-template-columns:1fr;gap:10px}.seo-panel-single .seo-box .compact-cta{grid-column:1}.seat-visual{min-width:130px}}
@media(max-width:640px){.election-hero .hero-grid{padding:34px 0 50px}.election-hero .hero-media img,.election-hero .hero-media::after{border-radius:20px}.stats.stats-cards .stats-grid{transform:translateY(-18px);margin-bottom:-6px;gap:10px}.stats.stats-cards .stat-card{min-height:104px;padding:17px 15px}.stats.stats-cards .stat-card b{font-size:25px}.stats.stats-cards .stat-card span{font-size:12px}.election-subnav{padding-top:8px;padding-bottom:13px}.section{padding:50px 0}.result-panel{padding:16px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-hint{display:block}.result-table{min-width:610px}.region-card-grid{grid-template-columns:1fr}.election-region-body{padding:16px 17px 18px}.region-jump .election-region-body strong{min-height:0}.methodology-note{margin-top:18px;padding:15px}.seo-panel-single .seo-box{padding:22px 20px}.seo-panel-single .seo-box h2{font-size:25px}.mini-meter{width:90px}.seat-visual{min-width:125px}.hero-badge{right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.election-subnav a,.region-jump .election-region-card,.election-region-media img,.result-table tbody tr{transition:none!important}.region-jump .election-region-card:hover,.btn:hover,.election-subnav a:hover{transform:none!important}.election-region-card:hover .election-region-media img{transform:none!important}}


/* v1.2 — corrections compactes demandées le 05/10/2026 */
/* Hero : conserver les vraies images régionales 1200×630 et les afficher réellement en paysage. */
.election-hero .hero-grid{
  min-height:auto;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:38px;
  padding:44px 0 46px;
  align-items:center;
}
.election-hero .hero-media{width:100%}
.election-hero .hero-media img{
  width:100%;
  height:auto;
  aspect-ratio:1200/630;
  object-fit:cover;
}

/* Densité verticale : supprimer les grandes bandes vides entre résultats et sections suivantes. */
.section{padding:40px 0}
.section-head{gap:28px;margin-bottom:18px}
.section-head h2{margin-top:5px}
.neutral-note{margin:9px 0 0}
.stats.stats-cards .stats-grid{transform:translateY(-16px);margin-bottom:-6px}

/* Footer élections : même principe compact que le footer entreprise, sans changer son contenu. */
footer{padding:16px 0}
.foot{min-height:36px;line-height:1.35;gap:18px}
.foot>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.foot-sep{color:#7894a4;margin:0 1px}
.foot-links{align-items:center;gap:8px}

@media(max-width:980px){
  .election-hero .hero-grid{grid-template-columns:1fr;gap:24px;padding:38px 0 40px}
  .election-hero .hero-media{max-width:820px}
  .section{padding:36px 0}
  .section-head{gap:18px}
}
@media(max-width:640px){
  .election-hero .hero-grid{padding:30px 0 34px;gap:20px}
  .section{padding:32px 0}
  .section-head{margin-bottom:15px}
  .stats.stats-cards .stats-grid{transform:translateY(-12px);margin-bottom:-3px}
  footer{padding:14px 0}
  .foot{gap:9px}
  .foot>div:first-child,.foot-links{gap:5px 7px}
}

/* v1.3 — densité, footer standard compact et visuels régionaux panoramiques — 05/10/2026 */
/* 1) Rythme vertical : supprimer les bandes vides sans tasser le contenu. */
.section{padding:24px 0}
.section-head{gap:22px;margin-bottom:14px}
.section-head h2{margin-top:4px}
.result-panel{padding:18px}
.neutral-note{margin:7px 0 0}
.stats.stats-cards{padding-bottom:0}
.stats.stats-cards .stats-grid{transform:translateY(-10px);margin-bottom:-4px}
#resultats-nationaux.section,#repartition.section{padding-bottom:22px}
#regions.section,#circonscriptions.section{padding-top:22px}

/* 2) Accueil Élections : vraies photos régionales en bandeau LARGE, jamais en vignette haute. */
.region-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.region-jump .election-region-card{display:flex;flex-direction:column;min-width:0}
.election-region-media{width:100%;height:auto;overflow:hidden}
.election-region-media img{
  display:block;
  width:100%;
  height:auto;
  max-height:230px;
  aspect-ratio:16/7;
  object-fit:cover;
  object-position:center;
}
.election-region-body{padding:15px 17px 16px}
.region-jump .election-region-body strong{min-height:0;font-size:17px}
.election-region-numbers{margin-top:5px!important}
.election-region-link{margin-top:9px!important}

/* 3) Footer : hauteur desktop alignée sur le footer entreprise compact de référence. */
footer{padding:0}
.foot{
  min-height:40px;
  line-height:1.15;
  gap:14px;
  font-size:12px;
  flex-wrap:nowrap;
}
.foot>div:first-child{display:flex;align-items:center;flex-wrap:nowrap;gap:5px;white-space:nowrap}
.foot-links{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;white-space:nowrap}
.foot-sep{margin:0;color:#7894a4}

@media(max-width:1100px){
  .foot{font-size:11px;gap:10px}
  .foot>div:first-child,.foot-links{gap:4px}
}
@media(max-width:820px){
  .section{padding:22px 0}
  .section-head{gap:14px;margin-bottom:12px}
  .region-card-grid{grid-template-columns:1fr}
  .election-region-media img{max-height:none;aspect-ratio:16/7.4}
  footer{padding:8px 0}
  .foot{min-height:0;flex-wrap:wrap;white-space:normal}
  .foot>div:first-child,.foot-links{flex-wrap:wrap;white-space:normal}
}
@media(max-width:640px){
  .section{padding:20px 0}
  #resultats-nationaux.section,#repartition.section{padding-bottom:18px}
  #regions.section,#circonscriptions.section{padding-top:18px}
  .result-panel{padding:14px}
  .stats.stats-cards .stats-grid{transform:translateY(-8px);margin-bottom:-2px}
  .election-region-media img{aspect-ratio:16/8}
  .election-region-body{padding:14px 15px 15px}
  footer{padding:9px 0}
  .foot{gap:6px}
}


/* V1.5 — Cartes régionales de la page d'accueil : ligne compacte desktop */
#regions .election-region-body{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:14px 17px 15px;
  flex-wrap:nowrap;
}
#regions .election-region-body strong{
  min-height:0;
  margin:0;
  font-size:15px;
  line-height:1.25;
  white-space:nowrap;
  flex:0 1 auto;
}
#regions .election-region-numbers{
  display:inline-block !important;
  margin-top:0 !important;
  white-space:nowrap;
  flex:1 1 auto;
}
#regions .election-region-link{
  display:inline-flex !important;
  margin-top:0 !important;
  margin-left:auto;
  white-space:nowrap;
  flex:0 0 auto;
}
@media(max-width:1180px){
  #regions .election-region-body{gap:8px}
  #regions .election-region-body strong{font-size:14px}
  #regions .election-region-numbers,#regions .election-region-link{font-size:11.5px !important}
}
@media(max-width:980px){
  #regions .election-region-body{
    flex-wrap:wrap;
    align-items:flex-start;
    row-gap:5px;
  }
  #regions .election-region-body strong{font-size:16px}
  #regions .election-region-link{margin-left:0}
}
@media(max-width:640px){
  #regions .election-region-body{
    display:block;
    padding:14px 15px 15px;
  }
  #regions .election-region-body strong{display:block;font-size:17px;white-space:normal}
  #regions .election-region-numbers{display:block !important;margin-top:5px !important}
  #regions .election-region-link{display:inline-flex !important;margin-top:9px !important;margin-left:0}
}


/* V2.0 — gabarit régional enrichi MarocPros */
.region-overview{padding:26px 0 20px}.overview-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.overview-copy,.territory-panel,.participation-panel,.elected-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 30px rgba(6,45,75,.05)}.overview-copy h2,.territory-panel h2,.participation-panel h2,.elected-panel h2{margin:0 0 10px;color:var(--navy);font-size:24px}.overview-copy p,.territory-panel p,.participation-panel p,.elected-panel p{margin:0;color:var(--muted);line-height:1.65}.overview-copy p+p{margin-top:10px}.keyfacts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.keyfact{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:14px}.keyfact b{display:block;color:var(--navy);font-size:21px;line-height:1.05}.keyfact span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.party-cell{display:flex;align-items:center;gap:8px}.party-mark{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 7px;border-radius:9px;border:1px solid #cfdce3;background:#fff;color:var(--navy);font-weight:900;font-size:11px;letter-spacing:.02em}.result-table .party-name{font-weight:700;color:var(--ink)}.territory-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.territory-strip .item{border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--soft)}.territory-strip b{display:block;font-size:18px;color:var(--navy)}.territory-strip span{font-size:12px;color:var(--muted)}.section-tight{padding:22px 0}.elected-table td:first-child{font-weight:700}.data-status{display:inline-block;margin-top:12px;font-size:12px;color:var(--muted)}.data-status strong{color:var(--navy)}.region-emblem-slot{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:6px 10px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:12px;color:#e9f4f7}.region-emblem-slot::before{content:'◈';font-size:14px}.hero-meta-line{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#d9e8ee}.hero-meta-line span{border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:5px 9px}.source-policy-note{display:none!important}
@media(max-width:900px){.overview-grid{grid-template-columns:1fr}.territory-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.region-overview{padding:18px 0 14px}.overview-copy,.territory-panel,.participation-panel,.elected-panel{padding:16px}.overview-copy h2,.territory-panel h2,.participation-panel h2,.elected-panel h2{font-size:21px}.keyfacts{grid-template-columns:repeat(2,1fr)}.territory-strip{grid-template-columns:repeat(2,1fr)}}


/* V2.1 — enrichissement Guelmim-Oued Noun */
.compact-election-table td,.compact-election-table th{vertical-align:middle}
.value-pending{color:var(--muted);font-weight:700}
.regional-women-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.women-highlight{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 30px rgba(6,45,75,.05)}
.women-highlight h2{margin:0 0 10px;color:var(--navy);font-size:24px}
.women-highlight p{margin:0;color:var(--muted);line-height:1.65}
.women-highlight p+p{margin-top:10px}
.regional-party-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 12px}
.micro-note{font-size:12px!important;line-height:1.5!important;color:#70828e!important}
.women-stat{display:flex;flex-direction:column;justify-content:center;text-align:center}
.women-stat .big-number{font-size:44px;line-height:1;font-weight:900;color:var(--teal);margin:4px 0 8px}
.two-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.comparison-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}
.comparison-row>div{background:var(--soft);border:1px solid var(--line);border-radius:13px;padding:11px;text-align:center}
.comparison-row b{display:block;color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.comparison-row span{display:block;margin-top:4px;color:var(--ink);font-weight:800}
.population-table .table-total td{background:#f4f8fa;border-top:2px solid #cfdee4}
#circonscriptions .result-panel,#repartition .result-panel,#territoire .result-panel{padding:16px}
@media(max-width:900px){.regional-women-grid,.two-panel-grid{grid-template-columns:1fr}.women-stat{text-align:left}.women-stat .big-number{font-size:38px}.comparison-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.women-highlight{padding:16px}.women-highlight h2{font-size:21px}.comparison-row{grid-template-columns:1fr}.comparison-row>div{text-align:left}.women-stat .big-number{font-size:34px}.compact-election-table{min-width:640px}}
