:root{--encre:#1d2a29;--texte:#33403f;--doux:#5d6b69;--fond:#f4f7f6;--fond2:#eaf0ee;--carte:#fff;--ligne:#dfe7e5;
--acc:#19706b;--acc-d:#11524e;--teinte:#e6f3f1;--teinte-b:#c7e2de;--teinte-t:#0f4a46;
--hausse:#dff1e6;--hausse-t:#1d6340;--baisse:#fbe9ee;--baisse-t:#9b2c48;--r:24px;--r2:14px;
--ombre:0 1px 2px rgba(20,20,30,.04),0 10px 30px rgba(20,20,30,.06);--police:"Avenir Next", Avenir, "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;--titres:"Avenir Next", Avenir, "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif}

*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--fond);color:var(--texte);font:16px/1.65 var(--police)}
a{color:var(--texte);text-decoration:none}a:hover{color:var(--encre);text-decoration:underline;text-underline-offset:3px}
p a,.oe-txt a,.oe-faq a{text-decoration:underline;text-decoration-color:var(--teinte-b);text-underline-offset:3px}
h1,h2,h3{font-family:var(--titres);color:var(--encre);letter-spacing:-.01em}
h1{font-size:clamp(1.8rem,4.4vw,2.7rem);line-height:1.12;margin:.2em 0 .35em}
h2{font-size:1.32rem;line-height:1.25;margin:0 0 .8em;display:flex;gap:.55em;align-items:center}
h3{font-size:1.02rem;margin:0 0 .4em}
img{max-width:100%;height:auto}
.oe-cadre{max-width:1180px;margin:0 auto;padding:0 16px}
.oe-ic{width:1.35em;height:1.35em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.25em}
.oe-pastille{display:inline-flex;align-items:center;justify-content:center;width:2.3em;height:2.3em;border-radius:50%;background:var(--teinte);color:var(--acc);flex:none}
.oe-doux{color:var(--doux)}.oe-petit{font-size:.86rem}.oe-cache{position:absolute;left:-9999px}
/* En-tête */
.oe-entete{background:#fff;border-radius:0 0 var(--r) var(--r);box-shadow:0 1px 0 var(--ligne),0 8px 24px rgba(20,20,30,.04);position:relative;z-index:5}
.oe-entete-l{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
.oe-logo{display:flex;align-items:center;gap:10px;font-family:var(--titres);font-weight:700;font-size:1.15rem;color:var(--encre)}
.oe-logo:hover{text-decoration:none}.oe-logo small{display:block;font-weight:500;font-size:.72rem;color:var(--doux);letter-spacing:.02em}
.oe-nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.oe-nav a{padding:7px 14px;border-radius:999px;font-size:.92rem}.oe-nav a:hover{background:var(--teinte);text-decoration:none}
.oe-langues{display:flex;gap:4px}.oe-langues a{padding:4px 10px;border-radius:999px;font-size:.8rem;border:1px solid var(--ligne);text-transform:uppercase}
.oe-langues a[aria-current]{background:var(--encre);color:#fff;border-color:var(--encre)}
.oe-recherche{position:relative;flex:1 1 260px;max-width:420px}
.oe-recherche input{width:100%;font:inherit;padding:10px 16px 10px 42px;border-radius:999px;border:1px solid var(--ligne);background:var(--fond)}
.oe-recherche input:focus{outline:2px solid var(--acc);outline-offset:1px;background:#fff}
.oe-recherche .oe-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--doux)}
.oe-resultats{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border-radius:18px;box-shadow:var(--ombre);border:1px solid var(--ligne);list-style:none;margin:0;padding:6px;display:none;z-index:20}
.oe-resultats.oe-ouvert{display:block}.oe-resultats a{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px}
.oe-resultats a:hover,.oe-resultats a:focus{background:var(--teinte);text-decoration:none}.oe-resultats small{color:var(--doux)}
/* Fil d'Ariane */
.oe-fil{font-size:.86rem;color:var(--doux);margin:18px 0 6px;display:flex;flex-wrap:wrap;gap:4px}
.oe-fil a{color:var(--doux);text-decoration:underline;text-decoration-color:var(--teinte-b);text-underline-offset:3px}
.oe-fil span+span:before{content:"›";margin:0 6px;color:var(--teinte-b)}
/* Bandeau */
.oe-hero{margin:10px 0 26px}
.oe-hero-texte{min-width:0}
.oe-sur{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;border-radius:999px;background:var(--teinte);color:var(--teinte-t);font-size:.84rem;font-weight:600}
.oe-chapeau{font-size:1.08rem;color:var(--texte);max-width:62ch}
.oe-puces{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.oe-puces li{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ligne);border-radius:999px;padding:7px 14px;font-size:.92rem}
.oe-puces b{color:var(--encre)}.oe-puces .oe-ic{color:var(--acc)}
.oe-photo{margin:0;position:relative;border-radius:var(--r);overflow:hidden;background:var(--fond2)}
.oe-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.oe-photo figcaption{position:absolute;right:10px;bottom:10px;max-width:calc(100% - 20px);background:rgba(255,255,255,.92);border-radius:999px;padding:3px 12px;font-size:.72rem;color:var(--doux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oe-photo figcaption a{color:var(--doux);text-decoration:underline;text-decoration-color:var(--teinte-b)}
.oe-sans-photo{aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;background:var(--teinte)}
.oe-sans-photo img{width:78%;aspect-ratio:auto;object-fit:contain}.oe-sans-photo .oe-carte{background:none;border-radius:0}.oe-sans-photo .oe-carte img{width:100%;aspect-ratio:auto}
/* mise en page 1 : bandeau partagé */
.oe-m1 .oe-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}
/* mise en page 2 : couverture + carte posée */
.oe-m2 .oe-hero{position:relative}.oe-m2 .oe-hero .oe-photo img{aspect-ratio:21/8}
.oe-m2 .oe-hero-texte{position:relative;background:#fff;border-radius:var(--r);box-shadow:var(--ombre);padding:24px 28px;margin:-90px 24px 0;max-width:760px}
/* mise en page 3 : tableau de bord */
.oe-m3 .oe-entete{background:var(--teinte)}.oe-m3 .oe-hero{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:start}
.oe-m3 .oe-hero .oe-photo img{aspect-ratio:4/3}
/* mise en page 4 : éditorial centré */
.oe-m4 .oe-hero{text-align:center}.oe-m4 .oe-chapeau{margin-left:auto;margin-right:auto}.oe-m4 .oe-puces{justify-content:center}
.oe-m4 .oe-hero .oe-photo{margin-top:22px}.oe-m4 .oe-hero .oe-photo img{aspect-ratio:5/2}
.oe-m4 .oe-entete-l{justify-content:center}.oe-m4 main .oe-bloc{max-width:980px;margin-left:auto;margin-right:auto}
/* Blocs */
.oe-bloc{background:var(--carte);border-radius:var(--r);box-shadow:var(--ombre);padding:26px 28px;margin:0 0 22px}
.oe-bloc h2 .oe-pastille{font-size:.9rem}
.oe-intro{font-size:1.03rem}
.oe-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.oe-grille3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.oe-deux{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.oe-kpi{background:var(--fond);border-radius:var(--r2);padding:16px 18px;position:relative;overflow:hidden}
.oe-kpi .oe-lib{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--doux);font-weight:600}
.oe-kpi .oe-lib .oe-ic{color:var(--acc)}
.oe-kpi .oe-val{font-family:var(--titres);font-size:1.7rem;font-weight:700;color:var(--encre);line-height:1.15;margin-top:6px}
.oe-kpi .oe-val small{font-size:.9rem;font-weight:600;color:var(--doux);margin-left:4px}
.oe-kpi .oe-rang{font-size:.8rem;color:var(--doux);margin-top:2px}
.oe-kpi svg.oe-spark{position:absolute;right:12px;bottom:10px;width:96px;height:34px}
.oe-etiq{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:700}
.oe-etiq.oe-h{background:var(--hausse);color:var(--hausse-t)}.oe-etiq.oe-b{background:var(--baisse);color:var(--baisse-t)}.oe-etiq.oe-n{background:var(--fond2);color:var(--doux)}
/* Faits */
.oe-faits{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.oe-faits li{display:flex;gap:12px;align-items:flex-start;background:var(--teinte);color:var(--teinte-t);border-radius:var(--r2);padding:14px 16px;font-size:.95rem}
.oe-faits li .oe-pastille{background:#fff}
.oe-faits b{color:var(--encre)}
/* Tableaux */
.oe-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.93rem}
.oe-table th{text-align:left;font-weight:600;color:var(--doux);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:1px solid var(--ligne)}
.oe-table td{padding:10px;border-bottom:1px solid var(--ligne);vertical-align:middle}
.oe-table tr:last-child td{border-bottom:0}.oe-table .oe-n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.oe-table th.oe-n{text-align:right}.oe-table tbody tr:hover td{background:var(--fond)}
.oe-table th[data-tri]{cursor:pointer}.oe-table th[data-tri]:after{content:" ↕";color:var(--teinte-b)}
.oe-defile{overflow-x:auto;-webkit-overflow-scrolling:touch}
.oe-jauge{position:relative;height:8px;border-radius:999px;background:var(--fond2);min-width:90px}
.oe-jauge i{position:absolute;top:-3px;width:14px;height:14px;border-radius:50%;background:var(--acc);border:2px solid #fff;box-shadow:0 0 0 1px var(--acc);transform:translateX(-50%)}
.oe-jauge u{position:absolute;top:-4px;width:2px;height:16px;background:var(--doux);opacity:.5}
.oe-barre{height:10px;border-radius:999px;background:var(--fond2);overflow:hidden}.oe-barre i{display:block;height:100%;border-radius:999px;background:var(--acc)}
.oe-barre.oe-b2 i{background:var(--teinte-b)}
/* Groupes d'indicateurs */
.oe-groupe{border:1px solid var(--ligne);border-radius:var(--r2);padding:18px 18px 8px;margin-bottom:16px}
.oe-groupe h3{display:flex;gap:10px;align-items:center;font-size:1.05rem;margin-bottom:10px}
[data-g]{--g:#eef0f6;--gt:#3d4560}
[data-g=population]{--g:#efeafa;--gt:#4c3f7c}[data-g=logement]{--g:#f3efe6;--gt:#5b4e2c}[data-g=energie]{--g:#fbf6d9;--gt:#5f5410}
[data-g=climat]{--g:#e6f2fb;--gt:#1f4d6e}[data-g=risques]{--g:#efeeec;--gt:#4b4844}[data-g=economie]{--g:#e3f4ec;--gt:#1d5a3d}
[data-g=emploi]{--g:#e3f2f4;--gt:#18535c}[data-g=tourisme]{--g:#fbebf3;--gt:#7a2c55}[data-g=mobilite]{--g:#ebeef4;--gt:#36445e}
[data-g=societe]{--g:#fcecee;--gt:#7d2b3a}[data-g=environnement]{--g:#e8f4e1;--gt:#335c1d}[data-g=sante]{--g:#fbecec;--gt:#7a2f2f}
[data-g=education]{--g:#ebebfb;--gt:#38387a}
.oe-groupe h3 .oe-pastille,.oe-carte-ind .oe-pastille{background:var(--g);color:var(--gt)}
/* Secteurs */
.oe-secteurs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.oe-secteurs li{display:grid;grid-template-columns:minmax(150px,1.4fr) 2fr auto;gap:12px;align-items:center;font-size:.93rem}
.oe-secteurs .oe-barre{height:12px}
/* Graphiques */
.oe-graphe{width:100%;height:auto;display:block}
.oe-graphe text{font:12px var(--police);fill:var(--doux)}
.oe-legende{display:flex;gap:16px;flex-wrap:wrap;font-size:.84rem;color:var(--doux);margin-top:8px}
.oe-legende i{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px;margin-right:6px}
/* Carte */
.oe-carte{position:relative;align-self:start;background:var(--fond);border-radius:var(--r2);overflow:hidden}
.oe-carte img{display:block;width:100%;height:auto}
.oe-carte .oe-epingle{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--acc);border:4px solid #fff;box-shadow:0 0 0 2px var(--acc),0 6px 14px rgba(0,0,0,.18)}
.oe-carte .oe-epingle:after{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px solid var(--acc);opacity:.35}
.oe-voisins{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.oe-voisins a{display:flex;justify-content:space-between;gap:8px;background:var(--fond);border-radius:16px;padding:10px 14px}
.oe-voisins a:hover{background:var(--teinte);text-decoration:none}.oe-voisins small{color:var(--doux);white-space:nowrap}
/* Cartes de liens */
.oe-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.oe-cartes a{display:block;background:var(--fond);border-radius:var(--r2);padding:16px 18px;border:1px solid transparent;transition:transform .2s}
.oe-cartes a:hover{background:#fff;border-color:var(--teinte-b);text-decoration:none;transform:translateY(-2px)}
.oe-cartes b{display:block;color:var(--encre);font-family:var(--titres);font-size:1.02rem}
.oe-cartes small{color:var(--doux)}
.oe-carte-ind{display:flex!important;gap:12px;align-items:flex-start}
.oe-pilules{display:flex;flex-wrap:wrap;gap:8px}.oe-pilules a{padding:6px 14px;border-radius:999px;background:var(--fond);font-size:.9rem}
.oe-pilules a:hover{background:var(--teinte);text-decoration:none}
.oe-bouton{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;background:var(--encre);color:#fff;font-weight:600;border:0;font:inherit;cursor:pointer}
.oe-bouton:hover{background:var(--acc-d);color:#fff;text-decoration:none}
/* Podium */
.oe-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.oe-podium a{background:var(--teinte);border-radius:var(--r2);padding:16px;text-align:center}
.oe-podium a:hover{text-decoration:none;background:var(--teinte-b)}
.oe-podium .oe-pl{font-family:var(--titres);font-size:1.6rem;font-weight:800;color:var(--acc)}
.oe-podium b{display:block;color:var(--encre)}
/* FAQ */
.oe-faq details{border-bottom:1px solid var(--ligne);padding:12px 0}.oe-faq details:last-child{border-bottom:0}
.oe-faq summary{cursor:pointer;font-weight:650;color:var(--encre);list-style:none;display:flex;justify-content:space-between;gap:12px}
.oe-faq summary::-webkit-details-marker{display:none}.oe-faq summary:after{content:"+";color:var(--acc);font-weight:700}
.oe-faq details[open] summary:after{content:"–"}.oe-faq p{margin:.6em 0 0}
/* Publicité */
.oe-pub{margin:0 0 22px;text-align:center;min-height:120px}.oe-pub:has(ins[data-ad-status=unfilled]){display:none}.oe-pub small{display:block;font-size:.7rem;color:var(--doux);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
/* Pied */
.oe-pied{background:#fff;border-radius:var(--r) var(--r) 0 0;margin-top:40px;padding:34px 0 26px;box-shadow:0 -1px 0 var(--ligne)}
.oe-pied-l{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px}
.oe-pied h2{font-size:.95rem;margin-bottom:.6em}.oe-pied nav a{display:block;padding:3px 0;font-size:.92rem}
.oe-pied p{font-size:.88rem;color:var(--doux)}
/* Formulaire */
.oe-form label{display:block;font-weight:600;margin:14px 0 6px;color:var(--encre)}
.oe-form input,.oe-form textarea{width:100%;font:inherit;padding:11px 14px;border-radius:16px;border:1px solid var(--ligne);background:var(--fond)}
.oe-form textarea{min-height:150px}.oe-form .oe-pot{position:absolute;left:-9999px}
.oe-texte{max-width:78ch}.oe-texte h2{margin-top:1.4em}
/* Apparition au défilement : glissement seul, jamais d'opacité */
oe-media (prefers-reduced-motion:no-preference){.oe-rv{transform:translateY(18px);transition:transform .6s cubic-bezier(.2,.7,.2,1)}.oe-rv.oe-vu{transform:none}}
oe-media (max-width:860px){.oe-m1 .oe-hero,.oe-m3 .oe-hero{grid-template-columns:1fr}.oe-deux{grid-template-columns:1fr}.oe-pied-l{grid-template-columns:1fr}
.oe-m2 .oe-hero-texte{margin:-40px 10px 0;padding:20px}.oe-m2 .oe-hero .oe-photo img,.oe-m4 .oe-hero .oe-photo img{aspect-ratio:3/2}
.oe-bloc{padding:20px 18px}.oe-secteurs li{grid-template-columns:1fr auto}.oe-secteurs .oe-barre{grid-column:1/-1;grid-row:2}
.oe-podium{grid-template-columns:1fr}.oe-nav{display:none}}
