/* Scoped visual component. No global reset. */
.tx-africa { --tx-red:#e71931; --tx-ink:#181717; margin:0; min-width:0; width:100%; }
.tx-africa__stage { position:relative; width:100%; aspect-ratio:1080/980; isolation:isolate; }
.tx-africa__canvas,.tx-africa__fallback,.tx-africa__labels { position:absolute; inset:0; width:100%; height:100%; }
.tx-africa__fallback { object-fit:contain; }
.tx-africa__canvas { display:none; }
.tx-africa--ready .tx-africa__canvas { display:block; }
.tx-africa--ready .tx-africa__fallback { visibility:hidden; }
.tx-africa__labels { pointer-events:none; }
.tx-africa__city { position:absolute; transform:translate(var(--dx),var(--dy)); font:450 12px/1.2 Inter,Arial,sans-serif; color:#5f5557; white-space:nowrap; text-shadow:0 0 6px #faf9f7,0 0 6px #faf9f7; }
.tx-africa__city--hub { color:#181717; font-size:13px; font-weight:650; background:#fffdfb; padding:7px 11px; border:1px solid #e8e1de; border-radius:6px; box-shadow:0 3px 10px #30252206; }
.tx-africa__footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:0 3% 0 9%; margin-top:-8px; font:400 11px/1.5 Inter,Arial,sans-serif; color:#776d6e; }
.tx-africa__note { margin:0; }
.tx-africa__toggle { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid #ded7d3; background:transparent; color:#50494a; padding:10px 13px; min-height:44px; font:500 11px/1 Inter,Arial,sans-serif; border-radius:999px; cursor:pointer; white-space:nowrap; }
.tx-africa__toggle[hidden] { display:none; }
.tx-africa__toggle::before { content:''; display:block; width:6px; height:8px; border-left:2px solid currentColor; border-right:2px solid currentColor; box-sizing:border-box; }
.tx-africa__toggle[data-paused=true]::before { width:0; height:0; border:0; border-left:6px solid currentColor; border-top:4px solid transparent; border-bottom:4px solid transparent; }
.tx-africa__toggle:disabled { opacity:.7; cursor:default; }
.tx-africa__toggle:disabled::before { display:none; }
.tx-africa__toggle:hover:not(:disabled) { background:#fffdfb; border-color:#b5a7a6; }
.tx-africa__toggle:focus-visible { outline:2px solid var(--tx-red); outline-offset:4px; }
.tx-africa__sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media(max-width:600px) {
 .tx-africa__city[data-mobile=false] { display:none; }
 .tx-africa__city { font-size:10px; transform:translate(calc(var(--dx)*.55),calc(var(--dy)*.55)); }
 .tx-africa__city--hub { font-size:11px; padding:5px 8px; }
 .tx-africa__footer { padding:12px 2% 0; margin-top:0; gap:10px; font-size:10px; align-items:center; }
 .tx-africa__toggle { padding:10px; font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
 .tx-africa * { scroll-behavior:auto; }
}
