// Africa landing data — 54 countries, 2,000+ languages, 98 UNESCO sites.
// Edit data here, never markup.

const AF_ANCHOR = [
  { label: "Countries", href: "#countries" },
  { label: "Regions", href: "#regions" },
  { label: "When to Go", href: "#when" },
  { label: "Itineraries", href: "#itineraries" },
  { label: "Food", href: "#food" },
  { label: "Transport", href: "#trains" },
  { label: "Budget", href: "#budget" },
  { label: "Language", href: "#language" },
  { label: "Festivals", href: "#festivals" },
  { label: "Neighborhoods", href: "#neighborhoods" },
  { label: "Packing", href: "#packing" },
  { label: "FAQ", href: "#faq" },
];

const AF_HERO_STATS = [
  { n: "548", label: "Field guides" },
  { n: "54", label: "Countries" },
  { n: "98", label: "UNESCO sites" },
  { n: "2,000+", label: "Languages spoken" },
];

const AF_HERO_META = [
  { k: "Issue", v: "Nº 015" },
  { k: "Season", v: "Spring 2026" },
  { k: "Updated", v: "25 Apr 2026" },
  { k: "Field desk", v: "Marrakech · Nairobi · Cape Town" },
];

const AF_HERO_COLLAGE = [
  { src: "https://images.unsplash.com/photo-1489493585363-d69421e0edd3?w=900&q=80", cap: "Marrakech · 17:08" },
  { src: "https://images.unsplash.com/photo-1516426122078-c23e76319801?w=900&q=80", cap: "Serengeti · 06:42" },
  { src: "https://images.unsplash.com/photo-1580060839134-75a5edca2e99?w=900&q=80", cap: "Cape Town · 19:14" },
];

const AF_TOC = [
  { t: "A Letter from the Editor", pg: "p. 04" },
  { t: "12 Countries, the Honest Atlas", pg: "p. 12" },
  { t: "Five Region Clusters", pg: "p. 26" },
  { t: "When To Go — Dry vs Wet", pg: "p. 38" },
  { t: "Four Itineraries Worth Stealing", pg: "p. 46" },
  { t: "Food & Drink, Country by Country", pg: "p. 58" },
  { t: "Getting Around — Trucks, Bush Planes, Buses", pg: "p. 72" },
  { t: "Budget by Tier — North, East, West", pg: "p. 84" },
  { t: "Five Phrases per Country", pg: "p. 92" },
  { t: "Festivals Worth a Detour", pg: "p. 102" },
  { t: "Neighborhoods We Trust", pg: "p. 116" },
  { t: "Packing for Sun, Dust and Bush", pg: "p. 128" },
];

const AF_COUNTRIES = [
  {
    name: "Morocco",
    cap: "Rabat",
    img: "https://images.unsplash.com/photo-1489493585363-d69421e0edd3?w=900&q=80",
    flag: "https://flagcdn.com/w80/ma.png",
    guides: 78,
    days: "9–14",
    featured: true,
    lede: "The first chapter for almost every Africa traveller. Imperial cities and a thousand-year-old food culture, hours from Europe. Marrakech to Fes via the Atlas — start with one medina, never the whole country in a week.",
  },
  { name: "Kenya", cap: "Nairobi", img: "https://images.unsplash.com/photo-1547471080-7cc2caa01a7e?w=900&q=80", flag: "https://flagcdn.com/w80/ke.png", guides: 64, days: "8–12" },
  { name: "Tanzania", cap: "Dodoma", img: "https://images.unsplash.com/photo-1516426122078-c23e76319801?w=900&q=80", flag: "https://flagcdn.com/w80/tz.png", guides: 58, days: "10–14" },
  { name: "South Africa", cap: "Pretoria", img: "https://images.unsplash.com/photo-1580060839134-75a5edca2e99?w=900&q=80", flag: "https://flagcdn.com/w80/za.png", guides: 71, days: "10–16" },
  { name: "Egypt", cap: "Cairo", img: "https://images.unsplash.com/photo-1539650116574-75c0c6d73f6e?w=900&q=80", flag: "https://flagcdn.com/w80/eg.png", guides: 49, days: "8–12" },
  { name: "Ethiopia", cap: "Addis Ababa", img: "https://images.unsplash.com/photo-1535850452425-140ee4a8dbae?w=900&q=80", flag: "https://flagcdn.com/w80/et.png", guides: 32, days: "10–14" },
  { name: "Rwanda", cap: "Kigali", img: "https://images.unsplash.com/photo-1566073771259-6a8506099945?w=900&q=80", flag: "https://flagcdn.com/w80/rw.png", guides: 28, days: "5–8" },
  { name: "Senegal", cap: "Dakar", img: "https://images.unsplash.com/photo-1503525148566-ef5c2b9c93bd?w=900&q=80", flag: "https://flagcdn.com/w80/sn.png", guides: 24, days: "7–10" },
  { name: "Ghana", cap: "Accra", img: "https://images.unsplash.com/photo-1591018653431-6f1adb4dd2bf?w=900&q=80", flag: "https://flagcdn.com/w80/gh.png", guides: 21, days: "8–12" },
  { name: "Namibia", cap: "Windhoek", img: "https://images.unsplash.com/photo-1547234935-80c7145ec969?w=900&q=80", flag: "https://flagcdn.com/w80/na.png", guides: 36, days: "10–14" },
  { name: "Uganda", cap: "Kampala", img: "https://images.unsplash.com/photo-1518659526054-190340b32735?w=900&q=80", flag: "https://flagcdn.com/w80/ug.png", guides: 26, days: "7–10" },
  { name: "Madagascar", cap: "Antananarivo", img: "https://images.unsplash.com/photo-1578508048257-bd9bcc4e5f80?w=900&q=80", flag: "https://flagcdn.com/w80/mg.png", guides: 22, days: "10–14" },
];

const AF_CLUSTERS = [
  {
    num: "01",
    title: "North Africa",
    titleEm: "North",
    blurb: "The Maghreb plus Egypt — medinas, Sahara, mint tea, mezze. Easy for first-timers, hours from Europe, and the cheapest doorway onto the continent.",
    cards: [
      { when: "Mar · Apr · Oct · Nov", pin: "MA·EG·TN", h4: "Imperial Morocco", p: "Marrakech, Fes, Chefchaouen, Essaouira. The medinas and the road between them — riads, tagines, and the wide quiet of the Atlas.", tags: ["medina", "first trip", "shoulder"] },
      { when: "Oct · Nov · Mar", pin: "EG", h4: "Nile slow", p: "Cairo to Aswan by train and felucca. Skip the Hurghada package; do four nights on the river instead.", tags: ["history", "river"] },
      { when: "Apr · May · Oct", pin: "TN·DZ", h4: "Tunisia + Algeria", p: "The Roman ruins of Dougga and Timgad with almost nobody in them. Couscous in the south. April or October only.", tags: ["off-grid", "ruins"] },
    ],
  },
  {
    num: "02",
    title: "East Africa",
    titleEm: "East",
    blurb: "The classic safari belt — Serengeti, Mara, Ngorongoro, Bwindi. The most expensive Africa, the most photographed, and still worth every shilling if you go in the right month.",
    cards: [
      { when: "Jul · Aug · Sep", pin: "TZ·KE", h4: "Great Migration loop", p: "Mara River crossings July to September; the calving season is January in southern Serengeti. Either is the trip.", tags: ["safari", "wildlife"] },
      { when: "Jun · Jul · Aug · Dec", pin: "RW·UG", h4: "Gorilla trekking", p: "Volcanoes (Rwanda) and Bwindi (Uganda). Permits sell out 6 months out — the trek itself is two to seven hours of mud and gold.", tags: ["primates", "permit"] },
      { when: "Jun · Sep · Oct", pin: "TZ", h4: "Zanzibar shoulder", p: "Stone Town plus three nights on Paje or Matemwe. Avoid March–May rains. Spice farms beat the resort tour.", tags: ["coast", "spice"] },
    ],
  },
  {
    num: "03",
    title: "Southern Africa",
    titleEm: "Southern",
    blurb: "Self-drive country — Garden Route, Skeleton Coast, Okavango. The most infrastructure on the continent, the easiest first safari, and the only place braai gets a section to itself.",
    cards: [
      { when: "Mar · Apr · Oct · Nov", pin: "ZA", h4: "Garden Route + Cape", p: "Cape Town three nights, Garden Route four. Add Kruger if it's your first safari; add the Cederberg if it's not.", tags: ["self-drive", "wine"] },
      { when: "May · Jun · Sep · Oct", pin: "NA", h4: "Namibia self-drive", p: "Sossusvlei dunes, Damaraland, Etosha — fifteen days, fifteen lodges, the best driving in Africa. 4×4 only.", tags: ["desert", "stars"] },
      { when: "Jul · Aug · Sep", pin: "BW·ZW", h4: "Okavango + Vic Falls", p: "The Delta in flood, Chobe by mokoro, Vic Falls by helicopter. The two-week trip everybody saves for.", tags: ["delta", "splurge"] },
    ],
  },
  {
    num: "04",
    title: "West Africa",
    titleEm: "West",
    blurb: "The most underrated quarter of the continent — Senegalese mbalax, Ghanaian highlife, Beninois voodoo. Fewer Western tourists, the biggest cultural payoff per dollar.",
    cards: [
      { when: "Nov · Dec · Jan · Feb", pin: "SN·GM", h4: "Dakar + Sine-Saloum", p: "Île de Gorée, the pink lake, three nights in the delta. December for cool dry harmattan light.", tags: ["coast", "music"] },
      { when: "Dec · Jan", pin: "GH·CI", h4: "Ghana + Côte d'Ivoire", p: "Accra to Cape Coast to Kumasi. The Year of Return programme keeps reshaping this trip — book a homestay.", tags: ["history", "diaspora"] },
      { when: "Oct · Nov", pin: "BJ·TG", h4: "Benin + Togo", p: "Voodoo in Ouidah, stilt villages in Ganvié, the slim coastline up to Lomé. November before the Harmattan dust.", tags: ["off-grid", "ritual"] },
    ],
  },
  {
    num: "05",
    title: "The Indian Ocean & the Horn",
    titleEm: "Indian Ocean",
    blurb: "Madagascar, Mauritius, Réunion, Seychelles, plus the Horn — Ethiopia and Djibouti. The continent's other coasts, often overlooked and almost always cheaper than they should be.",
    cards: [
      { when: "Apr · May · Sep · Oct · Nov", pin: "MG", h4: "Madagascar slow", p: "RN7 from Tana to Tulear — baobabs, lemurs, and one of the worst-best roads in the world. Ten days minimum.", tags: ["wild", "endemic"] },
      { when: "Sep · Oct · Nov · Jan", pin: "ET", h4: "Ethiopia rock churches", p: "Lalibela, Gondar, Simien Mountains. Timkat in January is the ceremony of a lifetime — book six months out.", tags: ["history", "highland"] },
      { when: "Apr · May · Oct · Nov", pin: "MU·SC", h4: "Mauritius + Seychelles", p: "Ten days, two islands, no resort. Hike Le Morne; rent a bungalow on La Digue. Cheaper than a Bali honeymoon.", tags: ["beach", "value"] },
    ],
  },
];

const AF_WHEN_ROWS = [
  { region: "North Africa", months: ["L", "L", "S", "P", "S", "L", "L", "L", "S", "P", "P", "L"] },
  { region: "East Africa", months: ["P", "S", "L", "L", "L", "P", "P", "P", "P", "S", "L", "P"] },
  { region: "Southern", months: ["S", "S", "P", "P", "S", "S", "P", "P", "P", "P", "S", "S"] },
  { region: "West Africa", months: ["P", "P", "S", "L", "L", "L", "L", "L", "L", "S", "P", "P"] },
  { region: "Horn / Indian", months: ["F", "F", "S", "S", "P", "L", "L", "L", "P", "P", "P", "S"] },
];
const AF_WHEN_HEAD = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"];
const AF_WHEN_LEGEND = [
  { cls: "peak", label: "Peak (P)" },
  { cls: "shoulder", label: "Shoulder (S)" },
  { cls: "low", label: "Low (L)" },
  { cls: "fest", label: "Festival (F)" },
];

const AF_WHEN_NOTES = [
  { h4: "The dry season is the safari season.", p: "East and southern Africa pivot on rainfall, not temperature. June through October the grass is short, the rivers thin, and the animals come to the water. That's when you go.", meta: ["Short grass", "Thin rivers"] },
  { h4: "The Sahara doesn't do summer.", p: "March, April, October, and November are the only honest months for the Maghreb desert. June through August is 45°C in the shade, and there isn't any.", meta: ["20–28 °C", "Avoid Jun–Aug"] },
  { h4: "January is Timkat in Ethiopia.", p: "Three days of Orthodox processions in Lalibela and Gondar. Book six months ahead, ride the cool-dry highland morning, and stay long enough to attend more than one stop.", meta: ["Highland cool", "Six months out"] },
];

const AF_ITIS = [
  {
    days: "12",
    pill: "Safari classic",
    h3: "Tanzania safari circuit, north to coast.",
    lede: "The honest Serengeti loop plus three nights on Zanzibar. Bush plane, not road. Built by Lucia, August 2025.",
    stops: [
      { n: "01", place: "Arusha", nights: "1 nt" },
      { n: "02", place: "Tarangire", nights: "2 nt" },
      { n: "03", place: "Ngorongoro Crater", nights: "1 nt" },
      { n: "04", place: "Central Serengeti", nights: "3 nt" },
      { n: "05", place: "Stone Town + Matemwe", nights: "4 nt" },
    ],
    cost: "$$$",
    by: "Lucia · Aug 2025",
  },
  {
    days: "10",
    pill: "Imperial cities",
    h3: "Morocco, Marrakech to the Atlas to Fes.",
    lede: "Three medinas and one mountain night. Trains plus one shared transfer. First-trip Africa. Built by Iris, March 2025.",
    stops: [
      { n: "01", place: "Marrakech", nights: "3 nt" },
      { n: "02", place: "High Atlas (Imlil)", nights: "1 nt" },
      { n: "03", place: "Aït Benhaddou", nights: "1 nt" },
      { n: "04", place: "Merzouga (Sahara)", nights: "1 nt" },
      { n: "05", place: "Fes", nights: "3 nt" },
    ],
    cost: "$$",
    by: "Iris · Mar 2025",
  },
  {
    days: "21",
    pill: "Bucket list",
    h3: "Cape to Cairo, slowly.",
    lede: "The continent end-to-end. Trains where they exist, regional flights for the gaps. The trip you take once. Built by Marcus, September 2025.",
    stops: [
      { n: "01", place: "Cape Town", nights: "3 nt" },
      { n: "02", place: "Vic Falls + Chobe", nights: "3 nt" },
      { n: "03", place: "Zanzibar", nights: "3 nt" },
      { n: "04", place: "Lalibela", nights: "3 nt" },
      { n: "05", place: "Cairo + Luxor", nights: "5 nt" },
    ],
    cost: "$$$$",
    by: "Marcus · Sept 2025",
  },
  {
    days: "8",
    pill: "Once in a lifetime",
    h3: "Gorilla trekking, Rwanda + Uganda.",
    lede: "Volcanoes and Bwindi back to back. Two permits, two trekking days, four cool nights at altitude. Built by Eli, July 2025.",
    stops: [
      { n: "01", place: "Kigali", nights: "1 nt" },
      { n: "02", place: "Volcanoes NP (RW)", nights: "2 nt" },
      { n: "03", place: "Lake Mutanda", nights: "1 nt" },
      { n: "04", place: "Bwindi (UG)", nights: "2 nt" },
      { n: "05", place: "Kigali return", nights: "2 nt" },
    ],
    cost: "$$$$",
    by: "Eli · Jul 2025",
  },
];

const AF_FOOD = [
  { country: "Maroc", glyph: "α", h4: "The tagine is the meal.", p: "Slow-cooked lamb with prunes, chicken with preserved lemon, kefta with egg. Eaten with bread, never a fork. Sit on the floor; tear, don't cut.", pair: { a: "Tagine kefta", b: "Mint tea, three pours" }, span: "span-3" },
  { country: "Ethiopia", glyph: "β", h4: "Eat with your hands.", p: "Injera is sourdough crepe and plate at once. Tear, scoop, share. Right hand only — and never finish what's in front of you first.", pair: { a: "Doro wat", b: "Tej (honey wine)" }, span: "" },
  { country: "South Africa", glyph: "γ", h4: "The braai is a verb.", p: "Saturday is built around it. Boerewors, lamb chops, mielies. Skip the fancy steakhouse — every backyard does it better.", pair: { a: "Boerewors", b: "Pinotage 2020" }, span: "span-2" },
  { country: "West Africa", glyph: "δ", h4: "Jollof is a war.", p: "Senegal calls it thieboudienne, Ghana and Nigeria fight over the rest. The truth: each version is correct in its own kitchen.", pair: { a: "Jollof rice", b: "Hibiscus juice" }, span: "span-2" },
  { country: "Egypt", glyph: "ε", h4: "Koshari is the office lunch.", p: "Rice, lentils, pasta, fried onions, tomato sauce. Five lira. Faster than McDonald's, and Cairo eats nothing else at noon on Tuesday.", pair: { a: "Koshari", b: "Karkade" }, span: "span-2" },
  { country: "Cape Town", glyph: "ζ", h4: "Bobotie isn't curry.", p: "Cape Malay's signature — spiced minced meat under an egg custard, served with yellow rice. The dish that taught Dutch food to be interesting.", pair: { a: "Bobotie", b: "Chenin blanc" }, span: "span-2" },
];

const AF_ROUTES = [
  { from: "Marrakech", fromCode: "RAK", to: "Fes", toCode: "FEZ", t: "7h 00m", trains: "rail" },
  { from: "Cairo", fromCode: "CAI", to: "Aswan", toCode: "ASW", t: "12h 30m", trains: "sleeper" },
  { from: "Nairobi", fromCode: "NBO", to: "Mombasa", toCode: "MBA", t: "5h 00m", trains: "SGR" },
  { from: "Johannesburg", fromCode: "JNB", to: "Cape Town", toCode: "CPT", t: "27h", trains: "Blue Train" },
  { from: "Dakar", fromCode: "DKR", to: "Saint-Louis", toCode: "SLU", t: "4h 30m", trains: "bus" },
  { from: "Addis", fromCode: "ADD", to: "Lalibela", toCode: "LLI", t: "1h 10m", trains: "domestic" },
];

const AF_TRAIN_COMPARE = [
  { route: "Cape Town → Joburg", train: "27h", plane: "2h 10m" },
  { route: "Marrakech → Fes", train: "7h 00m", plane: "1h 00m" },
  { route: "Cairo → Aswan", train: "12h 30m", plane: "1h 30m" },
  { route: "Nairobi → Mombasa", train: "5h 00m", plane: "1h 05m" },
  { route: "Addis → Lalibela", train: "—", plane: "1h 10m" },
];

const AF_BUDGETS = [
  {
    lvl: "North & West",
    day: "65",
    title: "Riads, shared taxis, market food.",
    lines: [
      ["Bed", "$22–48"],
      ["Food", "$10–18"],
      ["Transit", "$8–14"],
      ["Sights", "$10"],
    ],
    note: "Realistic across Morocco, Egypt, Senegal, Ghana. Riads are often cheaper than hostels and three times as nice.",
  },
  {
    lvl: "Safari (East / South)",
    day: "520",
    title: "Mid-tier camp, two game drives, full board.",
    lines: [
      ["Bed + Park", "$340–460"],
      ["Food (incl.)", "—"],
      ["Game drives", "incl."],
      ["Park fees", "$60–90"],
    ],
    note: "The unavoidable tier on a Tanzania, Kenya, Botswana or Zambia trip. Mid-range camps are a third the price of luxury and 80% the experience.",
    middle: true,
  },
  {
    lvl: "Editorial Africa",
    day: "1,400",
    title: "&Beyond / Wilderness / Singita class.",
    lines: [
      ["Bed", "$900–1,400"],
      ["Food + drinks", "incl."],
      ["Bush flights", "$200–400"],
      ["Guide tip", "$25–40"],
    ],
    note: "The big lodges price in dollars and book out 12 months ahead. Worth it for one or two nights, not a whole trip — pair with mid-range camps.",
  },
];

const AF_LANG = [
  { country: "Maroc · Darija", phrases: [
    { dt: "Salam", dd: "Hello (universal)" },
    { dt: "Shukran", dd: "Thank you" },
    { dt: "Lhsab afak", dd: "The bill, please" },
    { dt: "Atay bnaana", dd: "Mint tea" },
  ]},
  { country: "Egypt · Masri", phrases: [
    { dt: "As-salaamu alaykum", dd: "Peace be upon you" },
    { dt: "Shukran", dd: "Thank you" },
    { dt: "Al-hisaab law samaht", dd: "The bill, please" },
    { dt: "Karkade", dd: "Hibiscus tea, hot or cold" },
  ]},
  { country: "Kenya · Swahili", phrases: [
    { dt: "Jambo / Habari", dd: "Hello / how are you" },
    { dt: "Asante sana", dd: "Thank you very much" },
    { dt: "Bili tafadhali", dd: "The bill, please" },
    { dt: "Hakuna matata", dd: "No problem (yes, real)" },
  ]},
  { country: "Ethiopia · Amharic", phrases: [
    { dt: "Selam", dd: "Peace / hello" },
    { dt: "Ameseginalehu", dd: "Thank you" },
    { dt: "Hisabun yimattalin", dd: "May we have the bill" },
    { dt: "Buna", dd: "Coffee — the ceremony version" },
  ]},
  { country: "Senegal · Wolof", phrases: [
    { dt: "Salaam aleekum", dd: "Hello" },
    { dt: "Jërejëf", dd: "Thank you" },
    { dt: "Adduna ma fii", dd: "The bill" },
    { dt: "Bissap", dd: "Hibiscus drink" },
  ]},
  { country: "South Africa · Zulu", phrases: [
    { dt: "Sawubona", dd: "Hello (singular)" },
    { dt: "Ngiyabonga", dd: "Thank you" },
    { dt: "Ungubani igama lakho?", dd: "What's your name?" },
    { dt: "Sharp sharp", dd: "Cool (universal slang)" },
  ]},
  { country: "Rwanda · Kinyarwanda", phrases: [
    { dt: "Muraho", dd: "Hello" },
    { dt: "Murakoze", dd: "Thank you" },
    { dt: "Faktura nyamuneka", dd: "The bill, please" },
    { dt: "Amazi", dd: "Water" },
  ]},
  { country: "Madagascar · Malagasy", phrases: [
    { dt: "Salama", dd: "Hello" },
    { dt: "Misaotra", dd: "Thank you" },
    { dt: "Ny faktiora azafady", dd: "The bill, please" },
    { dt: "Vary", dd: "Rice — three meals a day" },
  ]},
];

const AF_FESTS = [
  { num: "01", when: "January", where: "Carnival · Cape Town", h4: "The minstrel parade.", p: "Cape Malay troupes in satin and parasols dance Long Street on Tweede Nuwe Jaar. The continent's loudest second-of-January.", stars: "★★★★☆" },
  { num: "02", when: "January", where: "Timkat · Lalibela", h4: "Three days of Orthodox.", p: "Replicas of the Ark of the Covenant carried under brocade umbrellas through hill towns. Dawn baptism on day three.", stars: "★★★★★" },
  { num: "03", when: "January", where: "Festival au Désert · Mali", h4: "Tuareg, in the Sahara.", p: "Traditional desert music gathering — has moved repeatedly for safety, currently held in exile in Mauritania. Track the dates carefully.", stars: "★★★★★" },
  { num: "04", when: "May/June", where: "Fes Sacred Music · Morocco", h4: "Sufi nights, Bab Boujloud.", p: "Nine days of qawwali, gospel, ney flute, fado. Tickets affordable, queues long, the 11pm courtyards are the show.", stars: "★★★★★" },
  { num: "05", when: "Sep/Oct", where: "Lake of Stars · Malawi", h4: "Three days, one lake.", p: "Pan-African line-up on the shore of Lake Malawi. Tent camp, small crowd, the friendliest festival in Africa by a margin.", stars: "★★★★☆" },
  { num: "06", when: "December", where: "Afrochella / Afrofuture · Accra", h4: "Diaspora homecoming.", p: "Afrobeats, fashion, food trucks. The headline week of Ghana's Year of Return programme — book lodging four months out.", stars: "★★★★☆" },
];

const AF_NEIGHBORHOODS = [
  { num: "01", name: "Bo-Kaap", city: "Cape Town", em: "Bo-Kaap", p: "The pastel-painted Cape Malay quarter on the Signal Hill side. Walking distance to everything, and bobotie within a block in three directions.", why: "Cape Malay · Walkable" },
  { num: "02", name: "Médina de Marrakech", city: "Marrakech", em: "Medina", p: "Inside the walls. Riad with a courtyard pool, walk twenty minutes to Jemaa el-Fnaa, never look at a tourist bus again.", why: "Riad · Old city" },
  { num: "03", name: "Westlands", city: "Nairobi", em: "Westlands", p: "Where the safari traveller stays a night before flying north. Walkable restaurants, two malls, the nyama choma at Carnivore.", why: "Layover · Restaurants" },
  { num: "04", name: "Plateau", city: "Dakar", em: "Plateau", p: "The harbor end of Dakar. Independence Square is the start of every walk; the rooftop bars run until 2am on Friday.", why: "Sea breeze · Music" },
  { num: "05", name: "Zamalek", city: "Cairo", em: "Zamalek", p: "An island in the Nile. Tree-lined, cafés on every corner, Cairo as a city you'd want to live in. A taxi to the pyramids is twenty minutes either way.", why: "Island · Trees" },
  { num: "06", name: "Stone Town", city: "Zanzibar", em: "Stone", p: "The carved-door old quarter. Stay inside the walls one night before the beach — Forodhani night market for fish, then a roof for the call to prayer.", why: "Spice port · Walls" },
];

const AF_PACK_LISTS = [
  {
    h4: "Sun, dust, and bush.",
    em: "bush",
    sub: "Safari · Sahara · Highland",
    items: [
      "Two long-sleeve linen shirts (sun, mosquitoes)",
      "Convertible trousers — never shorts on game drives",
      "A wide-brim hat that survives a backpack",
      "Closed-toe shoes for trekking, sandals for camp",
      "Light fleece — Serengeti dawn is 8°C",
      "Sunglasses with side coverage (dust)",
      "Two buffs / shemagh for face cover",
      "Tip — Khaki, sand, olive. No bright colours, no white, no blue.",
    ],
  },
  {
    h4: "Bags and tech.",
    em: "small bags",
    sub: "Soft-sided · 15 kg max",
    items: [
      "Soft-sided duffel — bush flights ban hard cases",
      "Daypack with a 2L bladder",
      "Universal Type-C / D / G adapter",
      "Headlamp (red filter for camp)",
      "Power bank 10,000 mAh",
      "Quick-dry travel towel",
      "Wet wipes / hand sanitiser everywhere",
      "Tip — bring twice the cash you think; ATMs are unreliable outside cities.",
    ],
  },
  {
    h4: "Health and admin.",
    em: "admin",
    sub: "Don't get sick",
    items: [
      "Yellow fever certificate (required East + Central)",
      "Malaria prophylaxis — confirm with a travel clinic",
      "DEET 30%+ insect repellent",
      "Rehydration salts and broad-spectrum antibiotics",
      "Photocopies of passport, visa, vax card",
      "Travel insurance with medical evac (mandatory)",
      "Two USD $100 bills for visa-on-arrival fees",
      "Tip — never drink the tap water, never the hotel ice. Bottled or filtered, every time.",
    ],
  },
];

const AF_FAQS = [
  { q: "When is the actual best time for an Africa safari?", a: "<strong>July through October</strong> for east and southern Africa — dry season, short grass, animals at the water. The Mara River crossings peak between late July and early September. For the calving season in southern Serengeti, go in late January through February instead." },
  { q: "Visas — what do I actually need?", a: "Most Africa countries are not Schengen, and almost every one wants its own visa. Kenya, Rwanda, Ethiopia, Egypt, Morocco, and South Africa all run e-visa portals — apply 30+ days out. Tanzania and Uganda allow visa-on-arrival but bring two USD $100 bills. The new <strong>EAC tourist visa</strong> covers Kenya + Rwanda + Uganda on a single permit." },
  { q: "Is a safari worth it if I've never been to Africa?", a: "Almost always yes — but pick the right country. <strong>South Africa or Namibia</strong> for self-drive first-timers. <strong>Tanzania or Kenya</strong> if you can spend $400+ a night and want fly-in camps. Avoid Botswana on a first trip; it's the most expensive and the least signposted." },
  { q: "Malaria, yellow fever, vaccinations — what's required?", a: "Yellow fever is required for entry into many east and central African countries; <strong>get the shot at least 10 days before</strong> travel and carry the yellow card. Malaria is endemic in most of sub-Saharan Africa — talk to a travel clinic about doxycycline or Malarone prophylaxis 4–8 weeks ahead. Hep A, typhoid and rabies pre-exposure are worth the conversation." },
  { q: "Can I drink the tap water?", a: "<strong>No, almost nowhere.</strong> Bottled or filtered, every time. That includes ice, salads, and the hotel water glass. Carry a Steripen or Grayl filter if you're going to be out of cities for more than a few days. Cape Town is the main exception — its tap water is fine." },
  { q: "Is Africa safe to travel?", a: "Africa is fifty-four countries; the question is meaningless at that scale. Morocco, Egypt, Tanzania, Kenya, Rwanda, Botswana, Namibia, South Africa and Ghana have well-established tourism. Cape Town, Nairobi and Johannesburg ask for the same urban awareness as São Paulo or New Orleans. Check the UK FCDO and US State Department advisories for any country two weeks before travel." },
  { q: "How much is enough time for an Africa trip?", a: "<strong>10 to 14 days</strong> for one country, 18 to 21 days for cape-to-cairo style multi-country. A safari needs at least four nights at one camp; one-night safaris are a tax on your sleep schedule. Morocco rewards two weeks more than ten days because of the long road between cities." },
  { q: "Should I book a tour or go independent?", a: "Independent works for Morocco, Egypt, Senegal, Ghana, South Africa and Namibia. <strong>Book a tour or specialist agent</strong> for Tanzania, Kenya, Botswana, Rwanda, Uganda and Madagascar — the bush logistics, permits, and bush flights aren't a DIY exercise. Use a specialist with offices on the ground; avoid the global brands that subcontract everything." },
];

const AF_RELATED = [
  { lbl: "Field note", h4: "How to plan a Tanzania safari that <em>doesn't</em> cost $20k.", by: "Lucia · 11 min", href: "/journal/tanzania-safari-budget" },
  { lbl: "Editorial", h4: "The Marrakech medina, in three doors.", by: "Iris · 7 min", href: "/journal/marrakech-medina" },
  { lbl: "Itinerary", h4: "Cape Town in four days, no bus tour.", by: "Marcus · 9 min", href: "/journal/cape-town-four-days" },
  { lbl: "Dispatch", h4: "Lalibela at Timkat — what nobody tells you.", by: "Eli · 8 min", href: "/journal/timkat-lalibela" },
];

const AF_REGIONS = [
  { id: "europe", name: "Europe", href: "/europe/" },
  { id: "asia", name: "Asia", href: "/asia/" },
  { id: "americas", name: "Americas", href: "/americas/" },
  { id: "africa", name: "Africa", href: "/africa/", current: true },
  { id: "middle-east", name: "Middle East", href: "/middle-east/" },
  { id: "oceania", name: "Oceania", href: "/oceania/" },
];

Object.assign(window, {
  AF_ANCHOR, AF_HERO_STATS, AF_HERO_META, AF_HERO_COLLAGE, AF_TOC,
  AF_COUNTRIES, AF_CLUSTERS, AF_WHEN_ROWS, AF_WHEN_HEAD, AF_WHEN_LEGEND, AF_WHEN_NOTES,
  AF_ITIS, AF_FOOD, AF_ROUTES, AF_TRAIN_COMPARE,
  AF_BUDGETS, AF_LANG, AF_FESTS, AF_NEIGHBORHOODS, AF_PACK_LISTS,
  AF_FAQS, AF_RELATED, AF_REGIONS,
});
