:root{
  --fog:#d6dde0;
  --fog-deep:#c3cfd3;
  --paper:#eef1ef;
  --paper-soft:#e7eceb;
  --ink:#172126;
  --ink-2:#253239;
  --graphite:#46545a;
  --muted:#6d7a7f;
  --hair:rgba(23,33,38,.20);
  --hair-soft:rgba(23,33,38,.10);
  --signal:#d7ff42;
  --signal-ink:#263000;
  --main:#155d74;
  --second:#c43f67;
  --third:#647f69;
  --fourth:#80688f;
  --white:#f8faf8;
  --sans:"Segoe UI Variable Text","Segoe UI",Helvetica,Arial,sans-serif;
  --display:"Arial Narrow","Aptos Narrow","Segoe UI Variable Display","Segoe UI",Arial,sans-serif;
  --serif:"Iowan Old Style","Baskerville","Times New Roman",serif;
  --mcarva-header-height:84px;
  --nav:46px;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--mcarva-header-height) + var(--nav) + 24px)}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  padding-top:var(--mcarva-header-height);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(90deg,transparent 0,transparent calc(100% - 1px),rgba(23,33,38,.028) calc(100% - 1px)) 0 0/8.333vw 100%,
    linear-gradient(180deg,rgba(255,255,255,.14),transparent 34vh);
}
a{color:inherit}
button{border-radius:0}
::selection{background:var(--signal);color:var(--ink)}

.progress{position:fixed;z-index:130;left:0;right:0;top:var(--mcarva-header-height);height:2px;background:rgba(23,33,38,.08)}
.progress span{display:block;height:100%;width:0;background:var(--signal);box-shadow:0 0 0 1px rgba(23,33,38,.12)}
.chapter-nav{
  position:sticky;
  top:var(--mcarva-header-height);
  z-index:105;
  height:var(--nav);
  display:flex;
  align-items:center;
  gap:0;
  padding:0 clamp(20px,4.5vw,72px);
  overflow:auto;
  white-space:nowrap;
  scrollbar-width:none;
  background:rgba(238,241,239,.90);
  border-bottom:1px solid var(--hair-soft);
  backdrop-filter:blur(14px) saturate(120%);
}
.chapter-nav::-webkit-scrollbar{display:none}
.chapter-nav a{
  position:relative;
  text-decoration:none;
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  padding:16px 18px 15px 0;
  margin-right:18px;
  transition:color .25s ease;
}
.chapter-nav a::after{content:"";position:absolute;left:0;right:18px;bottom:-1px;height:2px;background:transparent}
.chapter-nav a:hover,.chapter-nav a.active{color:var(--ink)}
.chapter-nav a.active::after{background:var(--signal)}

.wrap{width:min(1220px,calc(100% - 44px));margin:0 auto}
.hero{
  min-height:calc(100svh - var(--mcarva-header-height) - var(--nav));
  padding:clamp(72px,8vw,118px) 0 66px;
  position:relative;
  display:grid;
  align-content:center;
}
.hero::before{
  content:"MCY / 15—26";
  position:absolute;
  right:0;
  top:46px;
  font-family:var(--display);
  font-size:10px;
  line-height:1;
  letter-spacing:.19em;
  font-weight:700;
  color:var(--muted);
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}
.eyebrow,.question{
  margin:0;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--main);
  font-weight:750;
}
.hero .eyebrow{display:flex;align-items:center;gap:12px}
.hero .eyebrow::before{content:"";width:24px;height:8px;background:var(--signal);border:1px solid rgba(23,33,38,.12)}
.hero h1{
  max-width:1180px;
  margin:20px 0 40px;
  font-family:var(--display);
  font-weight:800;
  font-stretch:condensed;
  font-size:clamp(76px,11.4vw,172px);
  line-height:.75;
  letter-spacing:-.072em;
  text-transform:uppercase;
}
.hero h1 span{
  display:inline-block;
  color:transparent;
  -webkit-text-stroke:1.35px var(--ink);
  font-size:.55em;
  line-height:.94;
  letter-spacing:-.04em;
  transform:translateX(.015em);
}
.standfirst{
  font-family:var(--serif);
  font-size:clamp(25px,3vw,40px);
  line-height:1.12;
  letter-spacing:-.018em;
  max-width:1060px;
  margin:0;
  color:var(--ink-2);
}
.hero-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  margin-top:70px;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.hero-grid article{grid-column:span 3;position:relative;padding:24px 24px 26px 0;min-height:136px;border-right:1px solid var(--hair)}
.hero-grid article:not(:first-child){padding-left:24px}
.hero-grid article:last-child{border-right:0}
.hero-grid article::before{content:"";position:absolute;top:-1px;left:0;width:36px;height:2px;background:var(--main)}
.hero-grid article:nth-child(2)::before{background:var(--signal)}
.hero-grid article:nth-child(3)::before{background:var(--second)}
.hero-grid article:nth-child(4)::before{background:var(--graphite)}
.hero-grid strong{display:block;font-family:var(--display);font-size:clamp(30px,3vw,45px);font-weight:700;letter-spacing:-.04em;line-height:.95}
.hero-grid span{display:block;margin-top:13px;color:var(--graphite);font-size:12px;line-height:1.35;max-width:220px}
.hero-note{max-width:760px;color:var(--muted);font-size:11px;line-height:1.5;margin:18px 0 0;letter-spacing:.01em}

.section{position:relative;padding:clamp(92px,9vw,140px) 0;border-top:1px solid var(--hair)}
.section.alt{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  padding-left:max(22px,calc((100vw - 1220px)/2));
  padding-right:max(22px,calc((100vw - 1220px)/2));
  background:var(--fog);
  border-top:0;
}
.section.alt::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 32%,rgba(23,33,38,.025))}
.section-no{
  position:absolute;
  right:0;
  top:clamp(76px,7vw,106px);
  left:auto;
  font-family:var(--display);
  font-size:clamp(70px,8vw,112px);
  font-weight:800;
  letter-spacing:-.07em;
  line-height:.8;
  color:rgba(23,33,38,.07);
  pointer-events:none;
}
.alt .section-no{right:max(22px,calc((100vw - 1220px)/2));left:auto;color:rgba(23,33,38,.09)}
.section-head{position:relative;z-index:1;max-width:1010px}
.section-head::before{content:"";display:block;width:40px;height:6px;background:var(--signal);margin-bottom:20px}
.section-head h2{
  font-family:var(--display);
  font-size:clamp(46px,6.2vw,84px);
  line-height:.94;
  letter-spacing:-.055em;
  font-weight:760;
  margin:13px 0 28px;
  max-width:980px;
}
.section-head p:last-child{font-size:17px;line-height:1.58;color:var(--graphite);max-width:800px;margin-bottom:0}
.alt .section-head p:last-child{color:#34454c}

.figure-card{
  position:relative;
  z-index:1;
  margin-top:62px;
  background:transparent;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
  padding:18px 0 16px;
}
.figure-card::before{content:"";position:absolute;top:-1px;left:0;width:76px;height:2px;background:var(--signal)}
.figure-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:8px;min-height:50px}
.figure-title span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.17em;color:var(--muted);font-weight:700}
.figure-title strong{display:block;font-family:var(--display);font-size:19px;letter-spacing:-.015em;margin-top:3px}
.legend{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding-top:3px}
.dot{display:inline-block;width:7px;height:7px;border-radius:0;margin:0 5px 0 12px}
.dot.main{background:var(--main)}.dot.post{background:var(--second)}
.chart{min-height:430px;width:100%;overflow:hidden}
.chart.tall{min-height:500px}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.axis-line{stroke:rgba(23,33,38,.18);stroke-width:1}
.grid-line{stroke:rgba(23,33,38,.11);stroke-width:1;stroke-dasharray:2 7}
.axis-text{font:600 10px var(--sans);fill:#647177;letter-spacing:.02em}
.chart-label{font:600 11px var(--sans);fill:#34434a}
.chart-value{font:750 11px var(--sans);fill:#172126;letter-spacing:-.01em}
.line-main{fill:none;stroke:var(--main);stroke-width:4;stroke-linecap:square;stroke-linejoin:round}
.line-second{fill:none;stroke:var(--second);stroke-width:2.5;stroke-linecap:square;stroke-dasharray:10 6}
.line-third{fill:none;stroke:var(--third);stroke-width:2.5;stroke-linecap:square;stroke-dasharray:2 6}
.line-fourth{fill:none;stroke:var(--fourth);stroke-width:2.5;stroke-linecap:square;stroke-dasharray:11 4 2 4}
.point-main{fill:var(--signal);stroke:var(--main);stroke-width:1.7}
.point-second{fill:var(--paper);stroke:var(--second);stroke-width:2}
.point-third{fill:var(--paper);stroke:var(--third);stroke-width:2}
.point-fourth{fill:var(--paper);stroke:var(--fourth);stroke-width:2}
.alt .point-second,.alt .point-third,.alt .point-fourth{fill:var(--fog)}
.figure-note{font-size:10.5px;line-height:1.5;color:var(--muted);margin:13px 0 0;max-width:900px}
.chart-legend{display:flex;align-items:center;justify-content:flex-start;gap:26px;flex-wrap:wrap;padding:12px 0 2px;border-top:1px solid var(--hair-soft);color:var(--graphite);font-size:10.5px;letter-spacing:.02em}
.chart-legend span{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.legend-sample{width:36px;height:8px;overflow:visible;flex:0 0 auto}.legend-sample line{vector-effect:non-scaling-stroke}

/* Interacción editorial de gráficas: hover fluido, clic para fijar, arrastre táctil. */
.chart{position:relative}
.chart-interactive{touch-action:pan-y}
.chart-hit-area{pointer-events:all;cursor:crosshair}
.hover-guide{vector-effect:non-scaling-stroke;pointer-events:none}
.hover-guide-vertical{stroke:rgba(23,33,38,.38);stroke-width:1;stroke-dasharray:4 6}
.hover-guide-horizontal{stroke-width:1;opacity:.34;stroke-dasharray:2 5}
.hover-ring{fill:var(--paper);stroke-width:2.4;vector-effect:non-scaling-stroke;pointer-events:none}
.alt .hover-ring{fill:var(--fog)}
.scatter-ring{fill:var(--signal);stroke-width:2.2}
.hover-bar-outline{fill:none;stroke:var(--signal);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.chart-tooltip{position:absolute;z-index:35;min-width:205px;max-width:290px;background:var(--ink);color:var(--white);padding:12px 13px 11px;border-left:4px solid var(--signal);font-size:10.5px;line-height:1.35;box-shadow:0 10px 25px rgba(23,33,38,.12);pointer-events:none}
.chart-tooltip[hidden]{display:none!important}
.chart-tip-year{font-family:var(--display);font-size:20px;font-weight:780;letter-spacing:-.03em;line-height:1;margin:0 0 10px}
.chart-tip-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 0;border-top:1px solid rgba(255,255,255,.10)}
.chart-tip-row:first-of-type{border-top:0}
.chart-tip-row span{color:rgba(248,250,248,.74)}
.chart-tip-row strong{font-size:11.5px;white-space:nowrap}
.chart-tip-row em{grid-column:2 / 4;font-style:normal;font-size:9px;color:rgba(248,250,248,.56);margin-top:-3px}
.chart-tip-swatch{display:block;width:8px;height:8px;border-radius:50%;background:var(--main)}
.chart-tip-swatch.main{background:var(--main)}.chart-tip-swatch.second{background:var(--second)}.chart-tip-swatch.third{background:var(--third)}.chart-tip-swatch.fourth{background:var(--fourth)}.chart-tip-swatch.signal{background:var(--signal)}
.chart-tip-foot{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.14);font-size:9.5px;color:rgba(248,250,248,.72)}
.chart-tip-foot strong{color:var(--signal)}.chart-tip-foot.muted{color:rgba(248,250,248,.56)}
.chart-tooltip.is-list{pointer-events:auto;min-width:250px}
.chart-tip-cluster{display:grid;gap:3px}
.chart-tip-cluster button{appearance:none;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;text-align:left;border:0;border-top:1px solid rgba(255,255,255,.10);background:transparent;color:var(--white);padding:7px 0;cursor:pointer;font:inherit}
.chart-tip-cluster button:first-child{border-top:0}.chart-tip-cluster button:hover,.chart-tip-cluster button.active{color:var(--signal)}
.chart-tip-cluster button span{font-weight:700}.chart-tip-cluster button strong{font-size:10.5px}.chart-tip-cluster button em{grid-column:1 / 3;font-style:normal;color:rgba(248,250,248,.58);font-size:9px}

.pullquote{
  position:relative;
  font-family:var(--serif);
  font-size:clamp(31px,4.1vw,54px);
  line-height:1.06;
  letter-spacing:-.025em;
  max-width:1040px;
  margin:80px 0 0;
  padding:24px 0 0 0;
  border-top:1px solid var(--hair);
}
.pullquote::before{content:"";position:absolute;left:0;top:-2px;width:130px;height:4px;background:var(--signal)}
.split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.62fr);gap:56px;align-items:start}
.finding-stack{margin-top:62px;border-top:1px solid var(--hair)}
.finding-stack article{position:relative;padding:22px 0 24px;border-bottom:1px solid var(--hair)}
.finding-stack span{font-size:9px;letter-spacing:.16em;color:var(--muted);font-weight:750;text-transform:uppercase}
.finding-stack strong{display:block;font-family:var(--display);font-size:58px;font-weight:750;letter-spacing:-.055em;line-height:.87;margin:12px 0 11px}
.finding-stack p{margin:0;color:var(--graphite);font-size:12.5px;line-height:1.5}
.finding-stack .accent{background:var(--signal);margin:0 -18px;padding:22px 18px 24px;border-bottom:0}
.finding-stack .accent span,.finding-stack .accent p{color:var(--signal-ink)}
.finding-stack .accent strong{color:var(--ink)}
.method-box{
  position:relative;
  margin:46px 0 0;
  max-width:980px;
  background:transparent;
  padding:17px 0 17px 46px;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
  color:var(--graphite);
  font-size:13px;
}
.method-box::before{content:"!";position:absolute;left:0;top:14px;width:28px;height:28px;display:grid;place-items:center;background:var(--signal);color:var(--ink);font-weight:850;font-family:var(--display)}
.method-box strong{color:var(--ink)}

.timeline-markers{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair);margin-top:30px}
.timeline-markers>div{position:relative;background:transparent;padding:21px 24px 18px 0;border-right:1px solid var(--hair)}
.timeline-markers>div:not(:first-child){padding-left:24px}.timeline-markers>div:last-child{border-right:0}
.timeline-markers>div::before{content:"";position:absolute;top:-2px;left:0;width:28px;height:3px;background:var(--second)}
.timeline-markers b{font-family:var(--display);font-size:30px;font-weight:750;letter-spacing:-.04em;display:block}
.timeline-markers span{font-size:12px;line-height:1.45;color:var(--graphite)}

.territory-summary{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:52px 0 34px;max-width:1040px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.territory-summary article{background:transparent;padding:23px 28px 25px 0;border-right:1px solid var(--hair)}
.territory-summary article+article{padding-left:28px;border-right:0}
.territory-summary span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:700}
.territory-summary strong{display:block;font-family:var(--display);font-size:34px;line-height:.96;letter-spacing:-.03em;font-weight:750;margin:10px 0 12px;max-width:460px}
.territory-summary p{margin:0;font-size:12.5px;color:var(--graphite)}
.map-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.6fr);gap:54px;align-items:start}
.map-card{position:relative}
.period-selector-wrap{margin-bottom:18px}
.period-selector-label{display:block;margin-bottom:8px;font:750 9px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.period-toolbar{display:flex;gap:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:3px;scrollbar-width:thin;scrollbar-color:var(--hair) transparent;-webkit-overflow-scrolling:touch}
.period-toolbar::-webkit-scrollbar{height:4px}.period-toolbar::-webkit-scrollbar-thumb{background:var(--hair)}
.ranking-toolbar{display:flex;gap:0;flex-wrap:wrap}
.period-toggle,.map-toggle,.rank-toggle{border:1px solid var(--hair);background:transparent;color:var(--graphite);padding:9px 12px;font:700 9.5px var(--sans);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap;flex:0 0 auto}
.period-toggle+button,.map-toggle+button,.rank-toggle+button{margin-left:-1px}
.period-toggle:hover,.map-toggle:hover,.rank-toggle:hover{background:rgba(255,255,255,.22);color:var(--ink)}
.period-toggle.active,.map-toggle.active,.rank-toggle.active{background:var(--ink);color:var(--signal);border-color:var(--ink);position:relative;z-index:1}
.map{min-height:680px;display:flex;align-items:center;justify-content:center}
.map svg{width:100%;height:auto;max-height:720px;overflow:visible}
.dept{stroke:rgba(238,241,239,.80);stroke-width:.75;vector-effect:non-scaling-stroke;transition:fill .18s ease,opacity .18s,stroke-width .18s,filter .18s}
.dept:hover{stroke:var(--ink);stroke-width:1.65;opacity:.96;filter:brightness(1.04)}
.tooltip{position:absolute;pointer-events:none;background:var(--ink);color:var(--white);padding:10px 12px;font-size:11px;line-height:1.4;box-shadow:none;z-index:20;max-width:240px;border-left:4px solid var(--signal)}
.ranking-card{margin-top:62px;border-top:1px solid var(--hair);padding-top:18px}
.ranking-card h3{font-family:var(--display);font-size:34px;font-weight:750;letter-spacing:-.035em;margin:8px 0 19px;line-height:.98}
.question.mini{font-size:9px;margin:0}
.ranking-toolbar{margin-bottom:17px}
.rank-row{display:grid;grid-template-columns:26px minmax(0,1fr) 76px;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--hair-soft)}
.rank-num{font-size:9px;color:var(--muted);font-weight:700}
.rank-name{font-size:11.5px;font-weight:650;position:relative;padding-bottom:6px}
.rank-name::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:var(--w);background:var(--main)}
.rank-value{text-align:right;font-weight:750;font-size:11.5px}

/* V64 · estabilidad editorial en cambios de periodo */
@media(min-width:761px){
  .territory-summary span{min-height:28px}
  .territory-summary strong{min-height:66px}
  .territory-summary p{min-height:58px}
  .ranking-card h3{min-height:66px}
  .map-card>#map-note{min-height:48px}
  .ranking-card>#ranking-note{min-height:64px}
}
.quadrant-card{margin-top:42px}
.point-label{font:650 9.5px var(--sans);fill:#34434a;letter-spacing:.01em}
.quadrant-dot{fill:var(--second);opacity:.78;stroke:var(--fog);stroke-width:1}
.quadrant-dot.major{fill:var(--signal);stroke:var(--main);stroke-width:1.8}
.median-line{stroke:rgba(23,33,38,.38);stroke-dasharray:6 7;stroke-width:1.1}

.cycle-reading{margin:34px 0 0;max-width:1110px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.cycle-reading-head{display:grid;grid-template-columns:190px 1fr;gap:22px;padding:17px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.cycle-reading-head span{font-size:9px;text-transform:uppercase;letter-spacing:.17em;color:var(--main);font-weight:750}
.cycle-reading-head strong{font-family:var(--display);font-size:26px;font-weight:730;letter-spacing:-.02em;line-height:1.05}
.cycle-reading-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:transparent}
.cycle-reading-grid article{background:transparent;padding:20px 18px 23px 0;min-height:150px;position:relative;border-right:1px solid var(--hair)}
.cycle-reading-grid article+article{padding-left:18px}.cycle-reading-grid article:last-child{border-right:0}
.cycle-reading-grid b{display:block;font-size:12px;margin:11px 0 8px}.cycle-reading-grid p{font-size:11.5px;line-height:1.48;color:var(--graphite);margin:0}.cycle-reading-grid p strong{display:inline;font-family:var(--sans);font-size:11.5px;font-weight:750}
.cycle-code{display:inline-flex;width:30px;height:22px;align-items:center;justify-content:center;font-size:9px;font-weight:800;background:var(--main);color:white}
.cycle-code.second{background:var(--second)}.cycle-code.third{background:var(--third)}.cycle-code.fourth{background:var(--fourth)}
.cycle-start{background:rgba(23,33,38,.025)!important}.cycle-start em{display:inline-block;margin-top:11px;font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--second);font-weight:800}

.case-sections{margin-top:74px}
.case-story{position:relative;padding:80px 0;border-top:1px solid var(--hair)}
.case-story:first-child{padding-top:26px}
.case-story::after{content:attr(data-code);position:absolute;right:0;top:72px;font-family:var(--display);font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--muted)}
.case-head{display:grid;grid-template-columns:130px minmax(0,1fr);gap:34px;max-width:1120px;align-items:start}
.case-marker{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.case-index{font-family:var(--display);font-size:32px;line-height:1;color:var(--ink);font-weight:760;letter-spacing:-.04em}
.case-index::after{content:"";display:block;width:30px;height:5px;background:var(--signal);margin-top:9px}
.case-silhouette{width:116px;height:108px;display:flex;align-items:center;justify-content:center}
.case-silhouette svg{display:block;width:100%;height:100%;overflow:visible}.case-outline{fill:none;stroke:var(--main);stroke-width:1.45;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.case-head h3{font-family:var(--display);font-weight:740;font-size:clamp(38px,4.7vw,62px);line-height:.98;letter-spacing:-.045em;margin:8px 0 18px;max-width:930px}.case-head p:last-child{font-size:15px;line-height:1.62;color:var(--graphite);max-width:880px}
.case-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:38px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:transparent}
.case-kpis article{background:transparent;padding:19px 22px 20px 0;border-right:1px solid var(--hair)}.case-kpis article+article{padding-left:22px}.case-kpis article:last-child{border-right:0}
.case-kpis span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:700}.case-kpis strong{display:block;font-family:var(--display);font-size:42px;font-weight:760;letter-spacing:-.045em;line-height:.9;margin:10px 0 8px}.case-kpis p{font-size:11px;color:var(--graphite);margin:0}
.case-visuals{display:grid;grid-template-columns:1fr 1fr;gap:42px}
.case-chart-card{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:16px 0 10px;position:relative}.case-chart-card::before{content:"";position:absolute;top:-2px;left:0;width:54px;height:3px;background:var(--main)}.case-chart-card:nth-child(2)::before{background:var(--second)}
.case-chart-title{font-size:10.5px;font-weight:750;color:var(--graphite);letter-spacing:.03em;margin-bottom:5px}.chart.small{min-height:310px}.case-chart-card .chart-legend{gap:14px 21px;padding-top:9px;font-size:9.5px}.case-chart-note{margin:9px 0 0;padding:10px 0 0 16px;background:transparent;border-left:3px solid var(--third);font-size:10px;line-height:1.48;color:var(--graphite)}.case-chart-note strong{color:var(--ink)}
.case-bottom{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.65fr);gap:42px;margin-top:32px;align-items:start}.case-table{border-top:1px solid var(--hair)}
.case-row{display:grid;grid-template-columns:.55fr 1fr 1fr 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--hair-soft);font-size:11px}.case-row.head{font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.075em;font-size:8.5px}.case-caution{font-size:11px;line-height:1.56;color:var(--muted);margin:22px 0 0;border-left:3px solid var(--signal);padding-left:16px}

.after-grid{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:17px;align-items:stretch;margin-top:60px}
.after-card{position:relative;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:24px 18px 26px 0;background:transparent}.after-card::before{content:"";position:absolute;left:0;top:-2px;width:40px;height:4px;background:var(--main)}
.after-card span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-weight:750}.after-card strong{display:block;font-family:var(--display);font-size:62px;letter-spacing:-.055em;line-height:.88;margin:12px 0 12px;font-weight:760}.after-card p{margin:0;color:var(--graphite);font-size:11.5px;line-height:1.48}.after-card.post::before{background:var(--signal)}.after-card.partial{opacity:.58}.after-card.partial::before{background:var(--graphite)}.arrow{display:flex;align-items:center;font-size:25px;color:var(--muted);padding:0 3px}

.dark-section{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  background:var(--ink);
  color:var(--white);
  padding-left:max(22px,calc((100vw - 1220px)/2));
  padding-right:max(22px,calc((100vw - 1220px)/2));
  border-top:0;
}
.dark-section::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--signal)}
.dark-section .section-no{right:max(22px,calc((100vw - 1220px)/2));color:rgba(255,255,255,.06)}
.dark-section .question{color:var(--signal)}
.dark-section .section-head::before{background:var(--second)}
.dark-section .section-head p{color:#bdc7ca}
.conclusion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:58px;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);background:transparent}
.conclusion-grid article{background:transparent;padding:28px 28px 32px 0;border-right:1px solid rgba(255,255,255,.18)}.conclusion-grid article+article{padding-left:28px}.conclusion-grid article:last-child{border-right:0}
.conclusion-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--signal);font-weight:750}.conclusion-grid p{font-family:var(--serif);font-size:21px;line-height:1.28;color:#eef2ef}

.sources{padding:100px 0 94px}.sources h2{font-family:var(--display);font-weight:760;font-size:clamp(45px,5vw,65px);line-height:.95;letter-spacing:-.045em;margin:12px 0 36px}.sources-list{border-top:1px solid var(--hair)}
.source-row{display:grid;grid-template-columns:42px 1fr 2.05fr;gap:20px;padding:17px 0;border-bottom:1px solid var(--hair)}.source-row b{font-size:11.5px}.source-row span,.source-row p{font-size:11px;line-height:1.5;color:var(--graphite);margin:0}.source-row span{font-family:var(--display);font-size:16px;font-weight:750;color:var(--ink)}
.source-final{font-size:10.5px;color:var(--muted);max-width:900px;margin-top:29px}
.footer{display:flex;justify-content:space-between;padding:25px clamp(20px,4.5vw,72px);border-top:1px solid var(--hair);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.footer a{text-decoration:none;color:inherit;border-bottom:1px solid currentColor;padding-bottom:2px}

/* Motion layer: the content is fully readable before these classes are applied. */
.js-motion [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js-motion [data-reveal].is-visible{opacity:1;transform:none}
.js-motion .chart .motion-bar{transform-box:fill-box;transform-origin:center bottom;transform:scaleY(0);transition:transform .85s var(--ease)}
.js-motion .chart.is-visible .motion-bar{transform:scaleY(1)}
.js-motion .chart .motion-dot{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.35);transition:opacity .35s ease,transform .55s var(--ease)}
.js-motion .chart.is-visible .motion-dot{opacity:1;transform:scale(1)}
.js-motion .chart .motion-path{transition:stroke-dashoffset 1.25s var(--ease)}
.js-motion .chart.is-visible .motion-path{stroke-dashoffset:0!important}

@media(max-width:980px){
  .hero-grid article{grid-column:span 6}.hero-grid article:nth-child(2){border-right:0}.hero-grid article:nth-child(3),.hero-grid article:nth-child(4){border-top:1px solid var(--hair)}
  .split,.map-grid,.case-visuals,.case-bottom{grid-template-columns:1fr}.finding-stack,.ranking-card{margin-top:18px}.finding-stack{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--hair)}.finding-stack article{padding-right:20px;border-bottom:0;border-right:1px solid var(--hair)}.finding-stack article+article{padding-left:20px}.finding-stack article:last-child{border-right:0}.finding-stack .accent{margin:0;padding:22px 20px 24px}
  .map{min-height:540px}.territory-summary{max-width:none}.case-visuals{gap:30px}.chapter-nav{padding-left:20px;padding-right:20px}
}
@media(max-width:760px){
  :root{--nav:43px}.wrap{width:min(100% - 30px,1220px)}
  .hero{min-height:auto;padding-top:68px}.hero::before{display:none}.hero h1{font-size:clamp(58px,18vw,92px);line-height:.78;margin-bottom:30px}.hero h1 span{-webkit-text-stroke:1px var(--ink);font-size:.55em}.standfirst{font-size:24px}
  .hero-grid{grid-template-columns:1fr;margin-top:50px}.hero-grid article{grid-column:auto!important;border-right:0!important;border-top:1px solid var(--hair);padding:20px 0!important;min-height:auto}.hero-grid article:first-child{border-top:0}.hero-grid strong{font-size:35px}
  .section,.section.alt,.dark-section{padding-top:82px;padding-bottom:84px}.section-no{position:static;margin:0 0 22px;font-size:50px;color:rgba(23,33,38,.10)}.alt .section-no,.dark-section .section-no{position:static}.section-head::before{margin-bottom:15px}.section-head h2{font-size:clamp(39px,12vw,58px);line-height:.96;margin-top:10px}.section-head p:last-child{font-size:15px}
  .figure-card{margin-top:45px}.figure-title{display:block}.legend{margin-top:10px}.chart{min-height:320px}.chart.tall{min-height:380px}
  .pullquote{font-size:31px;margin-top:60px}.split{gap:20px}.finding-stack{display:block;border-bottom:0}.finding-stack article{border-right:0;border-bottom:1px solid var(--hair);padding-left:0!important}.finding-stack .accent{margin:0 -15px;padding-left:15px!important;padding-right:15px}
  .method-box{padding-left:42px}.timeline-markers{grid-template-columns:1fr}.timeline-markers>div{border-right:0;border-bottom:1px solid var(--hair);padding:18px 0!important}.timeline-markers>div:last-child{border-bottom:0}
  .territory-summary{grid-template-columns:1fr}.territory-summary article{border-right:0;border-bottom:1px solid var(--hair);padding:20px 0!important}.territory-summary article:last-child{border-bottom:0}.territory-summary strong{font-size:30px}
  .map{min-height:420px}.ranking-card{margin-top:4px}.quadrant-card{margin-top:32px}
  .cycle-reading-head{grid-template-columns:1fr;gap:7px}.cycle-reading-grid{grid-template-columns:1fr 1fr}.cycle-reading-grid article{border-right:0;border-bottom:1px solid var(--hair);padding:17px!important}.cycle-reading-grid article:nth-child(odd){border-right:1px solid var(--hair)}.cycle-reading-grid article:nth-last-child(-n+2){border-bottom:0}
  .case-story{padding:62px 0}.case-story::after{top:60px}.case-head{grid-template-columns:84px minmax(0,1fr);gap:19px}.case-index{font-size:25px}.case-silhouette{width:78px;height:75px}.case-head h3{font-size:clamp(34px,9vw,48px)}.case-kpis{grid-template-columns:1fr}.case-kpis article{border-right:0;border-bottom:1px solid var(--hair);padding:17px 0!important}.case-kpis article:last-child{border-bottom:0}.case-kpis strong{font-size:37px}.case-visuals{gap:24px}.chart.small{min-height:280px}
  .after-grid{grid-template-columns:1fr;gap:0}.after-card{padding:22px 0}.arrow{transform:rotate(90deg);justify-content:center;height:36px}.after-card strong{font-size:50px}
  .conclusion-grid{grid-template-columns:1fr}.conclusion-grid article{border-right:0;border-bottom:1px solid rgba(255,255,255,.18);padding:25px 0!important}.conclusion-grid article:last-child{border-bottom:0}.conclusion-grid p{font-size:19px}
  .source-row{grid-template-columns:34px 1fr;gap:12px}.source-row p{grid-column:2}.footer{display:block}.footer span{display:block;margin:4px 0}
}
@media(max-width:460px){
  .chapter-nav a{padding-right:12px;margin-right:12px}.hero h1{font-size:56px}.standfirst{font-size:21px}.section-head h2{font-size:38px}.cycle-reading-grid{grid-template-columns:1fr}.cycle-reading-grid article,.cycle-reading-grid article:nth-child(odd){border-right:0;border-bottom:1px solid var(--hair)}.cycle-reading-grid article:last-child{border-bottom:0}.case-head{grid-template-columns:1fr}.case-story::after{display:none}.case-marker{flex-direction:row;align-items:center}.case-silhouette{width:92px;height:70px}.map{min-height:360px}.rank-row{grid-template-columns:24px minmax(0,1fr) 72px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.js-motion [data-reveal],.js-motion .chart .motion-bar,.js-motion .chart .motion-dot{opacity:1!important;transform:none!important;transition:none!important}.js-motion .chart .motion-path{stroke-dashoffset:0!important;transition:none!important}
}

/* V10 · Fuentes editoriales */
.inline-sources{display:flex;align-items:center;gap:9px 14px;flex-wrap:wrap;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--hair);font-size:10.5px;line-height:1.35;color:var(--graphite)}
.inline-sources>span{font-family:var(--display);font-size:9.5px;font-weight:780;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.inline-sources a{color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(28,31,31,.23);padding-bottom:1px;transition:border-color .18s ease,color .18s ease}
.inline-sources a:hover{color:var(--magenta);border-color:currentColor}
.cases-sources{margin:28px 0 2px}
.source-name{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.source-name a{font-size:10px;color:var(--graphite);text-decoration:none;border-bottom:1px solid rgba(28,31,31,.2)}
.source-name a:hover{color:var(--magenta);border-color:currentColor}
.local-data-box{margin-top:34px;padding:22px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.local-data-box>strong{font-family:var(--display);font-size:15px;font-weight:760}
.local-data-box>p{max-width:820px;margin:8px 0 14px;color:var(--graphite);font-size:12px;line-height:1.55}
.local-data-links{display:flex;gap:9px 14px;flex-wrap:wrap}
.local-data-links a{font-size:10.5px;color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(28,31,31,.24);padding-bottom:1px}
.local-data-links a:hover{color:var(--magenta);border-color:currentColor}
@media(max-width:620px){.inline-sources{align-items:flex-start}.source-name{grid-column:2}.source-row p{grid-column:2}.local-data-links{display:grid;grid-template-columns:1fr}}

/* ---- Atlas municipal Mi Casa Ya · módulo añadido después de Territorio ---- */
.atlas-section{position:relative}
.atlas-shell{margin-top:52px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:0 0 28px}
.atlas-toolbar{display:grid;grid-template-columns:minmax(140px,.72fr) minmax(190px,1.15fr) minmax(190px,1.15fr) minmax(140px,.72fr) auto;column-gap:clamp(18px,2.4vw,38px);row-gap:0;align-items:end;padding:19px 0 7px;border:0}
.atlas-control{display:block;min-width:0;padding:0}
.atlas-control+.atlas-control{padding-left:0}
.atlas-control span{display:block;font:700 9px/1 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.atlas-control select{width:100%;border:0;border-bottom:1px solid rgba(23,33,38,.30);background:transparent;color:var(--ink);font:650 13px/1.2 var(--sans);padding:0 24px 7px 0;outline:none;border-radius:0;transition:border-color .16s ease,opacity .16s ease}.atlas-control select:hover,.atlas-control select:focus{border-bottom-color:var(--ink)}
.atlas-control select:disabled{opacity:.38}
.atlas-map-actions{display:flex;align-items:center;justify-content:flex-end;gap:22px;padding:0 0 8px;white-space:nowrap}
.atlas-map-actions button{border:0;background:transparent;color:var(--ink);font:700 11px/1 var(--sans);letter-spacing:.01em;padding:0;cursor:pointer;transition:opacity .16s ease,color .16s ease}
.atlas-map-actions button:hover{opacity:.55}
.atlas-map-actions button[hidden]{display:none}
.atlas-context{display:grid;grid-template-columns:1.25fr .8fr repeat(4,1fr);border-bottom:1px solid var(--hair)}
.atlas-context>div{padding:16px 18px 18px;border-right:1px solid var(--hair);min-width:0}
.atlas-context>div:first-child{padding-left:0}.atlas-context>div:last-child{border-right:0;padding-right:0}
.atlas-context span{display:block;font:700 9px/1.1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.atlas-context strong{display:block;font:650 20px/1.04 var(--display);letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}
.atlas-map-pair,.atlas-chart-pair{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.atlas-map-pair{margin-top:20px}.atlas-chart-pair{margin-top:24px}
.atlas-panel,.atlas-chart-panel{min-width:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:15px 0 16px}
.atlas-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:8px}.atlas-chart-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:20px;row-gap:0;align-items:start;margin-bottom:8px;min-height:54px}
.atlas-panel-head span,.atlas-chart-head span{font:700 9px/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.atlas-panel-head h3,.atlas-chart-head h3{font:700 22px/1.02 var(--display);letter-spacing:-.025em;margin:5px 0 2px;color:var(--ink)}
.atlas-panel-head p{font-size:11px;color:var(--muted);margin:0}
.atlas-chart-head>span{grid-column:1;grid-row:1}.atlas-chart-head>h3{grid-column:1;grid-row:2;margin-top:7px}.atlas-chart-head>strong{grid-column:2;grid-row:1/3;align-self:start;justify-self:end;text-align:right;min-width:92px}
.atlas-panel-head>strong,.atlas-chart-head>strong{font:700 28px/1 var(--display);letter-spacing:-.025em;color:var(--ink);white-space:nowrap}
.atlas-map-wrap{position:relative;height:560px;overflow:hidden;border-top:1px solid var(--hair-soft);border-bottom:1px solid var(--hair-soft);touch-action:pan-y}
.atlas-map{display:block;width:100%;height:100%;cursor:default;user-select:none}
.atlas-map-shape{stroke:rgba(248,250,248,.82);stroke-width:.45;vector-effect:non-scaling-stroke;transition:opacity .16s ease,filter .16s ease,stroke .16s ease,stroke-width .16s ease}
.atlas-map-shape.atlas-department-shape{stroke:rgba(23,33,38,.56);stroke-width:.82}
.atlas-map-shape.is-hover-dim{opacity:.34}
.atlas-map-shape.is-hover-focus{opacity:1;filter:brightness(.96);stroke:var(--ink);stroke-width:1.25}
.atlas-map-shape.is-selected{stroke:var(--signal);stroke-width:2.1;filter:none}
.atlas-map-shape.is-selected.is-hover-focus{stroke:var(--signal);stroke-width:2.35}
.atlas-map-shape.is-muted{opacity:1;pointer-events:auto}
.atlas-dept-outline{fill:none;stroke:rgba(23,33,38,.56);stroke-width:1.05;vector-effect:non-scaling-stroke;pointer-events:none;transition:opacity .16s ease,stroke .16s ease,stroke-width .16s ease}
.atlas-dept-outline.is-active-department-outline{stroke:rgba(23,33,38,.92);stroke-width:1.45}
.atlas-tooltip{position:absolute;z-index:8;pointer-events:none;min-width:190px;max-width:260px;background:#11191d;color:var(--white);padding:12px 14px;border-top:3px solid var(--signal);box-shadow:0 12px 32px rgba(23,33,38,.18);font-size:11px;line-height:1.4}
.atlas-tooltip strong{display:block;font-size:14px;margin-bottom:3px}.atlas-tooltip span{display:block;color:#bfc9cc;margin:2px 0}.atlas-tooltip b{display:block;color:var(--white);font-size:12px;margin-top:7px}.atlas-tooltip em{display:block;font-style:normal;color:#d7ff42;margin-top:2px}
.atlas-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px;min-height:24px}
.atlas-legend-step{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;white-space:nowrap}.atlas-legend-step i{display:block;width:22px;height:7px}.atlas-legend-nodata{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.atlas-legend-nodata i{width:22px;height:7px;background:rgba(248,250,248,.58);border:1px solid var(--hair-soft)}
.atlas-chart-panel{position:relative}.atlas-chart{position:relative;height:300px;overflow:hidden;touch-action:none;cursor:crosshair}.atlas-chart svg{display:block;width:100%;height:100%}.atlas-chart-grid{stroke:var(--hair-soft);stroke-width:1}.atlas-chart-axis{font:10px var(--sans);fill:var(--muted)}.atlas-chart-line{fill:none;stroke:var(--main);stroke-width:3}.atlas-chart-point{fill:var(--signal);stroke:var(--main);stroke-width:2;transition:r .12s ease,opacity .12s ease,stroke-width .12s ease}.atlas-chart-point.is-active{r:6;stroke:var(--ink);stroke-width:2.2}.atlas-chart-point.is-preview{r:7;stroke:var(--ink);stroke-width:2.4}.atlas-chart-guide{stroke:var(--graphite);stroke-width:1;stroke-dasharray:3 4;opacity:.55}.atlas-chart-tip{position:absolute;z-index:5;pointer-events:none;background:#11191d;color:var(--white);padding:9px 11px;border-top:2px solid var(--signal);font-size:10px;line-height:1.35;min-width:120px;box-shadow:0 8px 24px rgba(23,33,38,.16)}.atlas-chart-tip strong{display:block;font-size:12px}.atlas-chart-tip span{display:block;color:#c5cdd0;margin-top:2px}
.atlas-method-note{margin-top:26px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:16px 0;color:var(--graphite);font-size:13px;line-height:1.55}.atlas-method-note strong{color:var(--ink)}

@media(max-width:1050px){.atlas-toolbar{grid-template-columns:1fr 1fr 1fr 1fr;column-gap:24px;row-gap:16px}.atlas-map-actions{grid-column:1/-1;justify-content:flex-start;padding:0}.atlas-context{grid-template-columns:repeat(3,1fr)}.atlas-context>div:nth-child(3){border-right:0}.atlas-context>div:nth-child(n+4){border-top:1px solid var(--hair)}.atlas-map-wrap{height:500px}}
@media(max-width:980px){.atlas-toolbar{grid-template-columns:1fr 1fr;column-gap:22px;row-gap:17px}.atlas-control:nth-child(even){border-right:0}.atlas-control:nth-child(n+3){border-top:0}.atlas-map-pair,.atlas-chart-pair{grid-template-columns:1fr}.atlas-context{grid-template-columns:1fr 1fr}.atlas-context>div{border-top:1px solid var(--hair)}.atlas-context>div:nth-child(odd){padding-left:0}.atlas-context>div:nth-child(even){border-right:0}.atlas-map-wrap{height:460px}.atlas-panel-head>strong,.atlas-chart-head>strong{font-size:24px}}
@media(max-width:520px){.atlas-toolbar{grid-template-columns:1fr;row-gap:15px}.atlas-control{border:0!important;padding-left:0!important}.atlas-context{grid-template-columns:1fr}.atlas-context>div{border-right:0;padding-left:0}.atlas-map-actions{justify-content:flex-start;padding-left:0}.atlas-map-actions button{flex:0 0 auto}.atlas-map-wrap{height:400px}.atlas-panel-head{display:block}.atlas-chart-head{display:grid}.atlas-panel-head>strong,.atlas-chart-head>strong{margin-top:10px;display:block}.atlas-chart{height:260px}}


/* ============================================================
   LABORATORIO · contrato responsive limpio · V16
   Página responsive; gráficas con geometría protegida; mapas
   de lectura en teléfono y exploración completa desde 761 px.
   ============================================================ */
.atlas-mobile-note{display:none}

@media(max-width:760px){
  /* La navegación 01–07 se conserva como carril táctil sin scrollbar visible. */
  .chapter-nav{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .chapter-nav::-webkit-scrollbar{display:none}

  /* Las gráficas no se comprimen hasta perder legibilidad: el teléfono es un viewport. */
  .chart{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x pan-y}
  .chart::-webkit-scrollbar{display:none}
  .chart svg{width:100%;min-width:760px;height:auto}
  .chart-interactive{touch-action:pan-x pan-y}
  .chart-hit-area{pointer-events:none}

  /* El mapa departamental conserva los cambios de período/variable, pero no exige hover táctil. */
  .map svg .dept{pointer-events:none}
  .map-card .tooltip{display:none!important}

  /* Atlas municipal: lectura cartográfica estable en teléfono. */
  .atlas-mobile-note{display:block;margin:17px 0 4px;padding:11px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font:700 9px/1.5 var(--sans);letter-spacing:.10em;text-transform:uppercase;color:var(--muted)}
  .atlas-map-actions{display:none}
  .atlas-map-wrap{touch-action:pan-y;pointer-events:none}
  .atlas-map{cursor:default}
  .atlas-tooltip{display:none!important}

  /* Las trayectorias del atlas conservan su geometría y se exploran lateralmente. */
  .atlas-chart{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x pan-y;cursor:default}
  .atlas-chart::-webkit-scrollbar{display:none}
  .atlas-chart svg{width:760px;min-width:760px;height:100%}
}

/* Grid containment: scrollable controls must never set the document's min-content width. */
.map-grid>*{min-width:0}
@media(max-width:760px){
  .period-toolbar{scrollbar-width:none}
  .period-toolbar::-webkit-scrollbar{display:none}
}

/* ============================================================
   V67 · MÓVIL COMO LÁMINA · Mi Casa Ya
   Objetivo: conservar intacto escritorio/tableta amplia y llevar
   únicamente <=760 px al criterio validado en Radiografía:
   - mapas y gráficas caben completos en el ancho disponible;
   - ninguna superficie cartográfica/gráfica captura el gesto;
   - pares comparativos permanecen lado a lado y se miniaturizan;
   - texto humano nunca se corta dentro de una palabra.
   ============================================================ */
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  .wrap,.section,.section.alt,.dark-section,.figure-card,.split,.map-grid,.map-card,.ranking-card,.quadrant-card,.case-story,.case-visuals,.case-chart-card,.atlas-shell,.atlas-panel,.atlas-chart-panel{min-width:0;max-width:100%}

  /* Texto editorial: permitir saltos solo entre palabras. */
  .hero h1,.hero h1 span,.standfirst,.hero-note,.section-head h2,.section-head p,
  .figure-title,.figure-title h3,.figure-note,.pullquote,.finding-stack,.method-box,
  .territory-summary,.territory-summary strong,.ranking-card,.rank-row,
  .cycle-reading,.case-head,.case-head h3,.case-head p,.case-chart-title,.case-chart-note,
  .after-card,.conclusion-grid,.source-row,.local-data-box,
  .atlas-context strong,.atlas-panel-head,.atlas-panel-head h3,.atlas-panel-head p,
  .atlas-chart-head,.atlas-chart-head h3,.atlas-method-note,.atlas-mobile-note{
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }

  /* Gráficas generales: dejan de ser viewport horizontal y se leen como lámina completa. */
  .chart{
    min-height:0!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    touch-action:auto!important;
    scrollbar-width:auto!important;
  }
  .chart svg{
    display:block;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    pointer-events:none!important;
    touch-action:auto!important;
  }
  .chart svg *{pointer-events:none!important}
  .chart-interactive,.chart-hit-area{pointer-events:none!important;touch-action:auto!important;cursor:default!important}
  .chart-tooltip{display:none!important}
  .chart-legend{gap:5px 10px;padding-top:7px;font-size:7px;line-height:1.2}
  .chart-legend span{gap:4px;white-space:normal}
  .legend-sample{width:24px;height:6px}

  /* Mapa departamental principal: lectura visual, sin captura táctil. */
  .map{
    min-height:0!important;
    height:auto!important;
    align-items:flex-start!important;
    pointer-events:none!important;
    touch-action:auto!important;
  }
  .map svg{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    pointer-events:none!important;
    touch-action:auto!important;
  }
  .map svg *{pointer-events:none!important}
  .map-card .tooltip{display:none!important}

  /* Casos territoriales: las dos gráficas continúan como un díptico. */
  .case-visuals{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .case-chart-card{padding:8px 0 5px;overflow:hidden}
  .case-chart-card::before{width:28px;height:2px}
  .case-chart-title{font-size:6.6px;line-height:1.2;margin-bottom:3px}
  .case-chart-card .chart-legend{gap:4px 7px;padding-top:5px;font-size:5.5px}
  .case-chart-note{margin-top:5px;padding:5px 0 0 7px;border-left-width:2px;font-size:6px;line-height:1.35}
  .chart.small{min-height:0!important}

  /* Atlas municipal: mapas + trayectorias permanecen emparejados, como lámina. */
  .atlas-map-pair,.atlas-chart-pair{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .atlas-map-pair{margin-top:12px}
  .atlas-chart-pair{margin-top:12px}
  .atlas-panel,.atlas-chart-panel{padding:7px 0 8px;overflow:hidden}
  .atlas-panel-head,.atlas-chart-head{
    min-height:34px!important;
    gap:3px 5px!important;
    margin-bottom:4px!important;
  }
  .atlas-panel-head{display:block!important}
  .atlas-panel-head span,.atlas-chart-head span{font-size:5.2px!important;letter-spacing:.08em!important;line-height:1.15!important}
  .atlas-panel-head h3,.atlas-chart-head h3{font-size:9px!important;line-height:1.05!important;margin:3px 0 1px!important;letter-spacing:-.02em!important}
  .atlas-panel-head p{font-size:5.5px!important;line-height:1.2!important;margin:0!important}
  .atlas-panel-head>strong,.atlas-chart-head>strong{
    font-size:11px!important;
    line-height:1!important;
    margin-top:3px!important;
    min-width:0!important;
    white-space:normal!important;
  }
  .atlas-chart-head>strong{justify-self:end;text-align:right}

  .atlas-map-wrap{
    height:auto!important;
    min-height:0!important;
    aspect-ratio:760 / 720!important;
    overflow:hidden!important;
    pointer-events:none!important;
    touch-action:auto!important;
    overscroll-behavior:auto!important;
  }
  .atlas-map{width:100%!important;height:100%!important;pointer-events:none!important;touch-action:auto!important}
  .atlas-map *{pointer-events:none!important}
  .atlas-tooltip{display:none!important}
  .atlas-legend{gap:2px!important;margin-top:4px!important;min-height:0!important;font-size:4.8px!important;line-height:1.1!important}
  .atlas-legend-step,.atlas-legend-nodata{gap:2px!important;font-size:4.8px!important;white-space:normal!important}
  .atlas-legend-step i,.atlas-legend-nodata i{width:8px!important;height:4px!important}

  .atlas-chart{
    height:auto!important;
    min-height:0!important;
    aspect-ratio:760 / 300!important;
    overflow:hidden!important;
    overscroll-behavior:auto!important;
    touch-action:auto!important;
    pointer-events:none!important;
    cursor:default!important;
    scrollbar-width:auto!important;
  }
  .atlas-chart svg{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:100%!important;
    pointer-events:none!important;
    touch-action:auto!important;
  }
  .atlas-chart svg *{pointer-events:none!important}
  .atlas-chart-tip{display:none!important}

  /* El mensaje móvil acompaña la lectura sin ocupar una pieza completa. */
  .atlas-mobile-note{font-size:7px!important;line-height:1.4!important;letter-spacing:.07em!important;margin:10px 0 3px!important;padding:7px 0!important}

  /* Contención de filas y etiquetas: nunca ampliar el ancho del documento. */
  .period-toolbar,.map-toolbar,.rank-toolbar,.chart-legend,.atlas-toolbar,.atlas-context{max-width:100%;min-width:0}
  .period-toolbar{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .atlas-control,.atlas-context>div{min-width:0}
  .atlas-control select{max-width:100%}
}

@media(max-width:460px){
  /* En pantallas estrechas el díptico se conserva: reducimos tipografía, no la estructura. */
  .case-visuals,.atlas-map-pair,.atlas-chart-pair{gap:6px!important}
  .atlas-panel-head h3,.atlas-chart-head h3{font-size:8px!important}
  .atlas-panel-head>strong,.atlas-chart-head>strong{font-size:10px!important}
  .chart-legend{font-size:6.2px}
}
