@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;color:#132343;background:#f4f7fc;scroll-behavior:smooth;font-size:17px}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,.btn{transition:transform .2s,box-shadow .2s,background .2s}button:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 9px 24px #052a6440}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f5c542;outline-offset:3px}
.top{background:#081e44;color:white;display:flex;align-items:center;justify-content:space-between;padding:21px clamp(20px,3.2vw,76px);gap:20px;border-bottom:3px solid #e7b942}.brand{display:flex;align-items:center;gap:16px;font-size:clamp(15px,1.4vw,20px);font-weight:900;letter-spacing:.07em}.brand small{display:block;font-size:12px;font-weight:500;color:#c4d8fa;letter-spacing:.03em;margin-top:4px}.mark{background:#e9bb3d;color:#0a224a;padding:12px;border-radius:13px}.toplink{font-size:15px;font-weight:700;color:#e7f0ff;padding:11px 17px;border:1px solid #5e789c;border-radius:10px}
.wrap{width:min(100% - 5.5vw,1800px);max-width:none;margin:0 auto;padding:34px 0 100px}.hero{position:relative;min-height:clamp(550px,47vw,740px);background:linear-gradient(120deg,#061b3e 0%,#103d83 60%,#2372b5 100%);border-radius:28px;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;color:#fff;box-shadow:0 22px 55px #0b2b5c28}.hero:before{content:'';position:absolute;width:450px;height:450px;border:1px solid #ffffff24;border-radius:50%;left:28%;top:-32%;pointer-events:none}.hero-copy{position:relative;z-index:1;align-self:center;padding:clamp(42px,5.4vw,110px) clamp(30px,5.5vw,105px)}.eyebrow{display:inline-block;color:#f8d87e;font-size:clamp(12px,1.1vw,16px);letter-spacing:.17em;font-weight:800}.hero h1{font-family:Manrope,system-ui,sans-serif;font-size:clamp(48px,5.4vw,100px);letter-spacing:-.045em;line-height:1.04;margin:20px 0 25px;max-width:900px}.hero h3{font-size:clamp(20px,1.9vw,30px);font-weight:700;color:#ffdc81;margin:0 0 18px}.hero p{font-size:clamp(17px,1.3vw,23px);line-height:1.7;color:#e2eeff;max-width:760px}.hero-buttons{display:flex;gap:15px;flex-wrap:wrap;margin-top:38px}.btn,button{background:#f0c34d;color:#081f46;border:0;padding:17px 25px;border-radius:12px;font-size:16px;font-weight:800;cursor:pointer}.ghost{background:#ffffff12;color:#fff;border:1px solid #ffffff8c}.portrait{position:relative;display:flex;align-items:stretch;justify-content:center;min-height:550px;background:radial-gradient(circle at 45% 45%,#8ec6ed55,transparent 68%)}.portrait:after{content:'';position:absolute;inset:auto 0 0;height:22%;background:linear-gradient(transparent,#061b3e88);pointer-events:none}.portrait img{display:block;width:100%;height:100%;min-height:550px;object-fit:cover;object-position:center 18%}.portrait-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;color:#cde6ff}.portrait-placeholder span{font-size:180px;line-height:1}
.tabs{display:flex;align-items:center;gap:12px;overflow-x:auto;padding:22px 4px;position:sticky;top:0;background:#f4f7fcf5;backdrop-filter:blur(12px);z-index:5;border-bottom:1px solid #e2e9f4}.tabs a{white-space:nowrap;padding:15px clamp(15px,2vw,30px);background:#fff;border:1px solid #e0e9f5;border-radius:12px;font-size:16px;font-weight:800;box-shadow:0 4px 12px #12345b08}.tabs a:hover{background:#102f68;color:#fff}.section{padding:65px 0 22px;scroll-margin-top:100px}.kicker{font-size:14px;letter-spacing:.16em;font-weight:900;text-transform:uppercase;color:#1b5db3}.section h2{font-family:Manrope,system-ui,sans-serif;font-size:clamp(33px,3vw,55px);line-height:1.16;letter-spacing:-.025em;margin:13px 0 30px;color:#0d2b60}.bio{max-width:1300px;font-size:clamp(18px,1.35vw,23px);line-height:1.85;color:#344a6b}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.panel{background:#fff;border:1px solid #e0e8f4;border-radius:20px;padding:clamp(24px,2.2vw,40px);box-shadow:0 10px 32px #143d7710;margin-bottom:20px}.panel h3{font-size:clamp(20px,1.5vw,27px);margin:12px 0 16px;color:#123367}.panel p,.muted{color:#526883;line-height:1.75;font-size:16px}.symbol{font-size:37px;color:#1767c7}.panel small{color:#667f9c;font-size:14px}.poll{max-width:none}.poll-top{display:flex;justify-content:space-between;gap:20px;margin-bottom:16px;font-size:19px}.track{height:15px;background:#e5edf8;border-radius:30px;overflow:hidden;margin-bottom:15px}.track div{height:100%;background:linear-gradient(90deg,#12499a,#3797e9);border-radius:30px}.empty{color:#657994}footer{text-align:center;padding:42px 20px;background:#081e44;color:#d2e3f7;font-size:15px}.narrow{max-width:560px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-weight:700;font-size:15px;margin:14px 0}input,textarea{display:block;width:100%;padding:15px 16px;border:1px solid #c8d7e9;border-radius:11px;margin-top:8px;background:#fff}textarea{resize:vertical}.secondary{background:#e5edf8;color:#153f7d}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:20px}.edit-row{border:1px solid #dce6f2;border-radius:14px;padding:20px;margin:15px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.edit-row label{margin:0}.edit-row .remove{align-self:end;background:#fff0f0;color:#a12424}.logout{text-align:right}.alert{color:#b42318}.ok{color:#197548}
@media(min-width:1800px){.wrap{width:94%}}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:550px}.hero-copy{padding:55px 40px}.hero h1{font-size:clamp(42px,5vw,72px)}}@media(max-width:700px){:root{font-size:16px}.top{padding:15px 16px}.brand{font-size:13px;gap:9px}.brand small{font-size:10px}.mark{padding:9px}.toplink{font-size:12px;padding:9px}.wrap{width:calc(100% - 24px);padding:15px 0 65px}.hero{grid-template-columns:1fr;border-radius:18px}.hero-copy{padding:34px 24px 42px;order:2}.hero h1{font-size:clamp(39px,9vw,62px)}.hero h3{font-size:20px}.hero p{font-size:17px}.portrait{order:1;min-height:330px;max-height:430px}.portrait img{min-height:330px;max-height:430px}.hero-buttons{margin-top:22px}.btn,button{font-size:14px;padding:14px 17px}.tabs{padding:14px 0}.tabs a{font-size:13px;padding:12px 14px}.section{padding:38px 0 12px}.section h2{font-size:32px}.cards{grid-template-columns:1fr;gap:0}.panel{padding:22px}.poll-top{font-size:15px}.fields{grid-template-columns:1fr}}

/* V4 — Navigation intégrée et panneau des sondages à droite */
.top{position:sticky;top:0;z-index:30;gap:24px;padding:16px clamp(18px,2.5vw,55px);box-shadow:0 8px 26px #05142e20}
.brand{flex-shrink:0;text-decoration:none}.header-nav{display:flex;align-items:center;justify-content:center;gap:clamp(6px,1vw,22px);flex:1;min-width:0}.header-nav a{color:#e9f0ff;font-size:clamp(12px,.82vw,15px);font-weight:700;white-space:nowrap;padding:11px 9px;border-radius:9px}.header-nav a:hover,.header-nav a:focus-visible{color:#09244f;background:#f2c548}.toplink{flex-shrink:0;border-color:#f0c34d;color:#f5d06c}
.wrap{width:calc(100% - 42px);max-width:1900px;padding-top:22px}.hero{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(360px,.75fr);min-height:650px;background:#082452;border-radius:24px}.hero:before{display:none}.hero-main{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.75fr);min-width:0;background:radial-gradient(circle at 65% 50%,#1b5197 0%,#08234d 65%);overflow:hidden}.hero-copy{padding:clamp(32px,4.5vw,90px) 16px clamp(32px,4.5vw,90px) clamp(32px,4vw,78px);align-self:center}.hero h1{font-size:clamp(46px,4.6vw,88px);overflow-wrap:anywhere}.hero h3{font-size:clamp(19px,1.55vw,26px)}.hero p{font-size:clamp(16px,1.15vw,20px)}.hero-portrait{position:relative;min-height:600px;overflow:hidden;align-self:stretch}.hero-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#08234d 0%,transparent 25%),linear-gradient(0deg,#08234d55,transparent 35%);pointer-events:none}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;position:absolute;inset:0}
.hero-poll{padding:clamp(25px,2.5vw,45px);background:linear-gradient(150deg,#fdfefe,#eaf1fb);color:#10264b;display:flex;flex-direction:column;min-width:0}.poll-kicker{font-size:12px;letter-spacing:.17em;font-weight:900;color:#2864b1}.hero-poll h2{font-size:clamp(23px,1.9vw,34px);line-height:1.15;margin:12px 0 5px;color:#0c2857}.poll-place{font-size:15px!important;color:#58708f!important;margin:0 0 24px}.candidate-result{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:#0b2c62;color:#fff;padding:19px;border-radius:15px;margin-bottom:25px}.candidate-result span:first-child{font-weight:800}.candidate-result strong{color:#f5cb54}.candidate-percent{grid-column:1/-1;font-size:36px;font-weight:900;color:#fff}.poll-mini-list{display:grid;gap:18px}.poll-mini-label{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:700;margin-bottom:8px}.poll-mini-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-mini-track{height:8px;background:#d7e3f2;border-radius:20px;overflow:hidden}.poll-mini-track span{display:block;height:100%;background:linear-gradient(90deg,#174da1,#3e95e6);border-radius:20px}.poll-all{display:block;text-align:center;background:#efc54e;color:#09224d;padding:14px;border-radius:11px;font-weight:900;margin-top:25px}.poll-disclaimer{font-size:12px!important;line-height:1.5!important;color:#687b94!important;margin-top:18px}.poll-empty{color:#637894!important}
.section{scroll-margin-top:110px}.hero{scroll-margin-top:90px}
@media(max-width:1500px){.header-nav{gap:2px}.hero{grid-template-columns:minmax(0,1.6fr) minmax(340px,.8fr)}.hero-main{grid-template-columns:minmax(0,1.1fr) minmax(220px,.8fr)}.hero-copy{padding-left:38px}.hero h1{font-size:clamp(42px,4vw,70px)}}
@media(max-width:1120px){.top{flex-wrap:wrap}.header-nav{order:3;flex-basis:100%;overflow-x:auto;justify-content:flex-start}.hero{grid-template-columns:1fr}.hero-main{min-height:560px}.hero-poll{display:block}.poll-mini-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:25px}}
@media(max-width:700px){.top{gap:12px}.header-nav{gap:4px}.header-nav a{font-size:12px;padding:9px}.wrap{width:calc(100% - 20px)}.hero{border-radius:16px}.hero-main{grid-template-columns:1fr;display:flex;flex-direction:column}.hero-portrait{order:0;min-height:320px;height:320px}.hero-portrait img{object-position:center 17%}.hero-portrait:after{background:linear-gradient(0deg,#08234d,transparent 28%)}.hero-copy{order:1;padding:22px 24px 34px}.hero h1{font-size:clamp(38px,9vw,56px)}.hero-poll{padding:25px 22px}.poll-mini-list{grid-template-columns:1fr}.candidate-percent{font-size:30px}}

/* V5 — Présentation institutionnelle de pré-campagne */
:root{color:#20344f;background:#f6f8fb}body{background:#f6f8fb}.top{background:#0a1c38;border-bottom:2px solid #cda756;box-shadow:0 6px 25px #0a1c3815}.brand{letter-spacing:.035em}.mark{background:#d9b76a;color:#0b2347}.header-nav a{font-weight:600;letter-spacing:.01em}.header-nav a:hover{background:#ffffff16;color:#f2d58e}.toplink{border-color:#bba46c;color:#f2d58e}.wrap{max-width:1740px;width:calc(100% - 64px);padding-top:28px}.hero{background:#102947;border:1px solid #233f61;box-shadow:0 20px 55px #09213d1c;border-radius:20px;min-height:610px;grid-template-columns:minmax(0,1.7fr) minmax(340px,.75fr)}.hero-main{background:radial-gradient(circle at 60% 48%,#264b77 0%,#122e53 52%,#0b2343 100%)}.hero-copy{padding-left:clamp(36px,4vw,78px)}.eyebrow{color:#e2c37e;letter-spacing:.16em;font-size:12px}.hero h1{font-size:clamp(43px,4.2vw,76px);letter-spacing:-.04em;font-weight:800;line-height:1.1}.hero h3{font-size:clamp(17px,1.35vw,23px);color:#e5c987;font-weight:650}.hero-separator{padding:0 6px;color:#b9c8d8}.hero p{color:#e1e9f3;line-height:1.65;font-size:clamp(16px,1.1vw,19px)}.hero-buttons{margin-top:30px}.btn,button{background:#d9b76a;color:#102544;border-radius:9px;box-shadow:none}.ghost{background:transparent;color:#f2f6fc;border:1px solid #c4d2e5}.hero-portrait:after{background:linear-gradient(90deg,#122e53 0%,transparent 24%),linear-gradient(0deg,#10294755,transparent 25%)}.hero-poll{background:#fff;color:#1d304b;padding:clamp(28px,2.6vw,44px);border-left:1px solid #e0e7ef}.poll-kicker{color:#99712e;font-size:11px;letter-spacing:.14em}.hero-poll h2{font-size:clamp(25px,1.9vw,33px);color:#122b4b}.poll-place{color:#6a7a90!important}.candidate-result{background:#f3f6fa;color:#183454;border:1px solid #e0e8f2}.candidate-result strong{color:#8b672d}.candidate-percent{color:#102f57}.poll-mini-track span{background:#557da7}.poll-all{background:#173b64;color:white;font-size:14px}.poll-disclaimer{border-top:1px solid #e2e8ef;padding-top:15px}.poll-disclaimer a{text-decoration:underline;color:#164b8a}.section{padding-top:78px}.section h2{color:#152e4f}.kicker{color:#98733a}.panel{border-radius:14px;box-shadow:0 8px 24px #112a4810}.symbol{color:#b38b49}footer{background:#0a1c38;color:#d0dbea}.poll .track div{background:linear-gradient(90deg,#365f90,#6b94bc)}
@media(max-width:1120px){.hero{grid-template-columns:1fr}.hero-poll{border-left:0;border-top:1px solid #e0e7ef}.wrap{width:calc(100% - 36px)}}
@media(max-width:700px){.wrap{width:calc(100% - 20px)}.hero-copy{padding:26px 22px 36px}.hero h1{font-size:clamp(36px,9vw,56px)}.hero-portrait{min-height:310px;height:310px}.hero-poll{padding:24px 20px}.section{padding-top:48px}}

/* V6 : présentation de pré-campagne centrée et lignes individuelles */
.hero-copy {text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding-left:clamp(18px,2.5vw,48px);padding-right:clamp(18px,2.5vw,48px)}
.hero-copy .eyebrow,.hero-copy h1,.hero-copy h3,.hero-copy p {text-align:center;max-width:100%;margin-left:auto;margin-right:auto}
.hero-copy .eyebrow {white-space:nowrap;letter-spacing:.09em;font-size:clamp(10px,.85vw,13px)}
.hero-copy h1 {white-space:nowrap;overflow-wrap:normal;font-size:clamp(29px,3.15vw,62px);letter-spacing:-.035em}
.hero-copy h3 {white-space:nowrap;font-size:clamp(15px,1.3vw,23px)}
.hero-copy p {font-size:clamp(13px,1vw,18px);line-height:1.6;text-wrap:balance}
.hero-copy .hero-buttons {justify-content:center;align-items:center;flex-wrap:nowrap;gap:10px}
.hero-copy .hero-buttons .btn {white-space:nowrap;font-size:clamp(12px,.85vw,15px);padding:14px clamp(10px,1vw,18px)}
@media(max-width:1500px){.hero-copy{padding-left:18px;padding-right:18px}.hero-copy h1{font-size:clamp(27px,3vw,49px)}}
@media(max-width:1120px){.hero-copy h1{font-size:clamp(34px,5.1vw,65px)}.hero-copy .eyebrow{font-size:12px}}
@media(max-width:700px){.hero-copy h1{font-size:clamp(28px,8vw,54px)}.hero-copy .eyebrow{white-space:normal;font-size:11px}.hero-copy p{font-size:15px}.hero-copy .hero-buttons{flex-wrap:wrap}.hero-copy .hero-buttons .btn{font-size:13px;padding:12px 15px}}

/* Design institutionnel adapté de la structure Jeanlys Pierre Parnel ; styles publics uniquement */
.public-mode{background:#f5f7fa;color:#071e49;font-family:Arial,Helvetica,sans-serif}
.public-mode .institutional-strip{background:linear-gradient(90deg,#a90010,#d60016);color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em}
.public-mode .institutional-strip-inner{max-width:1480px;margin:auto;padding:9px 28px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}
.public-mode .top{position:sticky;top:0;z-index:99;max-width:none;width:100%;background:#fff;color:#071e49;border:0;border-radius:0;box-shadow:0 4px 18px #00000012;padding:14px max(28px,calc((100vw - 1480px)/2));min-height:85px}
.public-mode .top a{color:#071e49}.public-mode .top .brand{color:#071e49}.public-mode .brand small{color:#6b768a}.public-mode .mark{background:#b50014;color:white;border-radius:7px;padding:10px;font-size:16px;font-weight:900}
.public-mode .header-nav{display:flex;gap:4px;flex-wrap:wrap}.public-mode .header-nav a{font-size:13px;font-weight:700;padding:12px 10px;border-radius:3px}.public-mode .header-nav a:hover{color:#b50014;background:#fff3f4}
.public-mode .toplink{background:#071e49;color:#fff!important;padding:12px 15px;border-radius:5px;font-size:12px;font-weight:700;white-space:nowrap}
.public-mode .wrap{max-width:1480px;width:calc(100% - 48px);margin:auto}
.public-mode .hero{margin:0 calc((min(1480px,100vw - 48px) - 100vw)/2);padding:50px max(24px,calc((100vw - 1480px)/2));border-radius:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:34px;align-items:stretch;min-height:620px;background:linear-gradient(110deg,#eff9ff 0%,#eaf4fb 56%,#dceaf4 100%);box-shadow:none}
.public-mode .hero-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,42%);align-items:center;min-width:0;gap:10px;position:relative}
.public-mode .hero-copy{text-align:center;position:relative;z-index:2;padding:12px 0}.public-mode .hero-copy .eyebrow{display:inline-block;font-size:12px;color:#b50014;font-weight:800;letter-spacing:.09em;white-space:nowrap}
.public-mode .hero-copy h1{font-size:clamp(35px,4vw,60px);line-height:1.05;letter-spacing:-.04em;color:#071e49;margin:20px 0 12px;white-space:nowrap}
.public-mode .hero-copy h3{font-size:clamp(17px,1.6vw,23px);color:#b50014;font-weight:750;white-space:nowrap}
.public-mode .hero-copy p{font-size:16px;line-height:1.7;max-width:600px;margin:22px auto;color:#40516c}
.public-mode .hero-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.public-mode .hero-buttons .btn{background:#b50014;color:white;border:1px solid #b50014;padding:13px 17px;border-radius:5px;font-weight:800;font-size:13px}.public-mode .hero-buttons .btn.ghost{background:transparent;color:#071e49;border-color:#071e49}
.public-mode .hero-portrait{height:100%;max-height:520px;align-self:end;display:flex;align-items:end;justify-content:center;overflow:hidden;background:transparent;border:0;box-shadow:none}.public-mode .hero-portrait img{width:100%;height:100%;max-height:510px;object-fit:contain;object-position:center bottom;border-radius:0;filter:drop-shadow(0 12px 15px #071e4926)}
.public-mode .hero-poll{background:#fff;border:1px solid #dce4ed;border-radius:10px;padding:24px;box-shadow:0 12px 35px #071e4916;align-self:center;color:#071e49;min-width:0}
.public-mode .hero-poll h2{font-size:25px;color:#071e49}.public-mode .poll-kicker{color:#b50014;font-size:11px;font-weight:800}.public-mode .candidate-result{background:#f5f7fa;border-left:4px solid #b50014;padding:16px}.public-mode .candidate-percent{color:#b50014}.public-mode .poll-mini-track span{background:#b50014}.public-mode .poll-all{color:#b50014;font-weight:800}.public-mode .poll-disclaimer{color:#67768b;font-size:11px;line-height:1.5}
.public-mode .section{padding:72px 0;border-bottom:1px solid #e2e8ef;scroll-margin-top:105px}.public-mode .section>.kicker{font-size:12px;color:#b50014;letter-spacing:.12em;font-weight:800}.public-mode .section>h2{font-size:clamp(28px,3vw,39px);color:#071e49;margin:10px 0 28px}.public-mode .section>h2:after{content:'';display:block;background:#b50014;width:65px;height:4px;margin-top:15px;border-radius:4px}
.public-mode .section .panel{background:#fff;border:1px solid #e0e6ee;border-radius:9px;box-shadow:0 6px 20px #071e490a}.public-mode .section .panel h3{color:#071e49}.public-mode .section .symbol{color:#b50014}.public-mode .section .track>div{background:#b50014}
.public-mode .gallery-grid{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:22px}.public-mode .gallery-photo{background:#fff;margin:0;border-radius:8px;overflow:hidden;border:1px solid #e2e8ef}.public-mode .gallery-photo img{width:100%;height:280px;object-fit:contain;background:#eef3f8}.public-mode .gallery-photo figcaption{padding:14px;font-size:13px;color:#586780}
.public-mode .institutional-footer{background:#071e49;color:#fff;margin-top:55px;padding:55px max(24px,calc((100vw - 1480px)/2)) 25px;font-size:14px}.public-mode .footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:35px}.public-mode .footer-grid>div{display:flex;flex-direction:column;gap:12px}.public-mode .footer-grid strong{font-size:15px}.public-mode .footer-grid p{margin:0;color:#bac7d9}.public-mode .footer-grid a{color:#bac7d9}.public-mode .footer-grid a:hover{color:#fff}.public-mode .footer-bottom{border-top:1px solid #ffffff26;padding-top:25px;margin-top:35px;color:#bac7d9}
@media(max-width:1200px){.public-mode .hero{grid-template-columns:1fr}.public-mode .hero-poll{width:100%;max-width:620px;justify-self:center}.public-mode .top{gap:12px}.public-mode .hero-main{min-height:430px}}
@media(max-width:760px){.public-mode .institutional-strip-inner{justify-content:center;text-align:center}.public-mode .top{padding:12px 18px}.public-mode .wrap{width:calc(100% - 32px)}.public-mode .hero{padding:35px 16px;margin:0 -16px;gap:20px}.public-mode .hero-main{grid-template-columns:1fr;gap:10px}.public-mode .hero-copy h1{white-space:normal;font-size:40px}.public-mode .hero-copy h3{white-space:normal}.public-mode .hero-copy .eyebrow{white-space:normal}.public-mode .hero-portrait{height:320px}.public-mode .hero-portrait img{height:320px}.public-mode .footer-grid{grid-template-columns:repeat(2,1fr)}.public-mode .gallery-grid{grid-template-columns:1fr}.public-mode .section{padding:48px 0}}
@media(max-width:450px){.public-mode .footer-grid{grid-template-columns:1fr}.public-mode .hero-copy h1{font-size:34px}}


/* V9 — Corrections ciblées : deux libellés blancs, portrait fondu. */
.public-mode .hero-copy .eyebrow,
.public-mode .hero-copy h3 { color: #fff !important; }

/* Fondu progressif sur les bords et le bas du portrait, sans modifier les autres sections. */
.public-mode .hero-portrait img {
    opacity: .78;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 25%, #000 90%, transparent 100%), linear-gradient(to bottom, #000 0%, #000 74%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 25%, #000 90%, transparent 100%), linear-gradient(to bottom, #000 0%, #000 74%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
}
@media (max-width:760px) {
    .public-mode .hero-portrait img { opacity: .88; }
}



/* V10 : adaptation fidèle des principes visuels Jeanlys — site public uniquement.
   Les styles de l'administration et les données sont conservés. */
.public-mode{font-family:'DM Sans',Arial,sans-serif;background:#f8f9fc;color:#101f3b}
.public-mode .institutional-strip{background:#b50018;color:#fff}
.public-mode .institutional-strip-inner{max-width:1380px;padding:10px 26px;letter-spacing:.07em;font-size:11px}
.public-mode .top{background:#fff;min-height:86px;padding:12px max(26px,calc((100vw - 1380px)/2));box-shadow:0 6px 24px #091d3614;border-bottom:1px solid #e8edf3;gap:22px}
.public-mode .top .brand{font-family:Manrope,Arial,sans-serif;font-size:17px;font-weight:900;color:#0a234c;letter-spacing:.015em}
.public-mode .brand small{font-size:10px;letter-spacing:.09em;color:#697a90}
.public-mode .mark{background:#b50018;border-radius:4px;padding:13px;color:white}
.public-mode .header-nav{gap:4px;flex-wrap:nowrap;justify-content:center}
.public-mode .header-nav a{font-size:13px;padding:12px 10px;font-weight:750;color:#152b4b;transition:color .2s,background .2s}
.public-mode .header-nav a:hover{color:#b50018;background:#fff0f2}
.public-mode .toplink{background:#b50018;border:1px solid #b50018;color:#fff!important;border-radius:5px;padding:12px 17px}
.public-mode .wrap{max-width:1380px;width:calc(100% - 52px);padding-top:0;padding-bottom:0}
.public-mode .hero{margin:0 calc((min(1380px,100vw - 52px) - 100vw)/2);padding:0 max(26px,calc((100vw - 1380px)/2));min-height:650px;border:0;border-radius:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,385px);gap:28px;align-items:stretch;background:linear-gradient(110deg,#061c3c 0%,#0d315e 55%,#153d6c 100%);box-shadow:none;overflow:hidden}
.public-mode .hero-main{position:relative;min-height:650px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,40%);align-items:stretch;gap:0;background:transparent;overflow:hidden}
.public-mode .hero-main:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,#4772a54d,transparent 58%);pointer-events:none}
.public-mode .hero-copy{position:relative;z-index:2;padding:55px 10px 55px 0;text-align:left;align-items:flex-start;justify-content:center;display:flex;flex-direction:column;min-width:0}
.public-mode .hero-copy .eyebrow{color:#fff!important;font-size:11px;font-weight:800;letter-spacing:.16em;white-space:normal;text-align:left;margin:0}
.public-mode .hero-copy h1{color:#fff!important;font-family:Manrope,Arial,sans-serif;font-size:clamp(37px,3.5vw,65px);line-height:1.09;letter-spacing:-.05em;white-space:normal;overflow-wrap:normal;text-align:left;margin:20px 0 15px}
.public-mode .hero-copy h3{color:#fff!important;font-size:clamp(17px,1.45vw,23px);font-weight:650;white-space:normal;text-align:left;margin:0 0 12px}
.public-mode .hero-copy p{color:#d6e2f1;font-size:clamp(15px,1.1vw,18px);line-height:1.8;max-width:560px;text-align:left;margin:15px 0}
.public-mode .hero-buttons{justify-content:flex-start;gap:12px;margin-top:24px;flex-wrap:wrap}
.public-mode .hero-buttons .btn{background:#bb001b;color:#fff;border:1px solid #bb001b;border-radius:5px;padding:15px 19px;font-size:13px;box-shadow:none}
.public-mode .hero-buttons .btn.ghost{background:transparent;border:1px solid #b4c9e3;color:#fff}
.public-mode .hero-buttons .btn:hover{background:#df0929;color:#fff;transform:translateY(-2px)}
.public-mode .hero-portrait{position:relative;height:auto;min-height:650px;max-height:none;align-self:stretch;display:block;overflow:hidden;background:transparent}
.public-mode .hero-portrait img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 18%;border-radius:0;opacity:.88;filter:none;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 28%,black 100%);mask-image:linear-gradient(to right,transparent 0%,black 28%,black 100%);-webkit-mask-composite:initial;mask-composite:initial}
.public-mode .hero-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,#081f42 0%,transparent 30%);pointer-events:none}
.public-mode .hero-poll{background:#fff;color:#132d4e;border:1px solid #e3e8f0;border-radius:12px;padding:28px;box-shadow:0 20px 45px #03142d2b;align-self:center;min-width:0;max-height:590px;overflow-y:auto}
.public-mode .poll-kicker{color:#b50018;font-size:11px;letter-spacing:.12em}
.public-mode .hero-poll h2{color:#0a254a;font-size:clamp(22px,1.7vw,28px);margin:12px 0}
.public-mode .candidate-result{background:#f5f7fb;color:#0c2b52;border:1px solid #e1e7ef;border-left:4px solid #b50018;border-radius:7px}
.public-mode .candidate-result strong,.public-mode .candidate-percent{color:#b50018}
.public-mode .poll-mini-track span{background:#b50018}
.public-mode .poll-all{background:#b50018;color:#fff;border-radius:5px}
.public-mode .section{padding:78px 0 64px;border-bottom:1px solid #e7ebf1}
.public-mode .section>.kicker{font-size:11px;color:#b50018;letter-spacing:.16em}
.public-mode .section>h2{font-family:Manrope,Arial,sans-serif;color:#0b254b;font-size:clamp(30px,2.9vw,44px);letter-spacing:-.035em}
.public-mode .section>h2:after{width:62px;height:4px;background:#b50018}
.public-mode .section .panel{border:1px solid #e3e8f0;border-radius:9px;box-shadow:0 10px 30px #0a244b0c;padding:30px;transition:transform .2s,box-shadow .2s}
.public-mode .section .cards .panel:hover{transform:translateY(-4px);box-shadow:0 16px 38px #0a244b17}
.public-mode .section .panel h3{color:#0d2b52;font-size:21px}
.public-mode .section .panel p{color:#53647a}
.public-mode .bio{max-width:1050px;color:#455a72;line-height:1.95}
.public-mode .gallery-photo{border-radius:9px;box-shadow:0 8px 24px #0a244b0e}
.public-mode .gallery-photo img{height:330px;background:#edf2f8}
.public-mode .institutional-footer{background:#081e40;padding:65px max(26px,calc((100vw - 1380px)/2)) 30px}
.public-mode .footer-grid{gap:40px}
.public-mode .footer-grid strong{font-size:16px}
.public-mode .footer-grid a:hover{color:#fff}
@media(max-width:1260px){.public-mode .top{flex-wrap:wrap}.public-mode .header-nav{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.public-mode .hero{grid-template-columns:minmax(0,1fr) 340px;gap:16px}.public-mode .hero-main{grid-template-columns:minmax(0,1fr) 35%}.public-mode .hero-copy h1{font-size:clamp(32px,3.5vw,50px)}}
@media(max-width:980px){.public-mode .hero{grid-template-columns:1fr;padding-top:0;padding-bottom:38px}.public-mode .hero-main{min-height:530px}.public-mode .hero-poll{max-height:none;width:100%;max-width:650px;justify-self:center}.public-mode .hero-portrait{min-height:530px}}
@media(max-width:650px){.public-mode .wrap{width:calc(100% - 32px)}.public-mode .hero{margin:0 -16px;padding:0 16px 28px;gap:0}.public-mode .hero-main{display:flex;flex-direction:column;min-height:0}.public-mode .hero-portrait{order:0;min-height:320px;height:320px}.public-mode .hero-portrait img{object-position:center 20%;-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 100%);mask-image:linear-gradient(to bottom,black 60%,transparent 100%)}.public-mode .hero-copy{order:1;padding:12px 10px 34px;text-align:center;align-items:center}.public-mode .hero-copy .eyebrow,.public-mode .hero-copy h1,.public-mode .hero-copy h3,.public-mode .hero-copy p{text-align:center}.public-mode .hero-copy h1{font-size:clamp(34px,9vw,48px)}.public-mode .hero-buttons{justify-content:center}.public-mode .hero-poll{padding:23px}.public-mode .section{padding:48px 0}.public-mode .section .panel{padding:22px}.public-mode .footer-grid{grid-template-columns:1fr 1fr;gap:26px}}
@media(max-width:430px){.public-mode .footer-grid{grid-template-columns:1fr}.public-mode .top{padding:12px 15px}.public-mode .top .brand{font-size:14px}}

/* V11 — Portrait intégral sans recadrage, fondu subtil conservé */
.public-mode .hero-portrait {
  position: relative;
  min-height: 620px;
  height: auto;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.public-mode .hero-portrait img {
  position: relative;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-height: 620px;
  object-fit: contain;
  object-position: center center;
  opacity: 1;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 16%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 16%, #000 100%);
}
.public-mode .hero-portrait::after {
  background: linear-gradient(to top, #081f42 0%, transparent 16%);
}
@media (max-width: 980px) {
  .public-mode .hero-portrait { min-height: 0; }
  .public-mode .hero-portrait img { max-height: 520px; }
}
@media (max-width: 650px) {
  .public-mode .hero-portrait { height: auto; min-height: 0; }
  .public-mode .hero-portrait img {
    width: 100%; height: auto; max-height: 460px;
    object-fit: contain; object-position: center;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 85%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 85%, transparent 100%);
  }
}


/* V12 — uniquement la bannière : fond blanc, textes bleus, portrait fondu. */
.public-mode .hero {
  background: #ffffff !important;
}
.public-mode .hero-main {
  background: #ffffff !important;
}
.public-mode .hero-main::before {
  display: none !important;
}
.public-mode .hero-copy .eyebrow,
.public-mode .hero-copy h1,
.public-mode .hero-copy h3 {
  color: #093b80 !important;
}
.public-mode .hero-copy p {
  color: #244b7e !important;
}
.public-mode .hero-buttons .btn.ghost {
  background: #ffffff !important;
  color: #093b80 !important;
  border-color: #093b80 !important;
}
.public-mode .hero-portrait {
  background: #ffffff !important;
}
.public-mode .hero-portrait img {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 24%, #000 100%) !important;
  mask-image: linear-gradient(to right, transparent 0%, #000 24%, #000 100%) !important;
}
.public-mode .hero-portrait::after {
  background: linear-gradient(to top, #ffffff 0%, transparent 20%) !important;
}
@media (max-width:650px) {
  .public-mode .hero-portrait img {
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%) !important;
    mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%) !important;
  }
}
