*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#132238;background:#f7f9fc}a{text-decoration:none;color:inherit}.top{background:#0c2748;color:#fff;padding:8px 5vw;font-size:14px}.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 5vw;background:#fff;position:sticky;top:0;z-index:10;box-shadow:0 5px 24px #10213a12}.brand{font-weight:850;font-size:21px}.brand small{display:block;font-size:11px;letter-spacing:.16em;color:#65758b}.menu{display:flex;gap:22px;font-weight:650}.hero{min-height:560px;padding:80px 6vw;display:grid;place-items:center;background:linear-gradient(120deg,#0b2b52e8,#0e5b77bd),url('https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?auto=format&fit=crop&w=1800&q=70') center/cover;color:#fff}.hero>div{max-width:1080px;width:100%}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:12px}.hero h1{font-size:clamp(42px,7vw,82px);line-height:.95;margin:18px 0}.hero p{font-size:20px;max-width:720px;line-height:1.6}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;padding:14px 20px;border-radius:12px;background:#fff;color:#123050;font-weight:800}.btn.alt{background:#e9bd55;color:#1b2634}.section{padding:70px 6vw;max-width:1280px;margin:auto}.section h2{font-size:36px;margin:0 0 12px}.lead{color:#617087;max-width:760px;line-height:1.7}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.card{background:#fff;border:1px solid #e5eaf0;border-radius:20px;padding:24px;box-shadow:0 12px 30px #10213a0b}.card b{font-size:18px}.icon{font-size:26px;margin-bottom:14px}.alert{background:#eaf4f7;border-left:5px solid #0e6983}.footer{background:#0c2748;color:#dce6f2;padding:40px 6vw}.admin-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.side{background:#0c2748;color:#fff;padding:28px 20px}.side a{display:block;padding:11px;border-radius:10px;margin:5px 0}.side a:hover{background:#ffffff16}.main{padding:34px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:#fff;border-radius:18px;padding:20px;border:1px solid #e6ebf1}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0c2748,#176e83)}.loginbox{width:min(430px,92vw);background:#fff;padding:34px;border-radius:22px}.field{margin:14px 0}.field label{display:block;font-weight:700;margin-bottom:7px}.field input{width:100%;padding:14px;border:1px solid #ccd5df;border-radius:11px}.pw{position:relative}.pw button{position:absolute;right:8px;top:8px;border:0;background:none;font-size:20px;cursor:pointer}@media(max-width:850px){.menu{display:none}.grid,.stats{grid-template-columns:1fr}.admin-shell{grid-template-columns:1fr}.side{display:none}.hero{min-height:500px}}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:99}.compact{padding-top:26px;padding-bottom:0}.content-card{overflow:hidden}.content-card img{width:calc(100% + 48px);height:180px;object-fit:cover;margin:-24px -24px 18px}.content-card small{display:block;color:#69788d;margin-bottom:8px}.admin-body{background:#f4f7fb}.side{position:sticky;top:0;height:100vh;overflow:auto}.side nav{margin-top:22px}.side a.active{background:#ffffff1c}.account{margin-top:20px;padding:14px;background:#ffffff0d;border-radius:12px}.account strong,.account span{display:block}.account span{font-size:12px;color:#b8c8da;margin-top:4px;word-break:break-all}.side-foot{display:block;color:#90a4ba;margin:26px 10px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px}.page-head h1{font-size:38px;margin:7px 0}.admin-card{margin-top:20px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.quick-grid a{padding:16px;border:1px solid #e4eaf1;border-radius:14px}.quick-grid b,.quick-grid span{display:block}.quick-grid span{font-size:12px;color:#708096;margin-top:5px}.flash{padding:13px 15px;border-radius:12px;margin-bottom:16px}.flash.success{background:#e8f7ef;color:#17683d}.flash.error{background:#fff0f0;color:#9d2828}.full{width:100%;border:0;cursor:pointer}.ghost{background:#eef2f7;color:#24394e}.table-wrap{background:#fff;border:1px solid #e5eaf0;border-radius:18px;overflow:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:15px 16px;text-align:left;border-bottom:1px solid #edf1f5;vertical-align:top}.admin-table th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#65758b}.admin-table td small{display:block;color:#718197;margin-top:5px;max-width:520px}.badge{display:inline-block;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}.badge.published{background:#e7f6ed;color:#1f7546}.badge.draft{background:#edf0f4;color:#617087}.row-actions{display:flex;gap:10px;align-items:center}.row-actions form{margin:0}.row-actions a,.row-actions button,.link-btn{border:0;background:none;padding:0;color:#145f84;font-weight:700;cursor:pointer;font:inherit}.row-actions button{color:#a73939}.empty{text-align:center!important;color:#78889c;padding:38px!important}.admin-form{max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span2{grid-column:1/-1}.field input,.field textarea,.field select{width:100%;padding:13px 14px;border:1px solid #cfd8e3;border-radius:11px;background:#fff;font:inherit}.field textarea{resize:vertical}.check{display:flex;align-items:end}.check input{width:auto}.split{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:20px}.user-list{display:grid;gap:10px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid #e8edf3;border-radius:12px}.user-row span{display:block;font-size:12px;color:#6b7b90;margin-top:4px}.user-row>div:last-child{display:flex;align-items:center;gap:10px}.mobile-nav{display:none;margin-bottom:18px;border:0;background:#0c2748;color:#fff;padding:10px 13px;border-radius:10px}.pw input{padding-right:48px}
@media(max-width:1000px){.quick-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.admin-shell{grid-template-columns:1fr}.side{display:none;position:fixed;z-index:100;width:280px}.side.open{display:block}.mobile-nav{display:block}.main{padding:22px}.page-head{flex-direction:column}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.stats{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.quick-grid,.stats{grid-template-columns:1fr}.main{padding:16px}.page-head h1{font-size:31px}.admin-table th:nth-child(2),.admin-table td:nth-child(2),.admin-table th:nth-child(4),.admin-table td:nth-child(4){display:none}}
/* Phase 3 — portail municipal avancé */
.inner-page{min-height:62vh}.inner-page>h1{font-size:clamp(38px,6vw,68px);margin:12px 0 18px}.rich-card{background:#fff;border:1px solid #e5eaf0;border-radius:22px;padding:32px;line-height:1.8;white-space:normal;box-shadow:0 12px 30px #10213a0b}.timeline{display:grid;gap:16px;margin-top:30px}.event-row{display:grid;grid-template-columns:92px 1fr;gap:22px;background:#fff;border:1px solid #e5eaf0;border-radius:20px;padding:22px}.event-date{display:grid;place-items:center;align-content:center;border-radius:16px;background:#eef4f8;min-height:92px}.event-date strong{font-size:36px;line-height:1}.event-date span{font-weight:800;font-size:12px;margin-top:6px}.event-row h2,.doc-row h2{margin:0 0 8px;font-size:22px}.event-meta{font-weight:750;color:#47617a}.doc-list{display:grid;gap:13px;margin-top:28px}.doc-row{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid #e5eaf0;border-radius:18px;padding:22px}.doc-row small,.directory small,.search-hit small{color:#687b91;font-weight:750}.directory .card{min-height:190px}.contact-lines{color:#5f7084;line-height:1.6}.section-subtitle{margin-top:54px!important}.text-link{font-weight:800;color:#0d617e}.public-search,.search-admin{display:flex;gap:10px;max-width:800px;margin:24px 0}.public-search input,.search-admin input{flex:1;padding:15px 17px;border:1px solid #ccd6e1;border-radius:12px;font:inherit;background:#fff}.search-results{display:grid;gap:12px;margin-top:24px}.search-hit{display:block}.search-hit b{display:block;margin-top:5px}.admin-form small{display:block;color:#718197;margin-top:6px}.actions{align-items:center}
@media(max-width:700px){.event-row{grid-template-columns:70px 1fr;padding:16px}.event-date{min-height:70px}.event-date strong{font-size:28px}.doc-row{align-items:flex-start;flex-direction:column}.public-search,.search-admin{flex-direction:column}.inner-page{padding-top:42px}}

/* Phase 4 — workflow, guichet numérique et communication citoyenne */
.badge.pending{background:#fff3d7;color:#8b5b00}.request-message{margin-top:22px;padding:18px;background:#f7f9fc;border-radius:14px;line-height:1.7}.note{border-top:1px solid #e8edf3;padding:13px 0}.note small{display:block;color:#728198;margin-top:3px}.notification-list{display:grid;gap:12px}.notification{display:flex;justify-content:space-between;gap:20px}.notification.is-read{opacity:.62}.notification h3{margin:10px 0 5px}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:12px}.media-card small{display:block;color:#748297;margin-top:6px;word-break:break-all}.pdf-icon{display:grid;place-items:center;aspect-ratio:4/3;border-radius:12px;background:#eef2f7;font-weight:900;font-size:28px;margin-bottom:12px}.citizen-form{max-width:900px;margin-top:28px}.public-message{padding:16px 18px;border-radius:14px;margin:20px 0}.public-message.success{background:#e8f7ef;color:#17683d}.public-message.error{background:#fff0f0;color:#9d2828}
@media(max-width:900px){.media-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.media-grid{grid-template-columns:1fr}.notification{flex-direction:column}}
/* Phase 5 — finalisation, accessibilité et conformité */
.page{max-width:980px;margin:auto;padding:64px 6vw;line-height:1.75}.page h1{font-size:clamp(38px,6vw,64px);line-height:1.05}.page h2{margin-top:36px}.form-card{display:grid;gap:18px;max-width:680px;background:#fff;border:1px solid #e5eaf0;border-radius:20px;padding:24px}.form-card label{display:grid;gap:8px;font-weight:700}.form-card input[type=email]{padding:14px;border:1px solid #cbd6e2;border-radius:11px;font:inherit}.form-card button{justify-self:start;padding:13px 18px;border:0;border-radius:11px;background:#0c2748;color:#fff;font-weight:800;cursor:pointer}.notice{padding:14px 16px;border-radius:12px;background:#e8f7ef;margin:16px 0}.muted{color:#687b91}.footer-links{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0}.footer-links a{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:3px solid currentColor;outline-offset:4px;border-radius:4px}button,input,select,textarea{font:inherit}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* =========================================================
   REDESIGN 2026 — FRONT-OFFICE PUBLIC SITEPRIME COLLECTIVITÉS
   Scope: .public-site only. Admin preserved unchanged.
   ========================================================= */
.public-site{--navy:#0a2747;--navy-2:#123a61;--blue:#0f5f8e;--sky:#eaf4fa;--gold:#e8b94f;--ink:#10243b;--muted:#66788d;--line:#dfe7ef;--paper:#f7f9fc;--white:#fff;background:#fff;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.public-site .site-wrap{width:min(1440px,calc(100% - 96px));margin-inline:auto}.public-site .civic-bar{background:#08233f;color:#dce8f3;font-size:13px}.public-site .civic-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:24px}.public-site .civic-inner>div{display:flex;gap:10px;align-items:center}.public-site .civic-bar a{color:#fff;font-weight:700}.public-site .sep{opacity:.35}.public-site .site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(14,43,70,.08)}.public-site .nav-shell{height:88px;display:flex;align-items:center;justify-content:space-between;gap:40px}.public-site .brand-pro{display:flex;align-items:center;gap:14px;min-width:240px}.public-site .brand-mark{width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,var(--navy),#17658c);color:#fff;display:grid;place-items:center;font-family:Georgia,serif;font-size:28px;font-weight:700;box-shadow:0 9px 25px rgba(10,39,71,.18)}.public-site .brand-pro strong{display:block;font-size:18px;letter-spacing:.02em}.public-site .brand-pro small{display:block;margin-top:3px;font-size:10px;letter-spacing:.19em;color:#6a7a8f;font-weight:800}.public-site .main-nav{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:800}.public-site .main-nav>a{position:relative;padding:34px 0}.public-site .main-nav>a:not(.nav-search)::after{content:"";position:absolute;left:0;right:100%;bottom:23px;height:2px;background:var(--gold);transition:right .2s ease}.public-site .main-nav>a:hover::after{right:0}.public-site .nav-search{padding:12px 16px!important;border:1px solid #d9e2eb;border-radius:12px}.public-site .public-menu-btn{display:none;border:1px solid #d9e2eb;background:#fff;border-radius:11px;padding:10px 14px;font-weight:800;color:var(--ink)}
.public-site .hero-premium{position:relative;min-height:690px;display:flex;align-items:center;overflow:hidden;background:var(--navy)}.public-site .hero-photo{position:absolute;inset:0;background-image:url('https://upload.wikimedia.org/wikipedia/commons/f/f4/Salins_village.jpg');background-size:cover;background-position:center 40%;transform:scale(1.015)}.public-site .hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,28,50,.96) 0%,rgba(5,28,50,.84) 42%,rgba(5,28,50,.34) 72%,rgba(5,28,50,.08) 100%),linear-gradient(0deg,rgba(3,19,34,.22),rgba(3,19,34,.04))}.public-site .hero-content{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:80px;align-items:end;padding-block:110px 92px}.public-site .hero-copy{max-width:810px}.public-site .kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:900;color:#346789}.public-site .kicker::before{content:"";width:28px;height:2px;background:var(--gold)}.public-site .kicker.light{color:#d9e7f3}.public-site .hero-copy h1{font-size:clamp(54px,6.2vw,96px);line-height:.95;letter-spacing:-.045em;color:#fff;margin:22px 0 24px;max-width:900px}.public-site .hero-copy p{max-width:700px;color:#e8f0f7;font-size:20px;line-height:1.65;margin:0}.public-site .hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.public-site .cta{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;border-radius:14px;font-size:14px;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.public-site .cta:hover{transform:translateY(-2px)}.public-site .cta svg,.public-site .service-link svg,.public-site .text-arrow svg,.public-site .event-premium>svg,.public-site .hero-panel svg,.public-site .local-links svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.public-site .cta-primary{background:var(--gold);color:#132238;box-shadow:0 14px 30px rgba(232,185,79,.22)}.public-site .cta-glass{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(12px)}.public-site .cta-outline-light{border:1px solid rgba(255,255,255,.35);color:#fff}.public-site .cta-soft{background:#edf4f8;color:var(--navy)}.public-site .hero-panel{background:rgba(6,34,59,.68);border:1px solid rgba(255,255,255,.18);border-radius:24px;backdrop-filter:blur(14px);padding:14px;color:#fff;box-shadow:0 22px 60px rgba(0,0,0,.16)}.public-site .panel-label{display:block;padding:12px 14px 10px;color:#b9cad8;text-transform:uppercase;font-weight:900;letter-spacing:.15em;font-size:10px}.public-site .hero-panel a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 14px;border-top:1px solid rgba(255,255,255,.12);font-weight:800}.public-site .hero-panel a:hover{background:rgba(255,255,255,.07);border-radius:12px}.public-site .alert-strip{background:#fff;padding:0 0 24px}.public-site .alert-premium{transform:translateY(-26px);background:#fff8e7;border:1px solid #f1dfab;border-left:5px solid var(--gold);border-radius:16px;padding:20px 24px;box-shadow:0 18px 40px rgba(29,51,75,.09);display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:16px}.public-site .alert-tag{text-transform:uppercase;font-size:10px;letter-spacing:.13em;font-weight:900;color:#8c6716;background:#f9e9bc;border-radius:999px;padding:7px 9px}.public-site .alert-premium p{margin:0;color:#735f2d}
.public-site .quick-section{padding:96px 0 110px;background:#fff}.public-site .section-heading{margin-bottom:42px}.public-site .section-heading h2{font-size:clamp(38px,4vw,62px);line-height:1.02;letter-spacing:-.04em;margin:12px 0 0;color:var(--ink)}.public-site .split-heading{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:end}.public-site .split-heading>p{margin:0 0 4px;color:var(--muted);font-size:18px;line-height:1.7;max-width:590px}.public-site .service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.public-site .service-card{position:relative;min-height:310px;background:#f8fafc;border:1px solid var(--line);border-radius:22px;padding:28px;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.public-site .service-card:hover{transform:translateY(-5px);box-shadow:0 22px 46px rgba(25,55,83,.1);border-color:#cbd9e6}.public-site .service-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#e9f2f8;color:#155b82}.public-site .service-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.public-site .service-num{position:absolute;right:24px;top:24px;font-size:12px;color:#91a0b2;font-weight:900;letter-spacing:.12em}.public-site .service-card h3{font-size:23px;margin:34px 0 10px}.public-site .service-card p{color:var(--muted);line-height:1.65;margin:0 0 24px;max-width:330px}.public-site .service-link{position:absolute;left:28px;bottom:27px;display:flex;align-items:center;gap:8px;font-weight:900;color:#245d7d;font-size:13px}.public-site .service-featured{background:linear-gradient(145deg,#0d3359,#12587a);border-color:transparent;color:#fff}.public-site .service-featured .service-icon{background:rgba(255,255,255,.12);color:#fff}.public-site .service-featured .service-num,.public-site .service-featured p{color:#d7e3ec}.public-site .service-featured .service-link{color:#fff}
.public-site .editorial-section{background:#f4f7fa;padding:110px 0}.public-site .row-heading{display:flex;align-items:end;justify-content:space-between;gap:30px}.public-site .text-arrow{display:inline-flex;align-items:center;gap:9px;font-weight:900;color:#215c7d}.public-site .news-layout{display:grid;grid-template-columns:1.35fr .825fr .825fr;grid-template-rows:1fr;gap:18px;min-height:430px}.public-site .news-feature,.public-site .news-small{position:relative;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;display:flex;align-items:flex-end}.public-site .news-feature{min-height:430px;background:linear-gradient(160deg,#10385d,#0c2847);color:#fff}.public-site .news-small{min-height:430px}.public-site .news-feature img,.public-site .news-small img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.public-site .news-feature::after,.public-site .news-small::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,30,52,.88),rgba(6,30,52,.12) 70%)}.public-site .news-feature>div,.public-site .news-small>div{position:relative;z-index:2;padding:34px}.public-site .news-small:not(:has(img))>div,.public-site .news-small.placeholder-card{align-items:stretch}.public-site .news-small:not(:has(img))::after,.public-site .placeholder-card::after{display:none}.public-site .news-small:not(:has(img)){color:var(--ink)}.public-site .news-small>div{padding:26px}.public-site .news-meta{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:900;color:#a9bfd0;margin-bottom:10px}.public-site .news-small:not(:has(img)) .news-meta{color:#628099}.public-site .news-layout h3{margin:0 0 10px;font-size:22px;line-height:1.2}.public-site .news-feature h3{font-size:38px;max-width:700px}.public-site .news-layout p{margin:0;line-height:1.6;color:#d8e4ed}.public-site .news-small:not(:has(img)) p{color:var(--muted)}
.public-site .agenda-section{background:#0a2949;color:#fff;padding:110px 0;position:relative;overflow:hidden}.public-site .agenda-section::before{content:"";position:absolute;width:580px;height:580px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-180px;top:-250px;box-shadow:0 0 0 80px rgba(255,255,255,.02),0 0 0 160px rgba(255,255,255,.018)}.public-site .agenda-shell{position:relative;display:grid;grid-template-columns:.7fr 1.3fr;gap:100px}.public-site .agenda-intro h2{font-size:clamp(42px,4.5vw,68px);line-height:1.02;letter-spacing:-.04em;margin:12px 0 20px}.public-site .agenda-intro p{color:#c6d6e3;font-size:17px;line-height:1.7;max-width:430px}.public-site .agenda-intro .cta{margin-top:18px}.public-site .agenda-list-home{display:grid;gap:12px}.public-site .event-premium{display:grid;grid-template-columns:82px 1fr 32px;gap:22px;align-items:center;padding:18px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);border-radius:18px;backdrop-filter:blur(8px)}.public-site .date-block{width:82px;aspect-ratio:1;border-radius:15px;background:#fff;color:var(--navy);display:grid;place-items:center;align-content:center}.public-site .date-block strong{font-size:30px;line-height:1}.public-site .date-block span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#65788d;margin-top:5px}.public-site .event-premium h3{margin:4px 0 6px;font-size:20px}.public-site .event-premium p{margin:0;color:#bfd0de;font-size:14px}.public-site .event-type{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#e8c773;font-weight:900}
.public-site .local-section{padding:110px 0;background:#fff}.public-site .local-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:90px;align-items:center}.public-site .local-visual{position:relative;min-height:570px}.public-site .local-image{position:absolute;inset:0;border-radius:30px;background-image:linear-gradient(0deg,rgba(8,35,62,.18),rgba(8,35,62,.02)),url('https://upload.wikimedia.org/wikipedia/commons/f/f4/Salins_village.jpg');background-size:cover;background-position:center;box-shadow:0 28px 60px rgba(20,50,77,.13)}.public-site .local-badge{position:absolute;left:28px;bottom:28px;background:#fff;border-radius:18px;padding:18px 20px;box-shadow:0 18px 38px rgba(20,50,77,.14)}.public-site .local-badge strong,.public-site .local-badge span{display:block}.public-site .local-badge strong{font-size:22px}.public-site .local-badge span{color:var(--muted);font-size:12px;margin-top:3px}.public-site .local-copy h2{font-size:clamp(42px,4.5vw,68px);line-height:1.03;letter-spacing:-.04em;margin:14px 0 22px}.public-site .local-copy>p{color:var(--muted);font-size:18px;line-height:1.7}.public-site .local-links{margin-top:34px;border-top:1px solid var(--line)}.public-site .local-links a{display:grid;grid-template-columns:75px 1fr 24px;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}.public-site .local-links strong{font-size:28px}.public-site .local-links span{color:#4f647a;font-weight:700}.public-site .contact-section{padding:110px 0;background:#eef4f8}.public-site .contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:center}.public-site .contact-grid h2{font-size:clamp(42px,4.5vw,68px);line-height:1.02;letter-spacing:-.04em;margin:14px 0 20px}.public-site .contact-grid>div>p{font-size:18px;line-height:1.7;color:var(--muted);max-width:650px}.public-site .contact-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.public-site .contact-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:0 24px 55px rgba(25,55,83,.09)}.public-site .contact-icon{width:58px;height:58px;background:#e9f2f8;color:#155b82;border-radius:18px;display:grid;place-items:center}.public-site .contact-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7}.public-site .contact-card h3{font-size:25px;margin:20px 0 8px}.public-site .contact-card>p{color:var(--muted)}.public-site .contact-card dl{margin:24px 0 0}.public-site .contact-card dl>div{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:14px 0;border-top:1px solid var(--line)}.public-site .contact-card dt{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#74869a}.public-site .contact-card dd{margin:0;font-weight:750}.public-site .contact-card dd a{color:#0e628b}.public-site .footer-premium{background:#071f38;color:#c6d5e2;padding:72px 0 28px}.public-site .footer-grid{display:grid;grid-template-columns:1.5fr .7fr .7fr 1fr;gap:55px}.public-site .footer-brand{color:#fff}.public-site .footer-brand small{color:#9fb2c4}.public-site .footer-grid>div:first-child>p{max-width:420px;line-height:1.7;color:#9fb2c4;margin-top:20px}.public-site .footer-grid h3{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin:7px 0 20px}.public-site .footer-grid>div:not(:first-child)>a{display:block;margin:10px 0;color:#c6d5e2}.public-site .footer-grid>div:last-child p{line-height:1.8;margin:0;color:#aebfce}.public-site .footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:50px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#849aae}.public-site .skip{position:fixed;z-index:100;left:16px;top:-70px;background:#fff;color:#111;padding:12px 15px;border-radius:10px;box-shadow:0 8px 24px #0002}.public-site .skip:focus{top:16px;left:16px}
@media(max-width:1120px){.public-site .site-wrap{width:min(100% - 48px,1440px)}.public-site .main-nav{gap:18px}.public-site .hero-content{grid-template-columns:1fr;gap:36px}.public-site .hero-panel{max-width:560px}.public-site .service-grid{grid-template-columns:repeat(2,1fr)}.public-site .news-layout{grid-template-columns:1fr 1fr;grid-template-rows:auto}.public-site .news-feature{grid-row:auto;grid-column:1/3;min-height:520px}.public-site .agenda-shell{gap:55px}.public-site .local-layout,.public-site .contact-grid{gap:50px}.public-site .footer-grid{grid-template-columns:1.2fr .7fr .7fr}.public-site .footer-grid>div:last-child{grid-column:1/-1}}
@media(max-width:860px){.public-site .civic-inner>span{display:none}.public-site .civic-inner{justify-content:flex-end}.public-site .nav-shell{height:76px}.public-site .brand-mark{width:42px;height:42px}.public-site .brand-pro strong{font-size:15px}.public-site .public-menu-btn{display:block}.public-site .main-nav{display:none;position:absolute;left:24px;right:24px;top:70px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 20px 45px rgba(20,50,77,.15);flex-direction:column;align-items:stretch;gap:0}.public-site .main-nav.open{display:flex}.public-site .main-nav>a{padding:13px 14px!important;border-radius:10px}.public-site .main-nav>a:hover{background:#f3f7fa}.public-site .main-nav>a::after{display:none}.public-site .hero-premium{min-height:720px}.public-site .hero-content{padding-block:90px 70px}.public-site .hero-copy h1{font-size:clamp(50px,11vw,72px)}.public-site .split-heading{grid-template-columns:1fr;gap:22px}.public-site .agenda-shell,.public-site .local-layout,.public-site .contact-grid{grid-template-columns:1fr}.public-site .local-visual{min-height:480px}.public-site .footer-grid{grid-template-columns:1fr 1fr}.public-site .footer-grid>div:first-child,.public-site .footer-grid>div:last-child{grid-column:1/-1}}
@media(max-width:620px){.public-site .site-wrap{width:calc(100% - 32px)}.public-site .civic-inner{font-size:11px}.public-site .civic-inner .sep{display:none}.public-site .civic-inner>div{gap:12px;flex-wrap:wrap;justify-content:flex-end}.public-site .brand-pro{min-width:0}.public-site .brand-pro small{display:none}.public-site .hero-premium{min-height:680px}.public-site .hero-shade{background:linear-gradient(0deg,rgba(5,28,50,.92),rgba(5,28,50,.5)),linear-gradient(90deg,rgba(5,28,50,.86),rgba(5,28,50,.25))}.public-site .hero-content{padding-block:78px 52px}.public-site .hero-copy p{font-size:17px}.public-site .hero-panel{display:none}.public-site .hero-actions{display:grid}.public-site .cta{width:100%}.public-site .quick-section,.public-site .editorial-section,.public-site .agenda-section,.public-site .local-section,.public-site .contact-section{padding:78px 0}.public-site .service-grid{grid-template-columns:1fr}.public-site .service-card{min-height:285px}.public-site .row-heading{align-items:flex-start;flex-direction:column}.public-site .news-layout{grid-template-columns:1fr;display:grid;min-height:0}.public-site .news-feature{grid-column:auto;min-height:430px}.public-site .news-small{min-height:230px}.public-site .news-feature h3{font-size:30px}.public-site .event-premium{grid-template-columns:68px 1fr}.public-site .event-premium>svg{display:none}.public-site .date-block{width:68px}.public-site .local-visual{min-height:390px}.public-site .local-badge{left:16px;bottom:16px;right:16px}.public-site .local-links a{grid-template-columns:64px 1fr 22px}.public-site .contact-card{padding:24px}.public-site .contact-card dl>div{grid-template-columns:1fr;gap:5px}.public-site .footer-grid{grid-template-columns:1fr}.public-site .footer-grid>div{grid-column:auto!important}.public-site .footer-bottom{flex-direction:column}.public-site .alert-premium{grid-template-columns:1fr;gap:9px}}


/* REDESIGN 2026 — harmonisation de toutes les pages publiques avec la frontpage */
.public-site.inner-public{background:#f5f8fb;color:var(--ink,#10243a)}
.public-site .inner-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#071f38 0%,#0b3558 68%,#0d5871 100%);color:#fff;padding:78px 0 72px;border-bottom:1px solid rgba(255,255,255,.08)}
.public-site .inner-hero::before{content:"";position:absolute;right:-170px;top:-280px;width:620px;height:620px;border-radius:50%;border:1px solid rgba(255,255,255,.11);box-shadow:0 0 0 82px rgba(255,255,255,.025),0 0 0 164px rgba(255,255,255,.018)}
.public-site .inner-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:76px 76px;mask-image:linear-gradient(90deg,#0008,transparent 80%);pointer-events:none}
.public-site .inner-hero>.site-wrap{position:relative;z-index:1}
.public-site .inner-hero h1{max-width:980px;margin:12px 0 14px;font-size:clamp(44px,5.2vw,76px);line-height:.98;letter-spacing:-.045em}
.public-site .inner-hero p{max-width:760px;margin:0;color:#c7d7e5;font-size:17px;line-height:1.7}
.public-site.inner-public main{min-height:42vh}
.public-site.inner-public .inner-page,.public-site.inner-public .page{width:min(calc(100% - 64px),1440px);max-width:none;margin:0 auto;padding:82px 0 105px;min-height:0}
.public-site.inner-public .inner-page>h1,.public-site.inner-public .page>h1{display:none}
.public-site.inner-public .inner-page>.eyebrow{color:#b18128;display:inline-flex;align-items:center;gap:10px;margin-bottom:24px}
.public-site.inner-public .inner-page>.eyebrow::before{content:"";width:30px;height:1px;background:#d5a843}
.public-site.inner-public .lead{font-size:18px;line-height:1.75;color:#5d7185;max-width:850px;margin:0 0 32px}
.public-site.inner-public .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:0}
.public-site.inner-public .card,.public-site.inner-public .rich-card,.public-site.inner-public .doc-row,.public-site.inner-public .event-row,.public-site.inner-public .form-card{border:1px solid #dfe7ee;background:#fff;box-shadow:0 18px 45px rgba(20,50,77,.07);border-radius:22px}
.public-site.inner-public .card{padding:28px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.public-site.inner-public .card:hover{transform:translateY(-4px);box-shadow:0 24px 55px rgba(20,50,77,.11);border-color:#cedbe5}
.public-site.inner-public .content-card{padding:0;overflow:hidden}
.public-site.inner-public .content-card img{width:100%;height:240px;object-fit:cover;margin:0;border-radius:0}
.public-site.inner-public .content-card>small,.public-site.inner-public .content-card>b,.public-site.inner-public .content-card>p,.public-site.inner-public .content-card>details{margin-left:28px;margin-right:28px}
.public-site.inner-public .content-card>small{margin-top:24px;color:#70849a;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:850}
.public-site.inner-public .content-card>b{display:block;font-size:23px;line-height:1.25;margin-top:9px}
.public-site.inner-public .content-card>p{color:#61758a;line-height:1.65;margin-bottom:26px}
.public-site.inner-public .content-card>details{padding-bottom:28px;color:#405a72}
.public-site.inner-public .timeline,.public-site.inner-public .doc-list{margin-top:0;gap:16px}
.public-site.inner-public .event-row{grid-template-columns:112px 1fr;padding:24px;align-items:center}
.public-site.inner-public .event-date{min-height:112px;border-radius:18px;background:#0b3458;color:#fff}
.public-site.inner-public .event-date strong{font-size:40px}
.public-site.inner-public .event-date span{color:#c8dae8}
.public-site.inner-public .event-row h2,.public-site.inner-public .doc-row h2{font-size:24px;letter-spacing:-.02em}
.public-site.inner-public .event-meta{color:#9b752e}
.public-site.inner-public .doc-row{padding:26px 28px}
.public-site.inner-public .doc-row p{color:#667a8e;line-height:1.6}
.public-site.inner-public .btn,.public-site.inner-public .form-card button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:11px;border:1px solid #d4e0e9;background:#fff;color:#123854;font-weight:850}
.public-site.inner-public .btn.alt,.public-site.inner-public .form-card button{background:#e9bd55;border-color:#e9bd55;color:#182838}
.public-site.inner-public .directory{margin-top:22px}
.public-site.inner-public .directory .card{min-height:220px;position:relative;overflow:hidden}
.public-site.inner-public .directory .card::before{content:"";position:absolute;right:-40px;top:-40px;width:110px;height:110px;border-radius:50%;background:#edf4f8}
.public-site.inner-public .directory .card small{position:relative;color:#9b752e;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:900}
.public-site.inner-public .directory .card b{position:relative;display:block;font-size:23px;margin:10px 0}
.public-site.inner-public .directory .card p{position:relative;color:#60758a;line-height:1.65}
.public-site.inner-public .section-subtitle{font-size:34px;letter-spacing:-.03em;margin:70px 0 22px!important}
.public-site.inner-public .public-search{max-width:920px;margin:0 0 34px;background:#fff;border:1px solid #dfe7ee;border-radius:18px;padding:8px;box-shadow:0 15px 40px rgba(20,50,77,.06)}
.public-site.inner-public .public-search input{border:0;background:transparent;outline:none;font-size:16px;padding:15px 17px}
.public-site.inner-public .search-results{gap:14px}
.public-site.inner-public .search-hit small{color:#9b752e;text-transform:uppercase;letter-spacing:.08em}
.public-site.inner-public .search-hit b{font-size:21px;margin-top:8px}
.public-site.inner-public .search-hit p{color:#667b90;line-height:1.6}
.public-site.inner-public .citizen-form{max-width:1080px;margin-top:34px;padding:34px}
.public-site.inner-public .field label{color:#1a334c;font-size:13px}
.public-site.inner-public .field input,.public-site.inner-public .field textarea,.public-site.inner-public .field select{border:1px solid #d5e0e9;border-radius:12px;background:#fbfcfd;transition:border-color .18s,box-shadow .18s}
.public-site.inner-public .field input:focus,.public-site.inner-public .field textarea:focus,.public-site.inner-public .field select:focus{outline:none;border-color:#4d86a8;box-shadow:0 0 0 4px rgba(49,111,148,.09);background:#fff}
.public-site.inner-public .rich-card{padding:38px;font-size:17px;color:#4e6479;line-height:1.85}
.public-site.inner-public .page{max-width:1120px}
.public-site.inner-public .page>p,.public-site.inner-public .page>h2,.public-site.inner-public .page>.notice,.public-site.inner-public .page>.form-card,.public-site.inner-public .page>.muted{max-width:920px;margin-left:auto;margin-right:auto}
.public-site.inner-public .page>p{font-size:16px;line-height:1.8;color:#556b80;margin-top:0;margin-bottom:18px}
.public-site.inner-public .page>h2{font-size:28px;letter-spacing:-.025em;color:#102b46;margin-top:42px;margin-bottom:14px}
.public-site.inner-public .page strong{color:#102b46}
.public-site.inner-public .form-card{padding:32px;display:grid;gap:18px}
.public-site.inner-public .form-card label{display:grid;gap:8px;font-weight:750;color:#17324c}
.public-site.inner-public .form-card input[type=email]{width:100%;padding:14px;border:1px solid #d5e0e9;border-radius:12px;font:inherit}
.public-site.inner-public .form-card label:has(input[type=checkbox]){display:flex;align-items:flex-start;font-weight:500;color:#526a80}
.public-site.inner-public .form-card input[type=checkbox]{margin-top:4px}
.public-site.inner-public .notice,.public-site.inner-public .public-message{border-radius:14px;padding:16px 18px;margin-bottom:22px}
.public-site.inner-public .muted{color:#7d8fa1;font-size:13px}
.public-site.inner-public .footer-premium{margin-top:0}
@media(max-width:1050px){.public-site.inner-public .grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.public-site .inner-hero{padding:58px 0 54px}.public-site.inner-public .inner-page,.public-site.inner-public .page{width:calc(100% - 32px);padding:58px 0 76px}.public-site.inner-public .grid{grid-template-columns:1fr}.public-site.inner-public .event-row{grid-template-columns:78px 1fr;padding:17px}.public-site.inner-public .event-date{min-height:78px}.public-site.inner-public .event-date strong{font-size:29px}.public-site.inner-public .doc-row{padding:21px;flex-direction:column}.public-site.inner-public .citizen-form{padding:22px}.public-site.inner-public .rich-card{padding:25px}.public-site.inner-public .content-card img{height:210px}}

/* ACCESS PORTALS — added in access separation update */
.portal-credit{margin-top:24px;padding-top:18px;border-top:1px solid #d9e2ea;display:grid;gap:3px;color:#53687a;font-size:11px;line-height:1.45}.portal-credit strong{color:#0c2d4a;font-size:12px}.portal-credit a{color:#0b607e;font-weight:700;text-decoration:none}.portal-credit a:hover{text-decoration:underline}

/* CODEX UPDATE — SuperMenu, pages services, frontpage life, Super Admin Analyse & Visibilité */
.siteprime-credit{color:inherit;text-decoration:none}.siteprime-credit:hover{text-decoration:underline}
.mega-main-nav{display:flex;align-items:center;gap:4px}.mega-item{position:static}.mega-trigger{border:0;background:transparent;color:#10243a;font:inherit;font-weight:800;padding:16px 11px;cursor:pointer;display:flex;align-items:center;gap:6px}.mega-trigger span{font-size:12px;opacity:.55}.mega-panel{display:none;position:absolute;left:0;right:0;top:100%;z-index:80;background:#fff;border-top:1px solid #e5edf3;box-shadow:0 28px 60px rgba(12,39,72,.16)}.mega-item.open .mega-panel{display:block}.mega-panel-inner{width:min(calc(100% - 64px),1440px);margin:auto;padding:34px 0 40px;display:grid;grid-template-columns:260px 1fr;gap:38px}.mega-intro{padding:6px 26px 6px 0;border-right:1px solid #e5edf3}.mega-intro small{font-weight:900;letter-spacing:.13em;color:#9b752e}.mega-intro strong{display:block;font-size:27px;margin:8px 0 10px}.mega-intro p{color:#667b90;line-height:1.55}.mega-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mega-links a{padding:16px;border:1px solid transparent;border-radius:14px;text-decoration:none;color:#12314c;transition:.18s}.mega-links a:hover{background:#f4f8fb;border-color:#dde8f0;transform:translateY(-2px)}.mega-links strong{display:block;font-size:15px}.mega-links span{display:block;color:#708397;font-size:12px;line-height:1.45;margin-top:5px}.service-page-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.front-life-strip{background:#0d3455;color:#fff;padding:26px 0}.front-life-strip>.site-wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}.life-stat strong{display:block;font-size:21px}.life-stat span{color:#bfd1df}.life-actions{display:flex;gap:8px;flex-wrap:wrap}.life-actions a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.25);padding:10px 13px;border-radius:10px;font-weight:750}.life-actions a:hover{background:#fff;color:#0d3455}.side-section{margin:20px 15px 8px;font-size:10px;letter-spacing:.12em;color:#8ea5b8;font-weight:900}.admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.metric-list{display:grid;gap:0}.metric-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #e5ecf1}.traffic-chart{height:250px;display:flex;align-items:flex-end;gap:5px;padding:28px 8px 8px;border-bottom:1px solid #dce6ed}.traffic-col{flex:1;min-width:5px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.traffic-col span{width:100%;max-width:22px;background:linear-gradient(#1f7192,#0c3459);border-radius:6px 6px 2px 2px;min-height:4px}.traffic-col small{font-size:9px;color:#74889a;transform:rotate(-42deg);white-space:nowrap;margin-bottom:-18px}.seo-layout{display:grid;grid-template-columns:310px 1fr;gap:20px}.seo-pages{padding:10px}.seo-pages a{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:10px;text-decoration:none;color:#223e57}.seo-pages a.active,.seo-pages a:hover{background:#edf4f8}.seo-pages b{font-size:12px}.seo-form{position:relative}.seo-score{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#0c3459;color:#fff;border-radius:14px;margin-bottom:18px}.seo-score strong{font-size:24px}.serp-preview{background:#f7f9fb;border:1px solid #e0e7ec;border-radius:14px;padding:18px}.serp-preview small{display:block;color:#677b8d}.serp-preview strong{display:block;color:#1a0dab;font-size:20px;margin:6px 0}.serp-preview span{color:#0b7a2a;font-size:13px}.serp-preview p{color:#4c5d6d;line-height:1.5}.service-external{background:#fff!important;color:#123854!important;border-color:#d4e0e9!important}
@media(max-width:1120px){.mega-main-nav{display:none}.mega-main-nav.open{display:flex;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:12px 20px;box-shadow:0 20px 35px rgba(12,39,72,.15);z-index:100}.mega-trigger{width:100%;justify-content:space-between}.mega-panel{position:static;box-shadow:none;border:0}.mega-panel-inner{width:100%;padding:10px 0 20px;grid-template-columns:1fr}.mega-intro{display:none}.mega-links{grid-template-columns:1fr}.admin-two-col,.seo-layout{grid-template-columns:1fr}}
@media(max-width:720px){.mega-panel-inner{width:100%}.front-life-strip>.site-wrap{flex-direction:column;align-items:flex-start}.traffic-col small{display:none}}

/* =========================================================
   CODEX FIX 2026-09-03 — SuperMenu + service CTA spacing
   Only requested visual/interaction corrections.
   ========================================================= */
.public-site .nav-shell{position:relative}
.public-site .mega-main-nav{display:flex;align-items:center;justify-content:flex-end;gap:2px;min-width:0}
.public-site .mega-item{position:static}
.public-site .mega-trigger{min-height:88px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12.5px;font-weight:850;padding:0 10px;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;position:relative}
.public-site .mega-trigger::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .18s ease}
.public-site .mega-item.open .mega-trigger::after,.public-site .mega-trigger:hover::after{transform:scaleX(1)}
.public-site .mega-trigger span{font-size:11px;opacity:.5;transition:transform .18s ease}
.public-site .mega-item.open .mega-trigger span{transform:rotate(180deg)}
.public-site .mega-panel{display:none;position:absolute;left:0;right:0;top:100%;z-index:140;background:#fff;border:1px solid #dfe8ef;border-top:3px solid var(--gold);border-radius:0 0 22px 22px;box-shadow:0 28px 70px rgba(8,35,63,.20);overflow:hidden}
.public-site .mega-item.open .mega-panel{display:block;animation:spMegaIn .16s ease-out}
@keyframes spMegaIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.public-site .mega-panel-inner{width:100%;margin:0;padding:28px 30px 32px;display:grid;grid-template-columns:245px minmax(0,1fr);gap:30px;max-height:min(570px,calc(100vh - 165px));overflow:auto}
.public-site .mega-intro{padding:4px 26px 4px 0;border-right:1px solid #e4ebf1;align-self:stretch}
.public-site .mega-intro small{font-size:10px;font-weight:900;letter-spacing:.16em;color:#9a7429}
.public-site .mega-intro strong{display:block;font-size:25px;line-height:1.12;margin:8px 0 10px;color:var(--ink)}
.public-site .mega-intro p{margin:0;color:#687d91;line-height:1.55;font-size:13px}
.public-site .mega-links{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;align-content:start}
.public-site .mega-links a{display:block;min-height:84px;padding:15px 16px;border:1px solid #e5ecf2;border-radius:14px;text-decoration:none;color:#12314c;background:#fbfcfd;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.public-site .mega-links a:hover,.public-site .mega-links a:focus-visible{background:#f1f7fa;border-color:#cbdde8;transform:translateY(-2px);box-shadow:0 10px 24px rgba(23,65,94,.08);outline:none}
.public-site .mega-links strong{display:block;font-size:14px;line-height:1.25}
.public-site .mega-links span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:#708397;font-size:11.5px;line-height:1.45;margin-top:5px}
.public-site .nav-search{white-space:nowrap;margin-left:5px}
.public-site .service-page-actions{margin-top:34px}

@media(max-width:1320px) and (min-width:1121px){
  .public-site .brand-pro{min-width:205px}
  .public-site .nav-shell{gap:20px}
  .public-site .mega-trigger{font-size:11px;padding-inline:7px}
  .public-site .mega-trigger::after{left:7px;right:7px}
  .public-site .nav-search{font-size:12px;padding:10px 12px!important}
  .public-site .mega-panel-inner{grid-template-columns:215px minmax(0,1fr);padding-inline:24px}
}
@media(max-width:1120px){
  .public-site .mega-main-nav{display:none}
  .public-site .mega-main-nav.open{display:flex;position:absolute;left:0;right:0;top:100%;z-index:150;background:#fff;border:1px solid #dfe8ef;border-radius:0 0 18px 18px;flex-direction:column;align-items:stretch;padding:10px 14px 16px;box-shadow:0 24px 50px rgba(8,35,63,.18);max-height:calc(100vh - 120px);overflow:auto}
  .public-site .mega-trigger{width:100%;min-height:50px;justify-content:space-between;padding:0 10px;font-size:14px;border-bottom:1px solid #eef2f5}
  .public-site .mega-trigger::after{display:none}
  .public-site .mega-panel{position:static;border:0;border-radius:0;box-shadow:none;background:#f7fafc;overflow:visible}
  .public-site .mega-panel-inner{display:block;width:100%;padding:10px;max-height:none;overflow:visible}
  .public-site .mega-intro{display:none}
  .public-site .mega-links{grid-template-columns:1fr;gap:6px}
  .public-site .mega-links a{min-height:0;padding:12px 13px;background:#fff}
  .public-site .nav-search{margin:10px 0 0;padding:12px 14px!important;text-align:center}
}


/* =========================================================
   CODEX UPDATE 2026-09-03 — Hero position + MegaMenu hover
   Requested only: raise frontpage hero content and expose
   desktop megamenu through hover as well as click.
   ========================================================= */
@media(min-width:1121px){
  .public-site .hero-premium .hero-content{transform:translateY(-50px)}
  .public-site .mega-trigger span{display:inline-block}
  .public-site .mega-item:hover .mega-trigger::after,
  .public-site .mega-item:focus-within .mega-trigger::after{transform:scaleX(1)}
}
@media(max-width:1120px){
  .public-site .hero-premium .hero-content{transform:none}
}


/* CODEX UPDATE 2026-09-03 — Espace habitant + Newsletter administration */
.resident-space-banner{margin:28px 0 10px;padding:26px 30px;display:flex;justify-content:space-between;align-items:center;gap:28px;background:linear-gradient(120deg,#f7fafc,#fff)}.resident-space-banner h2{margin:5px 0 8px;color:#102b46}.resident-space-banner p{margin:0;color:#62788d}.resident-actions{display:flex;gap:10px;flex-wrap:wrap}.citizen-auth{max-width:760px;margin:0 auto;padding:36px}.citizen-auth h2{font-size:30px;color:#102b46}.citizen-form.compact{padding:0!important;margin-top:22px!important;box-shadow:none!important;border:0!important}.auth-switch,.auth-links{margin-top:18px}.auth-links{display:flex;justify-content:space-between;gap:15px}.citizen-space{max-width:1180px}.citizen-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px;padding:8px;background:#f2f6f9;border-radius:14px}.citizen-nav a{padding:10px 14px;text-decoration:none;color:#38536b;font-weight:750;border-radius:10px}.citizen-nav a.active,.citizen-nav a:hover{background:#fff;color:#0d3455;box-shadow:0 5px 15px rgba(20,52,79,.08)}.public-account-head{align-items:center}.citizen-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.citizen-stats .card{padding:24px}.citizen-stats b{display:block;font-size:34px;color:#0d3455}.citizen-stats span{color:#718497}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.account-grid .card,.profile-card{padding:28px}.request-mini,.request-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid #e5ecf1;text-decoration:none;color:#16354e}.request-mini span,.request-row span:first-child{display:grid;gap:3px}.request-mini small,.request-row small{color:#718497}.request-mini em{font-style:normal;font-size:12px;font-weight:800;color:#8b6b2d}.notification-mini{padding:14px 0;border-bottom:1px solid #e5ecf1}.notification-mini p{margin:5px 0;color:#60768a}.notification-mini small{color:#8697a6}.account-list{padding:10px 26px}.profile-card{max-width:900px;margin:auto}.admin-table form{margin:0}.admin-table button.text-link{border:0;background:none;cursor:pointer;padding:0}.admin-form button[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.resident-space-banner{align-items:flex-start;flex-direction:column;padding:22px}.citizen-auth{padding:24px}.citizen-stats,.account-grid{grid-template-columns:1fr}.citizen-nav{flex-direction:column}.public-account-head{align-items:flex-start}}

/* =========================================================
   CODEX FIX 2026-09-03 — MegaMenu hover fiable + breakpoint
   Desktop: ouverture native au survol, JS remains for ARIA/click.
   Tablet <=1120px: expose hamburger button so hidden nav is reachable.
   ========================================================= */
@media (min-width:1121px){
  /* CODEX FIX 2026-09-10 — le header de la démo mesure 96px alors que
     .mega-trigger n'a que min-height:88px avec align-items:center : un
     espace mort de ~4px séparait le bouton du panneau, ce qui fermait
     le menu au survol avant d'atteindre les liens. */
  .demo-header .mega-trigger{min-height:96px}
  .public-site .mega-item:hover > .mega-panel,
  .public-site .mega-item:focus-within > .mega-panel,
  .public-site .mega-item.open > .mega-panel{
    display:block;
    animation:spMegaIn .16s ease-out;
  }
  .public-site .mega-item:hover > .mega-trigger span,
  .public-site .mega-item:focus-within > .mega-trigger span,
  .public-site .mega-item.open > .mega-trigger span{
    transform:rotate(180deg);
  }
}
@media (max-width:1120px){
  .public-site .public-menu-btn{display:block}
}

/* CODEX UPDATE 2026-09-03 — Démarches 2 colonnes, pièces jointes, mot de passe */
.demarches-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.9fr);gap:28px;align-items:start;margin-top:28px}.demarches-layout .citizen-form{max-width:none;margin-top:0}.resident-space-card{position:sticky;top:118px;padding:30px;background:linear-gradient(145deg,#fff,#f6f9fb)}.resident-space-card h2{margin:8px 0 12px;color:#102b46;font-size:28px}.resident-space-card p{color:#60778c;line-height:1.65}.resident-space-card .resident-actions{display:grid;margin-top:22px}.resident-space-card .btn{text-align:center;justify-content:center}.resident-benefits{list-style:none;padding:0;margin:22px 0;display:grid;gap:11px;color:#294a64}.resident-benefits li:before{content:'✓';font-weight:900;color:#b9851f;margin-right:9px}.resident-guest{display:block;margin-top:16px;color:#7b8e9f}.field-help{display:block;margin-top:7px;color:#7b8e9f}.pw{position:relative}.pw input{padding-right:52px!important}.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:transparent;border-radius:9px;cursor:pointer;font-size:18px}.pw-eye:hover{background:#f0f4f7}.request-files{margin-top:20px;padding:28px}.attachment-list{display:grid;gap:8px;margin:16px 0 24px}.attachment-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 15px;border:1px solid #e1e8ee;border-radius:12px;text-decoration:none;color:#183c59;background:#fbfcfd}.attachment-row:hover{background:#f3f7fa}.attachment-row small{color:#74899a}.attachment-upload{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.attachment-upload .field{flex:1;min-width:260px}.admin-attachments{margin-top:24px}.admin-attachments h3{margin-bottom:10px}
@media(max-width:980px){.demarches-layout{grid-template-columns:1fr}.resident-space-card{position:static;order:-1}.resident-space-card .resident-actions{display:flex}.demarches-layout .citizen-form{order:2}}
@media(max-width:620px){.attachment-row{align-items:flex-start;flex-direction:column}.resident-space-card .resident-actions{display:grid;width:100%}}

/* Démarches: desktop two-column layout + responsive resident space — 2026-09-03 */
@media (min-width:981px){
  .public-site.inner-public .demarches-layout{
    display:grid!important;
    grid-template-columns:minmax(0, 2.35fr) minmax(300px, .85fr)!important;
    gap:30px!important;
    align-items:start!important;
    width:100%!important;
  }
  .public-site.inner-public .demarches-layout .citizen-form{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
  .public-site.inner-public .demarches-layout .resident-space-card{
    grid-column:2!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    position:sticky!important;
    top:118px!important;
    align-self:start!important;
  }
}
@media (max-width:980px){
  .public-site.inner-public .demarches-layout{display:flex!important;flex-direction:column!important;gap:20px!important}
  .public-site.inner-public .demarches-layout .resident-space-card{order:1!important;position:static!important;width:100%!important;margin:0!important}
  .public-site.inner-public .demarches-layout .citizen-form{order:2!important;width:100%!important;max-width:none!important;margin:0!important}
}
@media (max-width:620px){
  .public-site.inner-public .resident-space-card{padding:22px!important}
  .public-site.inner-public .resident-space-card h2{font-size:24px!important}
  .public-site.inner-public .resident-space-card .resident-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .public-site.inner-public .resident-space-card .btn{width:100%!important}
}
/* Horaires mairie — front office */
.public-site .opening-home{margin-top:30px;max-width:650px;border-top:1px solid #cfdae4;padding-top:22px}.public-site .opening-home-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.public-site .opening-title{font-size:13px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#173c5d}.public-site .opening-status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:#66798c}.public-site .opening-status i{width:9px;height:9px;border-radius:50%;background:#8a9aaa}.public-site .opening-status.is-open{color:#277648}.public-site .opening-status.is-open i{background:#2a9b59}.public-site .opening-status.is-closed{color:#8b4a42}.public-site .opening-status.is-closed i{background:#b85d52}.public-site .opening-days{margin-top:16px}.public-site .opening-days>div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:8px 0;border-bottom:1px solid rgba(150,170,188,.3);font-size:14px}.public-site .opening-days span{color:#65798c}.public-site .opening-days strong{font-weight:800;color:#0b2b47}.public-site .opening-empty{margin:14px 0 0!important;font-size:14px!important;color:#65798c!important}
/* Horaires mairie — secrétariat */
.hours-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}.hours-admin-day{border:1px solid #dce5ec;border-radius:14px;padding:16px;background:#fff}.hours-day-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.hours-day-head>strong{font-size:16px}.hours-day-head label{font-size:13px;font-weight:700}.hours-slot{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end;margin:9px 0}.hours-slot label{font-size:12px;font-weight:700}.hours-slot input{display:block;width:100%;margin-top:5px}.hours-admin-day small{display:block;margin-top:8px;color:#718194}
@media(max-width:860px){.hours-admin-grid{grid-template-columns:1fr}.public-site .opening-days>div{grid-template-columns:105px 1fr}}
@media(max-width:480px){.public-site .opening-home-head{align-items:flex-start;flex-direction:column;gap:8px}.public-site .opening-days>div{grid-template-columns:1fr;gap:2px}.hours-slot{grid-template-columns:1fr}.hours-slot>span{display:none}}

/* Actualités frontpage — cartes alignées en hauteur (2026-09-03) */
@media (min-width:1121px){
  .public-site .news-layout{
    min-height:0;
    align-items:stretch;
  }
  .public-site .news-feature,
  .public-site .news-small{
    height:310px;
    min-height:310px;
    align-self:stretch;
  }
  .public-site .news-feature>div,
  .public-site .news-small>div{
    width:100%;
  }
  .public-site .news-feature h3{
    font-size:32px;
    line-height:1.15;
  }
}

/* Actualités frontpage — compactage renforcé + réduction 10% (2026-09-03) */
@media (min-width:1121px){
  .public-site .editorial-section{padding:56px 0 49px}
  .public-site .editorial-section .row-heading{margin-bottom:23px}
  .public-site .news-layout{gap:16px}
  .public-site .news-feature,
  .public-site .news-small{height:250px;min-height:250px}
  .public-site .news-feature>div{padding:25px 27px}
  .public-site .news-small>div{padding:22px}
  .public-site .news-feature h3{font-size:29px;line-height:1.12;margin-bottom:7px}
  .public-site .news-layout h3{margin-bottom:7px}
  .public-site .news-layout p{line-height:1.45}
}
@media (min-width:621px) and (max-width:1120px){
  .public-site .editorial-section{padding:72px 0 64px}
}


/* Ajustements frontpage 2026-09-03 — actualités -15%, carte GPS et footer */
@media (min-width:1121px){
  .public-site .editorial-section{padding:48px 0 42px}
  .public-site .editorial-section .row-heading{margin-bottom:20px}
  .public-site .news-feature,
  .public-site .news-small{height:213px;min-height:213px}
  .public-site .news-feature>div{padding:21px 23px}
  .public-site .news-small>div{padding:19px}
  .public-site .news-feature h3{font-size:27px}
}
.public-site .contact-map{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#e9f2f8}
.public-site .contact-map iframe{display:block;width:100%;height:145px;border:0}
.public-site .footer-bottom{align-items:center}
.public-site .footer-bottom .siteprime-credit{color:inherit}
@media(max-width:620px){
  .public-site .contact-map iframe{height:170px}
  .public-site .footer-bottom{align-items:flex-start}
}

/* 2026-09-10 — Footer réseaux sociaux & bloc La Poste */
.public-site .footer-grid.footer-grid--5{grid-template-columns:1.35fr .65fr .65fr .9fr .95fr;gap:42px}
.public-site .footer-socials{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:22px}
.public-site .footer-socials a{width:38px;height:38px;border:1px solid rgba(255,255,255,.16);border-radius:11px;display:grid;place-items:center;color:#dce8f2;background:rgba(255,255,255,.045);transition:transform .18s ease,background .18s ease,border-color .18s ease}
.public-site .footer-socials a:hover,.public-site .footer-socials a:focus-visible{transform:translateY(-2px);background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.32);outline:none}
.public-site .footer-socials svg{width:19px;height:19px;display:block}
.public-site .footer-contact p,.public-site .footer-laposte p{line-height:1.8;margin:0;color:#aebfce}
.public-site .footer-contact a,.public-site .footer-laposte a{color:#c6d5e2}
.public-site .footer-contact a:hover,.public-site .footer-laposte a:hover{text-decoration:underline;text-underline-offset:3px}
.public-site .footer-laposte strong{color:#fff;font-weight:800}
.public-site .footer-hours{display:inline-block;margin-top:3px;white-space:normal}
.public-site .footer-laposte-link{display:inline-block!important;margin-top:12px!important;font-weight:800;font-size:13px}
@media(max-width:1120px){.public-site .footer-grid.footer-grid--5{grid-template-columns:1.2fr .7fr .7fr}.public-site .footer-grid.footer-grid--5 .footer-contact,.public-site .footer-grid.footer-grid--5 .footer-laposte{grid-column:auto}}
@media(max-width:860px){.public-site .footer-grid.footer-grid--5{grid-template-columns:1fr 1fr}.public-site .footer-grid.footer-grid--5>div:first-child{grid-column:1/-1}.public-site .footer-grid.footer-grid--5 .footer-contact,.public-site .footer-grid.footer-grid--5 .footer-laposte{grid-column:auto}}
@media(max-width:620px){.public-site .footer-grid.footer-grid--5{grid-template-columns:1fr}.public-site .footer-grid.footer-grid--5>div{grid-column:auto!important}.public-site .footer-socials a{width:40px;height:40px}}


/* === MAIRIE DE DEMONSTRATION — SitePrime Collectivites 2026 === */
.mairie-demo{--navy:#0a2747;--navy2:#123f6d;--royal:#1769e0;--red:#e73145;--cream:#f8fbff;--soft:#edf5ff;--ink:#0a2342;--muted:#61738a;--line:#dbe7f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#fff;color:var(--ink)}
.mairie-demo .site-wrap{width:min(1420px,calc(100% - 64px));margin:auto}.demo-topbar{background:linear-gradient(90deg,#092844,#154c75);color:#fff;font-size:13px}.demo-topbar>.site-wrap{min-height:42px;display:flex;justify-content:space-between;align-items:center;gap:20px}.demo-top-contact,.demo-top-actions{display:flex;align-items:center;gap:22px}.demo-topbar a{color:#fff}.citizen-pill{background:#e92f45;padding:13px 18px;font-weight:900}.demo-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);box-shadow:0 1px 0 rgba(8,37,68,.09)}.demo-header .nav-shell{height:96px}.demo-brand{min-width:330px}.demo-brand .mairie-logo,.demo-footer .mairie-logo{width:72px;height:72px;background:transparent;box-shadow:none;border-radius:0;color:#0c3b70;position:relative}.mairie-logo svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.demo-brand .mairie-logo:after{content:"";position:absolute;left:8px;right:8px;bottom:5px;height:5px;background:linear-gradient(90deg,#1353a4 0 34%,#fff 34% 66%,#ed2e45 66%)}.demo-brand strong{font-family:Georgia,serif;font-size:28px;line-height:.9;text-transform:none;letter-spacing:0}.demo-brand strong b{display:block;font-size:20px}.demo-brand small{font-size:10px;letter-spacing:.08em;color:#60758e}.mairie-demo .main-nav{gap:20px;font-size:13px}.demo-hero{position:relative;min-height:520px;overflow:hidden;background:#d9e9f8}.demo-hero-bg{position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1771016038208-516b7a9329ed?auto=format&fit=crop&w=1600&q=74') center 45%/cover no-repeat}.demo-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,251,255,.98) 0%,rgba(247,251,255,.9) 34%,rgba(247,251,255,.20) 62%,rgba(8,39,71,.05) 100%)}.demo-hero-inner{position:relative;min-height:520px;display:flex;align-items:center;justify-content:space-between;padding:70px 0}.demo-hero-copy{max-width:590px}.demo-eyebrow{display:block;color:#1a5fb8;font-size:12px;font-weight:900;letter-spacing:.18em;margin-bottom:14px}.demo-hero h1{font-family:Georgia,serif;font-size:clamp(52px,5.8vw,82px);line-height:.93;letter-spacing:-.04em;margin:0 0 18px;color:#0b2b55}.demo-hero-copy>p{font-size:20px;line-height:1.55;color:#354f6e;max-width:570px}.demo-hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.demo-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border-radius:10px;font-weight:900;border:2px solid #155fc8}.demo-btn.primary{background:#1769e0;color:#fff}.demo-btn.secondary{background:#fff;color:#0f3e76}.weather-card{align-self:flex-start;margin-top:-35px;width:280px;background:rgba(255,255,255,.96);padding:22px;border-radius:18px;box-shadow:0 18px 45px rgba(8,37,68,.18);border:1px solid rgba(255,255,255,.8)}.weather-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.weather-card>div:first-child span{font-size:36px}.weather-main{display:flex;align-items:end;gap:14px;margin:12px 0}.weather-main b{font-size:42px}.weather-main small{padding-bottom:7px}.weather-range{display:flex;gap:14px;font-size:12px;color:#6c7e92}.weather-note{display:block;border-top:1px solid #e6eef6;margin-top:13px;padding-top:11px;color:#788a9e;text-decoration:none;font-size:12px}
.weather-note:hover{color:#1769e0}.hero-signature{position:absolute;right:0;bottom:30px;width:360px;padding:28px 50px;background:linear-gradient(135deg,rgba(6,38,73,.92),rgba(10,78,127,.9));color:#fff;font:italic 28px/1.1 Georgia,serif;transform:skewY(-4deg);text-align:center}.hero-signature>*{transform:skewY(4deg)}.demo-services{position:relative;margin-top:-28px;z-index:4}.demo-service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.demo-service-grid>a{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 18px;text-align:center;box-shadow:0 13px 35px rgba(20,62,105,.09);transition:.22s}.demo-service-grid>a:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(20,62,105,.16)}.svc-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#eaf3ff;color:#1769e0;font-size:27px}.svc-icon.green{background:#eaf8ef;color:#1c9d55}.svc-icon.red{background:#ffedf0;color:#e73145}.demo-service-grid h3{font-size:17px;margin:0 0 8px}.demo-service-grid p{font-size:13px;line-height:1.5;color:#6c7e92;margin:0}.demo-news{padding:82px 0 70px}.demo-section-head,.events-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.demo-section-head h2,.events-head h2,.demo-commune h2,.demo-contact h2{font-family:Georgia,serif;font-size:42px;margin:0}.demo-section-head>a,.events-head>a{font-weight:800;color:#1769e0}.demo-news-events{display:grid;grid-template-columns:2fr 1fr;gap:28px;margin-top:28px}.demo-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.demo-news-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.demo-news-card img{width:100%;height:190px;object-fit:cover}.demo-news-card>div{padding:18px}.demo-chip{display:inline-block;font-size:10px;font-weight:900;text-transform:uppercase;color:#165dab;background:#edf5ff;padding:6px 9px;border-radius:999px}.demo-news-card h3{font-size:18px;line-height:1.25;margin:12px 0 8px}.demo-news-card p{font-size:13px;line-height:1.55;color:#687b90}.demo-news-card a{font-size:13px;color:#1769e0;font-weight:900}.demo-events{border-left:1px solid var(--line);padding-left:28px}.demo-event{display:grid;grid-template-columns:62px 1fr 20px;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);color:var(--ink)}.event-date{background:#edf5ff;border-radius:10px;padding:9px;text-align:center;color:#145db8}.event-date b{display:block;font-size:19px}.event-date small{font-size:10px;font-weight:900}.demo-event>span:nth-child(2) strong{display:block;font-size:14px}.demo-event>span:nth-child(2) small{display:block;color:#718298;margin-top:4px}.demo-commune{padding:0 0 72px}.demo-commune-grid{display:grid;grid-template-columns:1.05fr 1.25fr .8fr;align-items:stretch;background:#f3f8fe;border-radius:22px;overflow:hidden}.commune-photo{min-height:290px;background:url('https://images.unsplash.com/photo-1650474759323-fd6bafa0c126?auto=format&fit=crop&w=1000&q=72') center/cover no-repeat}.commune-copy{padding:40px}.commune-copy p{color:#61758c;line-height:1.7}.demo-commune blockquote{margin:0;padding:46px 36px;background:#fff;font:italic 20px/1.5 Georgia,serif;display:flex;flex-direction:column;justify-content:center}.demo-commune blockquote:before{content:'“';font-size:70px;color:#0c3b70;line-height:.6}.demo-commune blockquote strong{font:800 13px Inter,sans-serif;margin-top:20px}.demo-contact{padding:54px 0;background:#0b3964;color:#fff}.demo-contact>.site-wrap{display:grid;grid-template-columns:.8fr 2fr;gap:48px;align-items:center}.demo-contact .demo-eyebrow{color:#8bc5ff}.demo-contact h2{color:#fff}.demo-contact p{color:#c8d7e6}.contact-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-tiles a{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:22px;border-radius:14px;color:#fff}.contact-tiles b,.contact-tiles span{display:block}.contact-tiles span{color:#bfd0df;font-size:12px;margin-top:6px}.demo-footer{background:#082c50;color:#d9e7f4;padding:48px 0 0}.demo-footer-grid{display:grid;grid-template-columns:1.3fr .85fr .85fr .9fr 1.2fr;gap:34px}.demo-footer h3{color:#fff;font-size:14px}.demo-footer a{display:block;color:#d9e7f4;margin:9px 0;font-size:13px}.footer-identity{display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:14px;align-items:start}.footer-identity .mairie-logo{width:58px;height:58px}.footer-identity-copy{min-width:0}.footer-identity strong,.footer-identity small{display:block}.footer-identity strong{color:#fff;margin-top:2px}.footer-identity small{margin-top:2px}.footer-contact{display:grid;gap:4px;margin-top:15px;font-size:12.5px;line-height:1.45}.demo-footer .footer-contact a{display:block;margin:0;color:#d9e7f4;overflow-wrap:anywhere}.footer-contact span{color:#d9e7f4}.footer-hours{display:grid;gap:10px;margin-top:12px}.footer-hours-row{display:grid;grid-template-columns:minmax(105px,1fr) auto;gap:12px;align-items:start;font-size:12.5px;line-height:1.45}.footer-hours-days{color:#d9e7f4}.footer-hours-time{color:#fff;font-weight:800;text-align:right;white-space:nowrap}.footer-hours-closed{color:#c3d2e1;font-weight:700;text-align:right;white-space:nowrap}.laposte-box{display:flex;gap:14px;border:1px solid rgba(255,255,255,.2);border-radius:15px;padding:18px}.laposte-badge{width:52px;height:52px;border-radius:50%;background:#ffd31c;color:#11466f;display:grid;place-items:center;font-size:28px;font-weight:900;flex:none}.laposte-box small,.laposte-box strong{display:block}.laposte-box p{font-size:12px;line-height:1.55}.demo-footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:34px;min-height:58px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.demo-footer-bottom a{display:inline;color:#fff;font-weight:800}
@media(max-width:1100px){.demo-top-contact span,.demo-top-actions>span{display:none}.demo-service-grid{grid-template-columns:repeat(3,1fr)}.demo-news-events{grid-template-columns:1fr}.demo-events{border-left:0;padding-left:0}.demo-commune-grid{grid-template-columns:1fr 1.25fr}.demo-commune blockquote{grid-column:1/-1}.demo-footer-grid{grid-template-columns:repeat(2,1fr)}.laposte-box{grid-column:1/-1}.weather-card{display:none}.hero-signature{display:none}}
@media(max-width:760px){.mairie-demo .site-wrap{width:min(100% - 30px,1420px)}.demo-topbar>.site-wrap{justify-content:flex-end}.demo-top-contact span,.demo-top-contact a:first-of-type{display:none}.demo-header .nav-shell{height:78px}.demo-brand{min-width:0}.demo-brand .mairie-logo{width:52px;height:52px}.demo-brand strong{font-size:21px}.demo-brand strong b{font-size:15px}.demo-brand small{display:none}.demo-hero{min-height:610px}.demo-hero-inner{min-height:610px;padding:50px 0;align-items:flex-end}.demo-hero-overlay{background:linear-gradient(0deg,rgba(245,250,255,.99) 0%,rgba(245,250,255,.94) 50%,rgba(245,250,255,.15) 100%)}.demo-hero h1{font-size:52px}.demo-hero-copy>p{font-size:17px}.demo-service-grid{grid-template-columns:repeat(2,1fr);gap:10px}.demo-service-grid>a{padding:19px 12px}.demo-news-grid{grid-template-columns:1fr}.demo-news-card{display:grid;grid-template-columns:130px 1fr}.demo-news-card img{height:100%;min-height:180px}.demo-commune-grid{grid-template-columns:1fr}.commune-photo{min-height:230px}.demo-contact>.site-wrap{grid-template-columns:1fr}.contact-tiles{grid-template-columns:1fr}.demo-footer-grid{grid-template-columns:1fr}.demo-footer-bottom{flex-direction:column;justify-content:center;gap:8px;padding:14px 0;text-align:center}}

/* === 2026-09-10: uniformisation du design Mairie de démonstration sur toutes les pages publiques === */
.demo-inner-page{background:#f7faff;color:#102c4f}.demo-inner-page .demo-header{position:sticky;top:0}.demo-inner-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#eef6ff 0%,#f9fbfe 52%,#e8f2fc 100%);border-bottom:1px solid #dce8f4}.demo-inner-hero:after{content:"";position:absolute;right:-90px;top:-110px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(23,105,224,.12),rgba(23,105,224,0) 68%)}.demo-inner-hero>.site-wrap{position:relative;z-index:1;padding:58px 0 52px}.demo-inner-hero h1{font-family:Georgia,serif;font-size:clamp(42px,5vw,68px);line-height:1;letter-spacing:-.035em;color:#0b2b55;margin:0 0 16px;max-width:900px}.demo-inner-hero p{font-size:18px;line-height:1.65;color:#536d88;max-width:820px;margin:0}.demo-inner-main>.section,.demo-inner-main .section{width:min(1180px,calc(100% - 40px));margin-left:auto;margin-right:auto}.demo-inner-main .inner-page{padding-top:52px;padding-bottom:76px}.demo-inner-main .inner-page>.eyebrow,.demo-inner-main .inner-page>h1,.demo-inner-main .inner-page>.lead{display:none}.demo-inner-main .rich-card,.demo-inner-main .card,.demo-inner-main .panel,.demo-inner-main .feature,.demo-inner-main article{border-radius:18px;border-color:#dce8f4;box-shadow:0 12px 32px rgba(20,62,105,.07)}.demo-inner-main .rich-card{background:#fff;padding:30px;line-height:1.75;color:#445f7a}.demo-inner-main .btn{border-radius:10px;font-weight:800}.demo-inner-main .btn:not(.alt):not(.ghost){background:#1769e0;border-color:#1769e0;color:#fff}.demo-inner-main .btn.alt{background:#fff;color:#0f3e76;border:2px solid #155fc8}.demo-inner-main h2,.demo-inner-main h3{color:#0b2b55}.demo-inner-page .footer-socials{grid-column:1/3;display:flex;gap:9px;margin-top:10px}.demo-inner-page .footer-socials a{width:34px;height:34px;margin:0;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid;place-items:center}.demo-inner-page .footer-socials svg{width:17px;height:17px}.demo-inner-page .mega-panel{top:100%}
@media(max-width:760px){.demo-inner-hero>.site-wrap{padding:40px 0 38px}.demo-inner-hero h1{font-size:42px}.demo-inner-hero p{font-size:16px}.demo-inner-main>.section,.demo-inner-main .section{width:min(100% - 30px,1180px)}.demo-inner-main .rich-card{padding:22px}.demo-inner-page .footer-socials{grid-column:auto}}

/* CODEX ADD 2026-09-10 — Calendrier mensuel agenda.php (nouveau bloc, ne modifie aucune règle existante) */
.cal-shell{margin:26px 0 40px}
.cal-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 24px 18px;box-shadow:0 12px 32px rgba(20,62,105,.07)}
.cal-head{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:14px}
.cal-head strong{font-family:Georgia,serif;font-size:20px;color:#0b2b55;min-width:190px;text-align:center}
.cal-nav{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);color:#12314c;text-decoration:none;font-size:18px;font-weight:800}
.cal-nav:hover{background:#f4f8fb}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.cal-grid-labels span{text-align:center;font-size:11px;font-weight:900;color:#8ea5b8;letter-spacing:.06em;text-transform:uppercase;padding-bottom:4px}
.cal-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;border-radius:12px;text-decoration:none;color:#3a4f63;background:#f7f9fc;border:1px solid transparent}
.cal-cell.empty{background:transparent}
.cal-cell b{font-size:14px;font-weight:800}
.cal-cell.is-today{border-color:#1769e0}
.cal-cell.has-events{background:#eaf3ff;color:#12314c;cursor:pointer;transition:.16s}
.cal-cell.has-events small{font-size:9px;font-weight:900;color:#1769e0}
.cal-cell.has-events:hover{background:#dbebff;transform:translateY(-2px)}
.cal-legend{margin:10px 2px 0;font-size:12.5px;color:#708397}
@media(max-width:640px){.cal-cell{min-height:44px}.cal-cell small{display:none}.cal-head strong{min-width:0;font-size:16px}}

/* CODEX ADD 2026-09-11 — Bande météo J+1..J+4 (Open-Meteo) sous le bloc du jour */
.weather-days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:14px;padding-top:13px;border-top:1px solid #e6eef6}
.weather-day{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.weather-day small{font-size:10px;color:#6c7e92;font-weight:800;text-transform:uppercase}
.weather-day span{font-size:18px}
.weather-day b{font-size:13px;color:#12314c}
.weather-day em{font-style:normal;font-size:11px;color:#8a9bad}

/* CODEX ADD 2026-09-11 — Porte d'entrée « compte requis » sur demarches.php */
.demarches-layout.single{display:block;max-width:720px;margin:0 auto}
.resident-gate{padding:36px}
.resident-gate h2{margin:8px 0 14px;font-size:26px;color:#12314c}
.resident-gate p{color:#5b7086;line-height:1.6}

/* CODEX ADD 2026-09-11 — Deux cases de communication distinctes (registre habitant) */
.check-inline{display:flex!important;align-items:center;gap:8px;font-weight:600;color:#3a4f63;margin-top:8px;font-size:13.5px}
.check-inline input{width:auto}

/* CODEX ADD 2026-09-11 — Réponses publiques à l'habitant (admin + espace habitant) */
.reply-note{background:#eef9f1;border:1px solid #cdeedb}
.reply-note b{color:#1c9d55}
.citizen-reply{background:#eef9f1;border:1px solid #cdeedb;border-radius:14px;padding:16px 18px;margin-bottom:12px}
.citizen-reply b{display:block;color:#1c9d55;margin-bottom:4px}
.citizen-reply small{color:#5b8a6c}
.citizen-reply p{margin:8px 0 0;color:#2c3e35;line-height:1.6}

/* CODEX ADD 2026-09-11 — Menu admin en accordéon (catégories cliquables) */
.side-group{margin:6px 0}
.side-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px;margin:5px 0 0;border:0;background:transparent;color:#8ea5b8;font-size:10px;letter-spacing:.12em;font-weight:900;text-transform:uppercase;cursor:pointer;border-radius:10px;font-family:inherit;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;outline:none}
.side-toggle:focus-visible{box-shadow:0 0 0 2px #ffffff40}
.side-toggle:hover{background:#ffffff16;color:#c6d6e2}
.side-toggle span{font-size:12px;opacity:.7;transition:transform .18s ease}
.side-group.open .side-toggle span{transform:rotate(180deg)}
.side-group.open .side-toggle{color:#c6d6e2}
.side-group-body{max-height:0;overflow:hidden;transition:max-height .22s ease}
.side-group.open .side-group-body{max-height:600px}

/* CODEX ADD 2026-09-11 — Date et heure sous le nom de la ville (météo) */
.weather-date{display:block;margin-top:-6px;margin-bottom:8px;color:#8a9bad;font-size:11.5px;text-transform:capitalize}

/* CODEX ADD 2026-09-11 — Page Horaires simplifiée (une ligne par jour) + aperçu */
.hours-preview{margin-bottom:18px}
.hours-preview-row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #eef2f6}
.hours-preview-row:last-child{border-bottom:0}
.hours-preview-row strong{color:#12314c}
.hours-preview-row span{color:#5b7086}
.hours-preview-row em{color:#9aa9b8;font-style:normal}
.hours-table td{vertical-align:middle}
.hours-table input[type=time]{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:13px}
.hours-table .hours-mode{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:13px}
.hours-row.is-closed strong{color:#9aa9b8}
.hours-row-continuous td{padding-top:0;border-top:0}

/* V13 - cookies, aide et permissions */
.cookie-banner{position:fixed;left:20px;right:20px;bottom:20px;z-index:1200;max-width:1180px;margin:auto;background:#fff;border:1px solid rgba(10,42,73,.15);box-shadow:0 18px 60px rgba(7,31,56,.24);border-radius:18px;padding:18px 20px;display:flex;align-items:center;gap:22px;justify-content:space-between}.cookie-banner[hidden],.cookie-modal[hidden]{display:none!important}.cookie-banner-copy{max-width:720px}.cookie-banner-copy strong{display:block;font-size:1.05rem;color:#0b3155;margin-bottom:4px}.cookie-banner-copy p{margin:0;color:#526477;font-size:.94rem;line-height:1.5}.cookie-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.cookie-actions .btn{white-space:nowrap}.cookie-modal{position:fixed;inset:0;z-index:1250;background:rgba(3,18,31,.58);display:grid;place-items:center;padding:20px}.cookie-modal-card{position:relative;width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.cookie-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:1.8rem;cursor:pointer;color:#526477}.cookie-option{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 0;border-top:1px solid #e9eef3}.cookie-option strong,.cookie-option small{display:block}.cookie-option small{margin-top:4px;color:#6b7885}.cookie-option input{width:20px;height:20px}.cookie-privacy-link{margin:16px 0 0}.footer-link-button{display:block;border:0;background:none;padding:0;margin:6px 0;color:inherit;font:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}.cookie-modal-open{overflow:hidden}.account small{display:block;opacity:.7;margin-top:2px}.permission-panel{margin:10px 0 20px}.permission-group{border:1px solid #dfe7ee;border-radius:14px;padding:12px 14px;margin:12px 0}.permission-group legend{font-weight:700;color:#123a63;padding:0 6px}.perm-check{display:flex;gap:9px;align-items:flex-start;padding:6px 0}.perm-check input{margin-top:3px}.request-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-top:8px}.user-permission-layout{align-items:start}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.help-card h2{margin-top:0}.help-card ul{padding-left:20px}.help-card li{margin:7px 0}.help-tip{border-left:4px solid #1b79b9;background:#eef7fd;padding:14px 16px;border-radius:10px}.compliance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.compliance-grid .span2{grid-column:1/-1}.security-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mfa-secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;background:#f3f6f8;border-radius:8px;padding:8px 10px}.accessibility-status{font-weight:700}
@media(max-width:800px){.cookie-banner{left:10px;right:10px;bottom:10px;align-items:stretch;flex-direction:column}.cookie-actions{justify-content:stretch}.cookie-actions .btn{flex:1}.help-grid,.compliance-grid,.request-category-grid{grid-template-columns:1fr}}

/* CODEX V15 — footer mairie compact + horaires alignés */
.demo-footer .footer-identity .footer-socials,.demo-inner-page .footer-identity .footer-socials{display:flex;gap:9px;margin-top:12px;grid-column:auto}.demo-footer .footer-identity .footer-socials a{width:34px;height:34px;margin:0;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid;place-items:center}.demo-footer .footer-identity .footer-socials svg{width:17px;height:17px}@media(max-width:760px){.footer-hours-row{grid-template-columns:minmax(120px,1fr) auto;max-width:340px}.footer-identity{grid-template-columns:52px minmax(0,1fr)}.footer-identity .mairie-logo{width:52px;height:52px}}


/* CODEX UPDATE 2026-09-11 — dépôt universel de pièces jointes pour les démarches. */
.upload-box{margin-top:8px;border:1.5px dashed #b9c9d8;border-radius:14px;padding:18px;background:#f8fbfd;display:grid;gap:7px;transition:border-color .18s ease,background .18s ease}.upload-box.is-dragover{border-color:#1769e0;background:#eef6ff}.upload-box input[type=file]{width:100%}.upload-box strong{color:#173a58;font-size:14px}.upload-box>small{color:#6f8396}.upload-list{display:grid;gap:8px;margin-top:10px}.upload-file,.staged-file{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #e0e8ef;border-radius:10px;background:#fff;color:#25445e}.upload-file button{border:0;background:#f5f7f9;color:#7f2630;border-radius:8px;padding:6px 9px;cursor:pointer}.staged-files{margin-top:14px;padding:14px;border-radius:12px;background:#f5f9fc;display:grid;gap:8px}.staged-files>strong{font-size:13px;color:#274761}.staged-file{font-size:13px}.staged-file small{color:#7890a2}@media(max-width:700px){.upload-file,.staged-file{align-items:flex-start;flex-direction:column}.upload-file button{align-self:flex-end}}

/* V18 — catégories de services et articles municipaux */
.service-category-page,.service-detail-page{padding-top:54px!important;padding-bottom:82px!important}
.service-category-head{max-width:820px;margin-bottom:30px}.service-category-head h2{font-family:Georgia,serif;font-size:clamp(34px,4vw,52px);margin:4px 0 12px;color:#0b2b55}.service-category-head p{font-size:17px;line-height:1.65;color:#60778f;margin:0}
.service-article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.service-article-card{display:flex;gap:15px;align-items:flex-start;min-height:190px;background:#fff;border:1px solid #dce8f4;border-radius:18px;padding:22px;color:#102c4f;text-decoration:none;box-shadow:0 12px 30px rgba(20,62,105,.07);transition:.2s}.service-article-card:hover{transform:translateY(-4px);border-color:#b9d3e6;box-shadow:0 18px 40px rgba(20,62,105,.12)}.service-card-icon{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;flex:none;background:#edf5ff;color:#1769e0;font-size:21px}.service-article-card h3{font-size:17px;line-height:1.3;margin:1px 0 8px}.service-article-card p{font-size:13px;line-height:1.55;color:#687d92;margin:0 0 12px}.service-article-card strong{font-size:12px;color:#1769e0}
.service-pagination{margin:34px auto 0;display:flex;align-items:center;justify-content:center;gap:8px}.service-pagination a,.service-pagination span,.service-pagination strong{min-width:40px;min-height:40px;padding:9px 12px;border:1px solid #d7e4ee;border-radius:10px;background:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:#153f67;font-weight:800}.service-pagination a.active{background:#1769e0;color:#fff;border-color:#1769e0}.service-pagination .disabled{opacity:.4}.mobile-pagination{display:none}
.service-back{display:inline-flex;margin-bottom:24px;color:#1769e0;font-weight:800;text-decoration:none}.service-detail-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.7fr);gap:24px;align-items:start}.service-main-card,.service-contact-card{background:#fff;border:1px solid #dce8f4;border-radius:20px;box-shadow:0 12px 32px rgba(20,62,105,.07)}.service-main-card{padding:30px}.service-card-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px}.service-admin-edit{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border:1px solid #d6e4f0;border-radius:50%;background:#f8fbff;color:#1769e0;text-decoration:none;box-shadow:0 5px 14px rgba(20,62,105,.08);transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.service-admin-edit:hover{background:#eaf3ff;border-color:#b9d3e6;transform:translateY(-1px);box-shadow:0 7px 18px rgba(20,62,105,.13)}.service-admin-edit:focus-visible{outline:3px solid rgba(23,105,224,.22);outline-offset:2px}.service-admin-edit svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.service-main-card h2{font-family:Georgia,serif;font-size:clamp(32px,4vw,48px);margin:6px 0 12px}.service-lead{font-size:18px;line-height:1.6;color:#5a728a}.service-copy{line-height:1.8;color:#405b75;margin-top:24px}.service-info-block{border-top:1px solid #e4edf4;margin-top:26px;padding-top:22px}.service-info-block h3{font-size:19px;margin:0 0 12px}.service-info-block p,.service-info-block li{color:#506b84;line-height:1.65}.service-contact-card{padding:24px;position:sticky;top:122px}.service-contact-card h3{font-size:21px;margin:0 0 14px}.service-contact-card strong,.service-contact-card a{display:block}.service-contact-card p{color:#5f758b;line-height:1.55}.service-contact-card>a:not(.btn){margin:8px 0;color:#1769e0;font-weight:750}.contact-badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eaf3ff;color:#1769e0;font-size:11px;font-weight:900;margin-bottom:14px}.contact-badge.external{background:#fff3de;color:#8a5c00}.contact-badge.info{background:#eef3f6;color:#52697e}.contact-note{border-top:1px solid #e6edf3;padding-top:15px;margin-top:16px;font-size:13px}.service-request-btn{margin-top:18px;text-align:center}.service-admin-categories a{font-weight:800;color:#1769e0;text-decoration:none}
@media(max-width:1050px){.service-article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-detail-layout{grid-template-columns:1fr}.service-contact-card{position:static}}
@media(max-width:700px){.service-category-page,.service-detail-page{padding-top:38px!important}.service-article-grid{grid-template-columns:1fr}.desktop-pagination{display:none}.mobile-pagination{display:flex}.mobile-pagination strong{min-width:130px}.service-main-card,.service-contact-card{padding:22px}.service-article-card{min-height:0}}


/* =========================================================
   V19 — Alignement global des pages publiques + cartes services
   Modification limitée à la cohérence d'alignement demandée.
   ========================================================= */
/* Le contenu des pages intérieures suit exactement le même axe que le header/hero/footer. */
.demo-inner-main>.section,
.demo-inner-main .section,
.demo-inner-main>.page,
.demo-inner-main .page{
  width:min(1440px,calc(100% - 96px));
  max-width:none;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
}

/* La catégorie n'affiche plus une seconde fois son titre et son introduction sous le hero. */
.service-category-head{
  max-width:none;
  margin:0 0 24px;
}
.service-category-head .demo-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.service-category-head .demo-eyebrow::before{
  content:"";
  width:30px;
  height:1px;
  background:#d5a843;
}

/* 2 colonnes sur PC et tablette, 1 colonne sur mobile. */
.service-article-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  width:100%;
}
.service-article-card{
  min-height:150px;
  height:100%;
  border-radius:16px;
  padding:20px 22px;
  gap:14px;
}
.service-card-icon{
  width:42px;
  height:42px;
  font-size:19px;
}
.service-article-card h3{
  font-size:17px;
  margin:0 0 7px;
}
.service-article-card p{
  margin:0 0 10px;
  line-height:1.5;
}

/* Les pages article utilisent la même largeur utile sans étirer exagérément le bloc de contact. */
.service-detail-layout{
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:26px;
}
.service-main-card{min-width:0}
.service-main-card .service-copy{max-width:920px}

@media(max-width:1120px){
  .demo-inner-main>.section,
  .demo-inner-main .section,
  .demo-inner-main>.page,
  .demo-inner-main .page{width:min(100% - 48px,1440px)}
  .service-article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-detail-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .demo-inner-main>.section,
  .demo-inner-main .section,
  .demo-inner-main>.page,
  .demo-inner-main .page{width:calc(100% - 32px)}
  .service-article-grid{grid-template-columns:1fr}
  .service-article-card{min-height:0}
}

/* V27 — Équipe municipale : suppression du bandeau redondant et espacement optimisé */
.municipal-team-page{padding-top:28px!important}
.municipal-team-page .municipal-team-head{margin-top:0}

/* V22 — Équipe municipale administrable */
.municipal-team-page .municipal-team-head{margin:0 0 24px}.municipal-team-head .eyebrow{color:#b18128;display:inline-flex;align-items:center;gap:10px;margin-bottom:12px}.municipal-team-head .eyebrow:before{content:"";width:30px;height:1px;background:#d5a843}.municipal-team-head h2{font-family:Georgia,serif;font-size:clamp(30px,3vw,44px);margin:0 0 10px;color:#0b2b55}.municipal-team-head p{margin:0;color:#60758b;max-width:820px;line-height:1.7}.municipal-team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:stretch}.municipal-person-card{overflow:hidden;background:#fff;border:1px solid #dfe7ee;border-radius:20px;box-shadow:0 16px 38px rgba(20,50,77,.08);display:flex;flex-direction:column;height:100%}.municipal-person-photo{aspect-ratio:1122/1402;background:#eaf2f8;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}.municipal-person-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;background:#eaf2f8}.municipal-person-photo.is-placeholder{flex-direction:column;background:linear-gradient(145deg,#e7f0f7,#f7fafc);color:#0d3455}.municipal-person-photo.is-placeholder span{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #d4e2ec;font-family:Georgia,serif;font-size:32px;font-weight:700}.municipal-person-photo.is-placeholder small{margin-top:12px;color:#71869a;font-weight:750}.municipal-person-body{padding:22px;display:flex;flex-direction:column;flex:1}.municipal-person-body>p + .municipal-person-meta{margin-top:auto}.municipal-person-group{display:inline-block;color:#b18128;font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:10px;margin-bottom:9px}.municipal-person-body h3{margin:0 0 5px;font-size:23px;color:#0b2b55}.municipal-person-body>strong{display:block;color:#1a5e8c;margin-bottom:13px}.municipal-person-body>p{color:#5e7185;line-height:1.6;margin:0 0 18px}.municipal-person-meta{border-top:1px solid #e8eef3;padding-top:11px;margin-top:11px}.municipal-person-meta b,.municipal-person-meta span{display:block}.municipal-person-meta b{font-size:12px;color:#0f3559;margin-bottom:4px}.municipal-person-meta span{font-size:13px;color:#65798e;line-height:1.45}.municipal-person-contact{display:flex;flex-direction:column;gap:5px;margin-top:14px}.municipal-person-contact a{font-size:13px;font-weight:750;color:#0d617e;overflow-wrap:anywhere}.team-photo-admin{display:flex;align-items:center;gap:16px;margin-top:10px}.team-photo-admin img{width:88px;height:88px;object-fit:cover;border-radius:14px;border:1px solid #dce6ed}.team-admin-person{display:flex;align-items:center;gap:10px}.team-admin-person img,.team-admin-person span{width:38px;height:38px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#eaf2f8;color:#0d3455;font-weight:900}.team-admin-person strong{white-space:nowrap}
@media(max-width:1050px){.municipal-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.municipal-team-grid{grid-template-columns:1fr}.municipal-person-photo{aspect-ratio:1122/1402}.municipal-team-page .municipal-team-head{margin-top:0}}

/* V28 — Conseil municipal : séances et délibérations administrables */
.council-page{padding-top:34px!important}.council-intro{max-width:900px;margin-bottom:34px}.council-intro .eyebrow,.council-section-head .eyebrow{color:#b18128;display:inline-flex;align-items:center;gap:10px;margin-bottom:10px}.council-intro .eyebrow:before,.council-section-head .eyebrow:before{content:"";width:30px;height:1px;background:#d5a843}.council-intro h2{font-family:Georgia,serif;font-size:clamp(32px,3.6vw,48px);margin:0 0 10px;color:#0b2b55}.council-intro p{margin:0;color:#60758b;font-size:17px;line-height:1.7}.council-section{margin-top:42px}.council-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.council-section-head h2{font-family:Georgia,serif;font-size:clamp(28px,3vw,40px);margin:0;color:#0b2b55}.council-count{font-size:12px;font-weight:900;color:#567088;background:#eaf2f8;border:1px solid #d8e5ef;border-radius:999px;padding:8px 11px;white-space:nowrap}.council-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.council-session-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;background:#fff;border:1px solid #dce8f4;border-radius:20px;padding:20px;box-shadow:0 14px 34px rgba(20,62,105,.07)}.council-date{border-radius:16px;background:#eef5fb;display:grid;place-items:center;align-content:center;min-height:116px;color:#0b2b55}.council-date strong{font-size:36px;line-height:1;font-family:Georgia,serif}.council-date span{font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.05em;margin-top:6px}.council-date small{font-size:11px;color:#6b8093;margin-top:3px}.council-session-content h3{font-size:20px;margin:8px 0;color:#0b2b55}.council-meta{font-size:13px;color:#516b82;font-weight:750;margin:0 0 10px}.council-agenda{font-size:14px;line-height:1.55;color:#60768b;margin:0}.council-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.council-links a{font-size:12px;font-weight:850;color:#1769e0;text-decoration:none}.council-status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.council-status.planned{background:#e9f4ff;color:#1769e0}.council-status.adopted{background:#e9f7ef;color:#237a49}.council-deliberation-list{display:grid;gap:12px}.council-deliberation-row{display:grid;grid-template-columns:165px minmax(0,1fr) auto;gap:22px;align-items:center;background:#fff;border:1px solid #dce8f4;border-radius:18px;padding:20px 22px;box-shadow:0 10px 26px rgba(20,62,105,.055)}.council-delib-ref strong,.council-delib-ref span{display:block}.council-delib-ref strong{color:#0b2b55;font-size:14px}.council-delib-ref span{font-size:12px;color:#6c8194;margin-top:5px}.council-delib-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.council-delib-main h3{font-size:18px;margin:0;color:#0b2b55}.council-delib-main p{font-size:14px;line-height:1.55;color:#60758a;margin:8px 0 0}.council-pdf{white-space:nowrap}
.council-admin-grid{display:grid;gap:24px}.council-admin-grid>.card{padding:22px}.council-admin-grid .card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.council-admin-grid .card-head h2{margin:2px 0 0}.council-admin-grid .admin-table small{display:block;color:#718197;margin-top:4px}.inline-check{display:block;margin-top:8px;font-size:12px;color:#667c90}
@media(max-width:900px){.council-session-grid{grid-template-columns:1fr}.council-deliberation-row{grid-template-columns:140px minmax(0,1fr)}.council-pdf{grid-column:2}.council-section-head{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.council-page{padding-top:26px!important}.council-session-card{grid-template-columns:74px minmax(0,1fr);padding:16px;gap:14px}.council-date{min-height:92px}.council-date strong{font-size:30px}.council-deliberation-row{grid-template-columns:1fr;gap:12px}.council-pdf{grid-column:auto}.council-admin-grid .card-head{align-items:flex-start;flex-direction:column}}

/* CODEX V29 — Participation citoyenne */
.participation-page{padding-top:34px!important}.participation-intro{max-width:900px;margin-bottom:34px}.participation-intro .eyebrow,.participation-section-head .eyebrow{color:#b18128;display:inline-flex;align-items:center;gap:10px;margin-bottom:10px}.participation-intro .eyebrow:before,.participation-section-head .eyebrow:before{content:"";width:30px;height:1px;background:#d5a843}.participation-intro h2{font-family:Georgia,serif;font-size:clamp(32px,3.5vw,48px);margin:0 0 10px;color:#0b2b55}.participation-intro p{margin:0;color:#60758b;font-size:17px;line-height:1.7}.participation-section{margin-top:42px}.participation-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.participation-section-head h2{font-family:Georgia,serif;font-size:clamp(28px,3vw,40px);margin:0;color:#0b2b55}.participation-count{font-size:12px;font-weight:900;color:#567088;background:#eaf2f8;border:1px solid #d8e5ef;border-radius:999px;padding:8px 11px}.participation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.participation-card{background:#fff;border:1px solid #dce8f4;border-radius:20px;padding:22px;box-shadow:0 14px 34px rgba(20,62,105,.07);display:flex;flex-direction:column;min-height:100%}.participation-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.participation-type{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#b18128}.participation-status{font-size:10px;font-weight:900;text-transform:uppercase;border-radius:999px;padding:5px 8px}.participation-status.open{background:#e9f7ef;color:#237a49}.participation-status.scheduled{background:#e9f4ff;color:#1769e0}.participation-card h3{font-size:21px;color:#0b2b55;margin:14px 0 8px}.participation-card>p{color:#60758b;line-height:1.6;margin:0 0 15px}.participation-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:#557086;font-weight:750;margin:2px 0 15px}.participation-question{background:#f7fafc;border:1px solid #e0eaf1;border-radius:14px;padding:13px 14px;margin:0 0 16px}.participation-question b,.participation-question span{display:block}.participation-question b{font-size:11px;color:#0b2b55;margin-bottom:4px}.participation-question span{font-size:13px;line-height:1.5;color:#61768b}.participation-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}.participation-idea{display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(135deg,#0e3559,#164e78);border-radius:22px;padding:28px 30px;color:#fff;box-shadow:0 16px 38px rgba(20,62,105,.12)}.participation-idea h3{font-size:23px;margin:0 0 7px}.participation-idea p{margin:0;max-width:760px;line-height:1.6;color:#dbe8f2}.participation-results{display:grid;gap:12px}.participation-results article{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border:1px solid #dce8f4;border-radius:18px;padding:20px 22px}.participation-results h3{margin:5px 0 6px;color:#0b2b55;font-size:18px}.participation-results p{margin:0;color:#60758b;line-height:1.55}.participation-page .service-page-actions{display:none}.admin-table td small{display:block;color:#718197;margin-top:4px;max-width:520px}
@media(max-width:900px){.participation-grid{grid-template-columns:1fr}.participation-section-head{align-items:flex-start;flex-direction:column}.participation-idea{align-items:flex-start;flex-direction:column}.participation-results article{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.participation-page{padding-top:26px!important}.participation-actions{display:grid}.participation-actions .btn{width:100%;justify-content:center}.participation-idea{padding:22px}.participation-idea .btn{width:100%;justify-content:center}}

/* V31 — liens et formulaires officiels des articles */
.service-resource-links{display:grid;gap:10px}.service-resource-links a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #dbe7f0;border-radius:13px;background:#f8fbfd;color:#153f67;text-decoration:none;font-weight:800;transition:.18s}.service-resource-links a:hover{border-color:#b9d3e6;background:#eef6fb;transform:translateY(-1px)}.service-resource-links a strong{font-size:12px;color:#1769e0;white-space:nowrap}.service-source-note{font-size:12px!important;color:#6d8194!important;margin:12px 0 0!important}
@media(max-width:700px){.service-resource-links a{align-items:flex-start;flex-direction:column;gap:5px}}

/* V32 - Documents & formulaires */
.documents-public-page{display:grid;gap:28px}.documents-head{display:flex;align-items:flex-start;gap:26px}.documents-head>.eyebrow{flex:0 0 auto;color:#b18128;font-weight:900;letter-spacing:.16em;font-size:12px;display:flex;align-items:center;gap:10px;margin-top:11px}.documents-head>.eyebrow:before{content:"";width:30px;height:1px;background:#d5a843}.documents-head h2{font-family:Georgia,serif;font-size:clamp(34px,4vw,48px);line-height:1.05;margin:0 0 8px;color:#0b2b55}.documents-head p{margin:0;color:#5a7189;line-height:1.6}.documents-filter{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr) auto auto;gap:12px;align-items:end;background:#fff;border:1px solid #dce8f4;border-radius:18px;padding:18px;box-shadow:0 12px 32px rgba(20,62,105,.06)}.documents-filter label{display:grid;gap:7px;font-weight:800;color:#173b62}.documents-filter label span{font-size:12px}.documents-filter input,.documents-filter select{width:100%;padding:12px 14px;border:1px solid #cfdce8;border-radius:10px;background:#fff;font:inherit;color:#163657}.documents-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.document-card{display:flex;flex-direction:column;align-items:stretch;min-height:260px;padding:24px;background:#fff}.document-card-top{display:flex;gap:14px;align-items:flex-start}.document-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:14px;background:#eef5ff;color:#1769e0;font-size:12px;font-weight:950;letter-spacing:.04em}.document-card small{display:block;color:#6a7f95;font-weight:800;margin-bottom:5px}.document-card h3{font-size:22px;margin:0;line-height:1.2}.document-card p{color:#5b7188;line-height:1.6;flex:1}.document-ref{font-size:12px;font-weight:900;color:#48647f;margin:2px 0 14px}.document-card .btn{align-self:flex-start}.document-unavailable{font-size:13px;color:#6c7f92;font-weight:800}.documents-note{margin:0;padding:16px 18px;border-left:3px solid #d5a843;background:#fff9ed;color:#5f5a4e;border-radius:8px}.documents-empty{margin:0}.demo-inner-page .documents-public-page article{border:1px solid #dce8f4;box-shadow:0 12px 32px rgba(20,62,105,.07);border-radius:18px}
@media(max-width:900px){.documents-filter{grid-template-columns:1fr 1fr}.documents-filter .btn{width:100%}.documents-grid{grid-template-columns:1fr}.documents-head{display:grid;gap:12px}.documents-head>.eyebrow{margin-top:0}}
@media(max-width:620px){.documents-filter{grid-template-columns:1fr}.document-card{min-height:0;padding:20px}}


/* CODEX V33 — Sous-catégories admin plus compactes */
.side-group-body a{font-size:12px;line-height:1.35;font-weight:500;padding:8px 11px;margin:2px 0}
.side-group-body a.active{font-weight:650}

/* CODEX V34 — Page Accessibilité optimisée */
.accessibility-page{padding-top:38px!important;padding-bottom:54px!important;display:grid;gap:22px}.accessibility-summary{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:center;background:#fff;border:1px solid #dce8f4;border-radius:22px;padding:28px 30px;box-shadow:0 14px 34px rgba(20,62,105,.07)}.accessibility-kicker{display:inline-block;color:#b18128;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}.accessibility-summary h2,.accessibility-tech h2,.accessibility-recourse h2{font-family:Georgia,serif;color:#0b2b55;margin:0}.accessibility-summary h2{font-size:clamp(28px,3vw,38px);margin-bottom:10px}.accessibility-summary p,.accessibility-tech-head p,.accessibility-recourse p{color:#5f758a;line-height:1.7;margin:0}.accessibility-status-box{background:#f4f8fc;border:1px solid #dbe7f0;border-radius:18px;padding:20px;display:grid;gap:9px;justify-items:start}.accessibility-status-label{font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#60768c}.accessibility-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:900}.accessibility-status-pill.non{background:#fff0ef;color:#b33b32;border:1px solid #f2cbc7}.accessibility-status-pill.partial{background:#fff7e6;color:#8a6418;border:1px solid #edd9a7}.accessibility-status-pill.total{background:#eaf7ef;color:#237a49;border:1px solid #c9e7d4}.accessibility-score{font-size:12px;color:#587087;font-weight:750}.accessibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.accessibility-card{position:relative;background:#fff;border:1px solid #dce8f4;border-radius:20px;padding:26px 26px 24px;box-shadow:0 12px 30px rgba(20,62,105,.06);min-width:0}.accessibility-card-icon{width:42px;height:42px;border-radius:13px;background:#eef5ff;color:#1769e0;display:grid;place-items:center;font-size:19px;font-weight:900;margin-bottom:16px}.accessibility-card h2{font-size:22px;color:#0b2b55;margin:0 0 11px}.accessibility-card p{color:#5f758a;line-height:1.65;margin:0 0 12px}.accessibility-card p:last-child{margin-bottom:0}.accessibility-list{margin:0;padding-left:20px;color:#5f758a;display:grid;gap:9px;line-height:1.55}.accessibility-list li::marker{color:#1769e0}.accessibility-note{display:grid;gap:5px;margin-top:14px;padding:14px 15px;border-radius:13px;background:#fff8e9;border-left:3px solid #d5a843;color:#596d80}.accessibility-note strong{font-size:12px;color:#765b24;text-transform:uppercase;letter-spacing:.04em}.accessibility-note span{font-size:14px;line-height:1.55}.accessibility-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:15px}.accessibility-links a{font-size:13px;font-weight:850;color:#1769e0;text-decoration:none}.accessibility-contact-card .btn{margin-top:5px;align-self:flex-start}.accessibility-contact-card small{display:block;margin-top:9px;color:#6b8094}.accessibility-tech{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:32px;background:linear-gradient(135deg,#0e3559,#174f78);border-radius:22px;padding:30px;color:#fff;box-shadow:0 16px 38px rgba(20,62,105,.12)}.accessibility-tech .accessibility-kicker{color:#f1c862}.accessibility-tech h2{color:#fff;font-size:clamp(28px,3vw,38px);margin-bottom:9px}.accessibility-tech-head p{color:#dbe8f2}.accessibility-tech-list{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.accessibility-tech-list div{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:15px;padding:15px 16px;min-width:0}.accessibility-tech-list dt{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#c9dae8;margin-bottom:6px}.accessibility-tech-list dd{margin:0;font-weight:800;line-height:1.45}.accessibility-tech-list a{color:#fff;text-decoration:underline;text-underline-offset:3px}.accessibility-recourse{background:#fff;border:1px solid #dce8f4;border-radius:20px;padding:24px 26px}.accessibility-recourse h2{font-size:24px;margin-bottom:8px}.accessibility-update{margin-top:12px!important;font-size:13px}.accessibility-page a:focus-visible{outline:3px solid #f1bf45;outline-offset:3px;border-radius:5px}
@media(max-width:900px){.accessibility-summary{grid-template-columns:1fr}.accessibility-status-box{grid-template-columns:auto 1fr;align-items:center;justify-items:start}.accessibility-status-label{grid-column:1/-1}.accessibility-grid{grid-template-columns:1fr}.accessibility-tech{grid-template-columns:1fr}.accessibility-tech-list{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.accessibility-page{padding-top:26px!important;padding-bottom:38px!important}.accessibility-summary,.accessibility-card,.accessibility-tech,.accessibility-recourse{padding:20px}.accessibility-status-box{grid-template-columns:1fr}.accessibility-tech-list{grid-template-columns:1fr}.accessibility-contact-card .btn{width:100%;justify-content:center;text-align:center}}

/* CODEX V35 — Uniformisation 2 colonnes, espace citoyen et partenaires publics */
.service-article-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.service-article-card{min-height:156px}
.council-page>.council-section:first-of-type,.participation-page>.participation-section:first-of-type{margin-top:0}
.documents-public-page{gap:18px;padding-top:34px!important}

.citizen-login-page{padding-top:44px!important;padding-bottom:64px!important}
.citizen-login-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:22px;max-width:1120px;margin:0 auto;align-items:stretch}
.citizen-login-layout>.card{margin:0;max-width:none;min-width:0}
.citizen-login-benefits{padding:36px;background:linear-gradient(145deg,#0d355b,#174f78);color:#fff;display:flex;flex-direction:column}
.citizen-login-benefits .eyebrow{color:#f1c35a}
.citizen-login-benefits h2{font-size:30px;line-height:1.15;margin:10px 0 12px;color:#fff}
.citizen-login-benefits>p{margin:0;color:#d8e6f2;line-height:1.65}
.citizen-login-benefits ul{list-style:none;padding:0;margin:24px 0;display:grid;gap:12px}
.citizen-login-benefits li{position:relative;padding-left:28px;line-height:1.45;color:#f4f8fb;font-weight:700}
.citizen-login-benefits li:before{content:'✓';position:absolute;left:0;top:-1px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.13);color:#f3c75d;font-size:12px;font-weight:950}
.citizen-login-create{margin-top:auto;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:12px}
.citizen-login-create strong{font-size:14px}
.citizen-login-create .btn{background:#fff;color:#123b61;text-align:center;justify-content:center}
.auth-links-login{justify-content:flex-start}
.pw-eye{right:9px!important;top:50%!important;transform:translateY(-50%)!important;width:40px!important;height:40px!important;padding:0!important;display:grid!important;place-items:center!important;line-height:0!important;background:#f0f4f8!important;border-radius:10px!important;color:#0b2b55!important}
.pw-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}
.pw-eye:hover,.pw-eye:focus-visible{background:#e3edf6!important}
.pw-eye.is-visible{background:#e3edf6!important}

.public-partner-box{align-items:flex-start;margin-bottom:12px}
.public-partner-box.no-logo{display:block}
.public-partner-logo{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;flex:0 0 52px;background:#fff;color:#123b61;font-weight:950;font-size:14px;letter-spacing:-.02em;box-shadow:inset 0 0 0 1px rgba(12,46,80,.12)}
.public-partner-logo svg{width:38px;height:38px;display:block}
.public-partner-logo--laposte{border-radius:50%;background:#ffd51f;color:#16466e}
.public-partner-logo--france-services{background:#fff;color:#0b4ca3;border-bottom:5px solid #e52b3c}
.public-partner-logo--caf{background:#0a7aba;color:#fff;font-size:13px}
.public-partner-logo--ameli{background:#0068a8;color:#fff;font-size:11px}
.public-partner-logo--france-travail{background:#fff;color:#3436b7;border:2px solid #63c6b5}
.public-partner-logo--finances{background:#fff;color:#0b5278;font-size:10px}
.public-partner-logo--prefecture{background:linear-gradient(90deg,#153f8f 0 33%,#fff 33% 66%,#ed2939 66%);color:#101b2a}
.public-partner-logo--service-public{background:#1a2d5f;color:#fff}
.partner-logo-auto{margin:2px 0 8px;padding:14px 16px;border:1px solid #dbe5ed;border-radius:14px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:18px}
.partner-logo-auto strong,.partner-logo-auto small{display:block}.partner-logo-auto small{margin-top:4px;color:#6b7e90;max-width:620px;line-height:1.45}
.partner-logo-preview{min-width:150px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.partner-logo-empty{font-size:12px;color:#7a8b9b;font-weight:700;white-space:nowrap}
.partner-admin-service{display:flex;align-items:center;gap:12px}.partner-admin-service .public-partner-logo{width:38px;height:38px;flex-basis:38px;border-radius:10px;font-size:10px}.partner-admin-service .public-partner-logo svg{width:28px;height:28px}.partner-admin-service>div{min-width:0}

@media(max-width:900px){
  .citizen-login-layout{grid-template-columns:1fr}.citizen-login-benefits{min-height:0}
  .partner-logo-auto{align-items:flex-start;flex-direction:column}.partner-logo-preview{justify-content:flex-start;min-width:0}
}
@media(max-width:700px){.service-article-grid{grid-template-columns:1fr}}
@media(max-width:620px){.citizen-login-page{padding-top:28px!important;padding-bottom:42px!important}.citizen-login-benefits{padding:24px}.citizen-login-benefits h2{font-size:25px}}

/* V35 — rendu différé des sections sous la ligne de flottaison */
.demo-news,.demo-commune,.demo-contact,.demo-footer{content-visibility:auto;contain-intrinsic-size:1px 700px}

/* V35 — Mentions légales structurées */
.legal-page{padding-top:38px!important;padding-bottom:56px!important;display:grid;gap:20px}.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.legal-card,.legal-links-card{background:#fff;border:1px solid #dce8f4;border-radius:20px;box-shadow:0 12px 30px rgba(20,62,105,.06)}.legal-card{padding:26px}.legal-kicker{display:inline-block;color:#b18128;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px}.legal-card h2,.legal-links-card h2{font-family:Georgia,serif;color:#0b2b55;margin:0 0 14px}.legal-card h2{font-size:26px}.legal-card p,.legal-links-card p{color:#5f758a;line-height:1.7;margin:0}.legal-card dl{margin:0;display:grid;gap:12px}.legal-card dl div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;padding-top:12px;border-top:1px solid #e7eef4}.legal-card dl div:first-child{padding-top:0;border-top:0}.legal-card dt{font-size:12px;font-weight:900;color:#49667f}.legal-card dd{margin:0;color:#213f5d;line-height:1.55}.legal-card a{color:#1769e0;font-weight:800}.legal-card-tech{background:linear-gradient(145deg,#f8fbfe,#fff)}.legal-note{margin-top:18px!important;padding:13px 14px;border-left:3px solid #d5a843;background:#fff9ed;border-radius:8px;font-size:13px}.legal-links-card{padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:28px}.legal-links-card>div:first-child{max-width:700px}.legal-links-card h2{font-size:25px;margin-bottom:7px}.legal-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.legal-links .btn{white-space:nowrap}
@media(max-width:900px){.legal-grid{grid-template-columns:1fr}.legal-links-card{align-items:flex-start;flex-direction:column}.legal-links{justify-content:flex-start}}
@media(max-width:620px){.legal-page{padding-top:26px!important}.legal-card,.legal-links-card{padding:20px}.legal-card dl div{grid-template-columns:1fr;gap:4px}.legal-links{display:grid;width:100%}.legal-links .btn{width:100%;text-align:center;justify-content:center}}

/* CODEX V35 — Politique de confidentialité structurée */
.privacy-page{padding-top:38px!important;padding-bottom:58px!important;display:grid;gap:20px}.privacy-summary{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:24px;align-items:stretch;background:#fff;border:1px solid #dce8f4;border-radius:22px;padding:28px;box-shadow:0 14px 34px rgba(20,62,105,.06)}.privacy-kicker{display:inline-block;color:#b18128;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px}.privacy-summary h2,.privacy-security h2{font-family:Georgia,serif;color:#0b2b55;margin:0 0 10px}.privacy-summary h2{font-size:clamp(28px,3vw,38px)}.privacy-summary p,.privacy-card p,.privacy-security p{color:#5f758a;line-height:1.7;margin:0}.privacy-controller{border-radius:18px;background:linear-gradient(145deg,#0d355b,#174f78);color:#fff;padding:22px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0}.privacy-controller span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:#c7d9e8}.privacy-controller strong{font-size:20px;line-height:1.25;margin:8px 0 5px}.privacy-controller a{color:#fff;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.privacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.privacy-card{position:relative;background:#fff;border:1px solid #dce8f4;border-radius:20px;padding:26px;box-shadow:0 12px 30px rgba(20,62,105,.055);min-width:0}.privacy-card-num{position:absolute;right:22px;top:19px;color:#9cafbf;font-size:11px;font-weight:900;letter-spacing:.12em}.privacy-card h2{font-size:23px;color:#0b2b55;margin:0 42px 12px 0}.privacy-card p+p{margin-top:11px}.privacy-card a{color:#1769e0;font-weight:800}.privacy-list{margin:0;padding-left:20px;display:grid;gap:9px;color:#5f758a;line-height:1.55}.privacy-list li::marker{color:#1769e0}.privacy-retention{margin:0;display:grid;gap:0}.privacy-retention div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:10px 0;border-top:1px solid #e7eef4}.privacy-retention div:first-child{border-top:0;padding-top:0}.privacy-retention dt{color:#526a80;font-weight:750}.privacy-retention dd{margin:0;color:#173d61;font-weight:900;text-align:right}.privacy-note{margin-top:15px!important;padding:13px 14px;border-left:3px solid #d5a843;background:#fff9ed;border-radius:9px;font-size:13px}.privacy-cookie-button{margin-top:18px}.privacy-security{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;background:linear-gradient(135deg,#0e3559,#174f78);border-radius:22px;padding:28px;color:#fff;box-shadow:0 16px 38px rgba(20,62,105,.12)}.privacy-security>div{padding:3px 6px}.privacy-security .privacy-kicker{color:#f1c862}.privacy-security h2{color:#fff;font-size:26px}.privacy-security p{color:#dbe8f2}.privacy-demo-note{padding:16px 18px;border-radius:14px;background:#fff8e9;border:1px solid #efddb0;color:#5b4b29;line-height:1.55}.privacy-page a:focus-visible,.privacy-page button:focus-visible{outline:3px solid #f1bf45;outline-offset:3px}
@media(max-width:900px){.privacy-summary,.privacy-grid,.privacy-security{grid-template-columns:1fr}.privacy-controller{min-height:160px}}
@media(max-width:620px){.privacy-page{padding-top:26px!important;padding-bottom:40px!important}.privacy-summary,.privacy-card,.privacy-security{padding:20px}.privacy-retention div{grid-template-columns:1fr;gap:3px}.privacy-retention dd{text-align:left}.privacy-cookie-button{width:100%;text-align:center;justify-content:center}}
.legal-card dd small{display:block;margin-top:5px;color:#6b8094;line-height:1.5;font-size:12px}.legal-card dd strong{color:#173d61}

/* V36 - Centre d’aide & support SitePrime */
.help-start-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;align-items:stretch}
.help-contact-card{display:flex;flex-direction:column;gap:7px;justify-content:center}.help-contact-card strong{font-size:1.05rem}.help-contact-card span{color:#607287;line-height:1.5}.help-contact-card a{font-weight:750;margin-top:4px}
.help-search-box{margin-top:20px;max-width:720px}.help-search-box label{display:block;font-weight:800;margin-bottom:7px}.help-search-box input{width:100%;min-height:48px}.help-search-box small{display:block;min-height:20px;margin-top:6px;color:#66798b}
.help-card-meta{display:inline-flex;font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#1f65a6;background:#edf5fc;border-radius:999px;padding:5px 9px;margin-bottom:8px}.help-card[hidden],.help-faq-list details[hidden]{display:none!important}
.help-faq{margin-top:34px}.help-faq-list{display:grid;gap:10px;max-width:1000px}.help-faq-list details{background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:0 18px;box-shadow:0 10px 26px rgba(20,50,80,.05)}.help-faq-list summary{cursor:pointer;font-weight:800;padding:16px 4px}.help-faq-list details p{margin:0;padding:0 4px 17px;color:#586d82;line-height:1.6}
.support-notice{border-left:4px solid #e6ad34;background:#fff8e8;padding:14px 16px;border-radius:10px;margin-bottom:20px}.support-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:20px;align-items:start}.support-form-card h2,.support-side h2{margin-top:0}.support-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.support-form label{display:flex;flex-direction:column;gap:7px;font-weight:750}.support-form label small{font-weight:500;color:#6a7b8d}.support-form .span2{grid-column:1/-1}.support-form input,.support-form select,.support-form textarea{width:100%;box-sizing:border-box}.support-form textarea{resize:vertical;min-height:110px}.support-form input[readonly]{background:#f1f5f9;color:#506579}.support-tech-note{font-size:.88rem;color:#607287;background:#f5f8fb;border-radius:10px;padding:11px 12px}.support-side{display:grid;gap:18px}.support-steps{padding-left:20px;margin-bottom:0}.support-steps li{margin:9px 0;line-height:1.5}.support-history{display:grid;gap:10px}.support-history>div{border-top:1px solid #e5ebf1;padding-top:10px}.support-history strong,.support-history span,.support-history small{display:block}.support-history span{margin-top:3px}.support-history small{margin-top:4px;color:#6d7e8f}
@media(max-width:900px){.help-start-grid,.support-layout{grid-template-columns:1fr}.support-form{grid-template-columns:1fr}.support-form .span2{grid-column:auto}}

/* V38 — formulaires admin pleine largeur + gestion d’images intégrée */
.admin-form{max-width:none;width:100%}
.admin-form.card{padding:26px 28px}
.main{min-width:0}
.btn.danger{background:#a92f2f;color:#fff;border:0;cursor:pointer}
.btn.danger-soft{background:#fff0f0;color:#9d2828;border:1px solid #efcaca;cursor:pointer}
.media-editor{margin-top:8px;padding-top:4px}
.media-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.media-editor-head label{font-size:16px;margin:0 0 4px}
.media-editor-head small{margin:0}
.media-usage-badge{flex:0 0 auto;background:#edf4fb;color:#315b7d;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}
.media-current{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:20px;align-items:center;padding:16px;border:1px solid #dce4ed;border-radius:16px;background:#f8fafc}
.media-current-preview{min-height:190px;border-radius:13px;background:#eef3f8;display:grid;place-items:center;overflow:hidden;color:#718197;font-weight:700;text-align:center}
.media-current-preview img{width:100%;height:220px;object-fit:cover;display:block}
.media-current-actions{display:flex;flex-wrap:wrap;gap:10px;align-content:center}
.media-upload-btn{position:relative;cursor:pointer}
.media-upload-btn input{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.media-alt-field{margin-top:16px}
.media-modal,.media-remove-modal{position:fixed;inset:0;z-index:500;background:#071b30b8;display:grid;place-items:center;padding:24px}
.media-modal[hidden],.media-remove-modal[hidden]{display:none!important}
.media-modal-panel{width:min(1180px,96vw);max-height:88vh;overflow:auto;background:#f7f9fc;border-radius:22px;padding:24px;box-shadow:0 28px 80px #06152655}
.media-modal-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}
.media-modal-head h2{margin:5px 0 6px;font-size:30px}.media-modal-head p{margin:0;color:#617087}
.media-modal-close{border:0;background:#e9eef4;color:#17314d;width:42px;height:42px;border-radius:50%;font-size:28px;cursor:pointer}
.media-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px}.media-toolbar>input{flex:1;padding:13px 14px;border:1px solid #cfd8e3;border-radius:11px;font:inherit}
.media-filter{display:flex;gap:6px;flex-wrap:wrap}.media-filter button{border:1px solid #d5dee8;background:#fff;border-radius:999px;padding:9px 12px;font-weight:750;cursor:pointer}.media-filter button.is-active{background:#0c2748;color:#fff;border-color:#0c2748}
.media-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.media-picker-card{background:#fff;border:1px solid #e0e6ed;border-radius:16px;overflow:hidden;min-width:0}.media-thumb{display:block;width:100%;padding:0;border:0;background:#eef3f8;cursor:pointer;text-align:left}.media-thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.media-thumb span{display:block;padding:9px 11px;font-weight:800;color:#145f84;background:#fff}
.media-picker-meta{padding:0 11px 12px}.media-picker-meta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.media-picker-meta small{display:block;margin:4px 0 8px;color:#718197}.media-delete-unused{border:0;background:none;padding:0;color:#a73939;font-weight:750;cursor:pointer}
.media-picker-empty{grid-column:1/-1;text-align:center;padding:40px;color:#718197;background:#fff;border-radius:16px;border:1px dashed #cfd8e3}
.media-remove-panel{width:min(520px,94vw);background:#fff;border-radius:20px;padding:26px;box-shadow:0 28px 80px #06152655}.media-remove-panel h2{margin:0 0 8px}.media-remove-panel .full{display:block;width:100%;margin:10px 0;text-align:center}.media-remove-panel>small{display:block;color:#718197;line-height:1.55;margin-top:12px}.media-cancel{margin-top:16px}
.public-content-image{display:block;width:100%;max-height:520px;object-fit:cover;border-radius:18px;margin:18px 0 24px}
.event-row.has-image{grid-template-columns:92px 180px 1fr}.event-row-image{width:180px;height:120px;object-fit:cover;border-radius:14px}
.directory-card-image{width:calc(100% + 48px);height:170px;object-fit:cover;margin:-24px -24px 18px;border-radius:20px 20px 0 0}
.participation-card-image{width:calc(100% + 40px);height:210px;object-fit:cover;margin:-20px -20px 18px;border-radius:18px 18px 0 0}
@media(max-width:1100px){.media-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.media-current{grid-template-columns:1fr}.media-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-toolbar{align-items:stretch;flex-direction:column}.event-row.has-image{grid-template-columns:70px 1fr}.event-row.has-image .event-row-image{grid-column:2;width:100%;height:180px}}
@media(max-width:560px){.admin-form.card{padding:20px 16px}.media-picker-grid{grid-template-columns:1fr}.media-modal{padding:10px}.media-modal-panel{padding:16px}.media-current-preview img{height:190px}}

/* V38 — assistance SitePrime plus humaine */
.support-page-head{margin-bottom:18px}.support-page-head h1{max-width:850px}
.support-welcome{display:flex;gap:16px;align-items:center;background:linear-gradient(135deg,#eaf3fb,#fff9eb);border:1px solid #dbe6f0;border-radius:18px;padding:18px 20px;margin-bottom:20px;box-shadow:0 10px 28px #10213a0a}.support-welcome-icon{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:16px;background:#0c2748;color:#fff;font-weight:900;letter-spacing:.04em}.support-welcome strong,.support-welcome span{display:block}.support-welcome strong{font-size:18px;color:#0c2748;margin-bottom:4px}.support-welcome span{color:#607287;line-height:1.55}
.support-form-card{padding:28px}.support-form-title{padding:0 0 18px;border-bottom:1px solid #e8edf3;margin-bottom:18px}.support-form-title>span{display:inline-block;color:#a96f00;font-weight:850;text-transform:uppercase;letter-spacing:.1em;font-size:11px}.support-form-title h2{font-size:28px;margin:5px 0 6px}.support-form-title p{margin:0;color:#66788d;line-height:1.55}
.support-form label{font-size:14px}.support-form input,.support-form select,.support-form textarea{padding:13px 14px;border:1px solid #ccd7e3;border-radius:11px;background:#fff;font:inherit}.support-form input:focus,.support-form select:focus,.support-form textarea:focus{outline:3px solid #1a7fa622;border-color:#1a7fa6}
.support-tech-note{display:flex;gap:5px;flex-direction:column;border-left:4px solid #2f86a5;background:#f1f8fb}.support-tech-note strong{color:#123957}.support-submit{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.support-submit small{color:#6d7e8f}
.support-next{background:linear-gradient(180deg,#fff,#f8fbfd)}.support-step{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:12px 0;border-top:1px solid #e7edf3}.support-step:first-of-type{border-top:0}.support-step>b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#0c2748;color:#fff}.support-step span,.support-step strong{display:block}.support-step span{color:#64758a;line-height:1.45}.support-step strong{color:#132238;margin-bottom:2px}.support-step em{font-style:normal;font-weight:750;color:#234c6e}
.support-empty{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:14px;background:#f3f8f6;color:#557165}.support-empty>b{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#dff1e7;color:#1f7546}.support-empty span,.support-empty strong{display:block}.support-empty strong{color:#244f3a;margin-bottom:3px}

/* V39 - informations légales éditables */
.legal-admin-form{max-width:none;width:100%;padding:28px}.legal-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.legal-admin-grid .field{margin:0}.legal-admin-grid textarea{min-height:118px}.legal-admin-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px;padding-top:20px;border-top:1px solid #e6edf3}.legal-admin-note{margin-top:18px}.legal-admin-note strong{display:block;margin-bottom:6px}.legal-admin-note p{margin:0;color:#63768b;line-height:1.6}
@media(max-width:1000px){.legal-admin-grid{grid-template-columns:1fr}.legal-admin-grid .span2{grid-column:auto}}
@media(max-width:600px){.legal-admin-form{padding:20px 16px}}

/* V41 - messages d’état e-mail */
.flash.warning{background:#fff7df;color:#805d00;border:1px solid #f1d58a}

/* =========================================================
   CODEX UPDATE 2026-09-13 — Navigation mobile hiérarchique
   Uniquement l'expérience du MegaMenu sous 1120 px.
   Desktop et contenus existants conservés.
   ========================================================= */
.public-site .mega-service-branch{min-width:0}
.public-site .mega-service-toggle,
.public-site .mega-service-articles,
.public-site .nav-search-mobile{display:none}
.public-site .nav-search-desktop{display:inline}

@media(max-width:1120px){
  body.public-site.mobile-menu-open{overflow:hidden}
  .public-site .public-menu-btn{min-width:104px;min-height:46px;padding:10px 15px;border-radius:13px;font-size:15px;transition:background .18s ease,border-color .18s ease,color .18s ease}
  .public-site .public-menu-btn[aria-expanded="true"]{background:#0c3459;border-color:#0c3459;color:#fff}

  .public-site .mega-main-nav.open{
    display:flex;
    position:fixed!important;
    left:0!important;right:0!important;
    top:var(--sp-mobile-nav-top,78px)!important;
    bottom:0!important;
    width:100vw!important;
    height:auto!important;
    transform:none!important;
    z-index:9999!important;
    background:#fff;
    border:0;
    border-top:1px solid #e2e9ef;
    border-radius:0;
    flex-direction:column;
    align-items:stretch;
    padding:12px 22px max(28px,env(safe-area-inset-bottom));
    box-shadow:0 26px 55px rgba(8,35,63,.22);
    max-height:none!important;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }

  .public-site .mega-main-nav .nav-search{order:-1;display:flex!important;align-items:center;justify-content:center;min-height:48px;margin:0 0 10px!important;padding:12px 16px!important;border:1px solid #cedbe5;border-radius:13px;background:#f7fafc;color:#163d60;font-weight:850;text-align:center}
  .public-site .nav-search-desktop{display:none}
  .public-site .nav-search-mobile{display:inline}

  .public-site .mega-item{border-bottom:1px solid #e9eef3}
  .public-site .mega-item:last-of-type{border-bottom:0}
  .public-site .mega-trigger{min-height:60px!important;padding:0 4px!important;border:0!important;font-size:16px!important;font-weight:850;letter-spacing:-.01em}
  .public-site .mega-trigger span{width:28px;height:28px;display:grid!important;place-items:center;border-radius:50%;background:#f2f6f9;font-size:14px!important;opacity:1!important;color:#5d7488;transition:transform .18s ease,background .18s ease}
  .public-site .mega-item.open>.mega-trigger{color:#0e5f8d}
  .public-site .mega-item.open>.mega-trigger span{background:#e7f2f8;color:#0e5f8d;transform:rotate(180deg)}
  .public-site .mega-item.is-current>.mega-trigger{color:#0e5f8d}

  .public-site .mega-panel{position:static!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;overflow:visible!important}
  .public-site .mega-panel-inner{display:block!important;width:100%!important;padding:0 0 14px!important;max-height:none!important;overflow:visible!important}
  .public-site .mega-intro{display:none!important}
  .public-site .mega-links{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding:0 0 4px!important}

  .public-site .mega-links>.mega-page-link{min-height:0!important;padding:13px 14px!important;border:1px solid #e1e9ef!important;border-radius:12px!important;background:#f8fafc!important;box-shadow:none!important;transform:none!important}
  .public-site .mega-links>.mega-page-link strong{font-size:14px}
  .public-site .mega-links>.mega-page-link small{display:block;margin-top:3px;color:#7c8d9c;font-size:11px}
  .public-site .mega-links>.mega-page-link span{display:block;margin-top:4px;color:#718397;font-size:11.5px;line-height:1.4}
  .public-site .mega-links>.mega-page-link.is-current{background:#edf6fb!important;border-color:#bcd9e8!important;box-shadow:inset 3px 0 0 #0e6b9b!important}

  .public-site .mega-service-branch{border:1px solid #e1e9ef;border-radius:13px;background:#f8fafc;overflow:hidden}
  .public-site .mega-service-branch.is-current{border-color:#bcd9e8;background:#f1f8fc}
  .public-site .mega-service-branch>.mega-category-card{display:none!important}
  .public-site .mega-service-toggle{display:flex;width:100%;min-height:58px;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:0;background:transparent;color:#153b5b;text-align:left;font:inherit;cursor:pointer}
  .public-site .mega-service-toggle>span{min-width:0;display:block}
  .public-site .mega-service-toggle strong{display:block;font-size:14.5px;line-height:1.25}
  .public-site .mega-service-toggle small{display:block;margin-top:4px;color:#708498;font-size:11.5px;line-height:1.35;font-weight:500}
  .public-site .mega-service-toggle>b{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#eaf0f5;color:#61788d;font-size:14px;transition:transform .18s ease,background .18s ease,color .18s ease}
  .public-site .mega-service-branch.open>.mega-service-toggle>b{transform:rotate(180deg);background:#dfeff7;color:#0e5f8d}
  .public-site .mega-service-branch.open>.mega-service-toggle{background:#fff}

  .public-site .mega-service-articles{display:none;padding:4px 10px 11px;background:#fff;border-top:1px solid #e5edf2}
  .public-site .mega-service-branch.open>.mega-service-articles{display:grid;gap:2px;animation:spMegaIn .14s ease-out}
  .public-site .mega-service-articles a{display:flex!important;align-items:center;min-height:42px!important;margin:0!important;padding:10px 11px!important;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important;transform:none!important;color:#274b68!important;font-size:13px!important;font-weight:700!important;line-height:1.3!important}
  .public-site .mega-service-articles a:hover,.public-site .mega-service-articles a:focus-visible{background:#f1f6f9!important;outline:none}
  .public-site .mega-service-articles .mega-view-all{justify-content:space-between;color:#0e6292!important;font-weight:850!important;border-bottom:1px solid #edf1f4!important;border-radius:0!important;margin-bottom:3px!important}
  .public-site .mega-service-articles .mega-view-all span{display:inline!important;margin:0!important;color:inherit!important;font-size:15px!important}
  .public-site .mega-service-articles .mega-article-link.is-current{background:#e9f4fa!important;color:#0a5f8f!important;box-shadow:inset 3px 0 0 #0e6b9b!important}

  .public-site .mega-main-nav a:focus-visible,
  .public-site .mega-main-nav button:focus-visible{outline:3px solid rgba(14,107,155,.22);outline-offset:2px}
}

@media(max-width:620px){
  .public-site .mega-main-nav.open{padding-inline:16px}
  .public-site .mega-trigger{min-height:58px!important;font-size:15.5px!important}
  .public-site .mega-service-toggle{padding-inline:12px}
}

/* =========================================================
   V49 — Admin simplifié, tableau de bord opérationnel et citoyens
   ========================================================= */
.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-bottom:10px}.admin-topbar .mobile-nav{margin:0}.admin-bell{position:relative;width:42px;height:42px;display:grid;place-items:center;border:1px solid #d8e2eb;border-radius:12px;background:#fff;text-decoration:none;font-size:18px;box-shadow:0 5px 16px rgba(18,52,83,.05)}.admin-bell:hover{background:#f7fafc}.admin-bell b{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#b42318;color:#fff;font-size:10px;line-height:1}.admin-bell.has-unread{border-color:#d3a240}

.dashboard-global-search{padding:20px;margin-bottom:20px}.dashboard-global-search .field{margin:0}.dashboard-global-search input{font-size:16px;padding:15px 16px}.dashboard-global-search .actions{margin:12px 0 0}.dashboard-search-results{margin:-8px 0 20px}.dashboard-result-list{display:grid;gap:8px}.dashboard-result-list>a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #e0e7ee;border-radius:11px;text-decoration:none;background:#fff}.dashboard-result-list>a:hover{background:#f7fafc;border-color:#c9d7e3}.dashboard-result-list strong,.dashboard-result-list small{display:block}.dashboard-result-list small{margin-top:3px;color:#6f8091}.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.section-title-row h2,.section-title-row h3{margin-top:0}.dashboard-attention{margin-bottom:20px}.attention-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.attention-item{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #e1e8ee;border-radius:14px;background:#fbfcfd;text-decoration:none;color:inherit}.attention-item:hover{background:#f4f8fb}.attention-item>b{font-size:24px;line-height:1}.attention-item strong,.attention-item span{display:block}.attention-item span{margin-top:4px;color:#687b8f;font-size:13px}.attention-item.urgent{border-left:4px solid #c9891a;background:#fffaf0}.attention-empty{display:flex;align-items:center;gap:13px;padding:18px;border:1px solid #cfe5d7;border-radius:14px;background:#f2faf5}.attention-empty>b{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#d9f0e1;color:#217346}.attention-empty strong,.attention-empty span{display:block}.attention-empty span{margin-top:2px;color:#5e7767;font-size:13px}.activity-list{display:grid;gap:0}.activity-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #e8edf2;text-decoration:none;color:inherit}.activity-row:first-child{border-top:0}.activity-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#eef4f8}.activity-row strong,.activity-row small{display:block}.activity-row small{margin-top:3px;color:#718294}.activity-row time{font-size:12px;color:#78899a;white-space:nowrap}.quick-grid.dashboard-quick{grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-overview{margin-top:20px}

.page-head-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.simple-hierarchy{padding:16px 18px;margin-bottom:16px;background:#f7fafc;border-left:4px solid #2c78a2}.simple-hierarchy strong{display:block;color:#173e5e}.simple-hierarchy p{margin:4px 0 0;color:#687b8d}.services-admin-filter{display:grid;grid-template-columns:minmax(240px,1fr) 170px 170px auto;gap:12px;align-items:end;margin-bottom:18px}.services-admin-filter .field{margin:0}.filter-actions{display:flex;gap:8px}.services-admin-filter+.table-wrap{margin-top:0}

.citizen-search-admin{padding:18px 20px;margin-bottom:18px}.citizen-search-row{display:grid;grid-template-columns:minmax(260px,1fr) 220px auto auto;gap:12px;align-items:end}.citizen-search-row .field{margin:0}.citizen-search-admin>small{display:block;margin-top:10px;color:#6e8091}.citizen-table .citizen-name-link{display:block;text-decoration:none}.citizen-name-link strong,.citizen-name-link small{display:block}.citizen-name-link small{margin-top:3px;color:#4f7896}.citizen-admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin:-4px 0 18px}.citizen-admin-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;margin-bottom:18px}.citizen-contact-list{margin:0;display:grid;gap:0}.citizen-contact-list>div{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:10px 0;border-top:1px solid #e8edf1}.citizen-contact-list>div:first-child{border-top:0}.citizen-contact-list dt{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:#738597}.citizen-contact-list dd{margin:0;color:#213e58;word-break:break-word}.citizen-summary-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.citizen-summary-stats>div{padding:16px;border-radius:13px;background:#f5f8fa;text-align:center}.citizen-summary-stats b,.citizen-summary-stats span{display:block}.citizen-summary-stats b{font-size:27px;color:#123c61}.citizen-summary-stats span{margin-top:3px;color:#6b7e8f;font-size:12px}.citizen-compose{margin-bottom:18px;border-left:4px solid #26769c}.compact-head{margin-bottom:14px!important}.compact-head h2{margin-bottom:4px}.citizen-message-admin{padding:16px 0;border-top:1px solid #e5ebf0}.citizen-message-admin:first-of-type{border-top:0}.citizen-message-admin p{line-height:1.6}.attachment-list{display:grid;gap:8px;margin-top:12px}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:10px;background:#f4f7fa;border:1px solid #e0e7ed;text-decoration:none}.attachment-row:hover{background:#eef4f8}.flat-table{box-shadow:none;border:0;margin:0}.danger-link{color:#b42318!important}

.citizen-nav{position:relative}.citizen-nav-badge{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;margin-left:4px;border-radius:999px;background:#b42318;color:#fff;font-size:10px;line-height:1}.citizen-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.citizen-direct-message{margin-bottom:14px}.citizen-direct-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:12px;border-bottom:1px solid #e7edf2}.citizen-direct-head strong,.citizen-direct-head small{display:block}.citizen-direct-head small{margin-top:4px;color:#718395}.citizen-direct-message>p{line-height:1.7;white-space:normal}.citizen-message-list{display:grid;gap:14px}.citizen-message-mini{border-left:3px solid #2d7c9f}.notification-mini{display:block;text-decoration:none}.notification-mini strong,.notification-mini p,.notification-mini small{display:block}.notification-mini p{margin:5px 0;color:#66798c}.notification-mini small{color:#7d8d9c}

.weather-preview-line{display:flex;align-items:center;gap:12px}.weather-preview-icon{font-size:30px}.legal-admin-actions{position:sticky;bottom:12px;z-index:5;background:rgba(255,255,255,.96);padding:14px 0 0;box-shadow:0 -12px 22px rgba(255,255,255,.95)}

@media(max-width:1100px){.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid.dashboard-quick{grid-template-columns:repeat(3,minmax(0,1fr))}.services-admin-filter{grid-template-columns:1fr 1fr}.filter-actions{align-self:end}.citizen-dashboard-grid{grid-template-columns:1fr 1fr}.citizen-dashboard-grid>section:last-child{grid-column:1/-1}}
@media(max-width:820px){.citizen-admin-grid{grid-template-columns:1fr}.citizen-search-row{grid-template-columns:1fr 1fr}.citizen-search-row .field:first-child{grid-column:1/-1}.citizen-table{min-width:920px}.attention-grid{grid-template-columns:1fr}.activity-row{grid-template-columns:38px minmax(0,1fr)}.activity-row time{grid-column:2}.citizen-dashboard-grid{grid-template-columns:1fr}.citizen-dashboard-grid>section:last-child{grid-column:auto}}
@media(max-width:620px){.admin-topbar{margin-bottom:4px}.admin-bell{width:40px;height:40px}.quick-grid.dashboard-quick{grid-template-columns:1fr 1fr}.services-admin-filter,.citizen-search-row{grid-template-columns:1fr}.citizen-search-row .field:first-child{grid-column:auto}.filter-actions{flex-wrap:wrap}.page-head-actions{justify-content:flex-start}.citizen-contact-list>div{grid-template-columns:1fr;gap:3px}.citizen-admin-actions .btn{width:100%;justify-content:center}.citizen-summary-stats{grid-template-columns:1fr 1fr}.section-title-row{flex-direction:column;gap:6px}.legal-admin-actions{bottom:0;margin-inline:-16px;padding:12px 16px;background:#fff;border-top:1px solid #e0e7ed}.weather-preview-line{align-items:flex-start}}
/* V49 — compléments formulaires */
.services-admin-filter>.form-grid{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px auto;gap:12px;align-items:end;width:100%}.services-admin-filter>.form-grid .field{margin:0}.hours-exception-form{margin-top:16px;padding-top:18px;border-top:1px solid #e5ebf0}.time-pair{display:flex;align-items:center;gap:8px}.time-pair input{min-width:0}
@media(max-width:1000px){.services-admin-filter>.form-grid{grid-template-columns:1fr 1fr}.services-admin-filter>.form-grid .field:first-child{grid-column:1/-1}}
@media(max-width:620px){.services-admin-filter>.form-grid{grid-template-columns:1fr}.services-admin-filter>.form-grid .field:first-child{grid-column:auto}.time-pair{flex-wrap:wrap}}
/* V49 — finition UX dashboard / hiérarchie */
.dashboard-global-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;background:#fff;border:1px solid #dce5ed;border-radius:16px;box-shadow:0 8px 24px rgba(18,52,83,.06)}.dashboard-global-search>span{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#eef5f9;color:#1a648e;font-size:21px}.dashboard-global-search input{width:100%;border:1px solid #dce5ed;background:#fbfcfd}.dashboard-global-search .btn{white-space:nowrap}.simple-hierarchy span{display:block;margin-top:5px;color:#607487}.simple-hierarchy span b{color:#264d6b}.attention-item>span{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;margin:0;border-radius:10px;background:#edf4f8;color:inherit;font-size:20px}.attention-item>div{min-width:0;flex:1}.attention-item>div b,.attention-item>div small{display:block}.attention-item>div small{margin-top:4px;color:#687b8f;font-size:12.5px;line-height:1.4}.attention-item>strong{align-self:center;white-space:nowrap;color:#1b668f;font-size:12.5px}.attention-empty>span{flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#d9f0e1;color:#217346;font-weight:900}.attention-empty>div b,.attention-empty>div small{display:block}.attention-empty>div small{margin-top:3px;color:#5e7767;font-size:13px}
@media(max-width:760px){.dashboard-global-search{grid-template-columns:auto minmax(0,1fr)}.dashboard-global-search .btn{grid-column:auto}.dashboard-global-search>span{grid-row:1}.dashboard-global-search input{grid-column:2}.dashboard-global-search button{grid-column:1/-1}.dashboard-global-search a.btn{grid-column:1/-1}.attention-item{flex-wrap:wrap}.attention-item>strong{width:100%;padding-left:46px}}
.citizen-admin-actions form{margin:0}.citizen-admin-actions form .btn{height:100%}

/* =========================================================
   V50 — Fiche citoyen : photo de profil + conversation type Gmail
   ========================================================= */
.citizen-profile-head .citizen-profile-identity,.citizen-profile-public-head{display:flex;align-items:center;gap:18px}.citizen-profile-public-head{margin-bottom:18px}.citizen-avatar{flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#e7f0f6,#d7e6ef);border:1px solid #cbd9e4;color:#154b70;font-weight:900;letter-spacing:.04em}.citizen-avatar img{width:100%;height:100%;display:block;object-fit:cover}.citizen-avatar-lg{width:76px;height:76px;font-size:23px}.citizen-avatar-xl{width:112px;height:112px;font-size:32px}.citizen-photo-compose{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;margin-bottom:16px}.citizen-photo-compose .field,.citizen-photo-form .field{margin:0}.citizen-photo-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;margin:18px 0 6px}.profile-separator{border:0;border-top:1px solid #e4ebf1;margin:26px 0}.public-message.info{background:#eef6fb;color:#1b5578;border:1px solid #d6e7f2}.row-unread td{background:#fffaf0}.row-unread td:first-child{box-shadow:inset 3px 0 0 #d39a27}

.citizen-mailbox{padding:0!important;overflow:hidden}.citizen-mailbox-title{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #e4eaf0}.citizen-mailbox-title h3{margin:0}.citizen-mailbox-title small{color:#748698}.citizen-mail-row{border-bottom:1px solid #e7ecf1;background:#fff}.citizen-mail-row:last-child{border-bottom:0}.citizen-mail-row[open]{background:#fbfcfd}.citizen-mail-row.is-unread>summary{background:#fffaf0}.citizen-mail-row>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(120px,180px) minmax(180px,.85fr) minmax(120px,1.3fr) auto minmax(130px,auto) auto;align-items:center;gap:12px;padding:13px 16px;min-height:52px}.citizen-mail-row>summary::-webkit-details-marker{display:none}.citizen-mail-row>summary:after{content:'›';font-size:19px;color:#7f8f9e;grid-column:7}.citizen-mail-row[open]>summary:after{content:'⌄'}.mail-sender,.mail-subject,.mail-preview,.citizen-mail-row time{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-sender{font-size:13px;font-weight:850;color:#2b4c65}.mail-sender.from-citizen{color:#67418c}.mail-sender.from-mairie{color:#155f87}.mail-subject{font-size:14px;color:#153c5a}.mail-preview{font-size:13px;color:#708191}.mail-clip{font-size:14px}.citizen-mail-row time{font-size:12px;color:#7a8a98;text-align:right}.citizen-mail-row .badge{justify-self:end;white-space:nowrap}.citizen-mail-open{padding:18px 22px 22px;border-top:1px solid #edf1f4;background:#fff}.citizen-mail-open h3{margin:16px 0 8px;color:#123a5a}.citizen-mail-open>p{line-height:1.7;margin:0;color:#263f53}.mail-open-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.mail-open-head strong,.mail-open-head small{display:block}.mail-open-head small{margin-top:4px;color:#738495}.citizen-reply-box{margin:20px 0 0;padding:18px;border:1px solid #dce6ee;border-radius:14px;background:#f8fbfd;box-shadow:inset 3px 0 0 #2a7199}.citizen-reply-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.citizen-reply-head strong,.citizen-reply-head small{display:block}.citizen-reply-head strong{color:#123a5a;font-size:15px}.citizen-reply-head small{margin-top:4px;color:#6f8192;line-height:1.45}.citizen-reply-box .citizen-form{margin-top:10px;width:100%;max-width:none}.citizen-reply-box .field{margin-bottom:14px}.citizen-reply-box input[readonly]{background:#eef3f7;color:#405a70}.citizen-reply-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}

@media(max-width:1100px){.citizen-mail-row>summary{grid-template-columns:minmax(110px,150px) minmax(180px,1fr) minmax(100px,.9fr) auto auto}.citizen-mail-row>summary .mail-preview{display:none}.citizen-mail-row>summary:after{grid-column:6}}
@media(max-width:760px){.citizen-profile-head .citizen-profile-identity,.citizen-profile-public-head{align-items:flex-start}.citizen-avatar-lg{width:62px;height:62px}.citizen-avatar-xl{width:92px;height:92px}.citizen-photo-form{grid-template-columns:1fr}.citizen-photo-compose{grid-template-columns:1fr}.citizen-mail-row>summary{grid-template-columns:minmax(90px,.8fr) minmax(140px,1.4fr) auto;gap:8px;padding:12px}.citizen-mail-row>summary .mail-preview,.citizen-mail-row>summary .mail-clip,.citizen-mail-row>summary .badge{display:none}.citizen-mail-row>summary time{grid-column:1/3;text-align:left;font-size:11px}.citizen-mail-row>summary:after{grid-column:3;grid-row:1/3}.citizen-mail-open{padding:16px}.mail-open-head{flex-direction:column}.mail-open-head .btn{width:100%;justify-content:center}}
@media(max-width:520px){.citizen-profile-head .citizen-profile-identity,.citizen-profile-public-head{gap:12px}.citizen-avatar-lg{width:54px;height:54px;font-size:18px}.citizen-avatar-xl{width:80px;height:80px;font-size:24px}.citizen-mail-row>summary{grid-template-columns:minmax(72px,.7fr) minmax(120px,1.3fr) auto}.mail-sender,.mail-subject{font-size:12.5px}}


/* v52 — Centre d’aide simplifié Admin / Maire / Citoyen */
.help-page-head{align-items:flex-start}.help-role-panel{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 26px;padding:22px 24px}.help-role-panel>div+div{border-left:1px solid #e0e8ef;padding-left:24px}.help-role-kicker{display:block;margin-bottom:5px;color:#6e8294;font-size:.72rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.help-role-panel strong{display:block;color:#0d3153;font-size:1.05rem}.help-role-panel p{margin:6px 0 0;color:#607287;line-height:1.55}.help-quick-section{margin:0 0 28px}.help-quick-section .section-head{margin-bottom:12px}.help-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.help-quick-action{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 16px;border:1px solid #dfe7ef;border-radius:14px;background:#fff;color:#153b5d;text-decoration:none;box-shadow:0 7px 20px rgba(16,48,76,.04)}.help-quick-action:hover{border-color:#b8cede;box-shadow:0 10px 28px rgba(16,48,76,.08)}.help-quick-action strong,.help-quick-action small{display:block}.help-quick-action small{margin-top:3px;color:#708395;font-weight:500}.help-quick-action>b{font-size:1.35rem;color:#8195a7}.help-quick-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#eef5fb}.help-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0 20px}.help-filter-btn{border:1px solid #dbe5ed;background:#fff;color:#36536d;border-radius:999px;padding:8px 12px;font:inherit;font-size:.86rem;font-weight:750;cursor:pointer}.help-filter-btn:hover,.help-filter-btn.active{background:#123a63;color:#fff;border-color:#123a63}.help-grid{margin-top:0}.help-card h3{margin-top:0}.help-card li{line-height:1.55}.citizen-help-head-actions{display:flex;gap:8px;flex-wrap:wrap}.citizen-help-tip{margin-top:8px}.citizen-help-search{max-width:760px}.citizen-help-grid{margin-top:0}.citizen-help-contact{margin-top:24px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.citizen-help-contact h3{margin:4px 0 8px}.citizen-help-contact p{margin:0;color:#687c8f}.citizen-help-contact-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.citizen-help-dashboard{margin-top:20px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.citizen-help-dashboard strong{color:#123a63;font-size:1.02rem}.citizen-help-dashboard p{margin:5px 0 0;color:#687c8f}.citizen-login-help{text-align:center;margin:16px 0 0;color:#6a7c8e}.citizen-login-help a{font-weight:750}
@media(max-width:900px){.help-role-panel{grid-template-columns:1fr}.help-role-panel>div+div{border-left:0;border-top:1px solid #e0e8ef;padding-left:0;padding-top:18px}.help-quick-actions{grid-template-columns:1fr 1fr}.citizen-help-contact,.citizen-help-dashboard{align-items:flex-start;flex-direction:column}.citizen-help-contact-actions{justify-content:flex-start}}
@media(max-width:620px){.help-quick-actions{grid-template-columns:1fr}.help-filter-bar{gap:6px}.help-filter-btn{padding:7px 10px;font-size:.8rem}.citizen-help-head-actions{width:100%}.citizen-help-head-actions .btn{flex:1;text-align:center}.citizen-help-contact-actions{width:100%}.citizen-help-contact-actions .btn{width:100%;justify-content:center}}

/* v53 — identité SitePrime dans la barre latérale d’administration */
.admin-brand{display:flex;align-items:center;gap:12px;padding:2px 4px 14px;border-bottom:1px solid rgba(255,255,255,.10)}
.admin-brand-mark{width:50px;height:50px;flex:0 0 50px;display:grid;place-items:center;background:#fff;border-radius:14px;box-shadow:0 8px 22px rgba(0,0,0,.18);overflow:hidden}
.admin-brand-mark img{display:block;width:42px;height:42px;object-fit:contain}
.admin-brand-copy{min-width:0;display:block;line-height:1.08}
.admin-brand-copy strong{display:block;font-size:18px;font-weight:850;color:#fff;letter-spacing:.01em}
.admin-brand-copy b{display:block;margin-top:5px;font-size:10px;font-weight:900;letter-spacing:.13em;color:#d9e7f3}
.admin-brand-copy small{display:block;margin-top:4px;font-size:10px;font-weight:650;letter-spacing:.02em;color:#8fa9bf}
.side-foot{border-top:1px solid rgba(255,255,255,.08);padding-top:16px;margin-top:24px!important;white-space:nowrap}
@media(max-width:1000px){.admin-brand{padding-top:2px}.admin-brand-mark{width:46px;height:46px;flex-basis:46px}.admin-brand-mark img{width:39px;height:39px}}

/* =========================================================
   V54 — Espace citoyen : contraste du panneau de connexion
   Demande utilisateur : rendre le texte du panneau droit
   parfaitement lisible sans modifier la mise en page.
   ========================================================= */
.public-site.inner-public .citizen-login-benefits.card{
  background:#fff;
  color:#153b5d;
}
.public-site.inner-public .citizen-login-benefits .eyebrow{
  color:#c58b20;
}
.public-site.inner-public .citizen-login-benefits h2{
  color:#102b46;
}
.public-site.inner-public .citizen-login-benefits>p{
  color:#52677d;
}
.public-site.inner-public .citizen-login-benefits li{
  color:#17365d;
}
.public-site.inner-public .citizen-login-benefits li::before{
  background:#fff6df;
  color:#c58b20;
}
.public-site.inner-public .citizen-login-create{
  border-top-color:#e1e8ee;
}
.public-site.inner-public .citizen-login-create strong{
  color:#17365d;
}
.public-site.inner-public .citizen-login-create .btn{
  background:#1769df;
  color:#fff;
  border-color:#1769df;
}
.public-site.inner-public .citizen-login-create .btn:hover,
.public-site.inner-public .citizen-login-create .btn:focus-visible{
  background:#125ac2;
  color:#fff;
  border-color:#125ac2;
}

/* =========================================================
   V58 — Profils administratifs, signatures et sécurité renforcée
   ========================================================= */
.account-profile-link{display:flex!important;align-items:center;gap:11px;text-decoration:none;color:inherit}.account-profile-link.active,.account-profile-link:hover{background:#ffffff18}.account-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#fff;color:#153b5d;font-size:13px;font-weight:900}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-copy{min-width:0;display:block!important}.account-copy strong,.account-copy span,.account-copy small,.account-copy em{display:block}.account-copy span{word-break:normal}.account-copy em{margin-top:6px;color:#d9e7f3;font-size:11px;font-style:normal;font-weight:750}
.admin-profile-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:20px;margin-bottom:20px}.admin-profile-head{display:flex;align-items:center;gap:18px;margin-bottom:22px}.admin-profile-head h2{margin:3px 0 4px}.admin-profile-head p{margin:0;color:#6d7f90}.admin-avatar{display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#eaf1f6;color:#143e61;font-weight:900}.admin-avatar-xl{width:82px;height:82px;flex:0 0 82px;font-size:24px}.admin-avatar img{width:100%;height:100%;object-fit:cover}.admin-signature-card{margin-bottom:20px}.signature-preview{display:flex;align-items:flex-end;gap:20px;min-height:120px;margin:18px 0;padding:20px;border:1px solid #dde6ed;border-radius:14px;background:#fbfcfd}.signature-preview img{display:block;max-width:280px;max-height:110px;object-fit:contain}.signature-preview strong,.signature-preview span{display:block}.signature-preview span{margin-top:4px;color:#687b8c}.inline-form{display:inline-block;margin-top:10px}.profile-password-required{border-left:4px solid #b42318}.user-security-tools{margin-top:24px}.user-security-tools hr{border:0;border-top:1px solid #e2e9ef;margin:0 0 20px}.user-security-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.generated-password-card{margin-bottom:20px;border-left:4px solid #c28a20}.generated-password-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.generated-password-row code{padding:11px 14px;border-radius:10px;background:#122d49;color:#fff;font-size:18px;letter-spacing:.05em}.security-callout{margin:16px 0;padding:15px 16px;border-left:4px solid #c58b20;background:#fff8e8;border-radius:10px}.security-callout p{margin:5px 0 0;color:#6b5a34}.loginbox-secondary{max-width:560px;margin:12px auto 0;text-align:center}.loginbox-secondary p{margin:10px 0 0}.mfa-resend-form{margin-top:12px!important}.citizen-security-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:900px;margin:20px auto 0}.mfa-confirm-box{padding:14px!important;margin-top:16px!important;border:1px solid #d8e5ee!important;border-radius:12px;background:#f7fbfd}.message-sender-job{display:block;margin-top:2px;color:#6c7f90;font-size:12px;font-weight:650}.correspondence-signature{display:flex;align-items:flex-end;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid #e5ebf0}.correspondence-signature img{display:block;max-width:220px;max-height:82px;object-fit:contain}.correspondence-signature strong,.correspondence-signature span{display:block}.correspondence-signature span{margin-top:3px;color:#6c7f90;font-size:12px}
@media(max-width:900px){.admin-profile-grid,.citizen-security-grid{grid-template-columns:1fr}.signature-preview{align-items:flex-start;flex-direction:column}.user-security-actions{flex-direction:column}.user-security-actions .btn{width:100%}}
@media(max-width:620px){.account-profile-link{gap:9px}.account-avatar{width:38px;height:38px;flex-basis:38px}.admin-profile-head{align-items:flex-start}.admin-avatar-xl{width:66px;height:66px;flex-basis:66px}.signature-preview img,.correspondence-signature img{max-width:190px}}

/* V59 — Éditeur photo & signature professionnelle */
.account-avatar img,.admin-avatar img{width:100%;height:100%;object-fit:cover;object-position:var(--avatar-x,50%) var(--avatar-y,50%);transform:scale(var(--avatar-zoom,1));transform-origin:var(--avatar-x,50%) var(--avatar-y,50%)}
.avatar-editor-card{min-width:0}.avatar-cropper{position:relative;width:min(100%,300px);aspect-ratio:1;border-radius:18px;overflow:hidden;margin:16px auto 8px;background:linear-gradient(135deg,#eaf1f7,#d9e5ee);border:1px solid #d2dde6;cursor:grab;touch-action:none;user-select:none}.avatar-cropper.dragging{cursor:grabbing}.avatar-cropper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--avatar-x,50%) var(--avatar-y,50%);transform:scale(var(--avatar-zoom,1));transform-origin:var(--avatar-x,50%) var(--avatar-y,50%);pointer-events:none}.avatar-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:48px;font-weight:900;color:#173f63}.avatar-editor-hint{text-align:center;color:#6a7e90;font-size:12px;margin-bottom:14px}.avatar-zoom-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:12px 0 18px}.avatar-zoom-row label{font-weight:800;color:#294b68}.avatar-zoom-row input[type=range]{width:100%}.btn.compact{padding:8px 11px;font-size:12px}
.admin-signature-card{overflow:hidden}.signature-editor-form{margin-top:18px}.signature-mode-tabs{display:flex;gap:8px;margin-bottom:10px}.signature-mode-tabs button{border:1px solid #d8e2ea;background:#f7fafc;color:#49647b;border-radius:10px;padding:9px 13px;font-weight:800;cursor:pointer}.signature-mode-tabs button.active{background:#143f65;color:#fff;border-color:#143f65}.signature-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px;border:1px solid #dbe5ed;border-radius:12px 12px 0 0;background:#f7fafc}.signature-toolbar select,.signature-toolbar button,.signature-color{height:36px;border:1px solid #cfdbe4;border-radius:8px;background:#fff;color:#183e60}.signature-toolbar select{padding:0 9px}.signature-toolbar button{min-width:36px;padding:0 10px;font-weight:800;cursor:pointer}.signature-toolbar button:hover{background:#eef5fa}.signature-toolbar .media-btn{color:#0e5ea7}.signature-color{display:inline-flex;align-items:center;gap:5px;padding:0 8px;cursor:pointer}.signature-color input{width:24px;height:24px;border:0;padding:0;background:transparent}.toolbar-sep{width:1px;height:26px;background:#d6e0e8;margin:0 2px}.signature-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;align-items:start}.signature-editor-pane{min-width:0}.signature-canvas,.signature-code{width:100%;min-height:260px;border:1px solid #dbe5ed;border-top:0;border-radius:0 0 12px 12px;background:#fff;padding:18px;outline:none;color:#183e60;line-height:1.45;overflow:auto}.signature-canvas:focus,.signature-code:focus{border-color:#7ea7c7;box-shadow:0 0 0 3px rgba(23,105,224,.08)}.signature-canvas img{cursor:pointer;outline:2px solid transparent;outline-offset:3px}.signature-canvas img:hover{outline-color:#8bb8db}.signature-code{font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;resize:vertical}.signature-image-tools{margin-top:10px;padding:12px;border:1px solid #dce6ed;border-radius:10px;background:#f9fbfc}.signature-image-tools>strong{display:block;margin-bottom:8px}.signature-image-tools label{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;color:#49647b;font-size:12px}.signature-image-tools input[type=range]{width:100%}.signature-image-align{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.signature-image-align button{border:1px solid #cfdae3;background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer}.signature-live-preview{position:sticky;top:18px;border:1px solid #dbe5ed;border-radius:12px;background:#fbfcfd;padding:16px;min-height:190px}.signature-live-preview>[data-signature-preview]{margin-top:10px;padding:18px;background:#fff;border:1px dashed #d9e3ea;border-radius:10px;min-height:130px;overflow-wrap:anywhere}.signature-live-preview img{max-width:100%;height:auto}.signature-options{display:grid;gap:6px;margin-top:16px;padding:14px 16px;background:#f8fafc;border:1px solid #e0e8ee;border-radius:12px}.signature-options .check{font-weight:750}.signature-options small{color:#6b7e90}.signature-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.correspondence-signature.rich-signature{display:block}.correspondence-signature.rich-signature .rich-signature-html{max-width:620px}.correspondence-signature.rich-signature img{max-width:100%;max-height:none;object-fit:contain}
@media(max-width:980px){.signature-workspace{grid-template-columns:1fr}.signature-live-preview{position:static}.signature-toolbar{border-radius:12px}.signature-canvas,.signature-code{border-top:1px solid #dbe5ed;border-radius:12px;margin-top:10px}}
@media(max-width:620px){.avatar-zoom-row{grid-template-columns:1fr}.signature-toolbar{gap:5px}.signature-toolbar select{max-width:135px}.signature-mode-tabs{display:grid;grid-template-columns:1fr 1fr}.signature-mode-tabs button{width:100%}.signature-actions .btn{width:100%}}

/* CODEX V61 — cadrage persistant des photos citoyen (admin + espace citoyen). */
.citizen-avatar img{object-position:var(--citizen-photo-x,50%) var(--citizen-photo-y,50%);transform:scale(var(--citizen-photo-zoom,1));transform-origin:var(--citizen-photo-x,50%) var(--citizen-photo-y,50%)}
.citizen-photo-editor-card{min-width:0}.citizen-photo-editor-grid{display:grid;grid-template-columns:minmax(260px,330px) minmax(320px,1fr) minmax(190px,280px);gap:28px;align-items:start;margin-top:18px;padding:18px;border:1px solid #dce6ed;border-radius:16px;background:#fbfcfd}.citizen-photo-editor-grid-public{grid-template-columns:minmax(240px,310px) minmax(280px,1fr) minmax(170px,230px)}
.citizen-photo-cropper{position:relative;width:min(100%,310px);aspect-ratio:1;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#e9f1f6,#dbe7ef);border:1px solid #cfdce5;cursor:grab;touch-action:none;user-select:none;margin:0 auto}.citizen-photo-cropper.dragging{cursor:grabbing}.citizen-photo-cropper img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:var(--citizen-photo-x,50%) var(--citizen-photo-y,50%);transform:scale(var(--citizen-photo-zoom,1));transform-origin:var(--citizen-photo-x,50%) var(--citizen-photo-y,50%);pointer-events:none}.citizen-photo-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:52px;font-weight:900;color:#173f63}.citizen-photo-editor-hint{text-align:center;margin:8px 0 0;color:#64798b;font-size:12px}.citizen-photo-controls h3,.citizen-photo-live-preview h3{margin:0 0 6px}.citizen-photo-controls .muted,.citizen-photo-live-preview .muted{margin-top:0}.citizen-photo-zoom-row{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:12px;align-items:center;margin:18px 0}.citizen-photo-zoom-row label{font-weight:800;color:#173f63}.citizen-photo-zoom-row input[type=range]{width:100%}.citizen-photo-zoom-row output{min-width:52px;text-align:right;font-weight:800;color:#294b68}.citizen-photo-file-field{margin-top:18px!important}.citizen-photo-live-preview{padding-left:20px;border-left:1px solid #e2e9ef}.citizen-photo-live-preview .citizen-avatar{margin:18px auto}.citizen-photo-editor-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.citizen-self-photo-editor{margin-top:22px;padding-top:20px;border-top:1px solid #e4ebf1}.citizen-self-photo-editor>h2{margin-bottom:5px}
@media(max-width:1050px){.citizen-photo-editor-grid,.citizen-photo-editor-grid-public{grid-template-columns:minmax(240px,320px) minmax(0,1fr)}.citizen-photo-live-preview{grid-column:1/-1;border-left:0;border-top:1px solid #e2e9ef;padding:18px 0 0;display:flex;align-items:center;gap:20px}.citizen-photo-live-preview .citizen-avatar{margin:0}}
@media(max-width:720px){.citizen-photo-editor-grid,.citizen-photo-editor-grid-public{grid-template-columns:1fr;padding:14px;gap:18px}.citizen-photo-cropper{width:min(100%,300px)}.citizen-photo-live-preview{grid-column:auto}.citizen-photo-zoom-row{grid-template-columns:1fr}.citizen-photo-zoom-row output{text-align:left}.citizen-photo-editor-actions .btn{width:100%;justify-content:center}}

/* v63 — Bouton de réponse citoyen plus léger dans la conversation */
.citizen-mail-open .mail-open-head .btn.ghost{
  background:#eef5ff;
  color:#0b4f9c;
  border:1px solid #c9dcf5;
  padding:10px 15px;
  border-radius:10px;
  box-shadow:none;
}
.citizen-mail-open .mail-open-head .btn.ghost:hover,
.citizen-mail-open .mail-open-head .btn.ghost:focus-visible{
  background:#dfeeff;
  color:#083f7d;
  border-color:#9fc3ee;
}


/* v64 — MegaMenu mobile fixe: toujours visible sous le header */
@media(max-width:1120px){
  body.public-site.mobile-menu-open{overflow:hidden!important;overscroll-behavior:none}
  body.public-site.mobile-menu-open .site-header{z-index:10000;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .public-site .mega-main-nav.open{isolation:isolate}
}


/* v65 — MegaMenu mobile: accordéons toujours visibles sous le header fixe */
@media(max-width:1120px){
  .public-site .mega-main-nav.open{
    scroll-padding-top:12px;
    overflow-anchor:none;
  }
  .public-site .mega-main-nav.open>.mega-item,
  .public-site .mega-main-nav.open .mega-panel,
  .public-site .mega-main-nav.open .mega-panel-inner,
  .public-site .mega-main-nav.open .mega-service-branch{
    overflow-anchor:none;
  }
  .public-site .mega-main-nav.open>.mega-item:first-of-type{
    margin-top:2px;
  }
}


/* v66 — Aide citoyen simplifiée + MegaMenu mobile à navigation naturelle */
.citizen-help-action-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px}
.citizen-help-action-row>.eyebrow{margin:0!important}
.citizen-help-start{scroll-margin-top:110px;padding:18px 20px 4px;border:1px solid #dfe7ee;border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(20,50,77,.05);margin-bottom:18px}
.citizen-help-start .citizen-help-search{margin-top:0;max-width:820px}
.citizen-help-start .help-filter-bar{margin-bottom:12px}
.citizen-help-page .citizen-help-grid{margin-top:0}
@media(max-width:720px){
  .citizen-help-action-row{align-items:flex-start;flex-direction:column;gap:10px}
  .citizen-help-start{padding:15px 14px 3px;border-radius:14px}
}
@media(max-width:1120px){
  .public-site .mega-main-nav.open .mega-panel,
  .public-site .mega-main-nav.open .mega-panel-inner,
  .public-site .mega-main-nav.open .mega-links,
  .public-site .mega-main-nav.open .mega-service-branch,
  .public-site .mega-main-nav.open .mega-service-articles{position:static!important;float:none!important;transform:none!important}
  .public-site .mega-main-nav.open .mega-item.open>.mega-panel{display:block!important}
  .public-site .mega-main-nav.open .mega-service-branch.open>.mega-service-articles{display:grid!important}
}

/* =========================================================
   v68 — MegaMenu mobile compact + aligné au header
   - catégories plus rapprochées
   - ouverture des rubriques en accordéon
   - sous-rubriques compactes
   - panneau collé exactement sous le header sticky
   ========================================================= */
@media(max-width:1120px){
  .public-site .mega-main-nav.open{
    top:var(--sp-mobile-nav-top,78px)!important;
    border-top:0!important;
    padding:6px 18px max(22px,env(safe-area-inset-bottom))!important;
  }

  /* Réduit nettement l'espace vertical entre les catégories principales. */
  .public-site .mega-main-nav.open>.mega-item{
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid #e9eef3!important;
  }
  .public-site .mega-main-nav.open>.mega-item:first-of-type{margin-top:0!important}
  .public-site .mega-main-nav.open>.mega-item:last-of-type{border-bottom:0!important}
  .public-site .mega-main-nav.open>.mega-item>.mega-trigger{
    min-height:46px!important;
    padding:0 4px!important;
    line-height:1.15!important;
  }

  /* Vrai rendu accordéon : le contenu reste directement sous la catégorie. */
  .public-site .mega-main-nav.open>.mega-item>.mega-panel{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  .public-site .mega-main-nav.open>.mega-item>.mega-panel>.mega-panel-inner{
    padding:0 0 8px!important;
  }
  .public-site .mega-main-nav.open .mega-links{
    gap:4px!important;
    padding:0 0 3px!important;
  }

  /* Sous-catégories plus compactes, tout en gardant une zone tactile confortable. */
  .public-site .mega-main-nav.open .mega-links>.mega-page-link{
    padding:10px 12px!important;
    border-radius:10px!important;
  }
  .public-site .mega-main-nav.open .mega-service-branch{border-radius:10px!important}
  .public-site .mega-main-nav.open .mega-service-toggle{
    min-height:50px!important;
    padding:9px 12px!important;
  }
  .public-site .mega-main-nav.open .mega-service-articles{
    padding:2px 8px 8px!important;
  }
  .public-site .mega-main-nav.open .mega-service-articles a{
    min-height:38px!important;
    padding:8px 10px!important;
  }

  .public-site .mega-main-nav .nav-search{
    min-height:44px!important;
    margin:0 0 5px!important;
    padding:9px 14px!important;
  }
}

@media(max-width:620px){
  .public-site .mega-main-nav.open{padding-inline:14px!important}
  .public-site .mega-main-nav.open>.mega-item>.mega-trigger{min-height:44px!important;font-size:15px!important}
}



/* =========================================================
   v69 — Accordéon mobile : ouverture vers le bas sans saut
   - le conteneur reste fixé sous le header
   - l'ouverture n'effectue aucun recentrage vers le haut
   - le défilement vertical reste exclusivement dans le MegaMenu
   ========================================================= */
@media(max-width:1120px){
  .public-site .mega-main-nav.open{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }
  .public-site .mega-main-nav.open>.mega-item,
  .public-site .mega-main-nav.open>.mega-item>.mega-panel,
  .public-site .mega-main-nav.open .mega-service-branch,
  .public-site .mega-main-nav.open .mega-service-articles{
    overflow-anchor:none!important;
  }
}


/* =========================================================
   v70 — MegaMenu mobile réellement ancré sous le header
   - le panneau ne bouge jamais quand un accordéon s'ouvre
   - les rubriques se développent uniquement vers le bas
   - aucun scroll/recentrage automatique
   - si la hauteur dépasse l'écran, seul le contenu du menu défile
   ========================================================= */
@media(max-width:1120px){
  body.public-site.mobile-menu-open{overflow:hidden!important}
  body.public-site.mobile-menu-open .site-header{
    z-index:10000!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .public-site .mega-main-nav.open{
    position:fixed!important;
    inset:auto 0 0 0!important;
    top:var(--sp-mobile-nav-top,78px)!important;
    width:100%!important;
    height:calc(100dvh - var(--sp-mobile-nav-top,78px))!important;
    max-height:calc(100dvh - var(--sp-mobile-nav-top,78px))!important;
    margin:0!important;
    transform:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:auto!important;
    scroll-padding-top:0!important;
    overflow-anchor:none!important;
    -webkit-overflow-scrolling:touch;
  }
  .public-site .mega-main-nav.open>.mega-item,
  .public-site .mega-main-nav.open>.mega-item>.mega-panel,
  .public-site .mega-main-nav.open .mega-panel-inner,
  .public-site .mega-main-nav.open .mega-links,
  .public-site .mega-main-nav.open .mega-service-branch,
  .public-site .mega-main-nav.open .mega-service-articles{
    overflow-anchor:none!important;
  }
}
@supports not (height:100dvh){
  @media(max-width:1120px){
    .public-site .mega-main-nav.open{
      height:calc(100vh - var(--sp-mobile-nav-top,78px))!important;
      max-height:calc(100vh - var(--sp-mobile-nav-top,78px))!important;
    }
  }
}

/* =========================================================
   v71 — MegaMenu mobile collé sous l'en-tête
   - « Rechercher » masqué uniquement en mobile
   - le panneau commence immédiatement sous la barre logo/mairie
   - le panneau reste fixe; seul son contenu défile vers le bas
   ========================================================= */
@media(max-width:1120px){
  body.public-site.mobile-menu-open{overflow:hidden!important}

  /* Le lien de recherche reste disponible sur desktop, mais disparaît du MegaMenu mobile. */
  .public-site .mega-main-nav.open > .nav-search,
  .public-site .mega-main-nav.open .nav-search{
    display:none!important;
  }

  /* Panneau strictement ancré au bord inférieur du header. */
  .public-site .mega-main-nav.open{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:var(--sp-mobile-nav-top,76px)!important;
    bottom:0!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0 18px max(22px,env(safe-area-inset-bottom))!important;
    border-top:1px solid #e2e9ef!important;
    border-radius:0!important;
    transform:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch;
    scroll-behavior:auto!important;
    scroll-padding-top:0!important;
    overflow-anchor:none!important;
    align-content:flex-start!important;
    justify-content:flex-start!important;
  }

  /* La première catégorie commence directement en haut du panneau. */
  .public-site .mega-main-nav.open > .mega-item:first-of-type{
    margin-top:0!important;
    padding-top:0!important;
  }
  .public-site .mega-main-nav.open > .mega-item > .mega-trigger{
    margin:0!important;
  }
}
@media(max-width:620px){
  .public-site .mega-main-nav.open{padding-inline:14px!important}
}
/* =========================================================
   v72 — MegaMenu mobile: regra definitiva
   - sem pesquisa no menu móvel
   - painel fixo imediatamente sob o header logo/mairie
   - o painel nunca sobe ao abrir acordeões
   - apenas o conteúdo do menu faz scroll vertical
   ========================================================= */
@media(max-width:1120px){
  body.public-site.mobile-menu-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.public-site.mobile-menu-open .site-header{
    position:sticky!important;
    z-index:10001!important;
  }

  /* A pesquisa pertence ao desktop. Em mobile não ocupa sequer espaço. */
  .public-site .mega-main-nav .nav-search,
  .public-site .mega-main-nav.open .nav-search,
  .public-site .mega-main-nav .nav-search-desktop-only,
  .public-site .nav-search-mobile{
    display:none!important;
  }

  .public-site .mega-main-nav.open{
    display:flex!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:var(--sp-mobile-nav-top,76px)!important;
    bottom:0!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0 18px max(22px,env(safe-area-inset-bottom))!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:0!important;
    background:#fff!important;
    border:0!important;
    border-top:1px solid #e2e9ef!important;
    border-radius:0!important;
    box-shadow:0 20px 38px rgba(8,35,63,.16)!important;
    transform:none!important;
    z-index:10000!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-behavior:auto!important;
    scroll-padding:0!important;
    overflow-anchor:none!important;
    touch-action:pan-y!important;
  }

  .public-site .mega-main-nav.open > .mega-item{
    flex:0 0 auto!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid #e9eef3!important;
    overflow:visible!important;
  }
  .public-site .mega-main-nav.open > .mega-item:first-of-type{
    margin-top:0!important;
    padding-top:0!important;
  }
  .public-site .mega-main-nav.open > .mega-item:last-of-type{
    border-bottom:0!important;
  }
  .public-site .mega-main-nav.open > .mega-item > .mega-trigger{
    width:100%!important;
    min-height:52px!important;
    margin:0!important;
    padding:0 6px!important;
  }

  /* O conteúdo expandido permanece no fluxo: cresce só para baixo. */
  .public-site .mega-main-nav.open > .mega-item > .mega-panel,
  .public-site .mega-main-nav.open .mega-panel-inner,
  .public-site .mega-main-nav.open .mega-links,
  .public-site .mega-main-nav.open .mega-service-branch,
  .public-site .mega-main-nav.open .mega-service-articles{
    position:static!important;
    inset:auto!important;
    float:none!important;
    transform:none!important;
    max-height:none!important;
    overflow-anchor:none!important;
  }
  .public-site .mega-main-nav.open > .mega-item > .mega-panel{
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
  }
  .public-site .mega-main-nav.open > .mega-item.open > .mega-panel{
    display:block!important;
  }
  .public-site .mega-main-nav.open .mega-panel-inner{
    width:100%!important;
    margin:0!important;
    padding:0 0 8px!important;
    overflow:visible!important;
  }
  .public-site .mega-main-nav.open .mega-intro{display:none!important}
  .public-site .mega-main-nav.open .mega-links{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:4px!important;
    padding:0 0 4px!important;
  }
  .public-site .mega-main-nav.open .mega-service-branch.open > .mega-service-articles{
    display:grid!important;
  }
}
@media(max-width:620px){
  .public-site .mega-main-nav.open{padding-inline:14px!important}
  .public-site .mega-main-nav.open > .mega-item > .mega-trigger{
    min-height:50px!important;
    font-size:15px!important;
  }
}

/* v73 — champ anti-robot : hors écran, jamais display:none (les bots l'ignorent). */
.sp-hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* =========================================================
   v73.2 — Aide citoyen : lisibilité et hiérarchie des deux
   boutons d'en-tête (.citizen-help-head-actions).
   Avant : texte #123854 sur fond #1769e0 = 2,4:1 (échec AA).
   Après : bouton principal plein, texte blanc = 5,08:1 ;
           bouton secondaire en contour = 10,65:1.
   L'épaisseur du contour est simulée par box-shadow inset,
   pour ne pas modifier la hauteur des boutons.
   Portée volontairement limitée à cette ligne de boutons.
   ========================================================= */
.public-site.inner-public .citizen-help-head-actions .btn{
  background:#1769e0;
  color:#fff;
  border-color:#1769e0;
}
.public-site.inner-public .citizen-help-head-actions .btn:hover,
.public-site.inner-public .citizen-help-head-actions .btn:focus-visible{
  background:#125ac2;
  color:#fff;
  border-color:#125ac2;
}
.public-site.inner-public .citizen-help-head-actions .btn.alt{
  background:#fff;
  color:#0f3e76;
  border-color:#155fc8;
  box-shadow:inset 0 0 0 1px #155fc8;
}
.public-site.inner-public .citizen-help-head-actions .btn.alt:hover,
.public-site.inner-public .citizen-help-head-actions .btn.alt:focus-visible{
  background:#eef5ff;
  color:#0b3f78;
  border-color:#0f4fae;
  box-shadow:inset 0 0 0 1px #0f4fae;
}

/* =========================================================
   v73.3 — Contraste des boutons des pages publiques internes.
   Cause : .demo-inner-main .btn:not(.alt) imposait le fond bleu
   sans définir la couleur du texte, qui restait #123854 —
   soit 2,4:1, en échec du critère RGAA/WCAG AA (4,5:1 mini).
   Cette même règle écrasait aussi .btn.ghost (spécificité 2),
   qui ne s'affichait donc jamais en style discret.
   Après : bouton plein = blanc sur #1769e0 (5,08:1)
           bouton ghost = #0b4f9c sur #eef5ff (7,33:1)
   ========================================================= */
.public-site.inner-public .demo-inner-main .btn.ghost{
  background:#eef5ff;
  color:#0b4f9c;
  border-color:#c9dcf5;
}
.public-site.inner-public .demo-inner-main .btn.ghost:hover,
.public-site.inner-public .demo-inner-main .btn.ghost:focus-visible{
  background:#dceafd;
  color:#0a4488;
  border-color:#a9c9ef;
}
.public-site.inner-public .demo-inner-main .btn:not(.alt):not(.ghost):hover,
.public-site.inner-public .demo-inner-main .btn:not(.alt):not(.ghost):focus-visible{
  background:#125ac2;
  border-color:#125ac2;
  color:#fff;
}

/* =========================================================
   v74 — Pagination des listes du panneau d'administration.
   Utilisée par requests.php, citizen-messages.php,
   notifications.php et la fiche citoyen.
   ========================================================= */
.pager-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  margin:0 0 12px;
  font-size:13px;
  color:#5a6f86;
}
.pager-count{font-weight:750}
.pager-per{display:flex;align-items:center;gap:6px}
.pager-per>span{color:#7c8ea1}
.pager-per a{
  display:inline-block;
  min-width:34px;
  padding:5px 9px;
  border:1px solid #d7e1ec;
  border-radius:8px;
  background:#fff;
  color:#0b4f9c;
  font-weight:800;
  text-align:center;
}
.pager-per a:hover{background:#eef5ff;border-color:#c9dcf5}
.pager-per a.is-current{
  background:#123a63;
  border-color:#123a63;
  color:#fff;
}
.pager-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:16px 0 4px;
  flex-wrap:wrap;
}
.pager-state{font-size:13px;color:#5a6f86;font-weight:750}
.pager-nav .is-disabled{opacity:.45;cursor:default;pointer-events:none}
@media(max-width:620px){
  .pager-head{flex-direction:column;align-items:flex-start}
  .pager-nav{gap:10px}
}

/* v75 — Logo de la mairie (en-tête, footer, réglages) */
.demo-brand .mairie-brand-img{display:block;height:auto;width:auto;max-height:72px;max-width:300px;object-fit:contain}
.demo-footer .footer-identity:has(.mairie-footer-logo){grid-template-columns:1fr}
.mairie-footer-logo{display:inline-flex;align-items:center;justify-self:start;background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:12px}
.mairie-footer-logo img{display:block;max-height:52px;max-width:220px;width:auto;height:auto;object-fit:contain}
@media(max-width:760px){.demo-brand .mairie-brand-img{max-height:52px;max-width:200px}}
.logo-manager{margin-top:20px}
.logo-current{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:14px 0 18px}
.logo-stage{min-width:260px;min-height:110px;display:flex;align-items:center;justify-content:center;padding:18px 24px;border:1px solid #dbe4ef;border-radius:14px;background:#fff}
.logo-stage.checker{background-color:#fff;background-image:linear-gradient(45deg,#eef2f7 25%,transparent 25%),linear-gradient(-45deg,#eef2f7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef2f7 75%),linear-gradient(-45deg,transparent 75%,#eef2f7 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}
.logo-stage img{max-height:72px;max-width:300px;width:auto;height:auto;display:block}
.logo-stage .logo-fallback-name{font-family:Georgia,serif;font-size:24px;font-weight:700;color:#0c3b70}
.logo-help{background:#f3f8fe;border:1px solid #dbe8f6;border-radius:12px;padding:14px 18px;margin:0 0 18px;font-size:14px;line-height:1.6;color:#33506f}
.logo-help ul{margin:6px 0 0;padding-left:20px}
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:12px}
.logo-item{border:1px solid #dbe4ef;border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.logo-item.is-active{border-color:#1f8a4c;box-shadow:0 0 0 2px rgba(31,138,76,.18)}
.logo-item .logo-stage{border:0;border-radius:0;min-width:0;min-height:120px;border-bottom:1px solid #eef2f7}
.logo-item .logo-stage img{max-width:100%;max-height:80px}
.logo-item-meta{padding:10px 12px;font-size:12px;color:#5a6f86;word-break:break-all}
.logo-item-meta strong{display:block;color:#12304f;font-size:12.5px}
.logo-item-actions{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 12px}
.logo-item-actions form{margin:0}
.logo-item-actions .btn{padding:7px 10px;font-size:12.5px}
.logo-upload-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.logo-upload-row .field{flex:1 1 280px;margin:0}
/* v76 — aperçu du logo par défaut dans l'administration */
.logo-default{display:inline-flex;align-items:center;gap:12px;color:#0c3b70}
.logo-default-preview{position:relative;display:block;width:64px;height:64px;flex:none}
.logo-default-preview svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.logo-default-preview i{position:absolute;left:7px;right:7px;bottom:4px;height:5px;background:linear-gradient(90deg,#1353a4 0 34%,#fff 34% 66%,#ed2e45 66%)}
.logo-default-text strong{display:block;font-family:Georgia,serif;font-size:24px;line-height:.95;color:#0b2b55;font-weight:700}
.logo-default-text strong b{display:block;font-size:18px}
.logo-default-text small{display:block;margin-top:4px;font-size:9px;letter-spacing:.08em;color:#60758e;font-weight:800}
.logo-item .logo-default{transform:scale(.78);transform-origin:center}
/* v77 — logo + nom + sous-titre */
.demo-brand .brand-text{min-width:0}
.demo-brand .mairie-brand-img{max-height:64px;max-width:160px}
.demo-brand:has(.mairie-brand-img:only-child) .mairie-brand-img{max-height:72px;max-width:300px}
.brand-live-preview{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;min-height:92px;color:#0c3b70}
.brand-live-preview img{max-height:64px;max-width:160px;display:block}
@media(max-width:760px){.demo-brand .mairie-brand-img{max-height:48px;max-width:110px}}
/* v78 — bloc logo compact à côté du Maire */
.brand-name-toggle{display:flex;align-items:center;gap:8px;margin-top:14px;font-weight:600}
.logo-compact .brand-live-preview{min-height:84px;padding:10px 14px;gap:12px;background-color:#fff;background-image:linear-gradient(45deg,#f1f4f8 25%,transparent 25%),linear-gradient(-45deg,#f1f4f8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f1f4f8 75%),linear-gradient(-45deg,transparent 75%,#f1f4f8 75%);background-size:14px 14px;background-position:0 0,0 7px,7px -7px,-7px 0}
.logo-compact .brand-live-preview img{max-height:60px;max-width:150px}
.logo-compact .logo-default-preview{width:56px;height:56px}
.logo-compact .logo-default-text strong{font-size:21px}.logo-compact .logo-default-text strong b{font-size:16px}
.logo-compact-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 6px}
.logo-compact-bar .btn{padding:7px 12px;font-size:13px;min-height:0}
.logo-pick{cursor:pointer;margin:0}
.logo-library{margin-top:10px;border:1px solid #dbe4ef;border-radius:10px;background:#fbfcfe}
.logo-library summary{cursor:pointer;padding:8px 12px;font-size:13px;font-weight:700;color:#12304f}
.logo-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;padding:0 10px 10px}
.logo-thumb{border:1px solid #dbe4ef;border-radius:8px;background:#fff;padding:6px;display:flex;flex-direction:column;gap:4px;font-size:11px}
.logo-thumb.is-active{border-color:#1f8a4c;box-shadow:0 0 0 2px rgba(31,138,76,.15)}
.logo-thumb-img{height:54px;display:flex;align-items:center;justify-content:center}
.logo-thumb-img img{max-height:50px;max-width:100%}
.logo-thumb small{color:#6a7d92;text-align:center}
.logo-thumb-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;align-items:center}
.logo-thumb-actions a,.logo-thumb-actions button{border:0;background:none;padding:0;font:inherit;font-weight:700;color:#1769e0;cursor:pointer}
.logo-thumb-actions button.danger{color:#a92f2f}.logo-thumb-actions b{color:#1f8a4c}


/* V83 — Navigation administration harmonisée avec SitePrime */
.admin-shell{grid-template-columns:238px 1fr}.side{padding:18px 12px;background:#0a2037}.side nav.sp-admin-nav{margin-top:14px}.sp-admin-nav .sp-nav-main,.sp-admin-nav .side-toggle{min-height:38px;display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;margin:2px 0;border-radius:7px;color:#d8e5ef;font-size:12px;font-weight:650;letter-spacing:0;text-transform:none}.sp-admin-nav .sp-nav-main:hover,.sp-admin-nav .side-toggle:hover{background:#ffffff12;color:#fff}.sp-admin-nav .sp-nav-main.active,.sp-admin-nav .side-group.open>.side-toggle{background:#1478f2;color:#fff;box-shadow:0 6px 16px rgba(20,120,242,.18)}.sp-nav-ico{width:17px;height:17px;display:grid;place-items:center;flex:0 0 17px}.sp-nav-ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.side-toggle-label{flex:1;text-align:left}.side-toggle .side-chevron{font-size:11px!important;opacity:.7;margin-left:auto}.side-group.open .side-toggle .side-chevron{transform:rotate(180deg)}.side-group-body{padding-left:27px}.side-group-body a{position:relative;color:#9fb4c6;font-size:11.5px;padding:7px 9px;margin:1px 0;border-radius:6px}.side-group-body a:before{content:"";position:absolute;left:-10px;top:50%;width:5px;height:1px;background:#5f7890}.side-group-body a:hover{background:#ffffff0d;color:#fff}.side-group-body a.active{background:#ffffff16;color:#fff;font-weight:700}.sp-nav-status{margin-left:auto;font-size:9px;font-weight:850;padding:2px 6px;border-radius:999px;background:#0bbf79;color:#fff}.sp-nav-security{margin-top:5px!important}.sp-nav-separator{height:1px;background:rgba(255,255,255,.08);margin:10px 8px}.sp-nav-logout{color:#ffb9b9!important}.account{margin-top:12px}.admin-brand{padding:2px 4px 10px}.admin-brand-mark{width:42px;height:42px;flex-basis:42px;border-radius:11px}.admin-brand-mark img{width:36px;height:36px}.admin-brand-copy strong{font-size:16px}.admin-brand-copy b{font-size:9px}.admin-brand-copy small{font-size:9px}.side-foot{margin:14px 8px!important;padding-top:12px;font-size:9px}.main{padding:28px 30px}
@media(max-width:1000px){.admin-shell{grid-template-columns:1fr}.side{width:260px}.main{padding:20px}}

/* =========================================================
   v84 — Affinage UI menu + boutons
   - Conserver le texte lisible dans les catégories du menu
   - Réduire la taille des boutons
   - Adoucir les couleurs des actions admin/citoyen
   ========================================================= */
.sp-admin-nav .side-toggle,
.sp-admin-nav .sp-nav-main{
  min-height:36px;
  padding:7px 10px;
  border-radius:8px;
  font-size:12.5px;
}
.sp-admin-nav .side-toggle{
  color:#d2deea;
  background:transparent;
}
.sp-admin-nav .sp-nav-main{
  color:#dbe7f1;
}
.sp-admin-nav .sp-nav-main:hover,
.sp-admin-nav .side-toggle:hover{
  background:rgba(255,255,255,.09);
  color:#fff;
}
.sp-admin-nav .sp-nav-main.active,
.sp-admin-nav .side-group.open>.side-toggle{
  background:rgba(255,255,255,.11);
  color:#fff;
  box-shadow:none;
  border-left:3px solid #4a98e2;
  padding-left:7px;
}
.sp-admin-nav .side-group.open>.side-toggle .side-toggle-label,
.sp-admin-nav .side-group.open>.side-toggle .sp-nav-ico,
.sp-admin-nav .side-group.open>.side-toggle .sp-nav-ico svg{
  transform:none!important;
}
.sp-admin-nav .side-group.open>.side-toggle .side-chevron{
  transform:rotate(180deg)!important;
}
.sp-admin-nav .side-toggle span{
  font-size:inherit;
  opacity:1;
}
.sp-admin-nav .side-toggle .side-chevron{
  font-size:11px!important;
  opacity:.72;
}
.side-group-body{
  padding-left:23px;
}
.side-group-body a{
  padding:6px 9px;
  margin:1px 0;
  font-size:11.5px;
  line-height:1.35;
  color:#aac0d2;
  border-radius:7px;
}
.side-group-body a:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.side-group-body a.active{
  background:rgba(74,152,226,.18);
  color:#fff;
  font-weight:700;
}
.sp-nav-status{
  padding:2px 5px;
  font-size:8.5px;
  letter-spacing:.02em;
  background:#1bb874;
}

.admin-body .btn,
.login .btn,
.public-site.inner-public .btn,
.citizen-auth .btn,
.citizen-space .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid transparent;
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  box-shadow:none;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.admin-body .btn:hover,
.login .btn:hover,
.public-site.inner-public .btn:hover,
.citizen-auth .btn:hover,
.citizen-space .btn:hover,
.admin-body .btn:focus-visible,
.login .btn:focus-visible,
.public-site.inner-public .btn:focus-visible,
.citizen-auth .btn:focus-visible,
.citizen-space .btn:focus-visible{
  transform:translateY(-1px);
}
.admin-body .btn.alt,
.login .btn.alt,
.public-site.inner-public .btn.alt,
.citizen-auth .btn.alt,
.citizen-space .btn.alt{
  background:#e9c978;
  color:#18324b;
  border-color:#dbbe74;
}
.admin-body .btn.alt:hover,
.login .btn.alt:hover,
.public-site.inner-public .btn.alt:hover,
.citizen-auth .btn.alt:hover,
.citizen-space .btn.alt:hover,
.admin-body .btn.alt:focus-visible,
.login .btn.alt:focus-visible,
.public-site.inner-public .btn.alt:focus-visible,
.citizen-auth .btn.alt:focus-visible,
.citizen-space .btn.alt:focus-visible{
  background:#e3be60;
  border-color:#d1ad54;
}
.admin-body .btn.ghost,
.login .btn.ghost,
.public-site.inner-public .btn.ghost,
.citizen-auth .btn.ghost,
.citizen-space .btn.ghost{
  background:#f1f5f8;
  color:#28425a;
  border-color:#d8e2ea;
}
.admin-body .btn.ghost:hover,
.login .btn.ghost:hover,
.public-site.inner-public .btn.ghost:hover,
.citizen-auth .btn.ghost:hover,
.citizen-space .btn.ghost:hover,
.admin-body .btn.ghost:focus-visible,
.login .btn.ghost:focus-visible,
.public-site.inner-public .btn.ghost:focus-visible,
.citizen-auth .btn.ghost:focus-visible,
.citizen-space .btn.ghost:focus-visible{
  background:#e8eef3;
  border-color:#cad8e3;
}
.admin-body .page-head .btn,
.admin-body .actions .btn,
.admin-body .citizen-help-head-actions .btn,
.admin-body .citizen-help-contact-actions .btn,
.public-site.inner-public .page-head .btn,
.public-site.inner-public .actions .btn,
.public-site.inner-public .citizen-help-head-actions .btn,
.public-site.inner-public .citizen-help-contact-actions .btn,
.login .btn.full{
  padding:9px 13px;
  font-size:12.5px;
}
.help-filter-btn{
  padding:7px 11px;
  font-size:.82rem;
  background:#f8fafc;
  color:#456278;
  border-color:#d6e0e8;
}
.help-filter-btn:hover,
.help-filter-btn.active{
  background:#e8f0f7;
  color:#163b60;
  border-color:#bfd3e3;
}
.signature-mode-tabs button{
  padding:8px 12px;
  border-radius:9px;
}
.signature-mode-tabs button.active{
  background:#234a71;
  border-color:#234a71;
}
@media(max-width:900px){
  .admin-body .page-head .btn,
  .public-site.inner-public .page-head .btn,
  .public-site.inner-public .citizen-help-head-actions .btn,
  .public-site.inner-public .citizen-help-contact-actions .btn{
    width:auto;
  }
}

/* =========================================================
   v85 — version plateforme + carte monde sécurité
   ========================================================= */
.side-foot{display:flex!important;flex-direction:column;align-items:flex-start;gap:3px}
.side-version{display:block;color:#6f8ba4;font-size:8.5px;font-weight:700;letter-spacing:.04em}
.sec-origin-panel h3{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sec-origin-panel h3 small{font-size:9px;color:#8a9aa8;font-weight:600}
.sec-world-wrap{position:relative;min-height:118px;border:1px solid #dce6ee;border-radius:10px;background:#fbfdff;overflow:hidden;padding:5px}
.sec-world-map{display:block;width:100%;height:118px}
.sec-world-land{fill:#eaf1f6;stroke:#d7e2eb;stroke-width:2}
.sec-map-point circle{fill:#2f80ed;fill-opacity:.92;stroke:#fff;stroke-width:3;filter:drop-shadow(0 2px 4px rgba(47,128,237,.22))}
.sec-map-point text{fill:#fff;font-size:11px;font-weight:900;pointer-events:none}
.sec-world-empty{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);max-width:90%;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.9);color:#8495a4;font-size:9px;white-space:nowrap}
.sec-origin-list{display:grid;gap:4px;margin-top:8px}
.sec-origin-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px;border-top:1px solid #edf2f6;font-size:10px;color:#5f7486}
.sec-origin-list b{color:#183c59}


/* =========================================================
   v86 — Header public : identité protégée + menu plus compact
   - Le menu commence uniquement après le bloc « Mairie de démonstration ».
   - Espaces horizontaux réduits entre les catégories sur desktop.
   - Aucun chevauchement entre l'identité de la mairie et « Ma mairie ».
   ========================================================= */
@media(min-width:1121px){
  .public-site.mairie-demo .demo-header .nav-shell{
    justify-content:flex-start;
    gap:12px;
  }
  .public-site.mairie-demo .demo-brand{
    flex:0 0 auto;
    min-width:0;
    max-width:none;
    margin-right:4px;
  }
  .public-site.mairie-demo .demo-brand .brand-text{
    flex:0 0 auto;
  }
  .public-site.mairie-demo .demo-brand .brand-text strong,
  .public-site.mairie-demo .demo-brand .brand-text small{
    white-space:nowrap;
  }
  .public-site.mairie-demo .mega-main-nav{
    flex:1 1 auto;
    min-width:0;
    justify-content:flex-end;
    gap:0;
  }
  .public-site.mairie-demo .mega-trigger{
    padding-left:7px;
    padding-right:7px;
    gap:4px;
  }
  .public-site.mairie-demo .mega-trigger::after{
    left:7px;
    right:7px;
  }
  .public-site.mairie-demo .nav-search{
    margin-left:3px;
  }
}
@media(max-width:1320px) and (min-width:1121px){
  .public-site.mairie-demo .demo-header .nav-shell{gap:8px}
  .public-site.mairie-demo .brand-pro{min-width:0}
  .public-site.mairie-demo .demo-brand .mairie-logo{width:64px;height:64px}
  .public-site.mairie-demo .demo-brand strong{font-size:25px}
  .public-site.mairie-demo .demo-brand strong b{font-size:18px}
  .public-site.mairie-demo .mega-trigger{font-size:10.6px;padding-left:5px;padding-right:5px;gap:3px}
  .public-site.mairie-demo .mega-trigger::after{left:5px;right:5px}
  .public-site.mairie-demo .mega-trigger span{font-size:9px}
  .public-site.mairie-demo .nav-search{font-size:11px;padding:9px 10px!important;margin-left:2px}
}

/* Espace citoyen connecté : accès direct au menu et aux contenus. */
.public-site.citizen-compact .demo-inner-main > .inner-page{padding-top:24px}
.public-site.citizen-compact .citizen-page-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){
  .public-site.citizen-compact .demo-inner-main > .inner-page{padding-top:16px}
}
