@charset "UTF-8";
:root{--ink:#142443;--muted:#53617b;--blue:#153da6;--line:#e1e7f2;--paper:#ffffff;--white:#fff;--accent:#d73847;--soft:#ffffff}*{box-sizing:border-box}html{scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 'Manrope','Segoe UI',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button,input,select,textarea{color:var(--ink)}a,button,input,select,textarea,summary{outline-offset:4px}:focus-visible{outline:2px solid var(--blue)}button:disabled{cursor:default;color:#78827c;background:#ffffff}header{display:flex;align-items:center;gap:36px;min-height:78px;padding:0 max(32px,calc((100vw - 1376px)/2));border-top:4px solid var(--blue);border-bottom:1px solid var(--line);background:var(--white)}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:24px;font-weight:700;letter-spacing:-.8px}.brand span{margin-left:-9px;color:var(--blue);font-weight:400}.brand.small{font-size:19px}header nav{display:flex;align-self:stretch;align-items:stretch;gap:28px;margin-left:auto;font-size:14px}header nav a{display:flex;align-items:center;border-bottom:3px solid transparent;padding-top:3px}header nav a[aria-current=page]{border-color:var(--blue);color:var(--blue);font-weight:600}header nav a:hover{color:var(--blue)}.local{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:22px}main{max-width:1376px;margin:auto;padding:0 32px;min-height:78vh}h1,h2,h3{line-height:1.25}h1{font-family:'Manrope','Manrope','Segoe UI',sans-serif;font-size:42px;letter-spacing:-1px;font-weight:400;margin:12px 0 18px}h2{font-size:23px;letter-spacing:-.4px;font-weight:650;margin:0 0 12px}h3{font-size:17px;font-weight:650;margin:0 0 12px}h4{font-size:15px;margin:16px 0 8px}p{margin:12px 0}.eyebrow{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--blue)}.lead{font-size:17px;color:var(--muted);max-width:640px;margin-bottom:26px}.hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:80px;padding:44px 0 34px;align-items:center}.hero h1{font-size:42px}.reading-guide{border-left:1px solid var(--line);padding:8px 0 8px 32px}.reading-guide h2{font-size:17px}.reading-guide dl{margin:20px 0}.reading-guide dl>div{padding:10px 0;border-bottom:1px solid var(--line)}.reading-guide dt{font-size:13px;font-weight:650}.reading-guide dd{font-size:13px;color:var(--muted);margin:3px 0}.searchbox{display:flex;background:white;border:1px solid #8c9d91;border-radius:3px;max-width:650px;padding:5px;gap:8px}.searchbox input{flex:1;min-width:0;padding:9px 12px;border:0;background:transparent}.searchbox:focus-within{outline:2px solid var(--blue);outline-offset:2px}.searchbox button,.primary{background:var(--blue);color:white;border:1px solid var(--blue);padding:10px 19px;border-radius:3px;font-weight:600;font-size:14px}.primary:hover,.searchbox button:hover{background:#0d2a7d}.search-help{color:var(--muted);font-size:12px;line-height:1.65}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 22px}.section-head h2,.section-head h3{margin:0}.section-head p{margin:6px 0 0;font-size:13px;color:var(--muted)}.directory{margin:10px 0 0}.directory .section-head{border-top:2px solid var(--ink);padding-top:24px}.text-action{font-size:14px;font-weight:600;color:var(--blue);text-decoration:underline;text-underline-offset:5px}.directory-head,.town-row{display:grid;grid-template-columns:minmax(210px,1.6fr) minmax(170px,1.2fr) 150px 75px 24px;gap:20px;align-items:center}.directory-head{padding:10px 20px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--line)}.town-row{padding:16px 20px;border-bottom:1px solid var(--line);background:white}.town-row:hover,.town-row:focus-visible{background:var(--soft)}.town-name strong{display:block;font-family:'Manrope','Manrope','Segoe UI',sans-serif;font-size:21px;font-weight:400;color:var(--blue)}.town-name>span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.town-region{color:var(--muted);font-size:13px}.town-population,.town-code{font-variant-numeric:tabular-nums;font-size:14px}.town-population small{font-size:12px;color:var(--muted)}.town-code{color:var(--muted);font-size:12px}.arrow{color:var(--blue)}.home-method{display:grid;grid-template-columns:1fr 2fr;gap:36px;margin:40px 0;padding:26px 0;border-top:1px solid var(--line)}.home-method h2{font-size:18px}.home-method p{margin:0;font-size:14px;color:var(--muted)}.back{display:inline-block;margin:24px 0 18px;font-size:13px;color:var(--blue)}.back:hover{text-decoration:underline}.commune-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid var(--line)}.commune-head h1{font-size:44px;margin:5px 0 7px}.subtitle{color:var(--muted);font-size:14px}.updated{font-size:12px;color:var(--muted)}.commune-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:start}.commune-navigation{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto;padding-right:14px}.nav-title{font:20px 'Manrope','Manrope','Segoe UI',sans-serif;margin-bottom:20px}.nav-group{margin-bottom:18px}.nav-group-label{font-size:10px;letter-spacing:1px;font-weight:700;text-transform:uppercase;color:var(--muted);padding:0 12px;margin-bottom:6px}.tabs button{display:block;text-align:left;width:100%;border:0;border-left:3px solid transparent;background:transparent;padding:7px 10px;font-size:13px;line-height:1.5}.tabs button:hover{background:#f4f7ff}.tabs button[aria-selected=true]{border-color:var(--blue);color:var(--blue);background:#edf3ff;font-weight:650}.section-toggle{display:none}.commune-body{min-width:0}.territory-note{margin:0 0 24px;padding:12px 16px;border-left:3px solid var(--accent);background:#ffffff;font-size:13px}.territory-note summary{cursor:pointer;font-weight:600}.territory-note p{margin-bottom:8px}.panel{background:white;border:1px solid var(--line);border-radius:3px;padding:24px;margin-bottom:24px}.panel>.section-head{margin-top:0}.panel p{font-size:14px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 26px;border-top:2px solid var(--blue);border-bottom:1px solid var(--line);background:white}.metric{padding:20px 16px;border-right:1px solid var(--line);min-width:0}.metric:last-child{border-right:0}.metric .label{font-size:12px;color:var(--muted)}.metric b{display:block;font-size:25px;font-weight:600;letter-spacing:-.5px;margin:8px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric small{font-size:11px;display:block;color:var(--muted);line-height:1.6}.split{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.split .panel{padding:22px}.detail{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.detail span:first-child{color:var(--muted)}.detail span:last-child{text-align:right;overflow-wrap:anywhere}.notice{margin:22px 0;padding:15px 18px;background:#ffffff;border-left:3px solid #153da6;font-size:13px;color:#425576}.notice strong{color:var(--ink)}.source{font-size:12px;color:var(--blue);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.source:hover{text-decoration-thickness:2px}.pill{display:inline-block;padding:3px 8px;border:1px solid #c6d3c7;background:var(--soft);font-size:11px;color:#153da6;border-radius:3px}.code{font-size:11px;color:var(--muted);letter-spacing:.4px}.table-wrap{overflow:auto;max-width:100%;overscroll-behavior-x:contain}table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}th,td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}th{color:#344a6c;font-weight:600;font-size:12px;background:#ffffff}td:first-child{font-weight:500}tbody tr:hover{background:#ffffff}select,input,textarea{border:1px solid #aebdb2;background:white;border-radius:3px;padding:9px 11px;max-width:100%}select{padding-right:26px}label{font-size:13px}summary{cursor:pointer}.procurement-filters{display:flex;align-items:end;gap:14px;margin:20px 0}.procurement-filters label{display:flex;flex-direction:column;gap:6px;color:var(--muted);min-width:0}.procurement-filters label:first-child{flex:1}.procurement-filters input{width:100%;min-width:0}.procurement-metrics{grid-template-columns:1fr 1fr}.procurement-card{padding:24px 2px;border-bottom:1px solid #bac6bd;margin:0;background:transparent;overflow-wrap:anywhere}.procurement-heading{display:flex;justify-content:space-between;gap:24px}.procurement-heading h3{margin:8px 0 15px;font-size:18px;line-height:1.5}.procurement-amount{font-size:20px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}.procurement-tags{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:12px 0}.procurement-card summary{padding:10px 0;color:var(--blue);font-size:13px}.procurement-detail{font-size:13px;padding:10px 0}.procurement-card p{font-size:14px}.pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:24px 0;font-size:13px}.pagination button{padding:8px 16px;border:1px solid var(--line);border-radius:3px;background:white;color:var(--blue)}.pagination button:disabled{color:#78827c;background:#ffffff}.record-details{font-size:13px;margin:18px 0}.record-details>div{display:grid;grid-template-columns:minmax(130px,1fr) 3fr;gap:18px;padding:8px 0;border-bottom:1px solid var(--line)}.record-details dt{color:var(--muted)}.record-details dd{margin:0;overflow-wrap:anywhere}.coverage{font-size:13px;margin:16px 0}.coverage summary{font-weight:600;color:var(--blue)}.coverage p{font-size:12px;border-bottom:1px solid var(--line);padding:10px 0}.report-form{display:grid;gap:18px;max-width:800px}.report-form label{display:grid;gap:6px}.report-form button{justify-self:start}.report-form textarea{min-height:120px;resize:vertical}.compare-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.report-form .compare-choices label{display:flex;align-items:center;gap:8px;font-size:14px}.compare-choices input{accent-color:var(--blue)}fieldset{padding:20px;border:1px solid var(--line);border-radius:3px}legend{padding:0 8px;font-weight:600}.timeline{list-style:none;padding:0}.timeline li{display:grid;grid-template-columns:105px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.timeline time{font-size:13px;color:var(--muted)}.timeline h3{margin:8px 0}.perimeter-panel label{display:block;margin:14px 0 7px}.perimeter-panel select{width:100%;min-width:0}.perimeter-panel p{overflow-wrap:anywhere}.affiliation,.supplier-entry{padding:16px 0;border-top:1px solid var(--line)}.affiliation p{margin:8px 0}.supplier-name{display:inline-block;color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px;margin-bottom:6px}.census-bars{list-style:none;padding:0;display:grid;gap:16px}.census-bars li{display:grid;grid-template-columns:45px minmax(30px,1fr) minmax(95px,auto);gap:12px;align-items:center;font-size:14px}.census-track{height:16px;width:100%;background:var(--soft)}.census-bars li>span:last-child{text-align:right;font-variant-numeric:tabular-nums}.stats{display:flex;border-block:1px solid var(--line);margin:24px 0}.stat{flex:1;padding:18px 20px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat b{display:block;font-size:26px;font-weight:600}.stat span{font-size:12px;color:var(--muted)}.cards:not(.town-directory){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:24px 0}.cards>.card:not(.town-row){padding:24px 0;border-top:1px solid var(--line)}.card-top{margin-bottom:14px}.card p{color:var(--muted);font-size:14px}.source-list h3{font-size:20px}.empty{padding:40px 24px;color:var(--muted);text-align:center}.empty h3{color:var(--ink)}.loading{padding:70px 20px;text-align:center;color:var(--muted)}.error{background:#fff1eb;color:#903729}footer{max-width:1312px;margin:50px auto 0;border-top:1px solid var(--line);padding:24px 0 32px;display:flex;align-items:center;gap:28px;font-size:12px;color:var(--muted)}footer a:last-child{margin-left:auto}.skip{position:absolute;top:-100px;left:10px}.skip:focus{top:10px;background:white;padding:10px;z-index:10}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:901px){.commune-navigation::-webkit-scrollbar{width:4px}.commune-navigation::-webkit-scrollbar-thumb{background:#c6cfc5}}
@media(max-width:1100px){.hero{gap:40px}.commune-layout{grid-template-columns:200px minmax(0,1fr);gap:24px}.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(n+3){border-top:1px solid var(--line)}.split{grid-template-columns:1fr}.town-region{font-size:12px}.directory-head,.town-row{grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) 120px 60px 20px;gap:14px}footer{margin-inline:32px}}
@media(max-width:900px){header{padding:14px 24px;flex-wrap:wrap;gap:12px 24px}header nav{margin-left:auto;gap:20px}.local{display:none}main{padding:0 24px}.hero{grid-template-columns:1fr;padding-top:32px}.reading-guide{display:none}.hero h1{font-size:38px}.commune-layout{display:block}.commune-navigation{position:static;max-height:none;overflow:visible;padding:0;margin-bottom:22px}.section-toggle{display:flex;width:100%;justify-content:space-between;text-align:left;padding:13px 15px;border:1px solid #9eafa1;border-radius:3px;background:white;color:var(--blue);font-size:14px;font-weight:600}.section-toggle[aria-expanded=false]+#commune-sections{display:none}#commune-sections{padding:20px;background:#ffffff;border:1px solid var(--line);border-top:0}.nav-title{display:none}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tabs button{padding:10px}.nav-group{margin:0}.commune-head{margin-bottom:18px}.commune-body{scroll-margin-top:18px}.directory-head,.town-row{grid-template-columns:minmax(180px,1fr) 125px 60px 20px}.directory-head>span:nth-child(2),.town-region{display:none}.home-method{grid-template-columns:1fr;gap:10px}.commune-head h1{font-size:38px}.updated{display:none}.section-head{flex-wrap:wrap}.panel{padding:22px}.procurement-filters{flex-wrap:wrap}.procurement-filters label:first-child{flex-basis:100%}}
@media(max-width:560px){body{font-size:14px}header{padding:13px 20px;gap:12px}.brand{font-size:23px}header nav{width:100%;margin:0;font-size:13px;gap:24px}header nav a{padding:7px 0}.hero{padding:28px 0 16px;gap:0}.hero h1{font-size:32px;letter-spacing:-.6px}.lead{font-size:15px;margin-bottom:20px}main{padding:0 18px}h1{font-size:32px}h2{font-size:21px}.searchbox{gap:3px}.searchbox input{padding:9px 6px;font-size:13px}.searchbox button{padding:9px 12px;font-size:13px}.directory .section-head{padding-top:20px}.section-head{gap:12px;margin-bottom:16px}.text-action{font-size:13px}.directory-head{display:none}.town-row{grid-template-columns:minmax(0,1fr) auto 15px;padding:14px 10px;gap:12px}.town-code{display:none}.town-name strong{font-size:21px}.town-name>span{font-size:11px}.town-population{font-size:13px;text-align:right}.town-population small{display:block;font-size:11px}.back{margin-top:20px}.commune-head h1{font-size:34px}.commune-head{padding-bottom:18px}.tabs{grid-template-columns:1fr}.nav-group{margin-bottom:14px}.tabs button{font-size:14px;padding:10px}.panel{padding:18px;margin-bottom:18px}.metric{padding:16px 12px}.metric b{font-size:23px}.metrics{margin-bottom:20px}.notice{padding:13px 15px}.procurement-heading{display:block}.procurement-amount{white-space:normal;margin-bottom:14px}.procurement-card{padding:20px 0}.procurement-heading h3{font-size:17px}.procurement-filters{gap:12px}.record-details>div{grid-template-columns:1fr;gap:4px}.timeline li{grid-template-columns:1fr;gap:8px}.compare-choices{grid-template-columns:1fr}.cards:not(.town-directory){grid-template-columns:1fr}.stats{flex-wrap:wrap}.stat{flex-basis:50%}.pagination{gap:8px;font-size:12px}.pagination button{padding:8px 10px}.census-bars li{gap:8px;font-size:12px;grid-template-columns:38px minmax(25px,1fr) 88px}footer{margin:32px 18px 0;flex-wrap:wrap;gap:10px}footer p{width:100%;margin:0}footer a:last-child{margin:0}th,td{padding:11px 9px}.table-wrap table{min-width:500px}.report-form fieldset{padding:14px}.home-method{margin-top:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.finance-plot{display:block;max-height:270px;min-height:180px}

#compare-form{max-width:none;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);column-gap:32px;align-items:start}#compare-form fieldset{grid-column:1;grid-row:1/5}#compare-form>label,#compare-form>button,#compare-error{grid-column:2}#compare-error:empty{display:none}@media(max-width:900px){#compare-form{grid-template-columns:1fr}#compare-form fieldset,#compare-form>label,#compare-form>button,#compare-error{grid-column:1;grid-row:auto}}
.finance-modes{padding:22px 24px;border:1px solid #b7cabb;border-top:3px solid var(--blue);background:#fff;margin-bottom:24px}.finance-modes h2{font-size:20px}.finance-modes p{font-size:13px;color:var(--muted)}.mode-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.history-controls{display:grid;grid-template-columns:1.3fr 1.3fr 1fr;gap:14px;margin:20px 0}.history-controls label{display:grid;gap:6px;min-width:0}.history-controls select{width:100%;min-width:0}.chart-reading{display:flex;justify-content:space-between;gap:20px;padding:20px 0 12px}.chart-reading strong{display:block;font-size:30px;line-height:1.25;letter-spacing:-.6px;color:var(--blue);margin:6px 0;font-variant-numeric:tabular-nums}.chart-reading small,.chart-reading span{display:block;font-size:12px;color:var(--muted)}.chart-period{text-align:right;padding-top:6px}.chart-period b{font-size:14px;font-weight:600}.chart-scroll{overflow:auto}.series-plot{width:100%;display:block;min-width:480px;max-height:320px}.series-plot text{font:11px 'Manrope','Segoe UI',sans-serif;fill:#53617b}.series-plot g:focus{outline:none}.series-plot g:focus rect,.series-plot g:hover rect{fill:#d73847;stroke:#a92135;stroke-width:2}.chart-readout{min-height:24px;font-size:13px!important;color:var(--blue);padding:8px 12px;background:#ffffff;border-left:2px solid #153da6}.chart-values{font-size:13px;margin:16px 0 4px}.chart-values summary{color:var(--blue);padding:5px 0}.chart-values table{margin-top:12px}@media(max-width:650px){.history-controls{grid-template-columns:1fr}.finance-modes{padding:18px}.chart-reading strong{font-size:24px}.chart-reading{gap:12px}.chart-period{min-width:95px}.chart-reading span{font-size:11px}.series-plot{max-height:none}.mode-actions .primary{width:100%}}

@media(max-width:650px){.series-plot{min-width:0}.chart-reading strong{font-size:22px}}
/* Carte seule : aucun panneau ni fond ajouté. */
.map-hero{padding:28px 0 10px}.map-hero .searchbox{margin:0 auto}.bare-map{max-width:920px;margin:0 auto!important}.bare-map-tools{height:35px;display:flex;align-items:center;gap:16px;font-size:13px;color:var(--blue)}.bare-map-tools button{background:none;border:0;padding:6px 0;color:var(--blue)}.bare-map-tools [hidden]{display:none}#main-map{display:block;width:100%;height:min(64vh,650px);overflow:hidden;background:none}#main-map .map-shape{stroke:var(--paper);stroke-width:1;vector-effect:non-scaling-stroke}.bare-map-label{fill:#183b88;pointer-events:none;paint-order:stroke;stroke:var(--paper);stroke-width:.025px;font-weight:600}#map-overseas{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:10px}#map-overseas button{border:0;background:none;padding:0;color:var(--blue);font-size:11px}#map-overseas svg{display:block;width:55px;height:45px;margin:0 auto 4px;fill:#88a9ec}#map-hover{min-height:24px;text-align:center;font-size:13px;color:var(--blue);margin:12px 0}.bare-map-source{font-size:11px;color:var(--muted);margin:10px 0}.bare-map-source summary{display:inline-block;cursor:pointer}.bare-map-source p{font-size:11px}@media(max-width:560px){#main-map{height:52vh;min-height:310px}#map-overseas{gap:14px}.map-hero{padding-top:22px}.bare-map-label{font-weight:500}}
#map-context .map-neighbor{fill:#88a9ec;fill-opacity:.12;stroke:#7395d0;stroke-opacity:.18;stroke-width:.65;vector-effect:non-scaling-stroke;pointer-events:visiblePainted;cursor:pointer}#map-layer.has-selection .map-shape:not(.selected){opacity:.35}#map-layer.has-selection .map-shape.selected{opacity:1}

#map-context .map-neighbor:hover,#map-context .map-neighbor:focus{fill-opacity:.45;stroke-opacity:.9;stroke:#153da6;stroke-width:1.5;outline:none}

@font-face{font-family:Manrope;font-style:normal;font-weight:400;src:url('/fonts/manrope-400.ttf') format('truetype');font-display:swap}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;src:url('/fonts/manrope-600.ttf') format('truetype');font-display:swap}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;src:url('/fonts/manrope-700.ttf') format('truetype');font-display:swap}
:root{--blue:#153da6;--red:#d73847;--paper:#fff;--white:#fff;--ink:#142443;--muted:#53617b;--line:#e1e7f2;--soft:#fff}
body{background:#fff;font-family:Manrope,'Segoe UI',sans-serif}h1,h2,h3,.nav-title{font-family:Manrope,'Segoe UI',sans-serif}h1{font-weight:600;letter-spacing:-1.3px}h2{font-weight:700}button,a,input,select{touch-action:manipulation}
.site-header{height:84px;padding:0 max(28px,calc((100vw - 1150px)/2));gap:32px;border-top:0;border-bottom:1px solid var(--line);background:white;position:relative}.site-header:before{content:'';position:absolute;left:0;top:0;width:74px;height:4px;background:var(--blue)}.site-header:after{content:'';position:absolute;left:87px;top:0;width:25px;height:4px;background:var(--red)}
.site-header .brand{gap:12px;letter-spacing:-1px}.site-header .brand-name{color:var(--blue);margin:0;font-size:24px;font-weight:700;line-height:1.15}.site-header .brand-name strong{font-weight:400}.brand-name small{display:block;font-size:10px;letter-spacing:.15px;font-weight:400;color:var(--muted);margin-top:7px}.site-header nav{gap:8px;align-self:center}.site-header nav a{position:relative;display:flex;align-items:center;gap:9px;padding:13px 18px;border:1px solid transparent;border-radius:7px;font-size:13px;font-weight:600;color:#53617b;transition:background-color .14s,color .14s}.site-header nav a:hover{background:#f4f7ff;color:var(--blue)}.site-header nav a[aria-current=page]{background:var(--blue);color:#fff;border-color:var(--blue)}.nav-number{font-size:10px;font-variant-numeric:tabular-nums;opacity:.65}.site-header nav a[aria-current=page]:after{content:'';position:absolute;bottom:-8px;left:calc(50% - 3px);width:6px;height:3px;background:var(--red)}.main-menu-toggle{display:none}
.map-hero{max-width:790px;margin:0 auto;padding:36px 0 16px}.map-hero .searchbox{max-width:720px;margin:0 auto;align-items:center;padding:8px 8px 8px 20px;border:1px solid #b9cbed;border-radius:12px;box-shadow:0 6px 22px #173c9410;background:#fff;gap:12px}.search-icon{flex-shrink:0;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round}.map-hero .searchbox input{font:400 16px Manrope,'Segoe UI',sans-serif;padding:12px 0;color:var(--ink);outline:none}.map-hero .searchbox input::placeholder{color:#667997}.map-hero .searchbox button{border-radius:7px;padding:14px 22px;font-weight:600;background:var(--blue);color:white;border:0}.map-hero .searchbox:focus-within{outline:2px solid var(--blue);outline-offset:3px;box-shadow:none}.primary{border-radius:5px}.primary:hover,.map-hero .searchbox button:hover{background:#0d2a7d}
#search-results{max-width:1000px;margin:10px auto 26px}#search-results[hidden]{display:none}.bare-map{max-width:1050px}.bare-map-tools{font-weight:600;font-size:12px;height:30px}.bare-map-tools button{border-bottom:1px solid #b9cbed;font:inherit}#main-map{height:min(62vh,650px);background:transparent}#main-map .map-shape{fill:#e3ecff;stroke:white;stroke-width:1.3;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .12s}#main-map .map-shape.has-data{fill:#91b1f2}#main-map .map-shape:hover,#main-map .map-shape:focus{fill:#c0d2fb;stroke:var(--blue);stroke-width:1.6;outline:none}#main-map .map-shape.selected{fill:#153da6;stroke:var(--red);stroke-width:2}.bare-map-label{fill:#10347d;stroke:#ffffff;stroke-width:.018px;font-family:Manrope,'Segoe UI',sans-serif;font-weight:600;letter-spacing:-.002px}#map-context .map-neighbor{fill:#5d89df;fill-opacity:.12;stroke:#416ec1;stroke-opacity:.3;stroke-width:.7}#map-context .map-neighbor:hover,#map-context .map-neighbor:focus{fill-opacity:.27;stroke-opacity:1;stroke:var(--blue);stroke-width:1.3}#map-overseas svg{fill:#91b1f2}#map-overseas button{font-family:Manrope,'Segoe UI',sans-serif}#map-overseas button:hover svg{fill:#153da6}#map-hover{font-weight:600;font-size:12px;min-height:24px}.bare-map-source{opacity:.9}.bare-map-source summary{border-bottom:1px dotted #8ba3ca}.section-toggle,.notice,.territory-note,.chart-readout,.panel,.finance-modes,.metric,.pill,fieldset,#commune-sections{background:white;border-color:var(--line)}.territory-note{border-left-color:var(--red)}.notice,.chart-readout{border-left-color:var(--blue)}.tabs button[aria-selected=true]{background:#edf3ff;color:var(--blue);border-color:var(--blue)}.tabs button:hover{background:#f5f8ff}.pill{color:var(--blue)}th{background:#fff;color:#405b85}.panel{border-radius:6px}.chart-reading strong{color:var(--blue)}.series-plot text{font-family:Manrope,'Segoe UI',sans-serif}.series-plot g:hover rect,.series-plot g:focus rect{fill:var(--red);stroke:#a32434}.table-wrap{scrollbar-color:#b9cbed #fff}.commune-navigation::-webkit-scrollbar-thumb{background:#b9cbed}.brand.small{color:var(--blue)}footer{background:white;color:var(--muted)}
@media(max-width:760px){.site-header{height:auto;min-height:84px;padding:20px;flex-wrap:wrap;gap:16px}.site-header .brand-name{font-size:23px}.brand-name small{font-size:9px}.main-menu-toggle{display:flex;align-items:center;gap:10px;margin-left:auto;border:1px solid #c2d0eb;background:#fff;color:var(--blue);border-radius:6px;padding:9px 12px;font-size:12px;font-weight:600}.main-menu-toggle span{font-size:16px}.site-header nav{width:100%;margin:0;display:flex;flex-direction:column;gap:5px}.site-header nav a{padding:13px 16px;width:100%}.site-header nav a[aria-current=page]:after{display:none}#main-menu-toggle[aria-expanded=false]+nav{display:none}.map-hero{padding:25px 0 12px}.map-hero .searchbox{padding:6px 6px 6px 12px;gap:9px;border-radius:9px}.map-hero .searchbox input{font-size:13px;padding:11px 0}.map-hero .searchbox button{font-size:12px;padding:12px}.search-icon{width:18px;height:18px}#main-map{height:55vh;min-height:330px}.bare-map-label{font-weight:600}.commune-head h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){.site-header nav a,#main-map .map-shape{transition:none}}

/* Carte agrandie et libellés dimensionnés en pixels, y compris après redimensionnement. */
.bare-map{max-width:1180px}#main-map{height:min(76vh,820px)}
.bare-map-label{font-weight:700;letter-spacing:0;stroke-width:var(--label-halo,.02);stroke-linejoin:round;fill:#17356c}
#map-overseas{gap:30px;margin-top:12px}#map-overseas button{font-size:12px;font-weight:600}#map-overseas svg{width:62px;height:49px}
@media(max-width:760px){#main-map{height:auto;aspect-ratio:1;min-height:0}.bare-map-tools{height:22px}#map-overseas{gap:16px;margin-top:16px}#map-overseas button{font-size:10px}#map-overseas svg{width:47px;height:42px}}
/* Rapprocher la carte de la recherche sans déplacer les commandes de retour. */
.map-hero{padding-bottom:4px}


/* Noms au-dessus du dessin, outre-mer dans la première hauteur d’écran. */
.bare-map-tools{position:relative;justify-content:center;height:48px;gap:0}
.bare-map-tools #map-return{position:absolute;left:0;top:8px}
.map-caption{text-align:center;width:100%;padding:0 85px;line-height:1.35}
#map-location{display:block;font-size:12px;color:var(--muted)}
#map-hover{margin:2px 0 0;min-height:20px;font-size:14px;font-weight:700;line-height:1.35}
#main-map{height:min(720px,calc(100svh - 365px));min-height:180px}
@media(max-width:760px){#main-map{height:min(calc(100vw - 36px),calc(100svh - 310px));aspect-ratio:auto;min-height:140px}.map-caption{padding:0 64px}#map-hover{font-size:12px}.bare-map-tools #map-return{font-size:11px}}

/* Typographie cartographique nette, sans halo autour des caractères. */
.bare-map-label{font-family:Manrope,'Segoe UI',sans-serif;font-weight:600;fill:#142f60;stroke:none;paint-order:normal;letter-spacing:0;text-rendering:optimizeLegibility}

/* Le contour actif est dessiné en dernier : aucune frontière voisine ne le recouvre. */
#main-map #map-outline{fill:none;stroke:var(--blue);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
#main-map .map-shape:hover,#main-map .map-shape:focus{stroke:white;stroke-width:1.3}
#map-context .map-neighbor:hover,#map-context .map-neighbor:focus{stroke:#416ec1;stroke-opacity:.3;stroke-width:.7}

/* En-tête du dossier : identité et références administratives. */
.commune-back{margin:22px 0 18px;font-size:12px;font-weight:600;color:var(--muted)}
.commune-back:hover{color:var(--blue)}
.commune-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,auto);align-items:center;gap:24px 48px;padding:0 0 26px;margin-bottom:26px;border-bottom:1px solid var(--line)}
.commune-head:after{content:'';position:absolute;bottom:-1px;left:0;width:64px;height:3px;background:var(--blue);border-right:16px solid var(--red)}
.commune-identity{min-width:0}.commune-identity .eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--muted)}
.commune-head #commune-title{font-size:42px;line-height:1.12;letter-spacing:-1.5px;color:var(--blue);font-weight:700;margin:9px 0 12px;overflow-wrap:anywhere}
.commune-location{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted)}
.commune-location span:first-child{font-weight:600;color:var(--ink)}
.commune-location span+span{border-left:1px solid #c7d4eb;padding-left:14px}
.commune-reference{border-left:1px solid var(--line);padding-left:28px;max-width:420px}
.commune-reference dl{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 14px}
.commune-reference dt{font-size:11px;color:var(--muted);margin-bottom:4px}
.commune-reference dd{margin:0;font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.commune-provenance{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted)}
.commune-provenance .source{font-size:11px}
@media(max-width:760px){.commune-back{margin:18px 0 16px}.commune-head{grid-template-columns:1fr;gap:20px;padding-bottom:22px;margin-bottom:22px}.commune-head #commune-title{font-size:34px;letter-spacing:-1px}.commune-reference{border-left:0;border-top:1px solid var(--line);padding:16px 0 0;max-width:none}.commune-reference dl{gap:16px;margin-bottom:10px}.commune-reference dd{font-size:14px}.commune-location{font-size:12px}}

/* Bandeau communal bleu : motif territorial décoratif, contenu blanc. */
.commune-head{isolation:isolate;overflow:hidden;min-height:218px;padding:34px 38px;border:0;border-radius:16px;background:#173da6;color:white;gap:28px 48px}
.commune-banner-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round}
.banner-blocks{opacity:.09;stroke-width:1.2}.banner-route{opacity:.13;stroke-width:4}
.commune-head:after{bottom:0;left:38px;width:56px;height:3px;background:white;border-right:18px solid #eb5365}
.commune-head #commune-title{color:#fff;font-size:46px;margin:10px 0 15px;letter-spacing:-1.4px}
.commune-head .eyebrow,.commune-head .commune-location,.commune-head .commune-location span:first-child,.commune-head .commune-reference dt,.commune-head .commune-reference dd,.commune-head .commune-provenance,.commune-head .commune-provenance .source{color:#fff}
.commune-head .eyebrow{font-weight:600;letter-spacing:1.8px;font-size:10px}
.commune-head .commune-location{font-size:14px}.commune-head .commune-location span+span{border-color:#ffffff55}
.commune-head .commune-reference{border-color:#ffffff4d;padding-left:30px;max-width:420px}
.commune-head .commune-reference dl{gap:28px;margin-bottom:18px}.commune-head .commune-reference dt{font-size:11px}.commune-head .commune-reference dd{font-size:18px}
.commune-head .source:focus-visible{outline-color:white}.commune-head .source:hover{text-decoration-thickness:2px}
@media(max-width:760px){.commune-head{min-height:0;padding:26px 24px;gap:24px;border-radius:12px}.commune-head #commune-title{font-size:34px;letter-spacing:-1px;margin-bottom:12px}.commune-head .commune-location{font-size:12px}.commune-head .commune-reference{padding:18px 0 0;max-width:none}.commune-head .commune-reference dl{gap:16px;margin-bottom:12px}.commune-head .commune-reference dd{font-size:15px}.commune-head:after{left:24px}.commune-banner-art{width:170%;left:-40%}.banner-blocks{opacity:.07}.banner-route{opacity:.1}}

/* Illustration architecturale, volontairement générique, et références plus lisibles. */
.commune-banner-art{inset:auto;left:36%;bottom:0;width:36%;height:96%;stroke:none;fill:none}
.city-silhouette{fill:#91b9ff;opacity:.12}
.city-linework{fill:none;stroke:#bbd3ff;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;opacity:.38}
.commune-head .commune-reference{width:350px;max-width:100%;padding-left:28px}
.commune-head .commune-reference dl{gap:22px;margin-bottom:20px}
.commune-head .commune-reference dt{font-size:13px;margin-bottom:7px}
.commune-head .commune-reference dd{font-size:24px;font-weight:600;line-height:1.4;letter-spacing:.4px}
.commune-head .commune-provenance{font-size:12px;gap:8px 16px;line-height:1.6}
.commune-head .commune-provenance .source{font-size:12px}
@media(max-width:1100px) and (min-width:761px){.commune-banner-art{left:29%;width:38%;opacity:.55}.commune-head .commune-reference{width:310px}}
@media(max-width:760px){.commune-banner-art{left:auto;right:-35px;bottom:auto;top:12px;width:255px;height:145px;opacity:.4}.commune-head .commune-reference{width:100%;padding:18px 0 0}.commune-head .commune-reference dl{gap:16px;margin-bottom:15px}.commune-head .commune-reference dt{font-size:12px}.commune-head .commune-reference dd{font-size:19px;letter-spacing:0}}

/* Panorama sur toute la largeur, sans séparation devant les références. */
.commune-head .commune-reference{border:0;padding-left:0}
.commune-banner-art{inset:0;width:100%;height:100%;opacity:1}
.city-silhouette{opacity:.05}.city-linework{opacity:.16;stroke-width:1.5}
@media(max-width:760px){.commune-head .commune-reference{border:0;padding:4px 0 0}.commune-banner-art{inset:0;width:100%;height:100%;opacity:1}.city-linework{opacity:.12}.city-silhouette{opacity:.04}}

/* Paysage urbain unique en aplats : quartier bas, place civique et immeubles. */
.commune-banner-art{inset:0;width:100%;height:100%;opacity:1;stroke:none;fill:none}
.urban-distance{fill:#2b51ae;opacity:.34}
.urban-facades{fill:#4771c3;opacity:.18}
.urban-detail{fill:none;stroke:#b4ceff;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.19}
.urban-park{fill:none;stroke:#9bbbec;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.23}
.urban-ground{fill:#7da2e3;opacity:.16}
@media(max-width:760px){.commune-banner-art{opacity:.65}}

/* Paysage illustré issu de la référence fournie, chargé uniquement depuis le projet. */
.commune-head{background-color:#173da6;background-image:linear-gradient(#12399345,#12399345),url('/images/commune-landscape.png');background-size:cover;background-position:center 59%}
@media(max-width:760px){.commune-head{background-image:linear-gradient(#12399370,#12399370),url('/images/commune-landscape.png');background-position:52% center}}

/* Un seul des quatre décors est chargé pour chaque visite du dossier. */
.commune-head{--banner-art:url("/images/commune-landscape.png");background-image:linear-gradient(#12399345,#12399345),var(--banner-art)}
 .commune-head[data-banner="data"]{--banner-art:url("/images/commune-data.png");background-position:center}
 .commune-head[data-banner="location"]{--banner-art:url("/images/commune-location.png");background-position:center}
 .commune-head[data-banner="plan"]{--banner-art:url("/images/commune-plan.png");background-position:center}
@media(max-width:760px){.commune-head{background-image:linear-gradient(#12399370,#12399370),var(--banner-art)}}
/* Conseil municipal : arbre de fonctions et groupes explicitement sourcés. */
.council-section{min-width:0}.council-view{display:flex;gap:4px;border:1px solid var(--line);border-radius:7px;padding:4px;background:white}.council-view button{border:0;border-radius:4px;background:white;color:var(--blue);padding:8px 12px;font-size:12px;font-weight:600}.council-view button[aria-pressed=true]{background:var(--blue);color:white}.council-intro{font-size:13px;color:var(--muted);margin:0 0 26px}.council-root{position:relative;width:max-content;max-width:100%;margin:0 auto 32px;padding:15px 26px;text-align:center;border:1px solid #b9cbed;border-radius:8px;background:#f4f7ff}.council-root span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.council-root strong{display:block;font-size:16px;margin-top:4px;color:var(--blue)}.council-root:after{content:'';position:absolute;width:1px;height:33px;background:#b9cbed;bottom:-33px;left:50%}.council-branches{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:26px;border-top:1px solid #b9cbed}.council-branch{position:relative;min-width:0;padding-top:23px}.council-branch:before{content:'';position:absolute;top:0;left:50%;height:20px;width:1px;background:#b9cbed}.council-branch-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:2px solid var(--blue)}.council-branch-title h3{font-size:15px;margin:0;color:var(--ink)}.council-branch-title b{font-size:11px;white-space:nowrap;color:var(--muted)}.council-branch.opposition .council-branch-title{border-color:#b54455}.council-group-name{font-size:12px;color:var(--muted);margin:9px 0 20px}.council-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.opposition>.council-people,.unknown>.council-people{grid-template-columns:1fr}.council-person{border:1px solid var(--line);border-radius:6px;background:white;min-width:0;overflow-wrap:anywhere}.council-person>summary{list-style:none;padding:14px;cursor:pointer}.council-person>summary::-webkit-details-marker{display:none}.council-person>summary:hover{background:#f5f8ff}.council-person-role{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.council-person strong{font-size:13px;line-height:1.45;display:block}.council-person-more{display:flex;justify-content:space-between;color:var(--blue);font-size:10px;margin-top:10px}.council-person[open] .council-person-more>span{transform:rotate(45deg)}.council-person-detail{padding:0 14px 14px;font-size:12px}.council-person-detail p{font-size:12px}.council-person-detail dl{margin:14px 0}.council-person-detail dl>div{border-top:1px solid var(--line);padding:7px 0}.council-person-detail dt{color:var(--muted);font-size:10px}.council-person-detail dd{margin:3px 0 0;font-size:12px}.council-person-detail .source{font-size:10px}.council-assignment{border-top:1px solid var(--line);padding-top:12px}.council-assignment b{font-size:11px}.council-assignment p{margin:6px 0}.council-mayor-wrap{max-width:360px;margin:0 auto 24px;position:relative}.council-mayor{border-top:3px solid var(--blue)}.council-mayor strong{font-size:17px;color:var(--blue)}.council-level{border-left:1px solid #b9cbed;padding:0 0 0 15px;margin:18px 0 22px}.council-level>summary{font-weight:600;font-size:13px;padding:0 0 12px;color:var(--blue)}.council-level>summary>span{font-size:11px;color:var(--muted);margin-left:5px}.council-functional{max-width:850px;margin:0 auto}.council-functional>.council-level>.council-people{grid-template-columns:repeat(3,minmax(0,1fr))}.council-sources{margin-top:30px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted)}.council-sources h3{font-size:13px;color:var(--ink)}.council-sources p{font-size:12px;margin:8px 0}#council-table caption{text-align:left;font-size:13px;padding-bottom:12px}#council-table table{min-width:850px}#council-tree[hidden],#council-table[hidden]{display:none}
@media(max-width:1100px){.council-branches{grid-template-columns:minmax(0,3fr) minmax(210px,2fr);gap:18px}.council-branch-title{flex-wrap:wrap}.council-branch.majority .council-people{grid-template-columns:1fr}}
@media(max-width:760px){.council-branches{grid-template-columns:1fr;gap:15px}.council-branch{padding-top:16px}.council-branch:before{height:12px}.council-branch.opposition,.council-branch.unknown{border-top:0}.council-functional>.council-level>.council-people{grid-template-columns:1fr}.council-person strong{font-size:14px}.council-person-role{font-size:11px}.council-person-more{font-size:11px}.council-root{padding:12px 18px}.council-root strong{font-size:14px}}
/* Conseil : fiches à initiales et branches encadrées, d’après la référence. */
.council-root{display:flex;align-items:center;gap:16px;text-align:left;padding:18px 24px}.council-assembly-icon{width:36px;height:36px;flex-shrink:0;fill:none;stroke:var(--blue);stroke-width:1.7;stroke-linecap:round}.council-root>div>span{font-size:10px}
.council-branches{gap:18px;padding-top:24px;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:stretch}
.council-branch{border:0;border-radius:0;padding:18px 18px 22px;background:white}.council-branch:before{top:-25px;height:18px}.council-branch-title{padding:0 0 12px}.council-branch-title h3{font-size:17px}.council-branch-title b{font-size:12px;font-weight:600}.council-group-name{margin:12px 0 18px;font-size:13px}
.council-branch .council-mayor-wrap{max-width:none;margin:0 0 24px}.council-person>summary{display:flex;align-items:center;gap:13px;padding:15px 13px;min-height:94px}.council-avatar{display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:#edf2ff;color:#153da6;font-size:15px;font-weight:700}.opposition .council-avatar{background:#fde9ed;color:#ae2940}.council-person-copy{display:block;min-width:0;flex:1}.council-expand{margin-left:auto;color:var(--blue);font-size:18px;flex-shrink:0}.council-person[open] .council-expand{transform:rotate(45deg)}.council-person strong{font-size:12px;line-height:1.5;overflow-wrap:normal;word-break:normal}.council-person-role{font-size:10px;margin-bottom:3px}.council-person-more{margin-top:5px;font-size:11px}.council-mayor .council-avatar{width:54px;height:54px;flex-basis:54px}.council-mayor strong{font-size:16px}.council-mayor>summary{padding:18px}.council-sex{display:inline-block;white-space:nowrap;font-family:'Segoe UI Symbol','Segoe UI',sans-serif;font-size:16px;line-height:1;margin-left:3px;color:var(--muted);vertical-align:baseline}
.council-level{border-left:0;padding:0;margin:22px 0 0}.council-level>summary{padding:10px 4px 14px}.council-level:not([open]){background:#f3f6ff;border-radius:6px}.council-level:not([open])>summary{padding:16px}.council-people{gap:12px}.council-branch.majority .council-people{grid-template-columns:repeat(2,minmax(0,1fr))}.council-branch.unknown .council-avatar{background:#f0f3f8;color:var(--muted)}
@media(min-width:761px) and (max-width:1200px){.council-branches{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}.council-branch.majority .council-people{grid-template-columns:1fr}}
@media(max-width:760px){.council-branches{grid-template-columns:1fr;gap:26px}.council-branch{padding:15px 12px}.council-branch.majority .council-people{grid-template-columns:1fr}.council-person strong{font-size:13px}.council-person>summary{gap:10px;padding:13px 11px}.council-root{padding:15px;gap:10px}.council-assembly-icon{width:29px;height:29px}.council-root strong{font-size:13px}.council-branch-title h3{font-size:15px}.council-mayor>summary{padding:14px 11px}.council-mayor strong{font-size:15px}.council-mayor .council-avatar{width:46px;height:46px;flex-basis:46px}}
/* Les listes postales restent accessibles sans étirer le bandeau. */
.commune-head .postal-open{display:block;background:none;border:0;padding:4px 0 0;color:white;text-decoration:underline;text-underline-offset:3px;font-size:12px;line-height:1.5;font-weight:400;letter-spacing:0}.commune-head .postal-open:focus-visible{outline-color:white}.commune-reference dl>div{min-width:0}
.postal-dialog{width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:28px;border:1px solid var(--line);border-radius:18px;background:white;color:var(--ink);overflow:auto;box-shadow:0 24px 80px #101e3b30}
.postal-dialog::backdrop{background:#101e3b55;backdrop-filter:blur(5px)}
html:has(.postal-dialog[open]){overflow:hidden}
.postal-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.postal-eyebrow{display:block;color:var(--blue);font-size:13px;font-weight:600;margin-bottom:5px;overflow-wrap:anywhere}
.postal-dialog h2{font-size:24px;line-height:1.3;margin:0;letter-spacing:-.5px}
.postal-dialog form{margin:0;flex-shrink:0}
.postal-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#f3f6fc;color:var(--muted);cursor:pointer}
.postal-close:hover{background:#e8eefc;color:var(--blue)}
.postal-close:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.postal-dialog #postal-description{font-size:13px;color:var(--muted);margin:14px 0 22px;line-height:1.5}
.postal-dialog .postal-code-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;list-style:none;padding:0;margin:0}
.postal-code-list li{padding:12px 4px;border:1px solid #e5ebf7;background:#f7f9fd;border-radius:8px;color:var(--blue);text-align:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.3px}
.postal-dialog-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;font-size:12px}
.postal-dialog-footer a{color:var(--muted)}
.postal-dialog-footer a:hover{color:var(--blue)}
@media(max-width:480px){.postal-dialog{padding:22px;border-radius:14px}.postal-dialog .postal-code-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.postal-dialog h2{font-size:22px}}


.council-sex[data-sex="M"]{color:#1657c8}.council-sex[data-sex="F"]{color:#c42b78}

/* Histoire municipale : lecture chronologique et sources dépliables. */
.mayors-page{min-width:0}.mayors-method{background:#f4f7ff;border-left:3px solid #2151c5;padding:16px 20px;color:#465c83;font-size:12px}.mayors-method>strong{color:var(--ink);font-size:13px}.mayors-method p{margin:6px 0;font-size:12px;line-height:1.7}.mayors-method .coverage{margin-top:10px}.mayors-filters{margin:24px 0 30px;padding-bottom:24px;border-bottom:1px solid var(--line)}.mayors-filters input,.mayors-filters select{border-color:#c7d4ee;border-radius:6px;min-height:42px}.mayors-list-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:24px}.mayors-list-heading h3{font-size:16px;margin:0}.mayors-list-heading>span{font-size:12px;color:var(--muted)}.mayor-entry{display:grid;grid-template-columns:76px minmax(0,1fr);gap:24px;position:relative}.mayor-year{font-size:18px;font-weight:700;color:var(--blue);padding-top:3px;font-variant-numeric:tabular-nums}.mayor-body{position:relative;border-left:1px solid #c9d7f3;padding:0 0 30px 28px;min-width:0}.mayor-body:before{content:'';position:absolute;left:-5px;top:9px;width:9px;height:9px;background:var(--blue);border-radius:50%;box-shadow:0 0 0 5px white}.mayor-identity{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.mayor-identity h3{margin:0 0 7px;font-size:21px;line-height:1.4}.mayor-identity>a{font-size:11px;white-space:nowrap;margin-top:6px}.mayor-dates{font-size:13px;margin:0;color:#40577f;font-weight:600}.mayor-dates>span{padding:0 5px;color:#8194b4}.mayor-affiliations{margin:18px 0}.mayor-field-label{display:block;font-size:11px;color:var(--muted);margin-bottom:8px}.mayor-party-list{display:flex;flex-wrap:wrap;gap:6px}.mayor-party-list>span{font-size:12px;background:#eef3ff;color:#153da6;padding:5px 9px;border-radius:4px;font-weight:600}.mayor-unavailable{font-size:13px;margin:0;color:#4f6080}.mayor-unavailable small{font-size:11px}.mayor-evidence{border-bottom:1px solid var(--line)}.mayor-evidence>summary{list-style:none;display:flex;justify-content:space-between;gap:12px;padding:12px 0;font-size:12px;color:var(--blue);cursor:pointer}.mayor-evidence>summary::-webkit-details-marker{display:none}.mayor-evidence>summary>span{font-size:18px;line-height:1}.mayor-evidence[open]>summary>span{transform:rotate(45deg)}.mayor-evidence-content{padding:4px 0 16px;font-size:12px;overflow-wrap:anywhere}.mayor-evidence-content h4{font-size:13px;margin:14px 0 8px}.mayor-evidence-content p{font-size:12px}.mayor-evidence-content .affiliation{border-left:2px solid #cbd9f6;padding:0 0 0 14px;margin:18px 0}.mayor-entry:last-child .mayor-body{padding-bottom:0}
@media(max-width:760px){.mayors-method{padding:13px 15px}.mayors-list-heading{align-items:flex-start;flex-direction:column;gap:6px}.mayor-entry{grid-template-columns:45px minmax(0,1fr);gap:10px}.mayor-year{font-size:14px;padding-top:5px}.mayor-body{padding-left:17px}.mayor-identity{display:block}.mayor-identity h3{font-size:18px}.mayor-identity>a{display:inline-block;margin-top:9px}.mayor-dates{font-size:12px}.mayor-unavailable small{display:block;margin-top:4px}}
.mayors-intro{font-size:13px;color:var(--muted);margin:0 0 26px}

.mayor-dates .mayor-current{color:var(--blue);background:#eef3ff;border-radius:4px;padding:3px 8px}.mayor-rne{font-size:11px;color:var(--muted);margin:8px 0 0}
.mayors-filters{display:grid;grid-template-columns:minmax(0,1fr) 195px;gap:8px 18px;align-items:end}.mayors-filters label{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}.mayor-search-field{min-width:0}.mayor-search-box{display:flex;align-items:center;gap:12px;min-height:50px;border:1px solid #bdcdeb;border-radius:8px;padding:0 13px;background:white;transition:border-color .15s,box-shadow .15s}.mayor-search-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #edf2ff}.mayor-search-box svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:#536b98;stroke-width:1.7;stroke-linecap:round}.mayors-filters .mayor-search-box input{border:0;outline:none;background:transparent;min-width:0;width:100%;padding:12px 0;font-size:14px;box-shadow:none}.mayor-search-box input::-webkit-search-cancel-button{display:none}.mayor-search-box button{border:0;background:#eef3ff;color:var(--blue);border-radius:4px;width:30px;height:30px;flex-shrink:0;font-size:22px;line-height:1}.mayor-search-box button[hidden]{display:none}.mayors-filters .mayor-year-filter{margin:0}.mayors-filters select{display:block;width:100%;height:50px;margin-top:7px;background:white;padding:0 12px;font-size:13px}.mayors-filters #mayor-search-help,.mayors-filters #mayor-search-status{font-size:11px;color:var(--muted);margin:0;min-height:18px}.mayors-filters #mayor-search-status{text-align:right;color:var(--blue)}
@media(max-width:600px){.mayors-filters{grid-template-columns:1fr}.mayors-filters #mayor-search-help{grid-row:2}.mayors-filters #mayor-search-status{text-align:left}.mayor-year-filter{margin-top:6px!important}}
.elections-page{min-width:0}.elections-intro{font-size:13px;color:var(--muted);margin:0 0 24px}.election-years{display:flex;gap:0;overflow-x:auto;padding:8px 3px 18px;margin-bottom:26px}.election-years button{position:relative;flex:1;min-width:126px;background:white;border:0;border-top:2px solid #dbe4f5;padding:22px 10px 12px;text-align:center;color:var(--muted);border-radius:0}.election-year-dot{position:absolute;top:-6px;left:calc(50% - 5px);width:10px;height:10px;background:#bbcbea;border-radius:50%;box-shadow:0 0 0 4px white}.election-years strong{display:block;font-size:21px;color:var(--ink)}.election-years small{display:block;font-size:10px;margin-top:4px}.election-years button[aria-pressed=true]{background:#f1f5ff;color:var(--blue);border-top-color:var(--blue)}.election-years button[aria-pressed=true] strong{color:var(--blue)}.election-years button[aria-pressed=true] .election-year-dot{background:var(--blue)}.election-years button:hover{background:#f7f9ff}.election-selection{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.election-selection h3{font-size:21px;margin:0}.election-rounds{display:flex;border:1px solid var(--line);border-radius:6px;padding:4px;gap:4px}.election-rounds button{border:0;border-radius:4px;padding:8px 16px;font-size:12px;background:white;color:var(--blue)}.election-rounds button[aria-pressed=true]{background:var(--blue);color:white}.election-round-caption{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}.election-round-caption a{color:var(--blue)}.election-territory{font-size:12px;color:var(--muted);margin:8px 0}.election-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding:25px 0 20px;margin:16px 0 0;border-top:1px solid var(--line)}.election-stats dt{font-size:12px;color:var(--muted)}.election-stats dd{margin:6px 0 0;font-size:25px;font-weight:700;font-variant-numeric:tabular-nums}.election-stats>div:first-child dd{color:var(--blue)}.election-ballots{font-size:12px;color:var(--muted);margin:0 0 32px}.election-ranking-title{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}.election-ranking-title h4{font-size:16px;margin:0}.election-ranking-title>span{font-size:11px;color:var(--muted)}.election-ranking{list-style:none;padding:0;margin:0}.election-ranking li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 28px;border-bottom:1px solid var(--line);padding:24px 0}.election-list-main{min-width:0}.election-list-main h4{font-size:15px;margin:0;line-height:1.5;overflow-wrap:anywhere}.election-list-main p{font-size:12px;margin:5px 0 0;color:var(--muted)}.election-list-main .election-nuance{font-size:11px}.election-score{text-align:right;font-variant-numeric:tabular-nums}.election-score strong{display:block;color:var(--blue);font-size:22px}.election-score span{font-size:12px;color:var(--muted)}.election-bar{align-self:center;min-width:0}.election-bar svg{display:block;width:100%;height:6px}.election-track{fill:#edf2fb}.election-fill{fill:#214abe}.election-seats{font-size:12px;text-align:right;color:var(--muted)}.election-seats strong{color:var(--ink)}.election-license{font-size:11px;color:var(--muted);margin:18px 0}.election-sources{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding:16px 0;margin-top:24px}.election-sources>summary{color:var(--blue);cursor:pointer}.election-sources p{font-size:12px}
@media(max-width:760px){.election-years button{min-width:105px}.election-years small{font-size:9px}.election-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.election-stats dd{font-size:23px}.election-selection{align-items:flex-start;flex-direction:column}.election-round-caption{flex-wrap:wrap}.election-ranking-title{align-items:flex-start;flex-direction:column;gap:5px}.election-ranking li{gap:12px}.election-score strong{font-size:18px}.election-list-main h4{font-size:13px}.election-seats{font-size:10px}.election-list-main p{font-size:11px}}.election-scopes{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}.election-scopes button{border:1px solid var(--line);border-radius:4px;background:white;color:var(--blue);padding:7px 10px;font-size:11px;text-align:left}.election-scopes button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:white}.election-scopes[hidden],.election-scope-note[hidden],.election-rounds[hidden]{display:none}.election-scope-note{font-size:12px;color:var(--muted);margin:0 0 24px}.arrondissement-note{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:16px;margin:0 0 24px}.arrondissement-note a{color:var(--blue);text-decoration:underline}.arrondissement-directory{margin:0 0 24px;border-bottom:1px solid var(--line);padding-bottom:16px;font-size:13px}.arrondissement-directory summary{cursor:pointer;color:var(--blue);font-weight:600}.arrondissement-directory>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.arrondissement-directory a{padding:8px;background:#f4f7ff;border-radius:4px;font-size:12px}.election-seats{max-width:210px}@media(max-width:760px){.arrondissement-directory>div{grid-template-columns:repeat(2,minmax(0,1fr))}.election-scopes{max-height:185px;overflow:auto;padding:4px}.election-scopes button{flex:1 0 44%;font-size:10px}.election-seats{max-width:125px}}.election-summary-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.election-summary-heading h4{font-size:18px;margin:0}.election-summary-heading>span{font-size:12px;color:var(--blue)}.election-summary-table{min-width:610px;width:100%}.election-summary-table button{border:0;background:transparent;color:var(--blue);text-align:left;padding:4px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px}.election-summary-table td{font-variant-numeric:tabular-nums}.election-summary .election-scope-note{margin-top:12px}@media(max-width:760px){.election-summary-heading{align-items:flex-start;flex-direction:column;gap:6px}}
.election-summary-back{border:0;background:transparent;color:var(--blue);font-size:12px;padding:6px 0;margin-bottom:16px;text-decoration:underline;text-underline-offset:3px}

.election-view-choice{display:flex;gap:5px;margin:0 0 22px;flex-wrap:wrap}.election-view-choice[hidden]{display:none}.election-view-choice button{padding:9px 14px;background:white;color:var(--blue);border:1px solid var(--line);border-radius:5px;font-size:12px}.election-view-choice button[aria-pressed=true]{color:white;background:var(--blue);border-color:var(--blue)}

/* Finance: open sections, a shared exercise selection and a separate archive view. */
.finance-page{padding:0 0 16px}.finance-heading h2{font-size:24px;margin:0 0 6px;letter-spacing:-.6px}.finance-heading p,.finance-intro{font-size:13px;color:var(--muted);margin:0}.finance-intro{margin:24px 0}.finance-view-switch{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);gap:20px;margin:26px 0 30px}.finance-view-switch button{text-align:left;border:0;border-bottom:3px solid transparent;background:white;color:var(--muted);padding:14px 0;font:inherit;font-weight:600}.finance-view-switch button span{display:block;font-size:12px;font-weight:400;margin-top:5px}.finance-view-switch button[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue)}.finance-page h3{font-size:17px;margin:0;letter-spacing:-.3px}.finance-exercise-heading,.finance-summary-heading,.finance-chart-heading,.finance-archive-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.finance-exercise-heading>span{font-size:12px;color:var(--muted)}.finance-years{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 32px}.finance-years button{font:inherit;font-size:14px;font-weight:600;padding:10px 17px;border:1px solid var(--line);border-radius:5px;color:var(--blue);background:white}.finance-years button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:white}.finance-units{display:flex;padding:3px;border:1px solid var(--line);border-radius:5px}.finance-units button{border:0;border-radius:3px;padding:8px 10px;background:white;color:var(--blue);font:inherit;font-size:12px}.finance-units button[aria-pressed=true]{background:#edf2ff;font-weight:700}.finance-keyfigures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:18px 0 32px}.finance-keyfigures .finance-kpi-button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:20px 16px 16px;border:0;border-top:2px solid var(--line);border-radius:0;background:white;color:var(--ink);font:inherit;min-width:0}.finance-keyfigures .finance-kpi-button[aria-pressed=true]{border-top-color:var(--blue);background:#f5f8ff}.finance-keyfigures .finance-kpi-button:hover{background:#f5f8ff}.finance-keyfigures .finance-kpi-button>span:first-child{font-size:13px}.finance-keyfigures strong{font-size:clamp(20px,2vw,29px);letter-spacing:-.8px;line-height:1.4;margin:10px 0;color:var(--blue);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.finance-keyfigures small{color:var(--muted);font-size:12px;line-height:1.6}.finance-explore{font-size:11px;color:var(--blue);margin-top:12px}.finance-evolution{border:1px solid var(--line);border-radius:8px;padding:24px;margin:0 0 26px}.finance-chart-heading{align-items:start}.finance-chart-heading p{font-size:12px;color:var(--muted);margin:8px 0}.finance-chart-heading label{display:grid;gap:5px;max-width:50%;font-size:11px;color:var(--muted)}.finance-chart-heading select,.finance-boundary select{font:inherit;font-size:13px;border-color:var(--line);color:var(--ink)}.finance-exact,.finance-method{border-top:1px solid var(--line);padding:18px 0;font-size:13px}.finance-exact summary{font-weight:600;color:var(--ink)}.finance-exact summary span{margin-left:12px;font-size:12px;font-weight:400;color:var(--muted)}.finance-method{color:var(--muted);line-height:1.8}.finance-method summary{color:var(--blue)}.finance-boundary{border-left:3px solid var(--blue);padding:4px 18px;margin:0 0 28px}.finance-boundary label{display:block;margin-bottom:8px;font-weight:600}.finance-boundary p{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:0}.finance-archive-heading{margin-bottom:22px}.finance-page button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.finance-page .chart-reading{border-top:1px solid var(--line);margin-top:16px}.finance-page .chart-values{margin-bottom:0}
@media(max-width:650px){.finance-summary-heading,.finance-chart-heading,.finance-exercise-heading,.finance-archive-heading{align-items:flex-start;flex-direction:column}.finance-keyfigures{gap:0 12px}.finance-keyfigures .finance-kpi-button{padding:16px 8px}.finance-keyfigures strong{font-size:20px;letter-spacing:-.6px}.finance-view-switch{gap:14px}.finance-view-switch button{font-size:13px}.finance-view-switch button span{font-size:11px}.finance-evolution{padding:16px 12px}.finance-chart-heading label{max-width:100%;width:100%}.finance-years{gap:6px}.finance-years button{padding:9px 13px}.finance-keyfigures small{font-size:11px}.finance-heading h2{font-size:22px}}

.finance-provenance,.finance-series-note,.finance-status{font-size:12px;color:var(--muted);line-height:1.7}.finance-provenance{margin:-14px 0 22px}.finance-series-note{margin:12px 0 0}.finance-status button{background:white;color:var(--blue);border:1px solid var(--line);padding:5px 10px;border-radius:4px}

/* Compact exercise rail and complementary finance graphics. */
.finance-year-range{display:block;color:var(--muted);font-size:12px;margin-top:6px}.finance-year-arrows{display:flex;gap:8px}.finance-year-arrows button{border:1px solid var(--line);border-radius:5px;width:35px;height:35px;background:white;color:var(--blue);font-size:19px}.finance-year-arrows button:disabled{opacity:.3;cursor:default}.finance-page .finance-exercise-heading{flex-direction:row;align-items:center}.finance-year-rail{margin:18px 0 30px;min-width:0}.finance-page .finance-years{position:relative;flex-wrap:nowrap;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#c1cff0 white;margin:0;padding:0 0 10px}.finance-page .finance-years button{position:relative;flex:0 0 76px;border:0;border-radius:0;background:white;color:var(--muted);padding:22px 8px 12px;font-size:15px;border-top:2px solid #dde6f8;margin-top:7px}.finance-page .finance-years button[aria-pressed=true]{background:#eef3ff;color:var(--blue);border-top-color:var(--blue);font-weight:700}.finance-year-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#c2d1ee;border:3px solid white;box-sizing:content-box;top:-8px;left:calc(50% - 7px)}.finance-years button[aria-pressed=true] .finance-year-dot{background:var(--blue)}.finance-page .finance-years button:focus-visible{outline-offset:-3px}.finance-visual-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 28px}.finance-visual{min-width:0;border-top:1px solid var(--line);padding:22px 0 0}.finance-visual-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.finance-visual-heading span{font-size:11px;color:var(--muted)}.finance-balance-plot{display:block;width:100%;height:190px}.finance-bar-label,.finance-bar-value{font:12px Manrope,sans-serif;fill:#283f67}.finance-bar-value{font-weight:600}.finance-chart-caption{color:var(--muted);font-size:11px;line-height:1.7;margin:14px 0 0}.finance-donut-layout{display:flex;align-items:center;gap:12px;min-height:190px}.finance-donut{width:170px;flex-shrink:0}.finance-donut-percent{font:700 25px Manrope,sans-serif;fill:#193eb0}.finance-donut-label{font:12px Manrope,sans-serif;fill:#53698a}.finance-chart-legend{list-style:none;margin:0;padding:0;flex:1;min-width:0}.finance-chart-legend li{display:grid;grid-template-columns:8px 1fr;gap:6px 8px;font-size:12px;margin:16px 0;align-items:center}.finance-chart-legend strong{grid-column:2;font-size:15px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.finance-legend-dot{width:8px;height:8px;border-radius:2px;background:#193eb0}.finance-legend-dot.other{background:#dce6fc;border:1px solid #bcccec}.finance-visual-empty{font-size:13px;color:var(--muted);padding:35px 0;line-height:1.8}
@media(max-width:1150px){.finance-visual-grid{grid-template-columns:1fr}.finance-donut-layout{justify-content:flex-start}.finance-chart-legend{max-width:320px}}@media(max-width:650px){.finance-page .finance-years button{flex-basis:65px}.finance-donut{width:145px}.finance-donut-layout{gap:10px}.finance-chart-legend strong{font-size:13px}.finance-visual-heading h3{font-size:16px}.finance-visual-grid{gap:26px}.finance-balance-plot{height:auto}.finance-visual-heading{align-items:flex-start}.finance-visual-heading span{text-align:right;max-width:110px}}

/* Display a complete, centered window of years: no clipped selections or scrollbar. */
.finance-page .finance-years{overflow:visible;padding:0;scrollbar-width:none}.finance-page .finance-years button{flex:1 1 0;min-width:0;padding:21px 4px 14px}.finance-page .finance-years button[hidden]{display:none}.finance-page .finance-years button[aria-pressed=true]{border-radius:0 0 6px 6px}.finance-year-rail{margin:22px 0 32px}.finance-year-arrows button:hover:not(:disabled){background:#edf3ff;border-color:#8fa8df}

/* Drag to browse exercises; native touch scrolling and no visible scrollbar. */
.finance-page .finance-years{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;cursor:grab;user-select:none;touch-action:pan-x pan-y}.finance-page .finance-years::-webkit-scrollbar{display:none}.finance-page .finance-years button{flex-grow:0;flex-shrink:0;scroll-snap-align:start;cursor:inherit}.finance-page .finance-years.is-dragging{cursor:grabbing;scroll-snap-type:none}

/* Open financial evolution, with a shared interactive reading. */
.finance-evolution{border:0;border-top:1px solid var(--line);border-radius:0;padding:28px 0 0;margin-top:34px}.trend-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:22px 0 4px}.trend-label,.trend-year{display:block;font-size:12px;color:var(--muted)}.trend-value{display:block;font-size:32px;letter-spacing:-.7px;color:var(--blue);margin:5px 0;font-variant-numeric:tabular-nums}.trend-style{display:flex;gap:3px;border:1px solid var(--line);padding:3px;border-radius:5px}.trend-style button{font:inherit;font-size:12px;padding:7px 12px;border:0;background:white;color:var(--blue);border-radius:3px}.trend-style button[aria-pressed=true]{background:#edf3ff;font-weight:700}.trend-plot{width:100%;max-height:360px;display:block;overflow:visible}.trend-grid line{stroke:#e4ebf8}.trend-grid text{font:12px Manrope,sans-serif;fill:#526b91}.trend-line{fill:none;stroke:#193eb0;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke}.trend-dot{fill:white;stroke:#193eb0;stroke-width:2;vector-effect:non-scaling-stroke}.trend-bar{fill:#91ace7}.trend-zero{stroke:#b1c3e6}.trend-guide{stroke:#adbfe5;stroke-dasharray:4 5;opacity:0}.trend-plot g.is-active .trend-guide{opacity:1}.trend-plot g.is-active .trend-dot{fill:#193eb0;stroke-width:3}.trend-plot g.is-active .trend-bar{fill:#193eb0}.trend-plot g:focus{outline:none}.trend-plot g:focus .trend-dot,.trend-plot g:focus .trend-bar{stroke:#c43250;stroke-width:3}.trend-hit{cursor:crosshair}.trend-footer{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px;margin:10px 0 20px}.finance-visual-grid{margin-bottom:0}.finance-evolution .chart-values{border-top:1px solid var(--line);padding-top:14px}
@media(max-width:650px){.finance-evolution{padding:24px 0 0}.trend-value{font-size:23px}.trend-toolbar{gap:10px;align-items:flex-start}.trend-style button{padding:7px 8px}.trend-footer{flex-direction:column;gap:5px}.trend-plot-wrap{overflow-x:auto}.trend-plot{min-width:470px}.trend-toolbar>div:first-child{min-width:0}.trend-value{overflow-wrap:anywhere}}

@media(max-width:650px){.trend-plot{min-width:0}.trend-grid text{font-size:11px}}

.trend-range{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0;padding:14px 0;border-block:1px solid var(--line)}.trend-range-dates{display:flex;gap:12px;align-items:center}.trend-range-dates label{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted)}.trend-range-dates select{border-color:var(--line);font:inherit;color:var(--ink);padding:7px 24px 7px 10px}.trend-range-dates>span{color:#8094ba}.trend-presets{display:flex;gap:5px}.trend-presets button{border:0;border-radius:4px;background:white;color:var(--blue);font:inherit;font-size:12px;padding:8px 12px}.trend-presets button[aria-pressed=true]{background:#edf3ff;font-weight:700}.trend-plot-wrap{margin-bottom:22px}@media(max-width:650px){.trend-range{align-items:flex-start;flex-direction:column;gap:12px}.trend-presets{align-self:flex-end}.trend-range-dates{width:100%;justify-content:space-between}}

.finance-history-choice{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:12px;color:var(--blue);margin:18px 0 0;cursor:pointer}.finance-history-choice input{accent-color:var(--blue);width:16px;height:16px;margin:0}.finance-history-choice span{color:var(--muted)}

.trend-selected-year{pointer-events:none}.trend-selected-year line{stroke:#d32f4a;stroke-width:1.8;stroke-dasharray:5 5;vector-effect:non-scaling-stroke}.trend-selected-year text{fill:#c3213e;font:700 12px Manrope,sans-serif}

.trend-plot g[data-selected-year="true"] .trend-guide{display:none}

.finance-evolution{scroll-margin-top:24px}.finance-evolution:focus{outline:none}

/* Fiscality: published rates, paired comparisons and open sections. */
.tax-page h2{margin:0;font-size:24px}.tax-page h3{margin:0;font-size:17px;letter-spacing:-.3px}.tax-intro{font-size:13px;color:var(--muted);margin:24px 0 30px}.tax-year-heading,.tax-section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.tax-year-heading>span,.tax-section-heading>span{font-size:12px;color:var(--muted)}.tax-years{display:flex;gap:0;overflow:auto;margin:24px 0 34px;scrollbar-width:none}.tax-years button{flex:1;min-width:66px;background:white;border:0;border-top:2px solid var(--line);padding:17px 8px;color:var(--muted);font:inherit;font-size:16px;font-weight:600}.tax-years button[aria-pressed=true]{background:#edf3ff;color:var(--blue);border-color:var(--blue)}.tax-rate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:20px 0 0}.tax-rate{min-width:0;display:flex;align-items:flex-start;flex-direction:column;gap:8px;text-align:left;border:0;border-top:2px solid var(--line);background:white;color:var(--ink);padding:18px 12px;font:inherit}.tax-rate[aria-pressed=true],.tax-rate:hover{background:#f5f8ff;border-top-color:var(--blue)}.tax-rate-name{font-size:14px;font-weight:600;min-height:40px}.tax-rate-label{font-size:11px;color:var(--muted)}.tax-rate>strong{font-size:26px;letter-spacing:-.6px;color:var(--blue);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tax-global-value{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);margin:8px 0}.tax-global-value b{font-size:16px;color:var(--ink);font-weight:600}.tax-rate small{font-size:11px;color:var(--muted);min-height:30px}.tax-go{font-size:11px;color:var(--blue);margin-top:auto}.tax-reading-note{font-size:12px;color:var(--muted);margin:16px 0 32px}.tax-evolution{padding:28px 0;border-top:1px solid var(--line);scroll-margin-top:24px}.tax-evolution:focus{outline:none}.tax-section-heading p{font-size:12px;color:var(--muted);margin:8px 0 0}.tax-section-heading label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.tax-section-heading select{font:inherit;font-size:13px;border-color:var(--line);color:var(--ink)}.tax-legend{display:flex;gap:24px;margin:24px 0 12px;font-size:12px;color:var(--muted)}.tax-legend span{display:flex;gap:8px;align-items:center}.tax-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.tax-swatch.tax-local{background:#193eb0}.tax-swatch.tax-global{background:#8ba9e8}.tax-bar.tax-local{fill:#193eb0}.tax-bar.tax-global{fill:#8ba9e8}.tax-plot{display:block;width:100%;max-height:360px}.tax-plot text{font:12px Manrope,sans-serif;fill:#597199}.tax-grid line{stroke:#e1e9f6}.tax-plot .tax-selected-tick{fill:var(--blue);font-weight:700}.tax-plot g:focus{outline:none}.tax-plot g[tabindex]:focus rect,.tax-plot g[tabindex]:hover rect{stroke:#c82d4e;stroke-width:2}.tax-readout{font-size:12px;color:var(--blue);min-height:22px;margin:16px 0}.tax-values,.tax-method{font-size:13px;border-top:1px solid var(--line);padding:18px 0;color:var(--muted)}.tax-values summary,.tax-method summary{color:var(--blue)}.tax-method p{line-height:1.8}.tax-additional{border-top:1px solid var(--line);padding:25px 0}.tax-additional .table-wrap{margin-top:16px}.tax-page button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(max-width:1100px){.tax-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.tax-rate-grid{gap:10px}.tax-rate{padding:14px 8px}.tax-rate>strong{font-size:23px}.tax-section-heading{align-items:flex-start;flex-direction:column}.tax-section-heading label{width:100%}.tax-rate-name{min-height:22px}.tax-plot text{font-size:11px}.tax-years button{font-size:14px}.tax-heading h2{font-size:22px}}

.tax-fiscal{padding:26px 0;border-top:1px solid var(--line)}.tax-fiscal>.table-wrap{margin-top:18px}.tax-fiscal td:not(:first-child){font-variant-numeric:tabular-nums}.tax-fiscal .chart-reading{border-top:0}

.tax-info-heading{display:flex;align-items:center;gap:10px;position:relative;max-width:100%}.tax-info{display:flex;align-items:center}.tax-info-button{display:grid;place-items:center;flex-shrink:0;width:18px;height:18px;padding:0;border:1px solid #bacbee;border-radius:50%;background:white;color:var(--blue);font:600 11px Georgia,serif;cursor:help}.tax-info-button:hover,.tax-info-button[aria-expanded=true]{background:#edf3ff;border-color:var(--blue)}.tax-info-panel{position:absolute;z-index:10;top:calc(100% + 10px);left:0;width:420px;max-width:calc(100vw - 64px);padding:18px 20px;background:white;border:1px solid #ccd9f0;border-radius:8px;box-shadow:0 8px 28px #102b6420;color:var(--ink);font-size:12px;line-height:1.65}.tax-info-panel[hidden]{display:none}.tax-info-panel>strong{font-size:14px}.tax-info-panel p{margin:10px 0;color:var(--ink)}.tax-info-panel small{display:block;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}

.tax-info-panel::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}

.grants-page h2{font-size:24px;margin:0}.grants-page h3{font-size:17px;margin:0;letter-spacing:-.3px}.grants-intro{margin:24px 0 30px;color:var(--muted);font-size:13px}.grants-amount-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px}.grants-amount-heading>span{font-size:12px;color:var(--muted)}.grants-metrics{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}.grant-metric{display:flex;flex-direction:column;align-items:flex-start;gap:12px;border:0;border-top:2px solid var(--line);background:white;text-align:left;padding:20px 16px;color:var(--ink);font:inherit;min-width:0}.grant-metric[aria-pressed=true],.grant-metric:hover{background:#f5f8ff;border-color:var(--blue)}.grant-metric>span:first-child{font-size:14px}.grant-metric strong{font-size:29px;letter-spacing:-.7px;color:var(--blue);font-variant-numeric:tabular-nums}.grant-metric small{font-size:12px;color:var(--muted)}.grant-metric-link{font-size:11px;color:var(--blue)}.grants-overlap{font-size:12px;color:var(--muted);margin:18px 0 30px}.grants-evolution{border-top:1px solid var(--line);padding:28px 0 12px;scroll-margin-top:24px}.grants-evolution:focus{outline:none}.grants-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0}.grants-chart-heading>div:first-child{display:grid;gap:9px}.grants-chart-heading span,.grants-chart-heading small{font-size:12px;color:var(--muted)}.grants-chart-heading strong{font-size:30px;color:var(--blue);font-variant-numeric:tabular-nums}.grants-chart-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:5px}.grants-chart-switch button{font:inherit;font-size:12px;color:var(--blue);background:white;border:0;padding:9px 12px;border-radius:3px}.grants-chart-switch button[aria-pressed=true]{background:#edf3ff;font-weight:600}.grants-plot{width:100%;display:block}.grants-plot text{fill:var(--muted);font:12px Manrope,sans-serif}.grants-grid line{stroke:var(--line)}.grants-line{fill:none;stroke:#193eb0;stroke-width:2.5}.grants-point{fill:white;stroke:#193eb0;stroke-width:2}.grants-point.selected{fill:#193eb0}.grants-bar{fill:#193eb0}.grants-year-marker{stroke:#dd3153;stroke-dasharray:5 5;opacity:.7}.grants-plot .grants-year-label{fill:#cf2044;font-weight:700}.grants-plot g[tabindex]{cursor:pointer}.grants-plot g[tabindex]:hover circle,.grants-plot g[tabindex]:focus circle{stroke-width:4}.grants-plot g[tabindex]:hover rect,.grants-plot g[tabindex]:focus rect{fill:#5678d0}#grant-readout{font-size:12px;min-height:20px;color:var(--blue);margin:12px 0 20px}.grants-page button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(max-width:650px){.grants-metrics{gap:14px;grid-template-columns:1fr}.grant-metric{padding:16px 12px}.grant-metric strong{font-size:26px}.grants-chart-heading{align-items:flex-start;flex-direction:column}.grants-plot{min-width:570px}#grant-chart{overflow-x:auto}.grants-chart-heading strong{font-size:26px}.grants-amount-heading{align-items:flex-start;flex-direction:column}}

.grant-tile{position:relative;min-width:0}.grant-tile .grant-metric{width:100%;height:100%}.grant-tile .grant-metric>span:first-child{padding-right:28px}.grant-info{position:absolute;right:16px;top:20px}.grant-info .tax-info-panel{left:auto;right:0;top:28px;width:300px;max-width:min(300px,calc(100vw - 80px))}.grant-info .tax-info-button{width:18px;height:18px;font-size:11px}

.subsidies-page h2{font-size:24px;margin:0}.subsidies-intro{font-size:13px;color:var(--muted);margin:24px 0 30px}.subsidy-search{margin:0 0 32px}.subsidy-search label{display:block;font-size:12px;margin-bottom:9px;color:var(--muted)}.subsidy-search-box{display:flex;align-items:center;gap:12px;border:1px solid #b9cae8;border-radius:6px;padding:0 14px;max-width:650px;background:white}.subsidy-search-box:focus-within{outline:2px solid #193eb0;outline-offset:2px}.subsidy-search-box svg{width:20px;height:20px;fill:none;stroke:var(--blue);stroke-width:1.6;flex-shrink:0}.subsidy-search-box input{border:0;background:transparent;outline:none;box-shadow:none;flex:1;min-width:0;width:100%;font:inherit;font-size:14px;padding:15px 0}.subsidy-search-box button{border:0;background:transparent;color:var(--blue);font-size:22px;padding:4px 8px}.subsidy-list-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:28px 0 20px;scroll-margin-top:25px}.subsidy-list-heading span{font-size:12px;color:var(--muted)}.subsidy-columns,.subsidy-row{display:grid;grid-template-columns:minmax(0,1fr) 175px 170px;gap:24px}.subsidy-columns{padding:0 0 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.subsidy-columns span:not(:first-child){text-align:right}.subsidy-entry{border-bottom:1px solid var(--line);padding:21px 0 16px}.subsidy-identity h4{font-size:14px;line-height:1.65;margin:0;font-weight:600;overflow-wrap:anywhere}.subsidy-identity p{font-size:11px;color:var(--muted);margin:6px 0 0}.subsidy-sum,.subsidy-kind{text-align:right;align-self:center;font-variant-numeric:tabular-nums}.subsidy-sum strong{font-size:17px;color:var(--blue);font-weight:600}.subsidy-kind strong{font-size:14px;font-weight:500;color:var(--muted)}.subsidy-sum>span,.subsidy-kind>span{display:none}.subsidy-details{font-size:12px;margin-top:12px}.subsidy-details summary{color:var(--blue);font-size:11px;cursor:pointer;width:fit-content}.subsidy-details dl{display:flex;flex-wrap:wrap;gap:16px 36px;background:#f5f8ff;padding:16px;margin:14px 0}.subsidy-details dt{font-size:11px;color:var(--muted);margin-bottom:5px}.subsidy-details dd{margin:0}.subsidy-details small{color:var(--muted);font-size:11px}.subsidy-loading{padding:45px 0;color:var(--muted);font-size:13px}.subsidies-page .tax-method{margin-top:26px}
@media(max-width:750px){.subsidy-columns{display:none}.subsidy-row{grid-template-columns:1fr 1fr;gap:16px}.subsidy-identity{grid-column:1/-1}.subsidy-sum,.subsidy-kind{text-align:left}.subsidy-sum>span,.subsidy-kind>span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.subsidy-list-heading{flex-direction:column;gap:8px}.subsidy-entry{padding:22px 0}.subsidy-search-box{padding:0 10px}.subsidy-search-box input{font-size:13px}}

.subsidy-identity .subsidy-mixed{color:var(--blue);font-weight:600}.subsidy-details dd{overflow-wrap:anywhere}.subsidy-details dl>div{max-width:100%}

.markets-page h2{font-size:24px;margin:0}.markets-intro{font-size:13px;color:var(--muted);margin:24px 0 30px}.market-year-actions{display:flex;align-items:center;gap:16px}#market-all-years,#project-all,#document-all{border:1px solid var(--line);background:white;color:var(--blue);font:inherit;font-size:12px;padding:9px 12px;border-radius:4px}#market-all-years[aria-pressed=true],#project-all[aria-pressed=true],#document-all[aria-pressed=true]{background:#edf3ff;border-color:#afc2ea}.market-summary{display:grid;grid-template-columns:1fr 1fr;gap:28px}.market-summary>div{border-top:2px solid var(--line);display:flex;flex-direction:column;gap:10px;padding:20px 0}.market-summary>div>span{font-size:13px}.market-summary strong{font-size:29px;color:var(--blue);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.market-summary small{font-size:12px;color:var(--muted);font-weight:400}.market-summary[aria-busy=true]{opacity:.45}.market-reading{font-size:12px;color:var(--muted);margin:0 0 32px;max-width:780px}.market-entry{border-top:1px solid var(--line);padding:24px 0}.market-entry-top{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px;margin-bottom:12px}.market-entry-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}.market-entry h4{font-size:16px;line-height:1.6;margin:0;overflow-wrap:anywhere;font-weight:600}.market-amount{font-size:21px;font-weight:600;color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums}.market-amount small{font-size:11px;font-weight:400}.market-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:14px 0;font-size:12px;color:var(--muted)}.market-award{display:flex;gap:14px;font-size:12px;line-height:1.8}.market-award>span{color:var(--muted);flex-shrink:0}.market-award>div{min-width:0;overflow-wrap:anywhere}.market-award a{color:var(--blue);text-decoration:none}.market-award a:hover{text-decoration:underline}.market-details{font-size:12px;margin-top:16px}.market-details summary{font-size:11px;color:var(--blue);cursor:pointer;width:fit-content}.market-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:20px;background:#f6f8fd;margin-top:14px}.market-detail-grid h5{font-size:13px;margin:0 0 16px}.market-detail-grid .detail{overflow-wrap:anywhere}.market-supplier{margin:0 0 16px;overflow-wrap:anywhere}.market-supplier a{color:var(--blue)}.market-supplier small{display:block;color:var(--muted);margin-top:6px;font-size:11px}.market-details>p{color:var(--muted);line-height:1.8}.market-amendment{border-left:2px solid var(--blue);padding-left:12px}.markets-page>.tax-method{margin-top:24px}
@media(max-width:650px){.market-summary{gap:16px}.market-summary strong{font-size:23px}.market-entry-main{grid-template-columns:1fr;gap:12px}.market-entry-top{align-items:flex-start}.market-entry-top>span:last-child{text-align:right}.market-award{flex-direction:column;gap:4px}.market-detail-grid{grid-template-columns:1fr;padding:16px}.market-year-actions{gap:8px}.market-year-actions .finance-year-arrows{gap:5px}.markets-page .finance-exercise-heading{align-items:flex-start;flex-direction:column}}

@media(max-width:450px){.market-summary{grid-template-columns:1fr}.market-summary strong{white-space:nowrap}}
.projects-page h2{font-size:24px;margin:0}.projects-intro{color:var(--muted);margin:20px 0 30px}.project-entry{padding:26px 0;border-top:1px solid var(--line)}.project-caption{display:flex;justify-content:space-between;gap:16px;color:var(--blue);font-size:12px;margin-bottom:12px}.project-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px}.project-main h4{font-size:17px;line-height:1.6;margin:0;overflow-wrap:anywhere}.project-main p{font-size:13px;color:var(--muted);margin:8px 0}.project-budget{text-align:right}.project-budget span{display:block;font-size:12px;color:var(--muted)}.project-budget strong{display:block;font-size:23px;color:var(--blue);white-space:nowrap}.project-progress{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}.project-progress span{color:var(--muted)}.project-progress strong{color:var(--blue);font-weight:500}.project-details{margin-top:18px;font-size:13px}.project-details summary{cursor:pointer;color:var(--blue)}.project-details dl{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;background:#f5f7ff;padding:20px}.project-details dt{color:var(--muted);font-size:12px}.project-details dd{margin:4px 0 0;overflow-wrap:anywhere}.project-details small{color:var(--muted)}@media(max-width:650px){.project-main{grid-template-columns:1fr;gap:12px}.project-budget{text-align:left}.project-details dl{grid-template-columns:1fr}.project-caption{align-items:baseline}.projects-page .finance-exercise-heading{flex-wrap:wrap}}

.project-main{align-items:start}.project-budget .project-year{color:var(--blue);margin-bottom:6px}.project-entry{padding:22px 0}.project-details{margin-top:14px}
.urban-page h2{font-size:24px;margin:0}.urban-guide{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin:28px 0 38px;padding:24px 0;border-block:1px solid var(--line)}.urban-guide h3{margin:0 0 12px;font-size:20px}.urban-guide p{color:var(--muted);font-size:14px;max-width:580px}.urban-map{display:inline-block;margin-top:8px;padding:10px 14px;border-radius:5px;font-size:13px}.urban-guide ol{margin:0;padding-left:24px;color:var(--blue)}.urban-guide li{padding:0 0 14px 8px}.urban-guide li strong,.urban-guide li span{display:block}.urban-guide li strong{font-size:14px}.urban-guide li span{font-size:13px;color:var(--muted);margin-top:3px}.urban-document{padding:24px 0;border-top:1px solid var(--line)}.urban-doc-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.urban-type{font-size:12px;color:var(--blue);font-weight:700}.urban-doc-head h4{font-size:21px;margin:4px 0 0}.urban-status{color:var(--blue);font-size:13px;text-align:right}.urban-status small{display:block;font-size:11px;color:var(--muted)}.urban-description{max-width:780px;color:var(--muted);font-size:14px}.urban-dates{display:flex;gap:36px;margin:20px 0;font-size:12px;color:var(--muted)}.urban-dates strong{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-top:4px}.urban-open{display:inline-block;color:var(--blue);font-weight:600;font-size:14px}.urban-details{margin-top:18px;font-size:13px}.urban-details summary{cursor:pointer;color:var(--muted)}.urban-details dl{display:flex;flex-wrap:wrap;gap:20px 40px;padding:16px;background:#f5f7ff}.urban-details dt{color:var(--muted);font-size:12px}.urban-details dd{margin:4px 0 0;overflow-wrap:anywhere}.urban-details p{color:var(--muted)}@media(max-width:650px){.urban-guide{grid-template-columns:1fr;gap:20px}.urban-doc-head{flex-direction:column;gap:12px}.urban-status{text-align:left}.urban-status small{display:inline;margin-left:6px}.urban-dates{flex-wrap:wrap;gap:16px}.urban-doc-head h4{font-size:19px}}
.documents-page h2{font-size:24px;margin:0}.documents-intro{color:var(--muted);margin:20px 0 30px;font-size:14px;max-width:780px}.document-entry{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:22px;padding:24px 0;border-top:1px solid var(--line);align-items:start}.document-symbol{width:26px;height:34px;fill:none;stroke:var(--blue);stroke-width:1.5;margin-top:4px}.document-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:7px}.document-meta span:first-child{color:var(--blue)}.document-body h4{font-size:17px;margin:0;line-height:1.6;overflow-wrap:anywhere}.document-publisher{font-size:12px;color:var(--muted);margin:8px 0}.document-open{color:var(--blue);border:1px solid #cbd7f2;border-radius:5px;padding:8px 13px;font-size:13px;white-space:nowrap}.document-open:hover{background:#edf2ff}.document-details{font-size:12px;margin-top:12px;overflow-wrap:anywhere}.document-details summary{cursor:pointer;color:var(--muted)}.document-details p{margin:8px 0}.document-unavailable{font-size:12px;color:var(--muted)}@media(max-width:650px){.document-entry{grid-template-columns:24px minmax(0,1fr);gap:12px}.document-open,.document-unavailable{grid-column:2;justify-self:start}.document-symbol{width:22px}.documents-page .finance-exercise-heading{flex-wrap:wrap}.document-body h4{font-size:16px}}
.quality-page h2{font-size:24px;margin:0}.quality-page h3{font-size:18px;margin:0}.quality-jump{font-size:13px;color:var(--blue);border:1px solid #cbd7f2;border-radius:5px;padding:10px 14px;white-space:nowrap}.quality-coverage{margin:32px 0 40px}.quality-intro,.quality-scope{font-size:13px;color:var(--muted);max-width:860px}.quality-groups{margin:20px 0}.quality-group{border-top:1px solid var(--line)}.quality-group:last-child{border-bottom:1px solid var(--line)}.quality-group>summary{display:grid;grid-template-columns:minmax(0,1fr) 180px 160px;gap:16px;padding:18px 0;cursor:pointer;align-items:center}.quality-group-name{font-weight:600}.quality-group-name:before{content:'›';display:inline-block;width:20px;color:var(--blue)}.quality-group[open] .quality-group-name:before{content:'⌄'}.quality-group-state{font-size:12px;color:var(--blue)}.quality-group-state.attention{color:#984329}.quality-group-date{font-size:12px;color:var(--muted);text-align:right}.quality-source-list{padding:0 20px 16px}.quality-source-list article{padding:16px 0;border-top:1px solid var(--line);font-size:12px}.quality-source-list article>div{display:flex;justify-content:space-between;gap:16px}.quality-source-list p{margin:7px 0;color:var(--muted)}.quality-form-section{border-top:1px solid var(--line);padding:30px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:42px;scroll-margin-top:24px}.quality-form-section>div p{font-size:14px;color:var(--muted)}.quality-form-section .quality-local{font-size:12px;border-left:2px solid var(--blue);padding-left:12px;margin-top:24px}.quality-form-section .report-form{max-width:none;gap:16px}.quality-form-section textarea{resize:vertical}.quality-form-help{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted);margin-top:-10px}.quality-optional{font-weight:400;color:var(--muted)}.quality-submit button{padding:11px 16px;border-radius:5px}.quality-submit p{font-size:13px;margin:12px 0 0}.quality-history{border-top:1px solid var(--line);padding-top:28px}.quality-empty{font-size:14px;color:var(--muted);padding:20px 0}.quality-report{padding:20px 0;border-top:1px solid var(--line)}.quality-report>div{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px}.quality-report-state{color:var(--blue)}.quality-report>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.quality-report small{display:block;color:var(--muted);margin-top:10px}@media(max-width:650px){.quality-form-section{grid-template-columns:1fr;gap:20px}.quality-group>summary{grid-template-columns:1fr auto;gap:7px 10px}.quality-group-date{grid-column:1/-1;text-align:left;padding-left:20px}.quality-group-state{font-size:11px}.quality-source-list{padding-inline:10px}.quality-source-list article>div{flex-direction:column;gap:5px}.quality-page .section-head{align-items:start;gap:16px;flex-wrap:wrap}.quality-jump{white-space:normal}.quality-form-help{flex-wrap:wrap}.quality-report>div{flex-wrap:wrap}}
.overview-page h2{font-size:24px;margin:0}.overview-reperes{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:30px 0 0}.overview-repere{display:flex;flex-direction:column;align-items:start;border-top:2px solid var(--blue);padding:22px 0 20px;min-width:0}.overview-label{font-size:13px;color:var(--muted)}.overview-repere>strong{font-size:29px;line-height:1.4;color:var(--blue);margin:10px 0;overflow-wrap:anywhere}.overview-caption{color:var(--muted);font-size:12px}.overview-more{font-size:13px;color:var(--blue);margin-top:18px}.overview-repere:hover .overview-more{text-decoration:underline}.overview-territory{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:20px 0;border-block:1px solid var(--line)}.overview-territory>div>span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.overview-territory strong,.overview-territory a{font-size:14px;font-weight:500}.overview-territory a{color:var(--blue)}.overview-finances{margin:34px 0}.overview-section-heading{display:flex;justify-content:space-between;gap:18px;align-items:baseline;margin-bottom:24px}.overview-section-heading h3{font-size:18px;margin:0}.overview-section-heading p{font-size:12px;color:var(--muted);margin:5px 0 0}.overview-section-heading>a{font-size:13px;color:var(--blue)}.overview-finance-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}.overview-flow{margin:0 0 24px}.overview-flow>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;margin-bottom:12px}.overview-flow strong{white-space:nowrap;font-size:16px;color:var(--blue)}.overview-flow svg{display:block;width:100%;height:14px;border-radius:3px}.overview-track{fill:#edf2ff}.overview-income{fill:#183eb5}.overview-expenses{fill:#849ee1}.overview-finance-note,.overview-finance-scope{font-size:11px;color:var(--muted)}.overview-balances{display:grid;grid-template-columns:1fr 1fr;gap:20px}.overview-balances a{display:flex;flex-direction:column;align-items:start}.overview-balances span{font-size:13px}.overview-balances strong{font-size:23px;color:var(--blue);margin:9px 0;overflow-wrap:anywhere}.overview-balances small{color:var(--muted);font-size:12px;line-height:1.7}.overview-explore{border-top:1px solid var(--line);padding-top:28px}.overview-links{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.overview-links>a{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:18px 0}.overview-links strong{font-size:14px;font-weight:600}.overview-links div>span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.overview-links>a>span{color:var(--blue)}.overview-links>a:hover strong{text-decoration:underline;color:var(--blue)}.overview-quality{display:inline-block;margin-top:20px;font-size:13px;color:var(--blue)}.overview-no-data{color:var(--muted)}@media(max-width:1000px){.overview-finance-layout{grid-template-columns:1fr}.overview-balances{border-top:1px solid var(--line);padding-top:20px}.overview-repere>strong{font-size:25px}}@media(max-width:650px){.overview-reperes,.overview-territory,.overview-links{grid-template-columns:1fr;gap:0}.overview-repere{padding:18px 0}.overview-territory{gap:18px}.overview-section-heading{flex-wrap:wrap;gap:10px}.overview-flow>div{flex-wrap:wrap}.overview-balances{gap:16px}.overview-balances strong{font-size:20px}.overview-finance-layout{gap:12px}.overview-links>a{padding:16px 0}}
.population-page h2{font-size:24px;margin:0}.population-intro{color:var(--muted);font-size:14px;margin:20px 0 30px}.population-keyfigures{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:24px 0 32px}.population-keyfigures>div{border-top:2px solid var(--blue);padding:20px 0}.population-keyfigures span{font-size:13px;color:var(--muted)}.population-keyfigures strong{display:block;font-size:34px;color:var(--blue);margin:8px 0}.population-keyfigures small{color:var(--muted);font-size:12px}.population-housing{border-top:1px solid var(--line);padding-top:26px}.population-housing .overview-section-heading>span{font-size:11px;color:var(--muted)}.population-category{margin:24px 0}.population-category-heading{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-bottom:12px}.population-category-heading strong{font-size:14px;font-weight:500}.population-category-heading span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.population-category-heading>div:last-child{text-align:right;flex-shrink:0}.population-category-heading b{font-size:20px;color:var(--blue)}.population-category-heading small{display:block;font-size:12px;color:var(--muted)}.population-category svg{display:block;width:100%;height:12px;border-radius:3px}.population-track{fill:#edf2ff}.population-fill-0{fill:#153da6}.population-fill-1{fill:#718ed1}.population-fill-2{fill:#d73847}.population-evolution{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}.population-switch{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:6px}.population-switch button{font-size:12px;border:0;border-radius:3px;background:white;padding:9px 12px;color:var(--blue)}.population-switch button[aria-pressed=true]{background:#edf2ff;font-weight:600}.population-table{margin-top:26px}.population-table table th,.population-table table td{white-space:nowrap}.population-page .data-chart{border:0;box-shadow:none;background:white;padding:0}.population-page .chart-reading strong{font-size:26px}@media(max-width:650px){.population-keyfigures{gap:18px}.population-keyfigures strong{font-size:28px}.population-housing .overview-section-heading{flex-wrap:wrap}.population-category-heading strong{font-size:13px}.population-category-heading{gap:12px}.population-evolution .overview-section-heading{flex-wrap:wrap}}
.population-page .chart-reading{border-top:0;margin-top:0}.population-page .chart-reading>div>small{display:none}
.population-evolution .chart-reading>div:first-child>span{display:none}.population-evolution .overview-section-heading{margin-bottom:8px}.population-evolution .chart-reading{padding-top:4px;padding-bottom:8px}
.population-evolution .chart-reading>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px}.population-evolution .chart-reading>div:first-child>.chart-selected-year{display:inline;font-size:14px;color:var(--muted)}
.population-page .series-plot{width:100%;max-height:none;min-width:0}.population-line{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}.population-point{fill:white;stroke:var(--blue);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.population-hit{fill:transparent;cursor:pointer}.series-plot g:hover .population-point,.series-plot g:focus .population-point{fill:var(--blue);stroke:var(--blue)}
.overview-links.explore-layout{display:block}.overview-explore>.overview-section-heading{margin-bottom:24px}.overview-explore>.overview-section-heading h3{font-size:22px}.overview-explore>.overview-section-heading p{font-size:13px;margin-top:8px}.explore-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.explore-feature{display:flex;flex-direction:column;align-items:stretch;padding:24px 22px;border:1px solid #d6e0f5;border-radius:8px;background:#fff;transition:border-color .18s,background-color .18s}.explore-kicker{display:flex;align-items:center;gap:10px;color:var(--blue)}.explore-kicker svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.overview-links .explore-kicker>span{font-size:12px;color:var(--blue);margin:0;font-weight:600}.explore-feature h4{font-size:20px;line-height:1.45;font-weight:650;letter-spacing:-.4px;margin:22px 0 12px}.explore-feature p{color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 26px}.explore-action{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--blue);font-weight:600}.explore-action>span,.explore-arrow{transition:transform .18s}.explore-feature:hover,.explore-feature:focus-visible{background:#f5f8ff;border-color:var(--blue)}.explore-feature:hover .explore-action>span,.explore-feature:focus-visible .explore-action>span{transform:translateX(3px)}.explore-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;margin-top:22px}.explore-more>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 0;border-bottom:1px solid var(--line)}.overview-links .explore-more strong{font-size:14px}.overview-links .explore-more div>span{font-size:12px;margin-top:5px}.overview-links .explore-arrow{font-size:18px;color:var(--blue)}.explore-more>a:hover strong{color:var(--blue)}.explore-more>a:hover .explore-arrow{transform:translateX(3px)}@media(max-width:1050px){.explore-featured{gap:12px}.explore-feature{padding:20px 16px}.explore-feature h4{font-size:18px}.explore-more{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.explore-featured,.explore-more{grid-template-columns:1fr}.explore-feature{padding:20px}.explore-feature h4{margin:14px 0 8px;font-size:20px}.explore-feature p{margin-bottom:16px}.explore-more{margin-top:12px}.overview-explore>.overview-section-heading h3{font-size:20px}}@media(prefers-reduced-motion:reduce){.explore-feature,.explore-action>span,.explore-arrow{transition:none}}

/* Overview: paired civic landmarks and a readable financial snapshot. */
.overview-finances{margin:34px 0 38px}
.overview-finances>.overview-section-heading{margin-bottom:22px}
.overview-finances .overview-section-heading h3{font-size:21px}
.overview-finance-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:30px;align-items:stretch}
.overview-flows{padding:4px 0}
.overview-flow{margin-bottom:22px}
.overview-flow>div{flex-direction:column;align-items:start;gap:6px;margin-bottom:12px}
.overview-flow strong{font-size:26px;letter-spacing:-.6px;font-weight:650}
.overview-flow svg{height:9px;border-radius:2px}
.overview-flow .overview-income{fill:var(--blue)}
.overview-finance-note{margin-bottom:0}
.overview-balances{display:flex;flex-direction:column;gap:0;background:#f5f7fc;border-radius:8px;padding:0 22px;border:0}
.overview-balances a{flex:1;justify-content:center;padding:18px 0}
.overview-balances a+a{border-top:1px solid var(--line)}
.overview-balances strong{font-size:25px;letter-spacing:-.5px;margin:5px 0}
.overview-balances small{font-size:11px;line-height:1.6}
.overview-balances a:hover>span{text-decoration:underline}
@media(max-width:1000px){.overview-finance-layout{grid-template-columns:1fr;gap:20px}.overview-balances{flex-direction:row;gap:24px}.overview-balances a{min-width:0}.overview-balances a+a{border-top:0;border-left:1px solid var(--line);padding-left:24px}}
@media(max-width:650px){.overview-finances .overview-section-heading h3{font-size:19px}.overview-flow strong{font-size:24px}.overview-balances{flex-direction:column;gap:0}.overview-balances a+a{border-left:0;border-top:1px solid var(--line);padding-left:0}.overview-balances strong{font-size:24px}}

/* CommuneRepère supplied brand artwork. */
.site-header .brand-logo{display:block;width:240px;height:auto;max-width:100%}
footer .brand-logo{display:block;width:210px;height:auto}
@media(max-width:760px){.site-header .brand-logo{width:180px}.site-header{padding-top:14px;padding-bottom:14px}}

/* Stronger overview landmarks, matching the supplied typographic reference. */
.overview-page .overview-reperes{gap:40px;margin-top:22px}
.overview-page .overview-repere{position:relative;padding:18px 0 16px}
.overview-page .overview-repere+.overview-repere:before{content:"";position:absolute;left:-21px;top:0;bottom:12px;width:1px;background:var(--line)}
.overview-page .overview-label{font-size:13px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted)}
.overview-page .overview-repere>strong{font-size:clamp(28px,2.6vw,36px);font-weight:700;line-height:1.2;letter-spacing:-.8px;margin:10px 0 0;overflow-wrap:break-word}
.overview-page .overview-more{font-size:14px;margin-top:14px}
.overview-page .overview-territory{gap:40px;padding:16px 0}
@media(max-width:1000px){.overview-page .overview-reperes,.overview-page .overview-territory{gap:36px}.overview-page .overview-repere+.overview-repere:before{left:-19px}}
@media(max-width:650px){.overview-page .overview-reperes{gap:14px}.overview-page .overview-repere{padding:16px 0 10px}.overview-page .overview-repere+.overview-repere:before{display:none}.overview-page .overview-repere>strong{font-size:28px;letter-spacing:-.6px}.overview-page .overview-more{font-size:14px;margin-top:12px}.overview-page .overview-territory{gap:18px;margin-top:12px}}

/* Census landmarks use the same compact hierarchy as the overview. */
.population-keyfigures{gap:40px;margin:22px 0 26px}
.population-keyfigures>div{position:relative;padding:18px 0 16px;min-width:0}
.population-keyfigures>div+div:before{content:"";position:absolute;left:-21px;top:0;bottom:12px;width:1px;background:var(--line)}
.population-keyfigures>div>span{font-size:13px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase}
.population-keyfigures>div>strong{font-size:clamp(28px,2.6vw,36px);font-weight:700;line-height:1.2;letter-spacing:-.8px;margin:10px 0 12px}
.population-keyfigures .population-trend{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:5px;font-size:14px}
.population-trend b{font-weight:700;color:var(--ink)}
.population-keyfigures .population-trend-arrow{font-size:23px;font-weight:700;line-height:1;margin-right:4px}
.population-trend.is-up .population-trend-arrow{color:#19804b}
.population-trend.is-down .population-trend-arrow{color:#d73847}
.population-trend.is-stable .population-trend-arrow{color:var(--muted)}
@media(max-width:650px){.population-keyfigures{gap:24px}.population-keyfigures>div+div:before{left:-13px}.population-keyfigures>div>strong{font-size:28px}.population-keyfigures>div>span{font-size:11px;letter-spacing:.6px}.population-keyfigures .population-trend{font-size:12px;gap:4px}}

/* Shared landmark typography: overview and population. */
.overview-page .overview-repere>strong,
.population-keyfigures>div>strong{margin:0px 0 8px}
.overview-page .overview-label,
.population-keyfigures>div>span{font-size:12px}

/* Consistent compact key figures across municipal data pages. */
.finance-keyfigures .finance-kpi-button{padding:18px 16px 16px;border-top-color:var(--blue)}
.finance-keyfigures .finance-kpi-button>span:first-child,
.tax-rate-name,
.election-stats dt{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.finance-keyfigures .finance-kpi-button>strong,
.tax-rate>strong,
.election-stats dd{font-size:clamp(26px,2.6vw,36px);font-weight:700;line-height:1.2;letter-spacing:-.8px;color:var(--blue);margin:0px 0 8px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.finance-keyfigures{margin:18px 0 26px}
.tax-rate{border-top-color:var(--blue);gap:4px;padding:18px 12px 16px}
.tax-rate-name{min-height:36px}
.tax-rate-label{font-size:12px}
.election-stats{border-top:0;gap:24px;padding:0;margin:20px 0 12px}
.election-stats>div{min-width:0;border-top:2px solid var(--blue);padding:18px 0 8px}
@media(max-width:760px){.finance-keyfigures .finance-kpi-button{padding:16px 8px}.finance-keyfigures .finance-kpi-button>strong,.tax-rate>strong,.election-stats dd{font-size:28px;letter-spacing:-.6px}.finance-keyfigures .finance-kpi-button>span:first-child,.tax-rate-name,.election-stats dt{letter-spacing:.4px}.election-stats{gap:12px 20px}}
@media(max-width:420px){.finance-keyfigures{grid-template-columns:1fr}.finance-keyfigures .finance-kpi-button>strong{font-size:30px}.tax-rate{padding:14px 8px}.tax-rate-name{min-height:40px}}

.finance-kpi{position:relative;min-width:0}
.finance-keyfigures .finance-kpi-button{width:100%;height:100%}
.finance-keyfigures .finance-kpi-button>span:first-child{padding-right:24px}
.finance-keyfigures .finance-kpi-button>strong{letter-spacing:0;word-spacing:.12em}
.finance-kpi-info{position:absolute;right:12px;top:17px}
.finance-kpi-info .tax-info-panel{width:min(300px,75vw);right:0;left:auto;text-transform:none;letter-spacing:normal;font-weight:400}

/* KPI standard: shared typography, rhythm and actions across pages. */
:root{--kpi-label-size:11px;--kpi-value-size:clamp(26px,2.6vw,36px);--kpi-action-size:14px}
.overview-page .overview-label,.population-keyfigures>div>span,
.finance-keyfigures .finance-kpi-button>span:first-child,.tax-rate-name,
.election-stats dt,.grant-tile .grant-metric>span:first-child{
 font-size:var(--kpi-label-size);font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)
}
.grant-tile .grant-metric{gap:0;padding:18px 16px 16px;border-top-color:var(--blue)}
.grant-tile .grant-metric>strong{font-size:var(--kpi-value-size);font-weight:700;line-height:1.2;letter-spacing:0;word-spacing:.12em;margin:0 0 8px;overflow-wrap:anywhere}
.grant-tile .grant-metric>small{line-height:1.6}
.grant-info{top:17px;right:12px}
.overview-page .overview-more,.finance-keyfigures .finance-explore,.tax-rate .tax-go,.grant-metric .grant-metric-link{
 font-size:var(--kpi-action-size);font-weight:400;line-height:1.5;padding-top:14px;margin-top:auto;color:var(--blue)
}
.finance-keyfigures .finance-explore{padding-top:10px}
.tax-rate{gap:0;padding:16px 12px;align-items:stretch}
.tax-rate-name{min-height:30px;line-height:1.5}
.tax-rate-label{font-size:11px;line-height:1.5;margin-bottom:2px}
.tax-rate>strong{font-size:var(--kpi-value-size);margin:0 0 8px;letter-spacing:0}
.tax-rate .tax-global-value{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 8px;margin:0 0 10px;font-size:11px}
.tax-rate .tax-global-value b{font-size:14px}
.tax-rate small{min-height:0;font-size:12px;line-height:1.6;margin-bottom:0}
.tax-rate .tax-go{padding-top:14px}
@media(max-width:760px){:root{--kpi-value-size:28px}.tax-rate-name{min-height:34px}.grant-tile .grant-metric{padding:16px 12px}}

/* Shared variation row: same flex rhythm as population. */
.kpi-trend{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:5px;font-size:14px;color:var(--muted)}
.kpi-trend b{font-weight:700;color:var(--ink)}
.kpi-trend .kpi-trend-arrow{font-size:23px;font-weight:700;line-height:1;margin-right:4px}
.kpi-trend.is-up .kpi-trend-arrow{color:#19804b}
.kpi-trend.is-down .kpi-trend-arrow{color:#d73847}
.kpi-trend.is-stable .kpi-trend-arrow{color:var(--muted)}
.tax-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}
.tax-rate{padding:18px 16px 16px;gap:0}
.tax-rate-name{min-height:0;margin-bottom:14px}
.tax-amounts{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:16px;margin-bottom:10px;width:100%}
.tax-communal{display:flex;flex-direction:column}
.tax-communal>strong{font-size:var(--kpi-value-size);font-weight:700;line-height:1.2;letter-spacing:0;margin:0 0 8px;color:var(--blue)}
.tax-rate .tax-global-value{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;margin:0;padding-left:20px;border-left:1px solid var(--line)}
.tax-rate .tax-global-value b{font-size:22px;font-weight:600;line-height:1.3}
.tax-rate .tax-rate-label{margin-bottom:4px}
/* Direction indicates a rate change, not a judgment about its desirability. */
.tax-rate .kpi-trend .kpi-trend-arrow{color:var(--blue)}
@media(max-width:650px){.tax-rate-grid{grid-template-columns:1fr;gap:14px}.tax-rate{padding:16px 12px}.kpi-trend{font-size:12px}.tax-rate .tax-global-value b{font-size:20px}}

/* Restore fiscal KPIs to the presentation preceding the last two revisions. */
.tax-rate-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:20px 0 0}
.tax-rate{align-items:flex-start;gap:4px;padding:18px 12px 16px}
.tax-rate-name{font-size:12px;letter-spacing:.8px;min-height:36px;margin:0;line-height:inherit}
.tax-rate-label{font-size:12px;margin:0;line-height:inherit}
.tax-rate>strong{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.8px;margin:0px 0 8px}
.tax-rate .tax-global-value{display:flex;flex-direction:column;align-items:flex-start;justify-content:normal;gap:4px;font-size:11px;margin:8px 0;padding:0;border:0}
.tax-rate .tax-global-value b{font-size:16px;font-weight:600;line-height:inherit}
.tax-rate small{font-size:11px;min-height:30px;line-height:inherit}
.tax-rate .tax-go{font-size:11px;margin:0;padding:0;line-height:inherit}
@media(max-width:1000px){.tax-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.tax-rate>strong{font-size:28px;letter-spacing:-.6px}.tax-rate-name{letter-spacing:.4px}}
@media(max-width:650px){.tax-rate-grid{gap:10px}.tax-rate{padding:14px 8px}.tax-rate-name{min-height:22px}}
@media(max-width:420px){.tax-rate-name{min-height:40px}}

/* Fiscal rates: one shared rule and four clearly separated columns. */
.tax-rate-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:2px solid var(--blue);padding-top:22px;margin-top:20px}
.tax-rate{position:relative;border:0;padding:0 22px 14px;gap:0;background:white;align-items:flex-start}
.tax-rate:first-child{padding-left:0}
.tax-rate:last-child{padding-right:0}
.tax-rate+.tax-rate{border-left:1px solid var(--line)}
.tax-rate[aria-pressed=true]{background:white}
.tax-rate:hover{background:#f5f8ff}
.tax-rate-name{font-size:11px;font-weight:700;letter-spacing:.7px;line-height:1.5;min-height:17px;margin:0 0 18px}
.tax-rate .tax-rate-label{font-size:12px;line-height:1.5;margin:0 0 5px}
.tax-rate>strong{font-size:clamp(28px,2.6vw,36px);font-weight:700;line-height:1.2;letter-spacing:-.4px;margin:0 0 20px;white-space:nowrap}
.tax-rate .tax-global-value{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-size:12px;line-height:1.5;margin:0 0 16px;padding:0;border:0}
.tax-rate .tax-global-value b{font-size:19px;font-weight:600;line-height:1.3;white-space:nowrap}
.tax-rate small{font-size:12px;line-height:1.5;min-height:18px;margin:0 0 20px}
.tax-rate .tax-go{font-size:14px;font-weight:400;line-height:1.5;margin-top:auto;padding:0}
.tax-rate[aria-pressed=true] .tax-go{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#bbcbea}
@media(max-width:1100px){.tax-rate{padding-left:16px;padding-right:16px}.tax-rate-name{min-height:33px}.tax-rate>strong{font-size:30px}}
@media(max-width:760px){.tax-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}.tax-rate{padding:0 16px 14px}.tax-rate:nth-child(odd){padding-left:0;border-left:0}.tax-rate:nth-child(even){padding-right:0;border-left:1px solid var(--line)}.tax-rate:nth-child(n+3){border-top:1px solid var(--line);padding-top:20px}.tax-rate-name{min-height:17px;margin-bottom:14px}.tax-rate>strong{font-size:28px;margin-bottom:16px}.tax-rate .tax-global-value b{font-size:18px}.tax-rate small{margin-bottom:16px}}
@media(max-width:420px){.tax-rate-name{min-height:33px}.tax-rate .tax-go{font-size:13px}.tax-rate{padding-left:12px;padding-right:12px}}

/* Fiscal KPI secondary labels. */
.tax-rate .tax-rate-label,
.tax-rate .tax-global-value{font-size:13px;margin:0}
.tax-rate small{font-size:13px}

.tax-rate:hover{background:white}

.tax-rate .tax-global-value{margin-bottom:16px}

/* One concise, consistently sized subtitle per municipal page. */
.overview-page>.section-head p,.population-page>.section-head p,
.council-section>.section-head p,.mayors-page>.section-head p,
.elections-page>.section-head p,.finance-page>.finance-heading p,
.grants-page>.section-head p,.subsidies-page>.section-head p,
.markets-page>.section-head p,.projects-page>.section-head p,
.urban-page>.section-head p,.documents-page>.section-head p,
.quality-page>.section-head p{font-size:13px;font-weight:400;line-height:1.6;color:var(--muted);margin:6px 0 0}
.finance-page>.finance-heading{margin-bottom:24px}

[data-source-relocated]{display:none!important}
.page-sources{margin-top:28px;font-size:12px;color:var(--muted)}
.page-source-entry{margin:16px 0;overflow-wrap:anywhere}
.page-source-entry h4{font-size:13px;color:var(--ink);margin:0 0 8px}
.page-source-entry>details{margin:0}
.page-source-entry>p{margin:8px 0}

/* Public procurement follows the shared KPI standard. */
.market-summary>div{border-top-color:var(--blue);gap:0;padding:18px 0 16px;min-width:0}
.market-summary>div>span{font-size:var(--kpi-label-size);font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.market-summary>div>strong{font-size:var(--kpi-value-size);font-weight:700;line-height:1.2;letter-spacing:0;word-spacing:.12em;margin:0 0 8px;white-space:normal}
.market-summary>div>strong>small{font-size:11px;word-spacing:normal}

/* Home atlas: the existing selection map in a lighter cartographic setting. */
.map-hero{padding:28px 0 24px}
#territory-map.bare-map{position:relative;max-width:none;padding:20px 28px 14px;border:1px solid #e8effc;border-radius:16px;background-color:#f3f7ff;background-image:radial-gradient(ellipse at center,#fff8 0%,#e5efff80 100%),linear-gradient(#d9e6fb55 1px,transparent 1px),linear-gradient(90deg,#d9e6fb55 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;margin-bottom:26px!important}
.map-toolbar{display:flex;justify-content:center;align-items:center;gap:22px;position:relative;z-index:1}
.map-scope-switch{display:flex;gap:8px}
.map-toolbar button{font-size:12px;padding:9px 17px;border:1px solid #c9d9fa;border-radius:9px;color:var(--blue);background:#ffffffde;line-height:1.5}
.map-toolbar button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:white;border-radius:24px}
.map-toolbar .map-name-search{border-left:1px solid #c9d9fa}
.map-compass{position:absolute;right:35px;top:100px;display:flex;flex-direction:column;align-items:center;color:#617dab;font-size:11px;pointer-events:none}
.map-compass span{font-size:27px;line-height:1.2}
#territory-map .bare-map-tools{height:40px}
#territory-map #main-map{height:clamp(330px,53vh,620px);min-height:0}
#territory-map #main-map .map-shape{fill:#a6bff1}
#territory-map #main-map .map-shape.has-data{fill:#8cacec}
#territory-map #main-map .map-shape:hover,#territory-map #main-map .map-shape:focus{fill:#4b7be0}
#territory-map #map-hover{margin:0;font-size:13px}
#map-overseas-heading{display:flex;align-items:center;justify-content:center;gap:14px;font-size:12px;color:var(--ink);margin:12px auto;max-width:600px}
#map-overseas-heading:before,#map-overseas-heading:after{content:'';height:1px;background:#c4d5f4;flex:1}
#territory-map #map-overseas{gap:12px;margin-top:0}
#territory-map #map-overseas button{background:#ffffffd9;border:1px solid #dde8fc;border-radius:10px;min-width:94px;padding:8px 12px;font-size:11px;font-weight:500}
#territory-map #map-overseas svg{width:46px;height:43px;margin-bottom:4px}
#territory-map .bare-map-source{margin:16px 0 0;font-size:10px;text-align:center}
#territory-map[data-level=regions][data-scope=metro] #map-overseas,#territory-map[data-level=regions][data-scope=metro] #map-overseas-heading,
#territory-map[data-level=regions][data-scope=overseas] #main-map,#map-overseas-heading[hidden]{display:none}
#territory-map[data-level=regions][data-scope=overseas] #map-overseas{padding:55px 0}
@media(max-width:760px){#territory-map.bare-map{padding:16px 10px 12px;border-radius:12px}.map-toolbar{flex-wrap:wrap;gap:10px}.map-toolbar button{font-size:11px;padding:8px 10px}.map-scope-switch{gap:5px}.map-compass{display:none}#territory-map #main-map{height:min(95vw,440px)}#territory-map #map-overseas{gap:8px}#territory-map #map-overseas button{min-width:83px;padding:7px 8px}.map-hero{padding:22px 0 18px}}

/* Atlas reference refinement: fine contours, restrained labels and a floating selection. */
body:has(#territory-map) main{max-width:1440px}


.map-hero .searchbox{max-width:636px;min-height:56px;margin:auto;padding:6px;box-shadow:0 6px 25px #a9c3ee12}
.map-hero .searchbox input{font-size:14px;padding:8px 4px}
.map-hero .searchbox button{padding:10px 22px;font-size:12px}
.map-hero{padding:28px 0 24px}
#territory-map.bare-map{background:#edf4ff;border:0;border-radius:14px;padding:20px 28px 18px;isolation:isolate;overflow:hidden}
.atlas-backdrop{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.map-toolbar{gap:20px;height:36px}
.map-toolbar button{font-size:11px;padding:9px 24px;line-height:16px;border-radius:10px;background:#fffffff0}
.map-toolbar button[aria-pressed=true]{box-shadow:0 4px 12px #153da618}
.map-mode-switch{display:flex;gap:9px;padding-left:20px;border-left:1px solid #cddcf6}
.map-toolbar .map-name-search{border:1px solid #c9d9fa}
#territory-map .bare-map-tools{height:0;z-index:2}
#territory-map .map-caption{position:absolute;top:12px;left:0}
#territory-map[data-level=regions] #map-hover{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#territory-map #main-map{height:clamp(420px,55vh,580px);margin:8px 0 0}
#territory-map #main-map .map-shape{fill:#9db9f2;stroke:#fff;stroke-width:1.2;filter:drop-shadow(0 0 2px #6b94df15)}
#territory-map #main-map .map-shape.has-data{fill:#97b4f1}
#territory-map #main-map .map-shape:hover,#territory-map #main-map .map-shape:focus{fill:#3971e7}
#territory-map #main-map #map-outline{stroke:#fff;stroke-width:1.6;filter:drop-shadow(0 2px 3px #245abb33)}
#territory-map .bare-map-label{font-weight:600;fill:#153363}
#territory-map .is-highlighted .bare-map-label{fill:white}
.map-tooltip{position:absolute;z-index:5;width:max-content;max-width:150px;padding:13px 16px;background:white;border-radius:13px;box-shadow:0 6px 24px #335da927;font-size:12px;font-weight:600;line-height:1.4;color:var(--ink);pointer-events:none}
.map-tooltip[hidden]{display:none}
.map-compass{right:7%;top:72px;font-size:12px;gap:5px}
.map-compass svg{width:18px;height:25px}
.map-scale{position:absolute;right:4.5%;top:138px;color:#617dab;font-size:9px;max-width:160px}
.map-scale>div{display:flex;justify-content:space-between;white-space:nowrap}
.map-scale i{display:block;height:6px;border:1px solid #617dab;border-top:0;margin-top:4px;background:linear-gradient(90deg,transparent 32.8%,#617dab 33%,transparent 33.5%,transparent 66%,#617dab 66.5%,transparent 67%)}
.map-ocean{position:absolute;pointer-events:none;text-align:center;text-transform:uppercase;font-size:10px;letter-spacing:3px;line-height:2;color:#80a5ee}
.map-atlantic{left:25%;top:49%}.map-mediterranean{right:17%;top:64%}
#territory-map:not([data-level=regions]) .map-ocean,#territory-map:not([data-level=regions]) .map-scale,#territory-map[data-scope=overseas] .map-ocean,#territory-map[data-scope=overseas] .map-scale{display:none}
#map-overseas-heading{max-width:640px;margin:4px auto 14px;font-size:11px;gap:14px}
#territory-map #map-overseas button{min-width:96px;padding:9px 12px 10px;border-color:#dce8fd;border-radius:10px;font-size:11px;color:#142443}
#territory-map #map-overseas svg{width:47px;height:44px;margin-bottom:5px}
#territory-map .bare-map-source{font-size:9px;margin:10px 0 0;opacity:.7}
@media(min-width:1500px){#territory-map #main-map{height:520px}}
@media(max-width:760px){#territory-map.bare-map{padding:16px 10px 12px}.map-toolbar{height:auto;gap:10px}.map-toolbar button{padding:8px 10px;font-size:10px}.map-mode-switch{padding:0;border:0}.map-compass,.map-scale,.map-ocean{display:none}#territory-map #main-map{height:min(103vw,440px);min-height:290px;margin-top:8px}#territory-map .map-caption{top:4px}#territory-map:not([data-level=regions]) #main-map{margin-top:35px}.map-tooltip{font-size:11px;max-width:130px;padding:10px 12px}#territory-map #map-overseas button{min-width:80px;padding:8px}.map-hero .searchbox button{padding:10px}.map-hero .searchbox input{font-size:12px}}
#territory-map .map-caption{pointer-events:none}
#territory-map:not([data-level=regions]) .map-caption{left:90px}
#territory-map #main-map .is-highlighted .map-shape{fill:#3971e7}
.map-tooltip{display:flex;align-items:center;gap:14px;max-width:160px}
.map-tooltip b{font-size:19px;font-weight:400;color:var(--blue)}
#territory-map.bare-map{padding-bottom:10px}
#territory-map .bare-map-source{margin-top:6px}
.map-tooltip>span{min-width:0;overflow-wrap:anywhere}
.map-tooltip>b{flex-shrink:0}

/* Coverage shading uses actual available commune counts, not decorative values. */
#territory-map #main-map{height:clamp(445px,59vh,620px);margin-top:0}
#territory-map .map-density-0 .map-shape,#territory-map #map-overseas .map-density-0 svg{fill:#d6e3ff}
#territory-map .map-density-1 .map-shape,#territory-map #map-overseas .map-density-1 svg{fill:#98b6f2}
#territory-map .map-density-2 .map-shape,#territory-map #map-overseas .map-density-2 svg{fill:#5684e3}
#territory-map .map-density-3 .map-shape,#territory-map #map-overseas .map-density-3 svg{fill:#204fb8}
#territory-map #main-map .map-density-0 .map-shape{fill:#d6e3ff}
#territory-map #main-map .map-density-1 .map-shape{fill:#98b6f2}
#territory-map #main-map .map-density-2 .map-shape{fill:#5684e3}
#territory-map #main-map .map-density-3 .map-shape{fill:#204fb8}
#territory-map .map-density-2 .bare-map-label,#territory-map .map-density-3 .bare-map-label{fill:white}
#territory-map #main-map .is-highlighted .map-shape{fill:#3266d4}
.map-density-legend{position:absolute;right:30px;top:26px;z-index:2;background:#ffffffeb;border:1px solid #dfe9fa;border-radius:10px;padding:15px 17px;display:flex;flex-direction:column;gap:9px;box-shadow:0 3px 12px #204b8510;font-size:11px;color:var(--muted)}
.map-density-legend strong{font-size:12px;color:var(--ink);margin-bottom:3px}
.map-density-legend span{display:flex;align-items:center;gap:9px}
.map-density-legend i{width:12px;height:12px;border-radius:50%}
.density-0{background:#d6e3ff}.density-1{background:#98b6f2}.density-2{background:#5684e3}.density-3{background:#204fb8}
#territory-map .map-scale{top:215px}
#territory-map:not([data-level=regions]) .map-density-legend{display:none}
@media(min-width:1500px){#territory-map #main-map{height:550px}}
@media(max-width:900px){.map-density-legend{position:relative;top:auto;right:auto;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px 14px;padding:10px;font-size:10px}.map-density-legend strong{width:100%;text-align:center;font-size:11px}#territory-map #main-map{height:min(108vw,470px);min-height:290px}}

/* Quieter background and a little more room for region labels. */
#territory-map.bare-map{padding-bottom:22px}
#territory-map #main-map{height:clamp(470px,62vh,650px)}
#territory-map #main-map .map-shape{filter:none}
#territory-map[data-level=communes] #main-map .map-shape{transition:none}
#territory-map[data-level=communes] #main-map #map-outline{filter:none}
@media(min-width:1500px){#territory-map #main-map{height:590px}}
@media(max-width:900px){#territory-map #main-map{height:min(114vw,490px);min-height:300px}}

/* Search results float directly beneath the home search field. */
.home-search{position:relative;max-width:636px;margin:auto;z-index:10}
.home-search #search-results{position:absolute;top:calc(100% + 10px);left:0;right:0;max-width:none;margin:0;background:#fff;border:1px solid #dce5f5;border-radius:12px;box-shadow:0 12px 35px #193d7926;overflow:hidden}
.home-search #result-count{font-size:12px;color:var(--muted);margin:0;padding:13px 17px;border-bottom:1px solid var(--line)}
.home-search #results{max-height:min(410px,55vh);overflow-y:auto;overscroll-behavior:contain}
.search-town{display:flex;align-items:center;gap:16px;padding:15px 17px;border-bottom:1px solid #eef2f8}
.search-town:last-child{border:0}.search-town:hover,.search-town:focus-visible{background:#f2f6ff;outline-offset:-3px}
.search-town>span:first-child{flex:1;min-width:0}.search-town strong{font-size:15px;color:var(--ink);display:block}.search-town small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.search-town-code{font-size:11px;color:var(--muted)}.search-town>span:last-child{color:var(--blue)}
.home-search .empty{border:0;margin:0;padding:20px}.home-search .empty h3{font-size:15px}.home-search .empty p{font-size:12px}
@media(max-width:650px){.search-town{gap:10px;padding:13px}.search-town strong{font-size:14px}.home-search #results{max-height:48vh}}

/* Fine boundaries keep detailed coastlines legible at overview scale. */
#territory-map #main-map .map-shape{stroke-width:.8;stroke-linejoin:round;stroke-linecap:round}
#territory-map #main-map #map-outline{stroke-width:1.15;stroke-linejoin:round;stroke-linecap:round;filter:none}

/* Full region name outside the narrow Mediterranean outline. */
#territory-map .paca-label{pointer-events:none}
#territory-map .paca-label path{fill:none;stroke:#6b87be;stroke-width:.8;vector-effect:non-scaling-stroke}
#territory-map .paca-label .bare-map-label{fill:#142443!important;font-size:.86em;stroke:#f2f6ff;stroke-width:3px;paint-order:stroke;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.map-zoom-controls{position:absolute;left:20px;top:24px;z-index:4;display:flex;flex-direction:column;background:white;border:1px solid #dce5f5;border-radius:9px;box-shadow:0 3px 12px #193d7910;overflow:hidden}
.map-zoom-controls button{width:40px;height:40px;padding:0;border:0;background:white;color:#153da6;font-size:23px;cursor:pointer}
.map-zoom-controls button+button{border-top:1px solid #e1e7f2}
.map-zoom-controls button:hover{background:#edf3ff}
#main-map{touch-action:none;cursor:grab}
#main-map.is-dragging,#main-map.is-dragging .map-shape{cursor:grabbing}
@media(max-width:560px){.map-zoom-controls{left:10px;top:12px}.map-zoom-controls button{width:36px;height:36px}}

#territory-map:not([data-level="regions"]) .map-zoom-controls{top:88px}

#territory-map .paca-label .bare-map-label{stroke:none}
@media(max-width:560px){#territory-map[data-level="regions"] .map-zoom-controls{top:120px}}

/* Pointer navigation has no browser focus rectangle; keyboard focus stays visible. */
#territory-map #main-map:focus:not(:focus-visible){outline:none}
#territory-map #main-map:focus-visible{outline:2px solid #8ca8e5;outline-offset:2px}
#territory-map.map-moving .map-tooltip{display:none}
#territory-map.map-moving #main-map .map-shape{transition:none}
#territory-map.map-moving #map-outline{visibility:hidden}

#territory-map .map-zoom-controls[hidden]{display:none}
#territory-map:not([data-level="communes"]) #main-map{touch-action:pan-y;cursor:default}

.home-intro{max-width:1150px;margin:8px auto 30px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:40px;align-items:center}
.home-intro h1{margin:0;color:#142443;font-size:clamp(26px,2.65vw,38px);font-weight:800;line-height:1.3;letter-spacing:-1.2px}
.home-intro h1 span{color:#153da6}
.home-intro-description{border-left:1px solid #e1e7f2;padding-left:38px}
.home-intro-description p{margin:0 0 12px;color:#53617b;font-size:13px;line-height:1.45}
.home-intro-description a{color:#153da6;font-size:13px;font-weight:650;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.home-intro{grid-template-columns:1fr;gap:16px;margin:4px auto 24px}.home-intro h1{font-size:clamp(25px,5.5vw,34px);letter-spacing:-.7px}.home-intro-description{border-left:0;padding-left:0;max-width:520px}}

.map-hero{max-width:1150px}

/* Compact home composition keeps the overseas destinations in view. */
@font-face{font-family:ManropeSlogan;font-style:normal;font-weight:200 800;src:url('/fonts/manrope-variable.ttf') format('truetype');font-display:swap}
.home-intro h1{font-family:ManropeSlogan,Manrope,sans-serif;font-weight:800}
.map-hero{padding-top:18px;padding-bottom:14px}
.home-intro{margin-top:0;margin-bottom:18px}
#territory-map[data-level="regions"].bare-map{padding-top:8px;padding-bottom:12px}
#territory-map[data-level="regions"] #map-overseas-heading{margin-top:0;margin-bottom:8px}
#territory-map[data-level="regions"] #map-overseas{margin-top:0}
@media(min-width:901px){#territory-map[data-level="regions"] #main-map{height:clamp(420px,calc(100dvh - 360px),650px);min-height:0}}
@media(max-width:760px){.map-hero{padding-top:16px;padding-bottom:14px}.home-intro{margin-bottom:18px}}


.home-intro {
  margin-top: 1rem;
  margin-bottom: 1.25rem;
}
.home-search {
  margin: .75rem auto;
}

/* Quiet navigation with a consistent active-page marker. */
.site-header nav{gap:28px}
.site-header nav a{padding:12px 2px;border:0;border-radius:0;background:transparent;color:#53617b;font-size:13px;font-weight:600}
.site-header nav a:hover{background:transparent;color:#153da6}
.site-header nav a[aria-current=page]{background:transparent;color:#153da6;border:0}
.site-header nav a[aria-current=page]:after{display:block;content:'';position:absolute;left:2px;right:2px;bottom:3px;width:auto;height:2px;border-radius:2px;background:#153da6}
@media(max-width:760px){.site-header nav{gap:2px;padding-top:8px;border-top:1px solid #e1e7f2}.site-header nav a{padding:12px 14px;border-radius:6px}.site-header nav a[aria-current=page]{background:#f0f4fd}.site-header nav a[aria-current=page]:after{left:0;right:auto;top:12px;bottom:12px;width:2px;height:auto}.main-menu-toggle{border-color:#e1e7f2;border-radius:8px}}

.comparison-page{max-width:1150px;margin:36px auto 0}
.comparison-heading{margin-bottom:28px}.comparison-heading h1{font-size:30px;font-weight:750;letter-spacing:-.8px;margin:0 0 8px}.comparison-heading p{font-size:13px;color:var(--muted);margin:0}
.comparison-selection{border:1px solid #dce5f5;border-radius:12px;padding:24px;background:#f8faff}
.comparison-section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.comparison-section-title h2{font-size:17px;margin:0}.comparison-section-title>span{font-size:12px;color:var(--muted)}
.comparison-search{position:relative;max-width:560px}.comparison-search>label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}.comparison-search input{width:100%;padding:13px 15px;border:1px solid #becded;border-radius:8px;font-size:13px}.comparison-search input:disabled{background:#edf2fa}
#compare-suggestions{position:absolute;top:calc(100% + 7px);left:0;right:0;background:white;border:1px solid #dce5f5;border-radius:9px;box-shadow:0 12px 28px #193d791c;z-index:6;max-height:310px;overflow:auto}
#compare-suggestions[hidden]{display:none}#compare-suggestions>p{padding:12px 16px;font-size:13px}#compare-suggestions button{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:12px 16px;border:0;border-bottom:1px solid #e8edf7;background:white;color:var(--ink);gap:16px}#compare-suggestions button:hover,#compare-suggestions button:focus-visible{background:#f0f4fc}#compare-suggestions strong{font-size:14px;display:block}#compare-suggestions small{display:block;font-size:11px;color:var(--muted);margin-top:3px}#compare-suggestions button>span:last-child{color:var(--blue);font-size:22px}
.comparison-selected{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.comparison-selected:empty{display:none}.comparison-town{display:flex;align-items:center;gap:10px;background:white;border:1px solid #dce5f5;border-top:2px solid var(--town-color);border-radius:7px;padding:14px 12px;min-width:0}.comparison-town>div{min-width:0;flex:1}.comparison-town strong{font-size:14px;display:block;overflow-wrap:anywhere}.comparison-town small{font-size:11px;color:var(--muted);display:block}.comparison-town button{background:none;border:0;color:var(--muted);font-size:22px;padding:0 4px;min-width:28px;min-height:32px}.comparison-town-dot{width:7px;height:7px;border-radius:50%;background:var(--town-color);flex-shrink:0}
.comparison-hint{font-size:12px;color:var(--muted);margin:14px 0 0}#compare-error{color:#b62a3b;font-size:13px}#compare-error:empty{display:none}
.comparison-empty{text-align:center;padding:48px 20px 40px}.comparison-empty>span{display:block;color:#6388d9;font-size:34px;margin-bottom:12px}.comparison-empty h2{font-size:19px;margin:0 0 8px}.comparison-empty p{max-width:460px;margin:auto;font-size:13px;color:var(--muted)}
.comparison-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0 14px}.comparison-toolbar h2{font-size:20px;margin:0}.comparison-toolbar p{font-size:12px;color:var(--muted);margin:5px 0 0}.comparison-options{display:flex;align-items:end;gap:16px}.comparison-options label{font-size:11px;color:var(--muted);display:grid;gap:4px}.comparison-options select{border:1px solid #cbd8ee;border-radius:6px;font-size:13px;min-height:40px}.comparison-units{display:flex;border:1px solid #dce5f5;border-radius:7px;padding:3px;gap:3px}.comparison-units button{border:0;border-radius:4px;background:white;color:var(--blue);padding:9px 12px;font-size:12px;white-space:nowrap}.comparison-units button[aria-pressed=true]{background:#edf2ff;font-weight:700}.comparison-reading{font-size:12px;color:var(--muted);margin:0 0 14px}
.comparison-table-wrap{overflow:auto;border-top:2px solid var(--blue);border-bottom:1px solid #dce5f5}.comparison-table{min-width:620px;table-layout:fixed}.comparison-table th,.comparison-table td{padding:20px 18px;vertical-align:middle}.comparison-table thead th{padding-top:22px;padding-bottom:22px;font-size:15px;color:var(--town-color,var(--ink))}.comparison-table thead th:first-child{width:24%;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.comparison-table thead small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}.comparison-table tbody th{font-size:13px;font-weight:500}.comparison-table td strong{font-size:22px;color:var(--town-color);font-weight:700;white-space:nowrap}.comparison-table td{font-variant-numeric:tabular-nums}.comparison-bar{display:block;height:4px;background:#edf1f8;margin-top:12px;border-radius:2px;overflow:hidden}.comparison-bar i{display:block;height:100%;background:var(--town-color)}.comparison-missing{font-size:12px;color:var(--muted)}.comparison-table tbody tr:last-child>*{border-bottom:0}.comparison-sources{margin-top:28px;padding:18px 0;border-top:1px solid #e1e7f2;font-size:12px;color:var(--muted)}.comparison-sources summary{color:var(--blue);font-size:13px}.comparison-sources p{max-width:860px}.comparison-loading{padding:40px 0;text-align:center;color:var(--muted);font-size:13px}
@media(max-width:900px){.comparison-selected{grid-template-columns:repeat(2,minmax(0,1fr))}.comparison-toolbar{align-items:start;flex-direction:column}.comparison-table td strong{font-size:18px}}
@media(max-width:560px){.comparison-page{margin-top:26px}.comparison-heading h1{font-size:26px}.comparison-selection{padding:18px 14px}.comparison-section-title{align-items:start}.comparison-section-title h2{font-size:16px}.comparison-section-title>span{white-space:nowrap;font-size:11px}.comparison-selected{grid-template-columns:1fr}.comparison-options{flex-wrap:wrap;gap:12px}.comparison-table th,.comparison-table td{padding:16px 12px}.comparison-empty{padding:36px 12px}.comparison-toolbar{margin-top:26px}}

.comparison-page .compare-tone-0{--town-color:#153da6}.comparison-page .compare-tone-1{--town-color:#4568b1}.comparison-page .compare-tone-2{--town-color:#172b50}.comparison-page .compare-tone-3{--town-color:#596b8b}
.comparison-bar{width:100%}.comparison-bar rect{fill:var(--town-color)}
.comparison-table:has(thead th:nth-child(5)){min-width:1040px}

.compare-tabs{display:flex;gap:28px;border-bottom:1px solid #e1e7f2;margin:0 0 26px}
.compare-tabs button{position:relative;border:0;background:transparent;color:#53617b;padding:12px 2px 14px;font-size:14px;font-weight:600}
.compare-tabs button:hover{color:#153da6}
.compare-tabs button[aria-selected="true"]{color:#153da6}
.compare-tabs button[aria-selected="true"]:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#153da6;border-radius:2px}
.comparison-page [role="tabpanel"][hidden]{display:none}
.rankings-placeholder{padding:40px 24px;background:#f8faff;border:1px solid #dce5f5;border-radius:12px}
.rankings-status{display:inline-block;font-size:11px;color:#153da6;background:#edf2ff;padding:4px 9px;border-radius:4px;margin-bottom:16px}
.rankings-placeholder h2{font-size:20px;margin:0 0 10px}
.rankings-placeholder p{max-width:530px;font-size:13px;color:#53617b;margin:0}

/* Multiple selection, using the same search treatment as the home page. */
.comparison-selection{border:0;background:none;border-radius:0;padding:0 0 22px;border-bottom:1px solid #e1e7f2}
.comparison-section-title{margin-bottom:16px}.comparison-section-title h2{font-size:16px}
.comparison-search{max-width:636px;margin:0 auto}
.comparison-searchbox{display:flex;align-items:center;gap:12px;padding:7px 7px 7px 18px;background:#fff;border:1px solid #b9cbed;border-radius:12px;box-shadow:0 6px 22px #173c9410}
.comparison-searchbox:focus-within{outline:2px solid #153da6;outline-offset:3px;box-shadow:none}
.comparison-searchbox input{flex:1;min-width:0;border:0;background:none;padding:8px 4px;font-size:14px;outline:none}
.comparison-searchbox>button{padding:10px 22px;border:0;border-radius:7px;background:#153da6;color:white;font-size:12px;font-weight:600}
.comparison-selected{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0}
.comparison-town{flex:0 1 auto;max-width:100%;padding:9px 12px;border-top:1px solid #dce5f5;border-radius:8px;gap:9px}
.comparison-town strong{font-size:13px}.comparison-town small{font-size:11px}
.comparison-add{display:flex;align-items:center;gap:9px;min-height:48px;padding:9px 15px;border:1px dashed #a9bce3;border-radius:8px;background:white;color:#153da6;font-size:13px}
.comparison-add>span{font-size:21px}.comparison-add:hover{background:#f5f8ff;border-color:#153da6}
.comparison-hint{margin-top:12px}
.comparison-table{min-width:620px;max-width:none}.comparison-table thead th:first-child{width:240px}
.comparison-table tr>th:first-child{position:sticky;left:0;z-index:1;background:white;box-shadow:1px 0 0 #e1e7f2}
@media(max-width:560px){.comparison-searchbox{gap:8px;padding-left:12px}.comparison-searchbox input{font-size:12px}.comparison-searchbox>button{padding:10px}.comparison-section-title{flex-wrap:wrap;gap:6px}.comparison-town{flex:1 1 160px}.comparison-add{flex:1 1 160px;justify-content:center}.comparison-table thead th:first-child{width:160px}}

.comparison-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px;margin-top:22px}
.comparison-chart{padding:20px 0 8px;border-top:2px solid #153da6;min-width:0}
.comparison-chart h3{font-size:15px;margin:0 0 4px;font-weight:650}
.comparison-chart-unit{font-size:11px;color:#53617b;margin:0 0 22px}
.comparison-chart ul{list-style:none;padding:0;margin:0;display:grid;gap:20px}
.comparison-chart li>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:9px}
.comparison-chart li span{font-size:13px;overflow-wrap:anywhere}
.comparison-chart li strong{font-size:19px;font-weight:700;color:var(--town-color);font-variant-numeric:tabular-nums;white-space:nowrap}
.comparison-chart svg{display:block;width:100%;height:8px}
.comparison-chart-track{fill:#edf2fa}.comparison-chart-fill{fill:var(--town-color)}
.comparison-chart line{stroke:#9cabc6;stroke-width:.3}
.comparison-exact{margin-top:30px;padding:18px 0;border-top:1px solid #e1e7f2}
.comparison-exact>summary{font-size:13px;color:#153da6}.comparison-exact[open]>.comparison-table-wrap{margin-top:20px}
@media(max-width:650px){.comparison-charts{grid-template-columns:1fr;gap:24px}.comparison-chart li strong{font-size:17px}}

.comparison-line-charts{grid-template-columns:1fr}
.comparison-chart .compare-line-svg{width:100%;height:auto;max-height:350px;overflow:visible}
.compare-grid{stroke:#e1e7f2;stroke-width:1}.compare-axis{fill:#53617b;font-size:11px}
.compare-curve{fill:none;stroke:var(--town-color);stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.compare-point{fill:white;stroke:var(--town-color);stroke-width:2;cursor:crosshair}
.compare-point:hover,.compare-point:focus{fill:var(--town-color);stroke-width:3;outline:none}
.compare-line-reading{font-size:12px;color:#53617b;min-height:20px;margin:8px 0 14px}
.comparison-chart .compare-line-legend{display:flex;flex-wrap:wrap;gap:10px 22px}
.compare-line-legend li{display:flex;align-items:center;gap:7px;font-size:12px}.compare-line-legend i{width:16px;height:3px;background:var(--town-color)}.compare-line-legend small{font-size:11px;color:#53617b}
@media(max-width:560px){.compare-axis{font-size:13px}.compare-line-reading{font-size:11px}}

.comparison-page .compare-tone-0{--town-color:#16804a}.comparison-page .compare-tone-1{--town-color:#cb3346}.comparison-page .compare-tone-2{--town-color:#a47a00}.comparison-page .compare-tone-3{--town-color:#835437}.comparison-page .compare-tone-4{--town-color:#5267bd}.comparison-page .compare-tone-5{--town-color:#8a4ca5}.comparison-page .compare-tone-6{--town-color:#087b86}.comparison-page .compare-tone-7{--town-color:#c06520}
.compare-date-heading{margin-top:26px;font-size:12px;color:#53617b}.compare-date-heading strong{margin-left:8px;color:#142443}
.compare-date-rail{display:flex;overflow-x:auto;margin:14px 0 24px;padding-bottom:8px;gap:0}.compare-date-rail button{position:relative;flex:1 0 68px;background:none;border:0;border-top:1px solid #dce5f5;padding:16px 10px 10px;color:#53617b;font-size:12px}.compare-date-rail button span{position:absolute;left:calc(50% - 3px);top:-4px;width:7px;height:7px;border-radius:50%;background:#b9c9e5}.compare-date-rail button[aria-pressed=true]{background:#edf2ff;color:#153da6;font-weight:700}.compare-date-rail button[aria-pressed=true] span{background:#153da6}
.comparison-charts[hidden],.comparison-table-wrap[hidden]{display:none}
.comparison-chart{position:relative}.compare-year-hit{fill:transparent;cursor:crosshair}.compare-year-hit:focus-visible{outline:none;fill:#153da608}
.compare-crosshair{stroke:#8192af;stroke-width:1;stroke-dasharray:4 3;pointer-events:none}
.compare-year-tooltip{position:absolute;top:64px;right:12px;z-index:3;pointer-events:none;background:#fff;border:1px solid #dce5f5;border-radius:8px;padding:12px 16px;box-shadow:0 6px 24px #193d791a;max-width:360px;max-height:230px;overflow:auto;font-size:12px}
.compare-year-tooltip[hidden]{display:none}.compare-year-tooltip>strong{display:block;margin-bottom:8px}.compare-year-tooltip>div{display:grid;grid-template-columns:1fr auto;gap:2px 16px;margin:8px 0}.compare-year-tooltip b{color:var(--town-color)}.compare-year-tooltip small{grid-column:1/-1;font-size:10px;color:#53617b}
@media(max-width:560px){.compare-year-tooltip{top:62px;right:0;max-width:95%;padding:8px;font-size:11px;max-height:150px}}

.compare-year-hit:focus{outline:none}
.compare-date-rail button{flex-basis:42px;padding-inline:5px}
@media(max-width:650px){.compare-date-rail button{flex-basis:60px}}

.comparison-timeline{margin-top:26px;padding:0}
.compare-selected-year{pointer-events:none;fill:var(--blue);font:700 12px Manrope,sans-serif}
.compare-selected-year line{stroke:var(--blue);stroke-width:1.5;stroke-dasharray:4 3}
.compare-selected-value{pointer-events:none}
.compare-selected-value line{stroke:var(--town-color);stroke-width:1;stroke-dasharray:5 4;opacity:.45}
.compare-selected-value circle{stroke:var(--town-color);stroke-width:2;fill:white}



/* Comparison charts: compact panels and selected-year values. */
.comparison-line-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.comparison-line-charts .comparison-chart{border:1px solid #dfe6f2;border-radius:12px;padding:22px 20px 18px;background:#fff;box-shadow:0 3px 16px #16366804}
.comparison-chart h3{font-size:16px;font-weight:700;letter-spacing:-.25px}
.comparison-chart-unit{margin-bottom:18px;font-size:12px}
.comparison-chart .compare-line-svg{max-height:none;margin:0 0 12px}
.compare-values-heading{border-top:1px solid #edf0f6;padding-top:14px;margin-bottom:10px;font-size:11px;color:var(--muted)}
.comparison-chart .compare-line-legend{display:grid;gap:9px}
.compare-line-legend li{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:9px;align-items:center}
.compare-line-legend i{height:7px;width:7px;border-radius:50%}
.comparison-chart .compare-line-legend li span{font-size:12px}
.comparison-chart .compare-line-legend li strong{font-size:13px;font-weight:650;white-space:normal;text-align:right}
.comparison-chart .compare-year-tooltip{top:72px;right:16px;max-width:calc(100% - 32px);font-size:12px}
@media(max-width:900px){.comparison-line-charts{grid-template-columns:1fr}.comparison-line-charts .comparison-chart{padding:20px 14px 16px}}
.compare-expand{position:absolute;right:16px;top:16px;display:grid;place-items:center;width:32px;height:32px;padding:6px;border:1px solid #dfe6f2;border-radius:7px;background:white;color:var(--blue);cursor:pointer}
.compare-expand:hover{background:#edf3ff;border-color:#a7bce9}
.comparison-chart .compare-expand svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.comparison-chart:has(.compare-expand) h3{padding-right:38px}
.compare-chart-dialog{width:min(1080px,calc(100vw - 40px));max-height:90vh;box-sizing:border-box;border:1px solid #dfe6f2;border-radius:16px;padding:26px;color:var(--ink);background:white;box-shadow:0 24px 90px #10254c33;overflow:auto}
.compare-chart-dialog::backdrop{background:#10234480;backdrop-filter:blur(3px)}
.compare-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.compare-dialog-heading h2{font-size:22px;letter-spacing:-.4px;margin:0}
.compare-dialog-close{border:1px solid var(--line);border-radius:7px;background:white;color:var(--muted);font-size:25px;width:36px;height:36px;flex-shrink:0;cursor:pointer}
.compare-dialog-controls{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:18px}
.compare-dialog-period{display:flex;gap:12px}.compare-dialog-period label{display:grid;gap:5px;font-size:12px;color:var(--muted)}
.compare-dialog-period select{min-width:100px;font:inherit;font-size:14px;color:var(--ink);background:white;border:1px solid var(--line);border-radius:6px;padding:9px 12px}
.compare-dialog-chart .comparison-chart{border:0;padding:0}
.compare-dialog-chart .comparison-chart h3{display:none}
.compare-dialog-chart .compare-line-svg{max-height:430px}
.compare-dialog-chart .compare-line-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px}
.compare-chart-dialog button:focus-visible,.compare-chart-dialog select:focus-visible,.compare-expand:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(max-width:650px){.compare-chart-dialog{width:calc(100vw - 20px);padding:18px 12px;max-height:94dvh}.compare-dialog-heading h2{font-size:18px}.compare-dialog-controls{align-items:start;flex-direction:column;gap:14px}.compare-dialog-chart .compare-line-legend{grid-template-columns:1fr}}
html:has(.compare-chart-dialog[open]),body:has(.compare-chart-dialog[open]){overflow:hidden}
.compare-chart-dialog{overscroll-behavior:contain}
.compare-year-tooltip{pointer-events:auto;overscroll-behavior:contain;scrollbar-width:thin}
.compare-y-zoom{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px;color:var(--muted);font-size:12px}
.compare-y-zoom span{margin-right:5px}.compare-y-zoom button{border:1px solid var(--line);border-radius:5px;background:white;color:var(--blue);min-width:30px;height:30px;padding:0 9px;font:inherit;cursor:pointer}
.compare-y-zoom button:disabled{opacity:.4;cursor:default}.compare-y-zoom output{min-width:34px;font-variant-numeric:tabular-nums}
.comparison-chart .compare-plot-layer{width:514px;height:180px;overflow:hidden}
.compare-expand,.compare-expand:hover,.compare-dialog-close,.compare-dialog-close:hover{border:0;background:transparent;box-shadow:none}
.compare-expand{width:30px;height:30px;padding:7px}
.comparison-chart .compare-expand svg{width:15px;height:15px}
.compare-expand:hover,.compare-dialog-close:hover{color:#0a2691}
.compare-dialog-chart .compare-line-svg,.compare-dialog-chart .compare-year-hit{cursor:grab;touch-action:none}
.compare-chart-dialog.is-panning,.compare-chart-dialog.is-panning .compare-line-svg,.compare-chart-dialog.is-panning .compare-year-hit{cursor:grabbing;user-select:none}
.compare-chart-dialog.is-panning .compare-year-tooltip{display:none}
.compare-sort{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:650;text-align:left;cursor:pointer}
.compare-sort-arrows{display:inline-flex;gap:0;flex-shrink:0;color:#b1bdd1;font-size:17px;letter-spacing:-4px;padding-right:4px}
.compare-sort-arrows .active{color:var(--blue)}.compare-sort:hover{color:var(--blue)}
.compare-sort:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
.comparison-table td strong{font-size:16px}.comparison-table thead th{vertical-align:middle}
.ranking-toolbar{margin-top:26px}.ranking-toolbar .comparison-options{flex-wrap:wrap;justify-content:flex-end}
.ranking-list{list-style:none;padding:0;margin:0}.ranking-list li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid #edf0f6;padding:12px 0}
.ranking-list li:last-child{border-bottom:0}.ranking-position{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.ranking-list a{min-width:0;text-decoration:none}.ranking-list a strong{display:block;font-size:13px;font-weight:600;color:var(--ink)}.ranking-list small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:3px}
.ranking-value{text-align:right;font-size:14px;color:var(--blue);font-weight:650;font-variant-numeric:tabular-nums}
.ranking-all{border:0;border-top:1px solid var(--line);background:none;width:100%;padding:14px 0 0;margin-top:12px;display:flex;justify-content:space-between;color:var(--blue);font:inherit;font-size:12px;cursor:pointer}
.ranking-dialog{max-width:760px}.ranking-dialog .compare-dialog-heading p{font-size:12px;color:var(--muted);margin:8px 0 0}.ranking-dialog .ranking-list li{padding:15px 0}
@media(max-width:650px){.ranking-toolbar .comparison-options{justify-content:flex-start}.ranking-list li{gap:8px;grid-template-columns:22px minmax(0,1fr) auto}.ranking-value{font-size:12px}}
.ranking-search{position:relative;max-width:636px;margin:24px auto 26px}.ranking-search-status{font-size:12px;color:var(--muted);margin:10px 0 0}.ranking-search-status button{border:0;background:none;color:var(--blue);font:inherit;text-decoration:underline;margin-left:8px;cursor:pointer}
#ranking-suggestions{position:absolute;top:58px;left:0;right:0;z-index:5;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 30px #17396d18;max-height:300px;overflow:auto}
#ranking-suggestions button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0f6;padding:12px 16px;background:white;color:var(--ink);font:inherit;cursor:pointer}#ranking-suggestions button:hover,#ranking-suggestions button:focus{background:#edf3ff}#ranking-suggestions small{display:block;color:var(--muted);margin-top:4px;font-size:11px}#ranking-suggestions p{padding:12px 16px;font-size:12px}
.ranking-list li.ranking-highlight{background:#edf3ff;box-shadow:10px 0 0 #edf3ff,-10px 0 0 #edf3ff;border-radius:6px}.ranking-highlight .ranking-position,.ranking-highlight a strong{color:var(--blue);font-weight:700}
.ranking-unavailable{font-size:12px;color:var(--muted);padding:10px;background:#f6f8fc;border-radius:6px}
/* Compact rankings, independent of comparison charts. */
.ranking-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ranking-cards .comparison-chart{padding:18px 16px 14px}
.ranking-cards .comparison-chart h3{font-size:14px;min-height:38px;padding-right:27px}
.ranking-cards .comparison-chart-unit{margin-bottom:12px;font-size:11px}
.ranking-cards .ranking-list li{grid-template-columns:26px minmax(0,1fr) auto;gap:8px;padding:9px 0}
.ranking-cards .ranking-list a strong{font-size:12px}
.ranking-cards .ranking-list small{font-size:10px}
.ranking-cards .ranking-value{font-size:12px}
.ranking-cards .ranking-all{font-size:11px;padding-top:12px;margin-top:8px}
@media(max-width:1100px){.ranking-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.ranking-cards{grid-template-columns:1fr}.ranking-cards .comparison-chart h3{min-height:0}}
.ranking-dialog[open]{display:flex;flex-direction:column;overflow:hidden;max-height:94dvh}
.ranking-dialog .compare-dialog-heading{flex-shrink:0;margin-bottom:16px}
.ranking-dialog-search{position:relative;flex-shrink:0;margin-bottom:10px}
.ranking-dialog-search .comparison-searchbox{width:100%;box-sizing:border-box;box-shadow:none}
.ranking-dialog-status{font-size:12px;color:var(--muted);margin:10px 0 0;min-height:18px}
.ranking-dialog-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 10px;max-height:600px}
.ranking-dialog .ranking-list li{box-sizing:border-box;min-height:60px;padding:10px 0}
.ranking-dialog-suggestions{position:absolute;top:58px;left:0;right:0;z-index:5;max-height:250px;overflow:auto;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #17396d18}
.ranking-dialog-suggestions button{display:block;width:100%;padding:10px 14px;text-align:left;border:0;background:white;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.ranking-dialog-suggestions button:hover,.ranking-dialog-suggestions button:focus{background:#edf3ff}.ranking-dialog-suggestions small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.ranking-dialog-suggestions p{padding:12px;font-size:12px}

.ranking-filters{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;margin:20px 0 10px;padding:16px;background:#f7f9ff;border-radius:10px}
.ranking-filters label{display:grid;gap:6px;font-size:12px;color:var(--muted);min-width:0}
.ranking-filters select{width:100%;min-width:0;background:white;border:1px solid #d8e2fa;border-radius:6px;padding:10px;color:var(--ink);font:inherit;font-size:13px}
.ranking-filters button{border:0;background:transparent;color:var(--blue);padding:11px 4px;font:inherit;font-size:12px;cursor:pointer}.ranking-filters button:disabled{opacity:.4;cursor:default}
.ranking-filters p{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}
@media(max-width:700px){.ranking-filters{grid-template-columns:1fr 1fr}.ranking-filters label:first-child{grid-column:1/-1}.ranking-filters button{justify-self:start}}
.ranking-list li{grid-template-columns:30px minmax(0,1fr) auto 16px}.ranking-list input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:#1845bf;cursor:pointer}.ranking-delta{display:block;font-size:10px;white-space:nowrap;margin-top:4px;color:#617296}.ranking-selection{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0;font-size:12px;color:var(--muted)}.ranking-selection button{border:0;background:transparent;color:#1744b5;font:inherit;cursor:pointer;padding:6px 0}.ranking-selection button:disabled{opacity:.4;cursor:default}.ranking-selection [data-ranking-compare]{font-weight:600}.ranking-dialog .ranking-selection{flex-shrink:0}.ranking-toolbar [hidden]{display:none!important}
@media(max-width:650px){.ranking-list li{grid-template-columns:26px minmax(0,1fr) auto 16px}}

.ranking-delta.ranking-gain{color:#14804a;font-weight:600}.ranking-delta.ranking-loss{color:#ce3047;font-weight:600}
.ranking-category{margin-top:30px}.ranking-category-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #dce5f7}.ranking-category-heading h2{font-size:18px;margin:0}.ranking-category-heading label{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.ranking-category-heading select{font:inherit;font-size:13px;color:var(--ink);padding:8px 12px;background:white;border:1px solid #d8e2fa;border-radius:6px}.ranking-category .ranking-cards{margin-top:0}
.ranking-category-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.ranking-cards .ranking-card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-right:0}.ranking-sort{flex-shrink:0;padding:0;border:0;background:transparent}.ranking-sort .compare-sort-arrows{font-size:15px}@media(max-width:700px){.ranking-category-heading{flex-wrap:wrap}.ranking-category-controls{gap:10px}}
.ranking-sort{width:auto}.ranking-card-title>span{min-width:0}
/* Sources & méthode */
.sources-page{max-width:1150px;margin:0 auto;padding:24px 0 12px}.sources-hero{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;align-items:center;padding:20px 0 36px}.sources-kicker{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:var(--blue);font-weight:700}.sources-hero h1{font-size:40px;line-height:1.2;font-weight:700;margin:14px 0 18px;letter-spacing:-1.3px}.sources-hero h1 span{color:var(--blue)}.sources-hero p{font-size:14px;line-height:1.8;color:var(--muted);max-width:570px;margin:0}.sources-hero aside{border-left:1px solid #dbe4f7;padding:8px 0 8px 32px}.sources-hero aside strong{font-size:16px}.sources-hero aside p{font-size:13px;margin:12px 0 18px}.sources-hero aside a{font-size:13px;font-weight:600}.sources-nav{display:flex;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0}.sources-nav a{font-size:13px;text-decoration:none}.sources-section{margin-top:48px;scroll-margin-top:24px}.sources-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.sources-section h2{font-size:24px;letter-spacing:-.5px;margin:7px 0 0}.sources-section-heading p{font-size:13px;color:var(--muted);margin:10px 0 0}.sources-count{font-size:12px;color:var(--muted);white-space:nowrap}.sources-search{display:flex;gap:12px;align-items:center;border:1px solid #c7d6f4;border-radius:9px;padding:0 16px;max-width:640px;background:white}.sources-search svg{height:19px;width:19px;fill:none;stroke:var(--blue);stroke-width:1.8;flex-shrink:0}.sources-search input{border:0;background:none;padding:15px 0;width:100%;min-width:0;font:inherit;font-size:13px;outline:none}.sources-search:focus-within{outline:2px solid var(--blue);outline-offset:3px}.sources-results-count{font-size:12px;color:var(--muted);min-height:16px;margin:12px 0}.sources-group{border:1px solid #dde5f5;border-radius:10px;margin-bottom:10px;overflow:hidden}.sources-group>summary{display:flex;align-items:center;gap:14px;padding:20px 22px;cursor:pointer;font-size:15px;font-weight:600;list-style:none}.sources-group>summary::-webkit-details-marker{display:none}.sources-group>summary:hover{background:#f8faff}.sources-group-count{font-size:11px;font-weight:400;color:var(--muted);margin-left:auto}.sources-chevron{color:var(--blue);font-size:18px}.sources-group[open] .sources-chevron{transform:rotate(180deg)}.sources-group[open]>summary{background:#f5f8ff;border-bottom:1px solid var(--line)}.sources-group-body{padding:0 22px}.sources-record{padding:24px 0;border-bottom:1px solid var(--line)}.sources-record:last-child{border-bottom:0}.sources-record-heading{display:flex;justify-content:space-between;align-items:start;gap:18px}.sources-record h3{font-size:15px;margin:0}.sources-state{font-size:10px;color:#48648a;background:#f0f4fa;padding:4px 8px;border-radius:4px;white-space:nowrap}.sources-state.is-partial{color:#85651c;background:#fbf6e9}.sources-state.is-failed{color:#ad2940;background:#fff0f2}.sources-record p{font-size:13px;line-height:1.7;color:var(--muted);margin:12px 0}.sources-record dl{display:flex;gap:28px;flex-wrap:wrap;margin:16px 0}.sources-record dt{font-size:10px;color:var(--muted);margin-bottom:5px}.sources-record dd{font-size:12px;margin:0}.sources-record>a{font-size:12px}.sources-footnote{font-size:11px;line-height:1.7;color:var(--muted);margin-top:17px;max-width:800px}.sources-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.sources-steps article{border-top:1px solid #cad8f4;padding-top:20px}.sources-steps article>span{font-size:12px;color:var(--blue)}.sources-steps h3{font-size:17px;margin:12px 0}.sources-steps p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}.sources-faq{border-top:1px solid var(--line)}.sources-faq details{border-bottom:1px solid var(--line)}.sources-faq summary{display:flex;justify-content:space-between;gap:18px;padding:20px 0;font-size:14px;cursor:pointer;list-style:none}.sources-faq summary::-webkit-details-marker{display:none}.sources-faq summary span{color:var(--blue)}.sources-faq details[open] summary span{transform:rotate(45deg)}.sources-faq p{font-size:13px;color:var(--muted);line-height:1.8;max-width:880px;margin:0 0 22px}.sources-report{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:40px;padding:28px 32px;background:#f3f7ff;border-radius:12px}.sources-report h2{font-size:18px;margin:0 0 10px}.sources-report p{font-size:12px;line-height:1.8;color:var(--muted);max-width:700px;margin:0}.sources-report>a{font-size:12px;white-space:nowrap}.sources-empty{padding:25px;background:#f7f9fc;border-radius:8px}.sources-empty h3{font-size:16px}.sources-empty p{font-size:13px;color:var(--muted)}
@media(max-width:700px){.sources-page{padding-top:4px}.sources-hero{grid-template-columns:1fr;gap:25px;padding-bottom:28px}.sources-hero h1{font-size:30px}.sources-hero aside{padding-left:18px}.sources-nav{gap:20px;flex-wrap:wrap}.sources-nav a{font-size:12px}.sources-section{margin-top:34px}.sources-section h2{font-size:22px}.sources-section-heading{align-items:start}.sources-count{padding-top:5px}.sources-group>summary{padding:17px 14px;font-size:13px;gap:10px}.sources-group-count{font-size:10px}.sources-group-body{padding:0 14px}.sources-record-heading{flex-direction:column;gap:9px}.sources-record dl{gap:16px}.sources-steps{grid-template-columns:1fr;gap:22px}.sources-report{flex-direction:column;align-items:start;padding:22px;gap:18px}}
/* Pied de page partagé */
footer.site-footer{display:block;max-width:none;margin:56px 0 0;padding:0 max(28px,calc((100vw - 1150px)/2));border-top:1px solid #e1e7f2;background:#f8faff;color:var(--ink)}
.footer-main{display:grid;grid-template-columns:1.35fr 1fr 1.1fr;gap:64px;padding:38px 0 32px}.site-footer .brand-logo{width:210px;height:auto}.footer-intro p{font-size:13px;line-height:1.8;color:var(--muted);margin:14px 0 12px}.footer-independent{display:inline-block;font-size:10px;letter-spacing:.5px;color:var(--muted)}.footer-main h2{font-size:13px;font-weight:700;letter-spacing:0;margin:7px 0 16px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-links h2{margin-bottom:6px}.footer-links a,.footer-about>a{font-size:12px;color:var(--blue);line-height:1.8}.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}.footer-about p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 12px;max-width:285px}.footer-about>a span{margin-left:6px}.footer-bottom{border-top:1px solid #e1e7f2;padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-bottom p{margin:0;font-size:10px;color:var(--muted)}.footer-bottom p span{margin:0 7px}.footer-bottom button{border:0;background:transparent;padding:5px 0;color:var(--muted);font-size:11px}.footer-bottom button span{margin-left:8px;color:var(--blue)}.footer-bottom button:hover{color:var(--blue)}
@media(max-width:700px){footer.site-footer{margin-top:36px;padding:0 20px}.footer-main{grid-template-columns:1fr 1fr;gap:26px 22px;padding:28px 0}.footer-intro{grid-column:1/-1}.footer-main h2{margin-top:0}.footer-about p{max-width:none}.footer-bottom{align-items:flex-start;gap:12px}.footer-bottom p{max-width:210px}.footer-bottom button{white-space:nowrap}}
@media(max-width:360px){.footer-main{grid-template-columns:1fr}.footer-intro{grid-column:auto}.footer-bottom{flex-direction:column}}
.footer-main{grid-template-columns:1.4fr 1fr .9fr 1.2fr;gap:34px}.footer-links a{overflow-wrap:anywhere}.info-page{max-width:950px;margin:0 auto;padding:34px 0}.info-back{font-size:12px;color:var(--muted)}.info-heading{display:block;min-height:0;border:0;background:none;padding:28px 0 20px}.info-heading h1{font-size:34px;font-weight:700;margin:0 0 14px}.info-heading p{font-size:14px;color:var(--muted);margin:0;line-height:1.8}.info-draft{padding:16px 20px;background:#f5f8ff;border:1px solid #dce5f7;border-radius:8px;font-size:12px;color:var(--muted);line-height:1.8}.info-sections section{padding:24px 0;border-bottom:1px solid var(--line)}.info-page h2{font-size:18px;margin:0 0 12px}.info-sections p,.info-preferences p{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.info-sections a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.info-preferences{margin-top:28px;padding:24px;background:#f5f8ff;border-radius:10px}.info-preferences button{background:var(--blue);color:white;border:0;border-radius:6px;padding:10px 16px;font-size:12px;margin:16px 0 10px}.info-related{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px;font-size:12px;color:var(--blue)}
@media(max-width:700px){.footer-main{grid-template-columns:1fr 1fr;gap:26px 22px}.info-page{padding-top:24px}.info-heading h1{font-size:28px}.info-preferences{padding:18px}}
@media(max-width:360px){.footer-main{grid-template-columns:1fr}}
.site-footer .footer-links a{margin-left:0;align-self:flex-start}
.comparison-table .compare-group th{position:static;background:#f3f7ff;color:var(--blue);font-size:13px;padding:14px 18px}.compare-reference-year{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:6px}
.comparison-welcome{max-width:860px;margin:24px auto 30px;padding:28px 28px 26px;border:1px solid #e0e8f8;border-radius:14px;background:linear-gradient(160deg,#f6f9ff,#fff 65%)}.compare-welcome-icon{width:48px;height:48px;margin:0 auto 16px;background:#eaf0ff;border-radius:12px;display:grid;place-items:center}.compare-welcome-icon svg{width:32px;height:32px;fill:none;stroke:#2851bd;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.comparison-welcome h2{font-size:22px;margin-bottom:10px}.comparison-welcome>p{max-width:520px;line-height:1.8}.compare-welcome-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0}.compare-welcome-topics>div+div{border-left:1px solid #e0e7f4}.compare-welcome-topics strong{display:block;font-size:13px;font-weight:600;color:var(--ink)}.compare-welcome-topics span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.compare-start{background:var(--blue);color:white;border:0;border-radius:7px;padding:11px 18px;font-size:12px;font-weight:600}.compare-start:hover{background:#0e2e8b}.compare-start span{margin-left:10px}.comparison-welcome>small{display:block;font-size:11px;color:var(--muted);margin-top:12px}.comparison-hint[hidden]{display:none}@media(max-width:600px){.comparison-welcome{padding:24px 16px;margin-top:18px}.comparison-welcome h2{font-size:20px}.compare-welcome-topics{grid-template-columns:1fr;gap:14px}.compare-welcome-topics>div+div{border-left:0}.compare-welcome-topics span{margin-top:2px}}
.finance-benchmarks{margin:28px 0;padding:24px;border:1px solid #dce5f5;border-radius:12px;background:#f8faff}.benchmark-heading h3{margin:0;font-size:19px}.benchmark-heading p{margin:7px 0 16px;font-size:12px;color:var(--muted)}.benchmark-scopes{display:flex;gap:7px;flex-wrap:wrap}.benchmark-scopes button{background:white;border:1px solid #d6e1f6;border-radius:6px;font-size:12px;padding:8px 12px}.benchmark-scopes button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:white}.benchmark-note{font-size:12px;color:var(--muted);line-height:1.7}.benchmark-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.benchmark-grid article{padding:18px;background:white;border:1px solid #e0e7f5;border-radius:9px}.benchmark-grid h4{margin:0 0 12px;font-size:13px}.benchmark-grid article>strong{display:block;font-size:22px;color:var(--blue)}.benchmark-grid p{font-size:12px;line-height:1.7;color:var(--muted)}.benchmark-grid .benchmark-comparison{color:var(--ink)}.benchmark-grid dl{margin:15px 0 0;border-top:1px solid var(--line);padding-top:10px;font-size:11px}.benchmark-grid dl>div{display:flex;justify-content:space-between;gap:12px;margin:6px 0}.benchmark-grid dt{color:var(--muted)}.benchmark-grid dd{margin:0;text-align:right}.benchmark-method{font-size:12px;margin-top:18px}.benchmark-method p{color:var(--muted);line-height:1.8}@media(max-width:650px){.finance-benchmarks{padding:18px 14px}.benchmark-grid{grid-template-columns:1fr}.benchmark-scopes button{flex:1 1 135px}}
details.finance-benchmarks>summary{font-size:17px;font-weight:700;cursor:pointer}details.finance-benchmarks[open]>summary{margin-bottom:18px}.benchmark-content .benchmark-heading p{margin-top:0}

.finance-takeaways{margin:24px 0 30px}
.finance-takeaways>h3{margin:0 0 16px;font-size:19px}
.finance-takeaways-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.finance-takeaways-grid article{padding:20px;background:#f7f9ff;border:1px solid #dbe3f5;border-radius:12px}
.finance-takeaways-grid h4{font-size:14px;line-height:1.5;margin:0 0 12px}
.finance-takeaways-grid strong{font-size:23px;color:#173daf}
.finance-takeaways-grid p{margin:10px 0 0;line-height:1.6;font-size:13px}
.finance-takeaways-source{font-size:12px;color:#647393;margin:12px 0 0}
@media(max-width:760px){.finance-takeaways-grid{grid-template-columns:1fr}}

.finance-takeaways-grid p strong{font-size:inherit;color:inherit;font-weight:700}
.finance-takeaways-grid h4{font-size:16px;line-height:1.45}

.finance-ratios{margin:30px 0}.finance-ratios>h3{font-size:19px;margin-bottom:8px}.finance-ratios-scope{font-size:12px;color:#657394}
.finance-ratio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.finance-ratio-grid article{padding:20px;border:1px solid #dbe3f5;border-radius:12px;min-width:0}.finance-ratio-heading{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}.finance-ratio-heading h4{font-size:14px;margin:0 0 20px;line-height:1.5}.finance-ratio-grid article>strong{font-size:25px;color:#193eb0}
.ratio-help{position:relative;flex-shrink:0}.ratio-help summary{cursor:pointer;color:#193eb0;list-style:none;font-size:12px;border:1px solid #c9d7f5;border-radius:50%;width:20px;height:20px;text-align:center}.ratio-help summary::-webkit-details-marker{display:none}.ratio-help p{position:absolute;right:0;top:12px;width:240px;max-width:70vw;padding:14px;background:white;box-shadow:0 5px 22px #142e5933;border:1px solid #dbe3f5;border-radius:8px;z-index:15;font-size:13px;line-height:1.6}.ratio-help:not([open]):hover>p,.ratio-help:not([open]):focus-within>p{display:block;content-visibility:visible}
.finance-percap,.finance-ratios-method{margin-top:16px;font-size:13px}.finance-percap summary,.finance-ratios-method summary{cursor:pointer}.finance-percap dl{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}.finance-percap dl>div{display:flex;justify-content:space-between;gap:12px}.finance-percap dd{margin:0;white-space:nowrap}
@media(max-width:760px){.finance-ratio-grid{grid-template-columns:1fr}.finance-percap dl{grid-template-columns:1fr}}

.ratio-help button{padding:0;cursor:pointer;background:white;color:#193eb0;border:1px solid #c9d7f5;border-radius:50%;width:20px;height:20px;font-size:12px}.ratio-help p{display:none}.ratio-help:hover p,.ratio-help:focus-within p{display:block}

.finance-ratios{padding:22px 0;border-top:1px solid #dbe3f5;border-bottom:0}
.finance-ratios>h3{font-size:19px;font-weight:650;color:var(--ink);text-transform:none;letter-spacing:normal;margin:0 0 24px}
.finance-ratio-grid{gap:0;margin:0}
.finance-ratio-grid article{border:0;border-radius:0;padding:4px 24px;background:transparent}
.finance-ratio-grid article:first-child{padding-left:0}
.finance-ratio-grid article+article{border-left:1px solid #dbe3f5}
.finance-ratio-grid article>strong{font-size:30px;line-height:1.25}
.finance-ratio-grid article>h4{font-size:14px;line-height:1.5;margin:10px 0 8px;font-weight:600}
.finance-ratio-formula{display:flex;align-items:center;gap:8px;font-size:12px;color:#657394}
@media(max-width:760px){.finance-ratio-grid article{padding:18px 0}.finance-ratio-grid article:first-child{padding-top:0}.finance-ratio-grid article+article{border-left:0;border-top:1px solid #dbe3f5}.finance-ratio-grid article:last-child{padding-bottom:0}.finance-ratio-grid article>strong{font-size:27px}}

.overview-brief,.overview-trends{margin:28px 0 32px}.overview-brief h3,.overview-trends h3{font-size:19px;margin-bottom:20px}.overview-brief-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.overview-brief-item{display:flex;flex-direction:column;gap:12px;padding:0 20px;border-left:1px solid var(--line)}.overview-brief-item:first-child{padding-left:0;border-left:0}.overview-brief-item>span{font-size:12px;color:var(--muted)}.overview-brief-item strong{font-size:25px;line-height:1.3;color:var(--blue);overflow-wrap:anywhere}.overview-brief-item small{font-size:12px;color:var(--muted);line-height:1.6}.overview-trends>div{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.overview-trends a{padding:18px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.overview-trends a>span{font-size:13px;color:var(--muted)}
@media(max-width:1000px){.overview-brief-grid{grid-template-columns:1fr 1fr;gap:24px 0}.overview-brief-item:nth-child(3){padding-left:0;border:0}}
@media(max-width:550px){.overview-brief-grid,.overview-trends>div{grid-template-columns:1fr}.overview-brief-item{padding:18px 0;border-left:0;border-bottom:1px solid var(--line)}.overview-brief-grid{gap:0}}

.overview-brief-grid{background:transparent;border-radius:0;padding:6px 0}
.overview-brief-item{gap:9px;padding:0 18px}.overview-brief-item strong{font-size:28px;letter-spacing:-.6px}.overview-brief-item>span{font-size:13px;color:var(--ink)}.overview-brief-item small{font-size:12px}.overview-explore>.overview-territory{margin:28px 0 0}
@media(max-width:550px){.overview-brief-grid{padding:0}.overview-brief-item{padding:20px 0}.overview-brief-item:first-child{padding-top:20px}.overview-brief-item:last-child{border-bottom:0}.overview-brief-item strong{font-size:27px}}

.overview-brief-item{min-width:0}.overview-brief-mayor strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}

.overview-trend-arrow{font-size:16px;font-weight:700;vertical-align:-1px;margin-right:3px}.overview-trend-arrow.is-up{color:#16824c}.overview-trend-arrow.is-down{color:#d22c48}.overview-trend-arrow.is-stable{color:#657394}

.benchmark-position{margin:18px 0 10px}.benchmark-position svg{display:block;width:100%;overflow:visible}.benchmark-position text{font-family:inherit;font-size:10px;fill:#657394}.benchmark-position figcaption{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:var(--muted)}.benchmark-position figcaption span{display:inline-flex;align-items:center;gap:5px}.benchmark-position i{display:inline-block;flex-shrink:0}.position-town{width:7px;height:7px;background:#173eae;border-radius:50%}.position-median{height:12px;border-left:2px solid #566782}.position-middle{width:16px;height:5px;background:#a7bde8}.benchmark-position p{margin:14px 0 0}.benchmark-position p strong{font-weight:700;color:var(--ink)}

.benchmark-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:16px 0;color:var(--muted);font-size:12px}.benchmark-legend span{display:inline-flex;align-items:center;gap:6px}.benchmark-legend i{display:inline-block;flex-shrink:0}.benchmark-position .benchmark-rank{display:block;font-size:12px;margin-top:8px}.benchmark-rank strong{color:var(--ink);font-weight:700}

.benchmark-position .benchmark-rank{margin-top:20px}.benchmark-position .benchmark-median-value{font-weight:600;fill:#566782}.position-median{height:10px;border-left:1.5px dashed #566782}

.similar-controls{display:flex;align-items:end;gap:14px;margin:18px 0}.similar-controls label{display:grid;gap:5px;font-size:12px}.similar-controls select,.similar-controls button{padding:10px 14px;border:1px solid #d8e2f7;background:white;border-radius:7px;color:var(--blue)}#similar-results>p{font-size:12px;color:var(--muted)}.similar-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.similar-choices button{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px;border:1px solid #d8e2f7;border-radius:8px;background:#f8faff}.similar-choices small{color:var(--muted)}.similar-choices span{font-size:12px;color:var(--blue)}
.comparison-snapshot{margin:20px 0 28px}.comparison-snapshot h3{font-size:19px}.comparison-snapshot-scroll{overflow-x:auto}.comparison-snapshot table{width:100%;border-collapse:collapse}.comparison-snapshot th,.comparison-snapshot td{padding:13px 16px;border-bottom:1px solid var(--line);min-width:160px;text-align:right;white-space:nowrap}.comparison-snapshot th:first-child{text-align:left}.comparison-snapshot th small{display:block;font-size:11px;font-weight:400;color:var(--muted)}.comparison-snapshot thead th{background:#f7f9fc}.comparison-snapshot td{font-weight:600}
@media(max-width:650px){.similar-controls{align-items:stretch;flex-direction:column}.similar-choices{grid-template-columns:1fr}}

.comparison-charts:not(.comparison-line-charts){display:block}.comparison-charts[hidden]{display:none}

.comparison-charts>.comparison-line-charts{display:grid}

.similar-inline{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px;font-size:12px;color:var(--muted)}.similar-inline button{background:#f7f9fc;border:1px solid #e0e7f4;border-radius:20px;padding:7px 12px;color:var(--blue);font-size:12px}.similar-inline small{color:var(--muted);margin-left:5px}.similar-inline .similar-more{background:none;border:0;padding:7px 4px}.comparison-single{padding:36px 18px}.comparison-single h2{font-size:20px}.comparison-evolution-title{font-size:19px;margin:30px 0 18px}.comparison-more-charts{margin-top:24px}.comparison-more-charts summary{cursor:pointer;color:var(--blue);font-size:14px;padding:14px 0}.comparison-more-charts[open] summary{margin-bottom:12px}.comparison-more-charts>.comparison-line-charts{display:grid}.comparison-snapshot th,.comparison-snapshot td{padding:18px 16px;border-bottom-color:#edf1f8}.comparison-snapshot thead th{background:transparent}

.comparison-selection.is-empty{padding-bottom:44px}

.snapshot-heading{margin-bottom:18px}.snapshot-heading h3{margin:0}
.comparison-snapshot table{border-collapse:separate;border-spacing:0}
.comparison-snapshot thead th{background:#f5f7fc;font-weight:600;padding:17px 20px;color:var(--ink)}
.comparison-snapshot thead th:first-child{border-radius:8px 0 0 8px}.comparison-snapshot thead th:last-child{border-radius:0 8px 8px 0}
.comparison-snapshot tbody th{font-weight:500;white-space:normal;min-width:210px;padding:21px 20px}
.comparison-snapshot td{padding:21px 20px}
.snapshot-value{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.snapshot-value.is-missing{font-size:12px;color:var(--muted);font-weight:400}
.comparison-snapshot tbody tr:hover{background:#fafbfe}
.comparison-snapshot tbody tr:last-child th,.comparison-snapshot tbody tr:last-child td{border-bottom:0}
@media(max-width:600px){.comparison-snapshot tbody th{min-width:170px}.comparison-snapshot td,.comparison-snapshot tbody th{padding:18px 16px}}

/* Detailed comparison follows the summary table with town colors. */
.comparison-table-wrap{border:0;border-radius:0;max-height:none;overflow-x:auto;isolation:isolate}
.comparison-table{width:100%;min-width:calc(240px + var(--comparison-town-count,2)*180px);border-collapse:separate;border-spacing:0;table-layout:fixed;margin:0}
.comparison-table:has(thead th:nth-child(5)){min-width:calc(240px + var(--comparison-town-count,2)*180px)}
.comparison-table th,.comparison-table td{padding:19px 20px;border-bottom:1px solid #edf1f8;text-align:right}
.comparison-table thead th{position:static;background:#f5f7fc;font-size:14px;font-weight:600;color:var(--ink)}
.comparison-table thead th:first-child{z-index:4;background:#f5f7fc;font-size:12px;text-transform:none;letter-spacing:0;width:240px}
.comparison-table th:first-child{text-align:left}
.comparison-table thead a{color:var(--town-color,var(--ink));white-space:normal;overflow-wrap:anywhere}
.comparison-table tbody th{font-size:13px;line-height:1.5}
.comparison-table td strong{font-size:15px;font-weight:600;color:var(--town-color,var(--ink));font-variant-numeric:tabular-nums}
.comparison-table .compare-group th{background:#f8faff;color:var(--blue);font-size:12px;font-weight:600;padding:12px 20px;border-bottom:1px solid #e3e9f4;box-shadow:none}
.comparison-table tr>th:first-child{box-shadow:none}
.comparison-table thead th:first-child{border-radius:8px 0 0 8px}.comparison-table thead th:last-child{border-radius:0 8px 8px 0}
.comparison-table tbody tr:not(.compare-group):hover>td,.comparison-table tbody tr:not(.compare-group):hover>th{background:#fafbfe}
@media(max-width:560px){.comparison-table,.comparison-table:has(thead th:nth-child(5)){min-width:calc(150px + var(--comparison-town-count,2)*160px)}.comparison-table thead th:first-child{width:150px}.comparison-table th,.comparison-table td{padding:16px 12px}.comparison-table tbody th{font-size:12px}}

/* Subtle horizontal scrollbars for comparison tables. */
.comparison-table-wrap,.comparison-snapshot-scroll{scrollbar-width:thin;scrollbar-color:#9aafe0 #f1f4fa;padding-bottom:8px}
@supports selector(::-webkit-scrollbar){
 .comparison-table-wrap,.comparison-snapshot-scroll{scrollbar-width:auto;scrollbar-color:auto}
 .comparison-table-wrap::-webkit-scrollbar,.comparison-snapshot-scroll::-webkit-scrollbar{height:8px}
 .comparison-table-wrap::-webkit-scrollbar-track,.comparison-snapshot-scroll::-webkit-scrollbar-track{background:#f1f4fa;border-radius:999px}
 .comparison-table-wrap::-webkit-scrollbar-thumb,.comparison-snapshot-scroll::-webkit-scrollbar-thumb{background:#9aafe0;border-radius:999px;border:1px solid #f1f4fa}
 .comparison-table-wrap::-webkit-scrollbar-thumb:hover,.comparison-snapshot-scroll::-webkit-scrollbar-thumb:hover{background:#607fc5}
 .comparison-table-wrap::-webkit-scrollbar-thumb:active,.comparison-snapshot-scroll::-webkit-scrollbar-thumb:active{background:#2449ad}
 .comparison-table-wrap::-webkit-scrollbar-button,.comparison-snapshot-scroll::-webkit-scrollbar-button{display:none;width:0;height:0}
}
@media(forced-colors:active){.comparison-table-wrap,.comparison-snapshot-scroll{scrollbar-color:auto}}


.ranking-year-timeline{padding:0}.ranking-year-timeline .finance-exercise-heading{display:flex;justify-content:space-between}.ranking-year-timeline .finance-years button{flex:1 0 76px;min-width:76px}.ranking-year-timeline .finance-year-rail{margin:16px 0 24px}.ranking-year-timeline .finance-year-range{margin:0}

.ranking-cards .ranking-card-title{justify-content:flex-start;align-items:center;gap:7px;margin-bottom:20px}

.tax-reading{margin:24px 0 28px;border:1px solid #d9e3f7;border-radius:10px;background:#f8faff;padding:18px 22px}
.tax-reading>summary{cursor:pointer;font-size:16px;font-weight:600;color:var(--ink)}.tax-reading-content{padding-top:8px;font-size:13px;line-height:1.7}
.tax-reading-definitions{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tax-reading-definitions strong{display:block;margin-bottom:4px;color:var(--ink)}
.tax-reading-key{color:var(--ink);font-weight:600}.tax-bill-help{margin-top:16px;padding-top:14px;border-top:1px solid #e0e7f5}.tax-bill-help summary{cursor:pointer;color:var(--blue);font-weight:500}.tax-bill-help p{max-width:850px}
@media(max-width:600px){.tax-reading{padding:16px}.tax-reading-definitions{grid-template-columns:1fr;gap:0}}

.tax-reading-key{font-weight:400}.tax-reading-key>strong{font-weight:700;color:var(--blue)}

.markets-page .market-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.market-insights{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin:12px 0 36px}.market-insights h3{font-size:18px;margin:0 0 8px}.market-insights-note{font-size:11px;color:var(--muted);line-height:1.7}.market-top-suppliers{list-style:none;padding:0;margin:16px 0}.market-top-suppliers li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.market-top-suppliers li>strong{white-space:nowrap;color:var(--blue)}.market-top-suppliers small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.market-distribution{margin:20px 0}.market-distribution>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.market-distribution small{font-weight:400;color:var(--muted)}.market-distribution svg{width:100%;height:6px;display:block;margin-top:9px;border-radius:4px}.market-distribution-track{fill:#edf2fa}.market-distribution-fill{fill:#2449ad}.market-distribution-fill.tone-1{fill:#6889ce}.market-distribution-fill.tone-2{fill:#a4bbe8}.market-distribution-fill.tone-3{fill:#a5adbb}
@media(max-width:700px){.market-insights{grid-template-columns:1fr;gap:24px}.markets-page .market-summary{grid-template-columns:1fr}.market-top-suppliers li>span{min-width:0;overflow-wrap:anywhere}}

#market-summary-title{margin:30px 0 20px}.market-top-suppliers strong{font-variant-numeric:tabular-nums}

#subsidy-overview{margin:30px 0}#subsidy-overview>h3{margin-bottom:20px}#subsidy-overview .market-insights{margin-bottom:12px}

#subsidy-overview .subsidy-insights-wide{grid-template-columns:minmax(0,1fr)}

.document-type-filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 10px}.document-type-filters button{border:1px solid #d6e1f7;border-radius:6px;background:white;color:var(--blue);padding:9px 13px;font:inherit;font-size:12px}.document-type-filters button[aria-pressed=true]{background:var(--blue);color:white;border-color:var(--blue)}.document-search-scope{font-size:11px;color:var(--muted);margin:8px 0 24px}.document-entry.document-recent{background:#f8faff;border:0;border-radius:8px;padding:20px;margin-bottom:10px}.documents-page .document-older-title{font-size:18px;margin:30px 0 22px}

.mayor-history-summary{margin:26px 0 30px}.mayor-history-summary h3{font-size:19px;margin:0 0 22px}.mayor-history-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.mayor-history-stats>div{border-left:1px solid var(--line);padding-left:24px}.mayor-history-stats>div:first-child{border:0;padding:0}.mayor-history-stats strong{display:block;color:var(--blue);font-size:28px;font-weight:650;line-height:1.3}.mayor-history-stats span{display:block;margin-top:9px;font-size:13px;color:var(--ink)}.mayor-history-summary>p{font-size:11px;color:var(--muted);margin-top:20px}
@media(max-width:600px){.mayor-history-stats{grid-template-columns:1fr;gap:18px}.mayor-history-stats>div{border:0;padding:0}.mayor-history-stats strong{font-size:25px}}

.mayor-party-list>span>small{display:block;margin-top:5px;font-size:10px;font-weight:400;color:var(--muted)}.mayor-party-list>span{padding:8px 10px}

.mayor-party-list .mayor-party-chip{display:inline-flex;align-items:center;gap:8px}.mayor-party-info{position:relative;display:inline-flex}.mayor-party-info-button{display:inline-grid;place-items:center;width:17px;height:17px;padding:0;border:1px solid #a8bbe8;border-radius:50%;background:transparent;color:var(--blue);font:11px Georgia,serif;cursor:help}.mayor-party-tooltip{display:none;position:absolute;bottom:calc(100% + 9px);right:0;z-index:5;width:220px;max-width:65vw;padding:10px 12px;border:1px solid #d5e0f6;border-radius:7px;background:white;color:var(--ink);box-shadow:0 4px 16px #153da61a;font-size:11px;line-height:1.6;font-weight:400}.mayor-party-info:hover .mayor-party-tooltip,.mayor-party-info:focus-within .mayor-party-tooltip{display:block}.mayor-party-info-button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

.mayor-party-list .mayor-party-chip{position:relative}.mayor-party-info{position:static}.mayor-party-tooltip{left:0;right:auto}

.mayor-party-list{align-items:flex-start}.mayor-party-disclosure{background:#edf2ff;border-radius:5px;color:var(--blue);max-width:100%;font-size:12px}.mayor-party-disclosure summary{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;list-style:none}.mayor-party-disclosure summary::-webkit-details-marker{display:none}.mayor-party-disclosure img{width:26px;height:26px;object-fit:contain;flex-shrink:0}.mayor-party-chevron{font-size:20px;line-height:1;transition:transform .15s}.mayor-party-disclosure[open] .mayor-party-chevron{transform:rotate(180deg)}.mayor-party-disclosure[open] summary{float:left}.mayor-party-period{display:inline-block;padding:8px 10px 8px 0;font-size:11px;line-height:26px;color:var(--muted);max-width:270px}.mayor-party-disclosure::after{content:"";display:block;clear:both}.mayor-party-disclosure summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:5px}

.mayor-party-disclosure[open] summary{float:none;flex-wrap:wrap}.mayor-party-period{display:none;padding:0 0 0 8px;border-left:1px solid #ccd8f5;line-height:20px}.mayor-party-disclosure[open] .mayor-party-period{display:inline-block}

/* Isolated council preview */
.council-preview{margin:22px 0 32px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.council-preview h3{margin:0;font-size:19px;color:var(--ink)}.council-preview-heading p{font-size:12px;color:var(--muted);margin:8px 0 0}
.council-preview-layout{display:flex;align-items:center;gap:48px;max-width:860px;margin:12px auto 0}.council-hemicycle{position:relative;width:100%;max-width:590px;aspect-ratio:1.9;flex:1}.council-seat{position:absolute;transform:translate(-50%,-50%);width:13px;height:13px;border:0;border-radius:50%;padding:0;cursor:pointer}.council-seat-0{background:#153da6}.council-seat-1{background:#628be0}.council-seat-2{background:#c6d5f4}.council-seat:hover,.council-seat:focus-visible{outline:3px solid #153da6;outline-offset:3px;z-index:1}.council-seat-total{position:absolute;bottom:0;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none}.council-seat-total strong{display:block;color:var(--blue);font-size:32px}.council-seat-total span{font-size:12px;color:var(--muted)}.council-seat-legend{min-width:165px}.council-seat-legend>div{display:flex;align-items:center;gap:10px;margin:18px 0;font-size:14px}.council-seat-legend i{width:10px;height:10px;border-radius:50%}.council-seat-legend strong{margin-left:auto;color:var(--blue)}.council-seat-legend p{font-size:11px;color:var(--muted)}
.council-profile{border:1px solid var(--line);border-radius:14px;padding:32px;max-width:560px;width:calc(100% - 32px);max-height:85vh;overflow:auto;color:var(--ink)}.council-profile::backdrop{background:#12234566}.council-profile-close{float:right;background:transparent;border:0;font-size:26px;color:var(--blue);cursor:pointer}.council-profile-role{color:var(--blue);font-size:12px}.council-profile h2{font-size:24px;margin:10px 30px 24px 0}.council-profile h3{font-size:15px;margin-top:24px}.council-profile p,.council-profile dl{font-size:13px;line-height:1.7}.council-profile dl>div{display:flex;justify-content:space-between;gap:20px;margin:12px 0}.council-profile dd{margin:0}.council-profile footer{border-top:1px solid var(--line);padding-top:16px;margin-top:24px;font-size:11px}.council-profile-link{border:0;background:transparent;color:var(--blue);padding:6px 0 14px;cursor:pointer}
@media(max-width:650px){.council-preview-layout{display:block}.council-seat{width:10px;height:10px}.council-seat-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.council-seat-legend>div{font-size:12px;margin:18px 0 0}.council-seat-legend p{width:100%;text-align:center;margin:0}.council-seat-total strong{font-size:24px}.council-profile{padding:22px}}
.council-hemicycle svg{display:block;width:100%;height:auto;overflow:visible}.council-seat{position:static;transform:none;stroke:white;stroke-width:.35}.council-seat-0{fill:#153da6}.council-seat-1{fill:#628be0}.council-seat-2{fill:#c6d5f4}.council-seat:hover,.council-seat:focus-visible{outline:none;stroke:#153da6;stroke-width:.7}
.council-preview-positions .council-seat-1{fill:#b07939;background:#b07939}.council-preview-positions .council-seat-2{fill:#a5afbf;background:#a5afbf}
.council-hemicycle .council-seat{background:transparent;box-shadow:none;outline:none}.council-hemicycle .council-seat:focus{background:transparent;box-shadow:none;outline:none}.council-seat-tooltip{position:absolute;z-index:5;transform:translate(-50%,-100%);max-width:calc(100% - 8px);padding:7px 11px;border:1px solid #d6e0f3;border-radius:6px;background:white;color:var(--ink);box-shadow:0 3px 12px #153da61a;font-size:12px;line-height:1.5;text-align:center;pointer-events:none}.council-seat-tooltip[hidden]{display:none}

.header-search{position:relative;flex:1;max-width:310px;min-width:190px;margin-left:auto;z-index:30}.header-search form{display:flex;align-items:center;gap:9px;padding:9px 12px;background:#f7f9fd;border:1px solid #dce4f3;border-radius:8px}.header-search form:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #153da612}.header-search svg{width:17px;height:17px;fill:none;stroke:var(--blue);stroke-width:1.7;flex-shrink:0}.header-search input{width:100%;min-width:0;border:0;outline:none;background:transparent;padding:0;font-size:12px;color:var(--ink)}.header-search input:focus-visible{outline:none}#header-search-panel{position:absolute;top:calc(100% + 8px);left:0;width:100%;min-width:290px;background:white;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px #14244320;overflow:hidden}#header-search-panel[hidden]{display:none}#header-search-panel>p{padding:10px 14px;margin:0;color:var(--muted);font-size:11px}.header-search-results{max-height:350px;overflow-y:auto}.header-search-results a{display:block;padding:10px 14px;border-top:1px solid #edf1f8}.header-search-results a:hover,.header-search-results a:focus{background:#edf3ff;outline:none}.header-search-results strong{display:block;font-size:13px;color:var(--blue)}.header-search-results small{font-size:11px;color:var(--muted)}.site-header nav{margin-left:0}
@media(min-width:761px) and (max-width:1050px){.site-header{gap:18px}.site-header nav{gap:12px}.site-header .brand-logo{width:200px}}
@media(max-width:760px){.header-search{order:3;flex:0 0 100%;max-width:none;margin:0}.site-header nav{order:4}.main-menu-toggle{order:2}.header-search form{padding:11px 12px}.header-search input{font-size:14px}#header-search-panel{min-width:0}.header-search-results{max-height:45vh}}
.header-search[hidden]{display:none}.header-search{max-width:370px;min-width:260px}.header-search .searchbox{padding:5px 5px 5px 12px;gap:8px;background:#fff;border:1px solid #b9cbed;border-radius:12px;box-shadow:0 6px 22px #173c9410}.header-search .searchbox:focus-within{outline:2px solid var(--blue);outline-offset:3px;box-shadow:none}.header-search .searchbox input{flex:1;font-size:12px;padding:6px 0}.header-search .searchbox input::placeholder{color:#667997}.header-search .searchbox button{flex-shrink:0;border:0;border-radius:7px;padding:8px 11px;background:var(--blue);color:white;font-size:11px;font-weight:600}.header-search .searchbox button:hover{background:#0d2a7d}.site-header nav{margin-left:auto}
@media(max-width:760px){.header-search{max-width:none;min-width:0}.site-header nav{margin-left:0}.header-search .searchbox input{font-size:12px}}
/* Search stays compact until explicitly opened. */
.header-search{flex:0 0 auto;min-width:0;max-width:none}#header-search-toggle{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #dce4f3;border-radius:7px;background:white;color:var(--blue);font-size:12px;white-space:nowrap}#header-search-toggle:hover{background:#f7f9fd}#header-search-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:390px;max-width:calc(100vw - 40px);padding:12px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px #14244320}#header-search-dropdown[hidden]{display:none}#header-search-dropdown #header-search-panel{position:static;width:100%;min-width:0;border:0;box-shadow:none;margin-top:8px}#header-search-dropdown .header-search-results{max-height:40vh}
@media(max-width:760px){.header-search{flex:0 0 auto;order:3;margin:0}#header-search-dropdown{left:0;right:auto}#header-search-toggle{padding:7px 10px}}
/* Centered global search dialog */
#header-search-toggle{padding:10px;width:40px;height:40px;justify-content:center;border:0;background:transparent;color:#53617b}#header-search-toggle svg{width:20px;height:20px;stroke:currentColor}#header-search-toggle:hover{background:transparent;color:var(--ink)}
#header-search-dropdown{position:fixed;inset:0;margin:auto;width:660px;max-width:calc(100vw - 32px);max-height:80dvh;height:fit-content;padding:38px 20px 20px;border:0;border-radius:14px;overflow-y:auto;background:white;box-shadow:0 16px 60px #14244326;color:var(--ink)}#header-search-dropdown:not([open]){display:none}#header-search-dropdown::backdrop{background:#14244333;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.header-search-close{position:absolute;top:3px;right:10px;border:0;background:transparent;font-size:25px;color:#53617b;padding:0 7px}#header-search-dropdown .searchbox{min-height:56px;padding:6px;gap:12px}#header-search-dropdown .searchbox>svg{width:22px;height:22px;margin-left:10px}#header-search-dropdown .searchbox input{font-size:14px;padding:8px 4px}#header-search-dropdown .searchbox button{padding:10px 22px;font-size:12px}#header-search-dropdown .header-search-results{max-height:40dvh;overscroll-behavior:contain}html.commune-search-open,html.commune-search-open body{overflow:hidden;overscroll-behavior:none}
@media(max-width:760px){.header-search{order:1;margin-left:auto}.main-menu-toggle{margin-left:0}.site-header{gap:8px}.site-header .brand-logo{width:200px}#header-search-dropdown .searchbox{gap:6px}#header-search-dropdown .searchbox input{font-size:12px}#header-search-dropdown .searchbox button{padding:10px}#header-search-dropdown{padding:36px 12px 16px}}
/* Bare search bar over the blurred page; suggestions retain their own surface. */
.site-header .header-search{order:3;margin-left:0}.site-header #main-navigation{order:2;margin-left:auto}.site-header{column-gap:24px}
#header-search-dropdown{padding:5px;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;width:650px;max-height:none}
#header-search-dropdown .searchbox{box-shadow:0 8px 30px #14244320}
#header-search-dropdown #header-search-panel{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 30px #14244320;margin-top:12px}
@media(max-width:760px){.site-header{column-gap:8px}.site-header .header-search{order:1;margin-left:auto}.site-header .main-menu-toggle{order:2}.site-header #main-navigation{order:4;margin-left:0}#header-search-dropdown{padding:5px}}
/* Keep the search field anchored independently of result-list height. */
#header-search-dropdown{inset:50% 0 auto;margin: -33px auto 0;max-height:calc(50dvh + 28px);overflow:visible}
#header-search-dropdown .searchbox:focus-within{outline:none;box-shadow:0 8px 30px #14244320;border-color:#b9cbed}
#header-search-dropdown .header-search-results{max-height:calc(50dvh - 110px);overflow-y:auto}
@media(max-width:760px){#header-search-dropdown{inset:50% 0 auto;margin:-33px auto 0}}
/* Quick examples before exploring the map. */
.home-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:850px;margin:28px auto 10px;gap:26px;text-align:center}.home-topics>div+div{border-left:1px solid var(--line);padding-left:26px}.home-topics h2{font-size:14px;font-weight:650;letter-spacing:0;color:var(--ink);margin:0 0 6px}.home-topics p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
@media(max-width:600px){.home-topics{grid-template-columns:1fr;gap:14px;margin:24px 0 8px;text-align:left}.home-topics>div+div{border-left:0;padding-left:0}.home-topics h2{margin-bottom:2px}}
.map-density-mobile{display:none}
@media(max-width:600px){.home-topics{gap:8px;margin-top:18px;margin-bottom:4px}.home-topics h2{margin-bottom:1px}}
@media(max-width:760px){.map-density-legend{display:block;padding:9px 8px}.map-density-legend>strong,.map-density-legend>span{display:none}.map-density-mobile{display:block;width:100%}.map-density-mobile summary{display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;list-style:none;white-space:nowrap;font-size:10px}.map-density-mobile summary::-webkit-details-marker{display:none}.map-density-mobile summary b{color:var(--ink);font-size:10px;font-weight:600}.map-density-mobile summary span{gap:4px}.map-density-mobile summary i{width:8px;height:8px;flex-shrink:0}.map-density-explanation{padding:10px 4px 3px;display:grid;gap:7px}.map-density-explanation p{margin:0 0 3px;font-size:11px;line-height:1.6}.map-density-mobile summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}}
.seo-document{max-width:1050px;margin:32px auto}.seo-document nav{display:flex;gap:16px;flex-wrap:wrap;margin:24px 0}.seo-document a{color:var(--blue);text-decoration:underline}.seo-document article{padding:18px 0;border-bottom:1px solid var(--line)}.seo-document table{width:100%;border-collapse:collapse}.seo-document td,.seo-document th{text-align:left;padding:12px;border-bottom:1px solid var(--line)}

/* The server document remains available without JS and on bootstrap failure. */
.app-booting .seo-document{display:none}
.app-booting #main::before{content:'Chargement des données locales…';display:block;padding:70px 20px;text-align:center;color:var(--muted)}

.home-intro-description .home-independent{font-size:13px;font-weight:600;line-height:1.6;color:var(--muted);margin:12px 0}
.footer-independent{font-size:12px;font-weight:600;line-height:1.7;letter-spacing:0}

.data-notice{padding:14px 18px;margin:16px 0;background:#f7f9fd;border-left:3px solid #b5c8ee;border-radius:0 8px 8px 0;color:var(--ink);font-size:13px}
.data-notice strong{font-weight:600}.data-notice p{margin:4px 0 0;color:var(--muted);line-height:1.6}
.data-empty{padding:32px 22px}.data-sources-link{display:inline-block;margin-top:8px;font-size:13px;color:var(--blue)}
.data-retry{display:block;margin:0 auto 24px;padding:9px 18px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--blue)}

/* Focus may move to the panel after navigation; controls keep their own indicators. */
#main:focus,
#tab-content:focus,
#main section[tabindex="-1"]:focus{outline:none}

@media(max-width:760px){
 .site-header .main-menu-toggle{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#374151;flex-shrink:0}
 .main-menu-toggle svg{display:block}
 .site-header #main-navigation{position:absolute;top:100%;left:0;right:0;width:auto;z-index:1000;margin:0;padding:10px 20px 16px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 22px #14244316}
 .site-header:has(#main-menu-toggle[aria-expanded="true"]){z-index:1001}
}

.main-menu-toggle .menu-icon-close{display:none}
.main-menu-toggle[aria-expanded="true"] .menu-icon-bars{display:none}
.main-menu-toggle[aria-expanded="true"] .menu-icon-close{display:block}
