/* Server-rendered documents: content is visible before any script executes. */
.water-quality{scroll-margin-top:80px}.water-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.php-page .water-heading h2{margin:0}.water-year-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.water-year-form select,.water-year-form button{min-height:44px;padding:8px 12px;font:inherit;border:1px solid var(--line);border-radius:8px;background:white;color:#184b44}.water-year-form button{cursor:pointer;font-weight:650}.water-year-form button:hover{background:#eaf2ed}.water-year-form :is(select,button):focus-visible{outline:2px solid #19675b;outline-offset:3px}.water-metadata{font-size:.9rem}.water-summary{padding:16px 18px;border-radius:10px;background:#f5f8f6;border:1px solid #dce5df}.water-summary>strong{font-size:1.2rem}.water-summary p{margin:6px 0 0}.water-network-list,.water-history-list{list-style:none;margin:0;padding:0}.water-network-list>li{display:flex;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.water-network-list>li>div{display:flex;flex-direction:column;gap:5px;min-width:0}.water-network-list>li>div:last-child{text-align:right}.water-network-list a{display:inline-block;padding:7px 0}.water-history-list li{padding:14px 0;border-bottom:1px solid var(--line)}.water-history-list :is(strong,span){display:block;margin-top:4px}.water-history-list a{display:inline-block;padding:6px 0}.water-legend{display:flex;flex-wrap:wrap;gap:12px 22px}.water-legend>div{display:flex;gap:8px}.water-legend dt{font-weight:700}.water-legend dd{margin:0}@media(max-width:600px){.water-heading{align-items:stretch}.water-year-form{width:100%}.water-network-list>li{flex-direction:column;gap:8px}.water-network-list>li>div:last-child{text-align:left}.water-summary{padding:14px}.water-year-form label{flex-basis:100%}}
.php-page .layout{display:flex;flex-direction:column;gap:24px;max-width:1180px;margin:auto;padding:24px 24px 48px}
.php-page .page-heading h1{font-size:clamp(1.8rem,4vw,3rem);line-height:1.15;margin:8px 0 18px;overflow-wrap:anywhere}
.php-page .page-heading .lead{max-width:78ch}.php-page p{line-height:1.65}.php-page a{overflow-wrap:anywhere}
.php-page .content-card{margin:0;padding:28px}.php-page .content-card h2{margin:0 0 16px}.php-page .content-card h3{margin:18px 0 8px}
.php-page .server-search{display:block;margin:0}.server-search label{display:block;font-weight:650;margin-bottom:8px}.server-search .muted{margin:8px 0 0}
.skip-link{position:absolute;left:16px;top:-100px;background:white;padding:12px;z-index:100}.skip-link:focus{top:12px}
.pagination{display:flex;flex-wrap:wrap;gap:10px}.pagination a{padding:10px 15px;border:1px solid var(--line);border-radius:8px;background:white;text-decoration:none}
.pagination a[aria-current]{background:#184b44;color:white}
.php-page .focus-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.php-page .focus-links a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid #dce5df;border-radius:10px;background:#f5f8f6;color:#184b44;text-decoration:none;text-align:center;font-weight:650;line-height:1.4;transition:background-color .15s,border-color .15s}
.php-page .focus-links .focus-icon{flex-shrink:0}
.php-page .focus-links a:hover{background:#eaf2ed;border-color:#97b6a6}
.php-page .focus-links a[aria-current]{background:#184b44;border-color:#184b44;color:#fff}
.php-page .focus-links a[aria-current]:hover{background:#123c35;border-color:#123c35}
.php-page .focus-links a:focus-visible{outline:2px solid #19675b;outline-offset:3px}
@media(max-width:700px){.php-page .focus-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
.entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.entry-link{display:flex;flex-direction:column;gap:8px;padding:18px;background:#f5f8f6;border:1px solid var(--line);border-radius:10px;text-decoration:none}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.facts-grid div{padding:16px;background:#f4f7f5;border-radius:8px}.facts-grid dt{font-size:.88rem;line-height:1.45}.facts-grid dd{font-size:1.55rem;font-weight:650;margin:8px 0 0}
.table-scroll{overflow:auto;max-width:100%;margin:18px 0 26px;border:1px solid var(--line);border-radius:8px}.php-page table{width:100%;border-collapse:collapse;font-size:.92rem}.php-page caption{text-align:left;padding:12px;font-weight:650;background:#f3f6f4}.php-page th,.php-page td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}.php-page thead{background:#f8faf9}.php-page tbody th{font-weight:500}.php-page tr:last-child td,.php-page tr:last-child th{border-bottom:0}
.filter-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.filter-form select{font:inherit;padding:10px;max-width:100%;border:1px solid var(--line);border-radius:6px;background:white}.filter-form label{font-weight:600}
.poi-results{padding:0;list-style:none}.poi-results>li{padding:20px 0;border-top:1px solid var(--line);display:flex;gap:16px;align-items:center;justify-content:space-between;scroll-margin-top:80px}.poi-results h3{margin:0!important}.poi-results p{margin:5px 0}.poi-results li:focus,.poi-results .selected{outline:2px solid #19675b;outline-offset:5px}.show-on-map{flex-shrink:0}
.php-page .neighbor-grid{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px 12px}
.php-page .neighbor-grid li{min-width:0;display:flex;flex-direction:column}
.php-page .neighbor-grid a{display:flex;flex-direction:column;justify-content:center;gap:6px;height:100%;min-height:84px;padding:16px 18px;border:1px solid #dce5df;border-radius:10px;background:#f5f8f6;color:#184b44;text-decoration:none;transition:background-color .15s,border-color .15s}
.php-page .neighbor-grid strong{font-size:.95rem;line-height:1.4}
.php-page .neighbor-grid span{color:var(--muted);font-size:.8rem;line-height:1.4}
.php-page .neighbor-grid a:hover{background:#eaf2ed;border-color:#97b6a6}
.php-page .neighbor-grid a:focus-visible{outline:2px solid #19675b;outline-offset:3px}
@media(max-width:600px){.php-page .neighbor-grid{grid-template-columns:1fr}}
.php-page .map-wrap{width:100%;margin:0;min-width:0}.php-page #map{height:480px;background:#eef3ef}.php-page .panel{padding:18px}.php-page .panel h2{margin:0}.php-page .panel p{margin:6px 0 0;font-size:.9rem}.php-page .maplibregl-popup-content{max-width:270px;line-height:1.5}.maplibregl-popup-content a{display:block;margin-top:6px}.php-page .region-links a,.php-page .city-links a{padding:10px;display:inline-block}.result-list li{padding:10px 0}.sources{font-size:.9rem}
@media(max-width:600px){.php-page .layout{padding:16px 12px 32px;gap:18px}.php-page .content-card{padding:18px}.php-page .site-header{padding:15px 12px}.php-page .beta-label{display:none}.php-page .search-row{flex-direction:column}.php-page .search-row input{width:100%;min-width:0}.php-page .entry-grid{grid-template-columns:1fr}.php-page .poi-results>li{align-items:flex-start;flex-direction:column}.php-page #map{height:340px}.php-page .facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.facts-grid div{padding:12px}.facts-grid dd{font-size:1.2rem}.php-page .filter-form{align-items:stretch;flex-direction:column}.php-page th,.php-page td{padding:8px;font-size:.85rem}}

.weather-bars{display:flex;gap:4px;align-items:stretch;height:115px;margin:0;position:relative;padding:0 6px;border-bottom:1px solid var(--line)}.weather-bar-column{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;position:relative}.weather-bar{display:block;background:#c48a31;border-radius:3px 3px 0 0}.weather-bar.missing{background:#aab1ac}.weather-bar-column small{position:absolute;bottom:-21px;font-size:.65rem;left:0;right:0;text-align:center}.php-page .table-scroll td strong{white-space:nowrap}

.editorial-intro p{max-width:88ch}.editorial-intro p:first-child{margin-top:0}.editorial-intro p:last-child{margin-bottom:0}.wikipedia-presentation p{max-width:88ch}.wikipedia-attribution{font-size:.85rem;color:var(--muted)}
.php-page .overview-facts{padding:22px 26px}.php-page .overview-facts h2{margin-bottom:12px}
.overview-facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;margin:0;padding:0}
.overview-facts-grid li{min-width:0}.overview-facts-grid a{display:flex;flex-direction:column;gap:5px;height:100%;padding:14px 16px;border:1px solid #dce5df;border-radius:10px;background:#f5f8f6;color:#184b44;text-decoration:none}
.overview-facts-grid strong{font-size:1.1rem;line-height:1.35}.overview-fact-label{font-size:.8rem;font-weight:650}.overview-fact-detail{font-size:.8rem;color:var(--muted);line-height:1.4}
.overview-facts-grid a:hover{background:#eaf2ed;border-color:#97b6a6}.overview-facts-grid a:focus-visible{outline:2px solid #19675b;outline-offset:3px}
.overview-facts .muted{font-size:.8rem;margin:10px 0 0}.wikipedia-preview{margin-bottom:8px}.wikipedia-full{margin:8px 0 12px}.wikipedia-full summary{cursor:pointer;color:#184b44;font-weight:650;padding:8px 0}.wikipedia-full summary:focus-visible{outline:2px solid #19675b;outline-offset:3px}
.php-page .section-navigation{position:sticky;top:0;z-index:12;display:flex;gap:6px;align-items:center;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;max-width:100%;padding:8px;border:1px solid #dce5df;border-radius:10px;background:#fff;box-shadow:0 4px 12px #163f3914}
.php-page .section-navigation a{flex:none;display:inline-flex;align-items:center;min-height:42px;padding:8px 14px;border-radius:7px;color:#184b44;text-decoration:none;font-weight:650;white-space:nowrap}
.php-page .section-navigation a:hover{background:#eaf2ed}.php-page .section-navigation a:focus-visible{outline:2px solid #19675b;outline-offset:-2px}
.php-page :is(#carte,#population,#immobilier,#climat,#rubriques,#places,#equipment-selection){scroll-margin-top:80px}
@media(max-width:700px){.overview-facts-grid{grid-template-columns:1fr}.php-page .overview-facts{padding:18px}.php-page .section-navigation{margin-inline:-12px;border-radius:0}.php-page .section-navigation a{min-height:44px}}

.territory-intro > p { max-width: 78ch; line-height: 1.75; }
/* Shared footer: readable navigation and attribution, without JavaScript. */
.php-page .site-footer{max-width:none;margin:0;padding:0;background:#163f39;color:#e5eee9;font-size:.95rem}
.footer-inner{max-width:1180px;margin:auto;padding:44px 24px 22px}
.footer-main{display:grid;grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(150px,1fr));gap:32px}
.site-footer .footer-brand{font-family:Georgia,serif;font-size:1.45rem;font-weight:bold;text-decoration:none;color:#fff}
.footer-presentation p{max-width:37ch;margin:14px 0}.footer-scope{font-size:.8rem;color:#c3d5cd}
.site-footer h2{margin:3px 0 12px;font-size:1rem;color:#fff}
.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin:0}
.site-footer a{color:#e5eee9;text-underline-offset:4px}.site-footer nav a{display:inline-block;padding:9px 0;text-decoration:none}
.site-footer a:hover{text-decoration:underline;color:#fff}.site-footer a:focus-visible{outline:2px solid #f5c48c;outline-offset:5px;border-radius:2px}
.footer-bottom{border-top:1px solid #52746a;margin-top:32px;padding-top:18px;display:flex;justify-content:space-between;gap:18px;align-items:baseline;font-size:.8rem}
.footer-bottom p{margin:0;max-width:85ch}.footer-bottom>a{flex-shrink:0;padding:8px 0}
@media(max-width:900px){.footer-main{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.footer-presentation{grid-column:1/-1}.footer-presentation p{max-width:65ch}}
@media(max-width:600px){.footer-inner{padding:32px 18px 20px}.footer-main{grid-template-columns:1fr;gap:24px}.footer-presentation{grid-column:auto}.footer-bottom{flex-direction:column;gap:10px}.site-footer nav a{padding:11px 0}}

/* Compact header search keeps the GET form and suggestions available on every inner page. */
.php-page .site-header{gap:24px;flex-wrap:wrap}
.php-page .site-header .server-search{flex:0 1 530px;min-width:0;padding:0;border:0;background:none;box-shadow:none;border-radius:0;position:relative}
.php-page .site-header .search-row input{min-width:0;width:100%}
.php-page .site-header .server-search .muted{font-size:.75rem}
.php-page .site-header .search-results{position:absolute;left:0;right:0;top:100%;z-index:20;background:white;box-shadow:0 8px 20px #163f3926;max-height:320px;overflow:auto}
@media(max-width:900px){.php-page .site-header .server-search{flex:1 1 100%}}
@media(max-width:600px){.php-page .site-header{gap:16px}.php-page .site-header .search-row{flex-direction:row}.php-page .site-header .search-row button{flex-shrink:0}}
/* Y ticks share the same 115px scale as the monthly bars. */
.weather-chart{display:flex;margin:38px 0 32px;padding-left:44px;position:relative;min-width:0}
.weather-chart .weather-bars{flex:1;min-width:0}
.weather-axis{position:absolute;left:0;right:0;height:115px;pointer-events:none}
.weather-axis-unit{position:absolute;top:-26px;left:0;font-size:.75rem;color:var(--muted)}
.weather-axis-tick{position:absolute;left:0;right:0;border-top:1px solid var(--line)}
.weather-axis-tick>span{position:absolute;left:0;top:0;transform:translateY(-50%);width:34px;text-align:right;font-size:.7rem;color:var(--muted);background:var(--surface,#fff)}

/* PHP suggestions are navigation links, replacing the retired SPA buttons. */
.php-page .server-search .search-results{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 24px #163f3914;max-height:320px;overflow:auto;padding:4px;margin-top:8px;scroll-padding:4px}
.php-page .server-search .search-results[hidden]{display:none}
.php-page .search-results li{margin:0;padding:0;list-style:none}
.php-page .search-results li+li{border-top:1px solid #e9eeeb}
.php-page .search-results a{display:flex;align-items:center;min-height:48px;padding:12px 14px;gap:16px;color:#184b44;text-decoration:none;font-size:.95rem;font-weight:600;line-height:1.4;border-radius:8px;transition:background-color .15s,color .15s}
.php-page .search-results a::after{content:'→';margin-left:auto;flex-shrink:0;color:#a55232}
.php-page .search-results a:hover{background:#f0f5f2;color:#123c35}
.php-page .search-results a:focus-visible{background:#f0f5f2;outline:2px solid #19675b;outline-offset:-2px}

/* Real territory links remain readable and usable without JavaScript. */
.php-page .region-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.php-page .region-links a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:16px 18px;border:1px solid #dce5df;border-radius:10px;background:#f5f8f6;color:#184b44;text-decoration:none;font-weight:650;line-height:1.4;transition:background-color .15s,border-color .15s}
.php-page .region-links a::after{content:'→';flex-shrink:0;color:#a55232;font-size:1.2rem}
.php-page .region-links a:hover{background:#eaf2ed;border-color:#97b6a6}
.php-page .region-links a:focus-visible{outline:2px solid #19675b;outline-offset:3px;background:#eaf2ed}
@media(max-width:600px){.php-page .region-links{grid-template-columns:1fr}.php-page .region-links a{min-height:56px;padding:14px 16px}}

.php-page .entry-unavailable{background:#f7f7f4;border-color:#e4e7e2;color:#58675f}
.php-page .entry-unavailable span{color:var(--muted)}

.bpe-scope-card{padding:18px;border:1px solid #dce5df;border-radius:12px;background:#f5f8f6;min-width:0}
.php-page .bpe-scope-card h3{margin:0 0 8px;min-height:2.8em;font-size:1rem;line-height:1.4;color:#184b44}
.php-page .bpe-scope-summary{margin:0;line-height:1.8;font-size:.9rem}
.bpe-local-count{color:#184b44;text-decoration:none}
.bpe-local-count strong{font-size:1rem}
.bpe-neighbor-count{display:inline-block;color:#526c62;font-size:.8rem;text-decoration:underline;text-underline-offset:3px;padding:6px 0}
.bpe-local-count:hover,.bpe-neighbor-count:hover{color:#19675b;text-decoration:underline}
.bpe-local-count:focus-visible,.bpe-neighbor-count:focus-visible{outline:2px solid #19675b;outline-offset:3px;border-radius:3px}
.bpe-local-count[aria-current],.bpe-neighbor-count[aria-current]{text-decoration:underline;text-decoration-thickness:2px}
.php-page .bpe-scope-summary .entry-unavailable{background:none;border:0;color:#69756e;text-decoration:none}

/* Native disclosures keep published tables in the initial HTML. */
.php-page .data-details,.php-page .sources-details{margin:var(--space-md) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);min-width:0}
.php-page .data-details>summary,.php-page .sources-details>summary{cursor:pointer;color:var(--color-primary);font-weight:650;line-height:1.5;padding:14px 16px;min-height:48px;overflow-wrap:anywhere}
.php-page .data-details>summary:hover,.php-page .sources-details>summary:hover{background:var(--color-bg-subtle);border-radius:var(--radius-md)}
.php-page .data-details>summary:focus-visible,.php-page .sources-details>summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-md)}
.php-page .data-details[open]>summary,.php-page .sources-details[open]>summary{border-bottom:1px solid var(--color-border)}
.php-page .data-details>.table-scroll{margin:12px;max-width:calc(100% - 24px);background:var(--color-surface)}
.disclosure-body{padding:var(--space-md);overflow-wrap:anywhere}
.php-page .data-details>p,.php-page .data-details>ul,.php-page .data-details>dl{margin-inline:var(--space-md)}

.age-pyramid[hidden]{display:none}
.age-pyramid figure{margin:12px 0 16px;max-width:480px}
.age-pyramid figcaption{font-size:.88rem;font-weight:650;color:#184b44;margin-bottom:8px}
.age-pyramid svg{display:block;width:100%;max-width:480px;height:auto;margin:0;overflow:visible}
.age-pyramid text{font-family:inherit;font-size:18px;fill:#344d44}
.age-pyramid .age-men-label{fill:#19675b;font-weight:650}
.age-pyramid .age-women-label{fill:#a55232;font-weight:650}
.age-track{fill:#edf2ee;stroke:#dce5df;stroke-width:1}
.age-men .age-value{fill:#19675b}.age-women .age-value{fill:#a55232}
.age-bar{cursor:default}.age-bar:focus{outline:none}
.age-bar:is(:hover,:focus) .age-track{stroke:#123c35;stroke-width:3}
.age-pyramid .age-readout{font-size:.82rem;min-height:2.8em;margin:6px 0 0;color:#344d44}
@media(max-width:600px){.age-pyramid text{font-size:24px}.age-pyramid .age-axis-label{font-size:22px}}

.equipment-summary{border-left:3px solid var(--line);padding-left:16px;margin-bottom:20px}.equipment-filters{display:flex;flex-wrap:wrap;gap:8px}.equipment-filters a{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:8px 12px;border:1px solid var(--line);border-radius:18px;text-decoration:none}.equipment-filters a:focus-visible{outline:3px solid #184b44;outline-offset:3px}

.equipment-filters a[aria-current]{background:#184b44;color:white}

.php-page .neighbor-grid .neighbor-action{color:#184b44;font-weight:650;margin-top:4px}
.php-page .neighbor-details>.neighbor-grid{margin:16px}
.php-page .neighbor-details>p{margin:12px 16px}
.php-page .neighbor-grid strong{overflow-wrap:anywhere}

/* Dedicated comparison: one server-rendered table, stacked by metric on mobile. */
.php-page .neighbor-grid li>a:first-child{height:auto;flex:1}
.php-page .neighbor-grid .neighbor-compare{display:flex;height:auto;min-height:44px;padding:4px 18px;margin-top:0;background:transparent;border-color:transparent;font-size:.85rem;font-weight:650;text-decoration:underline}
.php-page .neighbor-grid .neighbor-compare:hover,.php-page .neighbor-grid .neighbor-compare:focus-visible{background:#eaf2ed;border-color:#97b6a6}
.comparison-communes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;list-style:none;margin:0 0 20px;padding:0}
.comparison-communes li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f5f8f6;min-width:0}
.comparison-communes li>div{min-width:0;overflow-wrap:anywhere}.comparison-communes a{color:#184b44;font-weight:650}.comparison-communes small{display:block;color:var(--muted);margin-top:5px}
.comparison-remove{display:inline-flex;align-items:center;min-height:44px;flex-shrink:0;font-size:.85rem}
.comparison-search label,.comparison-year label{display:block;margin-bottom:8px;font-weight:650}.comparison-search .search-row{display:flex;gap:10px}.comparison-search input[type=search]{min-width:0;width:100%;flex:1}
.comparison-search-results ul{list-style:none;padding:0;margin:0}.comparison-search-results li{border-top:1px solid var(--line)}.comparison-search-results a{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:14px 0;color:#184b44;min-height:44px}.comparison-search-results a>span{margin-left:auto;font-size:.85rem}.comparison-search-results small{color:var(--muted)}
.comparison-navigation{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0}.comparison-navigation a{display:inline-flex;align-items:center;padding:8px 14px;min-height:44px;border:1px solid var(--line);border-radius:8px;color:#184b44;background:white}
.comparison-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.comparison-section-heading h2{margin:0}.comparison-section{scroll-margin-top:20px}
.comparison-year{margin:20px 0}.comparison-year>div{display:flex;gap:10px}.comparison-year select{padding:10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink);min-height:44px}
.comparison-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:18px 0;font-variant-numeric:tabular-nums}.comparison-table caption{text-align:left;color:var(--muted);font-size:.85rem;margin:0 0 10px}.comparison-table th,.comparison-table td{padding:16px 12px;vertical-align:top;overflow-wrap:anywhere;text-align:left;border-bottom:1px solid var(--line)}
.comparison-table thead th{background:#edf4ef;font-weight:650}.comparison-table thead a{color:#184b44}.comparison-table small{display:block;color:var(--muted);font-size:.8rem;font-weight:400;line-height:1.5;margin-top:6px}.comparison-table tbody th{font-weight:650}.comparison-table tbody td strong{font-weight:650}
.php-page .comparison-section button,.php-page .comparison-search button{flex-shrink:0;min-height:44px}.comparison-search-results li>span{display:block;padding:14px 0;color:var(--muted)}
@media(max-width:700px){.comparison-communes{grid-template-columns:1fr}.comparison-table,.comparison-table tbody,.comparison-table tr,.comparison-table th,.comparison-table td{display:block;width:100%}.comparison-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.comparison-table tr{padding:12px 0;border-bottom:1px solid var(--line)}.comparison-table tbody th{padding:4px 0 10px;border:0}.comparison-table td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;border:0}.comparison-table td::before{content:attr(data-label);flex:1;min-width:0;color:var(--muted);font-size:.85rem}.comparison-table td>span{flex:1;text-align:right;min-width:0}.comparison-table caption{display:block}.comparison-table small{font-size:.8rem}.comparison-search .search-row{flex-wrap:wrap}.comparison-search .search-row input{flex-basis:100%}.comparison-search-results a{display:block}.comparison-search-results a>span,.comparison-search-results small{display:block;margin:5px 0 0}.comparison-section .data-details{min-width:0}.comparison-section-heading button{margin-bottom:10px}}
.php-page .comparison-year button,.php-page #comparison-share{padding:10px 16px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:650;min-height:44px;cursor:pointer}
.php-page .comparison-year button:hover,.php-page #comparison-share:hover{background:var(--accent-dark)}
.comparison-neighbors{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.comparison-neighbors .comparison-year>div{flex-wrap:wrap}.comparison-neighbors select{min-width:0;max-width:100%;flex:1;overflow:hidden;text-overflow:ellipsis}.comparison-neighbors button{flex-shrink:0}
@media(max-width:700px){.comparison-neighbors select{flex-basis:100%;width:100%}}
.php-page .comparison-year button:focus-visible,.php-page #comparison-share:focus-visible{outline:2px solid #19675b;outline-offset:3px}

/* Dedicated neighborhood exploration: native forms and the list remain usable. */
.exploration-form{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0}
.exploration-form label{font-weight:650}
.exploration-form select{max-width:100%;min-width:0;padding:12px;border:1px solid #b6c8c2;border-radius:8px;background:#fff;color:#173a34;font:inherit}
.exploration-scale{display:flex;flex-wrap:wrap;gap:12px 20px;list-style:none;padding:0}
.exploration-scale li{display:flex;align-items:center;gap:8px}
.exploration-swatch{display:inline-block;width:22px;height:22px;border:1px solid #6b7280;border-radius:3px;vertical-align:middle;flex-shrink:0;margin-right:6px}
.exploration-results{list-style:none;padding:0}
.exploration-results>li{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #d8e4de;scroll-margin-top:90px}
.exploration-results h3{margin:0;font-size:1.08rem}
.exploration-results h3 small{display:block;font-weight:400;color:#546b61}
.exploration-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;justify-content:center}
.exploration-results>li.is-selected{outline:2px solid #173a34;outline-offset:4px;border-radius:6px}
.exploration-show[hidden]{display:none}
@media(max-width:600px){.exploration-form{align-items:stretch;flex-direction:column}.exploration-form select,.exploration-form button{width:100%}.exploration-results>li{flex-direction:column}.exploration-actions{flex-direction:row;flex-wrap:wrap}}
.php-page .exploration-form button,.php-page .exploration-show{padding:10px 16px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:650;min-height:44px;cursor:pointer}
.php-page .exploration-form button:hover,.php-page .exploration-show:hover{background:var(--accent-dark)}
.php-page .exploration-form button:focus-visible,.php-page .exploration-show:focus-visible{outline:2px solid #19675b;outline-offset:3px}
.php-page .exploration-popup .maplibregl-popup-content{max-height:220px;overflow-y:auto;padding:14px 22px 14px 14px}
.php-page .exploration-popup p{margin:5px 0;font-size:.85rem}
.php-page .exploration-popup a{margin-top:4px;padding:4px 0}

/* UI v2: shared vocabulary, progressively applied to commune identity. */
:root {
  --color-bg: var(--bg); --color-bg-subtle: #edf3ef; --color-surface: #fff;
  --color-text: var(--ink); --color-text-muted: var(--muted); --color-border: var(--line);
  --color-primary: #184b44; --color-real-estate: #91572d; --color-culture: #8b435d; --color-daily-life: #376747;
  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px;
  --shadow-sm: 0 3px 12px #163f390d; --shadow-md: 0 6px 20px #163f3914;
  --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px; --space-2xl: 48px;
  --theme-nav-height: 72px;
}
.php-page .layout{max-width:1280px;padding-inline:var(--space-xl);gap:var(--space-lg)}
.php-page .site-header{max-width:1280px;padding-inline:var(--space-xl)}
.php-page h2{font-size:clamp(1.45rem,2.5vw,1.8rem);line-height:1.25}
.php-page h3{font-size:1.2rem;line-height:1.35}
.php-page .content-card{border-radius:var(--radius-md)}
.commune-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg);padding:var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}
.commune-hero-with-photo{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.commune-hero-copy{min-width:0;align-self:center}
.php-page .commune-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:var(--space-sm) 0 var(--space-md);overflow-wrap:anywhere}
.commune-location{margin:0 0 var(--space-lg);color:var(--color-text-muted);font-size:1rem}
.commune-location a{color:inherit;text-underline-offset:4px}
.php-page .commune-hero .wikipedia-presentation{padding:0;border:0;background:none;border-radius:0}
.commune-hero .wikipedia-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.commune-hero .wikipedia-preview{font-size:1rem;max-width:70ch;margin:0 0 var(--space-sm)}
.commune-hero .wikipedia-attribution{font-size:.8125rem;margin:var(--space-sm) 0 0}
.commune-hero .wikipedia-full summary{min-height:44px;display:list-item;padding-block:10px}
.city-photo{margin:0;min-width:0;align-self:start}
.city-photo img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;border-radius:var(--radius-md);background:var(--color-bg-subtle)}
.city-photo figcaption{font-size:.8125rem;line-height:1.55;color:var(--color-text-muted);padding-top:var(--space-sm)}
.city-photo figcaption a{color:inherit;text-underline-offset:3px;display:inline-block;padding-block:4px}
.featured-commune>.city-photo{flex:1 1 50%}
.php-page .commune-hero .overview-facts{grid-column:1/-1;padding:var(--space-lg) 0 0;border:0;border-top:1px solid var(--color-border);border-radius:0;background:none}
.php-page .commune-hero .overview-facts h2{font-size:1rem;margin:0 0 var(--space-md);color:var(--color-text-muted);font-weight:500}
.overview-facts-grid{gap:var(--space-md)}
.overview-facts-grid a{padding:var(--space-md);border-color:var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:var(--space-sm)}
.overview-facts-grid strong{font-size:clamp(1.65rem,2.7vw,2.15rem);line-height:1.2;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.overview-fact-label{font-size:.875rem;font-weight:500;line-height:1.45}
.overview-fact-detail{font-size:.8125rem}
.theme-navigation{position:sticky;top:0;z-index:14;background:var(--color-bg);padding-block:var(--space-sm)}
.php-page .focus-links{display:flex;overflow-x:auto;overscroll-behavior-inline:contain;gap:var(--space-sm);scrollbar-width:thin;padding:var(--space-xs);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}
.php-page .focus-links a{flex:1 0 auto;white-space:nowrap;min-height:48px;border:0;border-radius:var(--radius-sm);background:none;padding:10px var(--space-md);font-size:.9375rem}
.php-page .focus-links a[aria-current]{background:var(--color-primary);color:white;text-decoration:underline;text-underline-offset:5px}
.php-page .focus-links a:focus-visible{outline-offset:-2px}
.php-page .section-navigation{position:static;box-shadow:none;background:none;border:0;padding:0;border-radius:0;margin:0}
.php-page :is(#carte,#population,#immobilier,#climat,#rubriques,#places,#equipment-selection){scroll-margin-top:calc(var(--theme-nav-height) + var(--space-md))}
.sources-summary{margin:0;color:var(--color-text-muted)}
.sources-details{margin-top:var(--space-sm)}
.sources-details>summary{cursor:pointer;color:var(--color-primary);font-weight:650;min-height:44px;padding-block:12px}
.sources-details>summary:focus-visible,.commune-location a:focus-visible,.city-photo a:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
.overview-facts-empty{color:var(--color-text-muted);grid-column:1/-1}
@media(max-width:1023px){.php-page .layout{padding-inline:var(--space-lg)}.php-page .site-header{padding-inline:var(--space-lg)}.commune-hero{padding:var(--space-lg)}.overview-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  :root{--theme-nav-height:72px}
  .php-page .layout{padding-inline:var(--space-md);gap:var(--space-lg)}
  .php-page .site-header{padding-inline:var(--space-md)}
  .commune-hero{grid-template-columns:1fr;padding:var(--space-md);gap:var(--space-lg)}
  .php-page .commune-hero h1{font-size:clamp(1.875rem,7vw,2.125rem)}
  .php-page .commune-hero .overview-facts{padding-top:var(--space-lg)}
  .overview-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}
  .overview-facts-grid a{padding:12px}
  .overview-facts-grid strong{font-size:1.625rem}
  .overview-fact-detail{font-size:.8125rem}
  .theme-navigation{margin-inline:calc(-1 * var(--space-md));padding-inline:var(--space-md)}
  .php-page .focus-links a{flex:0 0 auto;padding-inline:12px}
  .php-page .focus-links .focus-icon{width:18px;height:18px}
  .city-photo img{aspect-ratio:2/1}
}
@media(prefers-reduced-motion:reduce){.php-page .focus-links a,.overview-facts-grid a{transition:none}}

.featured-commune>.city-photo{padding:var(--space-lg);align-self:center}
.featured-commune>.city-photo figcaption{color:#e5eee9}
.php-page #eau-potable{scroll-margin-top:calc(var(--theme-nav-height) + var(--space-md))}

.commune-hero .wikipedia-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.kpi-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary);text-decoration:none;height:100%}
.kpi-card .kpi-value{font-size:clamp(1.65rem,2.7vw,2.15rem);line-height:1.2;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.kpi-label{font-size:.875rem;font-weight:500;line-height:1.45}
.kpi-metadata{font-size:.8125rem;color:var(--color-text-muted);line-height:1.4}
.kpi-card:hover{background:var(--color-bg-subtle)}
.kpi-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
@media(max-width:700px){.kpi-card .kpi-value{font-size:1.625rem}.kpi-card{padding:12px}}
/* Keep the four theme entries within the first desktop reading screen. */
.commune-hero{padding:var(--space-lg)}
.commune-hero .city-photo img{aspect-ratio:2/1;max-height:260px}
.php-page .commune-hero .overview-facts h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:700px){.commune-hero{padding:var(--space-md)}.commune-hero .city-photo img{max-height:none}}
@media(max-width:1023px){.overview-facts-grid>li:last-child:nth-child(odd){grid-column:1/-1}}

/* UI v2: published property series and official annual water classification. */
.property-kpis,.property-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);margin-block:var(--space-lg)}
.property-kpis .kpi-card{height:auto;color:var(--color-text);padding:var(--space-lg)}
.property-kpis .kpi-card h3{margin:0 0 var(--space-sm);font-size:1.125rem;color:var(--color-real-estate)}
.property-kpis .kpi-value{color:var(--color-real-estate)}
.property-kpis article.kpi-card:hover{background:var(--color-surface)}
.property-caution{padding-top:var(--space-sm);border-top:1px solid var(--color-border)}
.info-notice{max-width:75ch;padding:var(--space-md);background:var(--color-bg-subtle);border-radius:var(--radius-sm);font-size:.9375rem;line-height:1.6}
.property-chart{margin:0;min-width:0;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}
.property-chart figcaption{font-size:.9375rem;font-weight:650;line-height:1.5}
.property-chart svg{display:block;width:100%;max-width:340px;height:auto;margin:var(--space-sm) auto;color:var(--color-real-estate);overflow:visible}
.property-chart svg text{fill:var(--color-text-muted);font:20px system-ui,sans-serif}
.property-gridline{stroke:var(--color-border);stroke-width:1}
.property-line{fill:none;stroke:currentColor;stroke-width:2.5}
.property-point{fill:currentColor;stroke:var(--color-surface);stroke-width:2}
.property-chart-values{display:flex;gap:var(--space-sm);margin-bottom:0;overflow-x:auto;padding-bottom:var(--space-xs)}
.property-chart-values>div{flex:1 0 88px;white-space:nowrap}
.property-chart-values>div{padding-top:var(--space-sm);border-top:1px solid var(--color-border)}
.property-chart-values dt{color:var(--color-text-muted);font-size:.8125rem}
.property-chart-values dd{margin:var(--space-xs) 0 0;font-size:.875rem;line-height:1.5}
.property-chart-values dd span{display:block;color:var(--color-text-muted);font-size:.8125rem}
.water-grade-visual{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--space-sm);max-width:440px;margin-block:var(--space-md);color:#101820;text-align:left}
.water-grade-awarded{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm)}
.water-grade-awarded>span{font-size:.75rem;line-height:1.4;text-align:center}
.water-grade-awarded>strong{font-size:3rem;line-height:1}
.water-grade-scale{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.water-grade-scale li{display:flex;align-items:center;gap:var(--space-sm);padding:8px 10px;min-height:36px;border-radius:4px;font-size:.8125rem;line-height:1.4;border:2px solid transparent}
.water-grade-scale li.is-awarded{border-color:#101820}
.water-grade-scale li>strong{font-size:1rem}
.water-grade-marker{margin-left:auto;flex-shrink:0}
.water-grade-A{background:#00b0e6}.water-grade-B{background:#92d050}.water-grade-C{background:#ffff00}.water-grade-D{background:#ffc000}
.water-network-list>li>div{min-width:0}
.water-network-list>li>div:last-child{flex:0 1 280px}
.water-network-list .water-grade-visual{width:100%;max-width:280px;grid-template-columns:56px minmax(0,1fr);gap:4px;margin-block:var(--space-sm)}
.water-network-list .water-grade-awarded{padding:4px;gap:4px}
.water-network-list .water-grade-awarded>strong{font-size:2rem}
.water-network-list .water-grade-awarded>span{font-size:.6875rem}
.water-network-list .water-grade-scale{gap:2px}
.water-network-list .water-grade-scale li{min-height:28px;padding:4px 6px;gap:4px;font-size:.75rem}
.water-network-list .water-grade-scale li>strong{font-size:.875rem}
@media(max-width:700px){
  .property-kpis,.property-charts{grid-template-columns:1fr;gap:var(--space-md)}
  .property-kpis .kpi-card{padding:var(--space-md)}
  .property-chart svg text{font-size:24px}
  .water-grade-visual{grid-template-columns:64px minmax(0,1fr)}
  .water-grade-awarded>strong{font-size:2.5rem}
  .water-grade-scale li{padding:6px;gap:6px}
  .water-network-list>li{flex-direction:column;gap:var(--space-sm)}
  .water-network-list>li>div:last-child{flex:auto;text-align:left;width:100%}
}
@media(max-width:400px){.property-chart svg text{font-size:28px}}

/* UI v2: shared category and place cards, enhanced by the existing map. */
.php-page .bpe-scope-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md)}
.php-page .category-card{position:relative;padding:var(--space-lg);background:var(--color-surface);border-color:var(--color-border);border-radius:var(--radius-md)}
.category-card-icon,.poi-card-icon{display:block;font-size:1.75rem;margin-bottom:var(--space-sm)}
.php-page .category-card h3{min-height:0;font-size:1.125rem;margin-bottom:var(--space-md);overflow-wrap:anywhere}
.category-card .bpe-local-count{display:block;line-height:1.5;padding-bottom:var(--space-sm)}
.category-card .bpe-local-count strong{display:block;font-size:1.75rem;line-height:1.3;font-weight:650}
.category-card a.bpe-local-count::after{content:"";position:absolute;inset:0;border-radius:var(--radius-md)}
.category-card .bpe-neighbor-count{position:relative;z-index:1;min-height:44px;display:flex;align-items:center;font-size:.875rem;line-height:1.5}
.category-card:focus-within{outline:2px solid var(--color-primary);outline-offset:3px}
.php-page .poi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-block:var(--space-lg)}
.php-page .poi-grid>.poi-card{min-width:0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);scroll-margin-top:calc(var(--theme-nav-height) + var(--space-lg));overflow-wrap:anywhere}
.php-page .poi-card h3{font-size:1.125rem;line-height:1.4}
.php-page .poi-card p{font-size:.9375rem;margin-top:var(--space-sm);line-height:1.5}
.php-page .poi-card .poi-card-category,.php-page .poi-card-locality{color:var(--color-text-muted);font-size:.875rem}
.php-page .poi-card-distance{font-weight:600}
.poi-card-details{margin-top:var(--space-sm)}
.poi-card-details summary{cursor:pointer;color:var(--color-primary);min-height:44px;padding-block:12px;font-size:.875rem}
.poi-card-details summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.php-page .poi-card:is(.selected,:target){outline:3px solid var(--color-primary);outline-offset:3px;background:var(--color-bg-subtle)}
.poi-card .show-on-map{min-height:44px;white-space:normal;text-align:left;align-self:flex-start;max-width:100%}
.filter-chips{display:flex;gap:var(--space-sm);overflow-x:auto;padding:var(--space-xs);overscroll-behavior-inline:contain;scrollbar-width:thin}
.filter-chips a{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);min-height:44px;padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-primary)}
.filter-chips a[aria-current]{color:white;background:var(--color-primary);text-decoration:underline;text-underline-offset:4px}
.filter-chips a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.filter-chips span{font-size:.875rem;font-weight:600}
@media(max-width:1023px){.php-page .poi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.php-page .bpe-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){.php-page .poi-grid{grid-template-columns:1fr}.php-page .poi-grid>.poi-card{padding:var(--space-md)}.php-page .category-card{padding:var(--space-md)}.category-card .bpe-local-count strong{font-size:1.5rem}.php-page .category-card h3{font-size:1rem}}
@media(max-width:359px){.php-page .bpe-scope-grid{grid-template-columns:1fr}}
.php-page .poi-card .show-on-map{border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:10px 14px;background:var(--color-surface);color:var(--color-primary);font:inherit;font-size:.875rem;cursor:pointer}
.php-page .poi-card .show-on-map:hover{background:var(--color-bg-subtle)}
.php-page .poi-card .show-on-map:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
@media(min-width:640px){.filter-chips{flex-wrap:wrap;overflow-x:visible}}

/* Homepage: search, a concrete daily example, then territorial exploration. */
.php-page.home-page .layout{gap:var(--space-2xl)}
.home-hero{padding:var(--space-xl);width:100%;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.php-page .home-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(2rem,4vw,3rem);line-height:1.12;margin:12px 0 20px}
.home-hero .lead{font-size:1.125rem;max-width:60ch}
.php-page .home-hero .search-card{margin:var(--space-lg) 0 0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
.home-suggestions{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;margin-top:12px;font-size:.9rem}
.home-suggestions a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.php-page .home-preview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-lg);padding:var(--space-xl);background:var(--color-surface)}
.home-preview-copy{min-width:0;align-self:center}
.php-page .home-preview h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:500;margin:8px 0 12px}
.home-preview-copy>p{max-width:55ch}
.home-preview .primary-link{display:inline-flex;align-items:center;min-height:44px;color:var(--color-primary);text-underline-offset:4px;font-weight:650}
.home-scope{font-size:.875rem}
.home-preview-kpis{grid-column:1/-1;list-style:none;margin:0;padding:24px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);border-top:1px solid var(--color-border)}
.home-preview-kpis li{min-width:0}
.home-preview-kpis .kpi-card{display:flex;flex-direction:column;gap:8px;height:100%;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;color:var(--color-text);background:var(--color-bg-subtle)}
.home-preview-kpis .kpi-value{font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.2}
.home-preview-note{grid-column:1/-1;font-size:.8125rem;margin:0}
.home-usages>p{max-width:70ch}
.home-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg);margin-top:var(--space-lg)}
.home-usage-card{display:flex;flex-direction:column;padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;color:var(--color-text);background:var(--color-surface)}
.home-usage-icon{font-size:2rem;line-height:1.5}
.home-usage-real-estate .home-usage-icon{color:var(--color-real-estate)}
.home-usage-daily-life .home-usage-icon{color:var(--color-daily-life)}
.home-usage-culture .home-usage-icon{color:var(--color-culture)}
.php-page .home-usage-card h3{margin:12px 0 0}
.home-usage-card p{font-size:1rem;margin:12px 0 24px}
.home-usage-action{margin-top:auto;font-weight:650;color:var(--color-primary);line-height:1.5}
.home-page .city-links{display:flex;flex-wrap:wrap;gap:8px}
.php-page.home-page .city-links a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-decoration:none}
.home-page :is(.home-usage-card,.home-preview-kpis .kpi-card):hover{background:var(--color-bg-subtle);border-color:var(--color-primary)}
.home-page :is(.home-usage-card,.home-preview-kpis .kpi-card,.home-suggestions a,.primary-link,.city-links a):focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}
@media(max-width:1023px){.home-preview-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.home-usage-grid{gap:var(--space-md)}}
@media(max-width:700px){.php-page.home-page .layout{padding-inline:16px;gap:32px}.home-hero{padding:20px}.php-page .home-hero .search-card{padding:0}.php-page .home-preview{grid-template-columns:minmax(0,1fr);padding:20px;gap:20px}.home-usage-grid{grid-template-columns:1fr}.home-preview-kpis{gap:12px}.home-preview-kpis .kpi-card{padding:12px}.home-preview-kpis .kpi-value{font-size:1.5rem}.home-preview-kpis .kpi-label{font-size:.875rem}.home-preview-kpis .kpi-metadata{font-size:.8125rem}.home-page .region-links{grid-template-columns:1fr}}
@media(max-width:359px){.home-preview-kpis{grid-template-columns:1fr}}

/* Homepage links retain their palette after a visit; cards keep readable copy. */
.php-page.home-page main a:any-link{color:var(--color-primary);text-underline-offset:4px}
.php-page.home-page main a:hover{text-decoration:underline;text-decoration-thickness:2px}
.php-page.home-page main a:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}
.php-page.home-page main :is(.home-usage-card,.kpi-card):any-link{color:var(--color-text);text-decoration:none}
.php-page.home-page main :is(.home-usage-card,.kpi-card):hover{border-color:var(--color-primary)}
.php-page.home-page main .home-usage-card:hover .home-usage-action{text-decoration:underline;text-underline-offset:4px}
.php-page.home-page main .primary-link{border-bottom:0;text-decoration:underline;text-decoration-thickness:1px}
.php-page.home-page main .primary-link:hover{text-decoration-thickness:2px}
.php-page.home-page .site-footer a:visited{color:#e5eee9}
.php-page.home-page .site-footer a:hover{color:#fff}
/* Keep the Maison Carrée pediment visible when its photograph is cropped. */
.city-photo img[src="/assets/cities/30189.webp"]{object-position:center top}

/* UI v2: compact observed weather; full calendars stay in native disclosures. */
.weather-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);margin-top:var(--space-lg)}
.weather-summary{min-width:0}
.weather-summary>h3{margin-top:0}
.weather-total{font-size:1rem;margin-block:var(--space-sm);color:var(--color-primary)}
.weather-total>strong{font-size:clamp(1.65rem,2.7vw,2.15rem);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.weather-period{line-height:1.6}
.weather-coverage,.weather-station,.weather-chart-caption{font-size:.8125rem;color:var(--color-text-muted);line-height:1.6}
.weather-chart-caption{margin-top:var(--space-lg)}
.weather-summary .weather-bar-column small{font-size:.6875rem}
.weather-chart-rain .weather-bar:not(.missing){background:#69a7d3}
.weather-comparison-form{margin-top:var(--space-md)}
.weather-comparison-controls{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);border:0;padding:0;margin:0;min-width:0}
.weather-comparison-controls legend{float:left;margin-right:var(--space-lg);line-height:44px;font-size:.875rem;color:var(--color-text-muted)}
.weather-comparison-controls label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:.875rem;cursor:pointer}
.weather-comparison-controls label:has(input:disabled){cursor:default;color:var(--color-text-muted)}
.weather-comparison-controls input{width:18px;height:18px;margin:0;accent-color:var(--color-primary);flex-shrink:0}
.weather-comparison-controls button{min-height:44px;padding:8px 14px;font:inherit;color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}
.weather-comparison-controls button:disabled{color:var(--color-text-muted)}
.weather-comparison-controls :is(input,button):focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}
.weather-reference-key{width:24px;border-top:2px solid #19675b;flex-shrink:0}
.weather-reference-key.weather-reference-france{border-color:#4168b0;border-top-style:dashed}
.weather-comparison-note{font-size:.8125rem;color:var(--color-text-muted);line-height:1.6;margin-block:var(--space-sm)}
.weather-reference-layer{position:absolute;inset:0 6px auto;width:calc(100% - 12px);height:115px;overflow:visible;pointer-events:none}
.weather-reference-layer[hidden]{display:none}
.weather-reference-layer path{fill:none;stroke:#19675b;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.weather-reference-layer.weather-reference-france path{stroke:#4168b0;stroke-dasharray:5 4}
.weather-reference-values{margin-block:var(--space-md);font-size:.875rem}
.weather-reference-values summary{min-height:44px;padding-block:10px;cursor:pointer;color:var(--color-primary)}
.weather-reference-values summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}
@media(max-width:700px){.weather-comparison-controls legend{float:none;line-height:1.5;margin-bottom:var(--space-sm)}.weather-comparison-controls{gap:var(--space-xs) var(--space-md)}}
@media(max-width:700px){.weather-summary-grid{grid-template-columns:1fr;gap:var(--space-xl)}}

/* Illustrated entry points: PHP links, existing populations and one cached image. */
.comparison-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}
.comparison-entry-card{scroll-margin-top:calc(var(--theme-nav-height) + var(--space-lg));display:flex;flex-direction:column;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;color:var(--color-text);text-decoration:none}
.comparison-entry-card:hover{border-color:var(--color-primary)}
.comparison-entry-card:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}
.comparison-entry-visual{min-height:210px;flex-shrink:0;padding:var(--space-lg);background:var(--color-bg-subtle);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;min-width:0}
.comparison-entry-sheet{width:100%;max-width:460px;padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:8px 8px 0 var(--color-bg)}
.comparison-entry-sheet-label{display:flex;align-items:center;gap:var(--space-sm);font-size:.8125rem;color:var(--color-primary);margin-bottom:var(--space-md)}
.comparison-entry-sheet-label svg{flex-shrink:0}
.comparison-entry-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);margin:0;text-align:center}
.comparison-entry-values>div{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-sm)}
.comparison-entry-values>div+div{border-left:1px solid var(--color-border);padding-left:var(--space-md)}
.comparison-entry-values dt{font-size:.8125rem;line-height:1.4;overflow-wrap:anywhere;font-weight:650}
.comparison-entry-values dd{margin:0;line-height:1.4}
.comparison-entry-values strong{font-size:clamp(1.3rem,2.5vw,1.8rem);color:var(--color-primary);font-variant-numeric:tabular-nums}
.comparison-entry-values dd>span{display:block;font-size:.75rem;color:var(--color-text-muted)}
.comparison-entry-map{height:210px;padding:0}
.comparison-entry-map img{position:absolute;left:0;top:-51%;width:100%;height:151%;object-fit:cover;object-position:center bottom}
.comparison-entry-map-caption{position:absolute;inset:auto 0 0;background:var(--color-surface);color:var(--color-text-muted);padding:6px 12px;font-size:.75rem;line-height:1.4}
.comparison-entry-map-caption small{font-size:.6875rem}
.comparison-entry-content{padding:var(--space-lg);display:flex;flex-direction:column;flex:1}
.php-page .comparison-entry-content h2{font-size:1.375rem;line-height:1.35;color:var(--color-primary);margin:0 0 var(--space-sm)}
.comparison-entry-content p{font-size:.9375rem;color:var(--color-text-muted);margin:0 0 var(--space-lg);flex:1}
.comparison-entry-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px;font-size:.9375rem;font-weight:650;color:var(--color-primary)}
.php-page .neighbor-grid li>a:first-child{border-bottom-left-radius:0;border-bottom-right-radius:0}
.php-page .neighbor-grid .neighbor-compare{flex-direction:row;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;padding:10px 14px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-top:0;border-radius:0 0 var(--radius-md) var(--radius-md);text-decoration:none}
.php-page .neighbor-grid .neighbor-compare svg{flex-shrink:0}
.php-page .neighbor-grid .neighbor-compare span{color:var(--color-primary);font-size:.8125rem;font-weight:650}
.php-page .neighbor-grid .neighbor-compare:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}
.php-page .neighbor-grid .neighbor-compare:hover span{color:inherit}
@media(max-width:700px){.comparison-entry-grid{grid-template-columns:1fr}.comparison-entry-visual{min-height:190px;padding:var(--space-md)}.comparison-entry-map{height:190px;padding:0}.comparison-entry-content{padding:var(--space-md)}.comparison-entry-values strong{font-size:1.375rem}}

/* Territorial photographs share the credited, responsive commune treatment. */
.territory-hero{margin-bottom:var(--space-lg)}
.territory-hero .lead{max-width:48ch;line-height:1.65}
.photo-caption{display:block;font-weight:600;color:var(--color-text)}
.territory-hero .city-photo img{object-fit:contain;background:var(--color-bg-subtle);aspect-ratio:auto;max-height:320px}
@media(max-width:700px){.territory-hero .city-photo img{max-height:280px}}
.principal-city-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style-position:inside;padding:0;margin:20px 0}
.principal-city-list li{min-width:0;list-style:none}
.principal-city-list a{display:flex;flex-direction:column;gap:6px;height:100%;padding:16px;border:1px solid var(--color-border,#d8c7a7);border-radius:var(--radius-sm,6px);background:var(--color-bg-subtle,#fffdf8);color:var(--color-primary,#184b44);text-decoration:none;overflow-wrap:anywhere}
.principal-city-list a:hover{border-color:var(--accent);text-decoration:underline}
.principal-city-list a:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}
.principal-city-list span{font-size:.9rem}
@media(max-width:600px){.principal-city-list{grid-template-columns:1fr}}

/* Geographic navigation wraps at narrow widths without hiding ancestors. */
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; list-style: none; }
.breadcrumb li { display: inline-flex; align-items: baseline; max-width: 100%; overflow-wrap: anywhere; }
.breadcrumb li + li::before { content: "›"; margin: 0 8px; flex-shrink: 0; }
.breadcrumb a { display: inline-block; padding: 4px 0; text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb [aria-current] { display: inline-block; padding: 4px 0; }
.breadcrumb a:focus-visible { outline: 2px solid var(--accent-dark); outline-offset: 3px; border-radius: 2px; }

/* Same-theme destinations on focus pages. */
.php-page #thematic-neighbors{scroll-margin-top:calc(var(--theme-nav-height) + var(--space-md))}
.php-page .thematic-neighbor-grid{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.php-page .thematic-neighbor-grid li{min-width:0}
.php-page .thematic-neighbor-grid a{display:flex;flex-direction:column;gap:8px;height:100%;min-height:84px;padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);color:var(--color-primary);text-decoration:none;overflow-wrap:anywhere}
.php-page .thematic-neighbor-grid span{color:var(--muted);font-size:.85rem}
.php-page .thematic-neighbor-grid a:hover{background:#eaf2ed;border-color:#97b6a6}
.php-page .thematic-neighbor-grid a:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}
@media(max-width:600px){.php-page .thematic-neighbor-grid{grid-template-columns:1fr}}

/* Compact sharing shortcuts; PHP details remain usable without JavaScript. */
.page-sharing { margin: 0 0 1.25rem; border: 1px solid #cbd5e1; border-radius: 14px; background: #fff; }

.sharing-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 14px 16px; }
.sharing-heading { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #174d58; font: inherit; font-weight: 650; text-align: left; cursor: pointer; }
.sharing-heading:hover:not(:disabled) { text-decoration: underline; text-underline-offset: 4px; }
.sharing-heading:disabled { cursor: default; }
.sharing-shortcuts { display: flex; flex-wrap: wrap; align-items: start; gap: 8px; }
.sharing-shortcut { display: inline-flex; flex-direction: column; align-items: center; gap: 5px; min-width: 48px; padding: 0; border: 0; background: transparent; color: #174d58; text-decoration: none; font: inherit; font-size: 11px; cursor: pointer; }
.sharing-disc { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #eaf3f0; color: #174d58; font-size: 21px; font-weight: 700; }
.sharing-whatsapp { background: #e1f5e9; color: #147846; }
.sharing-facebook { background: #e9f0ff; color: #1c5fbd; font-family: Arial, sans-serif; font-size: 27px; }
.sharing-linkedin { background: #e3f2fa; color: #0d6590; font-family: Arial, sans-serif; font-size: 20px; }
.sharing-shortcut:hover { text-decoration: none; }
.sharing-shortcut:hover .sharing-disc { box-shadow: 0 0 0 2px #267d87; }
.sharing-shortcut[aria-expanded="true"] .sharing-disc { box-shadow: 0 0 0 2px #267d87; }
.page-sharing details > summary { cursor: pointer; padding: .7rem 1rem; color: #174d58; }
.page-sharing[data-enhanced="true"] details > summary { display: none; }
.page-sharing details[open] .sharing-body { border-top: 1px solid #d4dcd8; padding-top: 2px; }
#sharing-status { margin: 0; padding: 0 1rem .8rem; }
#sharing-status:empty { display: none; }
@media (max-width: 480px) { .sharing-toolbar { gap: 12px; } .sharing-heading { flex-basis: 100%; } .sharing-shortcuts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; gap: 4px; } .sharing-shortcut { min-width: 0; } .sharing-disc { width: 40px; height: 40px; } }

.sharing-body { padding: 0 1rem 1rem; max-width: 800px; }
.sharing-body label { display: block; margin-top: .8rem; font-weight: 600; }
.sharing-body input, .sharing-body textarea { display: block; box-sizing: border-box; width: 100%; min-width: 0; padding: .65rem; margin-top: .35rem; border: 1px solid #94a3b8; border-radius: 6px; font: inherit; background: white; color: #172b3a; }
.sharing-body textarea { resize: vertical; }
.sharing-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-top: .8rem; }
@media (max-width: 480px) { .sharing-actions { align-items: stretch; } .sharing-actions button, .sharing-actions a { flex: 1 1 100%; text-align: center; } }
.sharing-actions button, .sharing-actions a { display: inline-flex; justify-content: center; align-items: center; min-height: 42px; padding: .55rem .85rem; border: 1px solid #267d87; border-radius: 8px; background: #fff; color: #174d58; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.sharing-actions button:hover, .sharing-actions a:hover { background: #eaf4f4; }
.sharing-actions button:disabled { opacity: .6; cursor: wait; }
.page-sharing summary:focus-visible, .sharing-heading:focus-visible, .sharing-shortcut:focus-visible, .sharing-actions :focus-visible { outline: 3px solid #267d87; outline-offset: 3px; }
