/* Lisibilité : textes courants et commandes, sans modifier les titres h1–h6. */
@media screen{
:root{--reading:16px;--secondary:14px;--metadata:13px;--control:15px}
body{font-size:var(--reading)}
.brand,.footer .brand,.footer-top .brand{font-size:14px;letter-spacing:.055em;gap:13px;min-width:0}
.brand b,.footer .brand b{font-size:12px;letter-spacing:.055em;margin-top:4px;line-height:1.5}
.brand-mark,.footer .brand-mark{display:grid;place-items:center;width:52px;height:52px;flex-shrink:0;padding:0;border:0;border-radius:12px;background:transparent;color:inherit;transform:none;letter-spacing:0;line-height:1;box-shadow:0 4px 0 #c6d3e0,0 10px 18px -11px #14395e7d}
.brand-mark img{width:100%;height:100%;object-fit:contain;border-radius:inherit;display:block}
.header{height:90px}
.header nav{font-size:14px;gap:3px}
.header nav a{font-size:14px;padding:11px 10px;line-height:1.6}
.header .nav-vote{font-size:14px;padding:12px 13px;margin-left:4px}
.menu-toggle{font-size:15px;min-height:46px}
.eyebrow,.hero .eyebrow,.section-heading .eyebrow,.calendar-layout .eyebrow,.method-grid .eyebrow{font-size:12px;letter-spacing:.075em;line-height:1.8}
.hero-intro{font-size:17px;line-height:1.85}
.button,.hero-actions .button,.profile-actions .button,.load-more{font-size:16px;line-height:1.55;max-width:100%;white-space:normal;min-height:54px;gap:16px}
.profile-actions .button{font-size:15px;padding:13px 16px}
.text-link,.hero-actions .text-link,.profile-actions>.text-link,.voter-grid .text-link,.calendar-layout .text-link{font-size:15px;line-height:1.8}
.hero-footer,.hero-footer span{font-size:12px;line-height:1.6;letter-spacing:.045em}
.hero-footer{gap:9px}
.hero-photo-top{font-size:12px;line-height:1.7}
.photo-caption>span:first-child{font-size:12px;letter-spacing:.09em;line-height:1.7}
.photo-caption{bottom:88px}
.hero-photo figcaption{font-size:12px;line-height:1.5;max-width:calc(100% - 140px);bottom:20px}
.watermark{font-size:12px;line-height:1.5;bottom:20px}
.small-caps{font-size:12px;letter-spacing:.09em;line-height:1.7}
.date-source{font-size:14px;line-height:1.8}
.date-source a{font-size:13px;line-height:1.8}
.note-number{font-size:12px;line-height:1.6;letter-spacing:.065em}
.editorial-note p{font-size:16px;line-height:1.85}
.section-heading>p{font-size:16px;line-height:1.85;max-width:450px}
.search-box input{font-size:16px;letter-spacing:0;line-height:1.6}
.search-box input::placeholder{font-size:15px;letter-spacing:0}
.filter-label>span{font-size:13px;line-height:1.6;min-width:0}
.filter-label select{font-size:15px;line-height:1.7;padding:15px 3px;max-width:none}
.filter-label{gap:9px;min-width:0;max-width:none}
.toolbar .search-box{flex:1.2}
.toolbar .filter-label{flex:1;max-width:340px}
.toolbar,.document-controls{flex-wrap:wrap}
.results-line,.results-line p{font-size:14px;line-height:1.8}
.results-line>span{font-size:12px;letter-spacing:.04em;line-height:1.7}
.results-line{gap:20px;align-items:center;flex-wrap:wrap}
.muted{font-size:14px;line-height:1.8}
.empty{font-size:16px;line-height:1.85}
.small-note,.calendar-layout .small-note{font-size:14px!important;line-height:1.85!important}
.card-status{position:static;display:inline-block;max-width:100%;width:fit-content;font-size:12px;line-height:1.5;letter-spacing:0;padding:5px 8px;margin:0 0 13px;border-radius:7px;background:#edf3f8;border:1px solid #d9e4ed;color:#365e7d;box-shadow:none;white-space:normal}
.card-status.conditional{background:#fff4df;border-color:#ead9b8;color:#765119}
.card-status.uncertain{background:#f4e8e4;border-color:#e6d4ca;color:#814a37}
.card-party{font-size:12px;line-height:1.7;letter-spacing:.035em;min-height:0;margin-bottom:10px;overflow-wrap:anywhere}
.card-summary{font-size:15px;line-height:1.8;min-height:0}
.card-bottom{font-size:14px;flex-wrap:wrap;gap:9px 14px;align-items:center}
.card-bottom>a{font-size:14px;line-height:1.7;min-height:40px}
.compare-check{font-size:14px;line-height:1.6;min-height:40px;gap:8px}
.compare-check input{width:17px;height:17px;flex-shrink:0}
.portrait-fallback:after{font-size:12px;line-height:1.45;letter-spacing:.02em;left:8px;right:8px;bottom:10px;padding:5px 4px;white-space:normal;text-align:center}
.compare-slot select{font-size:16px;line-height:1.7}
.compare-slot{min-width:0}
.theme-row button{font-size:14px;line-height:1.6;min-height:46px;padding:11px 14px}
.comparison-empty p{font-size:16px;line-height:1.8}
.compare-column>p{font-size:14px;line-height:1.8}
.compare-column>p:nth-of-type(2){font-size:13px;line-height:1.6;padding:6px 9px}
.compare-measure p{font-size:16px;line-height:1.85}
.source-link{font-size:14px;line-height:1.85}
.compare-disclaimer{font-size:14px;line-height:1.85}
.document-row{grid-template-columns:46px minmax(0,1fr) 170px 36px}
.document-row p{font-size:14px;line-height:1.85;overflow-wrap:anywhere}
.document-row .doc-owner{font-size:13px;line-height:1.75;overflow-wrap:anywhere}
.doc-icon{font-size:12px;width:42px;height:51px;letter-spacing:-.04em}
.timeline time{font-size:12px;letter-spacing:.055em;line-height:1.7}
.timeline p{font-size:15px;line-height:1.85}
.calendar-layout>div>p:not(.eyebrow){font-size:16px;line-height:1.85}
.voter-grid p{font-size:16px;line-height:1.85}
summary{font-size:16px;line-height:1.75;padding:20px 22px}
details>p{font-size:16px;line-height:1.85}
.method-grid>div>p:not(.eyebrow){font-size:16px;line-height:1.85;max-width:430px}
.method-content article>span{font-size:13px;line-height:1.8;width:26px}
.method-content p{font-size:15px;line-height:1.85}
.credits summary{font-size:15px;line-height:1.75}
.credits>div,.credits>p,.credit-item{font-size:14px;line-height:1.85}
.footer-top{flex-wrap:wrap}
.footer-top>a:last-child{font-size:15px;line-height:1.7}
.footer-bottom{font-size:12px;line-height:1.8;letter-spacing:.025em;flex-wrap:wrap}
.breadcrumbs{font-size:14px;line-height:1.75;flex-wrap:wrap;gap:10px}
.profile-party{font-size:13px;line-height:1.8;letter-spacing:.04em}
.profile-status{font-size:13px;line-height:1.6;padding:6px 10px;letter-spacing:0}
.profile-detail{font-size:16px;line-height:1.85}
.profile-detail strong{font-size:14px;line-height:1.8}
.profile-photo-credit{font-size:13px;line-height:1.75}
.profile-tabs{flex-wrap:wrap}
.profile-tabs button{font-size:15px;line-height:1.6;min-height:48px;padding:12px 16px;white-space:normal}
.profile-content .prose p{font-size:17px;line-height:1.9}
.bio-timeline p{font-size:16px;line-height:1.85}
.program-note{font-size:16px;line-height:1.85}
.program-note strong{font-size:16px;line-height:1.7}
.measure p{font-size:16px;line-height:1.85}
.source-card>a{font-size:16px;line-height:1.8}
.source-card p{font-size:14px;line-height:1.8}
.profile-legal-note{font-size:14px;line-height:1.85}
.toast{font-size:15px;line-height:1.8}
.noscript{font-size:16px;line-height:1.8}
}
@media screen and (max-width:1120px){
.header{height:84px}
.header nav{position:absolute;top:calc(100% + 10px);left:0;right:0;display:none;border:1px solid #e2e8ee;border-radius:18px;background:#fffffff5;padding:12px 19px 17px;box-shadow:0 20px 35px -20px #1c3b6170;backdrop-filter:blur(18px)}
.header nav.open{display:flex;align-items:stretch;flex-direction:column;gap:3px}
.header nav a{font-size:16px;padding:13px 12px;border-bottom:0;white-space:normal;margin:0}
.header .nav-vote{font-size:16px;padding:13px 12px;margin:5px 0 0;border-left:1px solid #244c77}
.menu-toggle{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:#eef3f9;border:1px solid #e0e7ef;color:#244f78;box-shadow:inset 0 1px 0 #fff,0 2px 0 #dce5ef;font-size:15px}
.date-band{flex-wrap:wrap;justify-content:space-around}
.date-source{flex-basis:100%;border-left:0;border-top:1px solid #ffffff24;padding:17px 0 0;margin:0}
.toolbar .search-box{flex-basis:100%}
.toolbar .filter-label{max-width:none;flex:1}
.document-row{grid-template-columns:46px minmax(0,1fr) 140px 34px}
.profile-hero{grid-template-columns:220px minmax(0,1fr)}
.profile-hero>div{min-width:0}
}
@media screen and (max-width:850px){
.profile-hero{grid-template-columns:1fr}
.profile-hero>div:first-child{max-width:280px}
.profile-portrait{width:210px;aspect-ratio:1}
.compare-selects{grid-template-columns:1fr}
.compare-table{grid-template-columns:1fr!important}
.compare-column{min-width:0}
.section-heading>p{max-width:100%}
.voter-grid{grid-template-columns:1fr}
.footer-top{gap:28px}
}
@media screen and (max-width:680px){
:root{--reading:16px;--secondary:14px;--metadata:12px;--control:16px}
.header{height:82px;padding:0 15px;width:calc(100% - 24px);top:10px}
.brand,.footer .brand,.footer-top .brand{font-size:12px;letter-spacing:.035em;gap:10px}
.brand b,.footer .brand b{font-size:11px;line-height:1.5;letter-spacing:.02em}
.brand-mark,.footer .brand-mark{width:46px;height:46px;border-radius:11px}
.menu-toggle{font-size:14px;gap:8px;padding:8px 10px}
.menu-toggle>span{font-size:18px}
.eyebrow,.hero .eyebrow,.section-heading .eyebrow,.calendar-layout .eyebrow,.method-grid .eyebrow{font-size:12px;line-height:1.75;letter-spacing:.035em}
.hero-intro{font-size:16px;line-height:1.85}
.button,.hero-actions .button,.profile-actions .button,.load-more{font-size:16px;line-height:1.6;padding:14px 16px;gap:13px;min-height:52px}
.text-link,.hero-actions .text-link,.profile-actions>.text-link,.voter-grid .text-link,.calendar-layout .text-link{font-size:15px;line-height:1.8}
.hero-footer,.hero-footer span{font-size:12px;line-height:1.6;letter-spacing:.015em}
.hero-photo-top{font-size:12px;left:21px;top:23px}
.photo-caption>span:first-child{font-size:12px;line-height:1.6;letter-spacing:.045em}
.photo-caption{bottom:93px;left:20px;right:20px}
.hero-photo figcaption{font-size:12px;left:20px;bottom:18px;max-width:calc(100% - 125px);line-height:1.5}
.watermark{font-size:12px;right:13px;bottom:18px;line-height:1.5}
.small-caps{font-size:12px;letter-spacing:.04em}
.date-source{font-size:14px;line-height:1.8}
.date-source a{font-size:13px;line-height:1.8}
.editorial-note{display:block;padding:21px}
.note-number{display:inline-block;font-size:12px;line-height:1.6;margin-bottom:13px;padding:6px 9px}
.editorial-note p{font-size:15px;line-height:1.85}
.section-heading>p{font-size:16px;line-height:1.85}
.search-box input{font-size:16px;line-height:1.6}
.search-box input::placeholder{font-size:14px;letter-spacing:0}
.toolbar .filter-label,.document-controls .filter-label{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:10px 13px 6px;flex-basis:100%;width:100%}
.filter-label>span{font-size:13px;line-height:1.6;min-width:0}
.filter-label select{font-size:16px;padding:6px 0 9px;line-height:1.65;max-width:100%;width:100%}
.results-line{gap:9px;align-items:flex-start;flex-direction:column;margin:25px 1px 21px}
.results-line,.results-line p{font-size:14px;line-height:1.8}
.results-line>span{font-size:12px;max-width:none;text-align:left;letter-spacing:.03em}
.card-content{display:contents}
.candidate-card{grid-template-columns:minmax(0,.38fr) minmax(0,.62fr);grid-template-rows:auto auto auto auto auto;gap:0;align-items:stretch}
.card-photo{grid-column:1;grid-row:1 / span 3;min-height:165px;height:auto;aspect-ratio:auto;margin:8px 14px 8px 8px;align-self:stretch}
.card-status{grid-column:2;grid-row:1;font-size:12px;line-height:1.5;align-self:start;margin:19px 18px 0 0;max-width:calc(100% - 18px);padding:5px 7px}
.card-party{grid-column:2;grid-row:2;font-size:12px;line-height:1.7;margin:11px 18px 0 0;letter-spacing:.02em;align-self:start}
.candidate-card h3{grid-column:2;grid-row:3;margin:9px 18px 19px 0;align-self:start}
.card-summary{grid-column:1 / -1;grid-row:4;margin:17px 20px 0;min-height:0;font-size:16px;line-height:1.8;-webkit-line-clamp:3}
.card-bottom{grid-column:1 / -1;grid-row:5;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:18px 20px 19px;padding-top:12px;gap:9px 12px;font-size:14px}
.card-bottom>a,.compare-check{font-size:14px;line-height:1.65;min-height:44px}
.compare-check input{width:18px;height:18px}
.portrait-fallback:after{font-size:12px;line-height:1.35;letter-spacing:0;left:4px;right:4px;bottom:7px;padding:4px 2px}
.small-note,.calendar-layout .small-note{font-size:14px!important;line-height:1.85!important}
.empty{font-size:16px;line-height:1.85}
.compare-slot select{font-size:16px;line-height:1.6}
.theme-row button{font-size:14px;line-height:1.6;min-height:46px;padding:10px 12px}
.comparison-empty{align-items:flex-start;padding:23px 20px;gap:14px}
.comparison-empty p{font-size:16px;line-height:1.8}
.compare-column>p{font-size:14px;line-height:1.8}
.compare-column>p:nth-of-type(2){font-size:13px;line-height:1.65}
.compare-measure p{font-size:16px;line-height:1.85}
.source-link{font-size:14px;line-height:1.8}
.compare-disclaimer{font-size:14px;line-height:1.85}
.document-row{grid-template-columns:44px minmax(0,1fr) 28px;gap:12px;padding:23px 15px}
.document-row:hover{padding-left:15px}
.document-row p{font-size:14px;line-height:1.8}
.document-row .doc-owner{font-size:13px}
.doc-icon{font-size:12px;width:41px;height:50px}
.document-row .doc-arrow{width:27px;height:30px}
.muted{font-size:14px;line-height:1.8}
.timeline time{font-size:12px;line-height:1.7;letter-spacing:.03em}
.timeline p{font-size:15px;line-height:1.85}
.calendar-layout>div>p:not(.eyebrow){font-size:16px;line-height:1.85}
.voter-grid>a{padding:27px 23px 27px 82px}
.voter-grid p{font-size:16px;line-height:1.85}
summary{font-size:16px;line-height:1.75;padding:19px 18px}
details>p{font-size:16px;line-height:1.85;margin-right:22px}
.method-grid>div>p:not(.eyebrow){font-size:16px;line-height:1.85}
.method-content p{font-size:16px;line-height:1.85}
.method-content article>span{font-size:13px;line-height:1.8;min-width:22px}
.credits summary{font-size:15px;line-height:1.75}
.credits>div,.credits>p,.credit-item{font-size:14px;line-height:1.85}
.footer-top>a:last-child{font-size:15px;line-height:1.7}
.footer-bottom{font-size:12px;line-height:1.85;gap:13px;letter-spacing:0;align-items:flex-start}
.footer-bottom>span:last-child{margin-left:0}
.breadcrumbs{font-size:14px;line-height:1.8}
.breadcrumbs>a{padding:10px 12px;max-width:100%}
.profile-party{font-size:13px;line-height:1.8;letter-spacing:.025em}
.profile-status{font-size:13px;line-height:1.65}
.profile-detail{font-size:16px;line-height:1.85}
.profile-detail strong{font-size:14px;line-height:1.8}
.profile-photo-credit{font-size:13px;line-height:1.8}
.profile-tabs{grid-template-columns:1fr 1fr;gap:7px}
.profile-tabs button{font-size:15px;line-height:1.6;padding:12px 10px;min-height:52px}
.profile-content .prose p{font-size:17px;line-height:1.9}
.bio-timeline li{grid-template-columns:1fr;gap:9px}
.bio-timeline p{font-size:16px;line-height:1.85}
.program-note{font-size:16px;line-height:1.85;padding:21px}
.program-note strong{font-size:16px;line-height:1.75}
.measure p{font-size:16px;line-height:1.85}
.source-card>a{font-size:16px;line-height:1.8}
.source-card p{font-size:14px;line-height:1.8}
.profile-legal-note{font-size:14px;line-height:1.85}
.toast{font-size:15px;line-height:1.8;max-width:calc(100% - 32px)}
}
@media screen and (max-width:380px){
.header{padding:0 12px}.brand,.footer .brand{font-size:11px;gap:8px}.brand b,.footer .brand b{font-size:10px;letter-spacing:0}.brand-mark,.footer .brand-mark{width:43px;height:43px}.menu-toggle{font-size:13px;padding:8px;gap:6px}.candidate-card{grid-template-columns:minmax(0,.38fr) minmax(0,.62fr)}
}
@media print{
body{font-size:12pt}.profile-content .prose p,.measure p,.program-note,.profile-detail,.bio-timeline p{font-size:12pt}.source-card p,.profile-photo-credit,.profile-legal-note{font-size:10pt}.source-card a:after,.measure a:after{font-size:10pt}
}
@media screen and (max-width:680px){.header{gap:12px}.brand,.footer .brand,.footer-top .brand{font-size:12px}.brand b,.footer .brand b{font-size:12px;letter-spacing:0}}
/* Les légendes restent séparées de l'année, même sur un écran de 320 px. */
@media screen and (max-width:680px){.photo-caption{flex-direction:column;align-items:flex-start;gap:15px}.photo-caption>span:first-child{width:100%}.hero-photo .hero-year{order:-1;align-self:flex-end}}
@media screen and (max-width:680px){.date-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:21px 16px;align-items:start}.date-band .band-star{display:none}.date-band>div:not(.date-source){min-width:0}.date-band strong i{display:block;margin-left:0;margin-top:3px}.date-source{grid-column:1 / -1;width:100%}}
