/* Identité visuelle adaptée de lfi30/public/assets/css/style.css. */
:root{--color-primary:#5f259f;--color-secondary:#e6332a;--color-text:#202124;--color-muted:#62666d;--color-surface:#fff;--color-soft:#f5f3f8;--color-border:#dedbe3;--radius:.85rem;--container:74rem;--shadow:0 10px 30px rgb(31 20 45 / 10%)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;font:1rem/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--color-text);background:white}a{color:var(--color-primary);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button,a,input,textarea,select,summary{touch-action:manipulation}button{cursor:pointer}h1,h2,h3{line-height:1.13;letter-spacing:-.035em;margin:0 0 1rem}h1{font-size:clamp(2.2rem,5vw,4rem);font-weight:850}h2{font-size:clamp(1.6rem,3vw,2.4rem)}h3{font-size:1.4rem}p{margin:.2rem 0 1rem}small{display:block}.container{width:min(var(--container),calc(100% - 3rem));margin-inline:auto}.section{padding-block:4.5rem}.reading{max-width:52rem;min-height:45vh}.soft{background:var(--color-soft)}.eyebrow{font-size:.76rem;font-weight:850;letter-spacing:.13em;color:var(--color-primary);text-transform:uppercase;margin-bottom:1rem}.lead{font-size:1.2rem;line-height:1.7}.muted,.micro{color:var(--color-muted)}.micro{font-size:.8rem}.skip{position:fixed;top:-100px;left:1rem;padding:1rem;background:#fff;z-index:100}.skip:focus{top:1rem}:focus-visible{outline:3px solid #db9d08;outline-offset:4px}.site-header{border-bottom:1px solid var(--color-border);background:white}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.4rem}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--color-primary);font-size:.78rem;line-height:1.1;letter-spacing:.015em;flex-shrink:0}.brand strong{font-size:1.12rem;font-weight:950}.brand-mark{font:4rem/.9 Georgia,serif}.brand-place{display:block;margin-top:.4rem;font-size:.66rem;font-weight:800;letter-spacing:.09em}.header-inner nav{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}.header-inner nav>a{font-weight:700;font-size:.9rem;text-decoration:none}.button,button:not(.link-button):not(.ae-wrap button):not(.ae-bubble button):not(.pb-modal button){display:inline-flex;align-items:center;justify-content:center;gap:.8rem;border:1px solid transparent;border-radius:.55rem;padding:.85rem 1.35rem;min-height:44px;background:var(--color-primary);color:#fff;font-weight:750;text-decoration:none;line-height:1.3}.button:hover,button:not(.pb-modal button):hover{filter:brightness(.94)}.button.small{font-size:.85rem;padding:.6rem 1rem}.button.outline,button.outline{background:transparent!important;color:var(--color-primary)!important;border:1px solid var(--color-primary)!important}.button.danger{background:#aa231e!important}.danger-text{color:#aa231e!important}.wide{width:100%}.text-link{font-weight:800;text-decoration:none}.hero{background:linear-gradient(120deg,#f5f0fa 0%,#fcfaff 65%,#eee5f6 100%);padding-block:4rem;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;align-items:start}.hero h1{font-size:clamp(2.7rem,4.8vw,4.5rem);color:#30154d}.hero-copy .lead{max-width:36rem}.accent-line{width:5rem;height:6px;background:var(--color-secondary);margin:1.7rem 0}.hero-photo{width:100%;margin-top:2rem;border-radius:var(--radius);max-height:330px;object-fit:cover}.campaign-art{position:relative;overflow:hidden;margin-top:2.5rem;background:var(--color-primary);padding:2rem;color:white;transform:rotate(-2deg);border-radius:6px;min-height:190px}.campaign-art>span,.campaign-art>strong{display:block;position:relative;z-index:1;font-size:clamp(1.3rem,3vw,2.1rem);letter-spacing:-.04em}.campaign-art>strong{font-size:clamp(1.8rem,4vw,3rem)}.campaign-art i{position:absolute;font:17rem/.8 Georgia,serif;right:-.2rem;bottom:-2rem;color:#ffffff16}.support-panel{background:white;padding:2rem 2.2rem;border-radius:1.1rem;box-shadow:var(--shadow);border-top:5px solid var(--color-primary);scroll-margin-top:1rem}.support-panel h2{font-size:1.7rem;margin-bottom:.45rem}.counter{display:flex;align-items:center;gap:1.2rem;padding-bottom:1.3rem;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}.counter strong{font-size:3.5rem;color:var(--color-primary);font-weight:900;line-height:1}.counter span{max-width:12rem;font-weight:700;line-height:1.4}.stack{display:grid;gap:1rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:grid;gap:.3rem;font-size:.9rem;font-weight:650}input:not([type=checkbox]),select,textarea{width:100%;border:1px solid #bbb6c2;border-radius:.45rem;padding:.7rem .8rem;background:white;color:var(--color-text);min-width:0}textarea{min-height:100px;resize:vertical}.check{display:flex;align-items:flex-start;gap:.7rem;font-weight:400;font-size:.85rem;line-height:1.5}.check input{flex:0 0 auto;width:18px;height:18px;accent-color:var(--color-primary);margin:3px 0}.check small{font-size:.78rem;color:var(--color-muted);margin-top:.3rem}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:1.8rem}.section-heading h2{margin-bottom:0}.section-heading>a{white-space:nowrap;font-weight:700}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.content-card{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:white;box-shadow:0 5px 20px #23103205}.content-card img{width:100%;height:220px;object-fit:cover}.card-body{padding:1.4rem}.card-body .eyebrow{font-size:.72rem}.card-body h3 a{color:var(--color-text);text-decoration:none}.card-body p{color:var(--color-muted)}.support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.support-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.2rem;display:flex;align-items:center;gap:1rem;background:white;overflow-wrap:anywhere}.support-card p{font-size:.9rem;color:var(--color-muted);margin:0}.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#eee5f8;color:var(--color-primary);font-weight:800;flex-shrink:0}.info-band{background:var(--color-soft);padding:2rem;border-radius:var(--radius);display:flex;align-items:center;gap:2rem}.info-band h2{font-size:1.5rem}.info-band>div{flex:1}.empty{padding:2rem;background:var(--color-soft);border:1px dashed var(--color-border);border-radius:var(--radius);color:var(--color-muted)}.site-footer{background:#28113e;color:#e9ddf5;padding:3rem 0}.footer-inner{display:flex;justify-content:space-between;gap:2rem}.site-footer strong{color:#fff}.site-footer p{font-size:.85rem;margin-top:.5rem}.site-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;align-content:start;max-width:25rem}.site-footer a{color:#f3eafb;font-size:.85rem}.notice{background:#eee7f5;border-left:4px solid var(--color-primary);padding:1rem 1.3rem;border-radius:4px;margin-block:1rem}.notice.error{background:#fff0ef;border-color:#b22}.panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.4rem}.panel h2{font-size:1.5rem}.actions,.quick-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.quick-links{margin-block:2rem}.pagination{display:flex;gap:1.5rem;align-items:center;justify-content:center;margin-block:2rem}.filters{display:flex;gap:1rem;align-items:end;flex-wrap:wrap;margin:1.5rem 0}.filters label{min-width:200px}.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-block:1.5rem}.tabs a{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:2rem;text-decoration:none}.tabs a.active{color:white;background:var(--color-primary)}.news-grid .content-card:first-child{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.news-grid .content-card:first-child img{height:100%;min-height:260px}.event-list{display:grid;gap:1rem}.event-list .content-card{display:flex}.event-list .content-card>a{width:200px;flex-shrink:0}.event-list img{height:100%}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}.calendar-day{border:1px solid var(--color-border);border-radius:6px;min-height:120px;padding:.5rem;background:#faf8fc}.calendar-day>a{display:block;font-size:.8rem;line-height:1.4;margin:.5rem 0;padding:.3rem;background:white;overflow-wrap:anywhere}.calendar-day>strong{font-size:.8rem}.article-cover{width:100%;max-height:480px;object-fit:cover;border-radius:var(--radius);margin-block:2rem}.prose{overflow-wrap:anywhere;font-size:1.05rem}.prose h2,.prose h3{margin-top:2rem}.prose img{border-radius:8px;max-width:100%;height:auto}.prose figure{margin:1.5rem 0}.prose .ae-fig[data-size="s"]{max-width:35%}.prose .ae-fig[data-size="m"]{max-width:65%}.prose .ae-fig[data-align="center"]{margin-inline:auto}.prose .ae-fig[data-align="right"]{margin-left:auto}.prose blockquote{margin-left:0;border-left:4px solid var(--color-primary);padding:1rem;background:var(--color-soft)}.prose table{width:100%;border-collapse:collapse}.prose th,.prose td{padding:.5rem;border:1px solid var(--color-border)}.admin-body{background:#f8f6fa}.admin-main{padding-block:2.5rem;min-height:65vh}.admin-main h1{font-size:2.2rem}.admin-nav{background:var(--color-primary)}.admin-nav nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding-block:.75rem}.admin-nav a,.admin-nav .link-button{color:white;font-size:.85rem;text-decoration:none}.admin-nav form{margin-left:auto}.link-button{border:0;background:none;color:var(--color-primary);padding:0;cursor:pointer;text-decoration:underline;font:inherit}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.stat-card{display:grid;padding:1.5rem;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);text-decoration:none}.stat-card strong{font-size:3rem;line-height:1.2}.stat-card span{color:var(--color-muted)}.auth{max-width:480px;margin:2rem auto}.secret{display:block;padding:1rem;background:var(--color-soft);overflow-wrap:anywhere;font-size:1.1rem;margin-bottom:1rem;user-select:all}.table-scroll{overflow-x:auto;margin-top:2rem}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:1rem;border-bottom:1px solid var(--color-border);vertical-align:top}th{font-size:.8rem;color:var(--color-muted)}.badge{display:inline-block;border-radius:2rem;background:var(--color-soft);padding:.3rem .8rem;font-size:.8rem}.delete-details{margin-top:1.3rem;border-top:1px solid var(--color-border);padding-top:1rem}.delete-details summary{cursor:pointer;color:#982720;font-size:.9rem}.delete-details form{margin-top:1rem}.support-admin-list{margin-top:1.5rem}.export-form{margin:1.5rem 0}.ae-wrap [hidden]{display:none!important}.ae-wrap .ae-surface{min-height:260px}.ae-wrap .ae-tools-text button{min-width:36px;min-height:36px}.ae-wrap .icon{font-style:normal;font-size:1rem}.ae-wrap textarea{min-height:200px}code{overflow-wrap:anywhere}
@media(max-width:1000px){.header-inner{align-items:flex-start}.header-inner nav{gap:.8rem;justify-content:end}.hero-grid{gap:2rem}.support-panel{padding:1.5rem}.cards,.support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid .content-card:first-child{grid-column:span 2}.calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.container{width:calc(100% - 2rem)}.header-inner{display:block;padding-block:1rem}.header-inner nav{margin-top:1rem;justify-content:start;gap:.65rem 1rem}.header-inner nav>a{font-size:.8rem}.brand-mark{font-size:3rem}.hero{padding-block:2rem}.hero-grid{grid-template-columns:1fr;gap:2rem}.hero h1{font-size:2.8rem}.hero-photo,.campaign-art{display:none}.support-panel{padding:1.3rem}.section{padding-block:2.5rem}.section-heading{align-items:flex-start;gap:1rem;flex-direction:column}.cards,.support-grid,.stats-grid{grid-template-columns:1fr}.news-grid .content-card:first-child{display:block;grid-column:auto}.news-grid .content-card:first-child img{height:220px;min-height:0}.info-band,.footer-inner{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.event-list .content-card{display:block}.event-list .content-card>a{width:auto}.event-list img{height:200px}.calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-nav nav{gap:.7rem 1rem}.admin-main h1{font-size:1.9rem}.panel{padding:1.1rem}.filters label{min-width:0;width:100%}.prose .ae-fig{max-width:100%!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.cropped-image{overflow:hidden;border-radius:12px}.content-card>a:first-child{display:block;overflow:hidden}.hero-visual{overflow:hidden}.cropped-image img{display:block;width:100%}

.content-card img{aspect-ratio:16/9;object-fit:cover}.team-card .cropped-image{aspect-ratio:1}.team-card img{aspect-ratio:1;height:100%;object-fit:cover}.article-cover,.hero-photo{aspect-ratio:16/9;object-fit:cover}.hero-photo{height:auto}

/* Les commandes du builder restent lisibles au clavier. */
#pbModal .page-block:focus-within>.pb-ui,#pbModal .page-section:focus-within>.pb-ui{opacity:1;transform:none}
#pbModal .pb-insert-row{opacity:1}

/* Galerie des actualités et de l’agenda. */
.prose .campaign-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:24px 0;width:100%;max-width:none}
.prose .campaign-gallery a{display:block;align-self:start}
.prose .campaign-gallery img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;border-radius:10px}

.footer-logo{display:block;max-width:200px;width:auto;height:auto;max-height:100px;object-fit:contain;margin-bottom:16px}

/* Candidats : tête de liste centrée, puis deux portraits par rangée. */
.candidates-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:840px;margin-inline:auto}
.candidates-grid>.team-card{grid-column:span 2;min-width:0}
.candidates-grid--lead>.team-card:first-child{grid-column:2 / span 2}
.candidates-grid--lead>.team-card:nth-child(2){grid-column:1 / span 2}
@media(max-width:700px){
 .candidates-grid{grid-template-columns:minmax(0,1fr);max-width:420px}
 .candidates-grid>.team-card,.candidates-grid--lead>.team-card:first-child,.candidates-grid--lead>.team-card:nth-child(2){grid-column:1}
}
/* Liste verticale de photos dans les formulaires éditoriaux. */
#galleryDrop{display:block;min-height:0}
#galleryDrop .hint-center{position:static;transform:none;width:auto;pointer-events:none;margin-bottom:12px}
#galleryList{display:flex;flex-direction:column;gap:12px;margin-top:8px;width:100%}
#galleryList .galItem{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;background:white;border:1px solid #dedbe3;border-radius:10px;min-width:0;cursor:grab}
#galleryList .galItem>img{width:140px;height:100px;object-fit:contain;flex:none;background:#f5f3f8;border-radius:6px}
#galleryList .removeGal{position:static;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#a51f26;border:1px solid #a51f26;padding:10px 14px;min-height:44px;font-size:.9rem;line-height:1.3;font-weight:700;flex:none}
#galleryList .removeGal:hover{background:#fff0f0}
@media(max-width:500px){#galleryList .galItem{gap:10px;padding:10px}#galleryList .galItem>img{width:100px;height:85px}#galleryList .removeGal{padding:8px;font-size:.8rem}}

/* Conserver les lignes volontairement vides dans les contenus éditoriaux. */
.prose p:empty,.prose div:empty,.ae-surface p:empty,.ae-surface div:empty{min-height:1.6em}
