/* El mapa es el escenario del relato; las tarjetas marcan cada cambio de escala. */
.map-main .leaflet-measurements-pane,.map-main .point-canvas{opacity:0;transition:none}
.map-main.measurements-ready .leaflet-measurements-pane,.map-main.measurements-ready .point-canvas{opacity:1;transition:opacity .4s ease-out}
.story-panel{transition:box-shadow .48s ease,border-color .48s ease}
.story-step.is-active .story-panel{box-shadow:0 14px 55px #12345730}
@media(prefers-reduced-motion:reduce){.map-main.measurements-ready .leaflet-measurements-pane,.map-main.measurements-ready .point-canvas,.story-panel{transition:none}}
:root{--blue:#0055a0;--ink:#172b40;--muted:#536579;--paper:#ffffff;--wash:#f1f5f9;--line:#dce5ee;--red:#0055a0;--serif:'DM Sans',Verdana,sans-serif;--display:'Bebas Neue',Impact,sans-serif;--header-height:72px}
body{background:var(--paper)}
.header{background:#0f0e0c;color:var(--paper);border-color:#302b25}
.brand,.nav a{color:#d9d2c7}.brand span,.nav a.active{color:#ed7666}
.progress{background:#d75a48}
.hero{position:relative;min-height:calc(100svh - var(--header-height));display:flex;align-items:center;justify-content:center;text-align:center;background:#0f0e0c;color:var(--paper);padding:64px 24px 108px;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;opacity:.4;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E")}
.hero-content{position:relative;width:min(1050px,100%)}
.hero .eyebrow{color:#aaa196;font-size:.7rem;letter-spacing:.2em;margin:0 0 30px}
.hero h1{font-family:var(--serif);font-size:clamp(1.25rem,2.5vw,1.8rem);font-weight:300;line-height:1.3;letter-spacing:0;margin:0;color:#d7d0c6}
.hero-prelude{display:block;font-style:italic}
.hero h1 #hero-count{display:block;font-family:var(--display);font-size:clamp(5.5rem,20vw,16rem);font-weight:400;font-style:normal;line-height:1;letter-spacing:-.015em;color:#d15140;font-variant-numeric:tabular-nums;margin:10px 0 0}
.hero h1 small{display:block;font:inherit;font-style:italic;max-width:none;margin:0}
.hero-text{max-width:640px;font-size:1rem;line-height:1.8;color:#b8afa3;margin:26px auto 0}
.hero-measure{border:0;max-width:540px;padding:0;margin:32px auto 0}
.hero-meter{height:2px;margin:12px 0;background:#38322c;border-radius:0}
.hero-meter i{width:0;background:#d15140;transition:none}
.hero-measure-label{display:flex;justify-content:space-between;gap:10px;font-size:.7rem;letter-spacing:.06em;color:#afa599}
.hero-measure-label strong{font-size:inherit;color:#e5ddd1}
.hero-note{font-size:.7rem;letter-spacing:.035em;color:#91877b;margin-top:12px}
.hero-link{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);margin:0;border:0;color:#b5aa9c;font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;white-space:nowrap}
.hero-link::after{content:'↓';display:block;font-size:1.5rem;line-height:1.4}
.intro{padding:100px 0 24px;gap:80px}.intro h2{font-weight:400}.intro p{font-size:1.2rem}.intro strong{color:var(--ink)}
.section-title{font-weight:400}.section-pad{padding-block:100px}
.simulation{background:#f1f6fb;border-color:#d3dfeb;border-radius:2px}.tab,.plain-btn{border-radius:2px}
.walk-segment.narrow{background:#bfd8ee;border-color:#0055a0}.sim-status{color:#0055a0}
.narrative-bridge{padding:92px 24px 100px;background:#191713;color:var(--paper);text-align:center}
.narrative-bridge .eyebrow{color:#baab97;font-size:.7rem;letter-spacing:.18em;margin:0 0 28px}
.narrative-bridge h2{font-family:var(--serif);font-size:clamp(2.4rem,5.5vw,5rem);font-weight:300;letter-spacing:-.04em;line-height:1.12;margin:0 auto 28px;max-width:1000px}
.narrative-bridge h2 em{color:#e46d5c}.narrative-bridge p:last-child{max-width:650px;margin:auto;color:#bcb2a5;font-size:1.1rem;line-height:1.85}
.territory{padding:0;border:0}.territory-heading{padding:88px 0 64px;max-width:840px}.territory-heading .lead{max-width:690px}
.map-story{position:relative;isolation:isolate}
.map-stage{position:sticky;top:0;height:100vh;height:100svh;width:100%;z-index:1;margin-bottom:-100vh;margin-bottom:-100svh;background:#edf2f6}
.map-main{position:absolute;inset:0;width:100%;height:100%;min-height:0;background:#edf2f6}
.map-stage::after{content:'';position:absolute;inset:0;z-index:420;pointer-events:none;background:linear-gradient(90deg,rgba(234,241,248,.28),transparent 50%)}
.map-location{position:absolute;z-index:500;top:calc(var(--header-height) + 24px);right:82px;max-width:calc(100% - 130px);text-align:right;pointer-events:none;text-shadow:0 1px 0 white,0 0 12px white}
.map-location span{display:block;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:#655447}.map-location strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3vw,2.75rem);line-height:1.3}.map-location small{font-size:.78rem}
.map-stage .leaflet-top{top:calc(var(--header-height) + 24px)}.map-stage .leaflet-control-zoom a{color:#a33729!important}
.map-stage .leaflet-control-attribution{background:rgba(255,255,255,.9);font-size:10px!important}
.map-legend{position:absolute;right:24px;bottom:54px;z-index:500;max-width:min(410px,calc(100% - 48px));background:rgba(255,255,255,.96);border:1px solid #d5e0eb;border-radius:2px;box-shadow:0 3px 16px #102e4b14;padding:12px 16px;font-size:.75rem;flex-wrap:wrap}
.ramp i{background:linear-gradient(90deg,#e8f1f9,#0055a0);border-color:#0055a040}.dot{background:#0055a0}.dot.black{background:#15283e}
.map-status{position:absolute;z-index:500;left:50%;bottom:4px;transform:translateX(-50%);width:max-content;max-width:70%;min-height:0;padding:4px 12px;border:0;background:rgba(255,255,255,.95);font-size:.7rem;border-radius:2px;text-align:center}
.story-copy{position:relative;z-index:600;pointer-events:none;padding:20vh 0 45vh}
.story-step{min-height:105vh;min-height:105svh;display:flex;align-items:center;padding:0 0 0 max(28px,5vw);margin:0;border:0;opacity:1;width:100%;scroll-margin-top:0;pointer-events:none}
.story-panel{pointer-events:auto;width:390px;max-width:calc(100vw - 48px);padding:32px;background:rgba(255,255,255,.97);border-top:3px solid #0055a0;box-shadow:0 10px 50px #12345720}
.story-step .eyebrow{font-size:.65rem;letter-spacing:.16em;margin-bottom:20px}.story-step h3{font-size:2.1rem;line-height:1.1;margin:0 0 20px}.story-step p{font-size:.98rem;line-height:1.75;margin-bottom:16px}.story-step p:last-child{margin-bottom:0}
.story-stat{font-family:var(--display);font-size:4.7rem;line-height:1;color:#0055a0;margin:18px 0 4px;font-weight:400}.story-stat-label{font-size:.73rem;line-height:1.5;margin-bottom:20px;color:var(--muted)}
.story-panel .next-place{border-top:1px solid var(--line);padding-top:14px;margin-top:22px;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:#526b80}
.story-step.is-active .story-panel{border-top-color:#0055a0}
.map-chapters{position:absolute;right:26px;top:50%;transform:translateY(-50%);z-index:700;display:flex;flex-direction:column;gap:7px}
.map-chapters a{display:grid;place-items:center;width:32px;height:32px;border:1px solid #cbd9e6;border-radius:50%;background:#fffffff5;color:#4b657e;font-size:.65rem;text-decoration:none;box-shadow:0 2px 8px #102e4b16}
.map-chapters a[aria-current=step]{background:#0055a0;color:white;border-color:#0055a0}
.map-explore{position:absolute;z-index:710;top:calc(var(--header-height) + 100px);right:24px;width:min(340px,calc(100% - 48px));max-height:calc(100svh - var(--header-height) - 210px);overflow:auto;background:#ffffff;box-shadow:0 8px 40px #12345720;border:1px solid var(--line)}
.map-explore summary{cursor:pointer;padding:12px 18px;color:#0055a0;font-size:.8rem;min-height:44px}.map-explore[open] summary{border-bottom:1px solid var(--line)}
.map-tools{padding:12px 16px;flex-wrap:wrap}.map-tools select{max-width:100%;background:#ffffff}.kpi{padding:12px 10px}.kpi strong{font-size:1.1rem}.kpi span{font-size:.65rem}.chart-wrap{padding:12px}.chart-row{font-size:.75rem;grid-template-columns:minmax(100px,1fr) 1fr 45px;background:transparent}.chart-head{font-size:.75rem}.district-chart{max-height:220px}
.map-explore-note{font-size:.74rem;color:var(--muted);padding:0 16px}.map-explore .plain-btn{margin:0 16px 16px;min-height:40px;font-size:.75rem}
.ending h2{font-size:clamp(2.6rem,4.8vw,4.8rem)}.ending h2 em{font-style:italic;color:var(--red)}
.closing-line{font-family:var(--serif);font-size:clamp(1.5rem,3.4vw,2.7rem);line-height:1.4;text-align:center;max-width:900px;margin:85px auto 0;padding-top:50px;border-top:1px solid var(--line)}
.leaflet-tooltip.district-label{background:#faf7f0ed;border:1px solid #bdcfdf;color:#0055a0;font-weight:700;box-shadow:none;padding:5px 9px}.district-label::before{display:none}
@media(max-width:1000px){.story-panel{width:340px;padding:26px}.story-step{padding-left:24px}.story-step h3{font-size:1.9rem}.intro{gap:40px}}
@media(max-width:760px){
  :root{--header-height:62px}.hero{padding:48px 18px 100px}.hero h1 #hero-count{font-size:clamp(5.5rem,23vw,10rem)}.hero h1 small{font-size:1.15rem}.hero .eyebrow{font-size:.6rem}.hero-text{font-size:.92rem;max-width:440px}.hero-measure{max-width:450px}.hero-measure-label{font-size:.62rem}.hero-note{font-size:.63rem}
  .intro{padding-top:60px;gap:26px}.intro p{font-size:1.08rem}.section-pad{padding-block:64px}.narrative-bridge{padding:72px 22px}.narrative-bridge p:last-child{font-size:1rem}.territory-heading{padding:60px 0 42px}
  .story-copy{display:block;padding-top:34svh;padding-bottom:38svh}.story-step{width:100%;min-height:115svh;padding:0 18px;align-items:flex-end;padding-bottom:12svh;scroll-margin-top:0}.story-panel{width:100%;max-width:430px;padding:24px;background:#fffffff7}.story-step h3{font-size:1.9rem}.story-step p{font-size:.94rem}.story-stat{font-size:3.7rem}.story-stat-label{margin-bottom:14px}.story-panel .next-place{margin-top:16px}.story-step .eyebrow{margin-bottom:16px}
  .map-location{top:calc(var(--header-height) + 16px);right:64px;max-width:calc(100% - 100px)}.map-location strong{font-size:1.65rem}.map-location small{font-size:.7rem}.map-chapters{right:10px;top:39%;gap:3px}.map-chapters a{width:26px;height:26px;font-size:.58rem}
  .map-legend{right:12px;bottom:43px;max-width:calc(100% - 24px);padding:7px 10px;gap:7px;font-size:.65rem}.ramp i{width:55px}.map-status{bottom:19px;max-width:calc(100% - 24px);font-size:.6rem;padding:2px 7px}.map-stage .leaflet-control-scale{display:none}
  .map-explore{right:12px;top:calc(var(--header-height) + 82px);width:min(330px,calc(100% - 24px));max-height:calc(100svh - var(--header-height) - 135px)}.map-explore summary{padding:10px 14px}.map-explore[open]{z-index:750}.closing-line{margin-top:50px;padding-top:32px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-meter i{transition:none}}

/* Ajustes tras la revisión en navegador: cartografía y exploración en móvil. */
.hero-note a{color:#d88575}
.map-main .leaflet-tile-pane{filter:grayscale(.92) contrast(.9) brightness(1.07)}
.map-explore{top:calc(var(--header-height) + 126px);max-height:calc(100svh - var(--header-height) - 236px)}
@media(max-width:760px){
  .map-location small{display:none}
  .map-chapters{top:204px;transform:none;flex-direction:row;right:12px;gap:4px}
  .map-chapters a{width:28px;height:28px}
  .map-explore{top:calc(var(--header-height) + 78px);max-height:calc(100svh - var(--header-height) - 135px)}
  .map-story.is-exploring .story-copy{visibility:hidden}
  .map-main{touch-action:pan-y}.is-exploring .map-main{touch-action:none}
  .story-panel{padding:22px}.story-step h3{font-size:1.75rem}
  .story-step p{font-size:.89rem;line-height:1.65}
  .story-panel .next-place{font-size:.61rem}
  .map-status{max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
