.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}
.skip:not(:focus){opacity:0;pointer-events:none}
.paused .result-bar rect{animation:none!important;transform:none!important}
.electoral-hero .intro strong{font-weight:700;color:#254b4c}.header nav{gap:25px}
.product-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-block:30px;border-block:1px solid #d9e1d8}.product-benefits article{display:flex;gap:15px;align-items:flex-start}.product-benefits article>span{font-size:10px;color:#a67a51;padding-top:4px}.product-benefits h2{font-size:17px;letter-spacing:-.4px;line-height:1.5}.product-benefits p{font-size:12px;line-height:1.8;margin-top:5px;color:#6a7b71}
.additional-functions h2 em{font-family:Georgia,serif;font-weight:400;color:#426d65}.additional-functions .section-head>p{font-size:14px;max-width:395px}.tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.tools-grid article{display:flex;flex-direction:column;border:1px solid #dde4db;border-radius:6px;padding:27px;background:#fffefa;min-width:0}.tool-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:21px}.tool-icon{width:44px;height:44px;background:#edf1e9;border-radius:7px;display:grid;place-items:center}.tool-icon svg{width:26px;height:26px;fill:none;stroke:#477765;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.tool-category{font-size:9px;letter-spacing:1.4px;color:#819080}.tools-grid h3{font-size:21px;line-height:1.4;font-weight:400;letter-spacing:-.5px}.tools-grid article>p{font-size:13px;line-height:1.9;margin-top:13px;margin-bottom:23px}.tool-use{margin-top:auto;padding-top:17px;border-top:1px solid #e3e7de;font-size:11px;line-height:1.8;color:#597366}.tool-use strong{display:block;color:#355d4e;font-size:10px;letter-spacing:.5px;margin-bottom:4px}.tool-condition{font-size:10px;line-height:1.7;color:#8b785e;margin-top:13px}.tools-availability{font-size:11px;line-height:1.8;color:#6e8174;margin-top:22px;max-width:870px}
.connected-workflow{display:grid;grid-template-columns:1fr 1.6fr;gap:45px;align-items:center;background:#edf0e8;border-radius:6px;padding:32px;margin-top:44px}.connected-workflow h3{font-size:22px;line-height:1.5;font-weight:400;margin-top:10px}.connected-workflow ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin:0;padding:0;list-style:none}.connected-workflow li{position:relative;display:grid;gap:11px;color:#557362;font-size:11px;line-height:1.8}.connected-workflow li:not(:last-child):after{content:'→';position:absolute;right:0;top:3px;color:#839b8a}.connected-workflow b{display:grid;place-items:center;border:1px solid #afc2b0;border-radius:50%;height:29px;width:29px;font-size:11px;font-weight:400;color:#3c6554}
@media(max-width:1100px){.tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-benefits{gap:22px}.product-benefits h2{font-size:16px}.header nav{gap:18px;font-size:11px}.connected-workflow{grid-template-columns:1fr;gap:25px}.connected-workflow ol{gap:25px}.connected-workflow li{font-size:12px}}
@media(max-width:760px){.product-benefits{grid-template-columns:1fr;gap:20px;padding-block:27px}.product-benefits h2{font-size:17px}.product-benefits p{font-size:12px}.tools-grid{grid-template-columns:1fr;gap:18px}.tools-grid article{padding:25px}.additional-functions .section-head>p{font-size:13px}.tools-grid h3{font-size:22px}.tool-use{font-size:12px}.tools-availability{font-size:11px}.connected-workflow{padding:25px;margin-top:30px}.connected-workflow ol{grid-template-columns:1fr 1fr;gap:25px}.connected-workflow li:after{display:none}.connected-workflow h3{font-size:21px}}
.province-results.expanded{max-height:470px;overflow-y:auto;scrollbar-width:thin;padding-right:9px;align-content:start}
[hidden]{display:none!important}
.electoral-hero h1{font-size:clamp(44px,4.5vw,65px);line-height:1.11;letter-spacing:-2.8px}
.electoral-hero .hero-scene{height:450px}.electoral-hero .intro{max-width:520px;font-size:15px}.electoral-hero .actions{gap:23px;flex-wrap:wrap}.electoral-hero .hero-foot{font-size:10px}
.scene-heading{position:absolute;top:29px;left:28px;z-index:2;background:#faf9f6e8;border:1px solid #fff6;padding:18px 22px;border-radius:4px;max-width:320px}.scene-heading strong{display:block;font-size:21px;font-weight:400;line-height:1.45;margin-top:7px}.scene-heading .tiny-label{font-size:9px;color:#53716c}
.election-note{right:24px;left:24px;bottom:30px;padding:20px;gap:14px}.election-note strong{font-size:24px}.election-note strong span{display:block;font-size:12px;margin-top:3px}.note-source{display:block;font-size:10px;color:#597077;margin-top:9px}.election-note:hover{text-decoration:none;box-shadow:0 9px 35px #16384830}
.electoral-map-section{padding:72px 0 58px;background:#eaf0ec;border-block:1px solid #dce4dd}.electoral-map-section .section-head h2{font-size:43px}.electoral-map-section h2 em,.method h2 em{font-family:Georgia,serif;color:#426d65;font-weight:400}.electoral-map-section .section-head>p{max-width:390px;font-size:14px}
.map-toolbar{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-bottom:20px}.election-switch{display:flex;border:1px solid #b7c9bf;border-radius:5px;padding:4px;gap:4px}.election-switch button{border:0;border-radius:3px;background:transparent;color:#4e6660;padding:12px 16px;font-size:12px;min-height:43px}.election-switch strong{margin-left:5px}.election-switch button[aria-pressed=true]{background:#183f40;color:white;box-shadow:0 2px 5px #173c4120}.map-mode{margin:0;padding:0;border:0;display:flex;gap:17px;align-items:center;font-size:12px;color:#35534d}.map-mode label{display:flex;gap:7px;align-items:center;cursor:pointer;min-height:44px}.map-mode input{accent-color:#1f645a;width:16px;height:16px;margin:0}.map-toolbar .motion{margin-left:auto}
.election-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 345px;border:1px solid #cbd8ce;border-radius:9px;overflow:hidden;background:#fbfcf9;box-shadow:0 25px 65px #1a3b3210}.map-canvas{padding:28px 24px 23px;min-width:0;background:radial-gradient(ellipse at 50% 40%,#fff,#f2f5ef 95%)}.map-heading{display:flex;gap:20px;align-items:flex-start;justify-content:space-between}.map-heading .tiny-label{color:#52766c;font-size:10px}.map-heading h3{font-size:18px;font-weight:400;line-height:1.4;margin-top:6px}.map-date{font-size:10px;line-height:1.6;color:#627970;white-space:nowrap;padding-top:3px}
#spain-map{display:block;width:100%;height:auto;margin:17px auto 0;overflow:visible} .map-surroundings{fill:#8c9c96;font-family:Noto,sans-serif;font-size:11px;letter-spacing:1.6px;pointer-events:none}.map-surroundings path{fill:none;stroke:#cad7ce;stroke-width:1;stroke-dasharray:4 4}.map-surroundings .sea-label{font-family:Georgia,serif;letter-spacing:2px;font-style:italic;font-size:10px;fill:#a0b4af}
.province{stroke:#fbfcf9;stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .4s ease,filter .2s ease}.province[aria-pressed=true]{stroke:#102e39;stroke-width:2;filter:drop-shadow(0 2px 2px #132f4028)}.province:focus{outline:none;stroke:#071e2b;stroke-width:3}.province:hover{filter:brightness(1.07)}
.map-legend{list-style:none;display:flex;flex-wrap:wrap;gap:12px 22px;padding:0;margin:10px 0 0;min-height:27px;align-items:center;font-size:12px}.map-legend li{display:flex;align-items:center;gap:7px}.map-swatch{width:12px;height:12px;flex-shrink:0}.map-help{font-size:10px;line-height:1.8;color:#70847a;margin-top:15px;max-width:630px}
.province-detail{padding:26px 25px;background:#fff;border-left:1px solid #dce5dd;min-width:0}.province-picker{display:block;font-size:10px;letter-spacing:.3px;color:#60766b}.province-picker select{display:block;max-width:100%;width:100%;margin-top:8px;border:1px solid #c8d7ce;border-radius:4px;background:#fbfcf9;padding:10px 12px;min-height:43px;color:#1f423b;font:inherit;font-size:13px}.province-picker select:focus-visible,.map-mode input:focus-visible{outline:3px solid #db6c3e;outline-offset:3px}.province-title{margin-top:22px}.province-title>span{font-size:10px;color:#72857c}.province-title h3{font-size:28px;line-height:1.2;font-weight:400;margin:5px 0}.province-title p{font-size:10px;line-height:1.6;color:#75847d}.winner-summary{margin-top:20px;padding:17px 0;border-block:1px solid #e3e9e4}.winner-summary .tiny-label{font-size:8px;letter-spacing:1.2px;color:#6d8278}.winner-summary>strong{display:flex;align-items:center;gap:9px;font-size:20px;font-weight:400;line-height:1.4;margin-top:6px}.winner-numbers{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:6px}.winner-numbers b{font-size:27px;font-weight:400;letter-spacing:-1px}.winner-numbers span{font-size:11px;color:#6a7e75}.province-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.province-stats div:first-child{grid-row:span 2;padding-top:5px}.province-stats span{display:block;font-size:9px;color:#6f8279}.province-stats strong{display:block;font-size:14px;font-weight:400;margin-top:4px}.province-stats div:first-child strong{font-size:25px;color:#356e5f}.results-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:23px}.results-heading h4{font-weight:700;font-size:11px;letter-spacing:0}.results-heading>span{font-size:9px;color:#7b8a82}.province-results{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:12px}.result-head{display:flex;justify-content:space-between;gap:10px;font-size:11px}.party-label{overflow-wrap:anywhere;max-width:75%}.result-head strong{font-weight:400;white-space:nowrap}.result-bar{width:100%;height:5px;display:block;margin:5px 0}.result-bar rect:last-child{animation:bar-enter .5s ease-out both;transform-origin:left}.result-row small{font-size:9px;color:#728279}.results-toggle{font:inherit;font-size:10px;background:transparent;border:0;border-bottom:1px solid #8caa9c;color:#325e4e;padding:6px 0;margin-top:12px;min-height:35px}.province-other{font-size:9px;color:#74867b;margin-top:11px}
.map-national{display:flex;align-items:center;gap:35px;padding:23px 28px;background:#173e3d;color:#f3f5ed;border-radius:0 0 7px 7px;margin:0 8px}.map-national>span{font-size:9px;letter-spacing:1.3px;max-width:150px;line-height:1.8;color:#bed0c3}.map-national strong{display:block;font-size:23px;font-weight:400;letter-spacing:-.7px;white-space:nowrap}.map-national small{display:block;font-size:10px;margin-top:3px;color:#aec8bb}.map-national p{margin-left:auto;color:#c3d6c9;font-size:11px;max-width:170px}.map-methodology{margin-top:23px;max-width:1060px}.map-methodology p{font-size:10px;line-height:1.85;color:#60776a;margin-top:6px}.map-methodology p:first-child{font-size:12px;color:#365749}.map-methodology a{text-decoration:underline;text-underline-offset:3px;margin-right:9px}.map-methodology [hidden]{display:none!important}
.electoral-features p{min-height:110px}.feature-points{padding:18px 0 0;margin:22px 0 0;list-style:none;border-top:1px solid #dee5dc;display:grid;gap:12px;font-size:11px;color:#516d62}.feature-points li:before{content:'↗';color:#b57b49;margin-right:10px}.feature-note{font-size:11px;margin-top:30px;color:#6f8176}.workflow-section{background:#f0f0e9;border-block:1px solid #e3e5da}.workflow-section .method{padding-block:78px}.method-copy>p:not(.eyebrow){max-width:390px}
@media(min-width:1101px){.electoral-hero{grid-template-columns:1.05fr 1fr;padding-top:36px;padding-bottom:55px;gap:50px}.electoral-hero h1{font-size:clamp(44px,4.5vw,63px)}}
@media(max-width:1100px){.electoral-hero{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.electoral-hero h1{font-size:44px;letter-spacing:-2px}.electoral-hero .hero-scene{height:430px;margin-top:0}.electoral-hero .intro{font-size:13px}.scene-heading{left:18px;top:20px;padding:16px}.scene-heading strong{font-size:18px}.election-note{left:15px;right:15px;padding:15px}.election-note strong{font-size:21px}.election-note small{font-size:8px}.election-note .note-icon{display:none}.election-dashboard{grid-template-columns:minmax(0,1fr) 310px}.province-detail{padding:22px 20px}.map-canvas{padding:22px 18px}.map-heading{display:block}.map-date{display:block;margin-top:7px}.map-national{gap:25px;padding:22px}.map-national strong{font-size:21px}.map-national>span{max-width:120px}}
@media(max-width:860px){.election-dashboard{grid-template-columns:1fr}.map-canvas{padding:25px}.map-heading{display:flex}.province-detail{border-left:0;border-top:1px solid #dce5dd;display:grid;grid-template-columns:1fr 1fr;gap:0 30px;padding:28px}.province-picker{grid-column:1/-1}.province-title{grid-column:1}.winner-summary{grid-column:1}.province-stats{grid-column:1;margin-bottom:20px}.results-heading{grid-column:2;grid-row:2;margin-top:24px;align-items:center}.province-results{grid-column:2;grid-row:3/5;margin-top:8px}.results-toggle{grid-column:2;justify-self:start}.province-other{grid-column:1;grid-row:5}.map-toolbar .motion{margin-left:0}.map-national>span{display:none}.map-national p{max-width:190px}.electoral-features p{min-height:0}}
@media(max-width:600px){.electoral-hero{display:block;padding-top:22px}.electoral-hero h1{font-size:45px;letter-spacing:-2px;margin-top:18px}.electoral-hero .intro{font-size:14px}.electoral-hero .hero-scene{height:290px;margin-top:28px}.electoral-hero .actions{gap:18px}.scene-heading{display:none}.election-note{left:18px;right:18px;bottom:26px}.election-note .note-icon{display:block}.election-note strong{font-size:23px}.election-note strong span{display:inline;font-size:11px}.election-note small{font-size:8px}.electoral-map-section{padding-block:48px}.electoral-map-section .section-head h2{font-size:34px;letter-spacing:-1.7px}.electoral-map-section .section-head>p{font-size:13px}.map-toolbar{gap:11px 18px}.election-switch{width:100%}.election-switch button{flex:1;font-size:12px;padding:11px 13px}.map-mode{gap:16px;font-size:11px}.map-toolbar .motion{font-size:10px;min-height:35px}.map-canvas{padding:19px 12px}.map-heading{display:block;padding:0 5px}.map-heading h3{font-size:17px}.map-date{font-size:10px}.map-legend{font-size:10px;gap:10px 14px;padding:0 5px}.map-help{font-size:9px;padding:0 5px}.province-detail{display:block;padding:23px}.province-title{margin-top:20px}.province-title h3{font-size:28px}.winner-numbers b{font-size:30px}.province-stats{grid-template-columns:1fr 1fr 1fr;margin-block:20px;gap:12px}.province-stats div:first-child{grid-row:auto;padding:0}.province-stats div:first-child strong{font-size:18px}.province-stats strong{font-size:15px}.province-stats span{font-size:9px}.province-results{gap:15px;margin-top:20px}.result-head{font-size:12px}.result-row small{font-size:10px}.results-heading{margin-top:0}.results-heading h4{font-size:12px}.province-other{font-size:10px}.results-toggle{font-size:11px;min-height:40px}.map-national{flex-wrap:wrap;margin:0 4px;padding:22px 18px;gap:20px 28px}.map-national strong{font-size:21px}.map-national p{margin:0;max-width:none;width:100%;font-size:11px;border-top:1px solid #fff2;padding-top:13px}.map-national small{font-size:9px}.map-methodology p{font-size:10px}.map-methodology p:first-child{font-size:11px}.feature-points{font-size:12px}.workflow-section .method{padding-block:55px}}
@media(max-width:360px){.electoral-hero h1{font-size:39px}.election-note strong{font-size:19px}.election-note .note-icon{display:none}.map-canvas{padding:17px 8px}.province-detail{padding:20px 16px}.province-stats{gap:8px}.province-stats strong{font-size:14px}.map-national{gap:18px}.map-national strong{font-size:19px}.election-switch button{font-size:11px;padding-inline:9px}}

/* Official election freshness review and separate autonomous election context. */
.data-freshness{display:flex;align-items:center;gap:16px;padding:18px 21px;margin:0 0 26px;background:#fff9;border:1px solid #d4e2d6;border-radius:7px;color:#365749}.review-mark{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#dbeade;color:#235743;font-size:15px}.data-freshness p{margin:0;max-width:760px;font-size:11px;line-height:1.8}.data-freshness strong{display:block;font-weight:600}.data-freshness>a{margin-left:auto;flex-shrink:0;font-size:11px;text-decoration:underline;text-underline-offset:4px}.recent-elections{margin-top:28px;padding:25px 28px;background:#fff8;border:1px solid #d6e1d6;border-radius:7px}.recent-heading{display:flex;justify-content:space-between;gap:25px;align-items:center}.recent-heading .eyebrow{font-size:9px;margin:0 0 7px}.recent-heading h3{font-size:22px;font-weight:400;letter-spacing:-.5px;margin:0}.recent-heading>p{max-width:370px;font-size:11px;line-height:1.8;color:#61776c;margin:0}.recent-election-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:23px 0 0;border-block:1px solid #dde5dc}.recent-election-list li{padding:17px 15px;border-right:1px solid #dde5dc;min-width:0}.recent-election-list li:first-child{padding-left:0}.recent-election-list li:last-child{border-right:0}.recent-election-list span{display:block;font-size:12px;font-weight:600}.recent-election-list time{display:block;margin-top:7px;font-size:11px;color:#5a7467}.recent-source{font-size:10px;line-height:1.8;color:#657d6e;margin:13px 0 0}.recent-source a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:860px){.data-freshness{flex-wrap:wrap}.data-freshness p{flex:1;min-width:180px}.data-freshness>a{margin-left:44px}.recent-heading{display:block}.recent-heading>p{margin-top:13px;max-width:none}.recent-election-list{grid-template-columns:repeat(2,minmax(0,1fr))}.recent-election-list li:nth-child(2){border-right:0}.recent-election-list li:nth-child(-n+2){border-bottom:1px solid #dde5dc}.recent-election-list li:nth-child(3){padding-left:0}}
@media(max-width:600px){.data-freshness{padding:15px;gap:10px}.data-freshness p{min-width:0;font-size:11px}.data-freshness>a{margin-left:38px}.review-mark{align-self:flex-start;margin-top:3px}.recent-elections{padding:20px 17px}.recent-heading h3{font-size:21px}.recent-election-list li{padding:16px 9px}.recent-election-list span{font-size:11px}.recent-election-list time{font-size:10px}}
