Table of Contents

A cheating wife and her former Royal Marine lover have been sentenced to prison for a gruesome scheme to murder her soldier husband and profit from his life insurance policy.

Michelle Mills, 46, orchestrated a fake armed break-in with her lover Geraint Berry as part of a plan to kill Christopher Mills, 48.

Michelle Mills and her husband Christopher Mills smiling for a photo, with heart stickers covering portions of the image.Michelle Mills, pictured with husband Christopher, conspired to murder himCredit: WNS Geraint Berry, a bald man with a receding hairline, wearing a white t-shirt, smiles at the camera.She had been having an affair with Geraint Berry, and they wanted to be togetherCredit: Athena Two black gas masks with filter canisters, found in rucksacks.He and an accomplice wore gas masks to simulate an armed raidCredit: WNS Thermal camera footage from a police helicopter shows armed police officers approaching Geraint Berry and Steven Thomas, who are taking cover in undergrowth.The pair were later apprehended while hiding in a bushCredit: Athena

She had been involved in a three-month affair with Berry, 46, and informed him that she wanted her husband dead so they could "move forward" together.

The deceitful couple created a “kill kit” consisting of imitation firearms, balaclavas, cable ties, and gas masks.

They have now been imprisoned after being found guilty of conspiracy to commit murder.

Berry received a sentence of 19 years and 18 months, while Mills was sentenced to 19 years.

Fellow soldier Steven Thomas, who was “recruited” by Berry, was acquitted of the same charge but was found guilty of possessing a firearm with the intent to cause Christopher to believe unlawful violence would be used against him.

In a victim impact statement, Christopher expressed that he was “devastated” by the plot, which has “pretty much ruined my life.”

He also shared with the court that he believed he had a “comfortable and happy life” and now suffers from anxiety and stress.

Swansea Crown Court heard on September 20 that Berry and Thomas, 47, armed themselves with guns before approaching Christopher’s caravan.

After they burst in, Christopher was severely beaten but managed to fend off Berry and Thomas, forcing them to flee.

Mills texted her lover instructing him to leave the scene, adding: “Delete all communications on both phones.”

She then called 999 and claimed her husband had been attacked by two unknown intruders.

Officers rushed to the scene and discovered Berry and Thomas hiding in a bush alongside rucksacks filled with gas masks, cable ties, and a telescopic gun sight.

They also found a fake “suicide note” crafted to appear as though it was written by Christopher and addressed to his wife, whose nickname is “Babs.”

Mills was arrested, and bodycam footage captured her asking officers: “I’m going to jail for this, aren’t I?”

She later told police that the plot to kill her husband was merely a “fantasy.”

Steven Thomas, 47, an ex-RAF airman involved in a murder plot, wearing a blue jacket and a grey beanie with a camera on a tripod next to him.Steven Thomas was ‘recruited’ by BerryCredit: WNS Cable ties on a piece of paper.The pair armed themselves with cable tiesCredit: WNS A</p>
                    </div>
                                                            <aside id="cover_ad-articleinline-01m3ey77hb2xrx6jq2rccff4wc" class="publishing-ad publishing-ad--article_inline"
           aria-label="Advertisement"
           data-ad-reserved-height="282px"
           style="--ad-min-height: 282px!important;--ad-minheight: 250px!important;height:282px!important;min-height:282px!important;max-height:282px!important;overflow:hidden!important;">
        <span class="publishing-ad__label">Advertisement</span>

                    <div id="ad-articleinline-01m3ey77hb2xrx6jq2rccff4wc"
                 class="adsense-slot"
                 data-ad-client="ca-pub-1655285450495256"
                 data-ad-slot="5722236753"
                 data-style="display:block;width:100%;min-width:250px;min-height:280px!important"
                 data-page-type="news"><ins class="adsbygoogle"
                     style="display:block;width:100%;min-height:280px!important"
                     data-ad-client="ca-pub-1655285450495256"
                     data-ad-slot="5722236753"
                     data-ad-format="auto"
                     data-full-width-responsive="true"></ins></div>
        
                    <div class="ad-fallback" data-ad-fallback>
                <a class="direct-ad direct-ad--house" href="https://www.flyingeze.com/contact" aria-label="Plan an advertising campaign with FlyingEze">
                    <span class="direct-ad--house__copy">
                        <small>FlyingEze for brands</small>
                        <strong>Reach people ready to discover, decide and act.</strong>
                        <span class="direct-ad--house__summary">Connect with readers across technology, business, money and opportunities.</span>
                    </span>
                    <span class="direct-ad--house__action">Plan a campaign <b aria-hidden="true">→</b></span>
                </a>
            </div>
            </aside>
                    <section class="newsletter-card my-4" aria-labelledby="newsletter-01m3ey77hb2xrx6jq2rccff4wd-title">
        <div class="newsletter-card__content">
            <span class="eyebrow">The FlyingEze briefing</span>
            <h2 id="newsletter-01m3ey77hb2xrx6jq2rccff4wd-title">Travel smarter with the FlyingEze briefing</h2>
            <p>Useful flight alerts, aviation news and practical travel guides—without the noise.</p>
                    </div>
        <form class="newsletter-card__form" action="https://www.flyingeze.com/subscribe" method="post" data-newsletter-form>
            <input type="hidden" name="_token" value="Q6VaHlf2rvx7DOT1HP66dBWUg9hycVmOCxY4d5yD" autocomplete="off">            <input type="hidden" name="source" value="article">
            <div class="honeypot" aria-hidden="true">
                <label for="newsletter-01m3ey77hb2xrx6jq2rccff4wd-website">Website</label>
                <input id="newsletter-01m3ey77hb2xrx6jq2rccff4wd-website" name="website" type="text" tabindex="-1" autocomplete="off">
            </div>
            <label class="visually-hidden" for="newsletter-01m3ey77hb2xrx6jq2rccff4wd-email">Email address</label>
            <div class="newsletter-card__controls">
                <input id="newsletter-01m3ey77hb2xrx6jq2rccff4wd-email" name="email" type="email" inputmode="email" autocomplete="email" placeholder="you@example.com" required maxlength="254">
                <button class="btn btn-primary" type="submit">Subscribe</button>
            </div>
            <small>Free to join. Unsubscribe anytime. Read our <a href="https://www.flyingeze.com/privacy-policy">privacy policy</a>.</small>
        </form>
    </section>

                                            <nav class="article-meta-tags" aria-label="Article topics">
                            <a href="https://www.flyingeze.com/category/news">News</a><a href="https://www.flyingeze.com/category/uk-news">UK News</a>                            <a href="https://www.flyingeze.com/tag/wales">#Wales</a><a href="https://www.flyingeze.com/tag/court">#Court</a><a href="https://www.flyingeze.com/tag/crime">#Crime</a><a href="https://www.flyingeze.com/tag/police">#Police</a>                        </nav>
                                        <div class="share-tools my-4" data-share-group data-share-url="https://www.flyingeze.com/cheating-wife-lover-jailed-murder-plot-husband" data-share-title="Wife and Ex-Marine Lover Sentenced for Chilling Murder Plot Against Soldier Husband Using 'Kill Kit'">
    <span class="share-tools__label">Share</span>
    <button type="button" class="share-button share-button--native" data-native-share aria-label="Share using your device">
        <span aria-hidden="true">↗</span><span class="share-button__text">Share</span>
    </button>
    <a class="share-button" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.flyingeze.com%2Fcheating-wife-lover-jailed-murder-plot-husband" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook">f</a>
    <a class="share-button" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.flyingeze.com%2Fcheating-wife-lover-jailed-murder-plot-husband&text=Wife%20and%20Ex-Marine%20Lover%20Sentenced%20for%20Chilling%20Murder%20Plot%20Against%20Soldier%20Husband%20Using%20%27Kill%20Kit%27" target="_blank" rel="noopener noreferrer" aria-label="Share on X">𝕏</a>
    <a class="share-button" href="https://wa.me/?text=Wife%20and%20Ex-Marine%20Lover%20Sentenced%20for%20Chilling%20Murder%20Plot%20Against%20Soldier%20Husband%20Using%20%27Kill%20Kit%27%20https%3A%2F%2Fwww.flyingeze.com%2Fcheating-wife-lover-jailed-murder-plot-husband" target="_blank" rel="noopener noreferrer" aria-label="Share on WhatsApp">wa</a>
            <a class="share-button" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.flyingeze.com%2Fcheating-wife-lover-jailed-murder-plot-husband" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn">in</a>
        <a class="share-button" href="mailto:?subject=Wife%20and%20Ex-Marine%20Lover%20Sentenced%20for%20Chilling%20Murder%20Plot%20Against%20Soldier%20Husband%20Using%20%27Kill%20Kit%27&body=A%20CHEATING%20wife%20and%20her%20ex-Royal%20Marine%20lover%20have%20been%20jailed%20over%20a%20grisly%20plot%20to%20murder%20her%20soldier%20husband%20and%20cash%20in%20his%20life%20insurance.%20Michelle%20Mills%2C...%0A%0Ahttps%3A%2F%2Fwww.flyingeze.com%2Fcheating-wife-lover-jailed-murder-plot-husband" aria-label="Share by email">@</a>
        <button type="button" class="share-button" data-copy-share aria-label="Copy link">⧉</button>
    <span class="share-tools__status" data-share-status role="status" aria-live="polite"></span>
</div>
                    <aside class="fe-author-bio" aria-label="About the author">
    <img class="fe-author-bio__photo" src="https://www.flyingeze.com/user.png" width="96" height="96" loading="lazy" decoding="async" alt="Eze Chidiebere Paul">
    <div>
        <span class="eyebrow">Written by</span>
        <h2><a href="https://www.flyingeze.com/author/superadmin" rel="author">Eze Chidiebere Paul</a></h2>
        <p> I'm dedicated to creating high-quality content that informs, inspires, and delights. If you have any questions or suggestions, don't hesitate to get in touch. Happy reading!</p>    </div>
</aside>
                </div>
                <aside class="article-rail" aria-label="Article tools">
                    <nav class="fe-toc article-toc-rail" data-article-toc="[data-article-body]" data-toc-minimum-words="700" aria-label="On this page" hidden>
    <h2>In this article</h2><ol></ol>
</nav>
                    <aside id="cover_ad-sidebar-01m3ey77hdv6jpzf62wwmr5wh9" class="publishing-ad publishing-ad--sidebar"
           aria-label="Advertisement"
           data-ad-reserved-height="282px"
           style="--ad-min-height: 282px!important;--ad-minheight: 250px!important;height:282px!important;min-height:282px!important;max-height:282px!important;overflow:hidden!important;">
        <span class="publishing-ad__label">Advertisement</span>

                    <div id="ad-sidebar-01m3ey77hdv6jpzf62wwmr5wh9"
                 class="adsense-slot"
                 data-ad-client="ca-pub-1655285450495256"
                 data-ad-slot="5049919301"
                 data-style="display:block;width:100%;min-width:250px;min-height:250px!important"
                 data-page-type="news"><ins class="adsbygoogle"
                     style="display:block;width:100%;min-height:250px!important"
                     data-ad-client="ca-pub-1655285450495256"
                     data-ad-slot="5049919301"
                     data-ad-format="auto"
                     data-full-width-responsive="true"></ins></div>
        
                    <div class="ad-fallback" data-ad-fallback>
                <a class="direct-ad direct-ad--house" href="https://www.flyingeze.com/contact" aria-label="Plan an advertising campaign with FlyingEze">
                    <span class="direct-ad--house__copy">
                        <small>FlyingEze for brands</small>
                        <strong>Reach people ready to discover, decide and act.</strong>
                        <span class="direct-ad--house__summary">Connect with readers across technology, business, money and opportunities.</span>
                    </span>
                    <span class="direct-ad--house__action">Plan a campaign <b aria-hidden="true">→</b></span>
                </a>
            </div>
            </aside>
                </aside>
            </div>

            <nav class="article-navigation" aria-label="More articles">
                    <a class="article-navigation__card article-navigation__card--previous" href="https://www.flyingeze.com/demi-sims-secretly-back-with-ex-after-split">
                <img src="https://image.flyingeze.com/posts/file/aa56c5/demi-sims-grabs-girlfriend-jazz-1032442381-49b0ed.jpg" width="160" height="100" loading="lazy" decoding="async" alt="">
                <span><small>Previous story</small><strong>TOWIE's Demi Sims Sparks Rumors of a Reunion with Ex Following Surprising Breakup!</strong></span>
            </a>
        
                    <a class="article-navigation__card article-navigation__card--next" href="https://www.flyingeze.com/epl-arteta-gives-arsenal-injury-updates-ahead-everton-clash">
                <span><small>Next story</small><strong>EPL: Arteta Provides Injury Updates for Arsenal Ahead of Everton Showdown</strong></span>
                <img src="https://www.flyingeze.com/storage/posts/1d5909/arteta.jpg" width="160" height="100" loading="lazy" decoding="async" alt="">
            </a>
            </nav>

            <section class="fe-related" aria-labelledby="related-heading">
        <div class="section-heading"><h2 id="related-heading">Continue reading</h2></div>
        <div class="fe-card-grid fe-related__grid">
                            <article class="fe-story-card fe-story-card--standard">
    <a class="fe-story-card__media" href="https://www.flyingeze.com/mum-daughter-die-hours-apart-cancer-battle" aria-label="Read Mum, 56, and daughter, 28, die just 10 hours apart after battling cancer as devastated family bury pair together">
        <img src="https://image.flyingeze.com/posts/file/c11ecc/newspress-collage-q3ajo0cqx-1790425372571.webp" sizes="(max-width: 767px) calc(100vw - 24px), (max-width: 991px) 50vw, 25vw" data-fallback-src="https://www.flyingeze.com/blank.svg" alt="Mum, 56, and daughter, 28, die just 10 hours apart after battling cancer as devastated family bury pair together" width="480" height="300" loading="lazy" fetchpriority="low" decoding="async">
    </a>
    <div class="fe-story-card__body">
        <div class="fe-story-card__meta">
                                                <time datetime="2026-09-26T12:24:44+00:00">59 minutes ago</time>                    </div>
                    <h3 class="fe-story-card__title"><a href="https://www.flyingeze.com/mum-daughter-die-hours-apart-cancer-battle">Mum, 56, and daughter, 28, die just 10 hours apart after battling cancer as devastated family bury pair together</a></h3>
                <p class="fe-story-card__dek">A MUM and daughter have tragically died from cancer just ten hours apart – leaving their heartbroken family to bury the pair together.  Cibele Marchis, 28, lost...</p>                    <footer class="fe-story-card__footer"><a class="fe-author-badge" href="https://www.flyingeze.com/author/superadmin" rel="author">
                        <span>Eze Chidiebere Paul</span>
        </a>
    </footer>
            </div>
</article>
                            <article class="fe-story-card fe-story-card--standard">
    <a class="fe-story-card__media" href="https://www.flyingeze.com/couple-mock-disabled-stepbrother-death" aria-label="Read Moment sick couple swear at stepbrother weighing just 6 stone for ‘putting it on’ before he died from horror abuse">
        <img src="https://image.flyingeze.com/posts/file/7573a9/89fd23d4-4aa1-454f-9fc5-b89fb1ccbfc8.webp" sizes="(max-width: 767px) calc(100vw - 24px), (max-width: 991px) 50vw, 25vw" data-fallback-src="https://www.flyingeze.com/blank.svg" alt="Moment sick couple swear at stepbrother weighing just 6 stone for ‘putting it on’ before he died from horror abuse" width="480" height="300" loading="lazy" fetchpriority="low" decoding="async">
    </a>
    <div class="fe-story-card__body">
        <div class="fe-story-card__meta">
                                                <time datetime="2026-09-26T11:27:03+00:00">1 hour ago</time>                    </div>
                    <h3 class="fe-story-card__title"><a href="https://www.flyingeze.com/couple-mock-disabled-stepbrother-death">Moment sick couple swear at stepbrother weighing just 6 stone for ‘putting it on’ before he died from horror abuse</a></h3>
                <p class="fe-story-card__dek">THIS is the harrowing moment a twisted couple mock their disabled step-brother for “putting it on” before he died amid a campaign of cruelty.  Rubin Blount, 28,...</p>                    <footer class="fe-story-card__footer"><a class="fe-author-badge" href="https://www.flyingeze.com/author/superadmin" rel="author">
                        <span>Eze Chidiebere Paul</span>
        </a>
    </footer>
            </div>
</article>
                            <article class="fe-story-card fe-story-card--standard">
    <a class="fe-story-card__media" href="https://www.flyingeze.com/nnamdi-kanu-court-acted-like-tribunal-determined-to-convict-at-all-costs-lawyer" aria-label="Read Nnamdi Kanu: Court acted like tribunal determined to convict at all costs – Lawyer">
        <img src="https://www.flyingeze.com/storage/posts/e8e496/nnamdi-kanu-1200x798-1.jpg" sizes="(max-width: 767px) calc(100vw - 24px), (max-width: 991px) 50vw, 25vw" data-fallback-src="https://www.flyingeze.com/blank.svg" alt="Nnamdi Kanu: Court acted like tribunal determined to convict at all costs – Lawyer" width="480" height="300" loading="lazy" fetchpriority="low" decoding="async">
    </a>
    <div class="fe-story-card__body">
        <div class="fe-story-card__meta">
                                                <time datetime="2026-09-26T11:15:35+00:00">2 hours ago</time>                    </div>
                    <h3 class="fe-story-card__title"><a href="https://www.flyingeze.com/nnamdi-kanu-court-acted-like-tribunal-determined-to-convict-at-all-costs-lawyer">Nnamdi Kanu: Court acted like tribunal determined to convict at all costs – Lawyer</a></h3>
                <p class="fe-story-card__dek">Amid the controversy over the delay in listing the appeal filed by Nnamdi Kanu to challenge his conviction, a lawyer, Onyedikachi Ifedi, has said the trial cour...</p>                    <footer class="fe-story-card__footer"><a class="fe-author-badge" href="https://www.flyingeze.com/author/superadmin" rel="author">
                        <span>Eze Chidiebere Paul</span>
        </a>
    </footer>
            </div>
</article>
                            <article class="fe-story-card fe-story-card--standard">
    <a class="fe-story-card__media" href="https://www.flyingeze.com/murdered-baby-garrotted-twine-under-floor-cops-probe-clue" aria-label="Read I found ‘murdered’ baby deliberately ‘garrotted’ with twine under floor – cops NEED to probe vital clue to solve mystery">
        <img src="https://image.flyingeze.com/posts/file/de14b9/david-dent-baby-2-1.webp" sizes="(max-width: 767px) calc(100vw - 24px), (max-width: 991px) 50vw, 25vw" data-fallback-src="https://www.flyingeze.com/blank.svg" alt="I found ‘murdered’ baby deliberately ‘garrotted’ with twine under floor – cops NEED to probe vital clue to solve mystery" width="480" height="300" loading="lazy" fetchpriority="low" decoding="async">
    </a>
    <div class="fe-story-card__body">
        <div class="fe-story-card__meta">
                                                <time datetime="2026-09-26T10:54:23+00:00">2 hours ago</time>                    </div>
                    <h3 class="fe-story-card__title"><a href="https://www.flyingeze.com/murdered-baby-garrotted-twine-under-floor-cops-probe-clue">I found ‘murdered’ baby deliberately ‘garrotted’ with twine under floor – cops NEED to probe vital clue to solve mystery</a></h3>
                <p class="fe-story-card__dek">A BUILDER who found the 100-year-old remains of a dead baby boy hidden under floorboards says he knew instantly he had been “murdered”. David Dent suffers from...</p>                    <footer class="fe-story-card__footer"><a class="fe-author-badge" href="https://www.flyingeze.com/author/superadmin" rel="author">
                        <span>Eze Chidiebere Paul</span>
        </a>
    </footer>
            </div>
</article>
                    </div>
    </section>

            <aside id="cover_ad-articleend-01m3ey77hmrwj4vp4q61zbzwyg" class="publishing-ad publishing-ad--article_end"
           aria-label="Advertisement"
           data-ad-reserved-height="282px"
           style="--ad-min-height: 282px!important;--ad-minheight: 250px!important;height:282px!important;min-height:282px!important;max-height:282px!important;overflow:hidden!important;">
        <span class="publishing-ad__label">Advertisement</span>

                    <div id="ad-articleend-01m3ey77hmrwj4vp4q61zbzwyg"
                 class="adsense-slot"
                 data-ad-client="ca-pub-1655285450495256"
                 data-ad-slot="5122649188"
                 data-style="display:block;width:100%;min-width:250px;min-height:100px!important"
                 data-page-type="news"><ins class="adsbygoogle"
                     style="display:block;width:100%;min-height:100px!important"
                     data-ad-client="ca-pub-1655285450495256"
                     data-ad-slot="5122649188"
                     data-ad-format="auto"
                     data-full-width-responsive="true"></ins></div>
        
                    <div class="ad-fallback" data-ad-fallback>
                <a class="direct-ad direct-ad--house" href="https://www.flyingeze.com/contact" aria-label="Plan an advertising campaign with FlyingEze">
                    <span class="direct-ad--house__copy">
                        <small>FlyingEze for brands</small>
                        <strong>Reach people ready to discover, decide and act.</strong>
                        <span class="direct-ad--house__summary">Connect with readers across technology, business, money and opportunities.</span>
                    </span>
                    <span class="direct-ad--house__action">Plan a campaign <b aria-hidden="true">→</b></span>
                </a>
            </div>
            </aside>

                    </article>
        <div class="article-stream__sentinel" data-article-stream-sentinel aria-hidden="true"></div>
        <p class="article-stream__status" data-article-stream-status role="status" aria-live="polite"></p>
    </div>
</main>
<!-- Wrapper end -->

    <footer class="site-footer" role="contentinfo">
    <div class="container">
        <section class="newsletter-card newsletter-card--compact" id="subscribe" aria-labelledby="newsletter-01m3ey77hsxkxa7zgk4dm3cbjq-title">
        <div class="newsletter-card__content">
            <span class="eyebrow">The FlyingEze briefing</span>
            <h2 id="newsletter-01m3ey77hsxkxa7zgk4dm3cbjq-title">Travel smarter with the FlyingEze briefing</h2>
            <p>Useful flight alerts, aviation news and practical travel guides—without the noise.</p>
                    </div>
        <form class="newsletter-card__form" action="https://www.flyingeze.com/subscribe" method="post" data-newsletter-form>
            <input type="hidden" name="_token" value="Q6VaHlf2rvx7DOT1HP66dBWUg9hycVmOCxY4d5yD" autocomplete="off">            <input type="hidden" name="source" value="footer">
            <div class="honeypot" aria-hidden="true">
                <label for="newsletter-01m3ey77hsxkxa7zgk4dm3cbjq-website">Website</label>
                <input id="newsletter-01m3ey77hsxkxa7zgk4dm3cbjq-website" name="website" type="text" tabindex="-1" autocomplete="off">
            </div>
            <label class="visually-hidden" for="newsletter-01m3ey77hsxkxa7zgk4dm3cbjq-email">Email address</label>
            <div class="newsletter-card__controls">
                <input id="newsletter-01m3ey77hsxkxa7zgk4dm3cbjq-email" name="email" type="email" inputmode="email" autocomplete="email" placeholder="you@example.com" required maxlength="254">
                <button class="btn btn-primary" type="submit">Subscribe</button>
            </div>
            <small>Free to join. Unsubscribe anytime. Read our <a href="https://www.flyingeze.com/privacy-policy">privacy policy</a>.</small>
        </form>
    </section>
        <div class="site-footer__grid">
            <section>
                <img src="https://www.flyingeze.com/logo.svg" width="150" height="30" loading="lazy" decoding="async" alt="FlyingEze">
                <p>A digital media and technology platform helping people understand technology, business, money, opportunities and important developments — while providing tools and services that help them act.</p>
            </section>
            <nav aria-label="Explore">
                <h2>Explore</h2>
                <ul>
                                            <li><a href="https://www.flyingeze.com">Latest</a></li>
                                            <li><a href="https://www.flyingeze.com/category/technology">Technology</a></li>
                                            <li><a href="https://www.flyingeze.com/category/business">Business</a></li>
                                            <li><a href="https://www.flyingeze.com/category/money">Money</a></li>
                                            <li><a href="https://www.flyingeze.com/opportunities">Opportunities</a></li>
                                            <li><a href="https://www.flyingeze.com/tools">Tools</a></li>
                                            <li><a href="https://www.flyingeze.com/services">Services</a></li>
                                        <li><a href="https://www.flyingeze.com/explore">Our ecosystem</a></li>                </ul>
            </nav>
            <nav aria-label="Travel products">
                <h2>Travel & aviation</h2>
                <ul>
                                            <li><a href="https://www.flyingeze.com/flight-updates">Flight updates</a></li>
                        <li><a href="https://www.flyingeze.com/airports">Airport directory</a></li>
                        <li><a href="https://www.flyingeze.com/airlines">Airline directory</a></li>
                        <li><a href="https://www.flyingeze.com/routes">Flight routes</a></li>
                                    </ul>
            </nav>
            <nav aria-label="Company">
                <h2>Company</h2>
                <ul>
                    <li><a href="https://www.flyingeze.com/about">About us</a></li>
                    <li><a href="https://www.flyingeze.com/contact">Contact and advertise</a></li>
                    <li><a href="https://www.flyingeze.com/faqs">FAQs</a></li>
                    <li><a href="https://www.flyingeze.com/privacy-policy">Privacy policy</a></li>
                    <li><a href="https://www.flyingeze.com/terms">Terms of use</a></li>
                </ul>
            </nav>
            <nav aria-label="Editorial standards and disclosures">
                <h2>Trust & standards</h2>
                <ul>
                    <li><a href="https://www.flyingeze.com/editorial-policy">Editorial policy</a></li>
                    <li><a href="https://www.flyingeze.com/corrections-policy">Corrections policy</a></li>
                    <li><a href="https://www.flyingeze.com/fact-checking-policy">Fact-checking policy</a></li>
                    <li><a href="https://www.flyingeze.com/ethics-policy">Ethics policy</a></li>
                    <li><a href="https://www.flyingeze.com/advertising-policy">Advertising policy</a></li>
                    <li><a href="https://www.flyingeze.com/affiliate-disclosure">Affiliate disclosure</a></li>
                </ul>
            </nav>
        </div>
        <div class="site-footer__bottom">
            <span>FlyingEze © 2026. All rights reserved.</span>
            <span>Times are shown in the stated local time zone or UTC. Verify time-sensitive travel details with the operator.</span>
        </div>
    </div>
</footer>


<!-- include jquery & bootstrap js -->
<!-- <script defer src="https://www.flyingeze.com/assets/js/libs/bootstrap.min.js"></script> -->

<script>
    (() => {
        const body = document.body;
        const themeToggle = document.getElementById( { megaPanel?.classList.remove('show'); megaToggle?.setAttribute('aria-expanded', 'false'); }; megaToggle?.addEventListener('click', (event) => { event.stopPropagation(); const opening = !megaPanel?.classList.contains('show'); closeMegaMenu(); if (opening) { megaPanel?.classList.add('show'); megaToggle.setAttribute('aria-expanded', 'true'); } }); document.addEventListener('click', (event) => { if (event.target instanceof Element && !event.target.closest('.brand-mega')) closeMegaMenu(); }); const closeMobileNav = () => { const wasOpen = mobileNav?.classList.contains('show'); mobileNav?.classList.remove('show'); mobileNav?.setAttribute('aria-hidden', 'true'); mobileNavOpen?.setAttribute('aria-expanded', 'false'); body.classList.remove('mobile-nav-open'); mobileBackdrop?.remove(); mobileBackdrop = null; if (wasOpen) mobileNavOpen?.focus(); }; const showMobileNav = () => { if (!mobileNav) return; mobileNav.classList.add('show'); mobileNav.setAttribute('aria-hidden', 'false'); mobileNavOpen?.setAttribute('aria-expanded', 'true'); body.classList.add('mobile-nav-open'); mobileBackdrop = document.createElement('button'); mobileBackdrop.type = 'button'; mobileBackdrop.className = 'fe-nav-backdrop'; mobileBackdrop.setAttribute('aria-label', 'Close navigation menu'); mobileBackdrop.addEventListener('click', closeMobileNav, {once: true}); document.body.appendChild(mobileBackdrop); mobileNavClose?.focus(); }; mobileNavOpen?.addEventListener('click', showMobileNav); mobileNavClose?.addEventListener('click', closeMobileNav); mobileNav?.addEventListener('keydown', (event) => { if (event.key !== 'Tab' || !mobileNav.classList.contains('show')) return; const focusable = Array.from(mobileNav.querySelectorAll(focusableSelector)) .filter((element) => element.getClientRects().length > 0); if (!focusable.length) return; const first = focusable[0]; const last = focusable[focusable.length - 1]; if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); } else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); } }); try { saved = localStorage.getItem('site-theme'); } catch (e) {} function setTheme(mode) { body.setAttribute('data-theme', mode); if (themeToggle) { themeToggle.setAttribute('aria-pressed', mode === 'dark' ? 'true' : 'false'); } try { localStorage.setItem('site-theme', mode); } catch (e) {} } if (saved) setTheme(saved); else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) setTheme('dark'); else setTheme('light'); window.showSearchBox = function showSearchBox() { if (!searchOverlay) return; searchPreviouslyFocused = document.activeElement instanceof HTMLElement ? document.activeElement : openSearch; searchOverlay.hidden = false; searchOverlay.classList.add('is-open'); body.classList.add('search-is-open'); searchTriggers.forEach((trigger) => trigger.setAttribute('aria-expanded', 'true')); window.requestAnimationFrame(() => { if (searchInput) { searchInput.focus(); searchInput.select(); } else if (searchPanel) { searchPanel.focus(); } }); }; window.closeSearchBox = function closeSearchBox(options = {}) { if (!searchOverlay) return; searchOverlay.classList.remove('is-open'); searchOverlay.hidden = true; body.classList.remove('search-is-open'); searchTriggers.forEach((trigger) => trigger.setAttribute('aria-expanded', 'false')); if (options.restoreFocus !== false && searchPreviouslyFocused) { searchPreviouslyFocused.focus(); } }; if (themeToggle) { themeToggle.addEventListener('click', () => { const cur = body.getAttribute('data-theme') === 'dark' ? 'light' : 'dark'; setTheme(cur); }); } searchTriggers.forEach((trigger) => trigger.addEventListener('click', window.showSearchBox)); if (closeSearch) closeSearch.addEventListener('click', window.closeSearchBox); if (searchOverlay) { searchOverlay.addEventListener('click', (event) => { if (event.target instanceof Element && event.target.closest('[data-search-close]')) window.closeSearchBox(); }); searchOverlay.addEventListener('keydown', (event) => { if (event.key !== 'Tab') return; const focusable = Array.from(searchOverlay.querySelectorAll(focusableSelector)) .filter((element) => element.getClientRects().length > 0); if (!focusable.length) return; const first = focusable[0]; const last = focusable[focusable.length - 1]; if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); } else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); } }); } document.addEventListener('keydown', (event) => { if (event.key === 'Escape') { if (searchOverlay && !searchOverlay.hidden) window.closeSearchBox(); closeMegaMenu(); if (mobileNav?.classList.contains('show')) closeMobileNav(); } if ((event.key === '/' || (event.key.toLowerCase() === 'k' && (event.ctrlKey || event.metaKey))) && searchOverlay && searchOverlay.hidden) { const tagName = document.activeElement ? document.activeElement.tagName : ''; if (!['INPUT', 'TEXTAREA', 'SELECT'].includes(tagName)) { event.preventDefault(); window.showSearchBox(); } } }); if (progress && initialProgressTarget) { let progressFrame = 0; let progressTarget = initialProgressTarget; let start = 0; let distance = 1; const measureProgress = () => { start = progressTarget.getBoundingClientRect().top + window.scrollY; distance = Math.max(1, progressTarget.offsetHeight - window.innerHeight); }; const paintProgress = () => { const percentage = Math.min(100, Math.max(0, ((window.scrollY - start) / distance) * 100)); progress.style.transform = `scaleX(${percentage / 100})`; progressFrame = 0; }; const requestProgressPaint = () => { if (!progressFrame) progressFrame = window.requestAnimationFrame(paintProgress); }; document.querySelector('[data-reading-progress]')?.classList.add('is-active'); measureProgress(); paintProgress(); window.addEventListener('scroll', requestProgressPaint, {passive: true}); window.addEventListener('resize', () => { measureProgress(); requestProgressPaint(); }, {passive: true}); window.addEventListener('fe:active-article-change', (event) => { if (!(event.detail?.article instanceof HTMLElement)) return; progressTarget = event.detail.article; measureProgress(); paintProgress(); }); window.addEventListener('fe:active-listing-page-change', (event) => { if (!(event.detail?.page instanceof HTMLElement)) return; progressTarget = event.detail.page; measureProgress(); paintProgress(); }); } if (article?.dataset.trendingPost && article.dataset.trendingEndpoint) { const csrf = document.querySelector('meta[name="csrf-token"]')?.content || ''; const articleBody = article.querySelector('[data-article-body]'); const startedAt = Date.now(); let engagementSent = false; let engagementFrame = 0; let articleBodyTop = 0; let articleBodyHeight = 1; const recordTrendingSignal = (signal) => fetch(article.dataset.trendingEndpoint, { method: 'POST', credentials: 'same-origin', keepalive: true, headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'X-CSRF-TOKEN': csrf, }, body: JSON.stringify({post_id: article.dataset.trendingPost, signal}), }).catch(() => {}); const measureEngagement = () => { if (!articleBody) return; articleBodyTop = articleBody.getBoundingClientRect().top + window.scrollY; articleBodyHeight = Math.max(1, articleBody.offsetHeight); }; const checkEngagement = () => { if (engagementSent || !articleBody || document.visibilityState !== 'visible') return; const elapsed = Date.now() - startedAt; const travelled = window.scrollY + window.innerHeight - articleBodyTop; const progressThroughBody = travelled / articleBodyHeight; if (elapsed >= 15000 && progressThroughBody >= .4) { engagementSent = true; recordTrendingSignal('engagement'); window.removeEventListener('scroll', requestEngagementCheck); window.removeEventListener('resize', refreshEngagementMetrics); } }; const requestEngagementCheck = () => { if (engagementFrame) return; engagementFrame = window.requestAnimationFrame(() => { engagementFrame = 0; checkEngagement(); }); }; const refreshEngagementMetrics = () => { measureEngagement(); requestEngagementCheck(); }; measureEngagement(); window.addEventListener('scroll', requestEngagementCheck, {passive: true}); window.addEventListener('resize', refreshEngagementMetrics, {passive: true}); window.setTimeout(requestEngagementCheck, 15000); article.addEventListener('click', (event) => { if (event.target instanceof Element && event.target.closest('.share-button')) { recordTrendingSignal('social'); } }); } document.querySelectorAll('[data-share-group]').forEach((group) => { const status = group.querySelector('[data-share-status]'); const url = group.dataset.shareUrl || window.location.href; const title = group.dataset.shareTitle || document.title; group.querySelector('[data-native-share]')?.addEventListener('click', async () => { if (!navigator.share) { group.querySelector('[data-copy-share]')?.click(); return; } try { await navigator.share({title, url}); } catch (error) {} }); group.querySelector('[data-copy-share]')?.addEventListener('click', async () => { try { await navigator.clipboard.writeText(url); if (status) status.textContent = 'Link copied'; window.setTimeout(() => { if (status) status.textContent = ''; }, 2500); } catch (error) { window.prompt('Copy this link', url); } }); }); document.querySelectorAll('[data-article-body]').forEach((body) => { body.querySelectorAll('table').forEach((table) => { let wrapper = table.closest('.article-table-scroll, .table-responsive'); if (!wrapper) { wrapper = document.createElement('div'); table.before(wrapper); wrapper.appendChild(table); } wrapper.classList.add('article-table-scroll'); wrapper.tabIndex = 0; wrapper.setAttribute('role', 'region'); wrapper.setAttribute('aria-label', table.querySelector('caption')?.textContent?.trim() || 'Scrollable data table'); }); body.querySelectorAll('iframe, embed, object, video').forEach((embed) => { let wrapper = embed.closest('.article-embed, figure'); if (!wrapper) { wrapper = document.createElement('div'); embed.before(wrapper); wrapper.appendChild(embed); } wrapper.classList.add('article-embed'); const source = embed.getAttribute('src') || embed.querySelector?.('source')?.getAttribute('src') || ''; if (embed instanceof HTMLVideoElement || /youtube|youtu\.be|vimeo|dailymotion/i.test(source)) { wrapper.classList.add('article-embed--video'); } if (embed instanceof HTMLIFrameElement) { embed.loading = 'lazy'; if (!embed.title) embed.title = 'Embedded article content'; } }); }); document.querySelectorAll('[data-article-toc]').forEach((toc) => { const target = document.querySelector(toc.dataset.articleToc || '[data-article-body]'); const list = toc.querySelector('ol'); if (!target || !list) return; const minimumWords = Number.parseInt(toc.dataset.tocMinimumWords || '700', 10); const wordCount = (target.textContent.trim().match(/\S+/g) || []).length; if (wordCount < minimumWords) return; const headings = Array.from(target.querySelectorAll('h2, h3')).slice(0, 18); if (headings.length < 2) return; const linksByHeading = new Map(); headings.forEach((heading, index) => { if (!heading.id) heading.id = `section-${index + 1}-${heading.textContent.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, '').slice(0, 48)}`; heading.tabIndex = -1; const item = document.createElement('li'); if (heading.tagName === 'H3') item.className = 'is-subsection'; const link = document.createElement('a'); link.href = `#${heading.id}`; link.textContent = heading.textContent; link.addEventListener('click', () => window.setTimeout(() => heading.focus({preventScroll: true}), 0)); item.appendChild(link); list.appendChild(item); linksByHeading.set(heading, link); }); toc.hidden = false; if ('IntersectionObserver' in window) { const observer = new IntersectionObserver((entries) => { let active = null; entries.forEach((entry) => { if (entry.isIntersecting) active = entry.target; }); if (!active) return; linksByHeading.forEach((link, heading) => { if (heading === active) link.setAttribute('aria-current', 'location'); else link.removeAttribute('aria-current'); }); }, {rootMargin: '-15% 0px -70% 0px'}); headings.forEach((heading) => observer.observe(heading)); } }); })();