/* Shared responsive corrections, loaded after page-specific styles. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
main,section,article,aside,.panel,.feature-card,.metric-with-source,.facts>div,.source-document>div,.home-hero>div{min-width:0}
img,video{max-width:100%;height:auto}
h1,h2,h3,p,figcaption,summary,a,td,th,dd{overflow-wrap:break-word}
.feature-grid,.metric-grid,.catalogue-summary,.facts{grid-auto-columns:minmax(0,1fr)}
.facts{grid-template-columns:repeat(3,minmax(0,1fr))}.facts>div{align-content:start}.facts strong{font-size:clamp(1.65rem,3vw,2.5rem);overflow-wrap:anywhere}
.analysis-long p+p{margin-top:16px}
@media(max-width:700px){
 .topline,.header,main,footer{margin-left:16px;margin-right:16px}
 .header{padding:16px;gap:14px}.header nav{justify-content:flex-start;gap:4px 14px}.header nav a{min-height:44px;font-size:14px}
 h1,.intro h1,.history-page h1,.catalogue-intro h1{font-size:clamp(1.75rem,7.5vw,2.25rem);line-height:1.18}
 h2,.section-heading h2,.analysis-long h2,.sources-section h2,.history-section h2,.portrait h2{font-size:clamp(1.35rem,5.8vw,1.7rem);line-height:1.25}
 h3,.feature-card h3,.analysis-card h3,.source-document-label h3{font-size:1.2rem;line-height:1.35}
 .lead,.history-section p{font-size:1rem;line-height:1.7}
 .landing-seo .home-hero{padding:22px;gap:26px;border-radius:20px}
 .landing-seo .home-hero h1{font-size:clamp(1rem,5.5vw,2.25rem)}
 @supports(font-size:1cqi){.landing-seo .home-hero h1{font-size:clamp(1rem,9cqi,2.25rem)}}
 .population-spotlight{padding:18px}.population-spotlight h2{font-size:1.4rem}
 .facts{grid-template-columns:1fr;gap:0}.facts>div{padding:16px 4px;border-right:0;border-bottom:1px solid var(--line);gap:6px}.facts strong{font-size:1.9rem;letter-spacing:-1px}.facts span{max-width:none;font-size:14px}.facts .source-link{flex-basis:auto}
 .panel,.analysis-long,.history-reading,.source-document,.mission,.history-overview,.history-home{padding:20px}
 .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{padding:16px 12px}.metric-card strong{font-size:clamp(1.2rem,5.5vw,1.7rem);letter-spacing:-.5px;overflow-wrap:anywhere}.metric-card .metric-label{padding-right:10px}.metric-with-source .metric-card{height:auto;min-height:140px}
 #portrait-value{font-size:clamp(1.8rem,8vw,2.5rem);overflow-wrap:anywhere;letter-spacing:-1px}
 .concept-number{height:auto;min-height:60px;font-size:1.8rem;letter-spacing:-1px}
 .compare-controls{flex-wrap:wrap}.compare-controls>div{flex:1 1 180px}
 .map-select{flex-direction:column;align-items:stretch}.map-select select{width:100%}
 .rank-row{grid-template-columns:minmax(0,1fr) minmax(30px,.6fr) minmax(60px,.5fr);gap:8px}.rank-row>span{min-width:0;overflow-wrap:anywhere}
 .insee-table,.table-scroll,.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.insee-table table{font-size:14px}.insee-table th,.insee-table td{padding:10px}
 .history-timeline li{grid-template-columns:1fr;gap:6px}.history-year{font-size:1.35rem}.history-timeline h3{font-size:1.15rem}
 .catalogue-summary>div{flex-wrap:wrap}.catalogue-summary strong{font-size:1.8rem;min-width:0}.catalogue-summary{gap:18px}
 .pagination{flex-wrap:wrap}.actions a,.primary-button,.outline-button{white-space:normal;max-width:100%;overflow-wrap:anywhere}
 input,select,textarea,.commune-control select,.compare-controls select,.map-select select{font-size:16px}
 .landing-faq details{padding:18px}.source-link{font-size:12px;overflow-wrap:anywhere}
}
@media(max-width:360px){.header .brand{font-size:20px}.brand-icon{width:30px;height:32px;margin-right:0;padding:6px}.panel,.analysis-long,.history-reading{padding:16px}.landing-seo .home-hero{padding:18px}.metric-grid{gap:8px}}

/* Progressive enhancement: navigation remains visible without JavaScript. */
.menu-toggle{display:none;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:10px;padding:8px 12px;font-size:14px;min-height:44px;cursor:pointer}
.menu-icon{font-family:Arial,sans-serif;font-size:24px;line-height:1;width:24px;text-align:center}
@media(max-width:700px){.header{gap:12px;justify-content:space-between}.header .brand{font-size:clamp(18px,5vw,23px);gap:4px;letter-spacing:-.8px}.header .brand-icon{flex-shrink:0;width:30px;height:32px;padding:6px;margin-right:2px}.menu-toggle{display:inline-flex;flex-shrink:0;padding:8px}.header nav{flex-basis:100%;display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);padding-top:10px}.header nav a{padding:10px 12px;border-radius:8px;min-height:44px;font-size:15px}.header nav a[aria-current=page]{background:var(--light);text-decoration:none}.header nav a:hover{background:var(--light)}}
@media(max-width:360px){.header{padding:12px;gap:6px}.menu-toggle{gap:4px;padding:6px}.header .brand{font-size:18px}}

/* Shared editorial spacing: keep actions clear of text and adjacent panels. */
main { --action-space: 1.5rem; --block-space: 2.5rem; }
main .actions { gap: 1rem; }
main :is(p,ul,ol,dl) + :is(.primary-button,.outline-button) {
  display: inline-block;
  margin-block-start: var(--action-space);
}
main :is(.primary-button,.outline-button) + :is(p,.source-link) {
  margin-block-start: var(--action-space);
}
main :is(section,article) + :is(.panel,.history-reading,.history-overview,.history-home),
main :is(section,article):has(> .actions:last-child) + :is(section,article) {
  margin-block-start: var(--block-space);
}
main :is(.panel,.history-reading,.history-home) > h2 + p {
  margin-block-start: 1rem;
}
@media (max-width: 700px) {
  main { --action-space: 1.25rem; --block-space: 2rem; }
}
