// ============ Home page ============
// Long-form Dakota Association origin story, mirroring dakota15wing.be/nl/home-2/.
// Same content for all 4 languages (translated). NL is the source of truth.

function homeLocale(lang) {
  const nl = I18N.nl;
  const loc = I18N[lang] || nl;
  const sn = nl.sections || {};
  const sl = loc.sections || {};
  return {
    hero: { ...nl.hero, ...(loc.hero || {}) },
    sections: {
      fleet: { ...sn.fleet, ...(sl.fleet || {}) },
      timeline: { ...sn.timeline, ...(sl.timeline || {}) },
      story: { ...sn.story, ...(sl.story || {}) },
      missions: { ...sn.missions, ...(sl.missions || {}) },
      magazine: { ...sn.magazine, ...(sl.magazine || {}) },
    },
  };
}

const HOME_STORY_I18N = {
  nl: {
    intro: {
      title: "Hoe het allemaal begon!",
      paragraphs: [
        "De Dakota Association werd opgericht in 1993 en is een vzw met als opdracht het verwerven, documenteren, conserveren en onderhouden van een zo volledig mogelijke collectie vliegtuigen die vanaf het begin van de Tweede Wereldoorlog tot heden door de Belgische militaire transportvleugel werden gevlogen.",
        "Het is onze rol om de artefacten, boeken, tijdschriften en handleidingen met betrekking tot dit mandaat te bewaren. Het museum herbergt nu afbeeldingen van alle vliegtuigen die ooit met de 15e Wing hebben gevlogen, een uitgebreide luchtvaarttentoonstellingsgalerij en het meest actuele archief over alle vliegtuigtypes, upgradeprogramma's en missies die zijn voorbereid, gevlogen en veilig onderhouden door de mannen en vrouwen van de 15e Wing.",
        "We stellen u in open lucht bovendien ons vliegtuigenpark voor, met een aantal toestellen, die vanaf Melsbroek naar de vier windstreken zijn gevlogen.",
      ],
    },
    huybens: {
      title: "Onze stichter was Kolonel Vlieger Jo Huybens",
      paragraphs: [
        "Jo Huybens werd geboren op 22 november 1938. Hij werd door de Luchtmacht aangenomen als leerling-piloot op 1 maart 1960 als lid van de 144A promotie en begon zijn opleiding op SV4-Bis (Stampe – Vertongen) in Goetsenhoven. In juni van datzelfde jaar zou hij overgaan op Fouga Magister voor zijn voortgezette opleiding die normaal plaatsvond in Kamina, Kongo. Dit werd onmogelijk gemaakt door de onlusten die uitgebroken waren na de onafhankelijkheid van Kongo, en zo kwam Jo op 2 november terecht in Salon de Provence om er zijn vliegvaardigheden te vervolmaken op CM170B (Fouga Magister). Op 31 mei keerde hij terug naar België en zette zijn opleiding verder op Lockheed T33 in Brustem. Op 10 november 1961 behaalde Jo zijn vleugels. Het 1 smaldeel van de 2 Wing in Florennes werd zijn volgende thuis vanaf 12 juni. Op 15 juli 1976 werd Jo, ondertussen majoor, bevelhebber van het 2 Smaldeel, eveneens in Florennes. Nadien werd hij achtereenvolgens Comd Vlieggroep in Brustem, Chief Recce Branch bij AAFCE (Allied Air Forces Central Europe), en onderstafchef van het Commando TAF in Evere. Op 24 augustus 1990 werd kolonel vlieger Huybens commandant van de 15 Wing.",
        "Jo ging in 1993 op pensioen en wijdde vanaf dan zijn vrije tijd aan het opstarten en ontwikkelen van het DAKOTA documentatiecentrum.",
        "Kol Vlieger b.d. Jo Huybens overleed in 2003.",
      ],
    },
    hoeben: {
      title: "De tweede voorzitter: Luitenant-generaal Vlieger SBH b.d. René Hoeben",
      paragraphs: [
        "Bij het overlijden van Jo Huybens in 2003 heeft Luitenant-Generaal Vlieger b.d. René Hoeben, op het uitdrukkelijk verzoek van Jo, de taak van voorzitter opgenomen. Kapitein Vl SBH Hoeben kwam in de zomer van 1969 toe in de 15 Wing en vloog er op C119. Op 24 mei 1972, na twee maanden opleiding in Little Rock AFB, behaalden hij en Commandant Vl Delauré als eersten hun volledige tactische kwalificatie op C130E. Bij hun terugkeer in Melsbroek werden zij belast met de conversie van de C119 piloten op C130. Daarna bekleedde hij in de 15 Wing, afwisselend met opdrachten in de staven, de functies van Comd 20 Smd, Comd Vlieggroep en uiteindelijk Korpsoverste in 1982. Hij bleef daarna zijn kwalificatie als boordcommandant C130 behouden en deed uiteindelijk zijn laatste vlucht op 22 juli 1994. Op 31 maart 1997 verliet hij de actieve dienst.",
        "LtGen Vl SBH b.d. René Hoeben was voorzitter van DAKOTA van 2003 tot eind juli 2019.",
      ],
    },
    lousberg: {
      title: "Onze huidige voorzitter: Kolonel Vlieger b.d. Jacques Lousberg",
      paragraphs: [
        "Na 16 jaar gaf LtGen Vl SBH b.d. R. Hoeben het voorzitterschap op 29 juli 2019 door aan Kol Vl b.d. J. Lousberg.",
        "Onderluitenant Vlieger J. Lousberg kwam in 1977 toe in de 15 Wing en begon zijn loopbaan in het 21 Smd als copiloot op SW03 Merlin, om vervolgens in 1978 boordcommandant op dit toestel te worden.",
        "Begin 1979 werd hij aangeduid om de C-130H te vliegen in het 20 Smd. Hij werd boordcommandant op de Hercules op 19 december 1980 en vervolgens vlieginstructeur op het toestel in 1982.",
        "In 1983 werd hij aangeduid als Operatie Officier van het 20 Smd. Na de vorming tot hoofdofficier werd hij commandant van de TCU (Transport Conversion Unit). Hij werd CO van het 20 Smd in 1991 en vervolgens Comd Vlieggroep van de 15 Wing in 1999, afgewisseld met staffuncties. De belangrijkste staffunctie die hij bekleedde was wellicht die van projectofficier voor de C-130 \"avionics upgrade\" tussen 1989 en 1991 en dan opnieuw van 1994 tot 1997.",
        "Hij deed zijn laatste vlucht als piloot op de C-130 in 1999, maar vloog intussen al de Airbus A310 sedert 1998.",
        "Na zijn benoeming tot Kolonel werd hij diensthoofd van de Sectie Operaties bij de Luchtcomponent en later commandant van het nieuw opgerichte Movement and Transport Coordination Center (MTCC) op de eengemaakte Defensiestaf.",
        "Kol Vl Lousberg vloog de A310 tot hij de actieve dienst verliet op 01 oktober 2005.",
        "Nadien begon hij een 2de loopbaan als lijnpiloot en vloog hij nog 14 jaar op opeenvolgend de A310, de A330, de A340 en de A380.",
        "Hij sloot zijn loopbaan als veelzijdig piloot af met 24.390 vlieguren.",
      ],
    },
  },
  fr: {
    intro: {
      title: "Comment tout a commencé !",
      paragraphs: [
        "L'association Dakota a été fondée en 1993. C'est une asbl dont la mission est d'acquérir, documenter, conserver et entretenir une collection aussi complète que possible des avions qui, depuis le début de la Seconde Guerre mondiale jusqu'à aujourd'hui, ont été volés par l'aile de transport militaire belge.",
        "Notre rôle est de préserver les artefacts, livres, revues et manuels liés à ce mandat. Le musée abrite désormais des images de tous les avions ayant volé avec la 15e Wing, une vaste galerie d'exposition aéronautique et l'archive la plus à jour sur tous les types d'avions, les programmes de mise à niveau et les missions préparées, volées et entretenues en sécurité par les hommes et les femmes de la 15e Wing.",
        "Nous vous présentons en plein air notre parc d'avions, avec un certain nombre d'appareils qui, depuis Melsbroek, ont volé aux quatre coins du monde.",
      ],
    },
    huybens: {
      title: "Notre fondateur : le Colonel Aviateur Jo Huybens",
      paragraphs: [
        "Jo Huybens est né le 22 novembre 1938. Il est admis comme élève-pilote par la Force aérienne le 1er mars 1960, dans la promotion 144A, et commence sa formation sur SV4-Bis (Stampe – Vertongen) à Goetsenhoven. En juin de la même année, il devait passer sur Fouga Magister pour sa formation avancée qui se déroulait normalement à Kamina, au Congo. Cela fut rendu impossible par les troubles qui éclatèrent après l'indépendance du Congo, et c'est ainsi que Jo arriva le 2 novembre à Salon-de-Provence pour y perfectionner ses compétences de pilotage sur CM170B (Fouga Magister). Le 31 mai, il rentre en Belgique et poursuit sa formation sur Lockheed T33 à Brustem. Le 10 novembre 1961, Jo obtient ses ailes. Le 1er escadron du 2e Wing à Florennes devient sa nouvelle base à partir du 12 juin. Le 15 juillet 1976, Jo, devenu major, prend le commandement du 2e Escadron, également à Florennes. Il devient ensuite successivement Cmdt du Groupe de Vol à Brustem, Chief Recce Branch à l'AAFCE (Allied Air Forces Central Europe), puis sous-chef d'état-major du Commandement TAF à Evere. Le 24 août 1990, le colonel aviateur Huybens devient commandant de la 15 Wing.",
        "Jo prend sa retraite en 1993 et consacre dès lors son temps libre à la création et au développement du centre de documentation DAKOTA.",
        "Le Col Av e.r. Jo Huybens est décédé en 2003.",
      ],
    },
    hoeben: {
      title: "Le deuxième président : Lieutenant-général Aviateur BEM e.r. René Hoeben",
      paragraphs: [
        "À la mort de Jo Huybens en 2003, le Lieutenant-Général Aviateur e.r. René Hoeben a, à la demande expresse de Jo, repris la fonction de président. Le Capitaine Av BEM Hoeben rejoint la 15 Wing à l'été 1969 et y vole sur C119. Le 24 mai 1972, après deux mois de formation à Little Rock AFB, lui et le Commandant Av Delauré sont les premiers à obtenir leur qualification tactique complète sur C130E. À leur retour à Melsbroek, ils sont chargés de la conversion des pilotes C119 sur C130. Il occupe ensuite à la 15 Wing, en alternance avec des postes d'état-major, les fonctions de Cmdt 20 Esc, Cmdt Groupe de Vol et finalement Chef de Corps en 1982. Il conserve ensuite sa qualification de commandant de bord C130 et effectue son dernier vol le 22 juillet 1994. Le 31 mars 1997, il quitte le service actif.",
        "Le LtGén Av BEM e.r. René Hoeben a présidé DAKOTA de 2003 à fin juillet 2019.",
      ],
    },
    lousberg: {
      title: "Notre président actuel : Colonel Aviateur e.r. Jacques Lousberg",
      paragraphs: [
        "Après 16 ans, le LtGén Av BEM e.r. R. Hoeben a transmis la présidence le 29 juillet 2019 au Col Av e.r. J. Lousberg.",
        "Le Sous-lieutenant Aviateur J. Lousberg rejoint la 15 Wing en 1977 et commence sa carrière au 21 Esc comme copilote sur SW03 Merlin, pour devenir commandant de bord sur cet appareil en 1978.",
        "Début 1979, il est désigné pour piloter le C-130H au 20 Esc. Il devient commandant de bord sur l'Hercules le 19 décembre 1980, puis instructeur de vol sur l'appareil en 1982.",
        "En 1983, il est désigné comme Officier des Opérations du 20 Esc. Après sa formation d'officier supérieur, il devient commandant de la TCU (Transport Conversion Unit). Il devient CO du 20 Esc en 1991, puis Cmdt Groupe de Vol de la 15 Wing en 1999, en alternance avec des postes d'état-major. La fonction d'état-major la plus marquante fut sans doute celle d'officier de projet pour l'\"avionics upgrade\" du C-130 entre 1989 et 1991, puis à nouveau de 1994 à 1997.",
        "Il effectue son dernier vol comme pilote sur C-130 en 1999, mais volait déjà sur Airbus A310 depuis 1998.",
        "Après sa nomination au grade de Colonel, il devient chef de la Section Opérations à la Composante Air, puis commandant du nouveau Movement and Transport Coordination Center (MTCC) à l'État-major unifié de la Défense.",
        "Le Col Av Lousberg pilote l'A310 jusqu'à son départ du service actif le 1er octobre 2005.",
        "Il entame ensuite une seconde carrière comme pilote de ligne et vole encore 14 ans, successivement sur A310, A330, A340 et A380.",
        "Il clôt sa carrière de pilote polyvalent avec 24.390 heures de vol.",
      ],
    },
  },
  en: {
    intro: {
      title: "How it all began!",
      paragraphs: [
        "The Dakota Association was founded in 1993 as a non-profit with the mission to acquire, document, conserve and maintain as complete a collection as possible of the aircraft flown by the Belgian military transport wing from the start of the Second World War to the present day.",
        "Our role is to preserve the artefacts, books, magazines and manuals related to this mandate. The museum now houses images of every aircraft ever flown with 15 Wing, an extensive aviation exhibition gallery, and the most up-to-date archive on every aircraft type, upgrade programme and mission prepared, flown and safely maintained by the men and women of 15 Wing.",
        "We also display our outdoor aircraft park, with a number of airframes that flew from Melsbroek to the four corners of the world.",
      ],
    },
    huybens: {
      title: "Our founder: Colonel Pilot Jo Huybens",
      paragraphs: [
        "Jo Huybens was born on 22 November 1938. He was accepted by the Air Force as a student pilot on 1 March 1960 as a member of the 144A promotion and started his training on SV4-Bis (Stampe – Vertongen) at Goetsenhoven. In June of that same year he was to switch to the Fouga Magister for his advanced training, which normally took place at Kamina, Congo. The unrest that broke out after Congo's independence made this impossible, so on 2 November Jo arrived at Salon-de-Provence to perfect his flying skills on the CM170B (Fouga Magister). On 31 May he returned to Belgium and continued his training on the Lockheed T33 at Brustem. On 10 November 1961 Jo earned his wings. The 1st Squadron of 2 Wing in Florennes became his next home from 12 June. On 15 July 1976 Jo, by then a Major, became Commanding Officer of 2 Squadron, also in Florennes. He then served successively as Comd Flying Group at Brustem, Chief Recce Branch at AAFCE (Allied Air Forces Central Europe), and Deputy Chief of Staff of TAF Command at Evere. On 24 August 1990 Colonel Pilot Huybens became commander of 15 Wing.",
        "Jo retired in 1993 and from then on devoted his free time to launching and developing the DAKOTA documentation centre.",
        "Col Pilot (Ret.) Jo Huybens passed away in 2003.",
      ],
    },
    hoeben: {
      title: "The second chairman: Lieutenant General Pilot GS (Ret.) René Hoeben",
      paragraphs: [
        "On the death of Jo Huybens in 2003, Lieutenant General Pilot (Ret.) René Hoeben took on the role of chairman, at Jo's express request. Captain Pilot GS Hoeben joined 15 Wing in the summer of 1969 and flew the C119. On 24 May 1972, after two months of training at Little Rock AFB, he and Commandant Pilot Delauré were the first to obtain their full tactical qualification on the C130E. On returning to Melsbroek they were tasked with converting the C119 pilots to the C130. He then held in 15 Wing, alternating with staff assignments, the positions of Comd 20 Sqn, Comd Flying Group, and finally Wing Commander in 1982. He retained his C130 aircraft commander qualification and flew his final mission on 22 July 1994. He left active service on 31 March 1997.",
        "LtGen Pilot GS (Ret.) René Hoeben chaired DAKOTA from 2003 until the end of July 2019.",
      ],
    },
    lousberg: {
      title: "Our current chairman: Colonel Pilot (Ret.) Jacques Lousberg",
      paragraphs: [
        "After 16 years, LtGen Pilot GS (Ret.) R. Hoeben handed over the chairmanship on 29 July 2019 to Col Pilot (Ret.) J. Lousberg.",
        "Second Lieutenant Pilot J. Lousberg joined 15 Wing in 1977 and started his career in 21 Sqn as co-pilot on the SW03 Merlin, becoming aircraft commander on the same type in 1978.",
        "In early 1979 he was selected to fly the C-130H in 20 Sqn. He became Hercules aircraft commander on 19 December 1980 and a flying instructor on the type in 1982.",
        "In 1983 he was appointed Operations Officer of 20 Sqn. After senior officer training he became commander of the TCU (Transport Conversion Unit). He became CO of 20 Sqn in 1991 and then Comd Flying Group of 15 Wing in 1999, alternating with staff functions. His most notable staff role was probably that of project officer for the C-130 \"avionics upgrade\" between 1989 and 1991 and again from 1994 to 1997.",
        "He flew his final mission as a C-130 pilot in 1999, while already flying the Airbus A310 since 1998.",
        "After his promotion to Colonel he became head of the Operations Section at the Air Component and later commander of the newly established Movement and Transport Coordination Center (MTCC) at the unified Defence Staff.",
        "Col Pilot Lousberg flew the A310 until he left active service on 1 October 2005.",
        "He then began a second career as an airline pilot, flying for another 14 years successively on the A310, A330, A340 and A380.",
        "He closed his career as a versatile pilot with 24,390 flying hours.",
      ],
    },
  },
  de: {
    intro: {
      title: "Wie alles begann!",
      paragraphs: [
        "Die Dakota Association wurde 1993 gegründet und ist eine vzw mit dem Auftrag, eine möglichst vollständige Sammlung jener Flugzeuge zu erwerben, zu dokumentieren, zu erhalten und zu pflegen, die seit Beginn des Zweiten Weltkriegs bis heute vom belgischen militärischen Transportgeschwader geflogen wurden.",
        "Unsere Aufgabe ist es, die Artefakte, Bücher, Zeitschriften und Handbücher zu diesem Auftrag zu bewahren. Das Museum beherbergt heute Aufnahmen sämtlicher Flugzeuge, die je mit der 15. Wing geflogen sind, eine umfangreiche Luftfahrt-Ausstellungsgalerie sowie das aktuellste Archiv zu allen Flugzeugmustern, Upgrade-Programmen und Einsätzen, die von den Männern und Frauen der 15. Wing vorbereitet, geflogen und sicher betreut wurden.",
        "Im Freien zeigen wir Ihnen außerdem unseren Flugzeugpark mit einer Reihe von Maschinen, die von Melsbroek aus in alle vier Himmelsrichtungen geflogen sind.",
      ],
    },
    huybens: {
      title: "Unser Gründer: Oberst Pilot Jo Huybens",
      paragraphs: [
        "Jo Huybens wurde am 22. November 1938 geboren. Am 1. März 1960 wurde er als Flugschüler der 144A-Promotion in die Luftwaffe aufgenommen und begann seine Ausbildung auf der SV4-Bis (Stampe – Vertongen) in Goetsenhoven. Im Juni desselben Jahres sollte er zur Fouga Magister für seine weiterführende Ausbildung wechseln, die normalerweise in Kamina, Kongo, stattfand. Die nach der Unabhängigkeit Kongos ausgebrochenen Unruhen machten dies unmöglich, und so kam Jo am 2. November in Salon-de-Provence an, um seine fliegerischen Fähigkeiten auf der CM170B (Fouga Magister) zu vervollkommnen. Am 31. Mai kehrte er nach Belgien zurück und setzte seine Ausbildung auf der Lockheed T33 in Brustem fort. Am 10. November 1961 erhielt Jo seine Schwingen. Die 1. Staffel der 2. Wing in Florennes wurde ab dem 12. Juni seine neue Heimat. Am 15. Juli 1976 wurde Jo, inzwischen Major, Kommandant der 2. Staffel, ebenfalls in Florennes. Anschließend war er nacheinander Comd Fluggruppe in Brustem, Chief Recce Branch bei der AAFCE (Allied Air Forces Central Europe) und stellvertretender Stabschef des Kommandos TAF in Evere. Am 24. August 1990 wurde Oberst Pilot Huybens Kommandeur der 15. Wing.",
        "Jo ging 1993 in den Ruhestand und widmete fortan seine Freizeit dem Aufbau und der Entwicklung des DAKOTA-Dokumentationszentrums.",
        "Oberst Pilot a.D. Jo Huybens verstarb 2003.",
      ],
    },
    hoeben: {
      title: "Der zweite Vorsitzende: Generalleutnant Pilot i.G. a.D. René Hoeben",
      paragraphs: [
        "Nach dem Tod von Jo Huybens im Jahr 2003 übernahm Generalleutnant Pilot a.D. René Hoeben auf ausdrücklichen Wunsch von Jo das Amt des Vorsitzenden. Hauptmann Pilot i.G. Hoeben kam im Sommer 1969 zur 15. Wing und flog dort die C119. Am 24. Mai 1972 erlangten er und Kommandant Pilot Delauré nach zweimonatiger Ausbildung auf der Little Rock AFB als Erste die volle taktische Qualifikation auf der C130E. Nach ihrer Rückkehr nach Melsbroek wurden sie mit der Umschulung der C119-Piloten auf die C130 beauftragt. Anschließend bekleidete er bei der 15. Wing, abwechselnd mit Stabsverwendungen, die Positionen Comd 20. Staffel, Comd Fluggruppe und schließlich 1982 Wing-Kommandeur. Er behielt seine Qualifikation als C130-Bordkommandant und flog seinen letzten Einsatz am 22. Juli 1994. Am 31. März 1997 verließ er den aktiven Dienst.",
        "GenLt Pilot i.G. a.D. René Hoeben war von 2003 bis Ende Juli 2019 Vorsitzender von DAKOTA.",
      ],
    },
    lousberg: {
      title: "Unser aktueller Vorsitzender: Oberst Pilot a.D. Jacques Lousberg",
      paragraphs: [
        "Nach 16 Jahren übergab GenLt Pilot i.G. a.D. R. Hoeben den Vorsitz am 29. Juli 2019 an Oberst Pilot a.D. J. Lousberg.",
        "Unterleutnant Pilot J. Lousberg kam 1977 zur 15. Wing und begann seine Laufbahn in der 21. Staffel als Kopilot auf der SW03 Merlin und wurde 1978 Bordkommandant auf diesem Muster.",
        "Anfang 1979 wurde er ausgewählt, die C-130H in der 20. Staffel zu fliegen. Am 19. Dezember 1980 wurde er Bordkommandant auf der Hercules und 1982 Fluglehrer auf dem Muster.",
        "1983 wurde er als Operationsoffizier der 20. Staffel eingesetzt. Nach seiner Stabsoffiziersausbildung wurde er Kommandant der TCU (Transport Conversion Unit). 1991 wurde er CO der 20. Staffel und 1999 Comd Fluggruppe der 15. Wing, abwechselnd mit Stabsfunktionen. Die wohl wichtigste Stabsfunktion war die des Projektoffiziers für das „Avionics Upgrade\" der C-130 zwischen 1989 und 1991 und erneut von 1994 bis 1997.",
        "Seinen letzten Einsatz als C-130-Pilot flog er 1999, während er bereits seit 1998 die Airbus A310 flog.",
        "Nach seiner Beförderung zum Oberst wurde er Leiter der Sektion Operationen bei der Luftkomponente und später Kommandant des neu eingerichteten Movement and Transport Coordination Center (MTCC) im vereinigten Verteidigungsstab.",
        "Oberst Pilot Lousberg flog die A310, bis er am 1. Oktober 2005 den aktiven Dienst verließ.",
        "Anschließend begann er eine zweite Laufbahn als Linienpilot und flog weitere 14 Jahre nacheinander auf A310, A330, A340 und A380.",
        "Er beendete seine Laufbahn als vielseitiger Pilot mit 24.390 Flugstunden.",
      ],
    },
  },
};

function HeroFullBleed({ lang }) {
  const t = homeLocale(lang).hero;
  return (
    <section className="hero">
      <div className="shell">
        <div className="eyebrow reveal in" style={{ marginBottom: 20 }}>
          {t.eyebrow}
        </div>
        <div className="hero-photo reveal in">
          <img
            src="assets/c130-chief-livery-sunset.jpeg"
            alt={t.photoAlt}
            style={{ position: "absolute", inset: 0, width: "100%", height: "100%", objectFit: "cover", display: "block" }}
          />
          <div className="ref-tag">{t.ref}</div>
          <div className="caption-tag" style={{ background: "rgba(14, 58, 107, 0.82)", backdropFilter: "blur(4px)" }}>
            {t.photoCaption}
          </div>
        </div>

        <h1 className="hero-title reveal" style={{ marginTop: 48 }}>
          {t.t1}<br />
          {t.t2} <span className="red">{t.t2_em}</span>
        </h1>

        <div className="hero-meta-row reveal">
          <div className="col">
            <p style={{ fontSize: 17, lineHeight: 1.6 }}>{t.body}</p>
          </div>
          <div className="col">
            <h4>{t.loc_k}</h4>
            <p>{t.loc_v}</p>
          </div>
          <div className="col">
            <h4>{t.cur_k}</h4>
            <p>{t.cur_v}</p>
          </div>
          <div className="col">
            <h4>{t.vis_k}</h4>
            <p>{t.vis_v}</p>
          </div>
        </div>
      </div>
    </section>
  );
}

function SectionHead({ s }) {
  return (
    <div className="section-head reveal">
      <div className="section-num">{s.num}</div>
      <h2 className="section-title">
        {s.title} <em>{s.em}</em>
      </h2>
      <div className="section-aside">{s.aside}</div>
    </div>
  );
}

function FleetSection({ lang, onOpen }) {
  const t = homeLocale(lang).sections.fleet;
  const originMap =
    (typeof AIRCRAFT_ORIGIN_I18N !== "undefined" && (AIRCRAFT_ORIGIN_I18N[lang] || AIRCRAFT_ORIGIN_I18N.nl)) || {};
  return (
    <section className="section" id="fleet">
      <div className="shell">
        <SectionHead s={t} />
        <div className="aircraft-grid catalog">
          {AIRCRAFT.slice(0, 6).map((a, i) => {
            const al = aircraftForLang(a, lang);
            const Shape = SILHOUETTES[a.shape];
            const originLabel = originMap[a.origin] || a.origin;
            return (
              <div key={a.id} className="aircraft-card reveal" onClick={() => onOpen && onOpen(a)}>
                <div className="card-top">
                  <div className="card-idx">{t.cardIdxPrefix} {String(i + 1).padStart(2, "0")} · {originLabel}</div>
                  <div className="card-years">{al.years}</div>
                </div>
                <div className="blueprint" style={a.photo ? { padding: 0, overflow: "hidden", background: "#0a1c33" } : undefined}>
                  {a.photo ? (
                    <img src={a.photo} alt={al.name} style={{ width: "100%", height: "100%", objectFit: "cover", display: "block", minHeight: 180 }} />
                  ) : (
                    <Shape />
                  )}
                </div>
                <div>
                  <h3 className="card-name">{al.name}</h3>
                  <p className="card-sub">{al.subtitle}</p>
                </div>
                <div className="card-footer">
                  <span>{t.tailLabel} · {a.tail}</span>
                  <span>{t.readFile}</span>
                </div>
              </div>
            );
          })}
        </div>
      </div>
    </section>
  );
}

function TimelineSection({ lang }) {
  const t = homeLocale(lang).sections.timeline;
  const Ti = typeof TIMELINE_I18N !== "undefined" ? TIMELINE_I18N : {};
  const rows = Ti[lang] || Ti.nl || [];
  return (
    <section className="section" id="timeline">
      <div className="shell">
        <SectionHead s={t} />
        <div className="timeline reveal">
          <div className="timeline-track">
            {rows.map((ev, i) => (
              <div key={ev.y} className={"timeline-item " + (i % 2 === 0 ? "above" : "below")}>
                <div className="timeline-body">
                  <h4 className="timeline-year" style={{ fontFamily: "var(--serif-display)" }}>{ev.y}</h4>
                  <h4>{ev.t}</h4>
                  <p>{ev.d}</p>
                </div>
              </div>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

function StorySection({ lang }) {
  const t = homeLocale(lang).sections.story;
  return (
    <section className="section" style={{ background: "var(--paper-2)" }}>
      <div className="shell">
        <SectionHead s={t} />
        <div className="story-grid reveal">
          <div className="story-photo">
            <img
              src="assets/15wing-monument.jpg"
              alt={t.photoAlt}
              style={{ position: "absolute", inset: 0, width: "100%", height: "100%", objectFit: "cover", display: "block" }}
            />
            <div className="caption-tag" style={{ background: "rgba(14, 58, 107, 0.82)" }}>
              {t.photoCaption}
            </div>
          </div>
          <div className="story-body">
            <div className="tag-row">
              <span className="tag">{t.tag1}</span>
              <span className="tag">{t.tag2}</span>
              <span className="tag">{t.tag3}</span>
            </div>
            <h3>{t.quote}</h3>
            <p className="lead">
              {t.lead}
            </p>
            <p>
              {t.body}
            </p>
            <div style={{ marginTop: 30 }}>
              <button className="btn btn-ghost">
                {t.oralCta}
                <svg viewBox="0 0 12 12" fill="none"><path d="M 2 6 L 10 6 M 7 3 L 10 6 L 7 9" stroke="currentColor" strokeWidth="1.2" /></svg>
              </button>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

function MissionsSection({ lang }) {
  const t = homeLocale(lang).sections.missions;
  const Mi = typeof MISSIONS_I18N !== "undefined" ? MISSIONS_I18N : {};
  const rows = Mi[lang] || Mi.nl || [];
  return (
    <section className="section" id="missions">
      <div className="shell">
        <SectionHead s={t} />
        <div className="missions-list reveal">
          {rows.map((m) => (
            <div key={m.op} className="mission-row">
              <div className="yr">{m.y}</div>
              <div className="op">
                {m.op}
                {m.date && <div style={{ fontFamily: "var(--mono)", fontSize: 10, letterSpacing: "0.12em", textTransform: "uppercase", opacity: 0.55, marginTop: 4 }}>{m.date}</div>}
              </div>
              <div className="desc">{m.desc}</div>
              <div className="loc">{m.loc}</div>
              <div className="arrow">→</div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

function MagazineSection({ lang }) {
  const t = homeLocale(lang).sections.magazine;
  const Mi = typeof MAGAZINES_I18N !== "undefined" ? MAGAZINES_I18N : {};
  const rows = Mi[lang] || Mi.nl || [];
  return (
    <section className="section" style={{ background: "var(--paper-2)" }}>
      <div className="shell">
        <SectionHead s={t} />
        <div className="mag-grid reveal">
          {rows.map((m, i) => (
            <div key={m.n} className="mag-card">
              <div className="mag-cover">
                <div className={"mag-cover-inner " + m.color}>
                  <div>
                    <div className="mag-cover-label">{t.magCoverLabel}</div>
                    <div className="mag-cover-label" style={{ marginTop: 4 }}>{m.n}</div>
                  </div>
                  <div className="mag-cover-silhouette">
                    <svg viewBox="0 0 400 180" width="100%" height="100%">
                      <g fill="none" stroke="currentColor" strokeWidth="1">
                        <path d="M 50 90 Q 48 78 65 72 L 280 68 Q 320 70 350 78 Q 365 84 370 90 Q 365 96 350 102 L 280 112 L 65 108 Q 48 102 50 90 Z" />
                        <path d="M 160 72 L 30 48 L 160 82 Z" />
                        <path d="M 160 108 L 30 132 L 160 98 Z" />
                      </g>
                    </svg>
                  </div>
                  <div className="mag-cover-title">{m.title.split(":")[0]}</div>
                </div>
              </div>
              <div className="mag-meta">
                <span>{m.date}</span>
                <span>{t.magPagesLabel}</span>
              </div>
              <p className="mag-title">{m.title}</p>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

function HomeStorySection({ entry, image, alt, reverse }) {
  return (
    <section className="section">
      <div className="shell">
        <div
          className="reveal"
          style={{
            display: "grid",
            gridTemplateColumns: "minmax(0, 1fr) minmax(0, 1fr)",
            gap: 48,
            alignItems: "start",
          }}
        >
          <div style={{ order: reverse ? 2 : 1 }}>
            <h2 className="section-title" style={{ marginTop: 0, marginBottom: 24 }}>
              {entry.title}
            </h2>
            {entry.paragraphs.map((p, i) => (
              <p key={i} style={{ fontSize: 16, lineHeight: 1.7, marginBottom: 16 }}>{p}</p>
            ))}
          </div>
          <div style={{ order: reverse ? 1 : 2 }}>
            <img
              src={image}
              alt={alt}
              style={{ width: "100%", height: "auto", display: "block", border: "1px solid var(--ink, #0e3a6b)" }}
            />
          </div>
        </div>
      </div>
    </section>
  );
}

function HomePage({ lang }) {
  useReveal();
  const story = HOME_STORY_I18N[lang] || HOME_STORY_I18N.nl;
  return (
    <div className="page">
      <HomeStorySection entry={story.intro} image="assets/home-dakota-dc3.jpg" alt="Dakota DC-3" reverse={false} />
      <HomeStorySection entry={story.huybens} image="assets/huybens-1992.jpg" alt="Jo Huybens" reverse={true} />
      <HomeStorySection entry={story.hoeben} image="assets/hoeben-portrait.jpg" alt="René Hoeben" reverse={false} />
      <HomeStorySection entry={story.lousberg} image="assets/lousberg-portrait.png" alt="Jacques Lousberg" reverse={true} />
    </div>
  );
}

Object.assign(window, { HomePage, MissionsSection, MagazineSection });
