1<!DOCTYPE html><html lang="en"><head prefix="og: https://ogp.me/ns# article: https://ogp.me/ns/article#">
1<script type="application/ld+json">{"@context":"https://schema.org","@id":"https://www.gbnews.com/money/store-closure-ice-cream-subzero","@type":"NewsArticle","articleSection":"Money","author":{"@type":"Person","description":"Patrick OâDonnell is a Finance Reporter at GB News. He enjoys covering various money topics, including issues relating to mortgages, interest rates and inflation. Prior to joining GB News, Patrick was a Finance Reporter at Express.co.uk. Have you got a money story you'd like to share? Contact Patrick by emailing [email protected] .","identifier":"https://www.gbnews.com/authors/partick-o-donnell","image":{"@type":"ImageObject","height":512,"url":"https://www.gbnews.com/media-library/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy81MTIzMzgxOS9vcmlnaW4uanBnIiwiZXhwaXJlc19hdCI6MTg0MjQ5NzEyM30.MxYYrqhx9P9b2vepr7ZATu-Ssy4O8xNqZu86qmKvS9Y/image.jpg?width=210","width":512},"name":"Patrick O'Donnell","url":"https://www.gbnews.com/authors/partick-o-donnell"},"dateModified":"2026-09-30T14:55:54Z","datePublished":"2026-09-30T14:55:54Z","description":"Subzero, the much-loved Welsh ice cream brand with a history spanning more than six decades, has permanently closed all three of its parlours in Rhondda, Caerphilly and Newport, leaving loyal customers stunned.The company confirmed that \"Subzero was no longer active\" and that its team could no longe...","headline":"Store closures alert: Ice cream franchise Subzero 'no longer active' as all sites shut","image":{"@type":"ImageObject","height":600,"url":"https://www.gbnews.com/media-library/woman-putting-ice-cream-on-a-cone-and-sub-zero-ice-cream-parlour.jpg?id=68001683&width=1200&height=600&coordinates=0%2C50%2C0%2C50","width":1200},"inLanguage":"en-GB","keywords":["Money","Economy","Store closures"],"mainEntityOfPage":{"@id":"https://www.gbnews.com/money/store-closure-ice-cream-subzero","@type":"WebPage"},"publisher":{"@type":"NewsMediaOrganization","logo":{"@type":"ImageObject","url":"https://www.gbnews.com/media-library/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8zMzEwMDg4MS9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTc5NzY2ODQ5OX0.yPkj1VxfBk72KU9hNSQwXmOcRlz79vywCKtwhL4rbwA/image.png?width=210"},"name":"GB News","sameAs":["https://www.facebook.com/GBNewsOnline","https://x.com/GBNEWS","https://www.instagram.com/gbnews/","https://www.linkedin.com/company/gb-news/","https://www.youtube.com/channel/UC0vn8ISa4LKMunLbzaXLnOQ","https://www.tiktok.com/@gbnews","https://bsky.app/profile/gbnewsonline.bsky.social","https://www.threads.net/@gbnews"]},"thumbnailUrl":"https://www.gbnews.com/media-library/woman-putting-ice-cream-on-a-cone-and-sub-zero-ice-cream-parlour.jpg?id=68001683&width=1200&height=600&coordinates=0%2C50%2C0%2C50","url":"https://www.gbnews.com/money/store-closure-ice-cream-subzero"}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"VideoObject","contentUrl":"https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8","description":"After six decades, ice cream brand Subzero has shut all its sites in Wales","embedUrl":"https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8","keywords":["Money","Economy","Store closures"],"name":"Store closures alert: Ice cream franchise Subzero 'no longer active' as all sites shut","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://www.gbnews.com/media-library/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8zMzEwMDg4MS9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTc5NzY2ODQ5OX0.yPkj1VxfBk72KU9hNSQwXmOcRlz79vywCKtwhL4rbwA/image.png?width=210"},"name":"GB News","sameAs":["https://www.facebook.com/GBNewsOnline","https://x.com/GBNEWS","https://www.instagram.com/gbnews/","https://www.linkedin.com/company/gb-news/","https://www.youtube.com/channel/UC0vn8ISa4LKMunLbzaXLnOQ","https://www.tiktok.com/@gbnews","https://bsky.app/profile/gbnewsonline.bsky.social","https://www.threads.net/@gbnews"]},"thumbnailUrl":["https://www.gbnews.com/media-library/woman-putting-ice-cream-on-a-cone-and-sub-zero-ice-cream-parlour.jpg?id=68001683&width=980"],"uploadDate":"2026-09-30T14:55:54Z","url":"https://www.gbnews.com/money/store-closure-ice-cream-subzero"}</script>
1<meta charset="utf-8"/><link rel="preload" as="font" href="" type="font/woff2" crossorigin=""/><link rel="preload" as="font" href="https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2" type="font/woff2" crossorigin=""/><link rel="canonical" href="https://www.gbnews.com/money/store-closure-ice-cream-subzero"/><meta property="fb:app_id" content="3642"/><meta name="twitter:site" content="@GBNews"/><meta name="twitter:site:id" content="1339166129110065152"/><meta property="og:type" content="article"/><meta property="article:section" content="Money"/><meta property="og:url" content="https://www.gbnews.com/money/store-closure-ice-cream-subzero"/><meta property="og:site_name" content="GB News"/><meta property="og:image" content="https://www.gbnews.com/media-library/woman-putting-ice-cream-on-a-cone-and-sub-zero-ice-cream-parlour.jpg?id=68001683&width=1200&height=600&coordinates=0%2C50%2C0%2C50"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="600"/><meta property="og:title" content="Popular ice cream franchise 'no longer active' as all locations close for good"/><meta property="og:description" content="After six decades, ice cream brand Subzero has shut all its sites in Wales"/><meta name="description" content="Popular ice cream franchise 'no longer active' as all locations close for good . Subzero, the much-loved Welsh ice cream brand with a history spanning more than six decades, has permanently closed all three of its parlours in Rhondda, Caerphilly and Newport, leaving loyal customers stunned"/><meta name="referrer" content="always"/><meta name="robots" content="max-image-preview:large"/><meta name="twitter:card" content="summary_large_image"/><meta property="og:video" content="https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8"/><link rel="preconnect" href="https://assets.rebelmouse.io/" crossorigin="anonymous"/><link rel="preconnect" href="https://user-stats.rbl.ms/" crossorigin="anonymous"/><link rel="preconnect" href="https://pages-stats.rbl.ms/" crossorigin="anonymous"/><!--link rel="preload" href="https://static.rbl.ms/static/fonts/fontawesome/fontawesome-mini.woff" as="font" type="font/woff2" crossorigin-->
1<script class="rm-i-script">window.REBELMOUSE_BOOTSTRAP_DATA = {"isUserLoggedIn": false, "site": {"id": 25354495, "isCommunitySite": false}, "runner": {"id": 25354495}, "post": {"id": 2677966747, "sections": [0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833], "shareUrl": "https%3A%2F%2Fwww.gbnews.com%2Fmoney%2Fstore-closure-ice-cream-subzero", "status": 0, "tags": []}, "path": "/money/store-closure-ice-cream-subzero", "pathParams": {"sections": "money/", "slug": "store-closure-ice-cream-subzero"}, "resourceId": "pp_2677966747", "fbId": "3642", "fbAppVersion": "v2.5", "clientGaId": "", "messageBusUri": "wss://messages.rebelmouse.io", "section": {"id": null}, "tag": {"slug": null, "isSection": false}, "is_section_tag": false, "fullBootstrapUrl": "/res/bootstrap/data.js?site_id=25354495\u0026resource_id=pp_2677966747\u0026path_params=%7B%22sections%22%3A%22money%2F%22%2C%22slug%22%3A%22store-closure-ice-cream-subzero%22%7D\u0026override_device=desktop\u0026post_id=2677966747", "whitelabel_menu": {}, "useRiver": true, "engine": {"recaptchaSiteKey": null, "lazyLoadShortcodeImages": true, "backButtonGoToPage": true, "changeParticleUrlScroll": false, "countKeepReadingAsPageview": true, "defaultVideoPlayer": "", "theoPlayerLibraryLocation": "", "trackPageViewOnParticleUrlScroll": false, "webVitalsSampleRate": 100, "overrideDevicePixelRatio": null, "image_quality_level": 85, "sendEventsToCurrentDomain": false, "enableLoggedOutUserTracking": false, "useSmartLinks2": true, "enableRunnerCss": true}}; 2 </script>
2<script class="rm-i-script">window.REBELMOUSE_BASE_ASSETS_URL = "https://www.gbnews.com/static/dist/social-ux/"; 3 window.REBELMOUSE_BASE_SSL_DOMAIN = "https://www.gbnews.com"; 4 window.REBELMOUSE_TASKS_QUEUE = []; 5 window.REBELMOUSE_LOW_TASKS_QUEUE = []; 6 window.REBELMOUSE_LOWEST_TASKS_QUEUE = []; 7 window.REBELMOUSE_ACTIVE_TASKS_QUEUE = []; 8 window.REBELMOUSE_STDLIB = {}; 9 window.RM_OVERRIDES = {}; 10 window.RM_AD_LOADER = []; 11 </script>
11<script src="https://www.gbnews.com/static/dist/social-ux/main.ad09fd750c88bf0601ad.bundle.mjs" class="rm-i-script" type="module" async="async" data-js-app="true" data-src-host="https://www.gbnews.com" data-src-file="main.mjs"></script>
11<script src="https://www.gbnews.com/static/dist/social-ux/main.15606b3f91cb6958fe18.bundle.js" class="rm-i-script" nomodule="nomodule" defer="defer" data-js-app="true" data-src-host="https://www.gbnews.com" data-src-file="main.js"></script>
11<script src="https://www.gbnews.com/static/dist/social-ux/runtime.fe10f91742ab4e30e4d4.bundle.mjs" class="rm-i-script" type="module" async="async" data-js-app="true" data-src-host="https://www.gbnews.com" data-src-file="runtime.mjs"></script>
11<script src="https://www.gbnews.com/static/dist/social-ux/runtime.f2259a165562bbbec0c9.bundle.js" class="rm-i-script" nomodule="nomodule" defer="defer" data-js-app="true" data-src-host="https://www.gbnews.com" data-src-file="runtime.js"></script>
11<!-- we collected enough need to fix it first before turn in back on--><!--script src="//cdn.ravenjs.com/3.16.0/raven.min.js" crossorigin="anonymous"></script--><!--script type="text/javascript"> 12 Raven.config('https://[email protected]/147999').install(); 13 </script--><link rel="manifest" href="/manifest.json"/><meta name="theme-color" content="#647187"/>
13<script class="rm-i-script"> 14 if ('serviceWorker' in navigator) { 15 window.addEventListener('load', function() { 16 navigator.serviceWorker.register('/sw.js').then(function(registration) { 17 console.log('ServiceWorker registration successful with scope: ', registration.scope); 18 }, function(err) { 19 console.log('ServiceWorker registration failed: ', err); 20 }); 21 }); 22 } else { 23 console.log('ServiceWorker not enabled'); 24 } 25 </script>
25<script class="rm-i-script"> 26 // fallback error prone google tag setup 27 var googletag = googletag || {}; 28 googletag.cmd = googletag.cmd || []; 29 </script>
29<meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="alternate" type="application/rss+xml" title="GB News" href="/feeds/money.rss"/><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0"/><!-- TODO: move the default value from here --><title>Store closures alert: Ice cream franchise Subzero 'no longer active' as all sites shut</title><style class="rm-i-styles"> 30 @layer tokens,themes,utilities,elements;.rm-embed-container{position:relative;}.rm-embed-container.rm-embed-instagram{max-width:540px;}.rm-embed-container.rm-embed-tiktok{max-width:572px;min-height:721px;}.rm-embed-container.rm-embed-tiktok blockquote,.rm-embed-twitter blockquote{all:revert;}.rm-embed-container.rm-embed-tiktok blockquote{margin-left:0;margin-right:0;position:relative;}.rm-embed-container.rm-embed-tiktok blockquote,.rm-embed-container.rm-embed-tiktok blockquote > iframe,.rm-embed-container.rm-embed-tiktok blockquote > section{width:100%;min-height:721px;display:block;}.rm-embed-container.rm-embed-tiktok blockquote > section{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;}.rm-embed-container.rm-embed-tiktok blockquote > section:before{content:"";display:block;width:100%;height:300px;border-radius:8px;}.rm-embed-container > .rm-embed,.rm-embed-container > .rm-embed-holder{position:absolute;top:0;left:0;}.rm-embed-holder{display:block;height:100%;width:100%;display:flex;align-items:center;}.rm-embed-container > .rm-embed-spacer{display:block;}.rm-embed-twitter{max-width:550px;margin-top:10px;margin-bottom:10px;}.rm-embed-twitter blockquote{position:relative;height:100%;width:100%;flex-direction:column;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;}.rm-embed-twitter:not(.rm-off) .twitter-tweet{margin:0 !important;}.logo__image,.image-element__img,.rm-lazyloadable-image{max-width:100%;height:auto;}.logo__image,.image-element__img{width:auto;}@media (max-width:768px){.rm-embed-spacer.rm-embed-spacer-desktop{display:none;}}@media (min-width:768px){.rm-embed-spacer.rm-embed-spacer-mobile{display:none;}}.rm-component,.rm-slot{display:contents !important;}.widget__head .rm-lazyloadable-image{width:100%;}.crop-16x9{padding-bottom:56.25%;}.crop-3x2{padding-bottom:66.6666%;}.crop-2x1{padding-bottom:50%;}.crop-1x2{padding-bottom:200%;}.crop-3x1{padding-bottom:33.3333%;}.crop-1x1{padding-bottom:100%;}.rm-crop-16x9 > .widget__img--tag,.rm-crop-16x9 > div:not(.rm-crop-spacer),.rm-crop-3x2 > .widget__img--tag,.rm-crop-3x2 > div:not(.rm-crop-spacer),.rm-crop-2x1 > .widget__img--tag,.rm-crop-2x1 > div:not(.rm-crop-spacer),.rm-crop-1x2 > .widget__img--tag,.rm-crop-1x2 > div:not(.rm-crop-spacer),.rm-crop-3x1 > .widget__img--tag,.rm-crop-3x1 > div:not(.rm-crop-spacer),.rm-crop-1x1 > .widget__img--tag,.rm-crop-1x1 > div:not(.rm-crop-spacer),.rm-crop-custom > .widget__img--tag,.rm-crop-custom > div:not(.rm-crop-spacer){position:absolute;top:0;left:0;bottom:0;right:0;height:100%;width:100%;object-fit:contain;}.rm-crop-16x9 > .rm-crop-spacer,.rm-crop-3x2 > .rm-crop-spacer,.rm-crop-2x1 > .rm-crop-spacer,.rm-crop-1x2 > .rm-crop-spacer,.rm-crop-3x1 > .rm-crop-spacer,.rm-crop-1x1 > .rm-crop-spacer,.rm-crop-custom > .rm-crop-spacer{display:block;}.rm-crop-16x9 > .rm-crop-spacer{padding-bottom:56.25%;}.rm-crop-3x2 > .rm-crop-spacer{padding-bottom:66.6666%;}.rm-crop-2x1 > .rm-crop-spacer{padding-bottom:50%;}.rm-crop-1x2 > .rm-crop-spacer{padding-bottom:200%;}.rm-crop-3x1 > .rm-crop-spacer{padding-bottom:33.3333%;}.rm-crop-1x1 > .rm-crop-spacer{padding-bottom:100%;}[data-image-share-headline] .share-tab-img .share{background-image:none !important;}[data-image-share-headline] .share{cursor:pointer;}.social-tab-i .share-fb:after,.social-tab-i .share-tw:after{content:none;}.share-buttons .social-tab-i a{margin-right:0;}.share-buttons .social-tab-i li{line-height:1px;float:left;}.share-buttons .social-tab-i ul{margin:0;padding:0;list-style:none;}.share-tab-img{max-width:100%;padding:0;margin:0;position:relative;overflow:hidden;display:inline-block;}.share-buttons .social-tab-i{position:absolute;bottom:0;right:0;margin:0;padding:0;z-index:1;list-style-type:none;}.close-share-mobile,.show-share-mobile{background-color:rgba(0,0,0,0.75);}.share-buttons .social-tab-i.show-mobile-share-bar .close-share-mobile,.share-buttons .social-tab-i .show-share-mobile,.share-buttons .social-tab-i .share{width:30px;height:30px;line-height:27px;padding:0;text-align:center;display:inline-block;vertical-align:middle;}.share-buttons .social-tab-i.show-mobile-share-bar .show-share-mobile,.share-buttons .social-tab-i .close-share-mobile{display:none;}.share-buttons .social-tab-i .icons-share{vertical-align:middle;display:inline-block;font:normal normal normal 14px/1 FontAwesome;color:white;}.social-tab-i .icons-share.fb:before{content:"\f09a";}.social-tab-i .icons-share.tw:before{content:"\f099";}.social-tab-i .icons-share.pt:before{content:"\f231";}.social-tab-i .icons-share.tl:before{content:"\f173";}.social-tab-i .icons-share.em:before{content:"\f0e0";}.social-tab-i .icons-share.sprite-shares-close:before{content:"\f00d";}.social-tab-i .icons-share.sprite-shares-share:before{content:"\f1e0";}@media only screen and (max-width:768px){.share-tab-img .social-tab-i{display:block;}.share-buttons .social-tab-i .share{display:none;}.share-buttons .social-tab-i.show-mobile-share-bar .share{display:block;}.social-tab-i li{float:left;}}@media only screen and (min-width:769px){.social-tab-i .close-share-mobile,.social-tab-i .show-share-mobile{display:none !important;}.share-tab-img .social-tab-i{display:none;}
30.share-tab-img:hover .social-tab-i{display:block;}.share-buttons .social-tab-i .share{width:51px;height:51px;line-height:47px;}.share-buttons .social-tab-i{margin:5px 0 0 5px;top:0;left:0;bottom:auto;right:auto;display:none;}.share-buttons .social-tab-i .share{display:block;}}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}audio,canvas,video{display:inline-block;}audio:not([controls]){display:none;}[hidden]{display:none;}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}body{margin:0;font-size:1em;line-height:1.4;}body,button,input,select,textarea{font-family:Tahoma,sans-serif;color:#5A5858;}::-moz-selection{background:#145A7C;color:#fff;text-shadow:none;}::selection{background:#145A7C;color:#fff;text-shadow:none;}:focus{outline:5px auto #2684b1;}a:hover,a:active{outline:0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}blockquote{margin:1em 40px;}dfn{font-style:italic;}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0;}ins{background:#ff9;color:#000;text-decoration:none;}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold;}pre,code,kbd,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em;}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word;}q{quotes:none;}q:before,q:after{content:"";content:none;}small{font-size:85%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}ul,ol{margin:1em 0;padding:0 0 0 40px;}dd{margin:0 0 0 40px;}nav ul,nav ol{list-style:none;list-style-image:none;margin:0;padding:0;}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;}svg:not(:root){overflow:hidden;}figure{margin:0;}form{margin:0;}fieldset{border:0;margin:0;padding:0;}label{cursor:pointer;}legend{border:0;padding:0;}button,input{line-height:normal;}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;}input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}textarea{overflow:auto;vertical-align:top;resize:vertical;}input:invalid,textarea:invalid{background-color:#fccfcc;}table{border-collapse:collapse;border-spacing:0;}td{vertical-align:top;}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;}.ir br{display:none;}.hidden{display:none !important;visibility:hidden;}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto;}.invisible{visibility:hidden;}.clearfix:before,.clearfix:after{content:"";display:table;}.clearfix:after{clear:both;}.clearfix{zoom:1;}.zindex20{z-index:20;}.zindex30{z-index:30;}.zindex40{z-index:40;}.zindex50{z-index:50;}html{font-size:16px;font-family:Montserrat,sans-serif;line-height:1;color:#000;font-weight:normal;}body,button,input,select,textarea{font-family:Montserrat,sans-serif;color:#000;}.col,body{font-size:1.6rem;line-height:1;}a{color:#000F55;text-decoration:none;}a:hover{color:#000F55;text-decoration:none;}.with-primary-color{color:#000F55;}.with-primary-color:hover{color:#000F55;}.js-tab,.js-keep-reading,.js-toggle{cursor:pointer;}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.tabs__tab{display:inline-block;padding:10px;}.tabs__tab-content{display:none;}.tabs__tab-content.active{display:block;}button:focus,input[type="text"],input[type="email"]{outline:0;}audio,canvas,iframe,img,svg,video{vertical-align:middle;max-width:100%;}textarea{resize:vertical;}.main{background-color:#fff;position:relative;overflow:hidden;}.valign-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}.valign-wrapper .valign{display:block;}#notification{position:fixed;}.article-module__controls-placeholder{position:absolute;}.display-block{display:block;}.cover-all{position:absolute;width:100%;height:100%;}.full-width{width:100%;}
30.fa{font-family:FontAwesome,"fontawesome-mini" !important;}.fa.fa-instagram{font-size:1.15em;}.fa-googleplus:before{content:"\f0d5";}.post-partial,.overflow-visible{overflow:visible !important;}.attribute-data{margin:0 10px 10px 0;padding:5px 10px;background-color:#000F55;color:white;border-radius:3px;margin-bottom:10px;display:inline-block;}.attribute-data[value=""]{display:none;}.badge{display:inline-block;overflow:hidden;}.badge-image{border-radius:100%;}.js-expandable.expanded .js-expand,.js-expandable:not(.expanded) .js-contract{display:none;}.js-scroll-trigger{display:block;width:100%;}.sticky-target:not(.legacy){position:fixed;opacity:0;top:0;will-change:transform;transform:translate3d(0px,0px,0px);}.sticky-target.legacy{position:relative;}.sticky-target.legacy.sticky-active{position:fixed;}.color-inherit:hover,.color-inherit{color:inherit;}.js-appear-on-expand{transition:all 350ms;height:0;overflow:hidden;opacity:0;}.content-container{display:none;}.expanded .content-container{display:block;}.expanded .js-appear-on-expand{opacity:1;height:auto;}.logged-out-user .js-appear-on-expand{height:0;opacity:0;}.h1,.h2{margin:0;padding:0;font-size:1em;font-weight:normal;}.lazyload-placeholder{display:none;position:absolute;text-align:center;background:rgba(0,0,0,0.1);top:0;bottom:0;left:0;right:0;}div[runner-lazy-loading] .lazyload-placeholder,iframe[runner-lazy-loading] + .lazyload-placeholder{display:block;}.abs-pos-center{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;}.relative{position:relative;}.runner-spinner{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:50px;}.runner-spinner:before{content:"";display:block;padding-top:100%;}.rm-non-critical-loaded .runner-spinner-circular{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;}.position-relative{position:relative;}.collection-button{display:inline-block;}.rm-non-critical-loaded .runner-spinner-path{stroke-dasharray:1,200;stroke-dashoffset:0;animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;stroke-linecap:round;}.pagination-container .pagination-wrapper{display:flex;align-items:center;}.pagination-container .pagination-wrapper a{color:rgba(59,141,242,1);margin:0 5px;}@keyframes rotate{100%{transform:rotate(360deg);}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0;}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px;}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px;}}@keyframes color{100%,0%{stroke:rgba(255,255,255,1);}40%{stroke:rgba(255,255,255,0.6);}66%{stroke:rgba(255,255,255,0.9);}80%,90%{stroke:rgba(255,255,255,0.7);}}.js-section-loader-feature-container > .slick-list > .slick-track > .slick-slide:not(.slick-active){height:0;visibility:hidden;}.rebellt-item-media-container .instagram-media{margin-left:auto !important;margin-right:auto !important;}.js-hidden-panel{position:fixed;top:0;left:0;right:0;transition:all 300ms;z-index:10;}.js-hidden-panel.active{transform:translate3d(0,-100%,0);}.content{margin-left:auto;margin-right:auto;max-width:1100px;width:90%;}.ad-tag{text-align:center;}.ad-tag__inner{display:inline-block;}.content .ad-tag{margin-left:-5%;margin-right:-5%;}@media (min-width:768px){.content .ad-tag{margin-left:auto;margin-right:auto;}}.no-mb:not(:last-child){margin-bottom:0;}.no-mt:not(:first-child){margin-top:0;}.sm-mt-0:not(:empty):before,.sm-mt-1:not(:empty):before,.sm-mt-2:not(:empty):before,.sm-mb-0:not(:empty):after,.sm-mb-1:not(:empty):after,.sm-mb-2:not(:empty):after,.md-mt-0:not(:empty):before,.md-mt-1:not(:empty):before,.md-mt-2:not(:empty):before,.md-mb-0:not(:empty):after,.md-mb-1:not(:empty):after,.md-mb-2:not(:empty):after,.lg-mt-0:not(:empty):before,.lg-mt-1:not(:empty):before,.lg-mt-2:not(:empty):before,.lg-mb-0:not(:empty):after,.lg-mb-1:not(:empty):after,.lg-mb-2:not(:empty):after{content:'';display:block;overflow:hidden;}.sm-mt-0:not(:empty):before{margin-bottom:0;}.sm-mt-0 > *{margin-top:0;}.sm-mt-1:not(:empty):before{margin-bottom:-10px;}.sm-mt-1 > *{margin-top:10px;}.sm-mt-2:not(:empty):before{margin-bottom:-20px;}.sm-mt-2 > *{margin-top:20px;}.sm-mb-0:not(:empty):after{margin-top:0;}.sm-mb-0 > *{margin-bottom:0;}.sm-mb-1:not(:empty):after{margin-top:-10px;}.sm-mb-1 > *{margin-bottom:10px;}.sm-mb-2:not(:empty):after{margin-top:-20px;}.sm-mb-2 > *{margin-bottom:20px;}@media (min-width:768px){.md-mt-0:not(:empty):before{margin-bottom:0;}.md-mt-0 > *{margin-top:0;}.md-mt-1:not(:empty):before{margin-bottom:-10px;}.md-mt-1 > *{margin-top:10px;}.md-mt-2:not(:empty):before{margin-bottom:-20px;}.md-mt-2 > *{margin-top:20px;}.md-mb-0:not(:empty):after{margin-top:0;}.md-mb-0 > *{margin-bottom:0;}.md-mb-1:not(:empty):after{margin-top:-10px;}.md-mb-1 > *{margin-bottom:10px;}.md-mb-2:not(:empty):after{margin-top:-20px;}.md-mb-2 > *{margin-bottom:20px;}}@media (min-width:1024px){.lg-mt-0:not(:empty):before{margin-bottom:0;}.lg-mt-0 > *{margin-top:0;}.lg-mt-1:not(:empty):before{margin-bottom:-10px;}.lg-mt-1 > *{margin-top:10px;}.lg-mt-2:not(:empty):before{margin-bottom:-20px;}.lg-mt-2 > *{margin-top:20px;}.lg-mb-0:not(:empty):after{margin-top:0;}.lg-mb-0 > *{margin-bottom:0;}.lg-mb-1:not(:empty):after{margin-top:-10px;}.lg-mb-1 > *{margin-bottom:10px;}.lg-mb-2:not(:empty):after{margin-top:-20px;}.lg-mb-2 > *{margin-bottom:20px;}}.sm-cp-0{padding:0;}.sm-cp-1{padding:10px;}.sm-cp-2{padding:20px;}@media (min-width:768px){.md-cp-0{padding:0;}.md-cp-1{padding:10px;}.md-cp-2{padding:20px;}}@media (min-width:1024px){.lg-cp-0{padding:0;}.lg-cp-1{padding:10px;}.lg-cp-2{padding:20px;}}.mb-2 > *{margin-bottom:20px;}.mb-2 > :last-child{margin-bottom:0;}.v-sep > *{margin-bottom:20px;}@media (min-width:768px){.v-sep > *{margin-bottom:40px;}}.v-sep > *:last-child{margin-bottom:0;}@media only screen and (max-width:767px){.hide-mobile{display:none !important;}}@media only screen and (max-width:1023px){.hide-tablet-and-mobile{display:none !important;}}@media only screen and (min-width:768px){.hide-tablet-and-desktop{display:none !important;}}@media only screen and (min-width:768px) and (max-width:1023px){.hide-tablet{display:none !important;}}@media only screen and (min-width:1024px){.hide-desktop{display:none !important;}}.row.px10{margin-left:-10px;margin-right:-10px;}.row.px10 > .col{padding-left:10px;padding-right:10px;}.row.px20{margin-left:-20px;margin-right:-20px;}.row.px20 > .col{padding-left:20px;padding-right:20px;}.row{margin-left:auto;margin-right:auto;overflow:hidden;}.row:after{content:'';display:table;clear:both;}.row:not(:empty){margin-bottom:-20px;}.col{margin-bottom:20px;}@media (min-width:768px){.col{margin-bottom:40px;}.row:not(:empty){margin-bottom:-40px;}}.row .col{float:left;box-sizing:border-box;}.row .col.pull-right{float:right;}.row .col.s1{width:8.3333333333%;}.row .col.s2{width:16.6666666667%;}.row .col.s3{width:25%;}.row .col.s4{width:33.3333333333%;}.row .col.s5{width:41.6666666667%;}.row .col.s6{width:50%;}.row .col.s7{width:58.3333333333%;}.row .col.s8{width:66.6666666667%;}.row .col.s9{width:75%;}.row .col.s10{width:83.3333333333%;}.row .col.s11{width:91.6666666667%;}.row .col.s12{width:100%;}@media only screen and (min-width:768px){.row .col.m1{width:8.3333333333%;}.row .col.m2{width:16.6666666667%;}.row .col.m3{width:25%;}.row .col.m4{width:33.3333333333%;}.row .col.m5{width:41.6666666667%;}.row .col.m6{width:50%;}.row .col.m7{width:58.3333333333%;}.row .col.m8{width:66.6666666667%;}.row .col.m9{width:75%;}.row .col.m10{width:83.3333333333%;}.row .col.m11{width:91.6666666667%;}.row .col.m12{width:100%;}}@media only screen and (min-width:1024px){.row .col.l1{width:8.3333333333%;}.row .col.l2{width:16.6666666667%;}.row .col.l3{width:25%;}.row .col.l4{width:33.3333333333%;}.row .col.l5{width:41.6666666667%;}.row .col.l6{width:50%;}.row .col.l7{width:58.3333333333%;}.row .col.l8{width:66.6666666667%;}.row .col.l9{width:75%;}.row .col.l10{width:83.3333333333%;}.row .col.l11{width:91.6666666667%;}.row .col.l12{width:100%;}}.widget{position:relative;box-sizing:border-box;}.widget:hover .widget__headline a{color:#000F55;}.widget__headline{font-family:Montserrat,sans-serif;color:#000;cursor:pointer;}.widget__headline-text{font-family:inherit;color:inherit;word-break:break-word;}.widget__section-text{display:block;}.image,.widget__image{background-position:center;background-repeat:no-repeat;background-size:cover;display:block;z-index:0;}.widget__play{position:absolute;width:100%;height:100%;text-align:center;}.rm-widget-image-holder{position:relative;}.rm-video-holder{position:absolute;width:100%;height:100%;top:0;left:0;}.rm-zindex-hidden{display:none;z-index:-1;}.rm-widget-image-holder .widget__play{top:0;left:0;}.image.no-image{background-color:#e4e4e4;}.widget__video{position:relative;}.widget__video .rm-scrop-spacer{padding-bottom:56.25%;}.widget__video.rm-video-tiktok{max-width:605px;}.widget__video video,.widget__video iframe{position:absolute;top:0;left:0;height:100%;}.widget__product-vendor{font-size:1.5em;line-height:1.5;margin:25px 0;}.widget__product-buy-link{margin:15px 0;}.widget__product-buy-link-btn{background-color:#000;color:#fff;display:inline-block;font-size:1.6rem;line-height:1em;padding:1.25rem;font-weight:700;}.widget__product-buy-btn:hover{color:#fff;}.widget__product-price{font-size:1.5em;line-height:1.5;margin:25px 0;}.widget__product-compare-at-price{text-decoration:line-through;}.rebellt-item.is--mobile,.rebellt-item.is--tablet{margin-bottom:0.85em;}.rebellt-item.show_columns_on_mobile.col2,.rebellt-item.show_columns_on_mobile.col3{display:inline-block;vertical-align:top;}.rebellt-item.show_columns_on_mobile.col2{width:48%;}.rebellt-item.show_columns_on_mobile.col3{width:32%;}@media only screen and (min-width:768px){.rebellt-item.col2:not(.show_columns_on_mobile),.rebellt-item.col3:not(.show_columns_on_mobile){display:inline-block;vertical-align:top;}.rebellt-item.col2:not(.show_columns_on_mobile){width:48%;}.rebellt-item.col3:not(.show_columns_on_mobile){width:32%;}}.rebellt-item.parallax{background-size:cover;background-attachment:fixed;position:relative;
30left:calc(-50vw + 50%);width:100vw;min-height:100vh;padding:0 20%;box-sizing:border-box;max-width:inherit;text-align:center;z-index:3;}.rebellt-item.parallax.is--mobile{background-position:center;margin-bottom:0;padding:0 15%;}.rebellt-item.parallax.has-description:before,.rebellt-item.parallax.has-description:after{content:"";display:block;padding-bottom:100%;}.rebellt-item.parallax.has-description.is--mobile:before,.rebellt-item.parallax.has-description.is--mobile:after{padding-bottom:90vh;}.rebellt-item.parallax h3,.rebellt-item.parallax p{color:white;text-shadow:1px 0 #000;}.rebellt-item.parallax.is--mobile p{font-size:18px;font-weight:400;}.rebellt-ecommerce h3{font-size:1.8em;margin-bottom:15px;}.rebellt-ecommerce--vendor{font-size:1.5em;line-height:1.5;margin:25px 0;}.rebellt-ecommerce--price{font-size:1.5em;line-height:1.5;margin:25px 0;}.rebellt-ecommerce--compare-at-price{text-decoration:line-through;}.rebellt-ecommerce--buy{margin:15px 0;}.rebellt-ecommerce--btn{background-color:#000;color:#fff;display:inline-block;font-size:1.6rem;line-height:1em;padding:1.25rem;font-weight:700;}.rebellt-ecommerce--btn:hover{color:#fff;}.rebelbar.skin-simple{height:50px;line-height:50px;color:#000;font-size:1.2rem;border-left:none;border-right:none;background-color:#fff;}.rebelbar.skin-simple .rebelbar__inner{position:relative;height:100%;margin:0 auto;padding:0 20px;max-width:1300px;}.rebelbar.skin-simple .logo{float:left;}.rebelbar.skin-simple .logo__image{max-height:50px;max-width:190px;}.rebelbar--fake.skin-simple{position:relative;border-color:#fff;}.rebelbar--fixed.skin-simple{position:absolute;width:100%;z-index:3;}.with-fixed-header .rebelbar--fixed.skin-simple{position:fixed;top:0;}.rebelbar.skin-simple .rebelbar__menu-toggle{position:relative;cursor:pointer;float:left;text-align:center;font-size:0;width:50px;margin-left:-15px;height:100%;color:#000;}.rebelbar.skin-simple i{vertical-align:middle;display:inline-block;font-size:20px;}.rebelbar.skin-simple .rebelbar__menu-toggle:hover{color:#000F55;}.rebelbar.skin-simple .rebelbar__section-links{display:none;padding:0 100px 0 40px;overflow:hidden;height:100%;}.rebelbar.skin-simple .rebelbar__section-list{margin:0 -15px;height:100%;}.rebelbar.skin-simple .rebelbar__section-links li{display:inline-block;padding:0 15px;text-align:left;}.rebelbar.skin-simple .rebelbar__section-link{color:#000;display:block;font-size:1.8rem;font-weight:400;text-decoration:none;}.rebelbar.skin-simple .rebelbar__section-link:hover{color:#000F55;}.rebelbar.skin-simple .rebelbar__sharebar.sharebar{display:none;}.rebelbar.skin-simple .rebelbar__section-list.js--active .rebelbar__more-sections-button{visibility:visible;}.rebelbar.skin-simple .rebelbar__more-sections-button{cursor:pointer;visibility:hidden;}.rebelbar.skin-simple #rebelbar__more-sections{visibility:hidden;position:fixed;line-height:70px;left:0;width:100%;background-color:#1f1f1f;}.rebelbar.skin-simple #rebelbar__more-sections a{color:white;}.rebelbar.skin-simple #rebelbar__more-sections.opened{visibility:visible;}@media only screen and (min-width:768px){.rebelbar.skin-simple .rebelbar__menu-toggle{margin-right:15px;}.rebelbar.skin-simple{height:100px;line-height:100px;font-weight:700;}.rebelbar.skin-simple .logo__image{max-width:350px;max-height:100px;}.rebelbar.skin-simple .rebelbar__inner{padding:0 40px;}.rebelbar.skin-simple .rebelbar__sharebar.sharebar{float:left;margin-top:20px;margin-bottom:20px;padding-left:40px;}}@media (min-width:960px){.rebelbar.skin-simple .rebelbar__section-links{display:block;}.with-floating-shares .rebelbar.skin-simple .search-form{display:none;}.with-floating-shares .rebelbar.skin-simple .rebelbar__sharebar.sharebar{display:block;}.with-floating-shares .rebelbar.skin-simple .rebelbar__section-links{display:none;}}.menu-global{display:none;width:100%;position:fixed;z-index:3;color:white;background-color:#1a1a1a;height:100%;font-size:1.8rem;overflow-y:auto;overflow-x:hidden;line-height:1.6em;}@media (min-width:768px){.menu-global{display:block;max-width:320px;top:0;-webkit-transform:translate(-320px,0);transform:translate(-320px,0);
30transform:translate3d(-320px,0,0);}.menu-global,.all-content-wrapper{transition:transform .2s cubic-bezier(.2,.3,.25,.9);}}.menu-overlay{position:fixed;top:-100%;left:0;height:0;width:100%;cursor:pointer;visibility:hidden;opacity:0;transition:opacity 200ms;}.menu-opened .menu-overlay{visibility:visible;height:100%;z-index:1;opacity:1;top:0;}@media only screen and (min-width:768px){.menu-opened .menu-overlay{z-index:10;background:rgba(255,255,255,.6);}}@media (min-width:960px){.logged-out-user .rebelbar.skin-simple .menu-overlay{display:none;}}@media (min-width:600px){.rm-resized-container-5{width:5%;}.rm-resized-container-10{width:10%;}.rm-resized-container-15{width:15%;}.rm-resized-container-20{width:20%;}.rm-resized-container-25{width:25%;}.rm-resized-container-30{width:30%;}.rm-resized-container-35{width:35%;}.rm-resized-container-40{width:40%;}.rm-resized-container-45{width:45%;}.rm-resized-container-50{width:50%;}.rm-resized-container-55{width:55%;}.rm-resized-container-60{width:60%;}.rm-resized-container-65{width:65%;}.rm-resized-container-70{width:70%;}.rm-resized-container-75{width:75%;}.rm-resized-container-80{width:80%;}.rm-resized-container-85{width:85%;}.rm-resized-container-90{width:90%;}.rm-resized-container-95{width:95%;}.rm-resized-container-100{width:100%;}}.sharebar{margin:0 -4px;padding:0;font-size:0;line-height:0;}.sharebar a{color:#fff;}.sharebar a:hover{text-decoration:none;color:#fff;}.sharebar .share,.sharebar .share-plus{display:inline-block;margin:0 4px;font-size:14px;font-weight:400;padding:0 10px;width:20px;min-width:20px;height:40px;line-height:38px;text-align:center;vertical-align:middle;border-radius:2px;}.sharebar .share-plus i,.sharebar .share i{display:inline-block;vertical-align:middle;}.sharebar .hide-button{display:none;}.sharebar.enable-panel .hide-button{display:inline-block;}.sharebar.enable-panel .share-plus{display:none;}.sharebar.with-first-button-caption:not(.enable-panel) .share:first-child{width:68px;}.sharebar.with-first-button-caption:not(.enable-panel) .share:first-child:after{content:'Share';padding-left:5px;vertical-align:middle;}.sharebar--fixed{display:none;position:fixed;bottom:0;z-index:1;text-align:center;width:100%;left:0;margin:20px auto;}.with-floating-shares .sharebar--fixed{display:block;}.sharebar.fly_shared:not(.enable-panel) .share:nth-child(5){display:none;}.share-media-panel .share-media-panel-pinit{position:absolute;right:0;bottom:0;background-color:transparent;}.share-media-panel-pinit_share{background-image:url('/static/img/whitelabel/runner/spritesheets/pin-it-sprite.png');background-color:#BD081C;background-position:-1px -17px;border-radius:4px;float:right;height:34px;margin:7px;width:60px;background-size:194px auto;}.share-media-panel-pinit_share:hover{opacity:.9;}@media (min-width:768px){.sharebar .share-plus .fa,.sharebar .share .fa{font-size:22px;}.sharebar .share,.sharebar .share-plus{padding:0 15px;width:30px;min-width:30px;height:60px;line-height:60px;margin:0 4px;font-size:16px;}.sharebar.with-first-button-caption:not(.enable-panel) .share:first-child{width:180px;}.sharebar.with-first-button-caption:not(.enable-panel) .share:first-child:after{content:'Share this story';padding-left:10px;vertical-align:middle;text-transform:uppercase;}.share-media-panel-pinit_share{background-position:-60px -23px;height:45px;margin:10px;width:80px;}}.action-btn{display:block;font-size:1.6rem;color:#000F55;cursor:pointer;border:2px solid #000F55;border-color:#000F55;border-radius:2px;line-height:1em;padding:1.6rem;font-weight:700;text-align:center;}.action-btn:hover{color:#000F55;border:2px solid #000F55;border-color:#000F55;}.section-headline__text{font-size:3rem;font-weight:700;line-height:1;}.section-headline__text{color:#000;}@media (min-width:768px){.section-headline__text{font-size:3.6rem;}.content__main .section-headline__text{margin-top:-.3rem;margin-bottom:2rem;}}.module-headline__text{font-size:3rem;font-weight:700;color:#000F55;}@media (min-width:768px){.module-headline__text{font-size:3.6rem;}}.search-form{position:absolute;top:0;right:20px;z-index:1;}.search-form__text-input{display:none;height:42px;font-size:1.3rem;background-color:#f4f4f4;border:none;color:#8f8f8f;text-indent:10px;padding:0;width:220px;position:absolute;right:-10px;top:0;bottom:0;margin:auto;}.search-form .search-form__submit{display:none;position:relative;border:none;bottom:2px;background-color:transparent;}.search-form__text-input:focus,.search-form__submit:focus{border:0 none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:0 none;}.show-search .search-form__close{position:absolute;display:block;top:0;bottom:0;margin:auto;height:1rem;right:-28px;}.search-form__open{vertical-align:middle;bottom:2px;display:inline-block;position:relative;color:#000;font-size:1.9rem;}.show-search .search-form__text-input{display:block;}.show-search .search-form__submit{display:inline-block;vertical-align:middle;padding:0;color:#000;font-size:1.9rem;}.search-form__close,.show-search .search-form__open{display:none;}.quick-search{display:block;border-bottom:1px solid #d2d2d2;padding:24px 0 28px;margin-bottom:20px;position:relative;}.quick-search__submit{background-color:transparent;border:0;padding:0;margin:0;position:absolute;zoom:.75;color:#000;}.quick-search__input{background-color:transparent;border:0;padding:0;font-size:1.5rem;font-weight:700;line-height:3em;padding-left:40px;width:100%;box-sizing:border-box;}@media (min-width:768px){.search-form{right:40px;}.quick-search{margin-bottom:40px;padding:0 0 20px;}.quick-search__submit{zoom:1;}.quick-search__input{line-height:2.2em;padding-left:60px;}}.search-widget{position:relative;}.search-widget__input,.search-widget__submit{border:none;padding:0;margin:0;color:#000;background:transparent;font-size:inherit;line-height:inherit;}.social-links__link{display:inline-block;padding:12px;line-height:0;width:25px;height:25px;border-radius:50%;margin:0 6px;font-size:1.5em;text-align:center;position:relative;vertical-align:middle;color:white;}.social-links__link:hover{color:white;}.social-links__link > span{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;height:1em;}.article__body{font-family:Montserrat,sans-serif;}.body-description .horizontal-rule{border-top:2px solid #eee;}.article-content blockquote{border-left:5px solid #000F55;border-left-color:#000F55;color:#656565;padding:0 0 0 25px;margin:1em 0 1em 25px;}.article__splash-custom{position:relative;}.body hr{display:none;}.article-content .media-caption{color:#9a9a9a;font-size:1.4rem;line-height:2;}.giphy-image{margin-bottom:0;}.article-body a{word-wrap:break-word;}.article-content .giphy-image__credits-wrapper{margin:0;}.article-content .giphy-image__credits{color:#000;font-size:1rem;}.article-content .image-media,.article-content .giphy-image .media-photo-credit{display:block;}.tags{color:#000F55;margin:0 -5px;}.tags__item{margin:5px;
30display:inline-block;}.tags .tags__item{line-height:1;}.slideshow .carousel-control{overflow:hidden;}.shortcode-media .media-caption,.shortcode-media .media-photo-credit{display:block;}@media (min-width:768px){.tags{margin:0 -10px;}.tags__item{margin:10px;}.article-content__comments-wrapper{border-bottom:1px solid #d2d2d2;margin-bottom:20px;padding-bottom:40px;}}.subscription-widget{background:#000F55;padding:30px;}.subscription-widget .module-headline__text{text-align:center;font-size:2rem;font-weight:400;color:#fff;}.subscription-widget .social-links{margin-left:-10px;margin-right:-10px;text-align:center;font-size:0;}.subscription-widget .social-links__link{display:inline-block;vertical-align:middle;width:39px;height:39px;color:#fff;box-sizing:border-box;border-radius:50%;font-size:20px;margin:0 5px;line-height:35px;background:transparent;border:2px solid #fff;border-color:#fff;}.subscription-widget .social-links__link:hover{color:#000F55;border-color:#000F55;background:transparent;}.subscription-widget .social-links__link .fa-instagram{margin:5px 0 0 1px;}.subscription-widget__site-links{margin:30px -5px;text-align:center;font-size:.8em;}.subscription-widget__site-link{padding:0 5px;color:inherit;}.newsletter-element__form{text-align:center;position:relative;max-width:500px;margin-left:auto;margin-right:auto;}.newsletter-element__submit,.newsletter-element__input{border:0;padding:10px;font-size:1.6rem;font-weight:500;height:40px;line-height:20px;margin:0;}.newsletter-element__submit{background:#000F55;color:#fff;position:absolute;top:0;right:0;}.newsletter-element__submit:hover{opacity:.9;}.newsletter-element__input{background:#f4f4f4;width:100%;color:#8f8f8f;padding-right:96px;box-sizing:border-box;}.gdpr-cookie-wrapper{position:relative;left:0;right:0;padding:.5em;box-sizing:border-box;}.gdpr-cookie-controls{text-align:right;}.runner-authors-list{margin-top:0;margin-bottom:0;padding-left:0;list-style-type:none;}.runner-authors-author-wrapper{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;align-content:stretch;}.runner-authors-avatar-thumb{display:inline-block;border-radius:100%;width:55px;height:55px;background-repeat:no-repeat;background-position:center;background-size:cover;overflow:hidden;}.runner-authors-avatar-thumb img{width:100%;height:100%;display:block;object-fit:cover;border-radius:100%;}.runner-authors-avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:12px;line-height:1.1;text-align:center;padding:4px;background:#e0e0e0;color:#555;font-weight:600;text-transform:uppercase;border-radius:100%;overflow:hidden;}.runner-authors-author-info{width:calc(100% - 55px);}.runner-author-name-container{padding:0 6px;}.rm-breadcrumb__list{margin:0;padding:0;}.rm-breadcrumb__item{list-style-type:none;display:inline;}.rm-breadcrumb__item:last-child .rm-breadcrumb__separator{display:none;}.rm-breadcrumb__item:last-child .rm-breadcrumb__link,.rm-breadcrumb__link.disabled{pointer-events:none;color:inherit;}.accesibility-hidden{border:0;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;background:#000;color:#fff;}body:not(.rm-non-critical-loaded) .follow-button{display:none;}.posts-custom .posts-wrapper:after{content:"";display:block;margin-bottom:-20px;}.posts-custom .widget{margin-bottom:20px;width:100%;}.posts-custom .widget__headline,.posts-custom .social-date{display:block;}.posts-custom .social-date{color:#a4a2a0;font-size:1.4rem;}.posts-custom[data-attr-layout_headline] .widget{vertical-align:top;}.posts-custom[data-attr-layout_headline="top"] .widget{vertical-align:bottom;}.posts-custom .posts-wrapper{margin-left:0;margin-right:0;font-size:0;line-height:0;}.posts-custom .widget{display:inline-block;}.posts-custom article{margin:0;box-sizing:border-box;font-size:1.6rem;line-height:1;}.posts-custom[data-attr-layout_columns="2"] article,.posts-custom[data-attr-layout_columns="3"] article,.posts-custom[data-attr-layout_columns="4"] article{margin:0 10px;}.posts-custom[data-attr-layout_columns="2"] .posts-wrapper,.posts-custom[data-attr-layout_columns="3"] .posts-wrapper,.posts-custom[data-attr-layout_columns="4"] .posts-wrapper{margin-left:-10px;margin-right:-10px;}@media (min-width:768px){.posts-custom[data-attr-layout_columns="2"] .widget{width:50%;}.posts-custom[data-attr-layout_columns="3"] .widget{width:33.3333%;}.posts-custom[data-attr-layout_columns="4"] .widget{width:25%;}}.posts-custom .widget__headline{font-size:1em;font-weight:700;word-wrap:break-word;}
30.posts-custom .widget__section{display:block;}.posts-custom .widget__head{position:relative;}.posts-custom .widget__head .widget__body{position:absolute;padding:5%;bottom:0;left:0;box-sizing:border-box;width:100%;background:rgba(0,0,0,0.4);background:linear-gradient(transparent 5%,rgba(0,0,0,0.5));}.posts-custom .widget__head .social-author__name,.posts-custom .widget__head .main-author__name,.posts-custom .widget__head .social-author__social-name,.posts-custom .widget__head .main-author__social-name,.posts-custom .widget__head .widget__headline,.posts-custom .widget__head .widget__subheadline{color:white;}.posts-custom .widget__subheadline *{display:inline;}.posts-custom .main-author__avatar,.posts-custom .social-author__avatar{float:left;border-radius:50%;margin-right:8px;height:30px;width:30px;min-width:30px;overflow:hidden;position:relative;}.posts-custom .main-author__name,.posts-custom .social-author__name{color:#1f1f1f;font-size:1.4rem;font-weight:700;line-height:1;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;}.posts-custom .main-author__social-name,.posts-custom .social-author__social-name{color:#757575;display:block;font-size:1.2rem;line-height:0.8em;}.posts-custom .main-author__name:hover,.posts-custom .social-author__name:hover,.posts-custom .main-author__social-name:hover,.posts-custom .social-author__social-name:hover{color:#000F55;}.posts-custom[data-attr-layout_carousel] .posts-wrapper:after{margin-bottom:0 !important;}.posts-custom[data-attr-layout_carousel] .widget{margin-bottom:0 !important;}.posts-custom[data-attr-layout_carousel][data-attr-layout_columns="1"] .posts-wrapper:not(.slick-initialized) .widget:not(:first-child),.posts-custom[data-attr-layout_carousel]:not([data-attr-layout_columns="1"]) .posts-wrapper:not(.slick-initialized){display:none !important;}.posts-custom .slick-arrow{position:absolute;top:0;bottom:0;width:7%;max-width:60px;min-width:45px;min-height:60px;height:15%;color:white;border:0;margin:auto 10px;background:#000F55;z-index:1;cursor:pointer;font-size:1.6rem;line-height:1;opacity:0.9;}.posts-custom .slick-prev{left:0;}.posts-custom .slick-next{right:0;}.posts-custom .slick-arrow:before{position:absolute;left:0;right:0;width:13px;bottom:0;top:0;margin:auto;height:16px;}.posts-custom .slick-arrow:hover{background:#000F55;opacity:1;}.posts-custom .slick-dots{display:block;padding:10px;box-sizing:border-box;text-align:center;margin:0 -5px;}.posts-custom .slick-dots li{display:inline-block;margin:0 5px;}.posts-custom .slick-dots button{font-size:0;width:10px;height:10px;display:inline-block;line-height:0;border:0;background:#000F55;border-radius:7px;padding:0;margin:0;vertical-align:middle;outline:none;}.posts-custom .slick-dots .slick-active button,.posts-custom .slick-dots button:hover{background:#000F55;}.posts-custom hr{display:none;}.posts-custom{font-family:Montserrat,sans-serif;}.posts-custom blockquote{border-left:5px solid #000F55;border-left-color:#000F55;color:#656565;padding:0 0 0 25px;margin:1em 0 1em 25px;}.posts-custom .media-caption{color:#9a9a9a;font-size:1.4rem;line-height:2;}.posts-custom a{word-wrap:break-word;}.posts-custom .giphy-image__credits-wrapper{margin:0;}.posts-custom .giphy-image__credits{color:#000;font-size:1rem;}.posts-custom .body .image-media,.posts-custom .body .giphy-image .media-photo-credit{display:block;}.posts-custom .widget__shares.enable-panel .share-plus,.posts-custom .widget__shares:not(.enable-panel) .hide-button{display:none;}.posts-custom .widget__shares{margin-left:-10px;margin-right:-10px;font-size:0;}.posts-custom .widget__shares .share{display:inline-block;padding:5px;line-height:0;width:25px;height:25px;border-radius:50%;margin:0 10px;font-size:1.5rem;text-align:center;position:relative;vertical-align:middle;color:white;}.posts-custom .widget__shares .share:hover{color:white;}.posts-custom .widget__shares i{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;height:1em;}.infinite-scroll-wrapper:not(.rm-loading){width:1px;height:1px;}.infinite-scroll-wrapper.rm-loading{width:1px;}.rm-loadmore-placeholder.rm-loading{display:block;width:100%;}.widget__shares button.share,.social-tab-buttons button.share{box-sizing:content-box;}.social-tab-buttons button.share{border:none;}.post-splash-custom,.post-splash-custom .widget__head{position:relative;}.post-splash-custom .widget__head .widget__body{position:absolute;padding:5%;bottom:0;left:0;box-sizing:border-box;width:100%;background:rgba(0,0,0,0.4);background:-webkit-linear-gradient( transparent 5%,rgba(0,0,0,0.5) );background:-o-linear-gradient(transparent 5%,rgba(0,0,0,0.5));background:-moz-linear-gradient( transparent 5%,rgba(0,0,0,0.5) );background:linear-gradient(transparent 5%,rgba(0,0,0,0.5));}.post-splash-custom .headline{font-size:2rem;font-weight:700;position:relative;}
30.post-splash-custom .post-controls{position:absolute;top:0;left:0;z-index:2;}.post-splash-custom hr{display:none;}.post-splash-custom .widget__section{display:block;}.post-splash-custom .post-date{display:block;}.post-splash-custom .photo-credit p,.post-splash-custom .photo-credit a{font-size:1.1rem;margin:0;}.post-splash-custom .widget__subheadline *{display:inline;}.post-splash-custom .widget__image .headline,.post-splash-custom .widget__image .photo-credit,.post-splash-custom .widget__image .photo-credit p,.post-splash-custom .widget__image .photo-credit a,.post-splash-custom .widget__image .post-date{color:#fff;}@media (min-width:768px){.post-splash-custom .headline{font-size:3.6rem;}}.post-splash-custom .widget__shares.enable-panel .share-plus,.post-splash-custom .widget__shares:not(.enable-panel) .hide-button{display:none;}.post-splash-custom .widget__shares{margin-left:-10px;margin-right:-10px;font-size:0;}.post-splash-custom .widget__shares .share{display:inline-block;padding:5px;line-height:0;width:25px;height:25px;border-radius:50%;margin:0 10px;font-size:1.5rem;text-align:center;position:relative;vertical-align:middle;color:white;}.post-splash-custom .widget__shares .share:hover{color:white;}.post-splash-custom .widget__shares i{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;height:1em;}.post-authors{font-size:1.1em;line-height:1;padding-bottom:20px;margin-bottom:20px;color:#9a9a9a;border-bottom:1px solid #d2d2d2;}.post-authors__name,.post-authors__date{display:inline-block;vertical-align:middle;}.post-authors__name{font-weight:600;}.post-authors__date{margin-left:7px;}.post-authors__fb-like{float:right;overflow:hidden;}.post-authors__fb-like[fb-xfbml-state='rendered']:before{content:'Like us on Facebook';line-height:20px;display:inline-block;vertical-align:middle;margin-right:15px;}.post-authors__list{list-style:none;display:inline-block;vertical-align:middle;margin:0;padding:0;}.post-author{display:inline;}.post-author__avatar{z-index:0;border-radius:100%;object-fit:cover;width:50px;height:50px;}.post-author__avatar,.post-author__name{display:inline-block;vertical-align:middle;}.post-author__bio p{margin:0;}.post-pager{display:table;width:100%;}.post-pager__spacing{display:table-cell;padding:0;width:5px;}.post-pager__btn{display:table-cell;font-size:1.6rem;background:#000F55;color:white;cursor:pointer;line-height:1em;padding:1.6rem;font-weight:700;text-align:center;}.post-pager__btn:hover{background:#000F55;color:white;}.post-pager__btn .fa{transition:padding 200ms;}.post-pager__btn:hover .fa{padding:0 5px;}.post-pager__spacing:first-child,.post-pager__spacing:last-child{display:none;}.arrow-link{font-weight:600;font-size:1.5rem;color:#000F55;margin:0 -.5rem;text-align:right;position:relative;}.arrow-link__anchor span{vertical-align:middle;margin:0 .5rem;}.list{display:block;margin-left:-1em;margin-right:-1em;padding:0;}.list__item{display:inline-block;padding:1em;}.logo__anchor{display:block;font-size:0;}.logo__image.with-bounds{max-width:190px;max-height:100px;}@media (min-width:768px){.logo__image.with-bounds{max-width:350px;}}.share-plus{background-color:#afafaf;}.share-plus:hover{background-color:#aaaaaa;}.share-facebook,.share-fb{background-color:#1777f2;}.share-facebook:hover,.share-fb:hover{background-color:#318bff;}.share-twitter,.share-tw{background-color:#50abf1;}.share-twitter:hover,.share-tw:hover{background-color:#00a8e5;}.share-apple{background-color:#000000;}.share-apple:hover{background-color:#333333;}.share-linkedin{background-color:#0077b5;}.share-linkedin:hover{background:#006da8;}.share-pinterest{background-color:#ce1e1f;}.share-pinterest:hover{background:#bb2020;}.share-googleplus{background-color:#df4a32;}.share-googleplus:hover{background-color:#c73c26;}.share-reddit{background-color:#ff4300;}.share-email{background-color:#5e7286;}.share-email:hover{background:#48596b;}.share-tumblr{background-color:#2c4762;}.share-tumblr:hover{background-color:#243c53;}.share-sms{background-color:#ff922b;}.share-sms:hover{background-color:#fd7e14;}.share-whatsapp{background-color:#4dc247;}.share-instagram{background-color:#3f729b;}.share-instagram:hover{background-color:#4B88B9;}.share-youtube{background-color:#cd201f;}.share-youtube:hover{background-color:#EA2524;}.share-linkedin{background-color:#0077b5;}.share-linkedin:hover{background-color:#005d8e;}.share-slack{background-color:#36C5F0;}.share-slack:hover{background-color:#0077b5;}.share-openid{background-color:#F7931E;}.share-openid:hover{background-color:#E6881C;}.share-st{background-color:#eb4924;}.share-copy-link{background-color:#159397;}.listicle-slideshow__thumbnails{margin:0 -0.5%;overflow:hidden;white-space:nowrap;min-height:115px;}.listicle-slideshow__thumbnail{width:19%;margin:0.5%;display:inline-block;cursor:pointer;}.listicle-slideshow-pager{display:none;}.rm-non-critical-loaded .listicle-slideshow-pager{display:contents;}.rm-top-sticky-flexible{position:fixed;z-index:4;top:0;left:0;width:100%;transform:translate3d(0px,0px,0px);}.rm-top-sticky-stuck{position:relative;}.rm-top-sticky-stuck .rm-top-sticky-floater{position:fixed;z-index:4;top:0;left:0;width:100%;transform:translate3d(0px,-200px,0px);}.rm-top-sticky-stuck.rm-stuck .rm-top-sticky-floater{transform:translate3d(0px,0px,0px);}@layer tokens{:root{--small:4px;--black-500:#111}}@layer themes{:root,.default{--primary-color:var(--black-500)}}@layer utilities{.text-md{font-size:var(--size-10);line-height:var(--size-14);font-weight:var(--font-weight-bold)}}@layer elements{.button{background-color:var(--primary-color)}}@font-face{font-family:'My font';font-weight:200;font-style:normal;font-display:swap;src:url('') format('woff2')}#recurly-elements{color:#bababa}[id^="primis_playerSekindoSPlayer"]{z-index:999997!important}.my-account-wrapper{z-index:999998!important}.sticky-banner-wrapper{min-height:280px;
30display:flex;flex-direction:column;align-items:center}.sticky-banner-wrapper .ad--billboard{flex-direction:column}.ad--billboard{position:relative}.stiky_sky.left::before,.stiky_sky.right::before{position:fixed}.sticky-banner-wrapper:has(.ci-ymal)::before,.stiky_sky.left:has(.ci-ymal)::before,.stiky_sky.right:has(.ci-ymal)::before{display:none}@media (min-width:1280px){.sticky-banner-wrapper::before,.stiky_sky.left::before,.stiky_sky.right::before{display:block;content:"Advertisement";font-style:italic;font-size:12px;line-height:22px;pointer-events:none;text-transform:uppercase;color:#000;top:0;position:sticky}}.posts-custom .widget__head .widget__body{padding:0;top:0}.simplestream-holder{aspect-ratio:16/9;overflow:hidden}.simplestream--embed__wrapper{position:absolute;top:0;bottom:0;width:100%;left:0;z-index:1}ad-slot[position]{display:flex;align-items:center;justify-content:center}.sticky-banner-wrapper .ad--billboard{display:flex;position:relative;background:white;z-index:399;align-items:center;justify-content:center}.upper-topbar-wrapper{border:unset!important;border-bottom:1px solid #d9d9d9!important}.stiky_sky.left,.stiky_sky.right{position:sticky;top:0}.stiky_sky.left{float:left;margin-left:-160px}.stiky_sky.right{float:right;margin-right:-160px}.stiky_sky{width:160px}ad-slot[position]>.ci-ad{position:relative}ad-slot[position]>.ci-ad>div{background-color:#e5e5e5}ad-slot[position="mpu_top"]>.ci-ad>div,ad-slot[position="mpu_mobile"]>.ci-ad>div{width:300px;min-height:250px}ad-slot[position="leader_middle"]>.ci-ad>div{max-width:728px;min-height:90px}ad-slot[position]>.ci-ad>div::after{display:block;content:"";width:125px;height:45px;max-width:100%;max-height:100%;position:absolute;bottom:15px;right:15px;z-index:-1}@media (max-width:767px){ad-slot[position="sticky_banner"]{position:fixed;bottom:0;width:100%;left:0;z-index:29;background:#000000aa}ad-slot[position="sticky_banner"]>.ci-ad>div{min-height:72px}ad-slot[position="sticky_banner"]>.ci-ad>div::after{display:none}}@media (max-width:1280px){.sticky-banner-wrapper .ad--billboard{display:none}}@media (min-width:1024px){.sky--ad__container{padding-top:20px}.ad--billboard .ci-ad{margin:0}.sticky-banner-wrapper .ad--billboard{}ad-slot[position="billboard"]>.ci-ad>div::after{display:none}}@media (min-width:1280px){ad-slot[position="sky_right_top"]>.ci-ad>div::after,ad-slot[position="sky_left_top"]>.ci-ad>div::after{display:none}}@media (min-width:1600px){.stiky_sky{min-width:301px;display:flex;justify-content:center}.stiky_sky.left{margin-left:-300px}.stiky_sky.right{margin-right:-300px}}.gbn-auth-overlay{z-index:100000!important}.gbn-auth-link{font-size:16px!important}.gbn-auth-login-btn{font-size:18px!important}@media (max-width:768px){.ad-sticky-footer-mobile{width:100%;background-color:var(--text-light-gray);position:fixed;z-index:100000;bottom:0!important;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;border-top:1px solid #393f5626;padding-bottom:env(safe-area-inset-bottom,10px);min-height:120px;max-height:140px}.footer-ad-wrapper{align-self:center;background-color:#ebebeb;font-style:italic;font-size:12px!important;line-height:20px!important;pointer-events:none;text-transform:uppercase}}.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:999999999;align-items:center;justify-content:center}.modal-overlay.active{display:flex}.modal-box{background:#fff;border-radius:12px;padding:0;width:100%;max-width:520px;position:relative;max-height:92vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,0.18);overflow:scroll;margin:0 auto}.modal-header{background:#000f55;border-radius:12px 12px 0 0;padding:20px 24px;display:flex;align-items:center;justify-content:center;position:relative}.modal-header-logo{height:32px;width:auto;display:block}.modal-close{position:absolute;top:35%;right:5px;transform:translateY(-50%);background:rgba(255,255,255,0.15);border:none;width:30px;height:30px;border-radius:50%;font-size:22px;cursor:pointer;color:#fff;background:rgba(255,255,255,0.3);line-height:1;display:flex;align-items:center;justify-content:center;transition:background 200ms}
30.modal-close:hover{background:rgba(255,255,255,0.5)}.modal-inner{padding:24px 28px 28px}.modal-title,.modal-plan-label{display:none}.modal-charge-amount strong{color:#0032aa;font-size:16px;font-weight:600;line-height:18px}.plan-summary{background:#f5f5f5;border:1px solid #000f55;border-radius:10px;padding:16px}@media (max-width:700px){.plan-summary{padding:10px}}.plan-summary-charge{font-size:16px;font-family:Montserrat,sans-serif;color:#1f1f1f;margin-bottom:12px;margin-top:0;font-weight:500;line-height:18px}.plan-summary-charge strong{color:#0032aa;font-weight:700}.plan-summary-meta{display:grid;gap:0;flex-wrap:wrap;grid-template-columns:1fr 1fr 1fr;column-gap:15px;line-height:14px}.plan-meta-label{display:block;font-size:14px;font-family:Montserrat,sans-serif;color:#1f1f1f;text-transform:capitalize;letter-spacing:0.05em;margin-bottom:5px}.plan-meta-value{display:block;font-size:14px;font-family:Montserrat,sans-serif;font-weight:600;color:#000f55;line-height:14px}.rec-divider{margin:20px auto;height:1px;background-color:#bababa}.payment-method-heading{font-size:14px;font-weight:500;font-family:Montserrat,sans-serif;color:#1f1f1f;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:10px;line-height:14px}.payment-tabs{display:flex;grid-template-columns:repeat(4,1fr);margin-bottom:20px;justify-content:space-between}.payment-tab{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:6px;border:1.5px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer;transition:border-color 200ms,box-shadow 200ms;overflow:visible;width:24%}.payment-tab:hover{border-color:#22ab00}.payment-tab.active{box-shadow:0 0 0 1px rgba(0,50,170,0.15);border:1px solid #22ab00}.payment-tab.active::after{content:"â";position:absolute;top:-8px;right:-8px;width:18px;height:18px;background:#22ab00;color:#fff;border-radius:50%;font-size:11px;line-height:18px;text-align:center;z-index:1}.tab-icon{width:100%;height:100%;object-fit:contain;display:block}.payment-panel{animation:fadeIn 200ms ease}@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.cta-img{display:block;width:100%;height:auto;border-radius:8px}.cta-wrapper{position:relative;width:100%;border-radius:8px;overflow:hidden}.cta-overlay-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:8px;pointer-events:none;z-index:2}#paypal-container{width:100%;min-height:50px;border-radius:8px;overflow:hidden}#paypal-container>*{width:100%!important;border-radius:8px!important}#google-pay-button-container button,#google-pay-button-container>div,#google-pay-button-container iframe{width:100%!important;height:100%!important}#apple-pay-button-container{width:100%}#my-apple-pay-button{width:100%!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#000!important;border:none!important;border-radius:8px!important;padding:0!important;cursor:pointer!important;transition:background 200ms}#my-apple-pay-button:hover{background:#1a1a1a!important}#my-apple-pay-button .cta-img{width:auto!important;height:24px!important;display:block!important}#recurly-visa-logo{margin:0 4px}#checkout-modal .submit-btn,#checkout-modal button.submit-btn,#checkout-modal #submit-btn{text-align:center;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:500;line-height:24px;color:#fff;background-color:#0032aa;width:100%;height:40px;border-radius:6px;display:flex;justify-content:center;align-items:center}#checkout-modal .submit-btn:hover{background-color:#c20000}#checkout-modal #submit-btn:disabled{background:#d1d5db!important;color:#9ca3af!important;cursor:not-allowed!important}.rec-form-inputs{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.rec-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rec-col{max-width:600px;margin:0 auto;width:100%;row-gap:30px;display:grid}#card-number{margin-bottom:20px}#card-cvc{margin-top:20px}#card-number div,#card-month div,#card-year div,#card-cvc div{width:100%;outline:none;border:0;margin:0;padding:0}#card-number div::placeholder{content:"Card number"}.rec-input{width:100%;padding:10px;border:1.5px solid #acacac;border-radius:8px;font-size:16.5px;font-family:Montserrat,sans-serif;color:#1f1f1f;outline:none;background:#fff;transition:border-color 200ms,box-shadow 200ms;box-sizing:border-box;height:50px;font-weight:400;line-height:16px}#gift-recipient-message{min-height:102px;height:100%}.rec-input::placeholder{color:#a7a9ac}.rec-input:focus{border-color:#0032aa;box-shadow:0 0 0 3px rgba(0,50,170,0.1)}#recurly-elements{border:1.5px solid #d1d5db;border-radius:8px;margin-bottom:16px;min-height:44px;transition:border-color 200ms,box-shadow 200ms;background:#fff}.recurly-element.recurly-element-card{border:none;margin-top:5px}#recurly-elements:focus-within{border-color:#0032aa;box-shadow:0 0 0 3px rgba(0,50,170,0.1)}.payment-security{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;font-size:12px;color:#9ca3af;font-family:Montserrat,sans-serif}.payment-security svg{flex-shrink:0}.recurly-error{color:#b91c1c;background:#fef2f2;padding:12px 14px;margin-top:12px;border:1px solid #fca5a5;border-radius:8px;font-size:14px;font-family:Montserrat,sans-serif;max-height:min-content}.modal-success{text-align:center;padding:30px}#modal-success img{margin:0 auto 20px}.modal-success h3{font-size:24px;font-weight:700;margin-bottom:12px;color:#0032aa;font-family:Montserrat,sans-serif;line-height:28px;text-align:center}.modal-success p{font-size:18px;font-family:Montserrat,sans-serif;color:#000f55;line-height:27px;text-align:center;margin:0 20px}#my-auth-container{margin-top:16px;border-radius:8px;overflow:hidden}.pn-card__wrapper.tiers-ready{visibility:visible}@media (max-width:480px){.modal-overlay{padding:0 10px}.modal-inner{padding:20px 16px 24px}.rec-row{grid-template-columns:1fr}.payment-tabs{grid-template-columns:repeat(4,1fr)}.payment-method-heading{margin:10px 0}}.cta-wrapper{position:relative;width:100%;border-radius:8px;overflow:hidden}#paypal-container{width:100%!important;min-height:50px!important;border-radius:8px!important}#paypal-container>*{width:100%!important;border-radius:8px!important}.cta-overlay-img{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;object-fit:cover!important;pointer-events:none!important;z-index:2!important}#google-pay-button-container .gpay-button,#google-pay-button-container .gpay-button *{font-family:"Google Sans",Roboto,Arial,sans-serif!important;font-weight:500!important;letter-spacing:normal!important}.pn-terms__button{opacity:0.5;transition:opacity 0.2 ease;pointer-events:none}.redeem-form-wrapper{display:flex;justify-content:center;flex-direction:column;align-items:center;margin-top:60px}.redeem-form-wrapper img{width:auto;height:82px}.body-title{text-align:center;font-weight:bold;color:#000f55;margin-top:30px;margin-bottom:30px;font-size:30px;line-height:30px}.redeem-form-wrapper input{width:100%;padding:11px 14px;border:1.5px solid #d1d5db;border-radius:8px;font-size:14px;font-family:Montserrat,sans-serif;color:#111827;outline:none;background:#fff;transition:border-color 200ms,box-shadow 200ms;box-sizing:border-box}.body-button{display:flex;align-items:center;justify-content:center;background-color:#0032aa;color:#fff;width:100%;max-width:min-content;margin:30px auto;height:38px;border-radius:8px;border:none;font-size:18px;font-weight:bold;padding:10px;transition:ease-in-out 500ms;white-space:nowrap;cursor:pointer}.body-button:hover{background-color:#c20000}#redeem-gift{display:none!important}.gift-guide{line-height:1.5}.gift-description{color:#000f55}.rec-input.is-invalid,.gbn-donate-other-input.is-invalid{border:2px solid #c20000!important;outline:none}.rec-row,.gbn-donate-other-row,.rec-form-inputs{position:relative}.rec-input.is-invalid::before,.gbn-donate-other-input.is-invalid::before{}.recurly-element-invalid-custom{border:2px solid #c20000!important;padding:4px;border-radius:4px}.submit-btn:disabled,.body-button:disabled{opacity:0.6;cursor:not-allowed}.rec-form-inputs input:invalid,textarea:invalid{background-color:#fff}.body-button:hover{color:#fff}.modal-inner.paid{padding:0}.pn-footer .footer-wrapper .footer-legal a{text-decoration:underline}#checkout-modal{transition:opacity 0.25s ease-in-out}.modal-page-btn{display:flex;padding:10px;justify-content:center;align-items:center;gap:10px;border-radius:8px;background-color:#0032aa;margin:20px auto 0;color:#fff;width:100%;max-width:128px}.modal-page-btn:hover{background-color:#c20000;color:#fff}#submit-btn.is-loading{opacity:0.85;cursor:not-allowed;display:inline-flex;align-items:center;justify-content:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-top-color:#ffffff;border-radius:50%;animation:recurly-spin 0.8s linear infinite;display:inline-block}@keyframes recurly-spin{to{transform:rotate(360deg)}}#gift-recipient-email::after{content:""!important}.payment-busy{pointer-events:none}#paypal-processing-msg,#apple-processing-msg,#google-processing-msg{margin-top:10px;padding:10px 14px;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;color:#495057;font-size:14px;text-align:center}#tab-applepay .tab-icon{transform:scale(1.5);transition:transform 0.2s ease-in-out;transform-origin:center center}@media (max-width:768px){.modal-close{top:18px;right:3px}.modal-success p{overflow-wrap:break-word}}@font-face{font-family:'Montserrat';font-weight:400;font-style:normal;font-display:swap;
30unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;src:url('https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2') format('woff2')}@font-face{font-family:'Montserrat';font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;src:url('https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2') format('woff2')}@font-face{font-family:'Montserrat';font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;src:url('https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2') format('woff2')}@font-face{font-family:'Montserrat';font-weight:700;font-style:normal;font-display:swap;
30unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;src:url('https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2') format('woff2')}:root{--text-blue:#000F55;--text-gray:#393F56;--text-light-gray:#EBEBEB;--red:#EB0000;--secondary-red:#D70000;--bg-blue:#0032AA;--blue:#0C00F9;--dark-blue:#000F55;--Montserrat:"Montserrat"}html{font-size:10px;font-family:Montserrat,sans-serif;line-height:1;color:#000;font-weight:500}body *{box-sizing:border-box}::selection{background-color:var(--bg-blue)}.main{max-width:1320px;margin:0 auto;overflow:visible}.content{padding:6px 7px 30px;margin:0;width:100%;max-width:100%}.sm-mb-2:not(:empty):after,.row:not(:empty),.col,.sm-mb-1>*,.sm-mt-1:not(:empty):before,.sm-mb-1:not(:empty):after,.posts-custom .posts-wrapper:after,.mb-2>*,.v-sep>*{margin-bottom:0}.sm-mb-2:not(:empty):after,.row:not(:empty),.col,.sm-mb-1>*,.sm-mt-1:not(:empty):before,.sm-mb-1:not(:empty):after,.posts-custom .posts-wrapper:after,.mb-2>*,.sm-mt-1>*{margin-top:0}button{padding:0;border:0;background:transparent}.hidden-desktop{display:none}.posts-custom .posts-wrapper:before{display:none}.row.px10{margin-left:0;margin-right:0}.row.px10 .col{padding-left:0;padding-right:0}.widget:hover a.widget__headline-text{text-decoration:underline}.widget:hover .body a.widget__headline-text{text-decoration:none}.widget .body .widget:hover a.widget__headline-text{text-decoration:underline}.posts-custom .widget__head{position:relative}.posts-custom .widget__head>a:after{word-wrap:break-word;display:block;position:absolute;content:"";top:0;bottom:0;width:100%;z-index:1;left:0}.user-prefs:not(.floating){z-index:2}.hover-menu.freeze{display:none!important}.posts-custom[data-attr-from_regular_sections="catch-up"] .widget__section,.posts-wrapper .widget[data-category="Dan Wootton Tonight"] .widget__section{display:none}@media (min-width:1441px){.custom-field-is-exclusive,.custom-field-is-breaking-news{left:0px!important}}@media (min-width:768px){.content{padding:55px 25px 60px}}@media (min-width:1280px){.main{max-width:1320px;min-width:970px;width:calc(100% - 320px);margin:0 auto}}@media (min-width:1600px){.main{max-width:calc(100% - 600px);margin:0 300px}}@media (min-width:1920px){.main{max-width:1320px;width:calc(100% - 600px);margin:0 auto}}@media (max-width:1023px){.hidden-mobile{display:none!important}.hidden-desktop{display:block}}.main *::-webkit-scrollbar{display:none}.main *{-ms-overflow-style:none;scrollbar-width:none}.align-center{text-align:center}@media (max-width:767px){.hide-mobile{display:none!important}}@media (max-width:1024px) and (hover:none) and (pointer:coarse){.hide-mobile{display:none!important}.nav--arrows{display:none}}.widget__headline{cursor:initial}@media (max-width:768px){.content{padding:0px}.trending-wrapper .embed-foryou__posts p,.embed-dontmiss__posts p{padding:0}.trending-wrapper{margin:0 10px}.posts-custom .body .media-caption{padding:0px 10px 5px!important;display:flex;line-height:18px}.posts-custom .body .media-photo-credit{display:block!important}.main-post__top .widget__body:not(:first-child){padding:0 10px;line-height:18px}.viously,.viously-has-ui .vsly-pip-image,.viously-iframe,.viously-ui-container{border-radius:0px!important}}#div-space{display:none!important}#newsletter-signup-v2{min-height:160px;display:flex;align-items:center;justify-content:center;height:100%}#modal-credit-note{color:#16a34a;font-weight:600;margin:8px 0 0}.custom-author__name-desc span:has(+ a:last-of-type){font-size:0}.custom-author__name-desc span:has(+ a:last-of-type):before,.custom-author__name-desc span:last-of-type::before{content:" and ";font-size:14px}.footer{max-width:1130px;margin:0 auto;background:#ebebeb}@media (min-width:1280px){.footer{width:calc(100% - 320px);margin:0 auto}}@media (min-width:1600px){.footer{width:calc(100% - 600px);margin:0 auto}}.section--headline{font-size:24px;line-height:36px;color:var(--text-blue)}.section--headline{font-size:24px;line-height:36px;color:var(--text-blue);margin:4px 10px 20px}.section--description{font-size:18px;line-height:27px;margin:20px 10px;box-shadow:0px 4px 20px rgba(0,0,0,0.04)}.section--description p{margin:0 0 15px}.section--description p:empty{display:none}.more--content--below{color:var(--bg-blue);text-align:left;display:inline-block;margin-top:0px;text-decoration:underline;font-size:18px;font-weight:500}.more--content--below ~ *{display:none}.more--content--below.hidden ~ *{display:block}
30.section--details:empty{display:none}.posts-custom .widget:not(.post-partial) .widget__section{background-color:var(--bg-blue);display:none}@media (min-width:768px){.section--details--wrapper{margin-bottom:30px}.section--headline{margin:0 0 30px;font-size:32px;line-height:48px}.section--details{display:block}.section--image{width:42%;float:left;margin-right:20px;margin-bottom:10px}.section--description{margin:0}.section--details--wrapper + *{clear:both;float:none}}.shared--posts__module .posts-wrapper{border-radius:4px}.shared--posts__module .widget,.shared--posts__module__splash__mobile .widget{margin-bottom:20px}.shared--posts__module .widget:last-child{margin:0}.shared--posts__module .widget__head + .widget__body,.shared--posts__module__splash__mobile .widget__head + .widget__body,.shared--posts__module .widget__body + .widget__body{padding:10px}.shared--posts__module .posts-custom .widget__head>a:after{word-wrap:break-word;display:block;position:absolute;content:"";top:0;bottom:0;width:100%;z-index:1}.shared--posts__module .widget__head + .widget__body,.shared--posts__module .widget__body + .widget__body{padding:5px 5px 3px 10px}.shared--posts__module .widget__headline{font-weight:500;font-size:16px;line-height:24px;color:#1f1f1f}.shared--posts__module__splash__mobile .widget__headline{font-weight:600;font-size:22px;line-height:30px;color:var(--text-blue)}.shared--posts__module .widget__head .widget__body,.shared--posts__module__splash__mobile .widget__head .widget__body{padding:0;top:0;left:0;right:0;bottom:0;background:transparent}.shared--posts__module .widget__section,.shared--posts__module__splash__mobile .widget__section,.all-related-sections a{font-weight:700;font-size:14px;line-height:1;padding:5px 8px;display:flex;align-items:center;background-color:(var(--bg-blue));color:#ffffff;position:absolute;right:0;bottom:0;text-transform:uppercase;pointer-events:none}.custom-field-is-exclusive,.custom-field-is-breaking-news{font-size:0;background:#c20000;position:absolute;left:0;color:#ffffff;line-height:1;font-weight:700;justify-content:center;align-items:center;border-radius:4px 0 4px 0;padding:6px 8px;top:0}.custom-field-is-sponsored{font-size:0;background:#000f55;position:absolute;left:0;color:#ffffff;line-height:1;font-weight:700;justify-content:center;align-items:center;border-radius:4px 0 4px 0;padding:6px 8px;top:0}.custom-field-is-sponsored:after{font-size:18px;content:"SPONSORED"}.custom-field-is-exclusive:after{font-size:18px;content:"EXCLUSIVE"}channel___hero--module.custom-field-is-breaking-news:after{font-size:18px;content:"BREAKING"}.hero-content__main .custom-field-is-breaking-news:after{content:"BREAKING NEWS"}.hero-content__sub .custom-field-is-breaking-news:after{content:"BREAKING";font-size:18px}@media (min-width:768px){.hero-content__sub .custom-field-is-sponsored:after{content:"SPONSORED";font-size:12px}.hero-content__sub .custom-field-is-breaking-news:after{content:"BREAKING NEWS"}.channel___hero--module-3 .hero-content__sub .widget:first-child .custom-field-is-breaking-news::after{content:"BREAKING "}.channel___hero--module-3 .hero-content__sub .custom-field-is-breaking-news:after{content:"BREAKING"}.channel___hero--module .hero-content__sub .custom-field-is-breaking-news::after{content:"BREAKING "}}.custom-field-is-live{font-size:18px;line-height:12px;background:#c20000;text-align:center;display:flex;align-items:center;justify-content:center;float:left;font-weight:700;padding:4px 8px;margin-right:5px;color:#fff;top:0;left:0;border-radius:4px 0 4px 0}.custom-field-is-live:after{content:"LIVE";font-size:12px;margin-left:5px}.custom-field-is-live:before{content:"";display:inline-block;width:12px;height:12px;background-image:url("https://www.gbnews.com/media-library/origin.png?id=61243246");background-size:contain;background-repeat:no-repeat;background-position:center;vertical-align:middle}.custom-field-is-analysiis + .widget__headline a:before,.custom-field-is-analysiis + .snark-line .widget__headline a:before{content:"ANALYSIS";background:transparent;border-radius:0;text-align:center;display:flex;align-items:center;justify-content:center;float:left;font-weight:700;padding:0 0px;padding-right:5px;margin-right:5px;color:#0032aa;pointer-events:none}.custom-field-is-analysiis + .widget__headline a,.custom-field-is-analysiis + .snark-line .widget__headline a,.custom-field-is-analysiis + .widget__headline,.custom-field-is-analysiis + .snark-line .widget__headline{word-wrap:inherit;word-break:inherit}.channel--heroes .custom-field-is-analysiis + .widget__headline a:before{margin-top:5px}.badge-list-normal{height:25px;width:25px;background:#0032aacc;border-radius:10px;display:flex;align-items:center;justify-content:center;position:absolute;
30left:10px;bottom:10px}.badge-list-normal a{pointer-events:none}.badge-list-normal .badge-name{display:none}.badge-list-normal img{height:25px;width:25px;margin:0;object-fit:contain;border-radius:0}.custom-field-is-breaking-news ~ .widget__section,.custom-field-is-breaking-news ~ .badge-list-normal{display:none}@media (min-width:768px){.shared--posts__module .widget__section,.shared--posts__module__splash__mobile .widget__section,.all-related-sections a{padding:8px 12px}.shared--posts__module .posts-wrapper{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px}.shared--posts__module .posts-wrapper:after{display:none}.shared--posts__module .widget{margin:0}.shared--posts__module .widget__head + .widget__body,.shared--posts__module .widget__body + .widget__body{padding:10px}.shared--posts__module .widget__headline{line-height:27px}.custom-field-is-live{line-height:16px;font-size:18px}.custom-field-is-live:after{font-size:16px}.custom-field-is-analysiis + .widget__headline a:before,.custom-field-is-analysiis + .snark-line .widget__headline a:before{}.badge-list-normal{height:25px;width:25px}.badge-list-normal img{height:25px;width:25px}.shared--posts__module .widget__section,.shared--posts__module__splash__mobile .widget__section,.all-related-sections a{font-size:16px}.custom-field-is-exclusive:after,.custom-field-is-breaking-news:after{font-size:18px}.custom-field-is-breaking-news:after{content:"BREAKING NEWS"}.your-next-read{padding:20px}}@media (min-width:1024px){.shared--posts__module .posts-wrapper{grid-template-columns:1fr 1fr 1fr}.custom-field-is-breaking-news:after{content:"BREAKING NEWS"}}@media (min-width:1200px){.shared--posts__module .posts-wrapper{grid-template-columns:1fr 1fr 1fr 1fr}}@media (min-width:1441px){.shared--posts__module:not(.tall) .posts-wrapper .widget__head img{object-fit:cover!important}}@media (max-width:767px){.shared--posts__module .widget .rm-col-center{display:grid;grid-template-columns:156px calc(100% - 156px)}.shared--posts__module .widget__headline{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;max-height:96px;line-height:20px}.custom-field-is-live + .widget__headline{display:block;overflow:unset}.shared--posts__module .widget__body{overflow:hidden}.your-next-read .posts-wrapper{margin-bottom:20px}}.custom-field-is-live,.custom-field-is-analysiis{position:absolute;font-size:0}.custom-field-is-live + .widget__headline a{margin-left:65px}@media (min-width:768px){.more-from-gbn-wrapper .shared--posts__module{background-color:#f5f5f5;padding:20px}}@media (max-width:767px){.shared--posts__module__splash__mobile .widget__section,.shared--posts__module.full-one .widget:first-child .widget__section,.shared--posts__module.channel--heroes .widget__section{font-size:16px;line-height:16px}.custom-field-is-live{margin-top:0}.shared--posts__module .posts-wrapper{margin-bottom:20px}}@media (min-width:1441px){div[class="mb-2 shared--posts__module"] .widget .widget__head{overflow:hidden;background:#fff}div[class="mb-2 shared--posts__module"] .widget .widget__img img{margin-left:1px}.shared--posts__module .widget .widget__img img{margin-left:1px}.custom-field-is-exclusive,.custom-field-is-breaking-news{left:1px}}.your-next-read .posts-wrapper .widget__body .widget__headline{font-size:14px}.your-next-read .posts-wrapper .widget__body .widget__headline:hover{text-decoration:underline}.your-next-read:not(.tall) .posts-wrapper .widget__head img{border-radius:4px}.your-next-read{background-color:#f5f5f5;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.more-from-gbn-wrapper .shared--posts__module .posts-wrapper .widget__head img{border-radius:4px}.more-from-gbn-wrapper .shared--posts__module{background-color:#f5f5f5}.more-from-gbn{border-top-left-radius:4px;border-top-right-radius:4px}@media (max-width:767px){.your-next-read{margin-bottom:20px}.more-from-gbn-wrapper .shared--posts__module .widget:nth-child(4n + 1) .rm-col-center{grid-template-columns:1fr!important}.more-from-gbn-wrapper .widget:nth-child(4n + 1) .widget__headline{font-weight:600!important;font-size:20px!important;line-height:30px!important}.more-from-gbn-wrapper .shared--posts__module .widget:not(:nth-child(4n + 1)) .rm-col-center{padding-left:10px}}.you-may-like__wrapper .widget__headline{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.custom-field-is-live + .widget__headline a{margin-left:0px!important}.hero-content__main{.custom-field-is-exclusive::after,.custom-field-is-breaking-news::after,.custom-field-is-live::after{font-size:18px;line-height:18px}}.hero-content__sub .custom-field-is-exclusive::after,.hero-content__sub .custom-field-is-breaking-news::after,.hero-content__sub .custom-field-is-sponsored::after{font-size:12px;padding:4px 6px}.hero-content__sub .custom-field-is-live::after{font-size:12px;padding:4px 6px}.hero-row-4 .widget .custom-field-is-exclusive::after{font-size:18px;padding:6px 8px}.hero-content__sub .custom-field-is-exclusive,.hero-content__sub .custom-field-is-breaking-news{padding:4px 6px}.hero-content__sub .custom-field-is-live{padding:0 4px}@media (min-width:767px){.hero-row-4 .widget:first-of-type .custom-field-is-live:after{padding:0;font-size:12px}.hero-row-4 .widget .custom-field-is-exclusive::after,.hero-row-4 .custom-field-is-breaking-news::after,.hero-row-4 .custom-field-is-sponsored::after{font-size:12px;padding:4px 6px}.hero-row-4 .widget:first-of-type .custom-field-is-breaking-news::after{font-size:12px;content:"BREAKING NEWS";padding:4px 6px}.hero-row-4 .custom-field-is-breaking-news::after{content:"BREAKING NEWS"}}@media (max-width:767px){.hero-row-4 .custom-field-is-breaking-news::after{content:"BREAKING"}.hero-row-4 .widget:first-of-type .custom-field-is-breaking-news::after{font-size:18px;content:"BREAKING NEWS";padding:4px 6px}.hero-row-4 .widget:nth-of-type(2) .custom-field-is-exclusive::after,.hero-row-4 .widget:nth-of-type(3) .custom-field-is-exclusive::after,.hero-row-4 .widget:nth-of-type(4) .custom-field-is-exclusive::after{font-size:12px;padding:4px 6px}.hero-row-4 .widget:not(:first-of-type) .custom-field-is-breaking-news::after,.hero-row-4 .widget:not(:first-of-type) .custom-field-is-exclusive::after,.hero-row-4 .widget:not(:first-of-type) .custom-field-is-sponsored::after{font-size:12px;padding:4px 6px!important}.hero-row-4 .widget:first-of-type .custom-field-is-live:after{font-size:18px;line-height:18px}.hero-row-4 .widget:first-of-type .custom-field-is-exclusive::after{font-size:18px!important;padding:6px 8px}.hero-row-4 .widget:nth-of-type(1) .custom-field-is-exclusive::after{font-size:18px;padding:6px 8px}}.hero-row-4 .widget:not(:first-of-type) .custom-field-is-live:after{font-size:12px}.hero-row-4 .widget:not(:first-of-type) .custom-field-is-breaking-news,.hero-row-4 .widget:not(:first-of-type) .custom-field-is-exclusive,.hero-row-4 .widget:not(:first-of-type) .custom-field-is-live{padding:4px 6px}.custom-field-is-live + .snark-line>h2>a{margin-left:78px;display:inline!important}.channel--featured .widget__body{padding:15px 10px 20px}.channel--featured .widget__section{font-weight:700;font-size:20px;line-height:24px;color:#FFFFFF;padding-bottom:10px;border-bottom:1px solid #FFFFFF}.channel--featured .widget__headline{color:#FFFFFF;font-weight:600;font-size:22px;line-height:30px;margin-top:10px;max-width:80%}.channel--featured .widget:hover .widget__headline a{color:#fff;text-decoration:underline}.channel--featured .widget{background-color:var(--bg-blue)}@media (min-width:768px){.channel--featured .widget{padding:27px 30px 30px}.channel--featured .widget .rm-col-center{display:grid;grid-template-columns:45% calc(55% - 35px);grid-gap:35px;align-items:center}.channel--featured .widget__body{padding:10px 0 0;max-width:424px}.channel--featured .widget__section{font-weight:700;font-size:24px;line-height:32px}.channel--featured .widget__headline{font-size:24px;line-height:36px;max-width:100%;font-weight:500}.channel--featured .widget .rm-col-center:after{display:none}}.channel--featured [data-category="Shows"]{background-color:#0032aa}.posts-custom .widget[data-category="Shows"]:not(.post-partial) .widget__section{dis
30play:none!important}}.posts-custom [data-category="Shows"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Shows"]:not(.post-partial) .all-related-sections a[href*="/shows/"]~a[href*="/shows/"]{display:block}.posts-custom .widget[data-category="Shows"]:not(.post-partial) .all-related-sections a[href*="/shows/"]~a[href*="/shows/"]~a{display:none!important}.widget[data-category="Shows"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Shows"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Shows"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Presenters"]{background-color:#0032aa}.posts-custom .widget[data-category="Presenters"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Presenters"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Presenters"]:not(.post-partial) .all-related-sections a[href*="/presenters/"]~a[href*="/presenters/"]{display:block}.posts-custom .widget[data-category="Presenters"]:not(.post-partial) .all-related-sections a[href*="/presenters/"]~a[href*="/presenters/"]~a{display:none!important}.widget[data-category="Presenters"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Presenters"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Presenters"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Celebrity"]{background-color:#0032aa}.posts-custom .widget[data-category="Celebrity"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Celebrity"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Celebrity"]:not(.post-partial) .all-related-sections a[href*="/celebrity/"]~a[href*="/celebrity/"]{display:block}.posts-custom .widget[data-category="Celebrity"]:not(.post-partial) .all-related-sections a[href*="/celebrity/"]~a[href*="/celebrity/"]~a{display:none!important}.widget[data-category="Celebrity"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Celebrity"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Celebrity"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Lifestyle"]{background-color:#0032aa}.posts-custom .widget[data-category="Lifestyle"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Lifestyle"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Lifestyle"]:not(.post-partial) .all-related-sections a[href*="/lifestyle/"]~a[href*="/lifestyle/"]{display:block}.posts-custom .widget[data-category="Lifestyle"]:not(.post-partial) .all-related-sections a[href*="/lifestyle/"]~a[href*="/lifestyle/"]~a{display:none!important}.widget[data-category="Lifestyle"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Lifestyle"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Lifestyle"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Health"]{background-color:#0032aa}.posts-custom .widget[data-category="Health"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Health"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Health"]:not(.post-partial) .all-related-sections a[href*="/health/"]~a[href*="/health/"]{display:block}.posts-custom .widget[data-category="Health"]:not(.post-partial) .all-related-sections a[href*="/health/"]~a[href*="/health/"]~a{dis
30play:none!important}.widget[data-category="Health"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Health"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Health"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Money"]{background-color:#0032aa}.posts-custom .widget[data-category="Money"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Money"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Money"]:not(.post-partial) .all-related-sections a[href*="/money/"]~a[href*="/money/"]{display:block}.posts-custom .widget[data-category="Money"]:not(.post-partial) .all-related-sections a[href*="/money/"]~a[href*="/money/"]~a{display:none!important}.widget[data-category="Money"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Money"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Money"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="News"]{background-color:#0032aa}.posts-custom .widget[data-category="News"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="News"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="News"]:not(.post-partial) .all-related-sections a[href*="/news/"]~a[href*="/news/"]{display:block}.posts-custom .widget[data-category="News"]:not(.post-partial) .all-related-sections a[href*="/news/"]~a[href*="/news/"]~a{display:none!important}.widget[data-category="News"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="News"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="News"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Opinion"]{background-color:#000F55}.posts-custom .widget[data-category="Opinion"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Opinion"]:not(.post-partial) .badge-list-normal{background-color:#000F55}.posts-custom [data-category="Opinion"]:not(.post-partial) .all-related-sections a[href*="/opinion/"]~a[href*="/opinion/"]{display:block}.posts-custom .widget[data-category="Opinion"]:not(.post-partial) .all-related-sections a[href*="/opinion/"]~a[href*="/opinion/"]~a{display:none!important}.widget[data-category="Opinion"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Opinion"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Opinion"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Politics"]{background-color:#0032aa}.posts-custom .widget[data-category="Politics"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Politics"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Politics"]:not(.post-partial) .all-related-sections a[href*="/politics/"]~a[href*="/politics/"]{display:block}.posts-custom .widget[data-category="Politics"]:not(.post-partial) .all-related-sections a[href*="/politics/"]~a[href*="/politics/"]~a{display:none!important}.widget[data-category="Politics"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Politics"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Politics"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Royal"]{background-color:#0032aa}.posts-custom .widget[data-category="Royal"]:not(.post-partial) .widget__section{dis
30play:none!important}}.posts-custom [data-category="Royal"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Royal"]:not(.post-partial) .all-related-sections a[href*="/royal/"]~a[href*="/royal/"]{display:block}.posts-custom .widget[data-category="Royal"]:not(.post-partial) .all-related-sections a[href*="/royal/"]~a[href*="/royal/"]~a{display:none!important}.widget[data-category="Royal"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Royal"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Royal"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Science"]{background-color:#0032aa}.posts-custom .widget[data-category="Science"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Science"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Science"]:not(.post-partial) .all-related-sections a[href*="/science/"]~a[href*="/science/"]{display:block}.posts-custom .widget[data-category="Science"]:not(.post-partial) .all-related-sections a[href*="/science/"]~a[href*="/science/"]~a{display:none!important}.widget[data-category="Science"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Science"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Science"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Travel"]{background-color:#0032aa}.posts-custom .widget[data-category="Travel"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Travel"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Travel"]:not(.post-partial) .all-related-sections a[href*="/travel/"]~a[href*="/travel/"]{display:block}.posts-custom .widget[data-category="Travel"]:not(.post-partial) .all-related-sections a[href*="/travel/"]~a[href*="/travel/"]~a{display:none!important}.widget[data-category="Travel"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Travel"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Travel"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Weather"]{background-color:#0032aa}.posts-custom .widget[data-category="Weather"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Weather"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Weather"]:not(.post-partial) .all-related-sections a[href*="/weather/"]~a[href*="/weather/"]{display:block}.posts-custom .widget[data-category="Weather"]:not(.post-partial) .all-related-sections a[href*="/weather/"]~a[href*="/weather/"]~a{display:none!important}.widget[data-category="Weather"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Weather"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Weather"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="US"]{background-color:#0032aa}.posts-custom .widget[data-category="US"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="US"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="US"]:not(.post-partial) .all-related-sections a[href*="/us/"]~a[href*="/us/"]{display:block}.posts-custom .widget[data-category="US"]:not(.post-partial) .all-related-sections a[href*="/us/"]~a[href*="/us/"]~a{display:none!important}.widget[data-category="US"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="US"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="US"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Watch"]{background-color:#0032aa}.posts-custom .widget[data-category="Watch"]:not(.post-partial) .widget__section{dis
30play:none!important}}.posts-custom [data-category="Watch"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Watch"]:not(.post-partial) .all-related-sections a[href*="/watch/"]~a[href*="/watch/"]{display:block}.posts-custom .widget[data-category="Watch"]:not(.post-partial) .all-related-sections a[href*="/watch/"]~a[href*="/watch/"]~a{display:none!important}.widget[data-category="Watch"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Watch"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Watch"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Listen"]{background-color:#0032aa}.posts-custom .widget[data-category="Listen"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Listen"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Listen"]:not(.post-partial) .all-related-sections a[href*="/listen/"]~a[href*="/listen/"]{display:block}.posts-custom .widget[data-category="Listen"]:not(.post-partial) .all-related-sections a[href*="/listen/"]~a[href*="/listen/"]~a{display:none!important}.widget[data-category="Listen"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Listen"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Listen"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Membership"]{background-color:#0032aa}.posts-custom .widget[data-category="Membership"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Membership"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Membership"]:not(.post-partial) .all-related-sections a[href*="/membership/"]~a[href*="/membership/"]{display:block}.posts-custom .widget[data-category="Membership"]:not(.post-partial) .all-related-sections a[href*="/membership/"]~a[href*="/membership/"]~a{display:none!important}.widget[data-category="Membership"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Membership"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Membership"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Tech"]{background-color:#0032aa}.posts-custom .widget[data-category="Tech"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Tech"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Tech"]:not(.post-partial) .all-related-sections a[href*="/tech/"]~a[href*="/tech/"]{display:block}.posts-custom .widget[data-category="Tech"]:not(.post-partial) .all-related-sections a[href*="/tech/"]~a[href*="/tech/"]~a{display:none!important}.widget[data-category="Tech"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Tech"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Tech"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Traffic Travel"]{background-color:#0032aa}.posts-custom .widget[data-category="Traffic Travel"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Traffic Travel"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Traffic Travel"]:not(.post-partial) .all-related-sections a[href*="/traffic travel/"]~a[href*="/traffic travel/"]{display:block}.posts-custom .widget[data-category="Traffic Travel"]:not(.post-partial) .all-related-sections a[href*="/traffic travel/"]~a[href*="/traffic travel/"]~a{dis
30play:none!important}.widget[data-category="Traffic Travel"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Traffic Travel"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Traffic Travel"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Sport"]{background-color:#0032aa}.posts-custom .widget[data-category="Sport"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Sport"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Sport"]:not(.post-partial) .all-related-sections a[href*="/sport/"]~a[href*="/sport/"]{display:block}.posts-custom .widget[data-category="Sport"]:not(.post-partial) .all-related-sections a[href*="/sport/"]~a[href*="/sport/"]~a{display:none!important}.widget[data-category="Sport"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Sport"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Sport"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Puzzles"]{background-color:#0032aa}.posts-custom .widget[data-category="Puzzles"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Puzzles"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Puzzles"]:not(.post-partial) .all-related-sections a[href*="/puzzles/"]~a[href*="/puzzles/"]{display:block}.posts-custom .widget[data-category="Puzzles"]:not(.post-partial) .all-related-sections a[href*="/puzzles/"]~a[href*="/puzzles/"]~a{display:none!important}.widget[data-category="Puzzles"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Puzzles"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Puzzles"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Black Friday"]{background-color:#0032aa}.posts-custom .widget[data-category="Black Friday"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Black Friday"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Black Friday"]:not(.post-partial) .all-related-sections a[href*="/black friday/"]~a[href*="/black friday/"]{display:block}.posts-custom .widget[data-category="Black Friday"]:not(.post-partial) .all-related-sections a[href*="/black friday/"]~a[href*="/black friday/"]~a{display:none!important}.widget[data-category="Black Friday"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Black Friday"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Black Friday"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Advent"]{background-color:#0032aa}.posts-custom .widget[data-category="Advent"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Advent"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Advent"]:not(.post-partial) .all-related-sections a[href*="/advent/"]~a[href*="/advent/"]{display:block}.posts-custom .widget[data-category="Advent"]:not(.post-partial) .all-related-sections a[href*="/advent/"]~a[href*="/advent/"]~a{display:none!important}.widget[data-category="Advent"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Advent"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Advent"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Reflections"]{background-color:#0032aa}.posts-custom .widget[data-category="Reflections"]:not(.post-partial) .widget__section{dis
30play:none!important}}.posts-custom [data-category="Reflections"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Reflections"]:not(.post-partial) .all-related-sections a[href*="/reflections/"]~a[href*="/reflections/"]{display:block}.posts-custom .widget[data-category="Reflections"]:not(.post-partial) .all-related-sections a[href*="/reflections/"]~a[href*="/reflections/"]~a{display:none!important}.widget[data-category="Reflections"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Reflections"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Reflections"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="You Decide"]{background-color:#0032aa}.posts-custom .widget[data-category="You Decide"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="You Decide"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="You Decide"]:not(.post-partial) .all-related-sections a[href*="/you decide/"]~a[href*="/you decide/"]{display:block}.posts-custom .widget[data-category="You Decide"]:not(.post-partial) .all-related-sections a[href*="/you decide/"]~a[href*="/you decide/"]~a{dis
30play:none!important}.widget[data-category="You Decide"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="You Decide"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="You Decide"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="Advent 2025"]{background-color:#0032aa}.posts-custom .widget[data-category="Advent 2025"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="Advent 2025"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="Advent 2025"]:not(.post-partial) .all-related-sections a[href*="/advent 2025/"]~a[href*="/advent 2025/"]{display:block}.posts-custom .widget[data-category="Advent 2025"]:not(.post-partial) .all-related-sections a[href*="/advent 2025/"]~a[href*="/advent 2025/"]~a{display:none!important}.widget[data-category="Advent 2025"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="Advent 2025"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="Advent 2025"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.channel--featured [data-category="NewsFromUs"]{background-color:#0032aa}.posts-custom .widget[data-category="NewsFromUs"]:not(.post-partial) .widget__section{display:none!important}}.posts-custom [data-category="NewsFromUs"]:not(.post-partial) .badge-list-normal{background-color:#0032aa}.posts-custom [data-category="NewsFromUs"]:not(.post-partial) .all-related-sections a[href*="/newsfromus/"]~a[href*="/newsfromus/"]{display:block}.posts-custom .widget[data-category="NewsFromUs"]:not(.post-partial) .all-related-sections a[href*="/newsfromus/"]~a[href*="/newsfromus/"]~a{display:none!important}.widget[data-category="NewsFromUs"]>article>.row>.col>.widget__body>.custom-field-is-analysiis,.widget[data-category="NewsFromUs"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.widget__headline a:before,.widget[data-category="NewsFromUs"]>article>.row>.col>.widget__body>.custom-field-is-analysiis+.snark-line .widget__headline a:before{background-color:transparent}.ad--placeholder{margin:15px auto 15px;overflow:hidden}.mb-2:empty + .ad--placeholder{display:none}.posts-custom .widget__shares{margin-bottom:20px}.posts-custom .widget__shares a{background-color:var(--bg-blue);border-radius:4px}.posts-custom .widget__shares .share-copy-link,.posts-custom .widget__shares .share-fb,.posts-custom .widget__shares .share-tw,.posts-custom .widget__shares .share-email,.posts-custom .widget__shares .share-facebook-messenger,.posts-custom .widget__shares .share-copy-link,.posts-custom .widget__shares .share-whatsapp-desktop,.posts-custom .widget__shares .share-whatsapp{color:transparent;background-position:center;background-repeat:no-repeat}.posts-custom .widget__shares .share-copy-link{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI5MzlfNTM3NCkiPgo8cGF0aCBkPSJNMy42MjEyMiAxNS4zMzMxQzIuMzI2OTIgMTUuMjYyNiAxLjIxNzI2IDE0LjU5NzkgMC42NDQzMjIgMTMuMjMwNUMwLjA4ODU4NTMgMTEuOTA0NyAwLjMwNDkwNiAxMC42MzU5IDEuMjk3ODEgOS41ODIzNEMyLjM2MjIyIDguNDUyOCAzLjQ1MTA2IDcuMzQwNDUgNC41OTc4NCA2LjI5NTAxQzUuOTEzODYgNS4wOTQwMyA3Ljg0ODA4IDUuMjEyNSA5LjA2MzY0IDYuMjg5NTlDOS4zMzE1NSA2LjUyNjUzIDkuMzU1MDkgNi44OTA5OCA5LjEzNjA1IDcuMTYyMjlDOC45MTMzOSA3LjQzODEyIDguNTQ0MTEgNy40OTE0OCA4LjI0NzIzIDcuMjcxNzJDNy45MDMyOSA3LjAxNzU5IDcuNTQ0ODcgNi44MDU5NyA3LjEwOTUxIDYuNzU1MzNDNi4zOTQ0OCA2LjY3MjEzIDUuNzg0NDMgNi44OTgyMiA1LjI3OTM4IDcuMzk4MzNDNC4yODgyOSA4LjM3OTU1IDMuMzAzNTMgOS4zNjcxMSAyLjMxODc3IDEwLjM1NDdDMS43Mjk1NSAxMC45NDYxIDEuNTAwNTUgMTEuNjU2OSAxLjcyNjgzIDEyLjQ2NDVDMS45NTY3MyAxMy4yODQ4IDIuNTEzMzcgMTMuODEwMiAzLjM0Nzg4IDE0LjAwMDFDMy45ODQxNyAxNC4xNDQ4IDQuNTc2MTEgMTQuMDA3MyA1LjA5Mzg0IDEzLjYwMDRDNS4yMjQxNyAxMy40OTgyIDUuMzQ0NTUgMTMuMzgzMyA1LjQ2MjIxIDEzLjI2NjdDNi4zNTI4NCAxMi4zNzY4IDcuMjM5ODUgMTEuNDgzMyA4LjEzMTM4IDEwLjU5NDNDOC40ODUyOCAxMC4yNDA3IDguOTQxNDUgMTAuMjczMyA5LjE5MjE3IDEwLjY1OTRDOS4zNTg3MSAxMC45MTYzIDkuMzMwNjUgMTEuMjE5MiA5LjA4NzE3IDExLjQ2MzRDOC4wODA2OSAxMi40NzE4IDcuMDc2OTMgMTMuNDgzNyA2LjA1MzI1IDE0LjQ3NEM1LjQ4MTIyIDE1LjAyNzUgNC42MjQ5OSAxNS4zMjc3IDMuNjIyMTMgMTUuMzMyMkwzLjYyMTIyIDE1LjMzMzFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTUuNzExIDMuMzQ0NEMxNS42ODU3IDQuMzk3MDcgMTUuMzM5IDUuMjIwMDMgMTQuNjUyIDUuOTAxOTFDMTMuNjI0NyA2LjkyMjAyIDEyLjYwODMgNy45NTI5OSAxMS41Nzc0IDguOTY4NThDMTAuMzc4MSAxMC4xNTA2IDguMjk1NDcgMTAuMTkyMiA3LjAzNDY1IDkuMDcxNjhDNi43NTY3OSA4LjgyNDc5IDYuNzExNTMgOC40NTIxOSA2LjkyNzg1IDguMTg0NUM3LjE2NDk5IDcuODkwNTkgNy41MjE2IDcuODM5MDQgNy44MzExNSA4LjA2ODc1QzguMTc0MTggOC4zMjQ2OCA4LjUzNTMyIDguNTMwODcgOC45Njk3NyA4LjU4MTUyQzkuNjk1NjcgOC42Njc0MyAxMC4zMDQ4IDguNDI0MTYgMTAuODE0NCA3LjkxODYyQzExLjgwOTEgNi45MzEwNyAxMi44MDQ3IDUuOTQyNjEgMTMuNzg4NiA0Ljk0MzNDMTQuMzY3OCA0LjM1NDU2IDE0LjU3MDYgMy42NDE5MyAxNC4zMzYyIDIuODQzMzlDMTQuMDk4MSAyLjAzMjE4IDEzLjU0MjQgMS41MTQ4OSAxMi43MTc4IDEuMzM0MDJDMTEuOTQ0OSAxLjE2NDkgMTEuMjc1MSAxLjQwMjc1IDEwLjcxNzUgMS45NjE2NEM5Ljc5MTYxIDIuODkwNDEgOC44NjY1OSAzLjgyMDk5IDcuOTM3MDUgNC43NDYxNUM3LjU2ODY3IDUuMTEyNDEgNy4wODM1MyA1LjA1NTQ0IDYuODU1NDQgNC42MzEyOUM2LjcxMzM0IDQuMzY3MjIgNi43NjY3NCA0LjA5MDQ5IDcuMDIyODkgMy44MzM2NUM3LjY5ODEgMy4xNTUzOSA4LjM3NjAyIDIuNDc4OTMgOS4wNTU3NiAxLjgwMzM4QzkuMzU1MzUgMS41MDU4NSA5LjY0OTUxIDEuMjAxOTggOS45NjI2OCAwLjkxOTgyM0MxMC45NzgyIDAuMDA2NDI1MjQgMTIuMTU3NiAtMC4yMjUwOSAxMy40MzIgMC4yMTg
30wNDRDMTQuNjQzIDAuNjM4NTY5IDE1LjM2OTggMS41MjkzNiAxNS42Mzg2IDIuNzgyNzlDMTUuNjgzOSAyLjk5NTMyIDE1LjY5NDcgMy4yMTUwOCAxNS43MTEgMy4zNDM0OVYzLjM0NDRaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI5MzlfNTM3NCI+CjxyZWN0IHdpZHRoPSIxNS4zNjYiIGhlaWdodD0iMTUuMzMzMyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMzQ0NzI3KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=")}.posts-custom .widget__shares .share-facebook-messenger{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI5MzhfNTE4MSkiPgo8cGF0aCBkPSJNNy4wMzA1NSAwLjMzMjAzMUMzLjE1NjE1IDAuMzMyMDMxIDAuMDE1NjI1IDMuMzI2MDMgMC4wMTU2MjUgNy4wMTg3OUMwLjAxNTYyNSA5LjA5MDA4IDEuMDAzNDMgMTAuOTQxMyAyLjU1NDk2IDEyLjE2NzlWMTQuNjY1NEw0Ljk0MzIxIDEzLjQwNDhDNS42MDI4MSAxMy42MDA2IDYuMzAzNjYgMTMuNzA1NSA3LjAzMDU1IDEzLjcwNTVDMTAuOTA0OSAxMy43MDU1IDE0LjA0NTUgMTAuNzExNSAxNC4wNDU1IDcuMDE4NzlDMTQuMDQ1NSAzLjMyNjAzIDEwLjkwNDkgMC4zMzIwMzEgNy4wMzA1NSAwLjMzMjAzMVpNNy43NjA2MSA5LjM1NDM1TDUuOTE5NTkgNy4zNzA3MkwyLjM2NDUxIDkuMjkwMzdMNi4xNzM1MiA1LjE5NTEzTDguMDE0NTQgNy4wNTA3OEwxMS41Njk2IDUuMTMxMTRMNy43NjA2MSA5LjM1NDM1WiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yOTM4XzUxODEiPgo8cmVjdCB3aWR0aD0iMTQuMDI5OSIgaGVpZ2h0PSIxNC4zMzMzIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMTU2MjUgMC4zMzIwMzEpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==)}.posts-custom .widget__shares .share-email{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxOSAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE3LjIyNzIgMC45MzM1OTRIMS43ODAxOUMwLjk4MTc3MSAwLjkzMzU5NCAwLjMzMjAzMSAxLjYxNDA3IDAuMzMyMDMxIDIuNDUwMjZWMTEuNTUwM0MwLjMzMjAzMSAxMi4zODY0IDAuOTgxNzcxIDEzLjA2NjkgMS43ODAxOSAxMy4wNjY5SDE3LjIyNzJDMTguMDI1NiAxMy4wNjY5IDE4LjY3NTMgMTIuMzg2NCAxOC42NzUzIDExLjU1MDNWMi40NTAyNkMxOC42NzUzIDEuNjE0MDcgMTguMDI1NiAwLjkzMzU5NCAxNy4yMjcyIDAuOTMzNTk0Wk0xNy4yMjcyIDEuOTQ0N0MxNy4yNTYxIDEuOTQ0NyAxNy4yODMyIDEuOTQ3NzQgMTcuMzExMiAxLjk1Mjc5TDEwLjAzOTUgNy4wMjk1OEM5Ljc1OTUzIDcuMjI0NzMgOS4yNDg4MSA3LjIyNDczIDguOTY4ODMgNy4wMjk1OEwxLjY5NzE2IDEuOTUyNzlDMS43MjQxOSAxLjk0Nzc0IDEuNzUyMTkgMS45NDQ3IDEuNzgxMTUgMS45NDQ3SDE3LjIyNzJaTTE3LjIyNzIgMTIuMDU1OEgxLjc4MDE5QzEuNTEzNzMgMTIuMDU1OCAxLjI5NzQ3IDExLjgyOTMgMS4yOTc0NyAxMS41NTAzVjIuODg5MDhMOC40MzMwMSA3Ljg3MDgzQzguNzMzMjcgOC4wODAxMyA5LjExODQ4IDguMTg1MjggOS41MDM2OCA4LjE4NTI4QzkuODg4ODkgOC4xODUyOCAxMC4yNzQxIDguMDgwMTMgMTAuNTc0NCA3Ljg3MDgzTDE3LjcwOTkgMi44ODkwOFYxMS41NTAzQzE3LjcwOTkgMTEuODI5MyAxNy40OTM2IDEyLjA1NTggMTcuMjI3MiAxMi4wNTU4WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==")}.posts-custom .widget__shares .share-whatsapp-desktop{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI5MzlfNTM1OCkiPgo8cGF0aCBkPSJNMC4wNjY0MDYyIDE0LjkzMjZMMS4xMjM3NCAxMC45ODkyQzAuNTI1NzQgOS45MTQ1NSAwLjIxMzc0IDguNzAxMjIgMC4yMTM3NCA3LjQ3OTIyQzAuMjEzNzQgMy40NjY1NSAzLjQ3MjQxIDAuMTk5MjE5IDcuNDg1MDcgMC4xOTkyMTlDMTEuNDk3NyAwLjE5OTIxOSAxNC43NjUxIDMuNDY2NTUgMTQuNzY1MSA3LjQ3OTIyQzE0Ljc2NTEgMTEuNDkxOSAxMS40OTc3IDE0Ljc1OTIgNy40ODUwNyAxNC43NTkyQzYuMjgwNDEgMTQuNzU5MiA1LjA5MzA3IDE0LjQ1NTkgNC4wMjcwNyAxMy44NzUyTDAuMDY2NDA2MiAxNC45MzI2Wk00LjIyNjQxIDEyLjM5MzJMNC40Nzc3NCAxMi41NDA2QzUuMzk2NDEgMTMuMDg2NiA2LjQzNjQxIDEzLjM3MjYgNy40OTM3NCAxMy4zNzI2QzEwLjc1MjQgMTMuMzcyNiAxMy4zOTU3IDEwLjcyMDYgMTMuMzk1NyA3LjQ3MDU1QzEzLjM5NTcgNC4yMjA1NSAxMC43NDM3IDEuNTc3MjIgNy40ODUwNyAxLjU3NzIyQzQuMjI2NDEgMS41NzcyMiAxLjU4MzA3IDQuMjIwNTUgMS41ODMwNyA3LjQ3OTIyQzEuNTgzMDcgOC41NTM4OSAxLjg3Nzc0IDkuNjExMjIgMi40NDk3NCAxMC41Mzg2TDIuNjA1NzQgMTAuNzg5OUwyLjAxNjQxIDEyLjk5MTJMNC4yMjY0MSAxMi40MDE5VjEyLjM5MzJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjE5NzUgOC40OTIyNkM5Ljg5NDIgOC4zMTAyNiA5LjUwNDIgOC4xMTA5MyA5LjE1NzU0IDguMjU4MjZDOC44ODg4NyA4LjM3MDkzIDguNzE1NTQgOC43OTU2IDguNTQyMiA5LjAxMjI2QzguNDU1NTQgOS4xMjQ5MyA4LjM0Mjg3IDkuMTQyMjYgOC4yMDQyIDkuMDgxNkM3LjE5MDIgOC42NzQyNiA2LjQxMDIgNy45OTgyNiA1Ljg0Njg3IDcuMDYyMjZDNS43NTE1NCA2LjkxNDkzIDUuNzY4ODcgNi44MDIyNiA1Ljg4MTU0IDYuNjYzNkM2LjA1NDg3IDYuNDY0MjYgNi4yNjI4NyA2LjIzODkzIDYuMzA2MiA1Ljk3MDI2QzYuMzQ5NTQgNS43MDE2IDYuMjI4MiA1LjM4OTYgNi4xMTU1NCA1LjE0NjkzQzUuOTc2ODcgNC44NDM2IDUuODEyMiA0LjQwMTYgNS41MDg4NyA0LjIyODI2QzUuMjIyODcgNC4wNzIyNiA0Ljg1ODg3IDQuMTU4OTMgNC42MDc1NCA0LjM2NjkzQzQuMTc0MiA0LjcyMjI2IDMuOTY2MiA1LjI2ODI2IDMuOTc0ODcgNS44MjI5M0MzLjk3NDg3IDUuOTc4OTMgMy45OTIyIDYuMTM0OTMgNC4wMzU1NCA2LjI4MjI2QzQuMTIyMiA2LjY0NjI2IDQuMjg2ODcgNi45ODQyNiA0LjQ3NzU0IDcuMzA0OTNDNC42MTYyIDcuNTQ3NiA0Ljc3MjIgNy43ODE2IDQuOTM2ODcgOC4wMDY5M0M1LjQ4Mjg3IDguNzQzNiA2LjE1ODg3IDkuMzg0OTMgNi45Mzg4NyA5Ljg3MDI2QzcuMzI4ODcgMTAuMTEyOSA3Ljc1MzU0IDEwLjMyMDkgOC4xODY4NyAxMC40NjgzQzguNjcyMiAxMC42MzI5IDkuMTE0MiAxMC43OTc2IDkuNjQyODcgMTAuNjkzNkMxMC4xOTc1IDEwLjU4OTYgMTAuNzQzNSAxMC4yNDI5IDEwLjk2MDIgOS43MTQyNkMxMS4wMjA5IDkuNTU4MjYgMTEuMDU1NSA5LjM3NjI2IDExLjAyMDkgOS4yMTE2QzEwLjk0MjkgOC44Nj
30Q5MyAxMC40NzQ5IDguNjY1NiAxMC4xOTc1IDguNDkyMjZaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI5MzlfNTM1OCI+CjxyZWN0IHdpZHRoPSIxNC42OTg3IiBoZWlnaHQ9IjE0LjczMzMiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA2NjQwNjIgMC4xOTkyMTkpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==")}.posts-custom .widget__shares .share-whatsapp{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI5MzlfNTM1OCkiPgo8cGF0aCBkPSJNMC4wNjY0MDYyIDE0LjkzMjZMMS4xMjM3NCAxMC45ODkyQzAuNTI1NzQgOS45MTQ1NSAwLjIxMzc0IDguNzAxMjIgMC4yMTM3NCA3LjQ3OTIyQzAuMjEzNzQgMy40NjY1NSAzLjQ3MjQxIDAuMTk5MjE5IDcuNDg1MDcgMC4xOTkyMTlDMTEuNDk3NyAwLjE5OTIxOSAxNC43NjUxIDMuNDY2NTUgMTQuNzY1MSA3LjQ3OTIyQzE0Ljc2NTEgMTEuNDkxOSAxMS40OTc3IDE0Ljc1OTIgNy40ODUwNyAxNC43NTkyQzYuMjgwNDEgMTQuNzU5MiA1LjA5MzA3IDE0LjQ1NTkgNC4wMjcwNyAxMy44NzUyTDAuMDY2NDA2MiAxNC45MzI2Wk00LjIyNjQxIDEyLjM5MzJMNC40Nzc3NCAxMi41NDA2QzUuMzk2NDEgMTMuMDg2NiA2LjQzNjQxIDEzLjM3MjYgNy40OTM3NCAxMy4zNzI2QzEwLjc1MjQgMTMuMzcyNiAxMy4zOTU3IDEwLjcyMDYgMTMuMzk1NyA3LjQ3MDU1QzEzLjM5NTcgNC4yMjA1NSAxMC43NDM3IDEuNTc3MjIgNy40ODUwNyAxLjU3NzIyQzQuMjI2NDEgMS41NzcyMiAxLjU4MzA3IDQuMjIwNTUgMS41ODMwNyA3LjQ3OTIyQzEuNTgzMDcgOC41NTM4OSAxLjg3Nzc0IDkuNjExMjIgMi40NDk3NCAxMC41Mzg2TDIuNjA1NzQgMTAuNzg5OUwyLjAxNjQxIDEyLjk5MTJMNC4yMjY0MSAxMi40MDE5VjEyLjM5MzJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjE5NzUgOC40OTIyNkM5Ljg5NDIgOC4zMTAyNiA5LjUwNDIgOC4xMTA5MyA5LjE1NzU0IDguMjU4MjZDOC44ODg4NyA4LjM3MDkzIDguNzE1NTQgOC43OTU2IDguNTQyMiA5LjAxMjI2QzguNDU1NTQgOS4xMjQ5MyA4LjM0Mjg3IDkuMTQyMjYgOC4yMDQyIDkuMDgxNkM3LjE5MDIgOC42NzQyNiA2LjQxMDIgNy45OTgyNiA1Ljg0Njg3IDcuMDYyMjZDNS43NTE1NCA2LjkxNDkzIDUuNzY4ODcgNi44MDIyNiA1Ljg4MTU0IDYuNjYzNkM2LjA1NDg3IDYuNDY0MjYgNi4yNjI4NyA2LjIzODkzIDYuMzA2MiA1Ljk3MDI2QzYuMzQ5NTQgNS43MDE2IDYuMjI4MiA1LjM4OTYgNi4xMTU1NCA1LjE0NjkzQzUuOTc2ODcgNC44NDM2IDUuODEyMiA0LjQwMTYgNS41MDg4NyA0LjIyODI2QzUuMjIyODcgNC4wNzIyNiA0Ljg1ODg3IDQuMTU4OTMgNC42MDc1NCA0LjM2NjkzQzQuMTc0MiA0LjcyMjI2IDMuOTY2MiA1LjI2ODI2IDMuOTc0ODcgNS44MjI5M0MzLjk3NDg3IDUuOTc4OTMgMy45OTIyIDYuMTM0OTMgNC4wMzU1NCA2LjI4MjI2QzQuMTIyMiA2LjY0NjI2IDQuMjg2ODcgNi45ODQyNiA0LjQ3NzU0IDcuMzA0OTNDNC42MTYyIDcuNTQ3NiA0Ljc3MjIgNy43ODE2IDQuOTM2ODcgOC4wMDY5M0M1LjQ4Mjg3IDguNzQzNiA2LjE1ODg3IDkuMzg0OTMgNi45Mzg4NyA5Ljg3MDI2QzcuMzI4ODcgMTAuMTEyOSA3Ljc1MzU0IDEwLjMyMDkgOC4xODY4NyAxMC40NjgzQzguNjcyMiAxMC42MzI5IDkuMTE0MiAxMC43OTc2IDkuNjQyODcgMTAuNjkzNkMxMC4xOTc1IDEwLjU4OTYgMTAuNzQzNSAxMC4yNDI5IDEwLjk2MDIgOS43MTQyNkMxMS4wMjA5IDkuNTU4MjYgMTEuMDU1NSA5LjM3NjI2IDExLjAyMDkgOS4yMTE2QzEwLjk0MjkgOC44NjQ5MyAxMC40NzQ5IDguNjY1NiAxMC4xOTc1IDguNDkyMjZaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI5MzlfNTM1OCI+CjxyZWN0IHdpZHRoPSIxNC42OTg3IiBoZWlnaHQ9IjE0LjczMzMiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA2NjQwNjIgMC4xOTkyMTkpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==")}.posts-custom .widget__shares .share-fb{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxMCAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguNzcwNDYgOS4zOTQ4TDkuMjIwNzcgNi40MzQ1OEg2LjQwODA5VjQuNTE3MDhDNi40MDgwOSAzLjcwNTMgNi44MDI5NyAyLjkyMTUgOC4wNTY5IDIuOTIxNUg5LjMzMTYxVjAuNDAyMTY1QzkuMzMxNjEgMC40MDIxNjUgOC4xNzQ2NyAwLjE5OTIxOSA3LjA2NjIzIDAuMTk5MjE5QzQuNzU5MjcgMC4xOTkyMTkgMy4yNDIwOSAxLjYxMjg1IDMuMjQyMDkgNC4xODExN1Y2LjQzNDU4SDAuNjcxODc1VjkuMzk0OEgzLjI0MjA5VjE2LjU0NjlDMy43NTQ3NCAxNi42MzA5IDQuMjg4MTggMTYuNjcyOSA0LjgyMTYyIDE2LjY3MjlDNS4zNTUwNiAxNi42NzI5IDUuODg4NSAxNi42MzA5IDYuNDAxMTYgMTYuNTQ2OVY5LjM5NDhIOC43NjM1M0g4Ljc3MDQ2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==")}.posts-custom .widget__shares .share-tw{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTQiIHdpZHRoPSIxNCIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjwhLS1Gb250IEF3ZXNvbWUgRnJlZSA2LjUuMiBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIENvcHlyaWdodCAyMDI0IEZvbnRpY29ucywgSW5jLi0tPjxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0zODkuMiA0OGg3MC42TDMwNS42IDIyNC4yIDQ4NyA0NjRIMzQ1TDIzMy43IDMxOC42IDEwNi41IDQ2NEgzNS44TDIwMC43IDI3NS41IDI2LjggNDhIMTcyLjRMMjcyLjkgMTgwLjkgMzg5LjIgNDh6TTM2NC40IDQyMS44aDM5LjFMMTUxLjEgODhoLTQyTDM2NC40IDQyMS44eiIvPjwvc3ZnPg==")}.posts-custom .widget__shares a:hover{color:transparent!important}.posts-custom .widget__shares .share-copy-link:hover,.posts-custom .widget__shares .share-email:hover,.posts-custom .widget__shares .share-twitter:hover,.posts-custom .widget__shares .share-facebook:hover,.posts-custom .widget__shares .share-whatsapp-desktop:hover{color:transparent}.posts-custom .widget__shares .share-whatsapp-desktop{display:none}@media (min-width:1024px){.posts-custom .widget__shares .share-facebook-messenger{display:none}.posts-custom .widget__shares .share-whatsapp-desktop{display:inline-block}}.main--column .cta__button{text-transform:none}@media (min-width:1024px){.content--with--sidebar{display:grid;grid-column-gap:25px;grid-template-columns:calc(100% - 325px) 300px}.main--column>*{margin-bottom:0px}}.main--column>.five-post-grid{margin-bottom:20px}.main--column>*:last-child{margin-bottom:0}@media (min-width:1920px){.content--with--sidebar{grid-column-gap:30px}}.channel--heroes .widget .rm-col-center{grid-template-columns:1fr}.channel--heroes .widget__head + .widget__body,.channel--heroes .widget__body + .widget__body{padding:10px}.channel--heroes .widget__headline{font-weight:600;font-size:22px;line-height:30px;max-height:none;display:block}.channel--heroes .custom-field-is-breaking-news,.channel--heroes .custom-field-is-exclusive{padding:4px 6px}.channel--heroes .custom-field-is-breaking-news:after,.channel--heroes .custom-field-is-exclusive:after{font-size:22px}.channel___hero--module>.mb-2{margin-bottom:20px}.channel___hero--module>.mb-2:last-child{margin-bottom:0}@media (min-width:768px){.channel--heroes .posts-wrapper{grid-template-columns:1fr 1fr}.channel--heroes .posts-wrapper:after{display:none}.channel___hero--module .mb-2.channel--heroes:first-child .posts-wrapper{grid-template-columns:1fr}.channel--heroes .widget .widget__head + .widget__body{padding:10px}.channel___hero--module .mb-2:first-child .widget .widget__head + .widget__body{padding:20px}.channel--heroes .widget__headline{font-size:24px;line-height:36px}.channel___hero--module .mb-2:first-child .widget .widget__headline{font-weight:700;font-size:32px;line-height:40px}.channel--heroes .custom-field-is-breaking-news:after,.channel--heroes .custom-field-is-exclusive:after{font-size:16px}.channel--heroes:first-child .widget .custom-field-is-breaking-news:after,.channel--heroes:first-child .widget .custom-field-is-exclusive:after{font-size:24px}.five-post-grid.three-grid .channel--heroes .widget .custom-field-is-breaking-news:after,.five-post-grid.three-grid .channel--heroes .widget .custom-field-is-exclusive:after{font-size:16px}}.channel--heroes .custom-field-is-analysiis + .widget__headline a:before,.channel--heroes .custom-field-is-analysiis + .snark-line .widget__headline a:before{line-height:24px;height:24px}.five-post-grid .shared--posts__module .custom-field-is-analysiis + .widget__headline a:before,.five-post-grid .shared--posts__module .custom-field-is-analysiis + .snark-line .widget__headline a:before{line-height:22px;height:22px;margin-top:0}@media (min-width:768px){.five-post-grid.three-grid{display:flex;margin-bottom:20px}.five-post-grid.three-grid>.mb-2{order:3;width:33.33%;margin-right:20px;margin-bottom:0}.five-post-grid.three-grid>.mb-2:last-child{margin-right:0}.five-post-grid .tall{position:relative;margin-bottom:20px}.five-post-grid .shared--posts__module .posts-wrapper{grid-template-columns:1fr 1fr}.five-post-grid.three-grid .shared--posts__module .posts-wrapper{grid-template-columns:1fr}.five-post-grid .tall .widget{width:100%;position:absolute;height:100%}.five-post-grid .tall .widget__head{top:0;bottom:126px;width:100%;position:absolute}.five-post-grid .tall .widget__head img{width:100%;height:100%}.five-post-grid .tall .widget__head + .widget__body{bottom:0;width:100%;position:absolute}.five-post-grid .tall .widget .widget__headline{font-weight:500;font-size:16px;line-height:24px}.channel--heroes.tall .widget:first-child .widget__head + .widget__body{padding:10px}.five-post-grid .tall .posts-wrapper{grid-row-gap:0}.five-post-grid .shared--posts__module .widget__headline{height:96px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;line-height:24px}.tall-grid-2>.tall{order:2}.tall-grid-2>.tall + .mb-2{order:1}.tall-grid-3>.tall + .mb-2{order:1}.tall-grid-3>.tall + .mb-2 + .mb-2{order:2;margin-right:20px}.five-post-grid.three-grid.tall-grid-3>.tall{margin-right:0}.five-post-grid .shared--posts__module .widget__headline,.five-post-grid .tall .widget .custom-field-is-analysiis{margin-top:2px}}@media (min-width:1200px){.five-post-grid .shared--posts__module .widget__headline,.five-post-grid .tall .widget .widget__headline{height:108px;line-height:27px}.five-post-grid .tall .widget__head{bottom:128px}.tall-grid-2>.tall{order:2}.tall-grid-2>.tall + .mb-2{order:1}.tall-grid-3>.tall + .mb-2{order:1}.tall-grid-3>.tall + .mb-2 + .mb-2{order:2;margin-right:20px}.five-post-grid.three-grid.tall-grid-3>.tall{margin-right:0}}@media (max-width:767px){.five-post-grid.three-grid{display:flex;flex-direction:column}.five-post-grid.three-grid>*{order:2;margin-bottom:20px}.five-post-grid.three-grid>:last-child{margin-bottom:0}.five-post-grid.three-grid .tall{order:1}.main--column>.five-post-grid{margin-bottom:0px}}.three-in-a-row + .three-in-a-row{margin-top:20px}@media (min-width:1024px){.shared--posts__module.four-in-a-row .posts-wrapper{grid-template-columns:1fr 1fr 1fr 1fr}.shared--posts__module.three-in-a-row .posts-wrapper{grid-template-columns:1fr 1fr 1fr}.shared--posts__module.four-in-a-row .widget__headline{font-size:16px;line-height:24px}.shared--posts__module.four-in-a-row .widget__head + .widget__body{padding-bottom:12px}}@media (min-width:768px){.shared--posts__module.three-in-a-row .posts-wrapper{grid-template-columns:1fr 1fr 1fr}}@media (max-width:767px){.shared--posts__module.full-one .widget:first-child .rm-col-center{grid-template-columns:1fr}.shared--posts__module.full-one .widget:first-child .widget__headline{font-size:22px;line-height:30px;font-weight:600}}@media (max-width:767px){.shared--posts__module.three-in-a-row{margin-top:20px}}.main--column .module-headline__text{font-size:24px;line-height:29px;color:var(--bg-blue);padding-bottom:10px;border-bottom:4px solid var(--red);margin-bottom:20px}@media (min-width:768px){.custom-field-is-live + .widget__headline a{margin-left:78px}}ad-slot[position]{display:flex;align-items:center;justify-content:center}.sticky-banner-wrapper .ad--billboard{position:sticky;top:20px;background:white;z-index:399;display:flex;align-items:center;justify-content:center}.stiky_sky.left{position:sticky;top:0;float:left;margin-left:-160px}.stiky_sky.right{position:sticky;top:0;float:right;margin-right:-160px}
30.dmg-ads-sticky-banner .dmg-ads-label-container{color:#ccc!important}.dmg-ads-sticky-banner{margin-top:20px!important}@media (min-width:1600px){.stiky_sky.left{margin-left:-300px}.stiky_sky.right{margin-right:-300px}}@media (max-width:767px){ad-slot[position="sticky_banner"]{position:fixed;bottom:0;width:100%;left:0;z-index:29;background:#000000aa}.dmg-ads-sticky-banner::after{display:none!important}}@media (max-width:1023px){.sticky-banner-wrapper .ad--billboard{display:none}}@media (min-width:1024px){.sky--ad__container{padding-top:0px}.ad--billboard .dmg-ads{margin:0}.main--column>.ad--placeholder{}.main--column>*{margin-bottom:30px}}@media (min-width:768px){}.widget:hover a.post-date-wrap{text-decoration:underline}.carousels{margin-bottom:-20px}.carousels .widget{box-shadow:0px 4px 20px rgb(0 0 0 / 4%)}.carousels .widget__body{padding:10px}.carousels .posts-wrapper .widget{min-width:75%;margin-right:20px;margin-bottom:0}.carousels .posts-wrapper .widget:last-child{margin-right:0}.carousels .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:20px;grid-gap:0}.carousels .posts-wrapper::-webkit-scrollbar{display:none}.carousel--wrapper{position:relative}.carousel--arrow{background:rgba(57,63,86,0.8);border-radius:5px;width:34px;height:53px;display:flex;align-items:center;justify-content:center;position:absolute;top:50px;z-index:99;opacity:0;transition:opacity 0.3s ease}.carousel--arrow.prev{left:-17px}.carousel--arrow.next{right:-17px}.carousel--wrapper .cta__button{margin-top:20px}@media (min-width:600px){.carousels .posts-wrapper .widget{min-width:42%;max-width:42%}}@media (min-width:768px){.carousel--wrapper:hover .carousel--arrow{opacity:1}}@media (min-width:900px){.carousels .posts-wrapper .widget{min-width:30%;max-width:30%}}@media (min-width:1360px){.carousels .posts-wrapper .widget{min-width:calc(25% - 15px);max-width:calc(25% - 15px)}}@media (max-width:767px){.carousel--arrow.prev{left:-7px}.carousel--arrow.next{right:-7px}.carousels.shared--posts__module .widget .rm-col-center{display:block}.carousels.shared--posts__module .widget__headline{font-size:18px;line-height:27px;max-height:108px}.carousels.shared--posts__module .widget__head + .widget__body,.carousels.shared--posts__module .widget__body + .widget__body{padding:10px}}.carousels .widget__head .rm-lazyloadable-image{height:auto;object-fit:cover}.carousels .posts-custom .widget__head a:after{display:cnone}.carousels .posts-custom aa:after{display:none}.schedule__carousel .widget__head img{max-width:100%;height:auto}.schedule__carousel .widget__head img{width:100%}.widget__head #video{position:absolute;top:0;width:100%;bottom:0}.widget__head .widget__image{position:relative}.support-banner{display:flex;font-size:16px;font-weight:700;color:white;background-color:#000f55;justify-content:center;align-items:center;min-height:34px;line-height:1.4}.support-banner .hyphen{padding-left:1px;padding-right:5px}.main--column>.support-banner{margin-bottom:15px}a.support-banner,.main--column>a.support-banner,.main .content>
30a.support-banner{color:white}a.support-banner:hover,.main--column>a.support-banner:hover,.main .content>a.support-banner:hover{color:white;background:#0032aa}@media only screen and (max-width:850px){.support-banner{font-size:14px}}@media only screen and (max-width:650px){.support-banner{font-size:14px}}@media only screen and (max-width:550px){.support-banner{font-size:12px}}@media only screen and (max-width:400px){.support-banner{flex-direction:column;padding:5px 0}.support-banner .hyphen{display:none}}.widget.member{background-color:var(--dark-blue)}.main-post__bottom .widget.member{background-color:transparent}.embed-latest .widget.member,.embed-dontmiss .widget.member{background-color:transparent}.embed-mostread__posts .widget.member .widget__headline,.embed-dontmiss .widget.member .widget__headline{padding:10px}.embed-dontmiss article{position:relative}.embed-dontmiss .widget.member,.embed-mostread__posts .widget.member,.embed-latest .widget.member{background-color:var(--dark-blue)}.embed-dontmiss .widget.member,.embed-mostread__posts .carousels .widget.member{margin-bottom:7px}.embed-latest .posts-wrapper{padding:0 10px}.embed-latest .widget article,.embed-dontmiss .widget.member article{margin:0}.embed-latest .widget,.embed-dontmiss .widget.member{margin-right:20px}.embed-latest .widget:last-child,.embed-dontmiss .widget.member:last-child{margin-right:0}.embed-latest .widget:last-child{margin-right:10px}.widget.member .widget__section.widget__section,.widget.member .custom-field-is-breaking-news,.widget.member .custom-field-is-exclusive{display:none}.widget.member .widget__section.widget__section,.widget.member .custom-field-is-breaking-news,.widget.member .custom-field-is-exclusive{display:none}.widget.member .widget__headline-text.widget__headline-text,.widget.member .widget__body .widget__headline,.widget.member:hover .widget__headline-text,.widget.member .widget__body .widget__headline-text:hover{color:white}.widget.member .snark-line{position:absolute;top:0;right:0}.member-post-label{padding:0.2rem;display:none;flex-direction:row;align-items:center;position:absolute;top:0;right:0;font-size:0;font-weight:700;line-height:100%;text-transform:uppercase;background-color:var(--dark-blue);color:white}.member-post-label::before{width:3.9rem;padding-top:1.4rem;display:inline-flex;content:"";background-repeat:no-repeat;background-size:contain;background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCA0NSAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExLjEwMjcgMTEuOTc4QzEwLjI5NzcgMTIuNTk2NyA5LjIyMjkzIDEyLjkwNiA4LjAxODc5IDEyLjkwNkM1LjM1MzEyIDEyLjkwNiAzLjQ2MDk0IDEwLjgyODcgMy40NjA5NCA4VjcuOTU1OUMzLjQ2MDk0IDUuMzI1OTggNS4zNzQyMyAzLjEzODQgNy43ODIxOCAzLjEzODRDOS41MjM1NSAzLjEzODQgMTAuNTU1NCAzLjcxMzAzIDExLjcxNjMgNC43MDc2TDEzLjgwMTUgMi4xMjIxM0MxMi4yMzI4IDAuNzUxMzU2IDEwLjU5OSAwIDcuODkwMDkgMEMzLjMzMjI1IDAgMCAzLjYwMjEgMCA4VjguMDQ0MUMwIDEyLjYxODcgMy4yMjQ2NyAxNiA3LjkxMTU0IDE2QzEwLjY2MzMgMTYgMTIuNzkxOCAxNC44OTQ4IDE0LjM2ODMgMTMuNTQ2OFY3LjY0ODk1SDExLjEwMUwxMS4xMDI3IDExLjk3OFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yNS41MjM2IDcuNjMyNjdDMjYuNjExOCA3LjAwNjM3IDI3LjUyNTcgNi4wMjIxMyAyNy41MjU3IDQuMjU0ODRWNC4yMTAwNUMyNy41MjU3IDEuNzQ5NjMgMjUuNjEwOCAwLjE2MTEzMyAyMi40OTkgMC4xNjExMzNIMTUuNzNWMTUuODE5N0gyMi42NzMzQzI2LjExMTUgMTUuODE5NyAyOC4zNzQ2IDE0LjM4OCAyOC4zNzQ2IDExLjUyNDhWMTEuNDgwMUMyOC4zNzQ2IDkuMzc3MjIgMjcuMjg2OCA4LjMyNjE1IDI1LjUyNCA3LjYzMjY3SDI1LjUyMzZaTTE4Ljk5MzkgMy4xODEzN0gyMS45OTg0QzIzLjQxMjYgMy4xODEzNyAyNC4xOTYyIDMuNzYyODkgMjQuMTk2MiA0Ljc5MTkxVjQuODM2N0MyNC4xOTYyIDUuOTk5NzMgMjMuMjYwNSA2LjQ5MjAzIDIxLjc4MDggNi40OTIwM0gxOC45OTM5VjMuMTgxMzdaTTI1LjA0NDcgMTEuMTAwMUMyNS4wNDQ3IDEyLjI2MzEgMjQuMTUyNiAxMi44MDAyIDIyLjY3MyAxMi44MDAySDE4Ljk5MzlWOS4zNTU1MkgyMi41NjQxQzI0LjI4MyA5LjM1NTUyIDI1LjA0NDcgMTAuMDA0MiAyNS4wNDQ3IDExLjA1NTZWMTEuMTAwNFYxMS4xMDAxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTMxLjA2MjUgMC4xNjg5NDVMMzguMjc1MyA5Ljg4Mjg0VjAuMTY4OTQ1SDMxLjA2MjVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzEuMzg0OCAxNS44MTQzSDM1Ljk4MjVMMzEuMzg0OCA1Ljc5MTAyVjE1LjgxNDNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzEuMzg0OCA1Ljc5MTAyTDM2LjkwMTggMTUuODE0M0gzOC43NDFMMzEuMzg0OCA1Ljc5MTAyWiIgZmlsbD0id2hp
30dGUiLz4KPHBhdGggZD0iTTQ0LjUyNzYgMC4xNjExMzNINDEuNjI0VjE1LjgxOTRINDQuNTI3NlYwLjE2MTEzM1oiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=")}.posts-custom .widget__head .widget__body{top:0}.embed-latest .member-post-label{gap:initial;font-size:0}.embed-latest .widget.member .row.px10{background-color:var(--dark-blue)}.embed-latest .widget.member .widget__headline{padding:5px 0}div[data-source="must-watch-clips"] .member-post-label,.shows .widget:first-child .member-post-label,.bestof-wrapper .widget:first-child .member-post-label,.latest-shows .member-post-label,.dontmiss-wrapper .member-post-label,.channel--heroes .member-post-label{font-size:1.6rem;gap:0.7rem}.main-post__bottom .embed-dontmiss__posts .widget .widget__headline{padding:10px}.main-post__bottom .embed-dontmiss__posts .widget{margin-right:20px}.main-post__bottom .embed-dontmiss__posts .widget article{margin:0}@supports selector(:has(*)){.main-post__bottom .widget:has(.member-post-label){background-color:transparent}.widget:has(.member-post-label) .snark-line{position:absolute;top:0;right:0}.widget__head:has(.member-post-label) + .widget__body .widget__body .widget__headline,.widget__head:has(.member-post-label) + .widget__body .widget__body .widget__headline-text:hover{color:white}.embed-latest .widget:has(.member-post-label),.embed-dontmiss .widget:has(.member-post-label){background-color:transparent}.embed-dontmiss .widget:has(.member-post-label) .widget__headline{padding:10px}.main-post__bottom .embed-latest .widget:has(.member-post-label):hover .widget__headline-text,.main-post__bottom .embed-latest .widget:has(.member-post-label) .widget__body .widget__headline-text:hover .main-post__bottom .embed-dontmiss .widget:has(.member-post-label):hover .widget__headline-text{color:white}.main-post__bottom .embed-latest .widget .widget__headline-text,.main-post__bottom .embed-latest .widget .widget__body .widget__headline-text .main-post__bottom .embed-dontmiss .widget:hover .widget__headline-text,.main-post__bottom .embed-dontmiss .widget .widget__body .widget__headline-text,.main-post__bottom .embed-latest .widget:hover .widget__headline-text,.main-post__bottom .embed-latest .widget .widget__body .widget__headline-text:hover .main-post__bottom .embed-dontmiss .widget:hover .widget__headline-text,.main-post__bottom .embed-dontmiss .widget .widget__body .widget__headline-text:hover{color:var(--bg-blue)}.main-post__bottom .embed-latest .widget:has(.member-post-label) .widget__headline-text,.main-post__bottom .embed-latest .widget:has(.member-post-label) .widget__body .widget__headline-text .main-post__bottom .embed-dontmiss .widget:hover .widget__headline-text,.main-post__bottom .embed-latest .widget:has(.member-post-label):hover .widget__headline-text,.main-post__bottom .embed-latest .widget:has(.member-post-label) .widget__body .widget__headline-text:hover .main-post__bottom .embed-dontmiss .widget:hover .widget__headline-text{color:white}.main-post__bottom .embed-latest .widget:has(.member-post-label) article,.main-post__bottom .embed-dontmiss .widget:has(.member-post-label) article{margin:0}.main-post__bottom .embed-dontmiss .widget:has(.member-post-label){margin-right:20px}.main-post__bottom .embed-dontmiss .widget:has(.member-post-label):last-child{margin-right:0}.main-post__bottom .embed-dontmiss .posts-wrapper:has(.member-post-label),.main-post__bottom .embed-mostread__posts .carousels .posts-wrapper:has(>.member-post-label){padding-bottom:7px}.main-post__bottom .embed-mostread__posts .widget:has(.member-post-label) .widget__headline{padding:10px}.widget:has(.member-post-label) .widget__section.widget__section,.widget:has(.member-post-label) .custom-field-is-breaking-news.custom-field-is-breaking-news,.widget:has(.member-post-label) .custom-field-is-exclusive.custom-field-is-exclusive{display:none}.widget:has(.member-post-label) .snark-line{position:absolute;top:0;right:0}}@media only screen and (min-width:768px){.member-post-label{padding:0.4rem 0.6rem;display:flex;flex-direction:row;align-items:center;gap:0.7rem;position:absolute;top:0;right:0;font-size:1.6rem;font-weight:700;line-height:100%;text-transform:uppercase;background-color:var(--dark-blue);color:white}.embed-latest .posts-wrapper{display:flex}}@media only screen and (min-width:1024px){.channel--heroes:first-of-type:not(.tall) .member-post-label{padding:0.3rem 0.6rem;gap:1rem;font-size:2rem;line-height:120%}.channel--heroes:first-of-type:not(.tall) .member-post-label::before{width:4.4rem;padding-top:1.6rem}}.member-post-label{display:none}.vfErrorDiv{font-size:18px;font-weight:700;color:white;background-color:#eb0000;text-align:center;padding:10px;margin-bottom:20px}#ci-cmp-btn{display:none!important}#sp_message_container_1201919{z-index:2147483647!important}@media (max-width:767px){#pwSubscribePopup{transition:ease-in 1s!important;opacity:0}
30#pwSubscribePopup.delay-display{opacity:1}}.comments-wrapper{margin:20px auto!important;max-width:750px;min-height:600px}.viafoura{--primary-font:Montserrat,sans-serif;--accent-color:#0032AA;--accent-color-light:#0032AA;--accent-color-dark:#000F55;--success-color:#0032AA;--success-color-dark:#EB0000;--success-color-light:#EB0000;--warning-color:#EB0000;--mention-color:#EB0000;--mention-color-dark:#0032AA;--error-color:#EB0000;--light-text-on-background-color:rgba(0,0,0,0.3);--moderator-color:#EB0000;--editors-pick-color:#EB0000;--body-font:1.5;--x-large-font:2.4;--small-font:1.25;--x-small-font:1.15}.viafoura .vf-comment-header{border-bottom:4px solid #EB0000}.viafoura .vf-comment-header>.vf-comment-header__heading.vf-heading-text{font-weight:600;color:#0032AA}.viafoura .vf-post-name-button__username,.viafoura .vf-threaded-content-indicator{color:#0032AA}.viafoura .vf-empty-comments__icon{margin-top:0}.viafoura .vf-tooltip-content{min-width:150px}.viafoura .vf-dropdown-button__text{font-size:90%}.viafoura .vf-dropdown__tooltip-content>.vf-dropdown__list{z-index:5;padding:8px 5px}.viafoura .gbn-terms{padding:0 10px 20px;text-align:right;font-size:90%;font-style:italic}.viafoura .gbn-terms>a{text-decoration:underline}.viafoura .vf-avatar::before,.viafoura .vf-avatar::after{visibility:hidden}.main>.viafoura{background-color:transparent}.viafoura>.vf-tray-trigger-widget>.vf-tray-trigger.vf-tray-trigger--floating{z-index:500000}@media only screen and (max-width:calc(29.375rem)){.viafoura .vf-comment-header .vf-comment-header__actions>.vf-follow-button.vf-actions-subscribe{margin-bottom:5px}.viafoura .gbn-terms{text-align:left;font-size:80%}}@media only screen and (min-width:1024px){.viafoura .vf-tray-trigger--floating{bottom:0px!important;left:30px}}@media only screen and (min-width:481px) and (max-width:1023px){.viafoura .vf-tray-trigger--floating{bottom:260px!important}}@media only screen and (max-width:480px){.viafoura .vf-comment-header__actions{flex-direction:row!important;align-items:center!important}.viafoura .vf-comment-header>.vf-comment-header__heading.vf-heading-text{font-size:16px;padding-bottom:3px}.viafoura .vf-comment-header__actions .vf-actions-subscribe{margin:0 0 0 20px!important}.comments-wrapper{margin:0px 13px!important}.viafoura .vf-tray-trigger--floating{bottom:280px!important;left:0}}.viafoura .vf-badge--accent-color.vf-custom-badge--member_subscriber{background-color:#000F55!important}.viafoura .vf-comment-header{border-top:2px solid #000f55;padding-top:10px;border-bottom:unset!important;margin-top:0;align-items:center}@media (max-width:480px){.viafoura .vf-comment-header{align-items:center!important}}.viafoura .vf-comment-header>.vf-comment-header__heading.vf-heading-text{font-weight:700!important;color:#000f55!important}.viafoura .vf-button.is-link.is-accent-color.vf-post-form__sign-out-action:not([disabled]){color:#000f55!important;padding-right:0}.viafoura .vf-button.is-link.is-accent-color:not([disabled]){color:#000f55!important}.viafoura .gbn-terms{padding:0 10px 20px;text-align:center;font-size:12px}.viafoura .vf-expanding-hover-light::before{border-color:#000f55!important}.viafoura .vf-post-form__new-content[data-v-3c716197] .vf-content-layout__right{box-shadow:0 0 0 rgba(0,0,0,0),2px 0 6px rgba(0,0,0,0.08),-2px 0 6px rgba(0,0,0,0.08),0 4px 10px rgba(0,0,0,0.18)}.viafoura .vf-comment-header__actions .vf-button.is-link.is-accent-color.vf-post-form__sign-out-action:not([disabled]),.viafoura .vf-comment-header__actions .vf-button.is-link.is-accent-color.vf-post-form__sign-up-action:not([disabled]),.viafoura .vf-comment-header__actions .vf-button.is-link.is-accent-color.vf-post-form__sign-in-action:not([disabled]){color:#000f55!important}.viafoura .vf-post-name-button__username,.viafoura .vf-threaded-content-indicator{color:#000f55!important}.viafoura .vf-content-editor-actions [aria-label="post"]{border-radius:4px}.viafoura .vf-content-editor-actions{background-color:#fff}.viafoura .vf-post-form__new-content .vf-content-layout__right{background-color:#fff!important}.viafoura .vf-content-editor-actions{background-color:white!important}
30.viafoura .vf-dropdown-button__text{color:#000f55!important}.viafoura .vf-nav-tab-button__text{color:#000!important}.viafoura .vf-nav-tab-button__badge span{color:#000f55!important;font-weight:500}.viafoura .vf-content-layout__right .vf-button.is-cta.is-accent-color:not([disabled]){background-color:#000f55!important}.viafoura .vf-content-layout__right .vf-button.is-cta.is-accent-color:not([disabled]):hover{background-color:#0032aa!important}.viafoura .vf-content-actions__like svg,.viafoura .vf-content-actions__dislike svg{fill:#000f55!important}.vf-button.is-danger-color .vf-follow-button__text::after,.vf-button.is-success-color .vf-follow-button__text::after{display:none!important}.viafoura .vf-tray-trigger{display:none!important}.sticky-wrapper{position:relative}.stiky_sky ad-slot{top:25px;min-height:1px;position:fixed}.stiky_sky ad-slot:has(.ci-ymal){top:0}.topbar{padding:0 25px;display:flex;align-items:center;justify-content:space-between;width:100%;position:relative;height:81px}.navbar{position:relative;height:auto;border-top:1px solid #ebebeb}.navbar:after{content:"";position:absolute;top:51px;height:3px;left:0;right:0;display:block;background:var(--red)}.navbar .nav{padding:0;list-style:none;line-height:1.25;display:flex;overflow-x:auto;height:53px;align-items:center}@media (min-width:481px) and (max-width:1224px){.navbar .nav{}}.navbar::-webkit-scrollbar{display:none}.nav--item .text-element{margin:0 20px 0 0;position:relative;line-height:20px}.nav--item:last-child .text-element{margin-right:0}.nav--item:last-child{margin-right:50px}.nav--item:first-child .text-element{margin-left:0}.nav--item__link,.nav--item .text-element a{display:block;color:#000;white-space:nowrap}.nav--item:hover .text-element a{color:#000!important}@media (min-width:768px){.nav--item:hover .text-element a{font-weight:700;color:#0032aa!important}}.secondary--nav{display:none}.weather--update img,.weather--update svg{height:30px!important}.weather--update{width:310px!important}.site-logo{display:flex}.topbar--right{align-items:center;justify-content:flex-end;grid-template-columns:repeat(3,auto);width:370px}.subscribe-link{display:flex;justify-content:center;align-items:center;color:#fff;padding:3px 10px;width:117px;height:28px;text-align:center;font-size:16px;white-space:nowrap;background-color:#000f55;font-weight:700;border-radius:4px}.subscribe-link:hover{color:#fff;background-color:#1900d7;cursor:pointer}.search--form{position:absolute;display:none}.search--open svg,.search--close{height:30px;width:30px;font-size:30px;display:block}.search--close{display:none}.menu__toggle svg{max-width:24px;width:auto;height:auto;margin:0}.close__menu{opacity:0;position:absolute;font-size:0;line-height:30px;color:var(--text-blue);background-image:url("https://assets.rbl.ms/53585273/origin.png");background-size:contain;background-repeat:no-repeat;background-position:50%;left:0;z-index:9999;display:flex;align-items:center;width:51px!important;margin-left:-15px;bottom:3px}@media only screen and (max-width:768px){.close__menu{bottom:7px}}.hamburger__open .close__menu{opacity:1}.hamburger__open .menu__toggle svg{opacity:0}.topbar--secondary{display:flex;position:relative;align-items:center;justify-content:space-between;width:100%;padding:10px 25px;background:linear-gradient(90deg,#000f55 0.31%,#0032aa 53.75%);height:54px;border-top:3px solid var(--red)}.topbar--secondary .text-element{font-size:14px;text-transform:uppercase;color:#ffffff}.navbar a:before{display:block;font-weight:bold;height:0;overflow:hidden;visibility:hidden}.search-widget{border:1px solid rgba(255,255,255,0.75);border-radius:10px;height:36px;line-height:33px;width:203px;background:var(--bg-blue)}.search-widget:hover{background:rgba(255,255,255,0.3)}.search-widget .search-widget__input{font-size:18px;color:#ffffff;opacity:0.75;text-indent:10px}.search-widget .search-widget__input::placeholder{color:#ffffff;opacity:1}.search-widget .search-widget__input:-ms-input-placeholder{color:#ffffff}.search-widget .search-widget__input::-ms-input-placeholder{color:#ffffff}.search-widget .search-widget__submit{opacity:0.75;position:absolute;top:0;right:10px;color:#fff;background-image:url("data:image/svg+xml,%3Csvgxmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath opacity='0.75' d='M17.8747 17.2458L12.2446 11.4102C13.5131 10.1493 14.2104 8.5005 14.2104 6.75C14.2104 4.9473 13.4714 3.2517 12.129 1.9773C10.7866 0.7029 9.00274 0 7.10518 0C5.20762 0 3.4228 0.702 2.08134 1.9773C0.739886 3.2526 0 4.9473 0 6.75C0 8.5527 0.738939 10.2483 2.08134 11.5227C3.42375 12.7971 5.20762 13.5 7.10518 13.5C8.74032 13.5 10.2902 12.9789 11.5464 12.0195L17.1765 17.8542C17.2703 17.9514 17.3973 18 17.5261 18C17.6407 18 17.7554 17.9
30613 17.8463 17.8821C18.0396 17.7138 18.0519 17.4294 17.8757 17.2467L17.8747 17.2458ZM0.94641 6.75C0.94641 3.5244 3.70891 0.9 7.10423 0.9C10.4996 0.9 13.2621 3.5244 13.2621 6.75C13.2621 9.9756 10.4996 12.6 7.10423 12.6C3.70891 12.6 0.94641 9.9756 0.94641 6.75Z' fill='white'/%3E%3C/svg%3E");background-repeat:no-repeat;width:18px;height:33px;background-position:center}.search-widget .search-widget__submit.fa:before{display:none}.navbar .nav--item{display:flex;align-items:center;height:50px}.topbar--right .search{display:none}@media only screen and (min-width:320px){.watch-live__button::after{margin-left:6px;line-height:100%}}@media only screen and (min-width:768px){.topbar--right{grid-gap:30px}}@media only screen and (min-width:442px){.topbar--right .search{display:initial}}@media (max-width:767px){.search-widget{display:none}.topbar--active .topbar{position:fixed;top:-69px;left:0;right:0;transition:all 300ms;z-index:10;background:#fff}.topbar--active.scroll__up .topbar{transform:translate3d(0,100%,0)}.topbar--active .fake--topbar{display:block}.topbar--secondary{height:38px;padding:10px;display:none}.navbar .nav{height:auto}.topbar--right .menu__toggle{width:34px}.search--open svg,.search--close{height:31px;width:31px;font-size:31px}.site-logo{overflow:hidden}.support-us__button{display:none}.section-frontpage .topbar--secondary{display:none}.search-widget,.weather--update{display:none}.topbar--secondary{border:0}.navbar{height:80px}.topbar{height:48px;padding:0 0px}.navbar:after{top:39px}.navbar .nav--item{height:38px}.fake--topbar{height:148px;display:block}}@media only screen and (min-width:768px){.site-logo{height:auto}.site-logo svg{width:142px;height:20px}.site-logo img{width:310px;height:auto}.watch-live__button{font-size:18px;max-width:142px;font-weight:700}}@media only screen and (min-width:1024px){.site-logo{flex-direction:row;align-items:center;grid-gap:15px}.site-logo svg{width:227px;height:51px}}.section-news .news--channel__active>.text-element a,.section-politics .politics--channel__active>.text-element a,.section-money .money--channel__active>.text-element a,.section-lifestyle .lifestyle--channel__active>.text-element a,.section-sport .sport--channel__active>.text-element a,.section-live .live--channel__active>.text-element a,.section-shows .shows--channel__active>.text-element a,.section-entertainment .entertainment--channel__active>.text-element a,.section-opinion .opinion--channel__active>.text-element a,.section-watch .watch--channel__active>.text-element a,.section-presenters .presenters--channel__active>.text-element a{font-weight:700;color:var(--bg-blue)}.nav--arrows{position:absolute;color:var(--text-blue);background:white;z-index:1;height:50px;line-height:50px;top:0;cursor:pointer}.nav--arrows.left{left:190px}.nav--arrows.right{right:7px}.secondary--nav__arrow{background:transparent;height:40px;line-height:35px}@media only screen and (max-width:400px){.topbar{padding:0 15px}.navbar{height:45px;background:linear-gradient(90deg,#000f55,#0032aa)}.navbar .secondary--nav{top:0px!important;display:none!important}.nav--item .text-element a{color:#fff!important}.nav--item .text-element:after{background:#fff}.navbar:after{background:unset}.site-logo{flex-direction:column;align-items:flex-start;grid-gap:4px}.site-logo img{min-width:76px;height:30px}.topbar--right{gap:30px;width:auto}.subscribe-link{border-radius:6px;max-width:113px;font-size:15px;font-weight:700;line-height:11.5px;border:1px solid #000f55;width:100%;height:30px}.watch-live__button{width:80px;height:30px;font-size:15px;font-weight:700;line-height:11.5px}.watch-live__button::before{content:"watch"}}@media only screen and (max-width:400px){.watch-live__button{width:70px;font-size:13px;content:"WATCH"}.subscribe-link{max-width:117px;font-size:13px}}.piano-login-link:hover{color:#1900d7}.navbar .nav{margin:0px 35px 0 220px}@media only screen and (max-width:1025px){.navbar .nav{margin:0px 35px 0 140px}}@media only screen and (max-width:743px){.navbar .nav{margin:0px 10px 0px 90px}}@media (min-width:480px) and (max-width:1024px){.navbar{margin-bottom:30px}.content{padding:10px 10px 0 10px}}@media (min-width:768px){.live .selector-wrapper{margin:64px 0 0px}}#sElement_Topbar_HTML_0_0_6_0_0_0_0_2_1_0_1 {display:flex;}.topbar--right{grid-gap:12px}.points-box{color:#000f55;display:flex;align-items:center;gap:8px;padding:8px 0;font-size:0.9rem;font-weight:900;font-family:"Montserrat",sans-serif;cursor:pointer;transition:opacity 0.2s ease;margin-right:12px}.points-box:hover{opacity:0.9}.points-icon{height:20px;width:20px}.points-text{font-size:14.4px;font-weight:900}.user-initials{position:relative;z-index:1;color:#fff;font-weight:600;display:block;text-align:center;font-family:"DM Sans Variable",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}.login-link{position:relative;background-size:cover;background-position:center;background-repeat:no-repeat}.login-link.loggedin{background-color:transparent!important;background-image:none;border-radius:0;display:flex;align-items:center;justify-content:center;text-transform:uppercase;color:white;aspect-ratio:1/1;width:30px;height:30px}.subscribe-link{font-family:Montserrat,sans-serif}.login-link-wrapper{display:flex;justify-content:end;align-items:center}.piano-login-link{font-size:11px}.login-link{width:30px;height:30px;margin:auto 0;border-radius:50%;background-image:url("https://www.gbnews.com/media-library/origin.png?id=61108591");background-repeat:no-repeat;background-size:contain;background-position:50%;color:transparent;transition:opacity 1s;opacity:1;font-size:11px}@media (max-width:760px){.login-link{width:30px!important;height:30px!important;font-size:11px}}.login-link:hover{color:white}.loggedin{background-color:#000f55;border-radius:50%;display:flex;align-items:center;justify-content:center;text-transform:uppercase;color:white;background-image:none;aspect-ratio:1/1;width:30px!important;height:30px!important}.login-link.disabled{pointer-events:none;cursor:default;opacity:0.2}.piano-login-link.disabled{pointer-events:none;cursor:default;opacity:0.2}piano-id-OVSLv,#piano-id-OVSLv,.tp-modal iframe{border-radius:15px}.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2 .tp-close{border-left:0px solid rgba(15,15,21,0.2)!important}.grecaptcha-badge{display:none}.tp-modal-open .vf-tray-trigger-widget{display:none}.tp-modal-open .tp-modal{z-index:2147483644!important}.topbar .login-link:hover{cursor:pointer}#login-link-text{font-size:16px;text-decoration:underline;margin-right:20px}.my-account-wrapper{background-color:#000f55}.my-account-wrapper{background-color:#000f55;position:absolute;min-width:205px;z-index:1500;opacity:0;visibility:hidden;display:none!important;transition:all 0.3s ease;left:auto;right:-25px;top:100%;transform:translateY(10px)}.my-account-wrapper.show{display:block!important;opacity:1;visibility:visible;left:auto;right:-25px;top:100%;transform:translateY(10px)}@media (max-width:768px){.my-account-wrapper.show{right:-15px}}.my-account-nav-item{position:relative}.my-account-nav-item:last-child{border-bottom:none}.my-account-nav-item a{display:flex;align-items:center;padding:15px 0px;color:white;text-decoration:none;transition:background-color 0.3s ease;font-size:14px;font-weight:500}.my-account-nav-item a:hover{text-decoration:underline;color:white}.my-account-nav-item a::before{content:"";width:16px;height:16px;margin-right:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.my-account-nav-item:not(:first-child)::after{content:"";position:absolute;height:1px;top:0;background:rgba(255,255,255,0.4);width:90%;margin:0 auto;left:0;right:0}
30@media (max-width:768px){.my-account-wrapper{min-width:200px;right:0;left:auto}}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;z-index:999;display:none}.overlay.show{display:block}.login-link-wrapper{position:relative}.icon-profile{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138194")}.icon-loyalty-points{background-image:url("https://gbn-public-assets-prod.s3.eu-north-1.amazonaws.com/assets/1769170352322-7hpqmi-icon-loyalty.png")}.icon-competitions{background-image:url("https://gbn-public-assets-prod.s3.eu-north-1.amazonaws.com/assets/1769170295377-s17jb7-icon-contest.png")}.icon-leaderboards{background-image:url("https://gbn-public-assets-prod.s3.eu-north-1.amazonaws.com/assets/1769170288872-i5o2jd-icon-limelight.png")}.icon-newsletters{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138182")}.icon-subscription{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138179")}.icon-wallet{background-image:url("https://assets.rbl.ms/66876962/origin.png")}.icon-notification{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138175")}.icon-saved{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138167")}.icon-topics{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138110")}.icon-contact{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138096")}.icon-logout{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61138089")}.icon-help{background-image:url("https://assets.rbl.ms/62129294/origin.png")}.menu-icon{display:inline-block;width:20px;height:20px;margin-right:12px;background-size:contain;background-repeat:no-repeat;background-position:center;flex-shrink:0}.custom-close-button{position:absolute;width:50px;height:50px;min-width:50px!important;min-height:50px!important;cursor:pointer;z-index:9999;right:-25px}.login-link:not(.loggedin){color:transparent}.loggedin{color:white!important}.login-link-wrapper{position:relative;display:flex;align-items:center}@media (max-width:768px){.custom-close-button{min-width:50px!important;min-height:50px!important;right:-15px}.my-account-wrapper{transform:translateY(9px)}}.sticky-left{display:flex;left:15px!important;position:absolute;z-index:9999}.menu__toggle.hide-desktop{width:auto}.menu__toggle svg{margin:0 3px;padding-right:10px;max-width:35px}.close__menu{width:20px;height:20px}.menu__toggle svg path{stroke:#FFFFFF!important;fill:#FFFFFF;stroke-opacity:1}.hamburger .edition-dropdown,.hamburger .sticky-left.sticky-left-click,.sticky-left .edition-dropdown,.sticky-left .edition-dropdown + .vertical-line{display:none}.mb-edition-wrap{position:relative;border-bottom:2px solid rgb(255,255,255,0.6);margin:0 0 20px;font-size:20px;line-height:20px;padding:0 0 15px}.mb-edition-btn{display:flex;align-items:center;gap:10px;cursor:pointer;transition:background 0.12s}.mb-edition-flag{width:30px;height:20px}.sub_nav_toggle.open{transform:rotate(180deg)}.mb-edition-wrap .sub_nav_toggle{width:unset;top:-10px;right:0;cursor:pointer}.mb-edition-wrap .sub_nav_toggle.open{right:2px}.mb-edition-menu{display:none}.mb-edition-menu.open{display:block}.mb-edition-option{display:flex;align-items:center;gap:10px;padding:20px 0 0;cursor:pointer;transition:background 0.1s}.mb-edition-label{flex:1;color:white;font-size:20px;font-weight:400;line-height:20px}.mb-edition-btn .mb-edition-label{text-decoration:underline}.navbar .mb-edition-wrap{display:none}@media (min-width:768px){.sticky-left .edition-dropdown,.sticky-left .edition-dropdown + .vertical-line{display:block}}.hamburger__open .close__menu{opacity:1}.hamburger__open .menu__toggle img{opacity:1}.hamburger__open .js-hidden-panel.active{transform:none}.js-hidden-panel{z-index:99}.hamburger{position:absolute;top:97px;width:100%;left:0;background:#000f55;padding:20px;z-index:3000000005;height:calc(100vh - 68px);display:none;overflow-y:auto}body.hamburger__open{overflow:hidden}.hamburger__open .hamburger{display:block}.hamburger__open .topbar-wrapper{z-index:3000000005}.hamburger .nav{flex-direction:column;height:100%;overflow-x:hidden;padding-bottom:150px}.hamburger .nav .nav--item{width:100%;margin-bottom:15px;position:relative;display:block}.hamburger .nav--item .text-element{width:100%;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,0.4)}.close__menu img{width:30px;height:30px}.topbar .hamburger .nav--item .text-element a{font-size:20px;line-height:29px;width:calc(100% - 50px);font-weight:500;color:#ffffff!important;text-transform:capitalize}.hamburger .nav--item:last-child .text-element{border:0}.hamburger .nav--item.expand:last-child .text-element{border-bottom:1px solid #ffffff}.hamburger .nav--item .text-element{margin:0}.topbar .hamburger .nav .secondary--nav{position:relative;top:0;left:8px;margin-right:23px;padding:0;display:none}.hamburger .nav--item.expand .secondary--nav{display:flex}.hamburger .secondary--nav .list{flex-direction:column;height:100%;background:transparent;padding:0}.hamburger .secondary--nav .list .list__item{font-size:16px;line-height:20px;color:#ffffff;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #ffffff;font-weight:500;margin-right:0;width:100%}.hamburger .secondary--nav .list .list__item:first-child{margin-top:18px}.hamburger .nav--item:last-child .list .list__item:last-child{border:0}.sub_nav_toggle{position:absolute;content:"";height:40px;width:40px;top:0;right:0;z-index:1;display:flex;align-items:center;justify-content:flex-end;padding-right:2px}.sub_nav_toggle:after{height:8px;width:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);content:""}.shop--channel__active .sub_nav_toggle:after{display:none}
30.expand .sub_nav_toggle:after{transform:rotate(-135deg)}.close__menu .hamburger-close-icon{width:51px;height:50px}.menu__toggle .hamburger-open-icon{width:25px;height:25px}.vertical-line{background-color:#bababa!important}@media only screen and (min-width:768px){.hamburger{top:132px;max-width:400px;max-height:1100px}.hamburger .nav{padding-bottom:150px}.menu__toggle{position:relative}.vertical-line{width:1px;height:20px}.nav--item home--channel__active.watch-live-button.live-cta__button,a.nav--item.home--channel__active.watch-live-button.live-cta__button.active{color:#c20000;font-size:16px;font-weight:700;display:flex;gap:10px;white-space:nowrap}.nav--item home--channel__active.watch-live-button.live-cta__button:hover{color:#c20000}.nav--item home--channel__active.watch-live-button.live-cta__button img{margin-right:5px;width:12px;height:12px}.watch-live-icon{aspect-ratio:1/1;width:10px;height:auto}.watch-live-button:hover{font-weight:700;color:var(--bg-blue)!important}.sticky-left .live-cta__button.active{text-decoration:underline;text-decoration-color:#c20000}@media only screen and (max-width:768px){.nav--item home--channel__active.watch-live-button.live-cta__button,a.nav--item.home--channel__active.watch-live-button.live-cta__button.active{margin-right:0px;margin-left:0px}}@media only screen and (max-width:400px){.nav--item home--channel__active.watch-live-button.live-cta__button,a.nav--item.home--channel__active.watch-live-button.live-cta__button.active{margin-right:0px;margin-left:0px}}}.navbar .nav .nav--item:last-of-type{padding-right:0px!important}.watch-live-button{font-weight:700;font-size:16px;gap:10px;color:#C20000}@media only screen and (min-width:1024px){.watch-live-button::after{content:"Watch Live"}.navbar .nav .nav--item:last-of-type{padding-right:initial}}.nav--item.active .secondary--nav{display:flex;z-index:2;height:auto}.nav--item.active .text-element a{font-weight:700;color:var(--bg-blue)!important;text-decoration:underline}.secondary--nav a.active{font-weight:700}@media (max-width:1024px){.watch-live-button::after{content:"Live"}}.search--quick__search{margin:0;border-bottom:1px solid #A7A9AC}.search--form__wrap{padding:0 18px}.nav .quick--search__form{width:100%;max-width:388px;margin-bottom:27px;background-color:white;border-radius:4px;display:flex;padding:12px 15px}.quick--search__form input{line-height:100%;font-size:19px;height:19px;width:calc(100% - 20px);padding:0;margin:0;border:0;font-weight:500;background-color:transparent;text-transform:capitalize}.quick--search__form input:invalid{background-color:transparent}.quick--search__form button{height:20px;width:20px}.quick--search__form input::placeholder{color:#A7A9AC;opacity:1}.quick--search__form input:-ms-input-placeholder{color:#A7A9AC}.quick--search__form input::-ms-input-placeholder{color:#A7A9AC}@media screen and (max-width:500px){.quick--search__form input{height:26px}}.navbar .nav--item:hover .secondary--nav.secondary--nav{height:auto;z-index:3}@media screen and (max-width:768px){.live-cta__button:before{content:"";position:absolute;right:5px;width:1px;height:20px;background:#000F55;top:0}}.live-cta__button{position:sticky;z-index:1000}.sticky-left{display:flex;align-items:center;gap:10px}.vertical-line{width:1px;height:20px;background-color:#000F55}.secondary--nav .list__item.active{text-decoration:underline;font-weight:700}.navbar .secondary--nav{display:flex;position:absolute;padding-top:9;top:38px;left:0;right:0;z-index:2;background-color:#000F55;border-top:3px solid var(--red);height:1px;overflow:hidden;padding-left:10px;padding-right:10px}.nav--item.hover_active .secondary--nav{display:flex;z-index:3;height:auto}.section-news .news--channel__active .secondary--nav,.section-politics .politics--channel__active .secondary--nav,.section-money .money--channel__active .secondary--nav,.section-lifestyle .lifestyle--channel__active .secondary--nav,.section-sport .sport--channel__active .secondary--nav,.section-live .live--channel__active .secondary--nav,.section-shows .shows--channel__active .secondary--nav,.section-entertainment .entertainment--channel__active .secondary--nav,.section-opinion .opinion--channel__active .secondary--nav,.section-watch .watch--channel__active .secondary--nav,.section-presenters .presenters--channel__active .secondary--nav{display:flex}.hide-sec_nav .secondary--nav{height:1px!important;display:none!important}.hide-sec_nav .nav--item.hover_active .secondary--nav{display:flex!important;height:auto!important}.secondary--nav .list{display:flex;flex-wrap:nowrap;flex-shrink:1;margin:0;height:38px;line-height:20px;overflow-x:auto;min-width:100%;padding-left:10px;align-items:center;padding-right:10px}.secondary--nav .list__item{display:block;padding:0;color:#fff;flex-shrink:0;margin-right:10px;font-size:14px}.secondary--nav .list__item:hover{font-weight:700;color:#fff}.secondary--nav__arrow{bottom:-42px;top:unset;z-index:10}
30@media (min-width:768px){.navbar .secondary--nav{left:0;top:50px;padding-top:24px;padding-left:0;z-index:2;padding:0px 35px 0px 220px;border-top:3px solid var(--red)}.secondary--nav .list{height:40px;line-height:20px;background:transparent;padding:0}.secondary--nav .list__item{margin-right:20px;font-size:16px;display:block}}.navbar .secondary--nav.regular--secondary__nav{display:flex;z-index:1;height:auto}.navbar .secondary--nav{padding:0px 35px 0 220px}@media only screen and (max-width:1024px){.navbar .secondary--nav{padding:0px 35px 0 140px}}@media only screen and (max-width:743px){.navbar .secondary--nav{padding:0px 10px 0px 90px}}.breaking-banner__wrapper{position:fixed;bottom:120px;z-index:300000;width:100%}.breaking-banner__post{background-color:var(--secondary-red);padding:10px;border-radius:4px}.breaking-banner__post .widget{margin-bottom:0}.breaking-banner__post .widget__headline{font-weight:700;font-size:16px;line-height:20px;text-transform:uppercase;color:white;border-bottom:1px solid #ffffff;padding-bottom:10px;margin-bottom:10px}.breaking-banner__post .widget__headline-text{color:white!important}.breaking-banner__post .posts-custom .widget__subheadline{margin-bottom:15px;margin-top:5px}.breaking-banner__post .posts-custom .widget__subheadline-text{font-weight:600;font-size:16px;line-height:20px;color:#ffffff}.breaking-banner__close-btn{position:absolute;top:12px;right:12px;z-index:3000000006;cursor:pointer}.breaking-banner__post .widget:hover .widget__headline,.breaking-banner__post .widget:hover .widget__headline a{color:white}@media (min-width:768px) and (max-width:1024px){.breaking-banner__wrapper{bottom:70px}.breaking-banner__post{margin:0 25px}.no-sidebar .breaking-banner__post{margin:0 30px}.breaking-banner__close-btn{right:37px}}@media (min-width:1024px){.breaking-banner__wrapper{display:grid;grid-column-gap:25px;grid-template-columns:calc(100% - 350px) 300px}.breaking-banner__wrapper.no-sidebar{grid-template-columns:100%}.no-sidebar .breaking-banner__close-btn{left:calc(100% - 55px);right:40px}.breaking-banner__post{margin-left:25px}.no-sidebar .breaking-banner__post{margin:0 29px}.breaking-banner__close-btn{right:37px}a.widget__subheadline-text.h3.rm-stats-tracked:hover{color:white!important;text-decoration:underline!important;text-decoration-color:white!important}}@media (min-width:1024px) and (max-width:1279px){.breaking-banner__wrapper{width:100%;bottom:0}.breaking-banner__close-btn{right:365px}}@media (min-width:1280px){.breaking-banner__wrapper{width:calc(100% - 320px);bottom:0}.breaking-banner__close-btn{right:365px}}@media (min-width:1280px) and (max-width:1290px){.breaking-banner__wrapper{width:calc(100% - 300px);bottom:0;max-width:970px}}@media (min-width:1600px){.breaking-banner__wrapper{width:calc(100% - 600px);bottom:0}.breaking-banner__close-btn{left:calc(100% - 380px)}}@media (min-width:1920px){.breaking-banner__wrapper{max-width:1315px}}.widget:hover .widget__headline a.widget__headline-text.rm-stats-tracked.banner__url{color:white!important}@media (min-width:480px) and (max-width:1024px){.breaking-banner__wrapper{z-index:999999999!important;bottom:0}breaking-banner__close-btn{z-index:9999999999!important}} 31 32.all-tags{display:none}.main-post__top--headline .widget{margin-bottom:initial}.main-post__top--headline .widget__head{display:none}.bottom-shares{width:100%;margin:0;padding:15px 5px;display:flex;border:1px solid #393F5626;border-right:initial;border-left:initial}.bottom-shares::before{display:none}.bottom-shares.bottom-shares .widget__shares{width:100%;border:none;margin-bottom:0;padding:0;position:relative}.bottom-shares .display-desktop .widget__shares{top:initial}.bottom-shares .share-tg ~ .share-tg{display:none}@media only screen and (max-width:768px){.bottom-shares .display-mobile.display-mobile{width:100%;display:flex}}@media (min-width:768px){.bottom-shares .display-desktop{width:100%;position:static}}.main-post__middle .vsly-player,.main-post__bottom .vsly-player,.main-post__middle video,.main-post__bottom video{display:none}
32.main-post__middle .ssmp-content video,.main-post__bottom .ssmp-content video{display:block}.custom-author.custom-author--affiliate{margin:10px 0;flex-wrap:wrap}.custom-author--affiliate.custom-author--affiliate-true{margin:20px 0}.custom-author--affiliate .display-mobile{margin-top:25px}.custom-author--affiliate.custom-author--affiliate-true .display-mobile{margin-top:0}.affiliate-post{margin:0;font-size:14px;font-weight:500;font-style:italic;line-height:128%;color:var(--text-blue)}.affiliate-post__link,.affiliate-post__link:visited.affiliate-post__link:visited.affiliate-post__link:visited.affiliate-post__link:visited{font-weight:700;text-decoration:underline;color:var(--bg-blue)}.custom-author--affiliate ~ .paywall_content .main-post__middle .widget__shares{display:none}.custom-author--affiliate + div{margin-bottom:0}.custom-author .display-mobile{display:none}.custom-author--affiliate .posts-custom .widget__shares{width:100%}@media only screen and (max-width:768px){.custom-author--affiliate .display-mobile{width:100%;display:flex}.custom-author--affiliate .custom-dates{display:flex}}@media only screen and (min-width:768px){.affiliate-post{margin:15px 0 0}.custom-author.custom-author--affiliate{margin:10px 0}}.rm-video-youtube .rm-video-holder,.rm-video-youtube .widget__play{z-index:10}.rm-video-youtube.rm-playing .widget__play{z-index:0}.rebellt-item .rm-shortcode{width:100%}.post-liveplayer-wrapper .widget__head{aspect-ratio:16/9}.post-liveplayer-wrapper .widget__head .rm-widget-image-holder,.post-liveplayer-wrapper .photo-caption.photo-caption,.post-liveplayer-wrapper .photo-credit.photo-credit{display:none}.posts-custom .widget__head .widget__body{background:transparent}.main-post__top iframe{aspect-ratio:16 / 9}@media (max-width:768px){.share-label{display:none}}.posts-custom .widget__head .widget__body{position:unset!important}.main-post__top .snark-line{aspect-ratio:16 / 9;width:100%}.gbn-offer-card{background-color:#F9F9FA;border-top:2px solid #D9D9D9;border-bottom:2px solid #D9D9D9;padding:0 20px;margin:20px 0}.offer-header{font-size:18px}.offer-header a{color:#0032aa;text-decoration:none!important;word-wrap:break-word;font-size:18px}.gbn-offer-card .offer-content{display:flex}.gbn-offer-card .image-section{float:left;margin:5px 25px 25px 0;position:relative;width:200px}.gbn-offer-card .image-section img{width:200px;max-width:200px}.gbn-offer-card .product-name{margin:0;display:flex;align-items:center;max-height:40px;font-size:18px;font-weight:700;margin-bottom:10px}.gbn-offer-card .product-info .old-price{text-decoration:line-through;color:#a7a9ac;font-weight:bold;margin:0 5px}.gbn-offer-card .product-info .new-price{font-size:18px;margin:0;color:#22AB00;font-weight:bold;display:flex}.gbn-offer-card .button-section{margin:15px;display:flex;justify-content:flex-end}.gbn-offer-card .button-section a{color:#fff!important}.gbn-offer-card .buy-now-button{background-color:#22AB00;text-align:center;text-transform:uppercase;border-radius:10px;display:inline-block;font-size:1.6rem;line-height:1em;padding:1.25rem;font-weight:700;color:#fff!important;text-decoration:none!important}.gbn-offer-card .product-info{display:flex}@media screen and (max-width:768px){.gbn-offer-card{background-color:#F9F9FA;border-top:2px solid #D9D9D9;border-bottom:2px solid #D9D9D9;padding:0 9px;margin:20px 0}.gbn-offer-card .offer-header{font-size:20px;text-decoration:none!important}.gbn-offer-card .image-section{float:left;margin:25px 0;position:relative;width:200px}.offer-header a{color:#0032aa;text-decoration:none!important;word-wrap:break-word;font-size:20px}.gbn-offer-card .offer-content{display:flex!important;flex-direction:column;align-items:center}.gbn-offer-card .text-section{display:flex!important;flex-direction:column;align-items:center}.gbn-offer-card .product-info{order:1}.gbn-offer-card .text-section p{order:2}.gbn-offer-card .button-section{order:3;margin-bottom:25px}.gbn-offer-card .product-info .old-price{text-decoration:line-through;color:#a7a9ac;font-weight:bold;margin:0 5px;font-size:18px}}#newsletter-signup-v2{margin-bottom:20px}#newsletter-signup-v2{min-height:160px}@media (min-width:768px){#newsletter-signup-v2{min-height:89px}}.embed-latest__posts,.embed-dontmiss__posts,.embed-mostread__posts{background-color:#ebebeb!important;margin-top:20px}.embed-foryou__posts{margin:30px 0}.embed-foryou__posts,.embed-mostread__posts,.embed-dontmiss__posts{border-radius:4px}.embed-dontmiss__posts .module-headline__text,.embed-mostread__posts .module-headline__text{color:#000F55!important}.embed-dontmiss__posts .posts-custom,.embed-mostread__posts .posts-custom{padding:15px;padding-right:0}.embed-mostread__posts .posts-custom{padding-right:15px}.body-description .embed-mostread__posts .widget__headline-text{color:#000F55}.embed-dontmiss__posts .posts-custom .widget__section,.embed-mostread__posts .posts-custom .widget__section .embed-foryou__posts .posts-custom .widget .widget__section{dis
32play:none!important}.embed-foryou__posts .posts-custom .widget:not(.post-partial) .widget__section{display:none}@media (max-width:768px){.embed-foryou__posts .widget__head .rm-lazyloadable-image,.embed-dontmiss__posts .widget__head .rm-lazyloadable-image,.embed-mostread__posts .widget__head .rm-lazyloadable-image{max-width:150px;width:100%;min-height:71px}}.embed-foryou__posts .widget__head .rm-lazyloadable-image,.embed-dontmiss__posts .widget__head .rm-lazyloadable-image,.embed-mostread__posts .widget__head .rm-lazyloadable-image{border-radius:4px}@media (min-width:760px){.embed-mostread__posts .carousels .posts-wrapper .widget{min-width:202px!important}.embed-dontmiss__posts .posts-custom{padding:0}}.ad-wrapper-double{position:relative}.mpu_scroll_wrapper{height:100%;position:relative}ad-slot[position^="mpu_mobile"]{position:sticky;top:40px;z-index:10;display:block}.row:has(.ad-wrapper-double ad-slot[position^="mpu_mobile"]),.ad--placeholder.ad-wrapper-double{overflow:clip}@media (max-width:768px){.ad-wrapper-double ad-slot[position]{position:sticky}}@media (min-width:768px){.embed-mostread__posts{display:none}.embed-foryou__posts{display:none}} 33 34#newsletter-signup{min-height:245px}@media only screen and (min-width:1024px){#newsletter-signup{min-height:190px}}.video-inbody{min-height:345px}@media only screen and (min-width:414px){.video-inbody{min-height:395px}}.sidebar--column{display:none}.ad-wrapper:before{content:"Advertisement";text-align:left;display:none;max-width:300px;margin:10px auto;font-size:12px;line-height:12px;color:#565656}.ad-inbody{display:block;text-align:center;margin:30px auto;border-top:1px solid #393F5626;border-bottom:1px solid #393F5626;padding:10px 0 15px}.container{margin:10px 8px}.main-post__top{margin:0}.main-post__top .widget__headline{font-weight:700;font-size:24px;line-height:150%;color:var(--dark-blue);margin:0 8px 20px}.main-post__top .widget__headline:hover{cursor:default;pointer-events:none}.posts-custom .body-description p:not(.media-photo-credit p,.media-caption p,.body-description .pull-quote,.factbox p){font-weight:500;font-size:16px;line-height:24px;margin-top:0}.main-post__top .widget__body:not(:first-child),.posts-custom .media-caption,.posts-custom .media-photo-credit{font-style:italic;font-weight:500;font-size:12px;line-height:12px;color:black}@media (min-width:768px){.posts-custom .media-caption{font-size:14px!important}.posts-custom .media-photo-credit{font-size:14px!important}}.posts-custom .media-caption{font-size:12px}.posts-custom .photo-credit,.posts-custom .photo-caption{display:inline-block;margin:5px 0}.posts-custom .media-photo-credit:after,.main-post__top .widget__body:not(:first-child):after{content:"";display:block;border-bottom:1px solid #393F561A;padding-bottom:0px}.posts-custom .media-photo-credit:after{margin-bottom:30px}.posts-custom .body .media-caption,.posts-custom .body .media-photo-credit{margin-bottom:0}.posts-custom .body .media-caption,.posts-custom .body .media-caption p{display:inline;margin:0}.posts-custom .body .media-photo-credit{display:contents;margin:0}.posts-custom .body .media-photo-credit p{display:inline;margin:0;padding:0}.main-post__top .photo-credit,.main-post__top .photo-caption p,.posts-custom .media-caption p,.posts-custom .media-photo-credit p{font:inherit;color:inherit;display:inline}.main-post__top .photo-credit,.posts-custom .media-photo-credit{font-style:normal;color:var(--text-gray)}.custom-author{margin:20px 0;position:relative;display:flex}.bottom-shares.custom-author.js-bottom-shares{margin:0}.custom-author__avatar{height:50px;width:50px;object-fit:cover;margin:auto 10px auto 0}.custom-author__name-desc{font-weight:500;font-size:16px;line-height:20px;color:var(--text-gray);display:inline-block;margin:0 0 5px}.custom-author__name[href]{color:var(--bg-blue);text-decoration:underline}.display-desktop{display:none}.custom-dates{font-weight:500;font-size:12px;line-height:15px;display:block}.created-date,.created-ts,.updated-date,.updated-ts,.custom-dates .created,.custom-dates .updated{display:inline-block;margin:0 0 0;font-weight:500;font-size:14px;line-height:15px;color:var(--dark-blue)}.updated:before{content:"|";display:inline-block;margin:0 4px 0 3px;color:var(--dark-blue);opacity:1}.updated{color:var(--text-gray);opacity:1}.posts-custom .widget__shares{margin:0;border-top:1px solid #393F5626;padding:15px 5px;border-bottom:1px solid #393F5626}.posts-custom .widget__subheadline-text{font-weight:600;font-size:22px;line-height:136%;color:#000F55}.posts-custom .custom-field-tldr{font-weight:500;font-size:18px;line-height:24px;color:#0032aa}.posts-custom .custom-field-tldr ul{margin-bottom:0}.posts-custom .custom-field-tldr li::marker{color:#0032aa;font-size:22px}.main-post__middle .widget__body:last-child,.body-description .factbox,.body-description .pull-quote{background-color:#0032aa0D;padding:20px 9px;border:2px solid #0032aa26;border-left:none;border-right:none}.posts-custom .body-description a{color:#0032aa;text-decoration:underline}.trending-wrapper a.trending-body-text{text-decoration:none}.trending-wrapper a.trending-body-text:hover{text-decoration:underline}.main-post__middle{margin-bottom:0}.main-post__middle .posts-custom .widget{margin-bottom:10px}.posts-custom .social-tab-i{display:none}.posts-custom .media-caption{margin-bottom:30px}.posts-custom .body-description p a:not(.widget__section):not(rebellt-ecommerce--buy a):not(.widget__headline-text):not(.all-related-sections a):visited{color:purple}.embed-latest__posts,.embed-mostread__posts,.embed-dontmiss__posts,.embed-trending__posts{background-color:#F9F9F9;padding:2px;margin-bottom:20px}.embed-mostread__posts .carousels{margin-bottom:0}.embed-mostread__posts .carousels .posts-wrapper .widget,.embed-dontmiss__posts .posts-wrapper .widget{min-width:250px}.embed-mostread__posts .posts-wrapper,.embed-dontmiss__posts .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.embed-latest__posts .widget:last-child{margin-bottom:10px}.embed-mostread__posts .widget,.embed-dontmiss__posts .widget{margin-bottom:0}.embed-latest__posts .module-headline__text,.embed-dontmiss__posts .module-headline__text,.embed-mostread__posts .module-headline__text,.embed-trending__posts .module-headline__text{font-weight:700;font-size:18px;line-height:27px;text-transform:uppercase;color:var(--bg-blue);display:inline-block;border-bottom:none;padding-bottom:0}.embed-latest__posts .posts-custom[data-attr-layout_columns="2"] .posts-wrapper{margin-left:0;margin-right:0}.embed-trending__posts .posts-custom .widget:last-child{margin-bottom:15px}.embed-latest__posts .row .rm-col-right{padding-left:15px}.embed-dontmiss__posts .posts-custom,.embed-mostread__posts .posts-custom,.embed-trending__posts .posts-custom{padding:0 20px}.embed-dontmiss__posts .posts-custom .widget__head .widget__body,.embed-mostread__posts .posts-custom .widget__head .widget__body{background:transparent}.embed-dontmiss__posts .posts-custom .widget__section,.embed-mostread__posts .posts-custom .widget__section{color:white;text-decoration:none;display:inline-block;padding:2px 8px;position:absolute;right:0;bottom:0;text-transform:uppercase;font-size:16px;line-height:27px;font-weight:700}.body-description .embed-latest__posts .widget__headline,.body-description .embed-trending__posts .widget__headline{font-weight:500;font-size:16px;line-height:24px}.body-description .embed-mostread__posts .widget__head + .widget__body{padding:0}.body-description .embed-dontmiss__posts .widget__headline,.body-description .embed-mostread__posts .widget__headline{font-weight:500;font-size:16px;line-height:150%;padding:10px 0;white-space:normal}.body-description .embed-mostread__posts .widget__headline{padding:10px}.body-description .embed-latest__posts .widget__headline-text{-webkit-line-clamp:4}.body-description .custom-field-is-analysiis{margin-top:10px}.custom-field-is-analysiis + .widget__headline a:before{display:none}.body-description .embed-latest__posts .widget__headline-text{max-height:84px;line-height:21px;word-wrap:break-all;overflow:hidden;visibility:visible}.body-description .simplestream-holder{margin-bottom:25px}@media (min-width:1863px){.rebellt-item .share-tab-img,.rebellt-item img,.share-tab-img{display:block!important}}.evergreen-particle{border:1px solid #D9D9D9;padding:20px;position:relative;margin-top:85px;margin-bottom:30px}.evergreen-particle h3{background:var(--dark-blue);color:white;padding:15px;font-weight:700;font-size:24px;line-height:112%;margin:0;position:absolute;
34left:0;right:0;top:-56px}.evergreen-particle p:last-child{margin-bottom:0}.posts-custom .all-related-sections:before{content:"Follow:\00a0";display:block;padding:0;font-weight:600;font-size:18px;line-height:27px;color:var(--dark-blue);padding-right:10px}.posts-custom .all-related-sections a,.main-post__bottom .posts-custom .all-related-sections a ~ a ~ a{text-transform:capitalize;position:unset;background:transparent!important;padding:0;display:flex!important;pointer-events:all!important;flex-wrap:wrap}.main .content a:not(.support-banner):not(.widget__section):not(.widget__headline-text):not(.all-related-sections a):not(rebellt-ecommerce--buy a):not(.vf-conversation-starter_link):visited{color:purple}.rebellt-ecommerce--sum .rebellt-ecommerce--buy .rebellt-ecommerce--btn:visited{color:#fff}.all-related-sections a:last-child:after{display:none}.posts-custom [data-category="News"] .all-related-sections a[href*="/news/"] ~ a[href*="/news/"] ~ a,.posts-custom [data-category="Royal"] .all-related-sections a[href*="/royal/"] ~ a[href*="/royal/"] ~ a,.posts-custom [data-category="News"] .all-related-sections a[href*="/news/"] ~ a[href*="/news/"],.posts-custom [data-category="Money"] .all-related-sections a[href*="/money/"] ~ a[href*="/money/"] ~ a{display:inline-block!important;background-color:transparent}.main-post__bottom .widget__shares:before{display:none}.you-may-like__wrapper .module-headline__text{color:var(--bg-blue);font-size:24px;line-height:29px;border-bottom:4px solid #EB0000;padding-bottom:20px;margin:0 auto 15px}.you-may-like__wrapper .posts-custom .widget{}.you-may-like__wrapper .widget__headline{font-family:"Montserrat";font-style:normal;font-weight:500;font-size:16px;line-height:24px}.body-description .quotebox,.body-description blockquote{background-color:#0032aa;color:white;padding:20px;font-weight:500;font-size:18px;line-height:24px;max-width:459px;border-left:none;margin-left:0}.body-description .quotebox-quote:before,.body-description blockquote:before{display:block;content:open-quote;float:left;font-size:66px;line-height:65px;font-weight:700;position:relative;top:-5px;margin-right:10px}.body-description .quotebox-quote:after,.body-description blockquote:after{display:block;content:close-quote;text-align:right;float:right;font-size:66px;line-height:0;font-weight:700}.body-description blockquote:after{line-height:1}.body-description .quotebox .quotebox-author{font-weight:700;font-size:24px;line-height:32px;text-transform:uppercase;border-bottom:1px solid #FFFFFF;padding:0 0 10px;margin:20px auto}.body-description .quotebox .quotebox-author:first-child{margin-top:0}.posts-custom .body-description .quotebox-quote p{overflow:hidden;display:block;max-width:83%;margin:20px 0 0}.posts-custom .body-description .factbox,.body-description .pull-quote{padding:10px 20px;max-width:459px;margin-top:20px;color:var(--dark-blue);font-size:16px;line-height:24px}.posts-custom .body-description .factbox p,.body-description .pull-quote{color:var(--dark-blue);margin:20px 0}.posts-custom .body-description .factbox p:first-child:not(.factbox-title){margin-top:0}.posts-custom .body-description .factbox p:last-child{margin-bottom:0}.posts-custom .body-description .factbox .factbox-title{font-weight:700;font-size:18px;line-height:27px;margin:0;padding:0;color:#0032aa}.custom-field-Linkout{display:none}.content .posts-custom .widget__play svg{fill:transparent!important}.content .posts-custom .widget__play:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC4zNjcxODgiIHk9IjAuNTMxMjUiIHdpZHRoPSI0OS4yOTkxIiBoZWlnaHQ9IjQ5LjMxNSIgcng9IjEwIiBmaWxsPSIjMDAzMkFBIiBmaWxsLW9wYWNpdHk9IjAuOCIvPgo8cGF0aCBkPSJNMzYuNTI1IDI0LjI4OTdMMTguMDM3OCAzNC45NjY3TDE4LjAzNzggMTMuNjEyN0wzNi41MjUgMjQuMjg5N1oiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=);display:block;width:50px;height:50px;content:"";background-position:top;background-repeat:no-repeat;background-size:cover;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.twitter-tweet{margin-left:auto;margin-right:auto}@media (min-width:768px){.container{margin:25px;position:relative}.selector-wrapper{margin-bottom:20px}.select-button{padding:10px 15px;text-transform:uppercase;border-radius:10px;font-weight:500;font-size:18px;background-color:var(--text-light-gray);border:1px solid #A7A9AC;color:#A7A9AC;margin-right:20px;
34display:inline-block;cursor:pointer}.select-button.active{background-color:var(--bg-blue);color:white;font-weight:700;border:none}.sidebar--column{display:block}.sidebar--column .ad-sidebar{margin:20px auto}.by-outbrain:before{content:"Powered by Outbrain ";text-align:left;display:none;max-width:300px;margin:auto;font-size:12px;line-height:12px;color:#565656}.to-top{width:40px;height:40px;background-color:var(--dark-blue);border-radius:50%;position:absolute;right:-50px;display:none;bottom:10px}.to-top:before{content:"";border:solid white;border-width:0 2px 2px 0;display:inline-block;padding:5px;transform:rotate(-135deg);margin-top:8px}.watch-live,.listen-live{border:2px solid #EB0000;margin:0 0 20px}.watch-live p,.listen-live p{background-color:#EB0000;padding:4px 6px;margin:0;color:white;text-transform:uppercase;font-size:18px;font-weight:700;line-height:100%}.watch-live p:before,.listen-live p:before{content:"\2022 ";font-size:30px;vertical-align:text-top;margin-right:5px}.main-post__top .widget__headline{font-size:32px;line-height:48px;max-width:883px;margin-bottom:20px}.posts-custom .body-description p{margin:25px 0}.main-post__top .photo-credit,.main-post__top .photo-caption p,.posts-custom .media-caption p,.posts-custom .media-photo-credit p{font-size:14px;line-height:18px;margin:0}.posts-custom .media-caption p{font-size:14px}.custom-author{margin:30px 0;width:100%}.custom-author__name-desc{font-size:18px;line-height:22px;margin-bottom:10px}.bottom-shares.custom-author.js-bottom-shares{margin:0}.display-desktop{display:inline-block;position:absolute;top:10px;right:0}.display-desktop .widget__shares{border:none;margin-bottom:0;padding:0;position:relative;top:-10px}.custom-dates{margin-bottom:0}.created,.updated{display:inline-block;margin-bottom:0}.created-date,.created-ts,.updated-date,.updated-ts{font-size:14px;line-height:17px;margin-bottom:0}.main-post__middle .widget__shares{display:none}.main-post__bottom .widget__shares{border-bottom:1px solid #393F5626}.posts-custom .widget__shares .share-whatsapp-desktop{display:inline-block}.posts-custom .widget__shares .share-whatsapp{display:none}.main-post__middle{margin-bottom:10px}.main-post__middle .widget__body:last-child{padding:15px 20px}.posts-custom .widget__subheadline-text{font-size:24px;line-height:150%}.posts-custom .custom-field-tldr{line-height:28px}.posts-custom .slick-arrow{top:unset;background:transparent;color:#D9D9D9;height:30px;min-height:0;width:33px}.posts-custom .slick-arrow:hover{background:transparent;color:var(--dark-blue)}.posts-custom .slick-dots button{background-color:#D9D9D9}.posts-custom .slick-next{left:55%}.posts-custom .slick-prev{left:38.5%}.posts-custom[data-attr-layout_carousel] .widget{vertical-align:top}.ad-wrapper{display:block;text-align:center;margin:60px auto}.ad-wrapper:before{max-width:730px}.top-ad{margin:0 auto 7px}.top-ad:before{display:none}.bottom-ad{margin-top:38px}.posts-custom .body-description{font-size:18px;line-height:24px}.posts-custom .body-description p:not(.media-photo-credit p,.media-caption p,.body-description .pull-quote){font-size:18px;line-height:27px}.posts-custom .col2 p:last-child{margin-bottom:0}.posts-custom .col2 .media-photo-credit:after{margin-bottom:0}.two-column-single-particle{display:grid;grid-gap:0 20px;grid-auto-flow:column;grid-auto-rows:auto;grid-template-columns:[left] 0.5fr [right] 0.5fr;margin:auto}.two-column-single-particle .share-tab-img,.two-column-single-particle .embed-trending{grid-column:left;grid-row:1 / auto;grid-row-start:1;grid-row-end:span 20}.posts-custom .two-column-single-particle .media-caption{grid-row:2 / auto;grid-column:left}.posts-custom .two-column-single-particle .media-photo-credit{grid-row:2 / auto;grid-column:left;display:inline-block}.posts-custom .two-column-single-particle p{grid-area:auto / right;margin-top:0}.posts-custom .two-column-single-particle p:last-child{margin-bottom:0}.posts-custom .two-column-single-particle .image-media p{display:block;margin:10px 0}.rebellt-item.col2{margin-right:10px}.embed-latest__posts,.embed-dontmiss__posts,.embed-mostread__posts{padding:0 24px;background-color:#F9F9F9;margin-bottom:30px;margin-top:30px}.embed-mostread__posts .posts-wrapper{display:block;margin-bottom:20px}.embed-dontmiss__posts .module-headline__text,.embed-mostread__posts .module-headline__text{line-height:27px;margin-left:0}.embed-dontmiss__posts .posts-custom,.embed-mostread__posts .posts-custom{padding:0;margin:0}.embed-dontmiss__posts .posts-wrapper .widget{min-width:auto}.embed-latest__posts .posts-custom .widget{margin-bottom:10px}.body-description .embed-dontmiss__posts .widget__headline,.body-description .embed-mostread__posts .widget__headline{padding-bottom:10px}.evergreen-particle{padding:30px;margin-bottom:40px}.evergreen-particle h3{padding:17px 28px;font-size:24px;line-height:27px;top:-60px}.evergreen-particle p:last-child{margin-bottom:0}.posts-custom .all-related-sections:before{padding:0}.posts-custom .all-related-sections{margin:0px 4px 20px;width:100%;display:flex}.posts-custom .all-related-sections a{font-size:18px;line-height:27px;font-weight:500}.main-post__bottom .widget__shares:before{content:"Share this:";font-weight:600;font-size:18px;line-height:27px;display:inline-block;vertical-align:middle;margin-right:10px}
34.share-tab-img:hover .social-tab-i{display:none!important}.posts-custom .body-description .factbox,.body-description .quotebox{margin-right:20px;margin-top:0}.content .posts-custom .widget__play:after{width:100px;height:100px}}.AR_2.ob-widget.ob-feed-layout .ob-widget-header .ob_what{padding:0!important;margin:0 0 5px}.body .video-inbody{margin-bottom:20px;border-bottom:1px solid #393F5626;border-top:1px solid #393F5626}@media (max-width:413px){.updated:before{display:none}.posts-custom .body .media-photo-credit p{margin-left:2px}}@media (max-width:768px){.posts-custom .body-description{font-size:1.6rem;line-height:1.5}.embed-mostread__posts .widget__headline,.embed-dontmiss__posts .widget__headline{font-size:14px;line-height:20px}.posts-custom .all-related-sections a,.main-post__bottom .posts-custom .all-related-sections a ~ a ~ a{min-width:48px;text-align:center}.posts-custom .all-related-sections a{font-size:18px;line-height:27px;font-weight:500}.main-post__top .widget__headline{font-size:30px;font-weight:700;line-height:40px}.main-post__top .widget__body:not(:first-child):after{margin-top:5px}}.col,body{line-height:24px}.main--column>*{margin-bottom:0}.you-may-like__wrapper{}:root{--support-max-width:auto;--support-text-color:white;--support-bg-color:#000f55;--support-bg-hover-color:#0032aa}.support-banner{width:100%;max-width:var(--support-max-width);min-height:34px;position:relative;display:flex;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1.4;text-transform:uppercase;background-color:var(--support-bg-color);color:var(--support-text-color);cursor:pointer;transition:background-color 0.2s ease-in}.support-banner:empty{display:none}.support-banner:hover{background-color:var(--support-bg-hover-color)}.support-banner p{margin:initial}.support-banner a{text-decoration:initial;color:var(--support-text-color)}.support-banner a::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.main--column>.support-banner{margin-bottom:15px}@media only screen and (max-width:400px){}@media screen and (min-width:370px) and (max-width:499px){.support-banner{font-size:12px}}@media screen and (min-width:500px){.support-banner{font-size:14px}}@media screen and (min-width:1280px){.support-banner{font-size:16px}.engbar .support-banner{font-size:18px}}#support-banner-fixed{position:fixed;top:0;z-index:998;opacity:0}#support-banner-fixed.show-banner{opacity:1;-webkit-transition:opacity 2s ease;-moz-transition:opacity 2s ease;-ms-transition:opacity 2s ease;-o-transition:opacity 2s ease;transition:opacity 2s ease}.support-banner.show-banner{width:calc(100% - 15px)}@media only screen and (min-width:1600px){.support-banner.show-banner{width:calc(100% - 975px)}}@media screen and (min-width:1290px) and (max-width:1599px){.support-banner.show-banner{width:calc(100% - 695px)}}@media screen and (min-width:1280px) and (max-width:1289px){.support-banner.show-banner{width:calc(100% - 690px)}}@media screen and (min-width:1024px) and (max-width:1279px){.support-banner.show-banner{width:calc(100% - 375px)}}@media screen and (min-width:768px) and (max-width:1023px){.support-banner.show-banner{width:calc(100% - 50px)}}@media only screen and (max-width:767px){.support-banner.show-banner{width:calc(100% - 14px)}}.posts-custom .widget__head .widget__body{position:static}.main-post__top .snark-line{top:0;left:0}.widget__video.crop-16x9.clearfix,.widget__video.crop-3x1.clearfix{display:none} 35 36 37 38#sPost_Default_0_0_16_0_0_2_0_15_0_0_2_1_0_1_0_2 .posts-custom .posts-wrapper:after {margin-bottom: 0px;} 39 #sPost_Default_0_0_16_0_0_2_0_15_0_0_2_1_0_1_0_2 .posts-custom .widget {margin-bottom: 0px;}.share-dialog svg{width:20px;height:20px;margin-right:7px}.share-dialog button,.share-dialog .share-popup,.share-dialog .share-copy-link{display:inline-flex;align-items:center;justify-content:center;height:auto;min-height:38px;padding-top:8px;padding-bottom:8px;color:#777;text-align:center;font-size:14px;font-weight:500;line-height:1.1;letter-spacing:2px;text-transform:capitalize;text-decoration:none;white-space:nowrap;border-radius:4px;border:1px solid #ddd;cursor:pointer;background-color:transparent}.share-dialog button:hover,.share-dialog .button:hover{border-color:#cdd}
39.share-dialog .share-button,.share-dialog .copy-link{padding-left:30px;padding-right:30px}.share-dialog .share-button,.share-dialog .share-dialog{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.share-background{display:none;position:fixed;top:0;bottom:0;right:0;left:0;background:rgba(0,0,0,0.4);z-index:-1}.share-dialog{width:95%;max-width:500px;box-shadow:0 8px 16px rgba(0,0,0,0.15);z-index:-1;border:1px solid #ddd;padding:20px;border-radius:4px;background-color:#fff}.share-background.is-open{display:flex;z-index:9991;justify-content:center;align-content:center;align-items:center}.share-dialog header{display:flex;justify-content:space-between;margin-bottom:20px}.share-dialog .targets{gap:20px;margin-bottom:20px;display:flex;justify-content:center;flex-direction:column}.share-dialog .close-button{background-color:transparent;border:none;padding:0}.share-dialog .close-button svg{margin-right:0}.share-dialog .link{display:flex;justify-content:center;align-items:center;padding:10px;border-radius:4px;background-color:#eee}.share-dialog .pen-url{margin-right:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-author__name[href]{color:#1f1f1f;font-size:14px;font-weight:500}.created-date,.created-ts{color:#1f1f1f;font-size:14px;font-weight:500}.custom-dates .updated .updated-date,.updated-ts{color:#1f1f1f;font-size:14px;font-weight:500}.custom-author__avatar{display:none}.custom-author{width:100%}#article-like-button:hover{cursor:pointer}.article-shares-el{display:flex;justify-content:center;position:sticky;top:0;z-index:98;background-color:white;border-bottom:1px solid #d5d5d5;border-top:1px solid #d5d5d5;transition:500ms ease-in-out}.shares-container{display:flex;width:393px;justify-content:center;align-items:center;gap:30px;min-height:36px}.shares-container a{display:flex;justify-content:center;align-items:center;width:33%;gap:5px}.shares-container a:hover{cursor:pointer}.shares-container img{width:16px}.posts-custom .widget__shares a{width:16px;gap:10px}.custom-author.custom-author--affiliate{max-width:393px}.divider{width:100%;height:1px;background-color:#bababa;margin:auto 0}.main-post__top .widget__body:not(:first-child){margin-top:0!important}@media (min-width:768px){.custom-author{width:100%;padding-bottom:10px}.custom-author__name[href]{font-size:16px}.custom-author.custom-author--affiliate{margin:10px auto 0;max-width:unset}.custom-author__name-desc{font-size:16px;line-height:16px;margin-bottom:15px}.shares-container{width:650px;padding:10px 0;gap:110px}.divider{width:723px}}.main-post__top .widget__body:not(:first-child),.posts-custom .media-caption,.posts-custom .media-photo-credit{font-style:italic;font-weight:500;font-size:12px;line-height:12px;color:black;display:flex;flex-direction:row;margin-top:10px;align-items:center}.main-post__top .widget__body:first-child{min-height:25px}.main-post__top .photo-credit,.main-post__top .photo-caption p,.posts-custom .media-caption p,.posts-custom .media-photo-credit p{font-size:12px;line-height:18px;margin:0}.media-photo-credit-new{font-weight:500}.main-post__top .photo-credit{font-weight:500;font-style:italic}.main-post__top .photo-caption p:last-of-type:not(.media-photo-credit-new p){font-weight:700}.posts-custom .photo-credit,.posts-custom .photo-caption{margin:5px 0}.photo-credit::after{content:"";display:inline-block;width:1px;height:12px;background-color:black;margin:0 5px;vertical-align:middle}.main-post__top .widget__body:nth-of-type(2){border-bottom:1px solid #d5d5d5}.custom-author__name-desc{font-size:14px;line-height:14px}.created-date,.created-ts,.updated-date,.updated-ts,.custom-dates .created,.custom-dates .updated{font-size:12px;line-height:18px}.custom-dates .updated .updated-date,.updated-ts{font-size:12px}.main-post__middle .widget__body:last-child{padding:10px}.posts-custom .media-photo-credit:after{margin-bottom:30px}.commentIcon{font-weight:500!important}.main-post__top .photo-caption{padding-bottom:5px}.custom-author__name-desc span:last-child{display:none}@media screen and (max-width:768px){.custom-author{margin:10px 0!important;padding:0 10px}.custom-author__name-desc{margin-bottom:10px}.main-post__top .widget__body .photo-caption{order:2}.main-post__top .widget__body:not(:first-child){white-space:normal;align-items:flex-start;line-height:18px}.main-post__top .photo-caption{white-space:wrap}#comments-span-0{display:none}.comment-count-0{padding:0px!important}}@media screen and (max-width:767px){.article-shares-el .share span{dis
39play:none}}@media (max-width:768px){#comment-span-0{display:none!important}.custom-author--affiliate .custom-dates{display:flex;flex-direction:row;gap:0px}.updated:before{display:block;margin:0px 5px 0px 5px}.custom-dates .updated{display:flex}.main-post__top .widget__body:not(:first-child){flex-direction:column}.posts-custom .photo-credit{margin:5px 0 0 0}.posts-custom .photo-caption{margin:0 0 5px 0}.posts-custom .body .media-caption{display:flex}.posts-custom .body .media-photo-credit{margin:0 10px;font-weight:700}.posts-custom .media-photo-credit:after{padding-bottom:10px}.posts-custom .body .media-caption{padding:10px 10px}.posts-custom .body .media-caption p{margin-top:10px;font-weight:500}.media-photo-credit-new{font-weight:700}@media (max-width:768px){.posts-custom .body .media-caption{padding:0px 10px 5px;margin-top:0px!important}}@media (max-width:768px){.body-description .media-caption p{padding:0!important}}.posts-custom .media-photo-credit:after{margin-bottom:30px}.posts-custom .media-photo-credit:after{margin-bottom:30px}.posts-custom .media-photo-credit:after{content:"";display:block;border-bottom:1px solid #393f561a;margin-bottom:30px}}* styling photo credit*/ .photo-caption{display:flex;align-items:center;gap:10px;margin-bottom:10px}.photo-credit{font-size:12px;font-weight:bold;border-radius:3px;white-space:nowrap;flex-shrink:0}.photo-caption p{margin:0;flex:1}.topicIcons{vertical-align:top}.posts-custom .body .media-caption{display:block;margin-bottom:25px;padding-bottom:5px;border-bottom:1px solid #393f561a;font-size:12px;font-weight:700;line-height:18px}@media (min-width:768px){.posts-custom .body .media-caption{margin-top:5px}}.photo-caption .media-photo-credit-new{color:#000;font-size:12px;font-style:italic;font-weight:500;line-height:18px}.photo-caption p{color:#000;font-size:12px;font-style:italic;font-weight:400;line-height:18px}.main-post__middle .widget__body:last-child,.body-description .factbox,.body-description .pull-quote{background-color:#f5f5f5!important;padding:20px 9px;border-bottom:2px solid #d5d5d5!important;border-top:2px solid #d5d5d5!important;border-left:none;border-right:none;color:#000f55}@media (max-width:768px){.posts-custom p.photo-caption,.posts-custom .image-media{padding-left:0}.you-may-like__wrapper .shared--posts__module.your-next-read .widget:not(:first-of-type) .custom-field-is-exclusive:after,.more-from-gbn .shared--posts__module .widget:not(:first-of-type) .custom-field-is-exclusive:after{font-size:12px;font-weight:700;line-height:12px}.shared--posts__module .widget:first-of-type .custom-field-is-exclusive::after{content:"EXCLUSIVE";font-size:18px}.shared--posts__module .widget:first-of-type .custom-field-is-breaking-news::after{content:"BREAKING NEWS";font-size:18px}}@media (min-width:418px) and (max-width:1024px){.more-from-gbn-wrapper .shared--posts__module .posts-wrapper{display:grid}.more-wrapper .shows .posts-wrapper,.more-from-gbn-wrapper{grid-template-columns:1fr 1fr 1fr 1fr}}@media (min-width:418px) and (max-width:1024px){.more-wrapper .shows .posts-wrapper{grid-template-columns:1fr 1fr 1fr 1fr}}.all-related-sections{background-color:#F5F5F5;padding:10px;border-top:1px solid rgba(57,63,86,0.15);border-bottom:1px solid rgba(57,63,86,0.15);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:5px}.main .content .all-related-sections a{color:#000F55!important;font-size:18px;font-weight:500;white-space:nowrap}@media (min-width:768px){.posts-custom .all-related-sections{margin:0px 0px 0px;background:#f5f5f5;padding:10px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start}.posts-custom .all-related-sections:before{padding-top:5px!important;padding-right:10px}.you-may-like__wrapper .widget__headline{font-size:14px;line-height:21px}}.posts-custom .all-related-sections{margin:0px 0px 0px;display:flex}.posts-custom .all-related-sections:before{padding-right:10px;font-size:18px}.body-description{padding:0px 10px}.widget__shares{display:flex;justify-content:center}.commentIcon{display:flex;justify-content:center;align-items:center;gap:5px;color:#000F55;width:150px;height:25px;border-radius:3px;margin-left:10px;font-weight:300}#comment-count-desktop-0{display:none}#comment-span-0{display:none}#now-0{display:none}#comment-count-desktop-2{display:none}#comment-span-2{display:none}#comments-span-2{display:block}#now-2{display:none}.ad--placeholder::before,.sidebar-ad-wrapper::before,.ad--placeholder--double::before{display:block;content:"Advertisement";font-style:italic;font-size:12px!important;line-height:22px!important;pointer-events:none;text-transform:uppercase;color:#000;position:relative;top:0;text-align:center}.ad--placeholder:has(.ci-ymal)::before,.sidebar-ad-wrapper:has(.ci-ymal)::before,.ad--placeholder--double:has(.ci-ymal)::before{display:none} 40 41.embed-dontmiss__posts .posts-wrapper{border-top:1px solid #000F55;padding:15px 0 0;padding-bottom:15px}.embed-dontmiss .module-headline__text{padding:0 0 10px}.main-post__bottom .embed-dontmiss__posts .widget .widget__headline{padding:10px 10px 0}.embed-latest__posts,.embed-dontmiss__posts,.embed-mostread__posts{padding:15px 20px 5px}.main-post__bottom .embed-dontmiss__posts .widget:last-child{margin-right:0!important}.embed-dontmiss__posts .module-headline__text{color:#000F55!important}.main-post__bottom .embed-dontmiss .widget .widget__body .widget__headline-text{color:inherit}.main-post__bottom .embed-dontmiss .widget .widget__body .widget__headline-text:hover,.embed-dontmiss .widget__headline.h2{color:#000F55!important}.embed-dontmiss__posts{background-color:#ebebeb!important}.embed-dontmiss__posts .posts-wrapper .widget{border-bottom:1px solid #000F55}.widget:hover a.widget__headline-text,.widget:hover a.widget__headline-text{text-decoration:none}.main-post__bottom .embed-dontmiss__posts .widget .widget__headline:hover,.embed-rhr__posts .posts-custom a:hover,.posts-custom .body-description ul li a,.posts-custom .body-description ul li a:hover{text-decoration:underline}.embed-dontmiss .widget__headline{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden} 42 43#sPost_Default_0_0_16_0_0_2_0_15_0_0_4_2_3 .widget .widget__head {margin-bottom:7px;}#sPost_Default_0_0_16_0_0_2_0_15_0_0_4_2_3 .widget__headline {position:relative;top:-7px;}.hp_container{background-color:#ebebeb!important;padding:15px 20px 5px;margin-bottom:30px;margin-top:30px;border-radius:4px}.hp_container img{border-radius:4px}.hp_container_posts{display:flex;flex-wrap:nowrap;overflow-x:auto;margin:0;border-top:1px solid #000F55;padding:15px 0 0;padding-bottom:15px}.hp_container h3{color:#000F55!important;font-weight:700;font-size:18px!important;text-transform:uppercase;display:inline-block}.hp_content{border-bottom:1px solid #000F55;min-width:auto;margin-right:20px;width:33.3333%;vertical-align:top;margin-bottom:0;display:inline-block}.hp_content:last-child{margin-right:0!important}.hp_content .widget__headline{padding:10px}.hp_content .h2{color:#000F55!important;font-weight:500;font-size:16px;line-height:150%;white-space:normal;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;text-overflow:ellipsis}.hp_content a:hover{color:#0032aa;text-decoration:underline!important}.hp_container_placeholder .hp_container,.hp_container:has(.hp_content){min-height:412px}.plaeholder_spinner{border:8px solid #f3f3f3;border-top:8px solid #145A7C;border-radius:50%;margin:80px auto;width:120px;height:120px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@media (max-width:760px){.hp_content{width:100%;border-bottom:none}.hp_container{padding:15px 20px 20px}.hp_container_posts{display:flex;margin-left:0px;margin-right:0px;padding-top:15px;padding-bottom:0px!important;border-bottom:1px solid #000F55;flex-direction:column;flex-wrap:nowrap}.hp_content .widget__headline-text{display:flex;width:100%;align-items:flex-start;margin-bottom:15px;line-height:18px}.hp_content img{position:relative;width:40%;margin-bottom:0!important;max-width:150px;min-height:71px}.hp_content .h2{margin:unset;width:60%;position:relative;line-height:21px;font-size:14px;top:0!important;padding:0px 0 0 10px!important;min-width:auto!important;margin-bottom:0px!important;color:#000F55!important}}.embed-foryou__posts .posts-wrapper{padding-top:15px}.embed-foryou__posts .posts-custom[data-attr-layout_columns="3"] .posts-wrapper{display:flex;margin-left:0px;margin-right:0px}.embed-foryou__posts .module-headline__text{margin:auto 10px;font-size:18px;text-transform:uppercase}.embed-foryou__posts .posts-custom[data-attr-layout_columns="2"] article,.embed-foryou__posts .posts-custom[data-attr-layout_columns="3"] article,.embed-foryou__posts .posts-custom[data-attr-layout_columns="4"] article{margin:0}.embed-foryou__posts .widget.post-section--celebrity:last-child{margin-right:0}.embed-foryou__posts .widget{max-width:100%!important}.main--column .module-headline__text{margin-bottom:0;border-bottom:none}.embed-foryou__posts .main--column .module-headline__text{padding-bottom:0}.body-description .embed-foryou__posts .widget__headline-text{color:#000F55!important;font-weight:500;line-height:27px}.body-description .embed-foryou__posts .widget__headline{padding:10px}.embed-foryou__posts{background:#ebebeb;padding:15px 20px 20px}.embed-foryou__posts .module-headline__text,.embed-foryou__posts .posts-custom .body-description a{color:#000F55!important;margin:auto 0px;border-bottom:1px solid #000F55}.main-post__bottom .embed-foryou__posts .widget{margin-right:20px}.embed-foryou__posts .posts-wrapper .widget{border-bottom:1px solid #000F55}.embed-foryou__posts .posts-wrapper .widget:last-child{margin-right:0}.embed-foryou__posts .widget__head .rm-lazyloadable-image{border-radius:4px}.main-post__bottom .embed-dontmiss .widget .widget__body .widget__headline-text{color:inherit}.embed-foryou__posts .carousels .posts-wrapper .widget{border-bottom:1px solid #000F55}.embed-foryou__posts .posts-custom .widget{margin-bottom:15px}@media (min-width:768px){.embed-foryou__posts .posts-custom .widget{width:33.333%}}.embed-mostread .posts-wrapper{border-top:1px solid #000F55;padding-top:15px;padding-bottom:15px!important}.embed-mostread .widget{max-width:100%!important}.body-description .embed-mostread__posts .widget__headline-text{color:#000F55!important}.embed-mostread__posts{background:#ebebeb}.embed-mostread__posts .module-headline__text{color:#000F55!important}.main-post__bottom .embed-dontmiss .widget .widget__body .widget__headline-text{color:inherit}.embed-mostread__posts .carousels .posts-wrapper .widget{border-bottom:1px solid #000F55}@media (min-width:768px){.embed-mostread .posts-custom .widget{width:33.333%}} 44 45#sPost_Default_0_0_16_0_0_2_0_15_0_0_4_5_3_0 .widget .widget__head {margin-bottom:7px;}#sPost_Default_0_0_16_0_0_2_0_15_0_0_4_5_3_0 .widget__headline {position:relative;top:-7px;} 46
47.main-post__bottom .snark-line{display:none} 48 49.topicIcons{margin-left:5px;position:relative;background-image:url("https://www.gbnews.com/media-library/origin.png?id=61194027");background-size:contain;background-repeat:no-repeat;background-position:center;border:none;padding:0;transition:background-image 0.3s ease-in-out;height:22px;width:22px;top:0}.topicIcons:hover{cursor:pointer}.topicIcons.followed{background-image:url("https://www.gbnews.com/media-library/origin.png?id=61215139")}button.disabled{opacity:0.5;cursor:default}.all-related-sections a{font-size:18px;font-weight:500;color:#000F55}.opinary-link-container{display:flex;justify-content:center;margin-bottom:30px;background-color:#ebebeb;padding:10px;align-items:center;align-content:center}.opinary-link-text{color:#000f55!important;text-decoration:none!important}.opinary-link-text:hover{text-decoration:underline!important}.opinary-icon{margin-right:15px;width:30px;height:30px}.topicIcons{margin-left:15px;margin-right:15px}.sidebar-wrapper .ci-ymal{font-size:13px!important}.sidebar-wrapper .sidebar-ad--placeholder{margin-bottom:20px;min-height:630px;position:relative;background-color:#fff}.sidebar-wrapper .ad--placeholder--double{min-height:630px;margin-bottom:20px;background-color:#fff}.ad-separator{height:0.5px;width:260px;background-color:#000f55;margin:10px auto;position:relative}.sidebar-ad-wrapper{position:relative;margin-bottom:20px}.sidebar-wrapper .shared--posts__module__splash__mobile .widget__head + .widget__body{padding:5px!important}.sidebar-wrapper .carousel--wrapper{background-color:#F5F5F5}.sidebar-wrapper .widget:hover .widget__headline a{color:inherit}.embed-rhr__posts .widget:hover .widget__headline-text:hover{color:#000f55!important}.embed-rhr__posts .widget .widget__headline-text:hover{color:#000f55!important}.sidebar-wrapper{display:flex;flex-direction:column}.rhr_pos{height:100%;margin:0 0 30px;top:0}.side-placeholder{background-color:#000F55;height:auto;width:100%}.side-carousel{height:100%;background-color:#393F56;display:flex;width:100%;padding:0 20px;flex-direction:column;justify-content:center;align-items:center}.embed-rhr__posts .carousels .posts-wrapper .widget{min-width:260px}.sidebar-wrapper .embed-rhr__posts{background-color:#F5F5F5;color:#000f55}.embed-rhr__posts,.embed-rhr__posts .carousels{background-color:#F5F5F5;width:100%;margin:0 0 30px;border-radius:4px;height:auto;min-height:unset}.sticky-content .carousels .posts-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center}.embed-rhr--foryou__posts .sticky-content .carousels .posts-wrapper{gap:0px}.sticky-content .module-headline__text h2,.embed-rhr__posts .module-headline__text,.sticky-content .shared--posts__module .widget__headline{color:#000f55}.embed-rhr__posts{padding:0}.selector-wrapper{margin-bottom:20px}.sidebar-wrapper .ad-sidebar{margin:20px auto}#sSide_Bar_0_0_35_0_3_0_1_0_0_0_1_0 .widget .widget__head{margin-bottom:0}#sSide_Bar_0_0_35_0_3_0_1_0_0_0_1_0 .widget__headline{top:0}.to-top{width:40px;height:40px;background-color:var(--dark-blue);border-radius:50%;right:160px;display:none;bottom:10px;position:fixed}.to-top:before{content:"";border:solid white;border-width:0 2px 2px 0;display:inline-block;padding:5px;transform:rotate(-135deg);margin-top:8px}@media (max-width:1023px){.sidebar-wrapper{display:none}}@media (min-width:1600px){.to-top{right:300px}}@media (min-width:1920px){.to-top{right:calc((100vw - 1320px) / 2)}}.sidebar-wrapper .ad--placeholder{margin:15px 0}.sidebar-wrapper .ob-widget-header{margin:0!important}.sticky-both{position:sticky;top:0;height:max-content}.carousels.shared--posts__module.embed-rhr__posts.rhr_pos.element1 .row.px10 .col{border-bottom:1px solid #000f55;padding-top:0!important;padding-bottom:0!important;margin-bottom:15px}.sidebar-wrapper .custom-field-is-exclusive,.sidebar-wrapper .custom-field-is-breaking-news,.sidebar-wrapper .custom-field-is-live{display:none}.carousels .posts-wrapper .widget{margin-right:0!important}.regular-sidebar{position:sticky!important;top:10px}@media (min-width:768px){.shared--posts__module .widget__headline{line-height:24px;font-size:16px}}.ad--placeholder--double{position:relative;overflow:visible;display:block}
49ad-slot[position^="mpu_top-double"]{position:sticky;top:0;z-index:10;display:flex;align-items:flex-start}.row:has(.ad-wrapper-double ad-slot[position^="mpu_top-double"]),.ad--placeholder.ad-wrapper-double{overflow:clip}@media (max-width:768px){.ad-placeholder-double{overflow:visible!important}}.embed-rhr__posts{background-color:#ebebeb;margin-bottom:30px}.embed-rhr__posts .module-headline{max-width:100%}.embed-rhr__posts .posts-wrapper .widget{min-width:250px}.embed-rhr__posts .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.embed-rhr__posts .widget{margin-bottom:0}.embed-rhr__posts .widget{margin-bottom:0!important;border-bottom:none}.embed-rhr__posts .module-headline__text{font-weight:700;font-size:18px!important;line-height:27px!important;text-transform:uppercase;color:#000f55!important;display:inline-block;padding-bottom:0;border-top:none;width:100%;padding-left:20px;padding-top:10px}.embed-rhr__posts .module-headline__text::after{content:"";display:block;margin:auto 0;height:0.5px;width:260px;background-color:#000f55;margin-top:5px}.embed-rhr__posts .posts-custom{padding:0 24px}.embed-rhr__posts .posts-custom .widget__head .widget__body{background:transparent}.embed-rhr__posts .posts-custom .widget__section{color:#000f55;text-decoration:none;display:none;padding:2px 8px;position:absolute;right:0;bottom:0;text-transform:uppercase;font-size:16px;line-height:27px;font-weight:700}.body-description .embed-rhr__posts .widget__headline{font-weight:500;font-size:18px!important;line-height:27px!important;padding:10px;white-space:normal;min-height:129px}.embed-rhr__posts .posts-custom a{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;color:#000f55!important;text-decoration:none}.embed-rhr__posts .module-headline__text{line-height:27px;margin-left:0;margin-bottom:15px}.embed-rhr__posts .posts-custom{padding:0}.embed-rhr__posts .posts-wrapper .widget{min-width:auto}.embed-rhr__posts .widget__head img{border-radius:4px}.body-description .embed-rhr__posts .widget__headline{padding-bottom:10px}@media (max-width:767px){.embed-rhr__posts .posts-wrapper .widget{min-width:270px}}.carousels shared--posts__module embed-rhr__posts.rhr_pos .widget__body clearfix sm-mt-1{padding-top:0!important;padding-bottom:0!important}.embed-rhr--foryou__posts{background-color:#ebebeb}.embed-rhr--foryou__posts .row.px10 .col{display:flex;align-items:center}.embed-rhr--foryou__posts .sticky-content .carousels .posts-wrapper{gap:0!important}.embed-rhr--foryou__posts .posts-custom .widget__head{width:40%}.embed-rhr--foryou__posts .posts-custom .widget__body:nth-child(2){width:60%}.embed-rhr--foryou__posts .posts-custom .widget__body:nth-of-type(2){width:60%}.embed-rhr--foryou__posts .posts-custom .widget__body{width:60%!important;display:block!important}.embed-rhr--foryou__posts .posts-custom .widget__body{width:60%;padding-right:0}.embed-rhr--foryou__posts .posts-custom a{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;color:#000f55!important;text-decoration:none}.embed-rhr--foryou__posts .posts-wrapper .widget{min-width:260px}.embed-rhr--foryou__posts .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.embed-rhr--foryou__posts .widget{margin-bottom:0}.embed-rhr--foryou__posts .module-headline__text{font-weight:700;font-size:18px;line-height:27px;text-transform:uppercase;color:#000f55!important;display:inline-block;padding-bottom:0;border-top:none;width:100%;margin:0px 0 15px 0}.embed-rhr--foryou__posts .posts-custom{padding:0 24px}.embed-rhr--foryou__posts .posts-custom .widget__head .widget__body{background:transparent}.embed-rhr--foryou__posts .posts-custom .widget__section{color:#000f55;text-decoration:none;display:none;padding:2px 8px;position:absolute;right:0;bottom:0;text-transform:uppercase;font-size:16px;line-height:27px;font-weight:700}.body-description .embed-rhr--foryou__posts .widget__headline{font-weight:500;font-size:18px;line-height:27px;padding:10px;white-space:normal;min-height:129px}.body-description .embed-rhr--foryou__posts .widget__headline-text{display:initial;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;color:#000f55!important;text-decoration:none}.embed-rhr--foryou__posts .module-headline__text{line-height:27px;margin-left:0}.embed-rhr--foryou__posts .widget__headline{padding:0}.embed-rhr--foryou__posts .posts-custom{padding:0}.embed-rhr--foryou__posts .posts-wrapper .widget{min-width:auto}.embed-rhr--foryou__posts .widget__head img{border-radius:4px;min-height:71px}.body-description .embed-rhr--foryou__posts .widget__headline{padding-bottom:10px}.embed-rhr--foryou__posts .widget__headline{border-bottom:none}.shared--posts__module.embed-rhr--foryou__posts .widget__headline{line-height:18px;font-size:13px}.shared--posts__module .embed-rhr--foryou__posts .posts-wrapper .widget:last-child{border-bottom:1px solid #000f55;margin-bottom:5px}.embed-rhr--foryou__posts .posts-wrapper .widget:last-of-type .row.px10 .col{border-bottom:1px solid #000f55;margin-bottom:15px;padding-bottom:15px}.embed-rhr--foryou__posts .posts-custom[data-attr-layout_columns="3"] article{margin:0}.embed-rhr--foryou__posts .posts-wrapper,.posts-custom[data-attr-layout_columns="3"] .posts-wrapper{margin:0}.sidebar-wrapper .embed-rhr--foryou__posts .custom-field-is-live + .snark-line>h2>a{margin-left:0;display:block!important}.embed-rhr--more__posts{background-color:#ebebeb}.embed-rhr--more__posts .row.px10 .col{display:flex;align-items:center}.embed-rhr--more__posts .sticky-content .carousels .posts-wrapper{gap:0!important}.embed-rhr--more__posts .posts-custom .widget__head{width:40%;margin-bottom:15px!important}.embed-rhr--more__posts .posts-custom .widget__body:nth-child(2){width:60%}.embed-rhr--more__posts .posts-custom .widget__body:nth-of-type(2){width:60%}.embed-rhr--more__posts .posts-custom .widget__body{width:60%;display:block!important;padding-right:0}.embed-rhr--more__posts .posts-custom .widget__body{width:60%}.embed-rhr--more__posts .posts-wrapper>.widget:first-of-type .row.px10>.col>.widget__body:nth-of-type(2){width:100%!important;line-height:27px!important;padding-right:0}
49.embed-rhr--more__posts .posts-custom a{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;color:#000f55!important;text-decoration:none}.embed-rhr--more__posts .posts-wrapper .widget{min-width:250px}.embed-rhr--more__posts .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.embed-rhr--more__posts .widget{margin-bottom:0}.embed-rhr--more__posts .module-headline__text{font-weight:700;font-size:18px;line-height:27px;text-transform:uppercase;color:#000f55!important;display:inline-block;padding-bottom:0;border-top:none;width:100%;margin:0px 0 15px 0}.embed-rhr--more__posts .posts-custom{padding:0 24px}.embed-rhr--more__posts .posts-custom .widget__head .widget__body{background:transparent}.embed-rhr--more__posts .posts-custom .widget__section{color:#000f55;text-decoration:none;display:none;padding:2px 8px;position:absolute;right:0;bottom:0;text-transform:uppercase;font-size:16px;line-height:27px;font-weight:700}.body-description .embed-rhr--more__posts .widget__headline{font-weight:500;font-size:18px;line-height:27px;padding:10px;white-space:normal;min-height:129px}.body-description .embed-rhr--more__posts .widget__headline-text{display:initial;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#000f55!important;text-decoration:none}.embed-rhr--more__posts .module-headline__text{padding:1px;line-height:27px;margin-left:0}.embed-rhr--more__posts .widget__headline{padding:0}.embed-rhr--more__posts .posts-custom{padding:0}.embed-rhr--more__posts .posts-wrapper .widget{min-width:auto}.embed-rhr--more__posts .widget__head img{border-radius:4px!important;overflow:hidden;min-height:71px}.body-description .embed-rhr--more__posts .widget__headline{padding-bottom:10px}.embed-rhr--more__posts .widget__headline{border-bottom:none}.embed-rhr--more__posts:first-child(1){background-color:#ebebeb;margin-bottom:30px}.embed-rhr--more__posts:first-child(1) .module-headline{max-width:95%}.embed-rhr--more__posts:first-child(1) .posts-wrapper .widget{min-width:250px}.embed-rhr--more__posts:first-child(1) .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.embed-rhr--more__posts:first-child(1) .widget{margin-bottom:0}.embed-rhr--more__posts:first-child(1) .module-headline__text{font-weight:700;font-size:18px;line-height:27px;text-transform:uppercase;color:#000f55!important;display:inline-block;padding-bottom:0;border-top:none;border-bottom:1px solid #000f55;width:100%;margin:15px 0}.embed-rhr--more__posts:first-child(1) .posts-custom{padding:0 24px}.embed-rhr--more__posts:first-child(1) .posts-custom .widget__head .widget__body{background:transparent}.embed-rhr--more__posts:first-child(1) .posts-custom .widget__section{color:#000f55;text-decoration:none;display:none;padding:2px 8px;position:absolute;right:0;bottom:0;text-transform:uppercase;font-size:16px;line-height:27px;font-weight:700}.body-description .embed-rhr--more__posts:first-child(1) .widget__headline{font-weight:500;font-size:18px;line-height:27px;padding:10px;white-space:normal;min-height:129px}.body-description .embed-rhr--more__posts:first-child(1) .widget__headline-text{display:initial;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#000f55!important;text-decoration:none}.embed-rhr--more__posts:first-child(1) .module-headline__text{padding:1px;line-height:27px;margin-left:0}.embed-rhr--more__posts .posts-wrapper>.widget:first-of-type .row.px10>.col>.widget__body:nth-of-type(2){border-bottom:1px solid #000f55;margin-bottom:15px}.embed-rhr--more__posts:first-child(1) .posts-custom{padding:0}.embed-rhr--more__posts:first-child(1) .posts-wrapper .widget{min-width:auto}.embed-rhr--more__posts:first-child(1) .widget__head img{border-radius:4px}.body-description .embed-rhr--more__posts:first-child(1) .widget__headline{padding-bottom:10px}.more-box .posts-wrapper .widget:first-of-type .row.px10>.col{display:flex;flex-direction:column;height:100%;width:100%}.more-box .posts-wrapper .widget:not(:first-of-type) .row.px10>.col{display:flex;flex-direction:row}.more-box .posts-wrapper .widget:first-of-type .row.px10>.col .widget__head{width:100%;max-height:174px;margin-bottom:10px;overflow:hidden;position:relative}.more-box .posts-wrapper .widget:first-of-type .row.px10>.col .widget__head img{width:100%;height:100%;object-fit:cover;border-radius:4px!important;display:block}.more-box .posts-wrapper .widget:first-of-type .row.px10>.col .widget__body .widget__headline.h2:first-of-type{width:100%;line-height:27px;font-size:18px;padding:0px 5px 0 0}.embed-rhr--foryou__posts .posts-custom .widget__body:first-of-type{width:100%}
49.carousels.shared--posts__module.embed-rhr__posts.rhr_pos.element1 .shared--posts__module .widget__head + .widget__body{padding-top:0!important;padding-bottom:0!important}.shared--posts__module.embed-rhr--more__posts .widget__headline{font-size:13px;line-height:18px}.carousels .embed-rhr--more__posts rhr_pos .posts-wrapper .widget:last-child{border-bottom:1px solid #000f55;margin-bottom:5px}.more-box .posts-wrapper .widget:last-of-type .row.px10 .col{border-bottom:1px solid #000f55;margin-bottom:15px}.sticky-content .carousels .posts-wrapper{overflow-y:hidden}.trending-wrapper{padding:15px 20px 20px;background-color:#ebebeb;margin-bottom:30px;border-radius:4px}.trending-header{border-bottom:1px solid #000F55;color:#000F55;padding-bottom:10px;font-weight:700;font-size:18px}.tabs{display:flex;gap:20px;padding:10px 0;border-bottom:1px solid #000F55}.tab{cursor:pointer;font-weight:500;transition:background 0.3s;color:#4e587b}.tab.active{text-decoration:underline;color:#000F55;font-weight:700}.tab:hover{text-decoration:underline}.tab:not(:last-child)::after{content:"|";transform:translateY(-50%);pointer-events:none;color:#000F55;padding-left:20px}.tab-content{display:none;padding:15px 10px 0;color:#000F55;min-height:226px}.tab-content.active{display:block}.trending-body-text{color:#000F55!important;flex:1;font-size:16px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trending-body-text:hover{text-decoration:underline}.trending-item{display:flex;align-items:center;gap:20px}.posts-custom .body-description .trending-wrapper p{margin-bottom:15px}.trending-article-number{font-size:30px;min-width:20px;text-align:right}p.trending-item:last-child{margin-bottom:0}.tab-content{border-bottom:1px solid #000F55}@media (max-width:768px){.trending-wrapper{padding:15px 20px 20px}.trending-body-text{white-space:unset}.trending-wrapper a.trending-body-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.tab-content{border-bottom:1px solid #000F55;min-height:391px}}.carousels{margin-bottom:-20px}.carousels .posts-wrapper .widget{min-width:75%;margin-right:20px;margin-bottom:0}.carousels .posts-wrapper .widget:last-child{margin-right:0}.carousels .posts-wrapper{display:flex;flex-wrap:nowrap;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:20px}.carousels .posts-wrapper::-webkit-scrollbar{display:none}.carousel--wrapper{position:relative}.carousel--arrow{background:rgba(57,63,86,0.8);border-radius:5px;width:34px;height:53px;display:flex;align-items:center;justify-content:center;position:absolute;top:50px;z-index:99;opacity:0;transition:opacity 0.3s ease}.carousel--arrow.prev{left:-17px}.carousel--arrow.next{right:-17px}.carousel--wrapper:hover .carousel--arrow{opacity:1}.schedules__all .widget:not(.live){pointer-events:none}.carousels .widget__body{padding:0;box-shadow:none}.carousels .posts-wrapper .widget{min-width:calc(33% - 15px);max-width:calc(33% - 15px);box-shadow:none}.carousels .posts-wrapper{padding-bottom:0;margin-bottom:0}.carousel--arrow{bottom:50%;top:unset!important}@media (min-width:600px){.carousels .posts-wrapper .widget{min-width:42%;max-width:42%}}@media (min-width:900px){.carousels .posts-wrapper .widget{min-width:30%;max-width:30%}}@media (min-width:1360px){.carousels .posts-wrapper .widget{min-width:calc(25% - 15px);max-width:calc(25% - 15px)}}@media (max-width:767px){.carousel--arrow.prev{left:-7px}.carousel--arrow.next{right:-7px}}.carousels .widget__head .rm-lazyloadable-image{height:auto;object-fit:cover}#sPost_Default_0_0_16_0_0_2_0_23 {display:none;} 50 </style><style class="rm-i-styles rm-component-css"> 51 .newsletter_component_outlined{@font-face{font-family:"Montserrat";font-style:normal;src:url("https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}.gbn-newsletter{width:100%;padding:20px 10px;box-sizing:border-box;border-top:1px solid #d5d5d5;border-bottom:1px solid #d5d5d5;background:#ffffff;color:#000f55;font-family:Montserrat,Arial,Helvetica,sans-serif}.gbn-newsletter *{box-sizing:border-box}.gbn-newsletter__visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;white-space:nowrap;clip-path:inset(100%);clip:rect(0 0 0 0);overflow:hidden}.gbn-newsletter__container{display:flex;align-items:center;flex-direction:column;gap:10px;width:100%;max-width:100%;height:100%;background:#ffffff}.gbn-newsletter__form{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:650px;margin:0}.gbn-newsletter__title{margin:0;color:#000f55;font-size:16px;font-weight:600;line-height:16px;text-align:center;white-space:nowrap}.gbn-newsletter__input-wrapper{position:relative;display:flex;gap:8px;width:100%}.gbn-newsletter__email{width:100%;max-width:248px;height:30px;border:1px solid #767676;border-radius:4px;outline:none;font-family:Montserrat,Arial,Helvetica,sans-serif;text-align:center}.gbn-newsletter__email::placeholder{color:#a7a9ac;font-size:12px;font-weight:400}.gbn-newsletter__button{display:block;width:100%;max-width:82px;height:30px;border:0;border-radius:4px;overflow:hidden;color:#ffffff;background:#c20000;font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:14px;font-weight:700;line-height:30px;text-align:center;white-space:nowrap;cursor:pointer}.gbn-newsletter__button:hover{background-color:#d70000}.gbn-newsletter__terms{margin:0;padding:0 50px;color:#000f55;font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:12px;line-height:17px;text-align:center}.gbn-newsletter__terms-link{color:#000f55;text-decoration:underline}p.pn-boilerplate__text.pn-boilerplate__text--subheader{margin:10px}@media screen and (max-width:850px){.gbn-newsletter__form{flex-direction:column}.gbn-newsletter__input-wrapper{justify-content:center}.gbn-newsletter__button{max-width:90px;font-size:14px}}@media screen and (max-width:670px){.gbn-newsletter{width:100%;padding:15px 10px}.gbn-newsletter__container{justify-content:center;max-height:111px}.gbn-newsletter__button{display:flex;align-items:center;justify-content:center;font-size:14px;line-height:normal}.gbn-newsletter__terms{padding:0;font-size:10px}form.newsletter-form.pn-boilerplate__form{text-align:center}.sign-btn{border-radius:4px;background:#c20000;height:30px;color:#fff;text-align:center;font-weight:700;border:0;overflow:hidden;white-space:nowrap;width:100%;font-family:Montserrat;padding:10px;text-decoration:none}.sign-btn:hover{color:#fff}}@media screen and (max-width:300px){.gbn-newsletter__title{font-size:12px}}} 52 </style>
52<script class="rm-i-script"> 53 window.REBELMOUSE_LOW_TASKS_QUEUE.push(function() { 54 if(window.REBELMOUSE_BOOTSTRAP_DATA.engine.enableRunnerCss){ 55 window.REBELMOUSE_STDLIB.loadExternalStylesheet("/static/css-build/roar/runner/social-ux-non-critical.css?v=rmxassets9f85b614d0482c26a5f33e04e87319ff", function(){ 56 document.body.classList.add("rm-non-critical-loaded"); 57 }); 58 } 59 }); 60 </script>
60<script class="rm-i-script"> 61 var __RUNNER_PUBLIC__ = { 62 root: '#runner-root', 63 events: { 64 PAGE_VIEW: 'page_view.url_change.listicle_switch_page', 65 URL_CHANGE_PAGE_VIEW: 'page_view.url_change', 66 LISTICLE_CHANGE_PAGE_VIEW: 'page_view.listicle_switch_page' 67 } 68 } 69 </script>
69<script class="rm-i-script"> 70 window.__rebelmouseJsBaseUrl = "/static/js-build/"; 71 72 window.__rebelmousePrimaryColor = "#000F55"; 73 74 </script>
74<link rel="apple-touch-icon" href="https://assets.rebelmouse.io/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8zMjYyMTMwMy9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTgxNDg2NzYyOX0.IYprghyeE3T3jw0kNaO7OI15smHQyaNF8bdZyegluY8/img.png?width=192&height=192" sizes="192x192"/><link rel="icon" type="image/png" href="https://assets.rebelmouse.io/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8zMjYyMTMwMy9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTgxNDg2NzYyOX0.IYprghyeE3T3jw0kNaO7OI15smHQyaNF8bdZyegluY8/img.png?width=48&height=48" sizes="48x48"/>
74<script type="application/json" data-abtest-name="socialux" data-abtest-value="1"></script>
74<script type="application/json" data-abtest-name="v_socialux" data-abtest-value="1"></script>
74<script type="application/json" data-abtest-name="v" data-abtest-value="test"></script>
74<script type="application/json" data-abtest-name="v_v" data-abtest-value="test"></script>
74<script type="application/json" data-abtest-name="web" data-abtest-value="4"></script>
74<script type="application/json" data-abtest-name="v_web" data-abtest-value="4"></script>
74<script type="application/json" data-abtest-name="web" data-abtest-value="4v2"></script>
74<script type="application/json" data-abtest-name="v_web" data-abtest-value="4v2"></script>
74<script type="application/json" data-abtest-name="web" data-abtest-value="5"></script>
74<script type="application/json" data-abtest-name="v_web" data-abtest-value="5"></script>
74<script type="application/json" data-abtest-name="web" data-abtest-value="4-inder"></script>
74<script type="application/json" data-abtest-name="v_web" data-abtest-value="4-inder"></script>
74<meta property="article:published_time" content="2026-09-30T14:55:54+00:00"/><meta property="article:modified_time" content="2026-09-30T14:55:54+00:00"/>
74<script type="application/json" data-abtest-name="empty" data-abtest-value="css"></script>
74<script type="application/json" data-abtest-name="v_empty" data-abtest-value="css"></script>
74<script type="application/json" data-abtest-name="v" data-abtest-value="5071"></script>
74<script type="application/json" data-abtest-name="v_v" data-abtest-value="5071"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="rmvf"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="rmvf"></script>
74<script type="application/json" data-abtest-name="v" data-abtest-value="5075"></script>
74<script type="application/json" data-abtest-name="v_v" data-abtest-value="5075"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="5071"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5071"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="5061"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5061"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="5058"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5058"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="5063"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5063"></script>
74<script type="application/json" data-abtest-name="ce" data-abtest-value="2"></script>
74<script type="application/json" data-abtest-name="v_ce" data-abtest-value="2"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="5063-old"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5063-old"></script>
74<script type="application/json" data-abtest-name="dp" data-abtest-value="4238"></script>
74<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4238"></script>
74<script type="application/json" data-abtest-name="test" data-abtest-value="1"></script>
74<script type="application/json" data-abtest-name="v_test" data-abtest-value="1"></script>
74<script> 75 76</script>
76<meta name="apple-itunes-app" content="app-id=1566365113, app-argument=gbnews://articles/2677966747"/>
76<script type="application/json" data-abtest-name="v" data-abtest-value="5039"></script>
76<script type="application/json" data-abtest-name="v_v" data-abtest-value="5039"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="5097"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5097"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="removepiano"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="removepiano"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="cb1"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="cb1"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="10"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="10"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="privacyplus"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="privacyplus"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="5057"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5057"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="freetrial"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="freetrial"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="5038-2"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5038-2"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="recurly-win"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="recurly-win"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="5039-old"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5039-old"></script>
76<script type="application/json" data-abtest-name="dp" data-abtest-value="mile"></script>
76<script type="application/json" data-abtest-name="v_dp" data-abtest-value="mile"></script>
76<script src="//script.id.gbnews.com/index.js?v=3" defer="defer"></script>
76<script rel="preconnect" src="https://d9ac71e8-7538-4af0-9f50-c78cf38cc624.redfastlabs.com/assets/redfast.js" async="async"></script>
76<script crossorigin="crossorigin" src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js" crossorigin="anonymous" defer="defer"></script>
76<script src="https://js.recurly.com/v4/recurly.js" defer="defer"></script>
76<script src="https://www.paypal.com/sdk/js?client-id=BAAdepeKUnKA_kojmzaVSwk_bKXQf5h4TmrhA96OUOEZvWXaRj-xzo5rfANKfvbSDtq8kNTSqa-M5VFW00" defer="defer"></script>
76<link href="https://js.recurly.com/v4/recurly.css" rel="stylesheet" type="text/css"/>
76<script> 77 "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}(); 78</script>
78<script> 79window._consentCallbacks = window._consentCallbacks || []; 80window._consentReady = false; 81 82window.runWhenConsentIsReady = function(callback) { 83 if (window._consentReady && window._sp_?.consentUUID) { 84 // console.log('[runWhenConsentIsReady] Executing immediately - consent already ready'); 85 callback(window._sp_.consentUUID, window._sp_.euconsent); 86 return; 87 } 88 89 window._consentCallbacks.push(callback); 90 // console.log('[runWhenConsentIsReady] Callback queued. Total:', window._consentCallbacks.length); 91 92 // Add persistent event listener for consent changes 93 if (typeof __tcfapi !== 'undefined' && !window._consentListenerAdded) { 94 window._consentListenerAdded = true; 95 96 __tcfapi('addEventListener', 2, function(tcData, success) { 97 if (success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) { 98 // console.log('[runWhenConsentIsReady] TCF consent event received:', tcData.eventStatus); 99 100 if (!window._consentReady) { 101 window._consentReady = true; 102 103 if (window._sp_) { 104 window._sp_.consentUUID = tcData.tcString; 105 window._sp_.euconsent = tcData; 106 } 107 108 const callbacks = window._consentCallbacks.slice(); 109 window._consentCallbacks = []; 110 111 callbacks.forEach(function(cb, index) { 112 try { 113 // console.log('[runWhenConsentIsReady] Executing callback', index + 1); 114 cb(tcData.tcString, tcData); 115 } catch (error) { 116 console.error('[runWhenConsentIsReady] Error in callback', index + 1, error); 117 } 118 }); 119 } 120 } 121 }); 122 } 123 124 // Also check immediately in case consent is already available 125 setTimeout(function() { 126 if (typeof __tcfapi !== 'undefined' && !window._consentReady) { 127 __tcfapi('getTCData', 2, function(tcData, success) { 128 if (success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) { 129 // console.log('[runWhenConsentIsReady] TCF data already available, executing all callbacks now'); 130 window._consentReady = true; 131 132 if (window._sp_) { 133 window._sp_.consentUUID = tcData.tcString; 134 window._sp_.euconsent = tcData; 135 } 136 137 const callbacks = window._consentCallbacks.slice(); 138 window._consentCallbacks = []; 139 140 callbacks.forEach(function(cb, index) { 141 try { 142 // console.log('[runWhenConsentIsReady] Executing callback', index + 1); 143 cb(tcData.tcString, tcData); 144 } catch (error) { 145 console.error('[runWhenConsentIsReady] Error in callback', index + 1, error); 146 } 147 }); 148 } 149 }); 150 } 151 }, 50); 152}; 153 154// Helper function to execute callbacks 155function executeConsentCallbacks(consentUUID, euconsent) { 156 if (!window._consentReady) { 157 window._consentReady = true; 158 159 const callbacks = window._consentCallbacks.slice(); 160 window._consentCallbacks = []; 161 162 callbacks.forEach(function(cb, index) { 163 try { 164 // console.log('[executeConsentCallbacks] Executing callback', index + 1); 165 cb(consentUUID, euconsent); 166 } catch (error) { 167 console.error('[executeConsentCallbacks] Error in callback', index + 1, error); 168 } 169 }); 170 } 171} 172 173if (window.navigator.brave != undefined) { 174 if (window.navigator.brave.isBrave.name == "isBrave") { 175 // console.log("THIS IS THE BRAVE BROWSER"); 176 } 177} else { 178 // console.log("sp_subscribed_status:", document.cookie.split('; ').find(row => row.startsWith('sp_subscribed_status='))?.split('=')[1] || "false"); 179 180 window._sp_queue = []; 181 window._sp_ = { 182 config: { 183 accountId: 1836, 184 baseEndpoint: 'https://cdn.privacy-mgmt.com', 185 gdpr: { }, 186 targetingParams:{ 187 subscribed: document.cookie.split('; ').find(row => row.startsWith('sp_subscribed_status='))?.split('=')[1] || "false" 188 }, 189 events: { 190 onMessageReady: function() { 191 // console.log('[event] onMessageReady', arguments); 192 }, 193 onMessageReceiveData: function() { 194 // console.log('[event] onMessageReceiveData', arguments); 195 }, 196 onSPPMObjectReady: function() { 197 // console.log('[event] onSPPMObjectReady', arguments); 198 }, 199 onSPReady: function() { 200 // console.log('[event] onSPReady', arguments); 201 }, 202 onError: function() { 203 // console.log('[event] onError', arguments); 204 }, 205 onMessageChoiceSelect: function() { 206 // console.log('[event] onMessageChoiceSelect', arguments); 207 }, 208 onConsentReady: function(consentUUID, euconsent) { 209 // console.log('[event] onConsentReady', arguments); 210 // Execute queued callbacks when consent is ready 211 executeConsentCallbacks(consentUUID, euconsent); 212 }, 213 onPrivacyManagerAction: function() { 214 // console.log('[event] onPrivacyManagerAction', arguments); 215 }, 216 onPMCancel: function() { 217 // console.log('[event] onPMCancel', arguments); 218 } 219 } 220 } 221 } 222 223 let script; 224 script = document.createElement("script"); 225 script.src="https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js" 226 script.async = true; 227 document.head.appendChild(script); 228} 229 230</script>
230<!--
230<script src="https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js" async></script>
230 -->
230<script type="application/json" data-abtest-name="dp" data-abtest-value="exoptima"></script>
230<script type="application/json" data-abtest-name="v_dp" data-abtest-value="exoptima"></script>
230<script type="application/json" data-abtest-name="dp" data-abtest-value="no-wknd"></script>
230<script type="application/json" data-abtest-name="v_dp" data-abtest-value="no-wknd"></script>
230<script type="application/json" data-abtest-name="dp" data-abtest-value="4969"></script>
230<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4969"></script>
230<script type="application/json" data-abtest-name="dp" data-abtest-value="5039"></script>
230<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5039"></script>
230<script type="application/json" data-abtest-name="dp" data-abtest-value="tealless"></script>
230<script type="application/json" data-abtest-name="v_dp" data-abtest-value="tealless"></script>
230<script type="application/json" data-abtest-name="GBN" data-abtest-value="2183"></script>
230<script type="application/json" data-abtest-name="v_GBN" data-abtest-value="2183"></script>
230<script type="application/json" data-abtest-name="dp" data-abtest-value="4445"></script>
230<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4445"></script>
230<script> 231 window.dataLayer = window.dataLayer || []; 232 window.gbnConfig = { 233 "dataLayer": { 234 "cd30": "default", 235 "cd35": "mv_test_5", 236 "cd36": 1 237 } 238 } 239 // 1. Update OB_ContextKeyValue 240 window.OB_ContextKeyValue = window.gbnConfig.dataLayer.cd30; 241 242 function injectOBScript() { 243 const ob_script = document.createElement('script'); 244 ob_script.innerHTML = "window.OB_ContextKeyValue='" + window.gbnConfig.dataLayer.cd30 + "'"; 245 document.body.appendChild(ob_script); 246 } 247 248 if (document.readyState === 'loading') { 249 document.addEventListener('DOMContentLoaded', injectOBScript); 250 } else { 251 injectOBScript(); 252 } 253 254 255 // 2. Update testVariant 256 window.testVariant = window.gbnConfig.dataLayer.cd30; 257 258 259 function getUserStatusCookieValue(name) { 260 const cookies = document.cookie.split('; '); 261 for (const cookie of cookies) { 262 const [key, value] = cookie.split('='); 263 if (key === name) { 264 return decodeURIComponent(value); 265 } 266 } 267 return null; 268 } 269 270 271 window.userStatus = getUserStatusCookieValue('access_status_gbn'); 272 273</script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="4664-hot"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4664-hot"></script>
273<script type="application/json" data-abtest-name="test" data-abtest-value="vod-npaw"></script>
273<script type="application/json" data-abtest-name="v_test" data-abtest-value="vod-npaw"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="vod-inder"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="vod-inder"></script>
273<script type="application/json" data-abtest-name="test" data-abtest-value="14"></script>
273<script type="application/json" data-abtest-name="v_test" data-abtest-value="14"></script>
273<meta name="robots" content="max-image-preview:large"/><link fetchpriority="high" rel="preload" href="" as="image"/>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="5028"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5028"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="recurly-master"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="recurly-master"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="5031"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5031"></script>
273<script type="application/json" data-abtest-name="GBN" data-abtest-value="1814"></script>
273<script type="application/json" data-abtest-name="v_GBN" data-abtest-value="1814"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="4417"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4417"></script>
273<link rel="manifest" href="/manifest.json"/>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="4848-inder"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4848-inder"></script>
273<script type="application/json" data-abtest-name="gbn" data-abtest-value="2134dropped"></script>
273<script type="application/json" data-abtest-name="v_gbn" data-abtest-value="2134dropped"></script>
273<script type="application/json" data-abtest-name="gbn" data-abtest-value="2079"></script>
273<script type="application/json" data-abtest-name="v_gbn" data-abtest-value="2079"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="myacclinkfix"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="myacclinkfix"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="wc"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="wc"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="4982"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4982"></script>
273<script type="application/json" data-abtest-name="gbnold" data-abtest-value="2134old"></script>
273<script type="application/json" data-abtest-name="v_gbnold" data-abtest-value="2134old"></script>
273<script type="application/json" data-abtest-name="gbnid" data-abtest-value="100"></script>
273<script type="application/json" data-abtest-name="v_gbnid" data-abtest-value="100"></script>
273<script type="application/json" data-abtest-name="gbn" data-abtest-value="2046"></script>
273<script type="application/json" data-abtest-name="v_gbn" data-abtest-value="2046"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="2853"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="2853"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="5041-old"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5041-old"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="5041"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="5041"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="4627"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4627"></script>
273<script type="application/json" data-abtest-name="dp" data-abtest-value="4732-v1"></script>
273<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4732-v1"></script>
273<script> 274 window.dataLayer = window.dataLayer || [];var contentType = "article";contentType = "article";let displayMode = ' '; 275 276if (window.matchMedia('(display-mode: standalone)').matches) { 277 displayMode = 'pwa'; 278} else { 279 displayMode = 'web'; 280} 281 282console.log('display mode - ', `"${displayMode}"`);window.dataLayer.push({ 283 "cd1": "09", 284 "cd2": "09", 285 "cd9": "money", 286 "cd10": "article", 287 "cd11": displayMode, 288 "cd12": "2677966747", 289 "cd13": "popular ice cream franchise 'no longer active' as all locations close for good", 290 "cd14": "patrick o'donnell", 291 "cd15": "2026-09-30", 292 "cd16": "15:55", 293 "cd17": "2026-09-30", 294 "cd18": "money|economy|article|homepage top20|content type|store closures|don't miss - articles", 295 "cd19": document.referrer.split("/")[2]||"not set", 296 "cd23": "not set", 297 "cd30": window.gbnConfig.dataLayer.cd30, 298 "cd31": userStatus === null ? "" : userStatus, 299 'cd35': window.gbnConfig.dataLayer.cd35, 300 'cd36': window.gbnConfig.dataLayer.cd36, 301 'cd37': "post discovery layout", 302 'cd40': false, 303 'cd50': "money,economy,article,homepage top20,content type,store closures,don't miss - articles" 304}) 305</script>
305<!-- User Code --><!-- Google Tag Manager -->
305<script> 306 307 308 //MOVED TO delayedCmpScript shared element 309 310 311 312 313 // window.runWhenConsentIsReady(() => { 314 // console.log('Consent is ready, loading GTM Primary...'); 315 // (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 316 // new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 317 // j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 318 // 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 319 // })(window,document,'script','dataLayer','GTM-MFGM96D7'); 320 321 // console.log('Consent is ready, injecting GTM Primary iframe'); 322 323 // const iframe = document.createElement('iframe'); 324 // iframe.src = "https://www.googletagmanager.com/ns.html?id=GTM-MFGM96D7"; 325 // iframe.height = "0"; 326 // iframe.width = "0"; 327 // iframe.style.display = "none"; 328 // iframe.style.visibility = "hidden"; 329 // document.body.appendChild(iframe); 330 331 332 // }); 333</script>
333<!-- End Google Tag Manager --><!-- Google Tag Manager (noscript) --><noscript><!-- <iframe 334 src="https://www.googletagmanager.com/ns.html?id=GTM-MFGM96D7" 335 height="0" 336 width="0" 337 style="display:none;visibility:hidden"></iframe> --></noscript><!-- End Google Tag Manager (noscript) --><!-- End User Code --><link rel="preload" href="https://www.gbnews.com/media-library/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy8zMzAyMTkwOS9vcmlnaW4ucG5nIiwiZXhwaXJlc19hdCI6MTY3Njk2OTY2Mn0.Zvn26EqsfixGMQPCZnuayrrW9mG_7kGjNuXRc3mRrBk/image.png?width=284&height=102" as="image"/><!-----post-------><link href="https://www.gbnews.com/money/store-closure-ice-cream-subzero" hreflang="en" rel="alternate"/><link href="https://www.gbnews.com/money/store-closure-ice-cream-subzero" hreflang="x-default" rel="alternate"/><!------------>
337<script type="application/json" data-abtest-name="FA" data-abtest-value="709"></script>
337<script type="application/json" data-abtest-name="v_FA" data-abtest-value="709"></script>
337<script type="application/json" data-abtest-name="v" data-abtest-value="RWK"></script>
337<script type="application/json" data-abtest-name="v_v" data-abtest-value="RWK"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="4384"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4384"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="3771-fix"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="3771-fix"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="likebtn"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="likebtn"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="3877"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="3877"></script>
337<script type="application/json" data-abtest-name="gbn" data-abtest-value="2199"></script>
337<script type="application/json" data-abtest-name="v_gbn" data-abtest-value="2199"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="3569"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="3569"></script>
337<script type="application/json" data-abtest-name="component" data-abtest-value="1"></script>
337<script type="application/json" data-abtest-name="v_component" data-abtest-value="1"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="marketing"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="marketing"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="newsletter"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="newsletter"></script>
337<script type="application/json" data-abtest-name="v" data-abtest-value="newkey"></script>
337<script type="application/json" data-abtest-name="v_v" data-abtest-value="newkey"></script>
337<script type="application/json" data-abtest-name="v" data-abtest-value="milostest"></script>
337<script type="application/json" data-abtest-name="v_v" data-abtest-value="milostest"></script>
337<script type="application/json" data-abtest-name="dp" data-abtest-value="4182"></script>
337<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4182"></script>
337<style class="rm-i-styles" id="custom-post-styles-2677966747"> 338</style>
338<script type="application/json" data-abtest-name="dp" data-abtest-value="4645"></script>
338<script type="application/json" data-abtest-name="v_dp" data-abtest-value="4645"></script>
338<script type="application/json" data-abtest-name="short" data-abtest-value="trend"></script>
338<script type="application/json" data-abtest-name="v_short" data-abtest-value="trend"></script>
338<script type="application/json" data-abtest-name="dp" data-abtest-value="trendingmod"></script>
338<script type="application/json" data-abtest-name="v_dp" data-abtest-value="trendingmod"></script>
338<script class="rm-i-script"> 339 340 (function() { 341 var cookie = 'rebelmouse_abtests='; 342 cookie += '; Max-Age=0'; 343 document.cookie = cookie + '; Path=/; SameSite=None; Secure'; 344})(); 345 346 </script>
346<!--[if IE]> 347
347<script type="text/javascript" src="/static/js-build/libs/html5shiv/html5shiv.js"></script>
347 348 <![endif]--></head><body class="logged-out-user section-money"><div id="fb-root"></div><div id="runner-root"></div><div id="curtain" class="curtain"></div><nav class="menu-global"><div class="main-menu-wrapper"><div class="menu-global__search-form hide-tablet-and-desktop"><form action="/search/"><button type="submit" class="menu-global__submit fa fa-search" value="" aria-label="Submit"></button><input name="q" class="menu-global__text-input" type="text" placeholder="Search..." aria-label="Search"/></form></div><div class="divider hide-tablet-and-desktop"></div><div class="divider"></div><ul id="main-menu" class="main-menu"></ul></div></nav><div class="all-content-wrapper"><div class="main v-sep"><div class="menu-overlay js-toggle" data-target="body" data-share-status-id="menu-toggle" data-toggle-class="menu-opened"></div>
348<script> 349 350 // GBN Wrapper 351 const loadAds = () => { 352 353 // Teal 354 const jBids = document.createElement('script'); 355 jBids.src = 'https://j.bids.ws/gbnews/gam'; 356 jBids.async = true; 357 document.head.appendChild(jBids); 358 359 // console.log('Consent is ready, loading Teal...'); 360 361 } 362 const loadGTM = () => { 363 //GTM Primary 364 // console.log('Consent is ready, loading GTM Primary...');
vendor: 487 bytes, lines 364-372
364 365 (function (w, d, s, l, i) { 366 w[l] = w[l] || []; w[l].push({ 367 'gtm.start': 368 new Date().getTime(), event: 'gtm.js' 369 }); var f = d.getElementsByTagName(s)[0], 370 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 371 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 372 })(window, document, 'script', 'dataLayer', '
372GTM-MFGM96D7
vendor: 13 bytes, lines 372-374
372'); 373 374
374// console.log('Consent is ready, injecting GTM Primary iframe'); 375 376 const iframe = document.createElement('iframe'); 377 iframe.src = "https://www.googletagmanager.com/ns.html?id=GTM-MFGM96D7"; 378 iframe.height = "0"; 379 iframe.width = "0"; 380 iframe.style.display = "none"; 381 iframe.style.visibility = "hidden"; 382 document.body.appendChild(iframe); 383 384 //GTM Secondary 385 // console.log('Consent is ready, loading GTM Secondary...');
vendor: 487 bytes, lines 385-393
385 386 (function (w, d, s, l, i) { 387 w[l] = w[l] || []; w[l].push({ 388 'gtm.start': 389 new Date().getTime(), event: 'gtm.js' 390 }); var f = d.getElementsByTagName(s)[0], 391 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 392 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 393 })(window, document, 'script', 'dataLayer', '
393GTM-PCG4W7Z
vendor: 13 bytes, lines 393-395
393'); 394 395
395// console.log('Consent is ready, injecting GTM secondary iframe'); 396 397 const iframeSec = document.createElement('iframe'); 398 iframeSec.src = "https://www.googletagmanager.com/ns.html?id=GTM-PCG4W7Z"; 399 iframeSec.height = "0"; 400 iframeSec.width = "0"; 401 iframeSec.style.display = "none"; 402 iframeSec.style.visibility = "hidden"; 403 document.body.appendChild(iframeSec); 404 } 405 const loadCxense = () => { 406 // CXENSE 407 // console.log('Consent is ready, loading Cxense...'); 408 var cX = cX || {}; cX.callQueue = cX.callQueue || []; 409 cX.callQueue.push(['invoke', function() { 410 cX.getUserSegmentIds({persistedQueryId:'66b7f784a39745589e36e7fbc9d213f800d309f3', callback: function(response) { 411 window.cXsegmentIds = response; 412 }}); 413 }]); 414 415 (function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async'; 416 e.src='http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/cx.js'; 417 t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script'); 418 tp.push(["setCxenseSiteId", "5858448894304938394"]); 419 } 420 421 const loadTaboola = () => { 422 var PUBLISHER_ID = 'gbnews-website'; // Fill in your Publisher ID (an alphabetic string, as provided by Taboola): 423 var PAGE_TYPE = 'article'; // change to 'video' where appropriate 424 var LOADER_URL = '//cdn.taboola.com/libtrc/' + PUBLISHER_ID + '/loader.js'; 425 var LOADER_PRIVACY_URL = '//static.tblcontent.com/libtrc/' + PUBLISHER_ID + '/loader.privacy.js'; 426 var PIXEL_URL = ''; 427 var SCRIPT_ID = 'tb_loader_script'; 428 429 // A *global* property for queuing *all* Taboola commands on this page: 430 window._taboola = window._taboola || []; 431 var pageTypePush = {}; 432 if(location?.pathname == "/watch/live"){ 433 PAGE_TYPE = "video"; 434 PIXEL_URL = 'https://static.qovani.com/libtrc/tr5?type=pixel&publisher=' + 435 PUBLISHER_ID 436 } 437 pageTypePush[PAGE_TYPE] = 'auto'; 438 _taboola.push(pageTypePush); 439 440 // Fire tracking pixel 441 if(PIXEL_URL){ 442 new Image().src = PIXEL_URL; 443 } 444 var firstScript = document.getElementsByTagName('script')[0]; 445 function injectLoader(id, src, fallbackSrc) { 446 if (document.getElementById(id)) { 447 return; 448 } 449 450 var script = document.createElement('script'); 451 script.async = true; 452 script.src = src; 453 script.id = id; 454 455 if (fallbackSrc) { 456 script.onerror = function () { 457 script.remove(); 458 injectLoader(SCRIPT_ID + '_fb', fallbackSrc); 459 }; 460 } 461 462 firstScript.parentNode.insertBefore(script, firstScript); 463 } 464 465 injectLoader(SCRIPT_ID, LOADER_URL, LOADER_PRIVACY_URL); 466 467 if (window.performance && typeof window.performance.mark === 'function') { 468 window.performance.mark('tbl_ic'); 469 } 470 }; 471 472 const loadLiveramp = () => { 473 // console.log("loadLiveramp function has been called"); 474 475 // Create preload link 476 const preload = document.createElement("link"); 477 preload.rel = "preload"; 478 preload.href = "https://launchpad.privacymanager.io/latest/launchpad.bundle.js"; 479 preload.as = "script"; 480 document.head.appendChild(preload); 481 482 // Create script tag 483 const script = document.createElement("script"); 484 script.src = "https://launchpad-wrapper.privacymanager.io/d2917174-06d1-4538-afd7-ffac883147d8/launchpad-liveramp.js"; 485 script.async = true; 486 script.defer = true; 487 488 document.head.appendChild(script); 489 }; 490 491 const requestPushwooshNotificationPopup = () => { 492 var Pushwoosh = window.Pushwoosh || []; 493 494 function requestNotificationPermission() { 495 Pushwoosh.push(['init', { 496 serviceWorkerUrl: 'https://www.gbnews.com/sw.js', 497 logLevel: 'error', 498 applicationCode: 'AB023-DEB30', 499 safariWebsitePushID: 'web.com.gbnews', 500 defaultNotificationTitle: 'GB News', 501 defaultNotificationImage: 'https://assets.rbl.ms/34215656/origin.jpg', 502 autoSubscribe: false, 503 subscribeWidget: { 504 enable: false, 505 }, 506 subscribePopup: { 507 enable: true, 508 text: '<b>GB News</b><br><br>Get free breaking news alerts?', 509 askLaterButtonText: 'Maybe later', 510 confirmSubscriptionButtonText: 'Sign up now!', 511 iconUrl: 'https://assets.rbl.ms/34215656/origin.jpg', 512 delay: 2, 513 retryOffset: 604800, 514 overlay: true, 515 position: 'top', 516 bgColor: '#fff', 517 borderColor: '#0032aa', 518 boxShadow: '0 3px 6px rgba(0,0,0,0.16)', 519 textColor: '#0032AA', 520 textSize: 'inherit', 521 fontFamily: 'inherit', 522 subscribeBtnBgColor: '#0032aa', 523 subscribeBtnTextColor: '#fff', 524 askLaterBtnBgColor: '#fff', 525 askLaterBtnTextColor: '#0032aa', 526 theme: 'material', 527 iconAlt: "gbn image", 528 }, 529 }]); 530 531 // Analytics 532 Pushwoosh.push(function(api) { 533 api.setTags({ 534 'Piano Visitor ID': pa.getVisitorId(), 535 }); 536 }); 537 538 539 Pushwoosh.push(['onLoad', function(api) { 540 Pushwoosh.addEventHandler('receive-push', function(payload) { 541 // Fires when push is received while the user is on the site (foreground only). 542 // Use for custom analytics, e.g. a Piano event. 543 console.log('receive-push', payload.notification); 544 }); 545 }]); 546 547 } 548 requestNotificationPermission(); 549 }; 550 551 552 const optimaScripts = () => { 553 const exclusions = ['/support', '/gifting', '/donate', '/free-trial', '/redeem-gift']; 554 555 if (exclusions.includes(window.location.pathname)) { 556 return; 557 } 558 559 var n = "d544c459546f9523d86243fc"; 560 var r = "servr1,srvropt,servropt".split(","); 561 562 function loadNext() { 563 var c, o; 564 565 if (r.length) { 566 c = Math.floor(Math.random() * r.length); 567 o = document.createElement("script"); 568 569 o.dataset.moa_id = n; 570 o.src = 571 "https://" + 572 r.splice(c, 1)[0] + 573 ".com/p.js?uid=" + 574 n + 575 "&ref=" + 576 encodeURIComponent(location.href.toLowerCase()); 577 578 o.onerror = function () { 579 try { 580 o.remove(); 581 } catch (e) {} 582 loadNext(); 583 }; 584 document.body.appendChild(o); 585 } 586 } 587 loadNext(); 588 } 589 // const optimaScripts = () => { 590 // var n = "d544c459546f9523d86243fc"; 591 // var r = "servr1,srvropt,servropt".split(","); 592 593 // function loadNext() { 594 // var c, o; 595 596 // if (r.length) { 597 // c = Math.floor(Math.random() * r.length); 598 // o = document.createElement("script"); 599 600 // o.dataset.moa_id = n; 601 // o.src = 602 // "https://" + 603 // r.splice(c, 1)[0] + 604 // ".com/p.js?uid=" + 605 // n + 606 // "&ref=" + 607 // encodeURIComponent(location.href.toLowerCase()); 608 609 // o.onerror = function () { 610 // try { 611 // o.remove(); 612 // } catch (e) {} 613 // loadNext(); 614 // }; 615 616 // document.body.appendChild(o); 617 // } 618 // } 619 // loadNext(); 620 // } 621 622 623 const loadMiletech = () => { 624 const script = document.createElement('script'); 625 626 script.type = 'text/javascript';
627 script.src = 'https://edge.atmtd.com/pub/WAEW6VIT/afihbs.js'; 628 script.async = true; 629 630 script.onload = () => { 631 console.log("Miletech loaded"); 632 633 initFloorsConfig(); 634 loadMiletechAnalytics(); 635 }; 636 637 document.head.appendChild(script); 638 639 }; 640 641 const loadMiletechAnalytics = () => { 642 tlpbjs.enableAnalytics({ 643 provider: 'automatadAnalytics', 644 options: { 645 publisherID: '', 646 siteID: '' 647 } 648 }); 649 } 650 651 function initFloorsConfig() { 652 (function () { 653 var pbjs = window["tlpbjs"] || {}; 654 655 pbjs.que = pbjs.que || []; 656 657 var adUnitsInPrebid = {}; 658 659 pbjs.que.push(function () { 660 pbjs.onEvent("auctionInit", function (data) { 661 for (let i = 0; i < data.adUnits.length; i++) { 662 const adUnitCode = data.adUnits[i].code; 663 664 const refreshCount = 665 adUnitsInPrebid[adUnitCode] !== undefined 666 ? adUnitsInPrebid[adUnitCode].refreshCount + 1 667 : 0; 668 669 adUnitsInPrebid[adUnitCode] = { refreshCount }; 670 } 671 }); 672 673 var config = { 674 auctionDelay: 600, 675 endpoint: { 676 url: "https://floors.atmtd.com/floors.json?pubID=WAEW6VIT", 677 }, 678 default: 0, 679 additionalSchemaFields: { 680 mq: function () { 681 var n = new Date().getUTCMinutes(); 682 return n <= 15 683 ? "mq-1" 684 : n <= 30 685 ? "mq-2" 686 : n <= 45 687 ? "mq-3" 688 : "mq-4"; 689 }, 690 691 ssp: function (bidRequest) { 692 return bidRequest.bidderCode || bidRequest.bidder; 693 }, 694 695 adUnitCode: function (bidRequest) { 696 return bidRequest.adUnitCode; 697 }, 698 699 st: function () { 700 let st; 701 702 try { 703 let sessionData = JSON.parse( 704 window.localStorage.getItem("__atmtdAfihbsSession") 705 ); 706 707 if (sessionData) { 708 st = Date.now() - sessionData.sessionStartedAt; 709 } else { 710 st = 0; 711 } 712 } catch (error) { 713 st = 0; 714 } 715 716 const thresholds = [ 717 30, 60, 120, 180, 240, 718 300, 360, 600, 1200, 1800, 719 ]; 720 721 const seconds = st / 1000; 722 723 return `bin_${ 724 thresholds.findIndex((t) => seconds <= t) + 1 || 11 725 }`; 726 }, 727 728 pv: function () { 729 const val = 730 window.localStorage && 731 window.localStorage.getItem("__atmtd_analyticsSession"); 732 733 let sessionPageViewCount = 1; 734 735 if (val) { 736 try { 737 const sessionData = JSON.parse(val); 738 739 if (sessionData && sessionData.pageViewCount) { 740 sessionPageViewCount = parseInt( 741 sessionData.pageViewCount 742 ); 743 } 744 } catch (e) { 745 console.error("Error parsing session data:", e); 746 } 747 } 748 749 return `pv-${sessionPageViewCount}`; 750 }, 751 752 gpid: function (bidRequest) { 753 if ( 754 bidRequest.ortb2Imp && 755 bidRequest.ortb2Imp.ext && 756 bidRequest.ortb2Imp.ext.gpid 757 ) { 758 return bidRequest.ortb2Imp.ext.gpid; 759 } else if ( 760 bidRequest.ortb2Imp && 761 bidRequest.ortb2Imp.ext && 762 bidRequest.ortb2Imp.ext.data && 763 bidRequest.ortb2Imp.ext.data.pbadslot 764 ) { 765 return bidRequest.ortb2Imp.ext.data.pbadslot; 766 } else { 767 return "*"; 768 } 769 }, 770 771 adType: function (bidRequest) { 772 return adUnitsInPrebid[bidRequest.adUnitCode] && 773 adUnitsInPrebid[bidRequest.adUnitCode].refreshCount < 5 774 ? `ao-${adUnitsInPrebid[bidRequest.adUnitCode].refreshCount}` 775 : "*"; 776 }, 777 778 uid: function (b) { 779 if ( 780 window.__mileFloorsUIDSchemaKey && 781 typeof window.__mileFloorsUIDSchemaKey === "function" 782 ) { 783 return window.__mileFloorsUIDSchemaKey(b); 784 } else { 785 return b.userId && b.userId["uid2"] 786 ? "idd" 787 : "anon"; 788 } 789 }, 790 }, 791 }; 792 793 pbjs.setConfig({ floors: config }); 794 }); 795 })(); 796 } 797 798 799 800 window.runWhenConsentIsReady(() => { 801 802 __tcfapi('getTCData', 2, function (tcData, success) { 803 if (success) { 804 if (window.location.href.includes("/app-term-")) { 805 return; 806 } 807 808 const notNeeded = tcData.gdprApplies === false; 809 const hasConsentData = tcData?.purpose?.consents && Object.keys(tcData.purpose.consents).length > 0; 810 const hasAcceptedConsents = hasConsentData && Object.values(tcData.purpose.consents).some(consent => consent === true); 811 812 813 if (notNeeded || hasAcceptedConsents) { 814 // console.log("Consent not required OR user accepted some consents - loading scripts"); 815 816 loadAds(); 817 818 loadGTM(); 819 820 loadCxense(); 821 822 loadTaboola(); 823 824 loadLiveramp(); 825 826 requestPushwooshNotificationPopup(); 827 828 loadMiletech(); 829 830 optimaScripts(); 831 832 833 } else if (hasConsentData && !hasAcceptedConsents) { 834 // console.log("User has rejected all consents - NOT loading tracking scripts"); 835 } else if (hasAcceptedConsents) { 836 837 loadAds(); 838 loadGTM(); 839 loadCxense(); 840 loadTaboola(); 841 loadLiveramp(); 842 requestPushwooshNotificationPopup(); 843 loadMiletech(); 844 optimaScripts(); 845 846 } else if (notNeeded) { 847 loadAds(); 848 loadTaboola(); 849 loadGTM(); 850 loadLiveramp(); 851 requestPushwooshNotificationPopup(); 852 loadMiletech(); 853 optimaScripts(); 854 setTimeout(() => { 855 856 loadCxense(); 857 }, 2000) 858 859 } else { 860 // console.log("No consent data available yet - waiting for user interaction"); 861 } 862 } else { 863 // console.log('Failed to get TC data'); 864 } 865 }); 866}); 867</script>
867<!-- User Code --><div class="piano-tracking-pixel"></div><!-- End User Code -->
867<script> 868 869 870 871 window.addEventListener('primisPlayerInit', function (e) { 872 console.log("event", e) 873 874 window.article_id = "2677966747" 875 console.log("window obj", window.article_id); 876 console.log("playerApiId", e.detail.playerApiId); 877 console.log("type playerApiId", typeof e.detail.playerApiId); 878 if (e.detail.playerApiId == "GB_News_Primis" || e.detail.playerApiId == "122088" || e.detail.playerApiId == "122134") 879 { 880 window.primisPlayer = e.detail; 881 console.log("PP", primisPlayer) 882 primisPlayer.addEventListener('videoStart', function (val){ 883 window.video_title = val.title || "Unknown Video"; 884 window.video_duration = val.duration || 0; 885 dataLayer.push({ 886 "event": "primis_player", 887 "data": { 888 "event": "videoStart", 889 "article_id": article_id, 890 "video_title": video_title, 891 "video_duration": video_duration, 892 } 893 }) 894 }); 895 primisPlayer.addEventListener('videoEnd', function (){ 896 dataLayer.push({ 897 "event": "primis_player", 898 "data": { 899 "event": "videoEnd", 900 "article_id": article_id, 901 "video_title": video_title, 902 "video_duration": video_duration, 903 } 904 }) 905 }); 906 907 primisPlayer.addEventListener('videoSkip', function(){ 908 dataLayer.push({ 909 "event": "primis_player", 910 "data": { 911 "event": "videoSkip", 912 "article_id": article_id, 913 "video_title": video_title, 914 "video_duration": video_duration, 915 } 916 }) 917 }); 918 919 primisPlayer.addEventListener('videoClickthrough', function(){ 920 dataLayer.push({ 921 "event": "primis_player", 922 "data": { 923 "event": "videoClickthrough", 924 "article_id": article_id, 925 "video_title": video_title, 926 "video_duration": video_duration, 927 } 928 }) 929 }); 930 931 primisPlayer.addEventListener('videoPause', function(){ 932 dataLayer.push({ 933 "event": "primis_player", 934 "data": { 935 "event": "videoPause", 936 "article_id": article_id, 937 "video_title": video_title, 938 "video_duration": video_duration, 939 } 940 }) 941 }); 942 primisPlayer.addEventListener('videoAutoSkipped', function(){ 943 dataLayer.push({ 944 "event": "primis_player", 945 "data": { 946 "event": "videoAutoSkipped", 947 "article_id": article_id, 948 "video_title": video_title, 949 "video_duration": video_duration, 950 } 951 }) 952 }); 953 primisPlayer.addEventListener('videoClickSeekForward', function(){ 954 dataLayer.push({ 955 "event": "primis_player", 956 "data": { 957 "event": "videoClickSeekForward", 958 "article_id": article_id, 959 "video_title": video_title, 960 "video_duration": video_duration, 961 } 962 }) 963 }); 964 primisPlayer.addEventListener('videoClickSeekBack', function(){ 965 dataLayer.push({ 966 "event": "primis_player", 967 "data": { 968 "event": "videoClickSeekBack", 969 "article_id": article_id, 970 "video_title": video_title, 971 "video_duration": video_duration, 972 } 973 }) 974 }); 975 976 // ads 977 primisPlayer.addEventListener('adStarted', function (val){ 978 window.ad_details = val; 979 dataLayer.push({ 980 "event": "primis_player", 981 "data": { 982 "event": "videoAdStarted", 983 "article_id": article_id, 984 "video_title": video_title, 985 "video_duration": video_duration, 986 "ad_details": ad_details 987 } 988 }) 989 }); 990 primisPlayer.addEventListener('adCompleted', function (){ 991 dataLayer.push({ 992 "event": "primis_player", 993 "data": { 994 "event": "adCompleted", 995 "article_id": article_id, 996 "video_title": video_title, 997 "video_duration": video_duration, 998 "ad_details": ad_details 999 } 1000 }) 1001 }); 1002 primisPlayer.addEventListener('adFirstQuartile', function (){ 1003 dataLayer.push({ 1004 "event": "primis_player", 1005 "data": { 1006 "event": "adFirstQuartile", 1007 "article_id": article_id, 1008 "video_title": video_title, 1009 "video_duration": video_duration, 1010 "ad_details": ad_details 1011 } 1012 }) 1013 }); 1014 primisPlayer.addEventListener('adMidQuartile', function (){ 1015 dataLayer.push({ 1016 "event": "primis_player", 1017 "data": { 1018 "event": "adMidQuartile", 1019 "article_id": article_id, 1020 "video_title": video_title, 1021 "video_duration": video_duration, 1022 "ad_details": ad_details 1023 } 1024 }) 1025 }); 1026 primisPlayer.addEventListener('adThirdQuartile', function (){ 1027 dataLayer.push({ 1028 "event": "primis_player", 1029 "data": { 1030 "event": "adThirdQuartile", 1031 "article_id": article_id, 1032 "video_title": video_title, 1033 "video_duration": video_duration, 1034 "ad_details": ad_details 1035 } 1036 }) 1037 }); 1038 primisPlayer.addEventListener('adClickthrough', function (){ 1039 dataLayer.push({ 1040 "event": "primis_player", 1041 "data": { 1042 "event": "adClickthrough", 1043 "article_id": article_id, 1044 "video_title": video_title, 1045 "video_duration": video_duration, 1046 "ad_details": ad_details 1047 } 1048 }) 1049 }); 1050 primisPlayer.addEventListener('adPause', function (){ 1051 dataLayer.push({ 1052 "event": "primis_player", 1053 "data": { 1054 "event": "adPause", 1055 "article_id": article_id, 1056 "video_title": video_title, 1057 "video_duration": video_duration, 1058 "ad_details": ad_details 1059 } 1060 }) 1061 }); 1062 primisPlayer.addEventListener('adPlay', function (){ 1063 dataLayer.push({ 1064 "event": "primis_player", 1065 "data": { 1066 "event": "adPlay", 1067 "article_id": article_id, 1068 "video_title": video_title, 1069 "video_duration": video_duration, 1070 "ad_details": ad_details 1071 } 1072 }) 1073 }); 1074 primisPlayer.addEventListener('adSkip', function (){ 1075 dataLayer.push({ 1076 "event": "primis_player", 1077 "data": { 1078 "event": "adSkip", 1079 "article_id": article_id, 1080 "video_title": video_title, 1081 "video_duration": video_duration, 1082 "ad_details": ad_details 1083 } 1084 }) 1085 }); 1086 1087 } 1088 1089 }); 1090</script>
1090<style> 1091/* moravacCaption */ 1092 1093 </style><!-- User Code -->
1093<script> 1094 // gbn id status check - source of truth 1095 1096 // fast path: gbnid_id in localStorage tells us immediately if user is logged in at all 1097 // instant, works even before the gbnID script has loaded 1098 // does not cover edge cases (blocked user, expired session) - accurate path below fixes that 1099 function isGbnIdLoggedInFast() { 1100 try { 1101 return !!window.localStorage.getItem('gbnid_id'); 1102 } catch (err) { 1103 return false; 1104 } 1105 } 1106 1107 // accurate path: init/onLogin queue pattern, same idea as Piano's tp.push 1108 // works even if the real gbnID script hasn't loaded yet - the call gets queued 1109 // onLogin fires once the session is confirmed, no polling needed 1110 function waitForGbnIdUser(timeout = 10000) { 1111 return new Promise((resolve, reject) => { 1112 const timeoutId = setTimeout(() => { 1113 reject(new Error('gbnID onLogin timed out')); 1114 }, timeout); 1115 1116 window.gbnID = window.gbnID || []; 1117 window.gbnID.push([ 1118 'init', 1119 function () { 1120 window.gbnID.onLogin(function () { 1121 clearTimeout(timeoutId); 1122 resolve(window.gbnID._currentUser); 1123 }); 1124 }, 1125 ]); 1126 }); 1127 } 1128 1129 // status from a fully-loaded currentUser object 1130 function getGbnIdStatus(currentUser) { 1131 if (!currentUser) { 1132 return 'anonymous'; 1133 } 1134 1135 const memberships = currentUser.memberships || []; 1136 return memberships.length > 0 ? 'member' : 'registered'; 1137 } 1138 1139 function setWindowObj(status) { 1140 window.userStatus = status; 1141 console.log(`kam userStatus: ${status}`); 1142 1143 // notify other scripts e.g. ad slot logic that status is ready 1144 document.dispatchEvent(new CustomEvent('gbnUserStatusReady', { detail: { status } })); 1145 } 1146 1147 function setCookieMemStatus(status) { 1148 const COOKIE = 'access_status_gbn'; 1149 document.cookie = COOKIE + `=${status}; path=/; max-age=` + 30 * 24 * 60 * 60 + `;`; 1150 } 1151 1152 function updateSubscribeLink(status) { 1153 const link = document.querySelector('a.subscribe-link'); 1154 if (!link) return; 1155 1156 if (status === 'member') { 1157 link.textContent = 'Membership'; 1158 link.href = 'https://www.gbnews.com/membership/'; 1159 link.setAttribute('data-og-href', 'https://www.gbnews.com/membership/'); 1160 } else { 1161 link.textContent = 'Support'; 1162 link.href = 'https://www.gbnews.com/support?ico=header_support_button'; 1163 link.setAttribute('data-og-href', 'https://www.gbnews.com/support?ico=header_support_button'); 1164 } 1165 } 1166 1167 // start logic 1168 (async () => { 1169 // fast path - gbnid_id not found, user is not logged in, no need to wait for anything 1170 if (!isGbnIdLoggedInFast()) { 1171 console.log('User is NOT logged in (gbnid_id not found)'); 1172 setWindowObj('anonymous'); 1173 setCookieMemStatus('anonymous'); 1174 return; 1175 } 1176 1177 // user is logged in - get the full status via the accurate (event-based) path 1178 try { 1179 const currentUser = await waitForGbnIdUser(); 1180 const gbnIdStatus = getGbnIdStatus(currentUser); 1181 1182 console.log(`User status (GBN ID): ${gbnIdStatus}`); 1183 setWindowObj(gbnIdStatus); 1184 setCookieMemStatus(gbnIdStatus); 1185 updateSubscribeLink(gbnIdStatus); 1186 return; 1187 } catch (err) { 1188 console.log('gbnID onLogin failed, falling back to piano', err.message); 1189 } 1190 })(); 1191</script>
1191<!-- End User Code --><span class="viewport-css-anchor"></span><!-- User Code --><div class="sky--ad__container"></div><!-- End User Code -->
1191<script> 1192 1193 let accessStatusFromWindowObj11 = window.userStatus; 1194 1195 1196 if (accessStatusFromWindowObj11 !== 'member') { 1197 const adSlotHtmlSkyLeft = `<div class="sticky-wrapper"><div class="stiky_sky left"><ad-slot position="sky_left_top" no-watermark justify="right"></ad-slot></div></div>`; 1198 const adSlotHtmlSkyRight = `<div class="sticky-wrapper"><div class="stiky_sky right"><ad-slot position="sky_right_top" no-watermark justify="left"></ad-slot></div></div>`; 1199 const targetParentSky = document.querySelector('.sky--ad__container'); 1200 if (targetParentSky) { 1201 targetParentSky.insertAdjacentHTML('beforeend', adSlotHtmlSkyLeft); 1202 targetParentSky.insertAdjacentHTML('beforeend', adSlotHtmlSkyRight); 1203 1204 } 1205 } else { 1206 // console.log("Inder 3 - skys not showing because user is member"); 1207 } 1208 1209 </script>
1209<div class="sticky-banner-wrapper" id="sTop_Bar_0_0_22_0_0_0_0_18_1_3">
1209<script> 1210 1211 1212 1213 // 1214 if (window.userStatus === 'member') { 1215 const style = document.createElement('style'); 1216 style.textContent = ` 1217 .sticky-banner-wrapper { 1218 min-height: 0; 1219 display: none; 1220 } 1221 .sticky-banner-wrapper::before { display: none; } 1222 `; 1223 document.head.appendChild(style); 1224 } else { 1225 document.addEventListener('DOMContentLoaded', function() { 1226 const targetParentBillboard = document.querySelector('.sticky-banner-wrapper'); 1227 if (targetParentBillboard) { 1228 const adBillboard = `<div class="ad--billboard"><ad-slot position="billboard" align="center"></ad-slot></div>`; 1229 targetParentBillboard.insertAdjacentHTML('beforeend', adBillboard); 1230 } 1231 }); 1232 } 1233 1234 1235 1236</script>
1236</div><div class="" id="sElement_Topbar_HTML_0_0_6_0_0_0_0_0"></div><div class="topbar" id="sElement_Topbar_HTML_0_0_6_0_0_0_0_2_1_0"><div class="site-logo" id="sElement_Topbar_HTML_0_0_6_0_0_0_0_2_1_0_0"><a href="/?ico=header_logo_button"><img src="https://assets.rbl.ms/61228189/origin.png" title="GBN Britain's News Channel" alt="logo"/></a></div><div class="topbar--right" id="sElement_Topbar_HTML_0_0_6_0_0_0_0_2_1_0_1"><!-- User Code --><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="crossorigin"/><link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet"/><a id="support" class="subscribe-link" href="/support?ico=header_support_button">Support</a><!-- End User Code --><div class="login-link-wrapper" aria-label="login-link-wrapper" id="sElement_Topbar_HTML_0_0_6_0_0_0_0_2_1_0_1_2"><!-- User Code --><div class="loyalty-wrapper"><a class="loyalty-button" aria-label="points" href="#" id="loyalty-button"></a></div><!-- End User Code --><!-- User Code --><a class="piano-login-link disabled" aria-label="My Account" href="/my-account" id="login-link-text">Login</a><!-- End User Code --><!-- User Code --><a class="login-link piano-login-link disabled" aria-label="My Account" href="/my-account" id="accountToggleLink"></a><!-- Menu dropdown --><div class="my-account-wrapper" id="myAccountMenu" hidden="hidden"><!-- Profile --><div class="my-account-nav-item"><a class="color-inherit" href="/my-account" aria-label="Profile"><span class="menu-icon icon-profile"></span><span>Profile</span></a></div><!-- Loyalty Points --><div class="my-account-nav-item"><a class="color-inherit" href="https://loyaltypoints.gbnews.com/" aria-label="GB Loyalty Points"><span class="menu-icon icon-loyalty-points"></span><span>GB Loyalty Points</span></a></div><!-- Competitions --><div class="my-account-nav-item"><a class="color-inherit" href="https://loyaltypoints.gbnews.com/competitions" aria-label="Competitions"><span class="menu-icon icon-competitions"></span><span>Competitions</span></a></div><!-- Leaderboards --><div class="my-account-nav-item"><a class="color-inherit" href="https://loyaltypoints.gbnews.com/leaderboards" aria-label="Leaderboards"><span class="menu-icon icon-leaderboards"></span><span>Leaderboards</span></a></div><!-- Newsletter --><div class="my-account-nav-item"><a class="color-inherit" href="/my-account?tab=newsletters" aria-label="Newsletters"><span class="menu-icon icon-newsletters"></span><span>Newsletters</span></a></div><!-- Subscription --><div class="my-account-nav-item"><a class="color-inherit" href="/my-account?tab=subscriptions" aria-label="Subscription"><span class="menu-icon icon-subscription"></span><span>Subscription</span></a></div><!-- Wallet --><div class="my-account-nav-item"><a class="color-inherit" href="/my-account?tab=wallet" aria-label="Wallet"><span class="menu-icon icon-wallet"></span><span>Wallet</span></a></div><!-- Notifications --><div class="my-account-nav-item"><a href="#" class="color-inherit" id="viafoura-bell-link" aria-label="Notifications"><span class="menu-icon icon-notification"></span><span>Notifications</span></a></div><!-- Contact Us --><div class="my-account-nav-item"><a class="color-inherit" href="/about-us/contact-us" aria-label="Contact Us"><span class="menu-icon icon-contact"></span><span>Contact Us</span></a></div><!-- Get Help --><div class="my-account-nav-item"><a class="color-inherit" href="/help" aria-label="help"><span class="menu-icon icon-help"></span><span>Get Help</span></a></div><!-- Log out --><div class="my-account-nav-item"><a class="color-inherit" href="#" aria-label="Log Out"><span class="menu-icon icon-logout"></span><span>Log Out</span></a></div></div><div class="overlay" id="overlay"></div><!-- End User Code --></div></div></div><div class="navbar" id="sElement_Topbar_HTML_0_0_6_0_0_0_0_3"><div class="nav" id="sNavigation_Items_0_0_12_0_0_0_0_0"><!-- User Code --><div class="sticky-left sticky-left-click"><button class="menu__toggle" aria-label="open menu"><span class="close__menu"><img class="hamburger-close-icon" src="https://www.gbnews.com/media-library/origin.png?id=61104480" alt="menu-toggle"/></span><img class="hamburger-open-icon" src="https://www.gbnews.com/media-library/logo.png?id=61104328" alt="menu-toggle"/></button><div class="vertical-line"></div><a class="nav--item live--channel__active watch-live-button live-cta__button" href="/watch/live?ico=header_live_button" title="Watch Live Now"><img class="watch-live-icon" src="https://www.gbnews.com/media-library/logo.png?id=61109318" alt="live-player
1236-icon"/></a><div class="vertical-line"></div></div><!-- End User Code --><!-- User Code --><!-- <a 1237 class="nav--item home--channel__active watch-live-button live-cta__button" 1238 href="/watch/live?ico=header_live_button" 1239 title="Watch Live Now"> 1240 <img class="watch-live-icon" src="https://assets.rbl.ms/61079499/origin.png" alt="live-player-icon" /> 1241</a> --><!-- End User Code --><div class="mb-edition-wrap"><a href="#" class="mb-edition-btn" id="mb-editionBtn" aria-haspopup="true" aria-expanded="false"><span class="mb-edition-flag" id="mb-currentFlag"></span><span class="mb-edition-label"></span></a><button class="sub_nav_toggle"></button><div class="mb-edition-menu" id="mb-editionMenu" role="listbox"><a class="mb-edition-option" id="mb-opt-us" role="option" data-edition="us" data-label="US edition" data-short="US" href="/us/"><svg width="30" height="20" viewbox="0 0 30 20" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_13558_36419)"><path d="M0 0H30V20H0V0Z" fill="white"></path><path d="M0 0H30V1.53801H0V0ZM0 3.07602H30V4.61404H0V3.07602ZM0 6.15205H30V7.69006H0V6.15205ZM0 9.22807H30V10.7661H0V9.22807ZM0 12.3099H30V13.848H0V12.3099ZM0 15.386H30V16.924H0V15.386ZM0 18.462H30V20H0V18.462Z" fill="#D80027"></path><path d="M0 0H15V10.7661H0V0Z" fill="#2E52B2"></path><path d="M2.79441 8.12367L2.56049 7.37514L2.30318 8.12367H1.53125L2.15698 8.57397L1.92306 9.32251L2.56049 8.86052L3.18037 9.32251L2.94061 8.57397L3.57803 8.12367H2.79441ZM6.08681 8.12367L5.84704 7.37514L5.60143 8.12367H4.8295L5.45523 8.57397L5.22131 9.32251L5.84704 8.86052L6.47862 9.32251L6.2447 8.57397L6.87043 8.12367H6.08681ZM9.3909 8.12367L9.13944 7.37514L8.90552 8.12367H8.11605L8.75932 8.57397L8.51371 9.32251L9.13944 8.86052L9.78271 9.32251L9.5371 8.57397L10.1628 8.12367H9.3909ZM12.6774 8.12367L12.4435 7.37514L12.1979 8.12367H11.4201L12.0517 8.57397L11.8178 9.32251L12.4435 8.86052L13.0751 9.32251L12.8236 8.57397L13.4669 8.12367H12.6774ZM5.84704 4.40438L5.60143 5.15291H4.8295L5.45523 5.6149L5.22131 6.35175L5.84704 5.89561L6.47862 6.35175L6.2447 5.6149L6.87043 5.15291H6.08681L5.84704 4.40438ZM2.56049 4.40438L2.30318 5.15291H1.53125L2.15698 5.6149L1.92306 6.35175L2.56049 5.89561L3.18037 6.35175L2.94061 5.6149L3.57803 5.15291H2.79441L2.56049 4.40438ZM9.13944 4.40438L8.90552 5.15291H8.11605L8.75932 5.6149L8.51371 6.35175L9.13944 5.89561L9.78271 6.35175L9.5371 5.6149L10.1628 5.15291H9.3909L9.13944 4.40438ZM12.4435 4.40438L12.1979 5.15291H11.4201L12.0517 5.6149L11.8178 6.35175L12.4435 5.89561L13.0751 6.35175L12.8236 5.6149L13.4669 5.15291H12.6774L12.4435 4.40438ZM2.56049 1.44531L2.30318 2.18215H1.53125L2.15698 2.64414L1.92306 3.38683L2.56049 2.92484L3.18037 3.38683L2.94061 2.64414L3.57803 2.18215H2.79441L2.56049 1.44531ZM5.84704 1.44531L5.60143 2.18215H4.8295L5.45523 2.64414L5.22131 3.38683L5.84704 2.92484L6.47862 3.38683L6.2447 2.64414L6.87043 2.18215H6.08681L5.84704 1.44531ZM9.13944 1.44531L8.90552 2.18215H8.11605L8.75932 2.64414L8.51371 3.38683L9.13944 2.92484L9.78271 3.38683L9.5371 2.64414L10.1628 2.18215H9.3909L9.13944 1.44531ZM12.4435 1.44531L12.1979 2.18215H11.4201L12.0517 2.64414L11.8178 3.38683L12.4435 2.92484L13.0751 3.38683L12.8236 2.64414L13.4669 2.18215H12.6774L12.4435 1.44531Z" fill="white"></path></g><defs><clippath id="clip0_13558_36419"><rect width="30" height="20" fill="white"></rect></clippath></defs></svg><span class="mb-edition-label">US Edition</span></a><a class="mb-edition-option" id="mb-opt-uk" role="option" data-edition="uk" data-label="UK edition" data-short="UK" href="/"><svg width="30" height="20" viewbox="0 0 30 20" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_13558_36453)"><path d="M0 0H30V20.0002H0V0Z" fill="white"></path><path d="M16.875 0H13.125V8.12497H0V11.875H13.125V19.9999H16.875V11.875H30V8.12497H16.875V0Z" fill="#D80027"></path><path d="M23.0703 13.4785L29.997 17.3267V13.4785H23.0703ZM18.2578 13.4785L29.997 20.0002V18.1561L21.5774 13.4785H18.2578ZM26.87 20.0002L18.2578 15.2152V20.0002H26.87Z" fill="#0052B4"></path><path d="M18.2578 13.4785L29.997 20.0002V18.1561L21.5774 13.4785H18.2578Z" fill="white"></path><path d="M18.2578 13.4785L29.997 20.0002V18.1561L21.5774 13.4785H18.2578Z" fill="#D80027"></path><path d="M5.29342 13.4785L0 16.4193V13.4785H5.29342ZM11.7392 14.3079V20.0003H1.49361L11.7392 14.3079Z" fill="#0052B4"></path><path d="M8.41952 13.4785L0 18.1561V20.0002L11.7392 13.4785H8.41952Z" fill="#D80027"></path><path d="M6.92667 6.52173L0 2.67352V6.52173H6.92667ZM11.7392 6.52173L0 0V1.84418L8.41952 6.52173H11.7392ZM3.12692 0L11.7392 4.785V0H3.12692Z" fill="#0052B4"></path><path d="M11.7392 6.52173L0 0V1.84418L8.41952 6.52173H11.7392Z" fill="white"></path><path d="M11.7392 6.52173L0 0V1.84418L8.41952 6.52173H11.7392Z" fill="#D80027"></path><path d="M24.7035 6.52178L29.997 3.58096V6.52178H24.7035ZM18.2578 5.69245V0H28.5033L18.2578 5.69245Z" fill="#0052B4"></path><path d="M21.5774 6.52173L29.997 1.84418V0L18.2578 6.52173H21.5774Z" fill="#D80027"></path></g><defs><clippath id="clip0_13558_36453"><rect width="30" height="20" fill="white"></rect></clippath></defs></svg><span class="mb-edition-label">UK Edition</span></a></div></div><div class="nav--item home--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_8"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_8_0"><a class="color-inherit" href="/" target="" aria-label="Home">Home</a></div><div class="secondary--nav regular--secondary__nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_8_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_8_1_0"><a class="list__item" href="https://gbnews.shop/" target="_blank" rel="Shop" aria-label="Shop">GBN Shop</a><a class="list__item" href="/watch/live#comments" target="_self" rel="YourSay" aria-label="YourSay">YourSay</a><a class="list__item" href="/youdecide" target="_self" rel="YouDecide" aria-label="YouDecide">YouDecide</a><a class="list__item" href="/support" target="_self" rel="Support Us" aria-label="Support Us">Support Us</a><a class="list__item" href="/alerts" target="_self" rel="News Alerts" aria-label="News Alerts">News Alerts</a><a class="list__item" href="/latest" target="_self" aria-label="Latest">Latest</a><a class="list__item" href="/puzzles/" target="_self" aria-label="Puzzles">Puzzles</a>
1241<a class="list__item" href="/terms/competition-terms/" target="_self" aria-label="Win">Win</a><a class="list__item" href="/shows/gb-news-live-show-join-our-live-studio-audience" target="_self" aria-label="Tickets">Tickets</a></div></div></div><div class="nav--item news--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_9"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_9_0"><a class="color-inherit" href="/news/" target="" aria-label="News">News</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_9_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_9_1_0"><a class="list__item" href="/news/uk/" target="_self" aria-label="UK News">UK News</a><a class="list__item" href="/news/us/" target="_self" aria-label="US News">US News</a><a class="list__item" href="/news/world/" target="_self" aria-label="World News">World News</a><a class="list__item" href="/weather/" target="_self" aria-label="Weather">Weather</a><a class="list__item" href="/news/migrant-crisis/" target="_self" aria-label="Migrant Crisis">Migrant Crisis</a><a class="list__item" href="/news/cancel-culture/" target="_self" aria-label="Migrant Crisis">Cancel Culture</a><a class="list__item" href="/news/best-of-britain/" target="_self" aria-label="best-of-britain">Best of Britain</a><a class="list__item" href="/news/crime/" target="_self" aria-label="Crime">Crime</a><a class="list__item" href="/science/" target="_self" aria-label="Science">Science</a></div></div></div><div class="nav--item politics--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_10"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_10_0"><a class="color-inherit" href="/politics/" target="" aria-label="Politics">Politics</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_10_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_10_1_0"><a class="list__item" href="/politics/uk/" target="_self" aria-label="UK Politics">UK Politics</a><a class="list__item" href="/politics/uk/kemi-badenoch/" target="_self" aria-label="Kemi Badenoch">Kemi Badenoch</a><a class="list__item" href="/politics/uk/andy-burnham/" target="_self" aria-label="Andy Burnham">Andy Burnham</a><a class="list__item" href="/politics/uk/conservative-party/" target="_self" aria-label="Conservatives">Conservatives</a><a class="list__item" href="/politics/uk/labour-party/" target="_self" aria-label="Labour">Labour</a><a class="list__item" href="/politics/uk/snp/" target="_self" aria-label="SNP">SNP</a><a class="list__item" href="/politics/uk/reform-uk/" target="_self" aria-label="Reform UK">Reform UK</a><a class="list__item" href="/politics/uk/liberal-democrats/" target="_self" aria-label="Lib Dems">Lib Dems</a><a class="list__item" href="/politics/us/" target="_self" aria-label="US Politics">US Politics</a></div></div></div><div class="nav--item opinion--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_11"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_11_0"><a class="color-inherit" href="/opinion/" target="" aria-label="Opinion">Opinion</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_11_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_11_1_0"><a class="list__item" href="/presenters/nigel-farage/?opinion" target="_self" aria-label="Nigel Farage">Nigel Farage</a><a class="list__item" href="/presenters/jacob-rees-mogg/?opinion" target="_self" aria-label="Jacob Rees-Mogg">Jacob Rees-Mogg</a><a class="list__item" href="/presenters/patrick-christys/?opinion" target="_self" aria-label="Patrick Christys">Patrick Christys</a><a class="list__item" href="/presenters/beverley-turner/?opinion" target="_self" aria-label="Bev Turner">Bev Turner</a><a class="list__item" href="/presenters/michelle-dewberry/?opinion" target="_self" aria-label="Michelle Dewberry">Michelle Dewberry</a><a class="list__item" href="/presenters/neil-oliver/?opinion" target="_self" aria-label="Neil Oliver">Neil Oliver</a><a class="list__item" href="/presenters/nana-akua/?opinion" target="_self" aria-label="Nana Akua">Nana Akua</a><a class="list__item" href="/presenters/stephen-dixon/?opinion" target="_self" aria-label="Stephen Dixon">
1241Stephen Dixon</a><a class="list__item" href="/presenters/tom-harwood/?opinion" target="_self" aria-label="Tom Harwood">Tom Harwood</a></div></div></div><div class="nav--item membership--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_12"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_12_0"><a class="color-inherit" href="/membership/" target="" aria-label="Membership">Membership</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_12_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_12_1_0"><a class="list__item" href="/watch/originals/" target="_self" aria-label="GB News Uncut">Originals</a><a class="list__item" href="/membership/polls/" target="_self" aria-label="Polls">Polls</a><a class="list__item" href="/puzzles/" target="_self" aria-label="Puzzles">Puzzles</a><a class="list__item" href="/membership/rewards/" target="_self" aria-label="Rewards">Rewards</a><a class="list__item" href="/membership/events/" target="_self" aria-label="Events">Events</a><a class="list__item" href="/membership/guides/" target="_self" aria-label="Guides">Guides</a></div></div></div><div class="nav--item advent--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_13"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_13_0"><a class="color-inherit" href="/reflections" target="" aria-label="reflections">Reflections</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_13_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_13_1_0_1_0"><a class="list__item" href="https://gbnews.shop/" target="_blank" rel="Shop" aria-label="Shop">GBN Shop</a><a class="list__item" href="/watch/live#comments" target="_self" rel="Your Say" aria-label="Your Say">Your Say</a><a class="list__item" href="/support" target="_self" rel="Support Us" aria-label="Support Us">Support Us</a><a class="list__item" href="/alerts" target="_self" rel="News Alerts" aria-label="News Alerts">News Alerts</a><a class="list__item" href="/latest" target="_self" aria-label="Latest">Latest</a><a class="list__item" href="/puzzles/" target="_self" aria-label="Puzzles">Puzzles</a><a class="list__item" href="/terms/competition-terms/" target="_self" aria-label="Win">Win</a></div></div></div><div class="nav--item royal--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_14"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_14_0"><a class="color-inherit" href="/royal/" target="" aria-label="Royal">Royal</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_14_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_14_1_0"><a class="list__item" href="/royal/king-charles/" target="_self" aria-label="King Charles">King Charles</a><a class="list__item" href="/royal/meghan-markle/" target="_self" aria-label="Meghan Markle">Meghan Markle</a><a class="list__item" href="/royal/prince-harry/" target="_self" aria-label="Prince Harry">Prince Harry</a><a class="list__item" href="/royal/kate-middleton/" target="_self" aria-label="Princess of Wales">Princess of Wales</a><a class="list__item" href="/royal/prince-william/" target="_self" aria-label="Prince William">Prince William</a><a class="list__item" href="/royal/prince-andrew/" target="_self" aria-label="Andrew">Andrew</a><a class="list__item" href="/royal/princess-eugenie/" target="_self" aria-label="Princess Eugenie">Princess Eugenie</a></div></div></div><div class="nav--item money--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_15"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_15_0"><a class="color-inherit" href="/money/" target="" aria-label="Money">Money</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_15_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_15_1_0"><a class="list__item" href="/politics/uk/john-healey/" target="_self" rel="" aria-label="John Healey">John Healey</a><a class="list__item" href="/money/savings/" target="_self" aria-label="Savings">Savings</a><a class="list__item" href="/money/pensions/" target="_self" aria-label="Pensions">Pensions</a><a class="list__item" href="/money/tax/" target="_self" aria-label="Tax">Tax</a><a class="list__item" href="/money/cost-of-living/" target="_self" aria-label="Cost of Living">Cost of Living</a><a class="list__item" href="/money/energy-bills/" target="_self" aria-label="Energy Bills">Energy Bills</a><a class="list__item" href="/money/bank-branch-closures/" target="_self" aria-label="Bank Closures">Bank Closures</a><a class="list__item" href="/money/bank-of-england/" target="_self" aria-label="Bank of England">Bank of England</a><a class="list__item" href="/money/economy/" target="_self" aria-label="Economy">Economy</a><a class="list__item" href="/money/inflation/" target="_self" aria-label="Inflation">Inflation</a></div></div></div>
1241<div class="nav--item travel--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_16"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_16_0"><a class="color-inherit" href="/travel/" target="" aria-label="Travel">Travel</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_16_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_16_1_0"><a class="list__item" href="/travel/staycation/" target="_self" aria-label="staycation">Staycation</a><a class="list__item" href="/travel/deals/" target="_self" aria-label="deals">Deals</a><a class="list__item" href="/travel/cruise/" target="_self" aria-label="cruise">Cruise</a><a class="list__item" href="/travel/eurostar/" target="_self" aria-label="eurostar">Eurostar</a></div></div></div><div class="nav--item celebrity--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_17"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_17_0"><a class="color-inherit" href="/celebrity/" target="" aria-label="Celebrity">Celebrity</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_17_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_17_1_0"><a class="list__item" href="/celebrity/music/" target="_self" aria-label="Music">Music</a><a class="list__item" href="/celebrity/film/" target="_self" aria-label="Film">Film</a><a class="list__item" href="/celebrity/tv/" target="_self" aria-label="TV">TV</a><a class="list__item" href="/celebrity/bbc/" target="_self" aria-label="BBC">BBC</a><a class="list__item" href="/celebrity/itv/" target="_self" aria-label="ITV">ITV</a><a class="list__item" href="/celebrity/channel-4/" target="_self" aria-label="Channel 4">Channel 4</a><a class="list__item" href="/celebrity/channel-5/" target="_self" aria-label="Channel 5">Channel 5</a><a class="list__item" href="/celebrity/james-bond/" target="_self" aria-label="James Bond">James Bond</a><a class="list__item" href="/celebrity/im-a-celebrity-get-me-out-of-here/" target="_self" rel="" aria-label="I'm A Celeb!">I'm A Celeb!</a><a class="list__item" href="/celebrity/strictly-come-dancing/" target="_self" aria-label="Strictly Come Dancing">Strictly Come Dancing</a></div></div></div><div class="nav--item sport--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_18"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_18_0"><a class="color-inherit" href="/sport/" target="" aria-label="Sport">Sport</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_18_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_18_1_0"><a class="list__item" href="/sport/football/" target="_self" aria-label="Football">Football</a><a class="list__item" href="/sport/f1/" target="_self" aria-label="F1">F1</a><a class="list__item" href="/sport/tennis/" target="_self" aria-label="Tennis">Tennis</a><a class="list__item" href="/sport/cricket/" target="_self" aria-label="Cricket">Cricket</a><a class="list__item" href="/sport/boxing/" target="_self" aria-label="Boxing">Boxing</a><a class="list__item" href="/sport/rugby/" target="_self" aria-label="Rugby">Rugby</a><a class="list__item" href="/sport/golf/" target="_self" aria-label="Golf">Golf</a><a class="list__item" href="/sport/darts/" target="_self" aria-label="Darts">Darts</a><a class="list__item" href="/sport/snooker/" target="_self" aria-label="Snooker">Snooker</a><a class="list__item" href="/sport/nfl/" target="_self" aria-label="NFL">NFL</a><a class="list__item" href="/sport/other-sport/" target="_self" aria-label="Other Sport">Other Sport</a></div></div></div><div class="nav--item lifestyle--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_19"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_19_0"><a class="color-inherit" href="/lifestyle/" target="" aria-label="Lifestyle">Lifestyle</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_19_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_19_1_0"><a class="list__item" href="/health/" target="_self" aria-label="Health">Health</a><a class="list__item" href="/lifestyle/food/" target="_self" aria-label="Food">Food</a><a class="list__item" href="/lifestyle/gardening/" target="_self" aria-label="Gardening">Gardening</a><a class="list__item" href="/lifestyle/cars/" target="_self" aria-label="Cars">Cars</a><a class="list__item" href="/lifestyle/diet/" target="_self" aria-label="Diet">Diet</a><a class="list__item" href="/lifestyle/property/" target="_self" aria-label="Property">Property</a></div></div></div><div class="nav--item tech--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_20"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_20_0"><a class="color-inherit" href="/tech/" target="" aria-label="Tech">Tech</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_20_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_20_1_0"><a class="list__item" href="/tech/deals/ " target="_self" aria-label="Deals">Deals</a><a class="list__item" href="/tech/reviews/" target="_self" aria-label="Reviews ">Reviews</a><a class="list__item" href="/tech/google/" target="_self" aria-label="Google">Google</a><a class="list__item" href="/tech/apple/" target="_self" aria-label="Apple">
1241Apple</a><a class="list__item" href="/tech/samsung/" target="_self" aria-label="Samsung">Samsung</a><a class="list__item" href="/tech/microsoft/" target="_self" aria-label="Miscosoft">Microsoft </a><a class="list__item" href="/tech/vpn/" target="_self" aria-label="VPN">VPN</a><a class="list__item" href="/tech/streaming/" target="_self" aria-label="Streaming">Streaming</a><a class="list__item" href="/tech/ai/" target="_self" aria-label="AI">AI</a><a class="list__item" href="/tech/privacy/" target="_self" aria-label="Privacy ">Privacy </a></div></div></div><div class="nav--item america--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_21"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_21_0"><a class="color-inherit" href="/us/" target="_self" aria-label="America">America</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_21_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_21_1_0"><a class="list__item" href="/news/us/" target="_self" aria-label="US News">US News</a><a class="list__item" href="/politics/us/" target="_self" aria-label="US Politics">US Politics</a><a class="list__item" href="/politics/us/joe-biden/" target="_self" aria-label="Joe Biden">Joe Biden</a><a class="list__item" href="/politics/us/donald-trump/" target="_self" aria-label="Donald Trump">Donald Trump</a><a class="list__item" href="/news/us/elon-musk/" target="_self" aria-label="Elon Musk">Elon Musk</a><a class="list__item" href="/news/us/new-york/" target="_self" aria-label="New york">New York</a><a class="list__item" href="/news/world/justin-trudeau/" target="_self" aria-label="Justin Trudeau">Justin Trudeau</a><a class="list__item" href="/celebrity/will-smith/" target="_self" aria-label="Will Smith">Will Smith</a><a class="list__item" href="/sport/tennis/" target="_self" aria-label="Tennis">Tennis</a></div></div></div><div class="nav--item watch--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_22"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_22_0"><a class="color-inherit" href="/watch/live" target="" aria-label="Watch">Watch</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_22_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_22_1_0"><a class="list__item" href="/watch/live" target="_self" aria-label="Live">Live</a><a class="list__item" href="/watch/videos" target="_self" aria-label="Videos">Videos</a><a class="list__item" href="/watch/catch-up" target="_self" aria-label="Catch Up">Catch Up</a><a class="list__item" href="/watch/schedule" target="_self" aria-label="Schedule">Schedule</a><a class="list__item" href="/watch/originals/" target="_self" aria-label="originals">Originals</a><a class="list__item" href="/watch/how-to-watch" target="_self" aria-label="How to watch">How to watch</a></div></div></div><div class="nav--item shows--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_23"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_23_0"><a class="color-inherit" href="/shows/" target="" aria-label="Shows">Shows</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_23_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_23_1_0"><a class="list__item" href=" /watch/catch-up/" target="_self" aria-label="Catch Up">Catch Up</a><a class="list__item" href="/shows/farage/" target="_self" aria-label="Farage">Farage</a><a class="list__item" href="/shows/dewbs-co/" target="_self" aria-label="Dewbs & Co">Dewbs & Co</a><a class="list__item" href="/shows/patrick-christys-tonight/" target="_self" aria-label="Patrick Christys Tonight">Patrick Christys Tonight</a><a class="list__item" href="/shows/nana-akua/" target="_self" aria-label="Nana Akua">Nana Akua</a><a class="list__item" href="/shows/breakfast-with-stephen-and-anne/" target="_self" aria-label="Breakfast with Stephen & Anne">Breakfast with Stephen and Anne</a><a class="list__item" href="/shows/the-camilla-tominey-show/" target="_self" aria-label="Camilla Tominey Show">Camilla Tominey Show</a><a class="list__item" href="/shows/sunday-with-michael-portillo/" target="_self" aria-label="Sunday with Michael Portillo">Sunday with Michael Portillo</a><a class="list__item" href="/shows/free-speech-nation/" target="_self" aria-label="Free Speech Nation">Free Speech Nation</a></div></div></div><div class="secondary--nav regular--secondary__nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_24_1_0_0"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_24_1_0_0_0"><a class="list__item" href="https://gbnews.shop/" target="_blank" rel="Shop" aria-label="Shop">GBN Shop</a><a class="list__item" href="/watch/live#comments" target="_self" rel="YourSay" aria-label="YourSay">YourSay</a><a class="list__item" href="/youdecide" target="_self" rel="YouDecide" aria-label="YouDecide">YouDecide</a><a class="list__item" href="/support" target="_self" rel="Support Us" aria-label="Support Us">Support Us</a><a class="list__item" href="/alerts" target="_self" rel="News Alerts" aria-label="News Alerts">News Alerts</a><a class="list__item" href="/latest" target="_self" aria-label="Latest">Latest</a><a class="list__item" href="/puzzles/" target="_self" aria-label="Puzzles">Puzzles</a>
1241<a class="list__item" href="/terms/competition-terms/" target="_self" aria-label="Win">Win</a><a class="list__item" href="/shows/gb-news-live-show-join-our-live-studio-audience" target="_self" aria-label="Tickets">Tickets</a></div></div><div class="nav--item presenters--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_25"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_25_0"><a class="color-inherit" href="/presenters/" target="" aria-label="Presenters">Presenters</a></div><div class="secondary--nav" id="sNavigation_Items_0_0_12_0_0_0_0_0_25_1"><div class="list" id="sNavigation_Items_0_0_12_0_0_0_0_0_25_1_0"><a class="list__item" href="/presenters/eamonn-holmes/" target="_self" aria-label="Eamonn Holmes">Eamonn Holmes</a><a class="list__item" href="/presenters/nigel-farage/" target="_self" aria-label="Nigel Farage">Nigel Farage</a><a class="list__item" href="/presenters/michelle-dewberry/" target="_self" aria-label="Michelle Dewberry">Michelle Dewberry</a><a class="list__item" href="/presenters/patrick-christys/" target="_self" aria-label="Patrick Christys">Patrick Christys</a><a class="list__item" href="/presenters/nana-akua/" target="_self" aria-label="Nana Akua">Nana Akua</a><a class="list__item" href="/presenters/stephen-dixon/" target="_self" aria-label="Stephen Dixon">Stephen Dixon</a><a class="list__item" href="/presenters/anne-diamond/" target="_self" aria-label="Anne Diamond">Anne Diamond</a><a class="list__item" href="/presenters/andrew-pierce/" target="_self" aria-label="Andrew Pierce">Andrew Pierce</a><a class="list__item" href="/presenters/beverley-turner/" target="_self" aria-label="Beverley Turner">Beverley Turner</a><a class="list__item" href="/presenters/camilla-tominey/" target="_self" aria-label="Camilla Tominey">Camilla Tominey</a><a class="list__item" href="/presenters/michael-portillo/" target="_self" aria-label="Michael Portillo">Michael Portillo</a><a class="list__item" href="/presenters/gloria-de-piero/" target="_self" aria-label="Gloria De Piero">Gloria De Piero</a><a class="list__item" href="/presenters/neil-oliver/" target="_self" aria-label="Neil Oliver">Neil Oliver</a><a class="list__item" href="/presenters/tom-harwood/" target="_self" aria-label="Tom Harwood">Tom Harwood</a><a class="list__item" href="/presenters/emily-carver/" target="_self" aria-label="Emily Carver">Emily Carver</a><a class="list__item" href="/presenters/simon-evans/" target="_self" aria-label="Simon Evans">Simon Evans</a><a class="list__item" href="/presenters/olivia-utley/" target="_self" aria-label="Olivia Utley">Olivia Utley</a><a class="list__item" href="/presenters/ellie-costello/" target="_self" aria-label="Olivia Utley">Ellie Costello</a><a class="list__item" href="/presenters/mark-white/" target="_self" aria-label="Mark White">Mark White</a><a class="list__item" href="/presenters/cameron-walker/" target="_self" aria-label="Cameron Walker">Cameron Walker</a></div></div></div><div class="nav--item shop--channel__active" id="sNavigation_Items_0_0_12_0_0_0_0_0_26"><div class="text-element" id="sNavigation_Items_0_0_12_0_0_0_0_0_26_0"><a class="color-inherit" href="https://gbnews.shop/" target="_blank" aria-label="Shop">Shop</a></div></div></div><!-- User Code --><div class="nav--arrows primary--nav__arrow left hidden hide-mobile"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewbox="0 0 20 20" fill="none"><circle cx="10" cy="10" r="10" transform="rotate(-90 10 10)" fill="#000F55" fill-opacity="0.8"></circle><path d="M8.71921 9.98389C9.42955 10.699 10.1005 11.3748 10.7714 12.0506C11.116 12.3972 11.4613 12.7423 11.8052 13.0897C12.0512 13.3374 12.0621 13.5813 11.8402 13.8289C11.6343 14.0585 11.3598 14.0593 11.1182 13.8176C10.3224 13.0217 9.52957 12.2228 8.736 11.4247C8.37827 11.0652 8.01982 10.7065 7.66428 10.3448C7.44745 10.1251 7.44526 9.88648 7.65771 9.67127C8.80536 8.51066 9.95373 7.34929 11.1028 6.18943C11.4073 5.88285 11.7964 5.95685 11.9577 6.35027C12.0242 6.51262 12.0191 6.66893 11.8935 6.80485C11.8431 6.85922 11.7935 6.9151 11.7416 6.96795C10.786 7.93677 9.83035 8.90483 8.87325 9.87213C8.83456 9.9114 8.78418 9.93783 8.71921 9.98464L8.71921 9.98389Z" fill="white"></path></svg></div><div class="nav--arrows primary--nav__arrow right hidden hide-mobile"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewbox="0 0 20 20" fill="none"><circle cx="10" cy="10" r="10" transform="rotate(90 10 10)" fill="#000F55" fill-opacity="0.8"></circle><path d="M11.2808 10.0161C10.5704 9.30102 9.89953 8.62519 9.22861 7.94936C8.88402 7.60276 8.5387 7.25767 8.19485 6.91032C7.94882 6.66264 7.93787 6.41873 8.15981 6.17106C8.36568 5.9415 8.64018 5.94075 8.88183 6.18238C9.67759 6.97828 10.4704 7.77719 11.264 8.57535C11.6217 8.93478 11.9802 9.29346 12.3357 9.65517C12.5525 9.8749 12.5547 10.1135 12.3423 10.3287C11.1946 11.4893 10.0463 12.6507 8.89716 13.8106C8.59273 14.1171 8.20361 14.0431 8.04227 13.6497C7.97583 13.4874 7.98094 13.3311 8.10651 13.1952C8.15688 13.1408 8.20653 13.0849 8.25836 13.032C9.214 12.0632 10.1696 11.0952 11.1267 10.1279C11.1654 10.0886 11.2158 10.0622 11.2808 10.0154L11.2808 10.0161Z" fill="white"></path></svg></div><!-- End User Code --><!-- User Code --><div class="nav--arrows secondary--nav__arrow left hidden hide-mobile"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewbox="0 0 20 20" fill="none"><circle cx="10" cy="10" r="10" transform="rotate(-90 10 10)" fill="white"></circle><path d="M8.71921 9.98389C9.42955 10.699 10.1005 11.3748 10.7714 12.0506C11.116 12.3972 11.4613 12.7423 11.8052 13.0897C12.0512 13.3374 12.0621 13.5813 11.8402 13.8289C11.6343 14.0585 11.3598 14.0593 11.1182 13.8176C10.3224 13.0217 9.52957 12.2228 8.736 11.4247C8.37827 11.0652 8.01982 10.7065 7.66428 10.3448C7.44745 10.1251 7.44526 9.88648 7.65771 9.67127C8.80536 8.51066 9.95373 7.34929 11.1028 6.18943C11.4073 5.88285 11.7964 5.95685 11.9577 6.35027C12.0242 6.51262 12.0191 6.66893 11.8935 6.80485C11.8431 6.85922 11.7935 6.9151 11.7416 6.96795C10.786 7.93677 9.83035 8.90483 8.87325 9.87213C8.83456 9.9114 8.78418 9.93783 8.71921 9.98464L8.71921 9.98389Z" fill="#0032AA"></path></svg></div><div class="nav--arrows secondary--nav__arrow right hidden hide-mobile"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewbox="0 0 20 20" fill="none"><circle cx="10" cy="10" r="10" transform="rotate(90 10 10)" fill="white"></circle><path d="M11.2808 10.0161C10.5704 9.30102 9.89953 8.62519 9.22861 7.94936C8.88402 7.60276 8.5387 7.25767 8.19485 6.91032C7.94882 6.66264 7.93787 6.41873 8.15981 6.17106C8.36568 5.9415 8.64018 5.94075 8.88183 6.18238C9.67759 6.97828 10.4704 7.77719 11.264 8.57535C11.6217 8.93478 11.9802 9.29346 12.3357 9.65517C12.5525 9.8749 12.5547 10.1135 12.3423 10.3287C11.1946 11.4893 10.0463 12.6507 8.89716 13.8106C8.59273 14.1171 8.20361 14.0431 8.04227 13.6497C7.97583 13.4874 7.98094 13.3311 8.10651 13.1952C8.15688 13.1408 8.20653 13.0849 8.25836 13.032C9.214 12.0632 10.1696 11.0952 11.1267 10.1279C11.1654 10.0886 11.2158 10.0622 11.2808 10.0154L11.2808 10.0161Z" fill="#0032AA"></path></svg></div><!-- End User Code --></div><!-- User Code -->
1241<script> 1242 const DEBUGGING = false; 1243 // const PIANO_ENDPOINT = 'https://buy-eu.piano.io/api/v3'; 1244 const COOKIE = 'loggedinCookie_sid'; 1245 const OLD_DATE = 'Thu, 18 Dec 2013 12:00:00 UTC'; 1246 1247 // initialise Piano 1248 tp = []; 1249 window.gbnID = window.gbnID || []; 1250 window.vfQ = window.vfQ || []; 1251 // tp.push(['setUsePianoIdUserProvider', true]); 1252 // tp.push(['setApplePayMerchantId', 'https://www.gbnews.com/.well-known/apple-developer-merchantid-domain-association']); 1253 // tp.push(['setPianoIdUrl', 'https://auth.gbnews.com']); 1254 // tp.push(['setEndpoint', PIANO_ENDPOINT]); 1255 1256 // declare login icons 1257 var loginLink = document.querySelector('.login-link'); 1258 var loginLinkText = document.getElementById('login-link-text'); 1259 1260 // on initialisation 1261 window.gbnID.push([ 1262 'init', 1263 async function () { 1264 try { 1265 debug('GBNID init...'); 1266 1267 window.gbnID.onLogin((user) => { 1268 setUser(user); 1269 }); 1270 1271 window.gbnID.onLogout(() => { 1272 loggedOut(); 1273 1274 window.vfQ.push(() => { 1275 window.vf.context.get('user').then((user) => { 1276 if (user.email) { 1277 debug('Logged out from Viafoura as not logged into Piano'); 1278 window.vf.session.logout(); 1279 deleteCookie(); 1280 } 1281 }); 1282 }); 1283 }); 1284 1285 // ensure auth sync between GBNID and Viafoura 1286 if (!(await window.gbnID.isLoggedIn())) { 1287 loggedOut(); 1288 1289 window.vfQ.push(() => { 1290 window.vf.context.get('user').then((user) => { 1291 if (user.email) { 1292 debug('Logged out from Viafoura as not logged into Piano'); 1293 window.vf.session.logout(); 1294 deleteCookie(); 1295 } 1296 }); 1297 }); 1298 } 1299 1300 // Viafoura 1301 // Make vfQ available or use existing one if already loaded 1302 window.vfQ.push(() => { 1303 // Viafoura is loaded and window.vf is available 1304 debug('Viafoura loaded'); 1305 1306 // handle login from Viafoura 1307 window.vf.$prepublish((channel, event, ...args) => { 1308 if (channel === 'authentication' && event === 'required') { 1309 debug('Viafoura login flow trigger'); 1310 window.vf.$publish('tray', 'close'); 1311 1312 if (args[0].method === 'signup') { 1313 // Registration modal 1314 showRegistrationModal(); 1315 } else { 1316 // Login modal 1317 showLoginModal(); 1318 } 1319 return false; 1320 } else { 1321 return { channel, event, args }; 1322 } 1323 }); 1324 // handle logout from Viafoura 1325 window.vf.$subscribe('authentication', 'logout', () => { 1326 // Log out user from GBNID 1327 window.gbnID.logout(); 1328 1329 // Log out user from Piano 1330 if (tp.pianoId) { 1331 window.tp.pianoId.logout(); 1332 } 1333 1334 debug('Viafoura logout intercept'); 1335 }); 1336 }); 1337 1338 // ------ helper functions ------ 1339 function loggedOut() { 1340 debug('User has logged out of GBN ID'); 1341 1342 // Gamification logout 1343 window.gbnCE = window.gbnCE || []; 1344 window.gbnCE.push(['logout']); 1345 window.gbnCE.push(['logoutHeader']); 1346 1347 window.vfQ.push(() => { 1348 // Viafoura is loaded and window.vf is available 1349 // Viafoura logout 1350 debug('Logging out of Viafoura'); 1351 window.vf.session.logout(); 1352 loginLink.href = 'javascript:void(0)'; 1353 deleteCookie(); 1354 }); 1355 1356 loginLink.classList.remove('loggedin'); 1357 loginLink.innerText = ''; 1358 1359 if (loginLinkText) { 1360 loginLinkText.textContent = 'Log in'; 1361 } 1362 1363 // attach login link 1364 attachLoginLink(); 1365 enableLoginLink(); 1366 } 1367 1368 function showLoginModal() { 1369 debug('Login modal'); 1370 window.gbnID.openLoginModal(); 1371 } 1372 1373 function showRegistrationModal() { 1374 debug('Registration modal'); 1375 window.gbnID.openLoginModal(); 1376 } 1377 1378 function setUser(user) { 1379 debug('Setting up logged in user'); 1380 1381 // Gamification login 1382 debug('Logging into coin economy system'); 1383 window.gbnCE = window.gbnCE || []; 1384 window.gbnCE.push(['login']); 1385 1386 // Load profile 1387 window.gbnCE.push(['profile']); 1388 1389 // update header on login 1390 window.gbnCE.push([ 1391 'init', 1392 function (gbnCE) { 1393 gbnCE.auth.updateHeaderElement(); 1394 }, 1395 ]); 1396 1397 if (user) { 1398 var user_id = user.id; 1399 var user_email = user.email; 1400 1401 if (user_id) { 1402 // initials in avatar 1403 setAvatar(user); 1404 addLoginLinkText(); 1405 1406 // call CI passSignalFunction 1407 setTimeout(() => { 1408 passSignalDataFtn(user_email); 1409 }, 2000); 1410 1411 // detach login link 1412 detachLoginLink(); 1413 enableLoginLink(); 1414 1415 // set cookie
1416 setCookie(user_id); 1417 } 1418 } 1419 } 1420 1421 function attachLoginLink() { 1422 debug('Attach login link'); 1423 loginLink.addEventListener('click', openLoginModal); 1424 1425 if (loginLinkText) { 1426 loginLinkText.addEventListener('click', openLoginModal); 1427 } 1428 } 1429 1430 function detachLoginLink() { 1431 debug('Detach login link'); 1432 loginLink.removeEventListener('click', openLoginModal); 1433 if (loginLinkText) { 1434 loginLinkText.removeEventListener('click', openLoginModal); 1435 } 1436 } 1437 1438 function openLoginModal(e) { 1439 debug('Login link clicked'); 1440 e.preventDefault(); 1441 showLoginModal(); 1442 } 1443 1444 window.openLoginModalGlobal = function () { 1445 debug('Follow link clicked'); 1446 showLoginModal(); 1447 }; 1448 1449 function enableLoginLink() { 1450 // enable the login link 1451 loginLink.classList.remove('disabled'); 1452 if (loginLinkText) { 1453 loginLinkText.classList.remove('disabled'); 1454 } 1455 } 1456 1457 function setAvatar(user) { 1458 debug('User is logged in so setting initials in icon'); 1459 1460 // set initials for avatar 1461 var init1 = user.name.first ? user.name.first[0] : user.email[0]; 1462 var init2 = user.name.last ? user.name.last[0] : user.name.first ? user.name.first[1] : user.email[1]; 1463 var inits = init1 + init2; 1464 1465 loginLink.classList.add('loggedin'); 1466 debug('Logged in as ' + inits); 1467 loginLink.href = '#'; 1468 } 1469 1470 function addLoginLinkText() { 1471 if (loginLinkText) { 1472 loginLinkText.textContent = 'My Account'; 1473 loginLinkText.href = '#'; 1474 } 1475 } 1476 1477 async function passSignalDataFtn(email) { 1478 // console.log("hashed email for liveramp called"); 1479 const EMAIL_VALIDATION_REGEX = 1480 /((([^<>()\[\].,;:\s@"]+(\.[^<>()\[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,}))/i; 1481 if (!email || !EMAIL_VALIDATION_REGEX.test(email)) { 1482 console.warn('Invalid email provided, escape'); 1483 return; 1484 } 1485 const normalizedEmail = email.trim().toLowerCase(); 1486 const encoder = new TextEncoder(); 1487 const data = encoder.encode(normalizedEmail); 1488 const hashBuffer = await crypto.subtle.digest('SHA-256', data); 1489 const sha256 = Array.from(new Uint8Array(hashBuffer)) 1490 .map((b) => b.toString(16).padStart(2, '0')) 1491 .join(''); 1492 1493 ats.setAdditionalData({ 1494 type: 'emailHashes', 1495 id: [`${sha256}`], 1496 }); 1497 } 1498 1499 function setCookie(token) { 1500 // set cookie 1501 const date = new Date(); 1502 date.setMonth(date.getMonth() + 1); 1503 const expires = 'expires=' + date.toUTCString(); 1504 document.cookie = COOKIE + '=' + token + '; ' + expires + '; path=/;'; 1505 } 1506 1507 function deleteCookie() { 1508 // delete cookie 1509 document.cookie = COOKIE + '=; expires=' + OLD_DATE + '; path=/'; 1510 } 1511 } catch (error) { 1512 console.error(error); 1513 } 1514 }, 1515 ]); 1516 1517 // debugging function 1518 function debug(message) { 1519 if (DEBUGGING) console.log('[Login link javascript]: ' + message); 1520 } 1521</script>
1521<!-- End User Code --><span class="viewport-css-anchor"></span><!-- User Code --><div class="viafoura"><vf-tray></vf-tray></div><!-- End User Code --><div class="breaking-banner__wrapper show-only-if-post-present hidden" id="sElement_Breaking_News_Banner_0_0_5_0_0_0_0_0"><!-- User Code --><button class="breaking-banner__close-btn" type="button" aria-label="close"><svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.86889 8.00015L15.8175 1.0503C16.0575 0.810263 16.0575 0.420056 15.8175 0.180024C15.5776 -0.0600081 15.1874 -0.0600081 14.9474 0.180024L7.99877 7.12988L1.05011 0.180024C0.810123 -0.0600081 0.419984 -0.0600081 0.179993 0.180024C-0.0599977 0.420056 -0.0599977 0.810263 0.179993 1.0503L7.12865 8.00015L0.179993 14.95C-0.0599977 15.19 -0.0599977 15.5802 0.179993 15.8203C0.300604 15.9409 0.458136 16 0.615669 16C0.773201 16 0.930733 15.9397 1.05134 15.8203L8 8.87042L14.9487 15.8203C15.0693 15.9409 15.2268 16 15.3843 16C15.5419 16 15.6994 15.9397 15.82 15.8203C16.06 15.5802 16.06 15.19 15.82 14.95L8.87135 8.00015H8.86889Z" fill="white"></path></svg></button><!-- End User Code --><div class="mb-2 breaking-banner__post" id="sElement_Breaking_News_Banner_0_0_5_0_0_0_0_0_5_1_0"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="section_11" data-format="posts-custom" data-source="breaking-banner" data-source-type="page" data-source-unique="false" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="false" data-attr-cache_ttl_in_seconds="43200" data-attr-format="posts-custom" data-attr-posts_id="sElement_Breaking_News_Banner_0_0_5_0_0_0_0_0_5_1_0" data-attr-without_current="true" data-attr-layout_quality="1" data-attr-node_id="/root/blocks/block[element_breaking_news_banner]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper/choose/otherwise/posts-" data-attr-source="filtered" data-attr-use_tag_image_for_lead_media="true" data-attr-limit="1" data-attr-source_id="breaking-banner" data-attr-layout_remove_image="true" data-attr-layout_all_headline_tag="h2" data-attr-layout_all_subheadline_tag="h3" data-attr-element_classes="breaking-banner__post" data-attr-layout_snark_line="top" data-attr-from_regular_sections="editorial/alerts" data-attr-all_element_order="" data-attr-allow_duplicates="true" data-attr-source_site="parent_site"><div class="posts-wrapper clearfix"><div class="widget" elid="2677972734"><article elid="2677972734" data-frozen-sections="[]" class="clearfix page-article sm-mb-1 quality-HD post-2677972734"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__body clearfix sm-mt-1"><div class="snark-line"><h2 class="widget__headline h2"><a class="widget__headline-text rm-stats-tracked banner__url" href="https://www.gbnews.com/money/uk-borrowing-costs-ftse-100-highest-level-since-1998" aria-label="" data-type=" UK ECONOMY"> 1522 UK ECONOMY 1523 </a></h2><h3 class="widget__subheadline restore-breaking-banner"><a class="widget__subheadline-text h3" href="https://www.gbnews.com/money/uk-borrowing-costs-ftse-100-highest-level-since-1998" aria-label="" data-type=" UK ECONOMY"><p>UK borrowing costs hit highest level since 1998 in latest blow to John Healey</p></a></h3><span class="hidden unpublish-time">1790846105.295</span></div></div></div></div>
1523<script type="application/json" id="post-context-2677972734" class="post-context post-context-2677972734"> 1524 {"customDimensions": {"1":"Dimitris Kouimtsidis","7":2677972734,"4":"10/01/2026"}, "post": {"id": 2677972734, "providerId": 20, "sections": [584086272, 2151427851, 586304181, 586688191], "authors": [26453397], "tags": [], "streams": [], "split_testing": {}} } 1525</script>
1525</article></div></div></div></div>
1525<script> 1526 1527 window.addEventListener('DOMContentLoaded', () => { 1528 // console.log('loaded'); 1529 1530 let unpublish = document.querySelector('.breaking-banner__wrapper .unpublish-time') ? document.querySelector('.breaking-banner__wrapper .unpublish-time').textContent : 0; 1531 let currentTime = parseInt(Date.now()/1000); 1532 // console.log(unpublish, currentTime, unpublish > currentTime); 1533 1534 1535 if (document.querySelector('.breaking-banner__post').childNodes.length != 0 && unpublish >= currentTime){ 1536 let hasCookie = getCookie('hideAlert'), 1537 original = window.location.href.split('?')[0], 1538 postURL = document.querySelector(".banner__url").getAttribute('href').split('?')[0], 1539 hasSidebar = document.querySelectorAll('.content--with--sidebar').length, 1540 postId = document.querySelector(".breaking-banner__post .widget").getAttribute('elid'); 1541 1542 document.querySelector('.breaking-banner__close-btn').addEventListener('click', ()=>{ 1543 document.querySelector('.breaking-banner__wrapper').classList.add('hidden'); 1544 setCookie('hideAlert', postId) 1545 }); 1546 document.querySelector('.breaking-banner__post .widget__headline-text').addEventListener('click', ()=>{ 1547 setCookie('hideAlert', postId) 1548 }); 1549 document.querySelector('.breaking-banner__post .widget__subheadline-text').addEventListener('click', ()=>{ 1550 setCookie('hideAlert', postId); 1551 }); 1552 if (hasSidebar <= 0) { 1553 document.querySelector('.breaking-banner__wrapper').classList.add('no-sidebar'); 1554 } 1555 if (!hasCookie || hasCookie != postId ){ 1556 document.querySelector('.breaking-banner__wrapper').classList.remove('hidden'); 1557 } 1558 if (original == postURL){ 1559 document.querySelector('.breaking-banner__wrapper').classList.add('hidden'); 1560 } 1561 if (window.location.href.includes('lab_viewport=embed&lab_content=full')){ 1562 let originalId = document.querySelector(".main-post__top article").getAttribute('elid'), 1563 bannerId = document.querySelector(".banner__url").getAttribute('href').split('/')[3]; 1564 if (originalId == bannerId){ 1565 document.querySelector('.breaking-banner__wrapper').classList.add('hidden'); 1566 } 1567 } 1568}}) 1569 1570 1571function getCookie(c_name) { 1572 if (document.cookie.length > 0) { 1573 c_start = document.cookie.indexOf(c_name + "="); 1574 if (c_start != -1) { 1575 c_start = c_start + c_name.length + 1; 1576 c_end = document.cookie.indexOf(";", c_start); 1577 if (c_end == -1) { 1578 c_end = document.cookie.length; 1579 } 1580 return unescape(document.cookie.substring(c_start, c_end)); 1581 } 1582 } 1583 return ""; 1584} 1585 1586function setCookie(cname, cvalue) { 1587 document.cookie = cname + "=" + cvalue + "; path=/"; 1588} 1589 1590</script>
1590</div><meta name="vf:container_id" content="2677966747"/><!-- User Code --><!-- Google Tag Manager -->
1590<script> 1591 1592 //MOVED TO delayedCmpScript shared element 1593 1594 1595 1596 // window.runWhenConsentIsReady(() => { 1597 // console.log('Consent is ready, loading GTM Secondary...'); 1598 // (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1599 // new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1600 // j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 1601 // 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1602 // })(window,document,'script','dataLayer','GTM-PCG4W7Z'); 1603 1604 // console.log('Consent is ready, injecting GTM secondary iframe'); 1605 1606 // const iframe = document.createElement('iframe'); 1607 // iframe.src = "https://www.googletagmanager.com/ns.html?id=GTM-PCG4W7Z"; 1608 // iframe.height = "0"; 1609 // iframe.width = "0"; 1610 // iframe.style.display = "none"; 1611 // iframe.style.visibility = "hidden"; 1612 // document.body.appendChild(iframe); 1613 1614 1615 // }); 1616</script>
1616<!-- End Google Tag Manager --><!-- Google Tag Manager (noscript) --><!--
vendor: 75 bytes, lines 1616-1618
1616 <noscript> 1617 <iframe 1618 src="https://www.googletagmanager.com/ns.html?id=
1618GTM-PCG4W7Z
vendor: 96 bytes, lines 1618-1622
1618" 1619 height="0" 1620 width="0" 1621 style="display:none;visibility:hidden"></iframe> 1622</noscript>
1622--><!-- End Google Tag Manager (noscript) --><!-- End User Code --><span class="viewport-css-anchor"></span>
1622<script>// -------------------------------------------------- 1623// Configuration 1624// -------------------------------------------------- 1625 1626const STORAGE_KEY = 'subscriptionTracking'; 1627const ATTRIBUTION_MAX_AGE = 60 * 1000; // 1 mins 1628 1629const referringUrlPathname = 1630 window.location.pathname || null; 1631 1632// -------------------------------------------------- 1633// Global state 1634// -------------------------------------------------- 1635 1636window.subscriptionTracking = { 1637 subscriptionAttributionId: null, 1638 attributionCreatedAt: null, 1639 promptId: null 1640}; 1641 1642window.freeTrialTracking = { 1643 paymentFormObserverAttached: false, 1644 paymentFormViewed: false, 1645 paymentSuccessTracked: false 1646}; 1647 1648 1649// -------------------------------------------------- 1650// Helpers 1651// -------------------------------------------------- 1652 1653const getPageData = async () => ({ 1654 origin_url: window.location.href, 1655 origin_canonical_url: window.location.origin + window.location.pathname, 1656 origin_article_id: "2677966747", 1657 origin_page_type: "article", 1658 origin_section: 1659 "money", 1660 origin_author: "patrick o\u0027donnell", 1661 user_login_status: await getUserLoginStatus(), 1662 user_membership_status: await getUserMembershipStatus() 1663}); 1664 1665function getPromptId() { 1666 const promptEl = 1667 document.querySelector('[class*="rf-prompt-"]'); 1668 1669 if (!promptEl) return null; 1670 1671 return [...promptEl.classList] 1672 .find(c => c.startsWith('rf-prompt-')) 1673 ?.replace('rf-prompt-', ''); 1674} 1675 1676function initialiseWhenReady(callback) { 1677 if (callback()) { 1678 return; 1679 } 1680 1681 const observer = new MutationObserver(() => { 1682 if (callback()) { 1683 observer.disconnect(); 1684 } 1685 }); 1686 1687 observer.observe(document.body, { 1688 childList: true, 1689 subtree: true 1690 }); 1691} 1692 1693function initialiseFreeTrialTracking() { 1694 attachFreeTrialPaymentFormViewListener(); 1695 attachFreeTrialPaymentProviderListener(); 1696 attachFreeTrialSubmitPaymentListener(); 1697 attachFreeTrialPaymentSuccessListener(); 1698} 1699 1700function attachFreeTrialPaymentFormViewListener() { 1701 initialiseWhenReady(() => { 1702 const modal = document.querySelector('#checkout-modal'); 1703 1704 if (!modal) { 1705 return false; 1706 } 1707 1708 if (freeTrialTracking.paymentFormObserverAttached) { 1709 return true; 1710 } 1711 1712 freeTrialTracking.paymentFormObserverAttached = true; 1713 1714 const pushPaymentFormView = () => { 1715 const isActive = modal.classList.contains('active'); 1716 1717 if (!isActive) { 1718 return; 1719 } 1720 1721 if (freeTrialTracking.paymentFormViewed) { 1722 return; 1723 } 1724 1725 const waitForProvider = () => { 1726 const activeProvider = document.querySelector('.payment-tab.active'); 1727 1728 if (activeProvider) { 1729 freeTrialTracking.paymentFormViewed = true; 1730 1731 pushTrackingEvent('free_trial_payment_form_view'); 1732 1733 return; 1734 } 1735 1736 requestAnimationFrame(waitForProvider); 1737 }; 1738 1739 waitForProvider(); 1740 }; 1741 1742 const observer = new MutationObserver(() => { 1743 pushPaymentFormView(); 1744 }); 1745 1746 observer.observe(modal, { 1747 attributes: true, 1748 attributeFilter: ['class'] 1749 }); 1750 1751 pushPaymentFormView(); 1752 1753 console.log('[Free trial tracking] Payment form listener attached'); 1754 return true; 1755 }); 1756} 1757 1758function attachFreeTrialPaymentProviderListener() { 1759 initialiseWhenReady(() => { 1760 const paymentTabs = document.querySelectorAll('.payment-tab'); 1761 1762 if (!paymentTabs.length) { 1763 return false; 1764 } 1765 1766 paymentTabs.forEach(tab => { 1767 if (tab.dataset.freeTrialListenerAttached === 'true') { 1768 return; 1769 } 1770 1771 tab.dataset.freeTrialListenerAttached = 'true'; 1772 1773 tab.addEventListener('click', () => { 1774 const provider = tab.dataset.tab; 1775 1776 if (!provider) { 1777 return; 1778 } 1779 1780 pushTrackingEvent( 1781 'free_trial_payment_provider_select', 1782 { 1783 currentPaymentProvider: provider 1784 } 1785 ); 1786 }); 1787 }); 1788 1789 console.log('[Free trial tracking] Payment provider listener attached'); 1790 1791 return true; 1792 }); 1793} 1794 1795function attachFreeTrialSubmitPaymentListener() { 1796 initialiseWhenReady(() => { 1797 const submitButton = document.querySelector('#checkout-modal #submit-btn'); 1798 1799 if (!submitButton) { 1800 return false;
1801 } 1802 1803 if (submitButton.dataset.freeTrialListenerAttached === 'true') { 1804 return true; 1805 } 1806 1807 submitButton.dataset.freeTrialListenerAttached = 'true'; 1808 1809 submitButton.addEventListener('click', () => { 1810 pushTrackingEvent('free_trial_payment_submit'); 1811 }); 1812 1813 console.log('[Free trial tracking] Payment submit listener attached'); 1814 1815 return true; 1816 }); 1817} 1818 1819function attachFreeTrialPaymentSuccessListener() { 1820 initialiseWhenReady(() => { 1821 const modal = document.querySelector('#checkout-modal'); 1822 1823 if (!modal) { 1824 return false; 1825 } 1826 1827 if (freeTrialTracking.paymentSuccessTracked) { 1828 return true; 1829 } 1830 1831 const checkForSuccess = () => { 1832 if (freeTrialTracking.paymentSuccessTracked) { 1833 return; 1834 } 1835 1836 const successElement = modal.querySelector('#modal-success'); 1837 1838 if (!successElement) { 1839 return; 1840 } 1841 1842 if (successElement.style.display !== 'block') { 1843 return; 1844 } 1845 1846 freeTrialTracking.paymentSuccessTracked = true; 1847 1848 pushTrackingEvent('free_trial_purchase_success'); 1849 1850 console.log('[Free trial tracking] Payment success tracked'); 1851 }; 1852 1853 const observer = new MutationObserver(() => { 1854 checkForSuccess(); 1855 }); 1856 1857 observer.observe(modal, { 1858 childList: true, 1859 subtree: true, 1860 attributes: true 1861 }); 1862 1863 checkForSuccess(); 1864 1865 console.log('[Free trial tracking] Payment success listener attached'); 1866 1867 return true; 1868 }); 1869} 1870 1871 1872function isFreeTrialPrompt() { 1873 const primaryBtn = document.querySelector(
1874 '.rfmodal-button-yes.primary-btn-p' 1875 ); 1876 1877 if (!primaryBtn) { 1878 return false; 1879 } 1880 1881 return primaryBtn.textContent 1882 .trim() 1883 .toLowerCase() === 'start free trial'; 1884} 1885 1886// function isFreeTrialPrompt() { 1887// const primaryBtn = document.querySelector( 1888// '.rfmodal-button-yes.primary-btn-p' 1889// ); 1890 1891// if (!primaryBtn) { 1892// return false; 1893// } 1894 1895// return primaryBtn.textContent 1896// .trim() 1897// .toLowerCase() === 'start free trial'; 1898// } 1899 1900function getUserLoginStatus() { 1901 window.gbnID = window.gbnID || []; 1902 1903 return new Promise((resolve) => { 1904 gbnID.push([ 1905 'init', 1906 async function () { 1907 try { 1908 const user = await window.gbnID.getCurrentUser(); 1909 1910 if (!user) { 1911 resolve('logged-out'); 1912 } else { 1913 resolve('logged-in'); 1914 } 1915 } catch (err) { 1916 console.error(err); 1917 resolve('logged-out'); 1918 } 1919 } 1920 ]); 1921 }); 1922} 1923 1924function getUserMembershipStatus() { 1925 window.gbnID = window.gbnID || []; 1926 1927 return new Promise((resolve) => { 1928 window.gbnID.push([ 1929 'init', 1930 async function () { 1931 try { 1932 const user = await window.gbnID.getCurrentUser(); 1933 1934 // User object doesn't exist 1935 if (!user) { 1936 resolve('anonymous'); 1937 return; 1938 } 1939 1940 const memberships = user.memberships; 1941 1942 // User exists but no memberships 1943 if (!user.memberships || user.memberships.length === 0) { 1944 resolve('registered'); 1945 return; 1946 } 1947 1948 // One or more memberships 1949 if (Array.isArray(memberships) && memberships.length > 0) { 1950 resolve('member'); 1951 return; 1952 } 1953 1954 resolve('anonymous'); 1955 } catch (err) { 1956 console.error(err); 1957 resolve('anonymous'); 1958 } 1959 } 1960 ]); 1961 }); 1962} 1963 1964 1965function persistTrackingState() { 1966 localStorage.setItem(STORAGE_KEY, JSON.stringify(window.subscriptionTracking)); 1967} 1968 1969 1970function restoreTrackingState() { 1971 const stored = localStorage.getItem(STORAGE_KEY); 1972 1973 if (!stored) return false; 1974 1975 try { 1976 const data = JSON.parse(stored); 1977 const age = Date.now() - new Date(data.attributionCreatedAt).getTime(); 1978 1979 if (age > ATTRIBUTION_MAX_AGE) { 1980 localStorage.removeItem(STORAGE_KEY); 1981 return false; 1982 } 1983 1984 window.subscriptionTracking = { 1985 subscriptionAttributionId: data.subscriptionAttributionId, 1986 attributionCreatedAt: data.attributionCreatedAt, 1987 promptId: data.promptId 1988 }; 1989 1990 return true; 1991 1992 } catch { 1993 localStorage.removeItem(STORAGE_KEY); 1994 return false; 1995 } 1996} 1997 1998 1999function createAttribution() { 2000 const subscriptionAttributionId = 2001 crypto.randomUUID?.() || 2002 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' 2003 .replace(/[xy]/g, c => { 2004 const r = 2005 crypto.getRandomValues( 2006 new Uint8Array(1) 2007 )[0] % 16; 2008 2009 const v = 2010 c === 'x' 2011 ? r 2012 : (r & 0x3) | 0x8; 2013 2014 return v.toString(16); 2015 }); 2016 2017 const attributionCreatedAt = new Date().toISOString(); 2018 2019 const promptId = getPromptId(); 2020 2021 window.subscriptionTracking = { 2022 subscriptionAttributionId, 2023 attributionCreatedAt, 2024 promptId 2025 }; 2026 2027 persistTrackingState(); 2028 2029 // Legacy keys for downstream logic 2030 localStorage.setItem('subscription_attribution_id',subscriptionAttributionId); 2031 localStorage.setItem('attribution_created_at', attributionCreatedAt); 2032 localStorage.setItem('origin_article_id', "2677966747"); 2033 2034 if (promptId) { 2035 localStorage.setItem('engage_prompt_id',promptId); 2036 } 2037} 2038 2039async function pushTrackingEvent(eventName, extraData = {}) { 2040 window.dataLayer = window.dataLayer || []; 2041 2042 window.dataLayer.push({ 2043 event: eventName, 2044 2045 origin_article_pathname: referringUrlPathname, 2046 2047 subscription_attribution_id: window.subscriptionTracking.subscriptionAttributionId, 2048 attribution_created_at: window.subscriptionTracking.attributionCreatedAt, 2049 subscription_attribution_source: 'engage_prompt_view', 2050 2051 ...(await getPageData()), 2052 2053 engage_prompt_id: window.subscriptionTracking.promptId, 2054 platform: 'web', 2055 dp: 'recurly', 2056 debugld: 'stickybtest', 2057 2058 ...extraData 2059 }); 2060} 2061 2062 2063// -------------------------------------------------- 2064// Impression 2065// -------------------------------------------------- 2066 2067function pushImpressionEvent() { 2068 2069 // Existing attribution 2070 if (restoreTrackingState()) { 2071 attachPrimaryButtonListener(); 2072 attachSecondaryButtonListener(); 2073 2074 if (isFreeTrialPrompt()) { 2075 console.log('Free trial prompt detected'); 2076 initialiseFreeTrialTracking(); 2077 } else { 2078 console.log('Prompt is not for Free trial'); 2079 } 2080 2081 return; 2082 } 2083 2084 // First impression 2085 createAttribution(); 2086 2087 pushTrackingEvent('subscription_prompt_view'); 2088 attachPrimaryButtonListener(); 2089 attachSecondaryButtonListener(); 2090 2091 if (isFreeTrialPrompt()) { 2092 console.log('Free trial prompt detected'); 2093 initialiseFreeTrialTracking(); 2094 } else { 2095 console.log('Prompt is not for Free trial'); 2096 } 2097} 2098 2099 2100// -------------------------------------------------- 2101// CTA listeners 2102// -------------------------------------------------- 2103 2104function attachPrimaryButtonListener() {
2105 const primaryBtn = document.querySelector('.rfmodal-button-yes.primary-btn-p'); 2106 2107 if (!primaryBtn) return; 2108 2109 primaryBtn.addEventListener('click', () => { 2110 pushTrackingEvent('subscription_prompt_click'); 2111 }, { once: true } 2112 ); 2113} 2114 2115 2116function attachSecondaryButtonListener() { 2117 const secondaryBtn = document.querySelector('.rfmodal-button-no'); 2118 2119 if (!secondaryBtn) return; 2120 2121 secondaryBtn.addEventListener('click', () => { 2122 pushTrackingEvent('subscription_member_login_click', { login_location:'article_prompt' }); 2123 },{ once: true } 2124 ); 2125} 2126 2127 2128// -------------------------------------------------- 2129// Modal observer 2130// -------------------------------------------------- 2131 2132const observer = 2133 new MutationObserver(() => { 2134 if (document.querySelector('.rfmodal-button-yes.primary-btn-p')) { 2135 observer.disconnect(); 2136 pushImpressionEvent(); 2137 } 2138 }); 2139 2140observer.observe( 2141 document.body, 2142 { 2143 childList: true, 2144 subtree: true 2145 } 2146); 2147 2148 2149// Modal already exists 2150if (document.querySelector('.rf-modal-content-wrapper')) { 2151 observer.disconnect(); 2152 pushImpressionEvent(); 2153} 2154 2155</script>
2155<div class="all-tags js-all-tags" data-tags="['Article', 'Economy', 'Store closures']" data-content-section="<Namespace {'title': 'Money'}>" data-author="<Namespace {'title': "Patrick O'Donnell"}>" data-content-type="<Namespace {'title': 'article'}>" data-cd1="<Namespace {'title': '09'}>" data-cd2="<Namespace {'title': '09'}>" data-cd9="<Namespace {'title': 'money'}>" data-cd12="<Namespace {'title': 2677966747}>" data-cd13="<Namespace {'title': "popular ice cream franchise 'no longer active' as all locations close for good"}>" data-cd14="<Namespace {'title': "patrick o'donnell"}>" data-cd15="<Namespace {'title': '2026-09-30'}>" data-cd16="<Namespace {'title': '15:55'}>" data-cd17="<Namespace {'title': '2026-09-30'}>" data-cd18="<Namespace {'title': "money|economy|article|homepage top20|content type|store closures|don't miss - articles"}>"></div><div class="credit-caption-wrapper" id="sPost_Default_0_0_16_0_0_2_0_10"><div class="mb-2 " id="sPost_Default_0_0_16_0_0_2_0_10_0"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="None" data-format="posts-custom" data-source="current_post" data-source-type="current_post" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="false" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_10_0" data-attr-layout_quality="1" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[1]/current_post-" data-attr-layout_all_headline_tag="h1" data-attr-layout_all_subheadline_tag="h2" data-attr-layout_remove_image="true" data-attr-all_element_order="" data-attr-filters="" data-attr-section_url="" data-attr-source="" data-attr-is_current_post="true" data-attr-use_smart_keep_reading="true"><div class="posts-wrapper clearfix"><div class="widget post-partial post-section--money" data-category="Money"><article elid="2677966747" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677966747" data-category="Money"><div class="row px10"></div>
2155<script type="application/json" id="post-context-2677966747" class="post-context post-context-2677966747"> 2156 {"customDimensions": {"1":"Patrick O'Donnell","7":2677966747,"3":"","2":"money","4":"09/30/2026"}, "post": {"id": 2677966747, "providerId": 0, "sections": [0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833], "authors": [26443345], "tags": [], "streams": [{"family(67bf1ec4027babe3b08d4d5e,0)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,2251910421)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,584086272)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304181)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304622)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586311833)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563271)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563296)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,590311187)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,0)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,2251910421)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,584086272)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304181)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304622)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586311833)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563271)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563296)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,590311187)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}], "split_testing": {}} } 2157</script>
2157</article></div></div></div></div></div><span class="viewport-css-anchor"></span><div class="content" id="sPost_Default_0_0_16_0_0_2_0_15"><div class="content--with--sidebar" id="sPost_Default_0_0_16_0_0_2_0_15_0"><div class="main--column" id="sPost_Default_0_0_16_0_0_2_0_15_0_0"><!-- User Code --><div id="support-banner" class="support-banner hidden" data-page="articles"></div><!-- End User Code --><!-- User Code -->
2157<script> 2158 (async function() { 2159 const post = await fetch('https://www.gbnews.com/r/kappa/api/v2/reader/supportBanner?postID=2671206511', { 2160 method: 'GET', 2161 credentials: "omit" 2162 }).then(response => response.json()); 2163 console.log('banner post is - ', post); 2164 const supportBannerContent = post.body.split('<listicle')[0]; 2165 const bannerVisibility = JSON.parse(post.roar_specific_data.support_ui_banner); 2166 const supportBanners = Array.from(document.querySelectorAll('.support-banner')); 2167 2168 supportBanners.forEach(banner => { 2169 const bannerPage = banner.dataset.page; 2170 2171 if (bannerVisibility.all || bannerVisibility[bannerPage]) { 2172 banner.innerHTML = supportBannerContent; 2173 banner.classList.remove('hidden'); 2174 } 2175 }); 2176 2177 const mainColumnWidth = document.querySelector('.main--column'); 2178 if (mainColumnWidth) { 2179 mainColumnWidth.getBoundingClientRect().width; 2180 } 2181 document.documentElement.style.setProperty('--support-max-width', `${mainColumnWidth}px`); 2182 2183 return true; 2184 })(); 2185</script>
2185<!-- End User Code --><!-- User Code --><div class="modal-overlay" id="checkout-modal"><div class="modal-box"><div class="modal-header"><img src="https://www.gbnews.com/media-library/image.png?id=67071580&width=980" alt="GB News Membership" class="modal-header-logo"/><!-- <button class="modal-close" id="modal-close-btn" aria-label="Close">×</button> --></div><div class="modal-inner"><div id="modal-form-wrapper"><span class="modal-title" style="display:none;"></span><span class="modal-plan-label" id="modal-plan-label" style="display:none;"></span><div class="plan-summary"><p class="plan-summary-charge"> 2186 You are about to be charged 2187 <strong id="modal-charge-amount">£0.00</strong><span id="modal-charge-asterisk" style="display:none;">*</span></p><div class="plan-summary-meta"><div><span class="plan-meta-label">Billing</span><span class="plan-meta-value" id="modal-billing-amount">per month</span></div><div><span class="plan-meta-label">First billing date</span><span class="plan-meta-value" id="modal-start-date">Today</span></div><div><span class="plan-meta-label" id="modal-duration-title">Duration</span><span class="plan-meta-value" id="modal-duration">Monthly until cancelled</span></div></div></div><!-- added - to show the balance --><p id="modal-credit-note" style="display:none">*Your gift has been applied</p><form id="my-form"><input data-recurly="token" name="recurly-token" type="hidden"/><p class="payment-method-heading">Select a payment method</p><div class="payment-tabs"><button type="button" class="payment-tab" id="tab-paypal" data-tab="paypal"><img class="tab-icon" src="https://www.gbnews.com/media-library/image.png?id=67071596&width=200" alt="PayPal"/></button><button type="button" class="payment-tab active" id="tab-card" data-tab="card"><img class="tab-icon" src="https://www.gbnews.com/media-library/image.png?id=67071589&width=200" alt="Card"/></button><button type="button" class="payment-tab" id="tab-applepay" data-tab="applepay"><img class="tab-icon" src="https://www.gbnews.com/media-library/image.png?id=67071584&width=200" alt="Apple Pay"/></button><button type="button" class="payment-tab" id="tab-googlepay" data-tab="googlepay"><!-- <img 2188 class="tab-icon" 2189 src="https://www.gbnews.com/media-library/image.png?id=67071592&width=200" 2190 alt="Google Pay" /> --><img class="tab-icon" src="https://assets.rbl.ms/67110710/origin.png" alt="Google Pay"/></button></div><!-- PayPal panel --><div class="payment-panel" id="panel-paypal" style="display:none;"><div id="paypal-container"></div><div id="paypal-processing-msg" class="paypal-busy-message" style="display: none;"><span class="spinner"></span> 2191 Processing your Paypal payment, please wait... 2192 </div></div><!-- Card panel --><div class="payment-panel" id="panel-card"><div class="rec-form-inputs"><div class="rec-row"><input class="rec-input" data-recurly="first_name" placeholder="First name" type="text" autocomplete="given-name"/><input class="rec-input" data-recurly="last_name" placeholder="Last name" type="text" autocomplete="family-name"/></div><!-- <div class="rec-row"> --><input class="rec-input" data-recurly="address1" placeholder="Address" type="text" autocomplete="street-address"/><!-- </div> --><div class="rec-row"><input class="rec-input" data-recurly="city" placeholder="City" type="text" autocomplete="address-level2"/><input class="rec-input" data-recurly="postal_code" placeholder="Postal code" type="text" autocomplete="postal-code"/></div><select class="rec-input" data-recurly="country" placeholder="Country" type="text" id="country" name="country"></select></div><!-- <div id="recurly-elements">Loading...</div> --><!-- new bit --><div class="rec-input rec-field" id="card-number"></div><div class="rec-row"><div class="rec-input rec-field" id="card-month"></div><div class="rec-input rec-field" id="card-year"></div></div><div class="rec-input rec-field" id="card-cvc"></div><!-- end of new bit --><div id="my-auth-container"></div><button class="submit-btn" type="submit" id="submit-btn">Pay now</button><p class="payment-security"><svg width="12" height="14" viewbox="0 0 12 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6 0L1 2v4c0 3.31 2.14 6.41 5 7 2.86-.59 5-3.69 5-7V2L6 0z" fill="#9ca3af"></path></svg> 2193 Secured by Recurly · 256-bit encryption 2194 </p></div><!-- Apple Pay panel --><div class="payment-panel" id="panel-applepay" style="display:none;"><div id="apple-pay-button-container"><button id="my-apple-pay-button" type="button"><img src="https://assets.rbl.ms/67574572/origin.png" alt="Pay with Apple Pay" class="cta-img"/></button></div><div id="apple-processing-msg" class="apple-busy-message" style="display: none;"><span class="spinner"></span> 2195 Processing your Apple payment, please wait... 2196 </div></div><!-- Google Pay panel --><div class="payment-panel" id="panel-googlepay" style="display:none;"><div class="cta-wrapper"><!-- <img 2197 src="https://www.gbnews.com/media-library/image.png?id=67071603&width=980" 2198 alt="Pay with Google Pay" 2199 class="cta-img" /> --><div id="google-pay-button-container"></div><div id="google-processing-msg" class="google-busy-message" style="display: none;"><span class="spinner"></span> 2200 Processing your Google payment, please wait... 2201 </div></div></div></form></div><div class="modal-success" id="modal-success" style="display:none;"><img src="https://assets.rbl.ms/67516545/origin.png"/><h3 id="success-heading">Thank you for subscribing!</h3><p id="success-message"></p></div></div></div></div><!-- End User Code --><div class="mb-2 main-post__top main-post__top--headline" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_2_1_0_1_0_1"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="None" data-format="posts-custom" data-source="current_post" data-source-type="current_post" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="false" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_2_1_0_1_0_1" data-attr-layout_quality="1" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/choose[1]/otherwise/choose/when[(post.roar_specific_data.primis_embedid)]/if[(not_post.roar_specific_data.viously_related)]/current_post[1]-" data-attr-use_tag_image_for_lead_media="true" data-attr-layout_all_headline_tag="h1" data-attr-layout_all_subheadline_tag="h2" data-attr-layout_headline="top" data-attr-all_element_order="headline" data-attr-element_classes="main-post__top main-post__top--headline" data-attr-layout_remove_image="true" data-attr-data-rm-advanced="true" data-attr-use_smart_keep_reading="true" data-attr-data-rm-ecomerce="true" data-attr-filters="" data-attr-section_url="" data-attr-source="" data-attr-is_current_post="true"><div class="posts-wrapper clearfix"><div class="widget post-partial post-section--money" data-category="Money"><article elid="2677966747" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677966747" data-category="Money"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__body clearfix sm-mt-1"><h1 class="widget__headline h1"><span class="widget__headline-text custom-post-headline" data-type="text"> 2202 Popular ice cream franchise 'no longer active' as all locations close for good 2203 </span></h1></div><div class="widget__head"><div class="widget__video crop-3x1 clearfix" style="padding-bottom: 33.33333333333333%;"><video class="rm-hero-media" width="100%" height="100%" controls="controls"><source src="https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8" type="video/mp4"/> 2204 Your browser does not support the video tag. 2205 </video></div></div></div></div>
2205<script type="application/json" id="post-context-2677966747" class="post-context post-context-2677966747"> 2206 {"customDimensions": {"1":"Patrick O'Donnell","7":2677966747,"3":"","2":"money","4":"09/30/2026"}, "post": {"id": 2677966747, "providerId": 0, "sections": [0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833], "authors": [26443345], "tags": [], "streams": [{"family(67bf1ec4027babe3b08d4d5e,0)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,2251910421)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,584086272)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304181)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304622)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586311833)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563271)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563296)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,590311187)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,0)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,2251910421)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,584086272)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304181)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304622)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586311833)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563271)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563296)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,590311187)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}], "split_testing": {}} } 2207</script>
2207</article></div></div></div></div><div class="mb-2 main-post__top" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_2_1_0_1_0_2"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="None" data-format="posts-custom" data-source="current_post" data-source-type="current_post" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="false" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_2_1_0_1_0_2" data-attr-layout_quality="1" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/choose[1]/otherwise/choose/when[(post.roar_specific_data.primis_embedid)]/if[(not_post.roar_specific_data.viously_related)]/current_post[2]-" data-attr-layout_all_headline_tag="h1" data-attr-layout_all_subheadline_tag="h2" data-attr-all_element_order="snark_line,site_field_Linkout,photo_credit,photo_caption" data-attr-element_classes="main-post__top" data-attr-layout_vertical_separation="0" data-attr-layout_all_image_crop="16x9" data-attr-use_tag_image_for_lead_media="true" data-attr-data-rm-device-video-crops="true" data-attr-data-rm-advanced="true" data-attr-use_smart_keep_reading="true" data-attr-data-rm-ecomerce="true" data-attr-layout_all_video_crop="16x9" data-attr-data-rm-collapsed="false" data-attr-layout_snark_line="top" data-attr-layout_remove_image="true" data-attr-layout_site_field_linkout="bottom" data-attr-layout_photo_credit="bottom" data-attr-layout_photo_caption="bottom" data-attr-filters="" data-attr-section_url="" data-attr-source="" data-attr-is_current_post="true"><div class="posts-wrapper clearfix"><div class="widget post-partial post-section--money" data-category="Money"><article elid="2677966747" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677966747" data-category="Money"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__body clearfix sm-mt-1"><div class="snark-line"><div class="primis-wrapper" style="width: 100%;height:100%"><div id="primis-player-1" style="background:#ddd url("https://video.primis.tech/uploads/cn1/video/users/origin/31875/video_68d40f85bd57c824144604/vid6aba51aabf65c622798018.jpg?cbuster=1790780108") center center / cover no-repeat;position:relative;overflow:hidden;width:100%;height:100%"></div></div>
2207<script> 2208 let accessStatusObj = window.userStatus; 2209 let primisId = document.getElementById("primis-player-1"); 2210 const urlString = "https://live.primis.tech/live/liveView.php?s=122134\u0026playerApiId=122134\u0026vp_content=embed9c4311yvinls"; 2211 const url = new URL(urlString); 2212 if (accessStatusObj == 'member') { 2213 console.log("user is a member +"); 2214 url.searchParams.set('s', '122088'); 2215 url.searchParams.set('playerApiId', '122088'); 2216 let newScript = document.createElement("script"); 2217 newScript.async = true; 2218 newScript.src = url 2219 primisId.appendChild(newScript); 2220 console.log("script added adlite"); 2221 } else { 2222 let newScript = document.createElement("script"); 2223 newScript.async = true; 2224 let newSource = "https://live.primis.tech/live/liveView.php?s=122134\u0026playerApiId=122134\u0026vp_content=embed9c4311yvinls" 2225 newScript.src = newSource.toString(); 2226 primisId.appendChild(newScript); 2227 console.log("script added adlite"); 2228 } 2229 </script>
2229</div></div><div class="widget__head"><div class="widget__video crop-16x9 clearfix" style="padding-bottom: 56.25%;"><video class="rm-hero-media" width="100%" height="100%" controls="controls"><source src="https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8" type="video/mp4"/> 2230 Your browser does not support the video tag. 2231 </video></div></div><div class="widget__body clearfix sm-mt-1"><div class="custom-field-Linkout"></div><div class="photo-caption"><span class="media-photo-credit-new"><p>John Healey lays out his plan to overhaul the UK economy </p> | </span><p>GB NEWS </p></div></div></div></div>
2231<script type="application/json" id="post-context-2677966747" class="post-context post-context-2677966747"> 2232 {"customDimensions": {"1":"Patrick O'Donnell","7":2677966747,"3":"","2":"money","4":"09/30/2026"}, "post": {"id": 2677966747, "providerId": 0, "sections": [0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833], "authors": [26443345], "tags": [], "streams": [{"family(67bf1ec4027babe3b08d4d5e,0)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,2251910421)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,584086272)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304181)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304622)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586311833)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563271)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563296)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,590311187)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,0)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,2251910421)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,584086272)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304181)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304622)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586311833)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563271)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563296)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,590311187)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}], "split_testing": {}} } 2233</script>
2233</article></div></div></div></div><div class="custom-author custom-author--affiliate "><img src="https://www.gbnews.com/media-library/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbWFnZSI6Imh0dHBzOi8vYXNzZXRzLnJibC5tcy81MTIzMzgxOS9vcmlnaW4uanBnIiwiZXhwaXJlc19hdCI6MTg0MjQ5NzEyM30.MxYYrqhx9P9b2vepr7ZATu-Ssy4O8xNqZu86qmKvS9Y/image.jpg?width=210" class="custom-author__avatar" alt="Patrick O'Donnell" title="Patrick O'Donnell"/><div class="custom--author--date"><p class="custom-author__name-desc"> By 2234 2235 <a href="https://www.gbnews.com/authors/partick-o-donnell" class="custom-author__name" alt="Patrick O'Donnell" title="Patrick O'Donnell">Patrick O'Donnell</a><span>, </span></p><br/><div class="custom-dates"><div class="created"><p class="created-date">Published: 30/09/2026</p> 2236 - <span class="created-ts"> 15:55</span></div></div></div></div><!-- User Code --><div class="article-shares-el"><!-- display-desktop --><div class="shares-container"><!-- SHARE --><a class="share share-popup share__button" rel="noopener noreferrer" aria-label="Share via Email"><img src="https://assets.rbl.ms/61181814/origin.png" alt="desktop-share"/><span class="share-label">Share</span></a><!-- Like --><a class="share like-popup" id="article-like-button" rel="noopener noreferrer" aria-label="Like"><img src="https://assets.rbl.ms/61138047/origin.png" alt="desktop-like"/><span class="like-label">Like</span></a><!-- comments --><a class="commentIcon" rel="noopener noreferrer" aria-label="comments"><img src="https://assets.rbl.ms/61112536/origin.png" alt="desktop-comment"/></a></div></div><!-- End User Code --><div class="share-background"><div class="share-dialog"><header><h3 class="dialog-title">Share this</h3><button class="close-button">x</button></header><div class="targets"><!-- FACEBOOK --><a href="https://www.facebook.com/sharer/sharer.php?u=https://www.gbnews.com/money/store-closure-ice-cream-subzero" data-track-share="Facebook" class="share share-popup share-fb rm-stats-tracked" rel="noopener noreferrer" aria-label="Share on Facebook"> Facebook </a><!-- TWITTER --><a href="https://twitter.com/intent/tweet?url=https://www.gbnews.com/money/store-closure-ice-cream-subzero" data-track-share="Twitter" class="share share-popup share-tw rm-stats-tracked" rel="noopener noreferrer" aria-label="Share on Twitter"> Twitter </a><!-- EMAIL --><a href="mailto:?body=https://www.gbnews.com/money/store-closure-ice-cream-subzero" data-track-share="Email" class="share share-popup share-email" rel="noopener noreferrer" aria-label="Share via Email"> E-mail </a><!-- COPY LINK --><button onclick="event.preventDefault();" data-clipboard-text="https://www.gbnews.com/money/store-closure-ice-cream-subzero" class="share share-copy-link rm-stats-tracked" title="Copy this link to clipboard"><i class="icons-share" style="width: 60%"><svg aria-hidden="true" data-prefix="far" data-icon="some" class="svg-inline--fa fa-copy fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512"><path fill="currentColor" d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"></path></svg></i></button></div></div></div><div class="paywall_content" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4"><div class="mb-2 main-post__middle" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_0"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="None" data-format="posts-custom" data-source="current_post" data-source-type="current_post" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="false" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_0" data-attr-layout_quality="1" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/element_wrapper/current_post-" data-attr-use_tag_image_for_lead_media="true" data-attr-layout_all_headline_tag="h2" data-attr-layout_all_subheadline_tag="h2" data-attr-all_element_order="subheadline,custom_field_tldr" data-attr-layout_remove_image="true" data-attr-all_share_buttons="Facebook,Twitter,Whatsapp,Linkedin,Email,CopyLink,Tumblr,Pinterest,Separator,Reddit,GooglePlus,Flipboard,SMS,Slack" data-attr-show_full_post_body="true" data-attr-layout_email="active" data-attr-layout_copylink="active" data-attr-layout_tumblr="inactive" data-attr-layout_pinterest="inactive" data-attr-layout_separator="inactive" data-attr-layout_reddit="inactive" data-attr-layout_googleplus="inactive" data-attr-layout_flipboard="inactive" data-attr-layout_sms="inactive" data-attr-layout_slack="inactive" data-attr-element_classes="main-post__middle" data-attr-layout_all_date_format="%d %B %Y" data-attr-layout_linkedin="inactive" data-attr-layout_subheadline="bottom" data-attr-layout_custom_field_tldr="bottom" data-attr-filters="" data-attr-section_url="" data-attr-source="" data-attr-is_current_post="true"><div class="posts-wrapper clearfix"><div class="widget post-partial post-section--money" data-category="Money"><article elid="2677966747" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677966747" data-category="Money"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><div class="widget__video crop-3x1 clearfix" style="padding-bottom: 33.33333333333333%;"><video class="rm-hero-media" width="100%" height="100%" controls="controls"><source src="https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8" type="video/mp4"/> 2237 Your browser does not support the video tag. 2238 </video></div></div><div class="widget__body clearfix sm-mt-1"><div class="widget__subheadline"><h2 class="widget__subheadline-text h2" data-type="text"><p>After six decades, ice cream brand Subzero has shut all its sites in Wales</p></h2></div></div></div></div>
2238<script type="application/json" id="post-context-2677966747" class="post-context post-context-2677966747"> 2239 {"customDimensions": {"1":"Patrick O'Donnell","7":2677966747,"3":"","2":"money","4":"09/30/2026"}, "post": {"id": 2677966747, "providerId": 0, "sections": [0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833], "authors": [26443345], "tags": [], "streams": [{"family(67bf1ec4027babe3b08d4d5e,0)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,2251910421)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,584086272)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304181)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304622)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586311833)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563271)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563296)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,590311187)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,0)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,2251910421)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,584086272)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304181)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304622)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586311833)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563271)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563296)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,590311187)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}], "split_testing": {}} } 2240</script>
2240</article></div></div></div></div><div class="" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_1"><!-- User Code --><div class="newsletter-wrapper"><div id="newsletter-signup-id"></div><!-- membership banner --><div id="membership-nl-placeholder"><div class="support-element-container"><div class="support-right-container"><h3 class="support-element-heading">The fearless champion of Britain, its voices and its values.</h3><p class="support-element-paragraph">Join the fight for free speech and fearless journalism.</p></div><div class="support-left-container"><a class="support-gb-news-btn" id="support-gbn-news-btn" href="https://www.gbnews.com/support" style="text-decoration: none !important; display:flex;"> 2241 SUPPORT GB NEWS 2242 </a></div></div></div><div id="google-banner-placeholder" class="pn-boilerplate pn-boilerplate--newsletter newspetter-placeholder" style="display: none;"><div class="google-container"><form class="newsletter-form pn-boilerplate__form" newsletter-signup-invalid="pn-boilerplate__input-group--error" action="post"><img class="google-icon" src="https://assets.rbl.ms/62596208/origin.png"/><div class="newsletter-title-wrapper"><p class="newsletter-title">Choose GB News on Google - add us as a preferred source</p></div><div class="newsletter-input-wrapper"><a class="sign-btn pn-boilerplate__button unbutton" id="google-button" href="https://www.google.com/preferences/source?q=gbnews.com" target="_blank" rel="noopener"> 2243 Choose GB News 2244 </a></div></form></div></div>
2244<script> 2245 document.addEventListener("DOMContentLoaded", function () { 2246 const signButton = document.querySelector(".sign-btn"); 2247 const newsWrapper = document.querySelector(".newsletter-title-wrapper"); 2248 if (signButton) { 2249 signButton.addEventListener("click", (e) => { 2250 signButton.style.display = "none"; 2251 newsWrapper.style.display = "none"; 2252 const container = document.createElement("div"); 2253 container.id = "success-container"; 2254 container.innerHTML = ` 2255 <b class="pn-boilerplate__accent" id="success-title" style="display:block;"> 2256 <t>Thank you for following us!</t> 2257 </b> 2258 <p class="pn-boilerplate__text pn-boilerplate__text--subheader" style="display:block;"> 2259 <t>See the latest from GB News <a href="https://www.gbnews.com" target="_parent">here</a></t> 2260 </p> 2261 `; 2262 const form = document.querySelector(".newsletter-form"); 2263 form.appendChild(container); 2264 }); 2265 } 2266 }); 2267 </script>
2267</div><!-- End User Code --><!-- User Code -->
2267<script> 2268 /* handle subbed users */ 2269 console.log("script running") 2270 const userEmail = window.gbnID?._currentUser?.email; 2271 console.log("email user -> ", userEmail) 2272 let newsletterSection = document.querySelector(".gbn-newsletter"); 2273 const newsletterPlaceholder = document.getElementById('newsletter-placeholder'); 2274 const googleBanner = document.getElementById('google-banner-placeholder'); 2275 2276 let isOptedIn = false; 2277 2278 if (userEmail) { 2279 console.log('Fetching tags for email: ', userEmail); 2280 const currSections = window.gbnID._currentUser.interests.newsletterOptIn; 2281 console.log('currSections: ', currSections); 2282 2283 // Ensure response is an array before processing 2284 if (Array.isArray(currSections)) { 2285 isOptedIn = currSections 2286 .map((section) => (typeof section === 'string' ? section.toLowerCase() : '')) 2287 .includes(newsletterSection.dataset.section.toLowerCase()); 2288 console.log("isOptedIn 1: ", isOptedIn) 2289 } else if (currSections && typeof currSections === 'object') { 2290 // Handle case where API returns object keys instead of array 2291 isOptedIn = !!currSections[newsletterSection.dataset.section.toLowerCase()]; 2292 } 2293 2294 console.log('isOptedIn result: ', isOptedIn); 2295 } 2296 2297 if (isOptedIn) { 2298 newsletterPlaceholder.style.display = 'none'; 2299 if (googleBanner) googleBanner.style.display = 'block'; 2300 } 2301 2302 if (document.getElementById("google-button")) { 2303 const googleBtn = document.getElementById("google-button") 2304 googleBtn.addEventListener("click", () => { 2305 pa.sendEvent("goal.completed", { goal_type: "piano-google-follow" }); 2306 }) 2307 } 2308</script>
2308<!-- End User Code --><!-- User Code --><style> 2309 .newsletter-success { 2310 display: none; 2311 text-align: center; 2312 border-top: 1px solid #d5d5d5; 2313 border-bottom: 1px solid #d5d5d5; 2314 padding-top: 10px; 2315 } 2316 2317 .newsletter-wrapper { 2318 margin-bottom: 10px; 2319 min-height:100px; 2320 } 2321 2322 #success-title { 2323 color: #000F55; 2324 font-size: 16px; 2325 font-weight: 600; 2326 letter-spacing: 0%; 2327 text-align: center; 2328 line-height: 16px; 2329 } 2330 2331 /* google banner styles */ 2332 2333 #google-banner-placeholder.pn-boilerplate--newsletter { 2334 background: #fff; 2335 /* padding: 15px 10px; */ 2336 border-top: 1px solid #d5d5d5; 2337 border-bottom: 1px solid #d5d5d5; 2338 max-height: none; 2339 height: auto; 2340 } 2341 2342 #google-banner-placeholder .google-container { 2343 display: flex; 2344 background: #fff; 2345 align-items: center; 2346 justify-content: center; 2347 height: 100%; 2348 width: auto; 2349 max-width: 100%; 2350 flex-direction: column; 2351 2352 padding: 10px 0; 2353 } 2354 2355 #google-banner-placeholder .newsletter-form { 2356 display: flex; 2357 justify-content: center; 2358 align-items: center; 2359 max-width: 650px; 2360 width: 100%; 2361 flex-direction: column; 2362 row-gap: 8px; 2363 } 2364 2365 #google-banner-placeholder .google-icon { 2366 height: 20px; 2367 width: auto; 2368 display: block; 2369 } 2370 2371 #google-banner-placeholder .newsletter-title-wrapper { 2372 display: flex; 2373 flex-direction: column; 2374 align-items: center; 2375 } 2376 2377 #google-banner-placeholder .newsletter-title { 2378 font-family: Montserrat; 2379 /* font-weight: 600; */ 2380 text-align: center; 2381 font-size: 16px; 2382 line-height: 16px; 2383 color: #000F55; 2384 margin: 0; 2385 } 2386 2387 #google-banner-placeholder .newsletter-text { 2388 color: #000F55; 2389 text-align: center; 2390 font-family: Montserrat; 2391 font-size: 12px; 2392 font-weight: 400; 2393 line-height: 18px; 2394 padding: 4px 0 0; 2395 margin: 0; 2396 } 2397 2398 #google-banner-placeholder .newsletter-input-wrapper { 2399 display: flex; 2400 justify-content: center; 2401 gap: 8px; 2402 padding-top: 4px; 2403 } 2404 2405 #google-banner-placeholder .sign-btn { 2406 border-radius: 4px; 2407 background: #C20000; 2408 height: 30px; 2409 color: #FFF; 2410 text-align: center; 2411 font-size: 12.5px; 2412 font-weight: 700; 2413 font-family: Montserrat; 2414 border: 0; 2415 overflow: hidden; 2416 white-space: nowrap; 2417 padding: 0 16px; 2418 text-decoration: none; 2419 display: flex; 2420 align-items: center; 2421 justify-content: center; 2422 } 2423 2424 #google-banner-placeholder .sign-btn:hover { 2425 background-color: #d70000; 2426 } 2427 2428 /* success screen */ 2429 #google-banner-placeholder #success-container { 2430 display: flex; 2431 flex-direction: column; 2432 align-items: center; 2433 padding: 8px 15px; 2434 } 2435 2436 #google-banner-placeholder #success-title { 2437 font-size: 16px; 2438 font-weight: 600; 2439 text-align: center; 2440 line-height: 16px; 2441 color: #000F55; 2442 font-family: Montserrat; 2443 } 2444 2445 #google-banner-placeholder .pn-boilerplate__text--subheader { 2446 text-align: center; 2447 font-size: 12px; 2448 line-height: 18px; 2449 font-family: Montserrat; 2450 margin: 4px 0 0; 2451 } 2452 2453 #google-banner-placeholder .pn-boilerplate__text--subheader a { 2454 color: #000F55; 2455 font-weight: 700; 2456 text-decoration: underline; 2457 } 2458 .pn-boilerplate__text--subheader t { 2459 font-size: 15px; 2460 letter-spacing: 0%; 2461 text-align: center; 2462 color: #000F55; 2463 font-family: Montserrat; 2464 } 2465 .pn-boilerplate__text--subheader a { 2466 color: #000F55; 2467 text-decoration: underline; 2468 font-weight: 600; 2469 } 2470 /* membership banner */ 2471 #membership-nl-placeholder { 2472 display: none; 2473 } 2474 .support-element-container { 2475 display: flex; 2476 max-width: 650px; 2477 height: 88px; 2478 padding: 20px 10px; 2479 justify-content: space-around; 2480 align-items: center; 2481 border-radius: 4px; 2482 background: var( 2483 --Xmas---Gradient, 2484 linear-gradient(90deg, #0032aa 0%, #001444 100.78%) 2485 ); 2486 2487 display: flex; 2488 align-items: center; 2489 width: auto; 2490 max-width: 100%; 2491 flex-direction: row; 2492 /* gap: 10px; */ 2493 } 2494 2495 .support-element-heading { 2496 color: var(--White, #fff); 2497 text-align: center; 2498 font-size: 14px; 2499 font-style: normal; 2500 font-weight: 700; 2501 line-height: 21px; /* 150% */ 2502 } 2503 2504 .support-element-paragraph { 2505 color: var(--White, #fff); 2506 text-align: center; 2507 font-size: 14px; 2508 font-style: normal; 2509 font-weight: 500; 2510 line-height: 21px; /* 150% */ 2511 } 2512 2513 .support-gb-news-btn { 2514 display: flex; 2515 height: unset; 2516 padding: 8.333px; 2517 justify-content: center;
2518 align-items: center; 2519 gap: 8.333px; 2520 border-radius: 3.333px; 2521 color: white !important; 2522 background: var(--Terciary-Red, #c20000); 2523 font-weight: 700; 2524 text-decoration: none !important; 2525 } 2526 2527 .support-left-container { 2528 max-width: 343px; 2529 text-align: center; 2530 } 2531 2532 .right-picture { 2533 max-heigh: 201px; 2534 display: block; 2535 mask-image: linear-gradient(to right, black 70%, transparent 100%); 2536 -webkit-mask-image: linear-gradient(to right, black 70%, transparent 100%); 2537 } 2538 2539 .support-gb-news-btn:hover { 2540 color: white; 2541 background-color: #eb0000; 2542 } 2543 2544 @media (max-width: 678px) { 2545 .support-element-container { 2546 gap: 0; 2547 justify-content: center; 2548 padding: 15px; 2549 } 2550 2551 .support-element-container { 2552 display: flex; 2553 min-height: 100px; 2554 flex-direction: column; 2555 padding: 15px 10px; 2556 align-items: center; 2557 display: flex; 2558 flex-direction: column; 2559 align-items: center; 2560 flex: 1 0 0; 2561 align-self: stretch; 2562 gap: 0px; 2563 font-size: 12px; 2564 border-radius: 0; 2565 } 2566 2567 .support-element-heading { 2568 color: var(--White, #fff); 2569 text-align: center; 2570 font-size: 12px; 2571 margin: 0; 2572 font-weight: 700; 2573 line-height: 12px; /* 100% */ 2574 } 2575 .support-element-paragraph { 2576 color: var(--White, #fff); 2577 text-align: center; 2578 2579 font-size: 10px; 2580 2581 font-weight: 500; 2582 line-height: 10px; /* 100% */ 2583 } 2584 .support-gb-news-btn { 2585 height: 20px; 2586 } 2587 } 2588 2589 2590 /* mobile */ 2591 @media screen and (max-width: 670px) { 2592 #google-banner-placeholder.pn-boilerplate--newsletter { 2593 padding: 15px 10px; 2594 width: 100%; 2595 } 2596 #google-banner-placeholder .newsletter-title { 2597 font-size: 14px; 2598 } 2599 } 2600 2601 @media screen and (max-width: 300px) { 2602 #google-banner-placeholder .newsletter-title { 2603 font-size: 12px; 2604 } 2605 } 2606 .sign-btn { 2607 2608 } 2609</style><!-- End User Code --><div class="rm-component newsletter_component_outlined" data-name="newsletter_component" data-skin="outlined" data-node-id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/element_wrapper/element_wrapper[1]/create_element-" loading="eager" data-lazy-deps=""><template data-gbn-newsletter-template="true"><style> 2610 @font-face { 2611 font-family: "Montserrat"; 2612 font-style: normal; 2613 src: url("https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2") format("woff2"); 2614 font-display: swap; 2615 } 2616 2617 #newsletter-signup-id { 2618 margin-bottom: 10px; 2619 } 2620 2621 #newsletter-signup-id .gbn-newsletter { 2622 width: 100%; 2623 padding: 20px; 2624 box-sizing: border-box; 2625 border-top: 1px solid #d5d5d5; 2626 border-bottom: 1px solid #d5d5d5; 2627 background: #ffffff; 2628 color: #000f55; 2629 font-family: Montserrat, Arial, Helvetica, sans-serif; 2630 } 2631 2632 #newsletter-signup-id .gbn-newsletter * { 2633 box-sizing: border-box; 2634 } 2635 2636 #newsletter-signup-id .gbn-newsletter__visually-hidden { 2637 position: absolute; 2638 width: 1px; 2639 height: 1px; 2640 margin: -1px; 2641 border: 0; 2642 padding: 0; 2643 white-space: nowrap; 2644 clip-path: inset(100%); 2645 clip: rect(0 0 0 0); 2646 overflow: hidden; 2647 } 2648 2649 #newsletter-signup-id .gbn-newsletter__container { 2650 display: flex; 2651 align-items: center; 2652 flex-direction: column; 2653 gap: 10px; 2654 width: 100%; 2655 max-width: 100%; 2656 height: 100%; 2657 background: #ffffff; 2658 } 2659 2660 #newsletter-signup-id .gbn-newsletter__form { 2661 display: flex; 2662 align-items: center; 2663 justify-content: center; 2664 gap: 8px; 2665 /* width: 100%; */ 2666 max-width: 700px; 2667 margin: 0 auto; 2668 } 2669 2670 #newsletter-signup-id .gbn-newsletter__title { 2671 margin: 0; 2672 color: #000f55; 2673 font-size: 16px; 2674 font-weight: 600; 2675 line-height: 16px; 2676 text-align: center; 2677 white-space: nowrap; 2678 } 2679 2680 #newsletter-signup-id .gbn-newsletter__input-wrapper { 2681 position: relative; 2682 display: flex; 2683 gap: 8px; 2684 width: 100%; 2685 } 2686 2687 #newsletter-signup-id .gbn-newsletter__email { 2688 width: 100%; 2689 max-width: 248px; 2690 height: 30px; 2691 border: 1px solid #767676; 2692 border-radius: 4px; 2693 outline: none; 2694 font-family: Montserrat, Arial, Helvetica, sans-serif; 2695 text-align: center; 2696 } 2697 2698 #newsletter-signup-id .gbn-newsletter__email::placeholder { 2699 color: #a7a9ac; 2700 font-size: 12px; 2701 font-weight: 400; 2702 } 2703 2704 #newsletter-signup-id .gbn-newsletter__button { 2705 display: block; 2706 width: 100%; 2707 max-width: 82px; 2708 height: 30px; 2709 border: 0; 2710 border-radius: 4px; 2711 overflow: hidden; 2712 color: #ffffff; 2713 background: #c20000; 2714 font-family: Montserrat, Arial, Helvetica, sans-serif; 2715 font-size: 14px; 2716 font-weight: 700; 2717 line-height: 30px; 2718 text-align: center; 2719 white-space: nowrap; 2720 cursor: pointer; 2721 padding: 0 10px; 2722 } 2723 2724 #newsletter-signup-id .gbn-newsletter__button:hover { 2725 background-color: #d70000; 2726 } 2727 2728 #newsletter-signup-id .gbn-newsletter__terms { 2729 margin: 0; 2730 padding: 0 50px; 2731 color: #000f55; 2732 font-family: Montserrat, Arial, Helvetica, sans-serif; 2733 font-size: 12px; 2734 line-height: 17px; 2735 text-align: center; 2736 } 2737 2738 #newsletter-signup-id .gbn-newsletter__terms-link { 2739 color: #000f55; 2740 text-decoration: underline; 2741 } 2742 2743 @media screen and (max-width: 850px) { 2744 #newsletter-signup-id .gbn-newsletter__form { 2745 flex-direction: column; 2746 } 2747 2748 #newsletter-signup-id .gbn-newsletter__input-wrapper { 2749 justify-content: center; 2750 } 2751 2752 #newsletter-signup-id .gbn-newsletter__button { 2753 max-width: 90px; 2754 font-size: 14px; 2755 } 2756 } 2757 2758 @media screen and (max-width: 670px) { 2759 #newsletter-signup-id .gbn-newsletter { 2760 width: 100%; 2761 padding: 15px 10px; 2762 } 2763 2764 #newsletter-signup-id .gbn-newsletter__container { 2765 justify-content: center; 2766 max-height: 111px; 2767 } 2768 2769 #newsletter-signup-id .gbn-newsletter__button { 2770 display: flex; 2771 align-items: center; 2772 justify-content: center; 2773 font-size: 14px; 2774 line-height: normal; 2775 } 2776 2777 #newsletter-signup-id .gbn-newsletter__terms { 2778 padding: 0; 2779 font-size: 10px; 2780 } 2781 } 2782 2783 @media screen and (max-width: 300px) { 2784 #newsletter-signup-id .gbn-newsletter__title { 2785 font-size: 12px; 2786 } 2787 } 2788 </style><section class="gbn-newsletter" aria-label="Opinion newsletter signup" data-section="Opinion"><div class="gbn-newsletter__container"><form class="gbn-newsletter__form" action="post" novalidate="novalidate"><div class="gbn-newsletter__title-wrapper"><p class="gbn-newsletter__title"> 2789 Sign up for Opinion Newsletters 2790 </p></div><div class="gbn-newsletter__input-wrapper"><label class="gbn-newsletter__visually-hidden" for="gbn-newsletter-email"> 2791 Email address 2792 </label><input class="gbn-newsletter__email" type="email" id="gbn-newsletter-email" name="email" placeholder="Enter your email" autocomplete="email"/><button class="gbn-newsletter__button gbn-newsletter__button--submit" type="submit"> 2793 SIGN UP 2794 </button></div></form><p class="gbn-newsletter__terms"> 2795 By signing up you agree to our 2796 <a class="gbn-newsletter__terms-link" href="https://www.gbnews.com/terms/terms-of-use" target="_blank" rel="noopener"> 2797 Terms of Use, 2798 </a><a class="gbn-newsletter__terms-link" href="https://www.gbnews.com/terms/privacy-policy" target="_blank" rel="noopener"> 2799 Privacy Policy, 2800 </a> 2801 and 2802 <a class="gbn-newsletter__terms-link" href="https://www.gbnews.com/terms/community-rule-book" target="_blank" rel="noopener"> 2803 Community Rules. 2804 </a></p></div></section><div class="newsletter-success"><b class="pn-boilerplate__accent" id="success-title"><t>Thank you for signing up!</t></b><p class="pn-boilerplate__text pn-boilerplate__text--subheader"><t> 2805 See the latest from GB News 2806 <a href="https://www.gbnews.com">here</a></t></p></div></template>
2806<script type="application/rmprops+json">{"title":"Opinion","section":"Opinion","show_form":true}</script>
2806</div></div><div class="module shared__post--module embed-dontmiss__posts embed-carousel hidden" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_2"><!-- User Code --><h3 class="fordont module-headline__text h2">Don't Miss</h3><!-- End User Code --><div class="mb-2 shared__post--module" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_2_3"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="section_12" data-format="posts-custom" data-source="embed-dontmiss" data-source-type="page" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="true" data-attr-cache_ttl_in_seconds="43200" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_2_3" data-attr-source_unique="true" data-attr-layout_quality="3" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/element_wrapper/element_wrapper[2]/posts-" data-attr-source="filtered" data-attr-limit="3" data-attr-all_element_order="snark_line,section,custom_field_is_live,custom_field_is_analysiis,headline" data-attr-headline_text="" data-attr-element_classes="shared__post--module" data-attr-source_id="embed-dontmiss" data-attr-layout_all_headline_tag="h2" data-attr-layout_columns="3" data-attr-data-rm-advanced="true" data-attr-data-rm-ecomerce="true" data-attr-layout_image_column_width="20" data-attr-layout_section="over" data-attr-from_regular_sections="editorial/dont-miss-article-page,content-type/article,home,membership" data-attr-use_tag_image_for_lead_media="true" data-attr-from_regular_sections_other_than="content-type/non-content,content-type/catch-up,content-type/clips" data-attr-layout_custom_field_is_analysiis="bottom" data-attr-layout_custom_field_is_live="over" data-attr-data-rm-collapsed="false" data-attr-layout_headline="bottom" data-attr-layout_all_image_crop="4x3" data-attr-layout_snark_line="over" data-attr-without_current="true" data-attr-source_site="parent_site"><div class="posts-wrapper clearfix"><div class="widget post-section--news" elid="2677972426" data-category="News"><article elid="2677972426" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677972426"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><a href="https://www.gbnews.com/news/london-news-barrister-fined-dialling-uk-hearing-while-living-germany" aria-label="Barrister fined £7k for dialling into UK hearing from train while living abroad in Germany"><img role="img" type="lazy-image" alt="Michael Engelhardt-Sprack" aria-label="Michael Engelhardt-Sprack" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/michael-engelhardt-sprack.png?id=68005449&width=2000&height=1500&quality=85&coordinates=113%2C0%2C113%2C0" style="object-fit: cover;" class="rm-lazyloadable-image" width="2000" height="1500"/></a><div class="widget__body clearfix sm-mt-1"><a class="widget__section js-load-brick-on-click" href="https://www.gbnews.com/news/">News</a></div></div><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text custom-post-headline" href="https://www.gbnews.com/news/london-news-barrister-fined-dialling-uk-hearing-while-living-germany" aria-label="Barrister fined £7k for dialling into UK hearing from train while living abroad in Germany" data-type="text"> 2807 Barrister fined £7k for dialling into UK hearing from train while living abroad in Germany 2808 </a></h2></div></div></div>
2808<script type="application/json" id="post-context-2677972426" class="post-context post-context-2677972426"> 2809 {"customDimensions": {"1":"Ed Griffiths","7":2677972426,"3":"","2":"news","4":"10/01/2026"}, "post": {"id": 2677972426, "providerId": 0, "sections": [0, 584086272, 2262988002, 588563272, 586304622, 590311187, 586304181, 586311833], "authors": [26815232], "tags": [], "streams": [], "split_testing": {}} } 2810</script>
2810</article></div><div class="widget post-section--money" elid="2677972595" data-category="Money"><article elid="2677972595" data-frozen-sections="[590311187]" class="clearfix video-article sm-mb-1 quality-HD post-2677972595"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><a href="https://www.gbnews.com/money/uk-borrowing-costs-ftse-100-highest-level-since-1998" aria-label="UK borrowing costs hit highest level since 1998 in blow to John Healey ahead of Budget"><img role="img" type="lazy-image" alt="John Healey" aria-label="John Healey" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/john-healey.jpg?id=68005504&width=2000&height=1500&quality=85&coordinates=367%2C1%2C33%2C-1" style="object-fit: cover;" class="rm-lazyloadable-image" width="2000" height="1500"/></a><div class="widget__body clearfix sm-mt-1"><a class="widget__section js-load-brick-on-click" href="https://www.gbnews.com/money/">Money</a></div></div><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text " href="https://www.gbnews.com/money/uk-borrowing-costs-ftse-100-highest-level-since-1998" aria-label="UK borrowing costs hit highest level since 1998 in blow to John Healey ahead of Budget" data-type="text"> 2811 UK borrowing costs hit highest level since 1998 in blow to John Healey ahead of Budget 2812 </a></h2></div></div></div>
2812<script type="application/json" id="post-context-2677972595" class="post-context post-context-2677972595"> 2813 {"customDimensions": {"1":"Temie Laleye","7":2677972595,"3":"","2":"money","4":"10/01/2026"}, "post": {"id": 2677972595, "providerId": 20, "sections": [588563296, 584086272, 2262988002, 588563271, 586304622, 590311187, 586304181, 586311833], "authors": [26527465], "tags": [], "streams": [], "split_testing": {}} } 2814</script>
2814</article></div><div class="widget post-section--sport/boxing" elid="2677972350" data-category="Boxing"><article elid="2677972350" data-frozen-sections="[590311187]" class="clearfix video-article sm-mb-1 quality-HD post-2677972350"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><a href="https://www.gbnews.com/sport/boxing/tyson-fury-uncle-anthony-joshua-fight" aria-label="Tyson Fury responds after Anthony Joshua turns to his uncle for help before heavyweight clash"><img role="img" type="lazy-image" alt="Tyson Fury has brushed off Anthony Joshua's decision to seek advice from his estranged uncle Peter ahead of their heavyweight showdown in Cardiff" aria-label="Tyson Fury has brushed off Anthony Joshua's decision to seek advice from his estranged uncle Peter ahead of their heavyweight showdown in Cardiff" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/tyson-fury-has-brushed-off-anthony-joshua-s-decision-to-seek-advice-from-his-estranged-uncle-peter-ahead-of-their-heavyweight-sh.jpg?id=68005313&width=2000&height=1500&quality=85&coordinates=110%2C0%2C111%2C0" style="object-fit: cover;" class="rm-lazyloadable-image" width="2000" height="1500"/></a><div class="widget__body clearfix sm-mt-1"><a class="widget__section js-load-brick-on-click" href="https://www.gbnews.com/sport/boxing/">Boxing</a></div></div><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text custom-post-headline" href="https://www.gbnews.com/sport/boxing/tyson-fury-uncle-anthony-joshua-fight" aria-label="Tyson Fury responds after Anthony Joshua turns to his uncle for help before heavyweight clash" data-type="text"> 2815 Tyson Fury responds after Anthony Joshua turns to his uncle for help before heavyweight clash 2816 </a></h2></div></div></div>
2816<script type="application/json" id="post-context-2677972350" class="post-context post-context-2677972350"> 2817 {"customDimensions": {"1":"Jack Otway","7":2677972350,"3":"","2":"boxing","4":"10/01/2026"}, "post": {"id": 2677972350, "providerId": 0, "sections": [0, 584086272, 2291052164, 2232181081, 588563276, 2291052237, 586304622, 590311187, 586304181, 586311833], "authors": [26308038], "tags": [], "streams": [], "split_testing": {}} } 2818</script>
2818</article></div></div></div></div></div><div class="module shared__post--module embed-carousel hidden" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_3"></div>
2818<script> 2819 2820//calling custom page endpoint to get ForYou module with sections query param we did previously in Jinja 2821 async function loadForYouContent() { 2822 //get articles from embed missed 2823 const elids = Array.from(document.querySelectorAll('.embed-dontmiss__posts article[elid]')) 2824 .map(article => article.getAttribute('elid')) 2825 .filter(Boolean) 2826 .join(','); 2827 2828 const response = await fetch( 2829 `/res/custom_page/data.js?resource_id=generic&layout_name=ForYou&formats=html§ions=money/economy,money/store-closures&exclude_ids=${elids},2677966747` 2830 ); 2831 const posts = await response.json(); 2832 2833 const placeholder = document.querySelector('.embed-latest'); //currently I'm replacing latest embed with forYou 2834 if (placeholder && posts.html) { 2835 const tempDiv = document.createElement('div'); 2836 tempDiv.innerHTML = posts.html; 2837 [...tempDiv.children].forEach(child => placeholder.appendChild(child)); 2838 } 2839 //embed injector 2840 const modSlot = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p)')[8]; 2841 var embedForYou=document.querySelector('.embed-latest'); 2842 2843 if (embedForYou) { 2844 let foryou = document.querySelector('.embed-foryou__posts'); 2845 var foryouclone = foryou.cloneNode(true); 2846 foryouclone.classList.remove('hidden'); 2847 console.log(embedForYou); 2848 modSlot.appendChild(foryouclone); 2849 2850 if(embedForYou.querySelectorAll('.widget').length < 3 ){ 2851 embedForYou.classList.add('hidden'); 2852 } 2853 } 2854 } 2855 2856 2857 // loadForYouContent(); 2858 2859</script>
2859<div class="module presenter--modules show-only-if-three-post-present embed-mostread__posts hidden" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_5"><!-- User Code --><h3 class="module-headline__text h2">Most Read</h3><!-- End User Code --><div class="carousel--wrapper" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_5_3"><div class="mb-2 carousels shared--posts__module embed-carousel" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_5_3_0"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="section_13" data-format="posts-custom" data-source="embed-mostread" data-source-type="page" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="true" data-attr-cache_ttl_in_seconds="300" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_5_3_0" data-attr-source_unique="true" data-attr-layout_quality="1" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/element_wrapper/element_wrapper[4]/element_wrapper/posts-" data-attr-source="filtered" data-attr-use_tag_image_for_lead_media="true" data-attr-limit="3" data-attr-all_element_order="snark_line,section,custom_field_is_live,custom_field_is_exclusive,custom_field_is_analysiis,headline" data-attr-element_classes="carousels shared--posts__module embed-carousel" data-attr-layout_all_image_crop="4x3" data-attr-data-rm-device-crops="true" data-attr-headline_text="" data-attr-layout_snark_line="over" data-attr-order_period="1d" data-attr-from_regular_sections_other_than="content-type/non-content,content-type/catch-up,content-type/clips,editorial/static-pages,membership" data-attr-layout_custom_field_is_exclusive="over" data-attr-layout_custom_field_is_live="over" data-attr-layout_section="over" data-attr-layout_custom_field_is_analysiis="bottom" data-attr-layout_headline="bottom" data-attr-source_id="embed-mostread" data-attr-from_regular_sections="opinion" data-attr-order="page-views" data-attr-without_current="true" data-attr-source_site="parent_site"><div class="posts-wrapper clearfix"><div class="widget post-section--opinion" elid="2677968708" data-category="Opinion"><article elid="2677968708" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677968708"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><a href="https://www.gbnews.com/opinion/andy-burnham-torn-up-focus-domestic-issues-brexit-u-turn-jacob-rees-mogg" aria-label="Andy Burnham has torn up focussing on domestic issues and is rerunning divisive arguments, says J..."><img role="img" type="lazy-image" alt="Jacob Rees-Mogg" aria-label="Jacob Rees-Mogg" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/jacob-rees-mogg.png?id=68003209&width=2000&height=1500&quality=85&coordinates=240%2C0%2C240%2C0" style="object-fit: cover;" class="rm-lazyloadable-image" width="2000" height="1500"/></a><div class="widget__body clearfix sm-mt-1"><a class="widget__section js-load-brick-on-click" href="https://www.gbnews.com/opinion/">Opinion</a></div></div><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text custom-post-headline" href="https://www.gbnews.com/opinion/andy-burnham-torn-up-focus-domestic-issues-brexit-u-turn-jacob-rees-mogg" aria-label="Andy Burnham has torn up focussing on domestic issues and is rerunning divisive arguments, says J..." data-type="text"> 2860 'Andy Burnham has torn up focussing on domestic issues and is rerunning divisive arguments' 2861 </a></h2></div></div></div>
2861<script type="application/json" id="post-context-2677968708" class="post-context post-context-2677968708"> 2862 {"customDimensions": {"1":"GB News Reporter","7":2677968708,"3":"","2":"opinion","4":"09/30/2026"}, "post": {"id": 2677968708, "providerId": 0, "sections": [0, 584086272, 594625990, 588563272, 588563273, 588563274, 594637260, 590311187, 2271798228, 586311833, 582539099, 582539100, 588563425, 586304622, 586304181, 588563326], "authors": [26068995], "tags": [], "streams": [], "split_testing": {}} } 2863</script>
2863</article></div><div class="widget post-section--youdecide" elid="2677947756" data-category="You Decide"><article elid="2677947756" data-frozen-sections="[]" class="clearfix image-article sm-mb-1 quality-HD post-2677947756"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><a href="https://www.gbnews.com/youdecide/poll-andy-burnham-premiership-you-decide" aria-label="POLL: How would you rate Andy Burnham's premiership so far? YOU DECIDE"><img role="img" type="lazy-image" alt="Andy Burnham" aria-label="Andy Burnham" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/andy-burnham.jpg?id=67768662&width=2000&height=1500&quality=85&coordinates=111%2C0%2C111%2C0" style="object-fit: cover;" class="rm-lazyloadable-image" width="2000" height="1500"/></a><div class="widget__body clearfix sm-mt-1"><a class="widget__section js-load-brick-on-click" href="https://www.gbnews.com/youdecide/">You Decide</a></div></div><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text custom-post-headline" href="https://www.gbnews.com/youdecide/poll-andy-burnham-premiership-you-decide" aria-label="POLL: How would you rate Andy Burnham's premiership so far? YOU DECIDE" data-type="text"> 2864 POLL: How would you rate Andy Burnham's premiership so far? YOU DECIDE 2865 </a></h2></div></div></div>
2865<script type="application/json" id="post-context-2677947756" class="post-context post-context-2677947756"> 2866 {"customDimensions": {"1":"GB News Reporter","7":2677947756,"3":"","2":"youdecide","4":"09/27/2026"}, "post": {"id": 2677947756, "providerId": 0, "sections": [0, 584086272, 2285833317, 588563273, 586304622, 590311187, 586304181, 586311833, 2266505148], "authors": [26068995], "tags": [], "streams": [], "split_testing": {}} } 2867</script>
2867</article></div><div class="widget post-section--opinion" elid="2677968856" data-category="Opinion"><article elid="2677968856" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677968856"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><a href="https://www.gbnews.com/opinion/flydubai-flight-hijacking-important-reminder-level-threat-jewish-people-face-patrick-christys" aria-label="The Flydubai flight hijacking serves as an important reminder about the level of threat Jewish pe..."><img role="img" type="lazy-image" alt="Patrick Christys" aria-label="Patrick Christys" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/patrick-christys.png?id=68003355&width=2000&height=1500&quality=85&coordinates=240%2C0%2C240%2C0" style="object-fit: cover;" class="rm-lazyloadable-image" width="2000" height="1500"/></a><div class="widget__body clearfix sm-mt-1"><a class="widget__section js-load-brick-on-click" href="https://www.gbnews.com/opinion/">Opinion</a></div></div><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text custom-post-headline" href="https://www.gbnews.com/opinion/flydubai-flight-hijacking-important-reminder-level-threat-jewish-people-face-patrick-christys" aria-label="The Flydubai flight hijacking serves as an important reminder about the level of threat Jewish pe..." data-type="text"> 2868 'The Flydubai hijacking serves as a reminder about the level of threat Jewish people face' 2869 </a></h2></div></div></div>
2869<script type="application/json" id="post-context-2677968856" class="post-context post-context-2677968856"> 2870 {"customDimensions": {"1":"GB News Reporter","7":2677968856,"3":"","2":"opinion","4":"09/30/2026"}, "post": {"id": 2677968856, "providerId": 0, "sections": [0, 584086272, 586311833, 588563272, 583176073, 588563273, 586304622, 590311187, 2271798228, 586304181, 583176213, 2240099801, 582539099, 582539100], "authors": [26068995], "tags": [], "streams": [], "split_testing": {}} } 2871</script>
2871</article></div></div></div></div></div></div><div class="mb-2 module shared__post--module embed-latest__posts hidden " id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_6"><div class="module-headline"><h2 class="module-headline__text h2"> 2872 Latest 2873 </h2></div><div class="posts-custom posts-custom-section section-holder clearfix" data-block="section_14" data-format="posts-custom" data-source="embed-latest" data-source-type="page" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="true" data-attr-cache_ttl_in_seconds="43200" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_6" data-attr-source_unique="true" data-attr-layout_quality="2" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/element_wrapper/posts-" data-attr-source="filtered" data-attr-limit="1" data-attr-all_element_order="headline,subheadline,section,author,community_name,date,date_modified,badges,badges_sponsored,photo_credit,photo_caption,body,snark_line,page_views,post_shares,follow_button,community_comments,like_button,source_link,collection_button,tags,primary_tag,main_author,all_sections,product_prices,product_vendor,product_buy_link,words_count,time_to_read,site_field_Linkout,custom_field_user_email,custom_field_user_first_name,custom_field_user_last_name,custom_field_is_live,custom_field_is_exclusive,custom_field_is_breaking_news,custom_field_tldr,custom_field_logo,site_field_provider_author_id,site_field_original_item,custom_field_authored_by_presenter,custom_field_is_analysiis,custom_field_is_play,custom_field_is_event,custom_field_url,custom_field_is_podcast,custom_field_news_type" data-attr-headline_text="Latest" data-attr-element_classes="module shared__post--module embed-latest__posts hidden " data-attr-source_id="embed-latest" data-attr-layout_headline="right" data-attr-layout_all_image_crop="16x9" data-attr-layout_all_headline_tag="h2" data-attr-layout_columns="2" data-attr-data-rm-advanced="true" data-attr-data-rm-ecomerce="true" data-attr-layout_image_column_width="45" data-attr-from_regular_sections_other_than="content-type/non-content,editorial/static-pages" data-attr-from_regular_sections="content-type/article,content-type/live-blog,content-type/qa" data-attr-without_current="true" data-attr-source_site="parent_site"><div class="posts-wrapper clearfix"><div class="widget post-section--royal" elid="2677972333"><article elid="2677972333" data-frozen-sections="[590311187]" class="clearfix video-article sm-mb-1 quality-HD post-2677972333"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:45.0%;"><div class="widget__head"><a href="https://www.gbnews.com/royal/piers-morgan-legal-documents-earl-charles-spencer" aria-label="Piers Morgan publishes legal documents as he continues his action against Earl Charles Spencer"><div class="widget__image crop-16x9" role="img" aria-label="Piers Morgan" data-runner-img-hd="https://www.gbnews.com/media-library/piers-morgan.jpg?id=68005347&width=1245&height=700&quality=85&coordinates=0%2C0%2C0%2C208" data-runner-img-md="https://www.gbnews.com/media-library/piers-morgan.jpg?id=68005347&width=1245&height=700&quality=85&coordinates=0%2C0%2C0%2C208" data-runner-img-sd="https://www.gbnews.com/media-library/piers-morgan.jpg?id=68005347&width=400&height=225&quality=85&coordinates=0%2C0%2C0%2C208" data-runner-style="padding-bottom: 56.25%;" style="padding-bottom: 56.25%;" data-type="image"><div class="lazyload-placeholder"><div class="runner-spinner"><svg class="runner-spinner-circular" viewbox="25 25 50 50"><circle class="runner-spinner-path" cx="50" cy="50" r="20" fill="none" stroke-width="3" stroke-miterlimit="10"></circle></svg></div></div></div></a></div></div><div class="rm-col-right col" style="width:55.0%;"><div class="widget__body clearfix sm-mt-1"><h2 class="widget__headline h2"><a class="widget__headline-text custom-post-headline" href="https://www.gbnews.com/royal/piers-morgan-legal-documents-earl-charles-spencer" aria-label="Piers Morgan publishes legal documents as he continues his action against Earl Charles Spencer" data-type="text"> 2874 Piers Morgan publishes legal documents as he continues his action against Earl Charles Spencer 2875 </a></h2></div></div></div>
2875<script type="application/json" id="post-context-2677972333" class="post-context post-context-2677972333"> 2876 {"customDimensions": {"1":"Svar Nanan-Sen","7":2677972333,"3":"","2":"royal","4":"10/01/2026"}, "post": {"id": 2677972333, "providerId": 0, "sections": [0, 584086272, 2272027524, 588563275, 586304622, 590311187, 586304181, 586311833], "authors": [25902270], "tags": [], "streams": [], "split_testing": {}} } 2877</script>
2877</article></div></div></div></div><div class="mb-2 main-post__bottom" id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_7_0_1"><div class="posts-custom posts-custom-section section-holder clearfix" data-block="None" data-format="posts-custom" data-source="current_post" data-source-type="current_post" data-source-unique="true" data-section-id="" data-is-reordable="false" data-using-stickers="false" data-has-more="false" data-attr-format="posts-custom" data-attr-posts_id="sPost_Default_0_0_16_0_0_2_0_15_0_0_4_7_0_1" data-attr-layout_quality="1" data-attr-header_template="jinja/post/custom-css.html" data-attr-node_id="/root/blocks/block[post_default]/abtests/abtest[1]/rm_tabs/rm_wrapper[1]/element_wrapper[2]/element_wrapper/element_wrapper/element_wrapper/choose/when[(post.roar_specific_data.no_ads_or_post.roar_specific_data.affiliate_post_or_is_desktop)]/current_post-" data-attr-use_tag_image_for_lead_media="true" data-attr-layout_all_headline_tag="h1" data-attr-layout_all_subheadline_tag="h2" data-attr-element_classes="main-post__bottom" data-attr-layout_body="bottom" data-attr-all_element_order="body,all_sections" data-attr-layout_all_sections="bottom" data-attr-show_full_post_body="true" data-attr-layout_remove_image="true" data-attr-data-rm-advanced="true" data-attr-filters="" data-attr-section_url="" data-attr-source="" data-attr-is_current_post="true"><div class="posts-wrapper clearfix"><div class="widget post-partial post-section--money" data-category="Money"><article elid="2677966747" data-frozen-sections="[]" class="clearfix video-article sm-mb-1 quality-HD post-2677966747" data-category="Money"><div class="row px10"><div class="rm-col-center col sm-mb-1" style="width:100.0%;"><div class="widget__head"><div class="widget__video crop-3x1 clearfix" style="padding-bottom: 33.33333333333333%;"><video class="rm-hero-media" width="100%" height="100%" controls="controls"><source src="https://www.gbnews.com/res/scraper/embed/?video_url=https%3A%2F%2Fvideo.primis.tech%2Fuploads%2Fcn1%2Fvideo%2Fusers%2Fhls%2F31875%2Fvideo_68d40f85bd57c824144604%2Fvid6aba51aabf65c622798018.mp4%2Fchunklist_440.m3u8" type="video/mp4"/> 2878 Your browser does not support the video tag. 2879 </video></div></div><div class="widget__body clearfix sm-mt-1"><span class="js-scroll-trigger" data-target="body" data-triggers="render-rebelbar" data-toggle-class="with-floating-shares"></span><div id="utm_campaign"></div><div class="body js-expandable clearfix js-listicle-body css-listicle-body-2677966747" data-headline="Popular ice cream franchise 'no longer active' as all locations close for good"><div class="body-description"><p>Subzero, the much-loved Welsh ice cream brand with a history spanning more than six decades, has permanently closed all three of its parlours in Rhondda, Caerphilly and Newport, leaving loyal customers stunned.</p><p>The company confirmed that "Subzero was no longer active" and that its team could no longer carry on "providing locally made ice-cream".</p><hr/><p><div class="rebellt-item 2880 2881 2882 2883 col1" id="rebelltitem1" data-id="1" data-reload-ads="false" data-is-image="False" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=1#rebelltitem1" data-basename="particle-1" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><p>Its website and all social media channels have been taken offline, with every location now shuttered.</p><p>Fans reacted with dismay online, calling the closure "shocking news" and lamenting what they described as "a sad loss" of what many considered the "best tasting ice-cream ever".</p></div><div class="rebellt-item 2884 2885 2886 2887 col1" id="rebelltitem3" data-id="3" data-reload-ads="false" data-is-image="True" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=3#rebelltitem3" data-basename="particle-3" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><img id="dd639" data-rm-shortcode-id="fe1f0a5f47d4ddd9a3d26a987741995f" data-rm-shortcode-name="rebelmouse-image" class="rm-shortcode rm-lazyloadable-image " lazy-loadable="true" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/woman-putting-ice-cream-on-a-cone-and-sub-zero-ice-cream-parlour.jpg?id=68001683&width=980" width="1600" height="900" alt="Woman putting ice cream on a cone and Sub Zero ice cream parlour"/><small class="image-media media-caption"><span class="media-photo-credit-new"><p>A popular ice cream chain is closing all its stores </p> | </span><p>GETTY / GOOGLE </p></small></div><div class="rebellt-item 2888 2889 2890 2891 col1" id="rebelltitem5" data-id="5" data-reload-ads="false" data-is-image="False" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=5#rebelltitem5" data-basename="particle-5" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><div class="embed-latest"></div><p>The business first opened its doors in 1959 under the name Mr Creemy, trading as a family-run establishment in Penygraig.</p><p><span></span>A trademark dispute forced a rebrand in 2009, at which point the company adopted the Subzero name.</p><p><span></span>Its popularity eventually extended beyond the parlours, with Subzero products making their way onto the shelves of major retailers.</p><p><span></span>Days ago, customers who had placed orders in advance arrived at the premises to pick up their treats, only to discover that the doors were already locked.</p></div><div class="rebellt-item 2892 2893 2894 2895 col1" id="rebelltitem6" data-id="6" data-reload-ads="false" data-is-image="True" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=6#rebelltitem6" data-basename="particle-6" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><img id="06d3d" data-rm-shortcode-id="43dd55cf58fbbe20c222ebfa4dab5f7e" data-rm-shortcode-name="rebelmouse-image" class="rm-shortcode rm-lazyloadable-image " lazy-loadable="true" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/store-closures.jpg?id=54115828&width=980" width="1600" height="900" alt="Store closures"/><small class="image-media media-caption"><span class="media-photo-credit-new">The high street has been hit with store closures in recent months. | </span>PA</small></div><div class="rebellt-item 2896 latest-development 2897 2898 2899 col1" id="rebelltitem7" data-id="7" data-reload-ads="false" data-is-image="False" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=7#rebelltitem7" data-basename="latest-developments" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><h3 data-role="headline"> 2900 2901 LATEST DEVELOPMENTS 2902 2903 2904 </h3><ul><li><a href="https://www.gbnews.com/money/morrisons-sells-off-in-store-pharmacies-cut-costs" target="_self">Major UK supermarket chain sells off in-store pharmacies in bid to cut costs</a></li><li><a href="https://www.gbnews.com/money/evri-delivery-delays-network-parcels-stranded" target="_self">Evri confirms delivery delays as network overhaul leaves parcels stranded</a><span></span><span></span><span></span><span></span></li><li><a href="https://www.gbnews.com/money/energy-bill-submit-meter-reading-price-cap" target="_self">Households urged to 'submit meter reading' NOW as energy bills to rise from next week</a><span></span><span></span><span></span><span></span></li></ul></div><div class="rebellt-item 2905 2906 2907 2908 col1" id="rebelltitem9" data-id="9" data-reload-ads="false" data-is-image="True" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=9#rebelltitem9" data-basename="particle-9" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><img id="719fa" data-rm-shortcode-id="0059cb3114064384a7183a4e29dfb42a" data-rm-shortcode-name="rebelmouse-image" class="rm-shortcode rm-lazyloadable-image " lazy-loadable="true" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204500%203000'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/high-street
2908-shoppers.jpg?id=51462690&width=980" width="4500" height="3000" alt="high street shoppers"/><small class="image-media media-caption"><span class="media-photo-credit-new">High streets have been hit by a wave of closures since the pandemic | </span>PA</small></div><div class="rebellt-item 2909 2910 2911 2912 col1" id="rebelltitem10" data-id="10" data-reload-ads="false" data-is-image="False" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=10#rebelltitem10" data-basename="particle-10" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><div class="embed-dontmiss"></div><p>Staff were reportedly given no prior warning either, learning that the business had ceased trading only on the morning it happened.</p><p><span></span>In its farewell message, the Subzero team expressed deep gratitude to the communities that had sustained the business for so long.</p><p>The statement read: "We have thoroughly enjoyed our time serving you all and seeing everyone young and old take joy from what we did."</p><p><span></span>The brand credited its customers' loyalty and spirit for making Subzero what it became, adding: "for that we will be forever grateful. So from all the team, so long friends."</p></div><div class="rebellt-item 2913 2914 2915 2916 col1" id="rebelltitem11" data-id="11" data-reload-ads="false" data-is-image="True" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=11#rebelltitem11" data-basename="particle-11" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><img id="a8eea" data-rm-shortcode-id="afe714c0891114cdcb1da179a4dfe17a" data-rm-shortcode-name="rebelmouse-image" class="rm-shortcode rm-lazyloadable-image " lazy-loadable="true" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20800'%3E%3C/svg%3E" data-runner-src="https://www.gbnews.com/media-library/selection-of-ice-cream-pops.jpg?id=61132894&width=980" width="1200" height="800" alt="Selection of ice cream pops"/><small class="image-media media-caption"><span class="media-photo-credit-new"><p>Ice lollies </p> | </span>GETTY IMAGES</small></div><div class="rebellt-item 2917 2918 2919 2920 col1" id="rebelltitem12" data-id="12" data-reload-ads="false" data-is-image="False" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=12#rebelltitem12" data-basename="particle-12" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><div class="embed-mostread"></div></div><div class="rebellt-item 2921 2922 2923 2924 col1" id="rebelltitem14" data-id="14" data-reload-ads="false" data-is-image="False" data-href="https://www.gbnews.com/money/store-closure-ice-cream-subzero?rebelltitem=14#rebelltitem14" data-basename="particle-14" data-post-id="2677966747" data-published-at="1790780153" data-use-pagination="False"><p><br/></p><p><br/></p><div id="our-standards-wrapper"><p class="our-standards"><strong>Our Standards: 2925 <a href="https://www.gbnews.com/about-us/our-editorial-charter" data-og-href="https://www.gbnews.com/about-us/our-editorial-charter">The GB News Editorial Charter</a></strong></p></div></div></p><div class="post-pager js-listicle-pager" data-listicle-style="" data-async_load_parameters="settings=%7B%22use_pagination%22%3A+false%2C+%22pagination_order%22%3A+%5B%5D%2C+%22use_ads%22%3A+false%2C+%22ads_order%22%3A+%5B%5D%2C+%22use_numeration%22%3A+false%2C+%22numeration_sort%22%3A+-1%2C+%22items_as_posts%22%3A+false%2C+%22body_text_above%22%3A+false%2C+%22layout_type%22%3A+1%2C+%22show_columns_on_mobile%22%3A+false%2C+%22allow_url_update%22%3A+true%2C+%22is_guest_voting_allowed%22%3A+true%2C+%22cooldown_in_seconds%22%3A+null%2C+%22multiple_answers%22%3A+false%2C+%22up_down_voting%22%3A+false%2C+%22reorder_voting%22%3A+false%2C+%22no_redirect%22%3A+false%2C+%22no_post_section%22%3A+false%2C+%22enter_url%22%3A+false%2C+%22next_post_url%22%3A+null%2C+%22voting_extra_fields%22%3A+%7B%7D%2C+%22_deprecated_allow_url_change%22%3A+true%2C+%22_deprecated_turn_into_posts%22%3A+false%2C+%22source%22%3A+%22post_listicle_settings%22%2C+%22list_breaks%22%3A+null%2C+%22ads_breaks%22%3A+null%2C+%22prevent_last_break_repetition%22%3A+false%7D&display_ads=1&platform=desktop"></div></div></div><span class="" data-elid="2677966747" data-post-url="https://www.gbnews.com/money/store-closure-ice-cream-subzero" data-authors="Patrick O'Donnell" data-headline="Popular ice cream franchise 'no longer active' as all locations close for good" data-page-title="Store closures alert: Ice cream franchise Subzero 'no longer active' as all sites shut"></span><div class="all-related-sections"><a href="https://www.gbnews.com/money/">Money</a><a href="https://www.gbnews.com/money/economy/">Economy</a><a href="https://www.gbnews.com/money/store-closures/">Store closures</a></div></div></div></div>
2925<script type="application/json" id="post-context-2677966747" class="post-context post-context-2677966747"> 2926 {"customDimensions": {"1":"Patrick O'Donnell","7":2677966747,"3":"","2":"money","4":"09/30/2026"}, "post": {"id": 2677966747, "providerId": 0, "sections": [0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833], "authors": [26443345], "tags": [], "streams": [{"family(67bf1ec4027babe3b08d4d5e,0)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,2251910421)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,584086272)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304181)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586304622)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,586311833)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563271)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,588563296)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(67bf1ec4027babe3b08d4d5e,590311187)": {"period": {"window": "7*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,0)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,2251910421)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,584086272)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304181)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586304622)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,586311833)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563271)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,588563296)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}, {"family(68d2d34ab1265c0e0fa22efe,590311187)": {"period": {"window": "1*1d"}, "events": {"post-page-view": 1.0}}}], "split_testing": {}} } 2927</script>
2927</article></div></div></div></div><!-- User Code -->
2927<script> 2928 let links = document.querySelectorAll('.all-related-sections a'); 2929 2930 // console.log("YOUR LINKS", links[0]) 2931 2932 links.forEach(link => { 2933 let linkText = link.textContent.trim(); 2934 let slug = linkText.replace(/\s+/g, ''); 2935 2936 let topicsButton = document.createElement("button"); 2937 topicsButton.classList.add("topicIcons"); 2938 topicsButton.id = `topicIcon${slug}`; 2939 topicsButton.setAttribute("title", `Follow ${linkText} for more personalised content`); 2940 2941 topicsButton.style.width = ""; 2942 topicsButton.style.height = ""; 2943 topicsButton.style.top = ""; 2944 2945 link.appendChild(topicsButton); 2946 }); 2947</script>
2947<!-- End User Code --><!-- User Code -->
2947<script> 2948 // Load GBN ID or use existing if available 2949 let isLoggedInVal; 2950 window.gbnID = window.gbnID || []; 2951 let isLoggedIn 2952 window.gbnID.push([ 2953 'init', 2954 async () => { 2955 isLoggedInVal = await window.gbnID.isLoggedIn(); 2956 console.log(isLoggedInVal, "isLogged in val"); 2957 // Set Event listeners here 2958 async function init() { 2959 await setupEventListeners(); 2960 } 2961 init(); 2962 2963 2964 async function setupEventListeners() { 2965 let theUserUid; 2966 if (window.gbnID._isLoggedIn) { 2967 theUserUid = await window.gbnID._currentUser.id; 2968 } else { 2969 theUserUid = null; 2970 } 2971 2972 console.log("the user uid: ", theUserUid); 2973 console.log("the user: ", window.gbnID) 2974 2975 let existingFollowTopicsArray = await window.gbnID?._currentUser?.interests?.followedTopics || []; 2976 2977 let links = document.querySelectorAll('.all-related-sections a'); 2978 links.forEach(link => { 2979 let linkText = link.textContent.trim(); 2980 let slug = linkText.replace(/\s+/g, ''); 2981 console.log("slug", slug); 2982 let topicsButton = document.getElementById(`topicIcon${slug}`); 2983 2984 if (!topicsButton) return; 2985 2986 // Remove any existing event listeners to prevent duplicates 2987 topicsButton.replaceWith(topicsButton.cloneNode(true)); 2988 topicsButton = document.getElementById(`topicIcon${slug}`); 2989 2990 // set initial state 2991 if (existingFollowTopicsArray.includes(slug)) { 2992 tickFollowTopic(slug); 2993 } 2994 2995 // add event listener in all cases 2996 topicsButton.addEventListener("click", (e) => { 2997 e.preventDefault(); 2998 e.stopImmediatePropagation(); 2999 3000 // check if user is logged out 3001 if (!window.gbnID._isLoggedIn) { 3002 window.gbnID.openLoginModal(); 3003 console.log("show the login modal") 3004 return; //stop propagation 3005 } 3006 3007 // check if topic is already followed 3008 const isFollowed = existingFollowTopicsArray.includes(slug); 3009 3010 if (isFollowed) { 3011 // remove from array 3012 existingFollowTopicsArray = existingFollowTopicsArray.filter(item => item !== slug); 3013 3014 // update 3015 updateCustomFieldFollowTopics(theUserUid, existingFollowTopicsArray, slug, false); 3016 3017 } else { 3018 // add to array 3019 existingFollowTopicsArray.push(slug); 3020 3021 // update 3022 updateCustomFieldFollowTopics(theUserUid, existingFollowTopicsArray, slug, true); 3023 } 3024 }); 3025 }); 3026 } 3027 }, 3028 ]); 3029 3030 // =========== Helper Functions ================= 3031 3032 function untickFollowTopic(slug) { 3033 let topicIcon = document.getElementById(`topicIcon${slug}`); 3034 topicIcon.setAttribute("title", `Follow ${slug} for more personalised content`); 3035 topicIcon.classList.remove("followed"); 3036 topicIcon.classList.remove("disabled"); 3037 delete topicIcon.dataset.disabled; 3038 } 3039 3040 function tickFollowTopic(slug) { 3041 let topicIcon = document.getElementById(`topicIcon${slug}`); 3042 topicIcon.setAttribute("title", `You already follow ${slug}`); 3043 topicIcon.classList.add("followed"); 3044 3045 // call to disable icon 3046 disableIcon(slug); 3047 } 3048 3049 function disableIcon(slug) { 3050 const topicIcon = document.getElementById(`topicIcon${slug}`); 3051 3052 topicIcon.dataset.disabled = "true"; 3053 topicIcon.classList.add("disabled"); 3054 3055 // Intercept future clicks 3056 topicIcon.addEventListener("click", function (e) { 3057 if (this.dataset.disabled === "true") { 3058 e.preventDefault(); 3059 e.stopPropagation(); 3060 } 3061 }); 3062 } 3063 3064 async function updateCustomFieldFollowTopics(userId, encodedCustomFields, slug, isFollowing) {
3065 try { 3066 3067 await window.gbnID.profile.updateFollowedTopics(encodedCustomFields); 3068 3069 if (isFollowing) { 3070 tickFollowTopic(slug); 3071 } else { 3072 untickFollowTopic(slug); 3073 } 3074 3075 } catch (error) { 3076 console.error("Update error:", error); 3077 } 3078 } 3079</script>
3079<!-- End User Code --><!-- User Code --><!--
3079<script> 3080 async function init() { 3081 let theUserUid = getPianoUid(); 3082 console.log("theUserUid", theUserUid) 3083 let existingFollowTopicsArray = await getCustomFieldVals(theUserUid) || []; 3084 console.log("existingFollowTopicsArray", existingFollowTopicsArray); 3085 3086 console.log("THIS IS THE HOMEPAGE VARIANT"); 3087 3088 3089 3090 const checkIsFollowed = (val) => { 3091 let handleSlug = val.split(","); 3092 let isFollowed = existingFollowTopicsArray.includes(val); 3093 3094 for (let i = 0; i < handleSlug.length; i++) { 3095 if (existingFollowTopicsArray.includes(handleSlug[i])) { 3096 isFollowed = true; 3097 } else { 3098 isFollowed = false; 3099 } 3100 } 3101 return isFollowed; 3102 } 3103 3104 3105 3106 let resultArr = []; 3107 3108 let links = document.querySelectorAll('.all-related-sections'); 3109 links.forEach(link => { 3110 let linkText = link.textContent.trim(); 3111 console.log("linkText", linkText); 3112 let slug = linkText.replace(/\s+/g, ','); 3113 console.log("slug", slug); 3114 resultArr.push(slug); 3115 let topicsButton = document.querySelector(".topicIcons"); 3116 3117 let addToSlug = slug.split(","); 3118 3119 let followBool = checkIsFollowed(slug); 3120 3121 if (!topicsButton) return; 3122 3123 // set initial state 3124 3125 console.log("checkIsFollowed", checkIsFollowed) 3126 if (followBool && theUserUid) { 3127 tickFollowTopic(slug); 3128 } 3129 3130 3131 // add event listener in all cases 3132 topicsButton.addEventListener("click", (e) => { 3133 e.preventDefault(); 3134 e.stopPropagation(); 3135 3136 // check if topic is already followed 3137 console.log("check existing follow ", existingFollowTopicsArray) 3138 // let handleSlug = slug.split(","); 3139 // let isFollowed = existingFollowTopicsArray.includes(slug); 3140 3141 3142 // for (let i = 0; i < handleSlug.length; i++) { 3143 // if (existingFollowTopicsArray.includes(handleSlug[i])) { 3144 // isFollowed = true; 3145 // } else { 3146 // isFollowed = false; 3147 // } 3148 // } 3149 checkIsFollowed(slug); 3150 console.log("is following ", checkIsFollowed(slug)); 3151 if (checkIsFollowed(slug)) { 3152 // remove from array 3153 for (let j = 0; j < addToSlug.length; j++) { 3154 const index = existingFollowTopicsArray.indexOf(addToSlug[j]); 3155 if (index !== -1) { 3156 existingFollowTopicsArray.splice(index, 1); 3157 } 3158 } 3159 3160 console.log("removed from array", existingFollowTopicsArray) 3161 3162 // update 3163 updateCustomFieldFollowTopics(theUserUid, buildEncodedCustomFields(existingFollowTopicsArray), slug, false); 3164 3165 } else { 3166 // add to array 3167 console.log("slug to be added ", slug) 3168 3169 console.log("handleSlug", addToSlug) 3170 for (let i = 0; i < addToSlug.length; i++) { 3171 existingFollowTopicsArray.push(addToSlug[i]); 3172 } 3173 3174 existingFollowTopicsArray = [...new Set(existingFollowTopicsArray)]; 3175 3176 console.log("new array existing topics", existingFollowTopicsArray) 3177 3178 // update 3179 updateCustomFieldFollowTopics(theUserUid, buildEncodedCustomFields(existingFollowTopicsArray), slug, true); 3180 } 3181 }); 3182 3183 }); 3184 } 3185 init(); 3186 3187 3188 // helper functions 3189 function getPianoUid() { 3190 let name = "loggedinCookie_sid="; 3191 let cookies = document.cookie.split(';'); 3192 let uidFound = false; 3193 let userUid = null; 3194 3195 for (let i = 0; i < cookies.length; i++) { 3196 var cookie = cookies[i].trim(); 3197 if (cookie.indexOf(name) === 0) { 3198 let uid = cookie.substring(name.length, cookie.length); 3199 3200 // Cookie found, update variable 3201 userUid = uid; 3202 uidFound = true; 3203 break; 3204 } 3205 } 3206 if (!uidFound) { 3207 // disable the links for logged out user 3208 let links = document.querySelectorAll('.all-related-sections'); 3209 links.forEach(link => { 3210 let linkText = link.textContent.trim(); 3211 let slug = linkText.replace(/\s+/g, ''); 3212 askToLogIn(slug); 3213 }) 3214 } 3215 return userUid; 3216 } 3217 3218 async function getCustomFieldVals(id) {
3219 try { 3220 const req = await fetch(`https://www.gbnews.com/r/kappa/api/v2/reader/get_user_info?uid=${id}&cache=${Date.now()}`, { 3221 method: "GET", 3222 credentials: "omit" 3223 }); 3224 const resp = await req.json(); 3225 // console.log("Reading of existing custom fields", resp); 3226 3227 let followTopicsCustomField = resp?.hello?.user?.custom_fields || []; 3228 // console.log(followTopicsCustomField); 3229 3230 let existingFollowTopicsArray; 3231 3232 for (const item of followTopicsCustomField) { 3233 if (item.fieldName === "follow-topics-and-sections") { 3234 existingFollowTopicsArray = JSON.parse(item.value); 3235 break; 3236 } 3237 } 3238 3239 return existingFollowTopicsArray; 3240 // SECTIONS FROM CUSTOM FIELDS 3241 3242 } catch (error) { 3243 console.error("Error fetching custom field values:", error); 3244 } 3245 } 3246 3247 function buildEncodedCustomFields(array) { 3248 let followTopicsObj = { "follow-topics-and-sections": JSON.stringify(array) }; 3249 return encodeURIComponent(JSON.stringify(followTopicsObj)); 3250 } 3251 3252 function untickFollowTopic(slug) { 3253 console.log("untickFollowTopic called by", slug); 3254 let topicIcon = document.querySelector(".topicIcons"); 3255 // topicIcon.setAttribute("title", `Follow ${slug} for more personalised content`); 3256 topicIcon.classList.remove("followed"); 3257 topicIcon.classList.remove("disabled"); 3258 // delete topicIcon.dataset.disabled; 3259 } 3260 3261 function tickFollowTopic(slug) { 3262 console.log("tickFollowTopic called by", slug); 3263 let topicIcon = document.querySelector(".topicIcons"); 3264 // topicIcon.setAttribute("title", `You already follow ${slug}`); 3265 topicIcon.classList.add("followed"); 3266 3267 // call to disable icon 3268 disableIcon(slug); 3269 } 3270 3271 function disableIcon(slug) { 3272 console.log(`disableIcon called by ${slug}`); 3273 const topicIcon = document.querySelector(".topicIcons"); 3274 3275 // topicIcon.dataset.disabled = "true"; 3276 topicIcon.classList.add("disabled"); 3277 3278 // Intercept future clicks 3279 topicIcon.addEventListener("click", function (e) { 3280 if (this.dataset.disabled === "true") { 3281 e.preventDefault(); 3282 e.stopPropagation(); 3283 } 3284 }); 3285 } 3286 3287 function askToLogIn(slug) { 3288 console.log(`askToLogIn called by ${slug}`); 3289 3290 // show reduced opacity 3291 const topicIcon = document.querySelector(".topicIcons"); 3292 // topicIcon.dataset.disabled = "true"; 3293 topicIcon.classList.add("disabled"); 3294 topicIcon.setAttribute("title", `Log in to Follow ${slug}`); 3295 3296 // Fully disable icon 3297 topicIcon.disabled = "true"; 3298 } 3299 3300 async function updateCustomFieldFollowTopics(userId, encodedCustomFields, slug, isFollowing) { 3301 try { 3302 const response = await fetch(`https://www.gbnews.com/r/kappa/api/v2/reader/piano_update_follow_topics_cf?cache=${Date.now()}`, { 3303 method: 'POST', 3304 headers: { 3305 'Content-Type': 'application/json' 3306 }, 3307 credentials: "omit", 3308 body: JSON.stringify({ 3309 "uid": userId, 3310 "custom_fields": encodedCustomFields 3311 }) 3312 }); 3313 3314 if (!response.ok) { 3315 const errorData = await response.text(); 3316 console.error("API error", errorData); 3317 throw new Error('updateCustomFieldFollowTopics request failed'); 3318 } 3319 3320 const data = await response.json(); 3321 console.log("Update successful", data); 3322 3323 if (isFollowing) { 3324 tickFollowTopic(slug); 3325 } else { 3326 untickFollowTopic(slug); 3327 } 3328 3329 } catch (error) { 3330 console.error("Update error:", error); 3331 } 3332 } 3333</script>
3333 --><!-- End User Code --></div><div class="you-may-like__wrapper " id="sPost_Default_0_0_16_0_0_2_0_15_0_0_5_1_0_1_0">
3333<script> 3334 3335 let accessStatusFromWindowObj4 = window.userStatus; 3336 3337 3338 3339 let youMakeLikeAds = false 3340 3341 3342 3343 // ONLY inject MPUs if NOT member 3344 if (accessStatusFromWindowObj4 !== 'member' && !youMakeLikeAds) { 3345 3346 let placeholder = document.querySelector('.you-may-like__wrapper'); 3347 3348 if (placeholder) { 3349 3350 // Taboola First 3351 console.log("inserting taboola in infinite feed position"); 3352 let taboola = `<div id="taboola-below-article-thumbnails"></div>`; 3353 placeholder.insertAdjacentHTML('beforeend', taboola); 3354 3355 // Viafoura After Taboola 3356 const viafouraPlaceholder = ` 3357 <div id="comments" class="comments-wrapper"> 3358 <div id="comments-trigger"></div> 3359 <div class="viafoura"> 3360 <vf-conversations id="viafoura-conversations-id" limit="4"></vf-conversations> 3361 </div> 3362 </div> 3363 `; 3364 3365 placeholder.insertAdjacentHTML('beforeend', viafouraPlaceholder); 3366 } 3367 3368 3369 } else { 3370 3371 // console.log("ads lite logic"); 3372 3373 const placeholder = document.querySelector('.you-may-like__wrapper'); 3374 if (placeholder) { 3375 3376 // ONLY COMMENTS 3377 const viafouraPlaceholder = ` 3378 <div id="comments" class="comments-wrapper"> 3379 <div id="comments-trigger"></div> 3380 <div class="viafoura"> 3381 <vf-conversations id="viafoura-conversations-id" limit="4"></vf-conversations> 3382 </div> 3383 </div>`; 3384 3385 placeholder.insertAdjacentHTML('beforeend', viafouraPlaceholder); 3386 3387 } 3388 3389 } 3390</script>
3390</div></div><div class="sidebar--column" id="sPost_Default_0_0_16_0_0_2_0_15_0_1_1_0"><div class="sidebar-wrapper" id="sSide_Bar_0_0_18_0_0_0_0_0_1_0_0_0"><div class="module presenter--modules show-only-if-three-post-present embed-rhr__posts" id="sSide_Bar_0_0_18_0_0_0_0_0_1_0_0_0_0"><div class="carousel--wrapper" id="sSide_Bar_0_0_18_0_0_0_0_0_1_0_0_0_0_0"><div class="sticky-content ad-sticky-wrapper" id="sSide_Bar_0_0_18_0_0_0_0_0_1_0_0_0_0_0_0"><div class="ad--placeholder--double element1" id="sSide_Bar_0_0_18_0_0_0_0_0_1_0_0_0_0_0_0_0">
3390<script> 3391 // console.log("Inder - script loaded"); 3392 let accessStatusFromWindowObj10 = window.userStatus; 3393 // console.log("Inder 2 - reading window obj", accessStatusFromWindowObj10); 3394 3395 if (accessStatusFromWindowObj10 !== 'member') { 3396 const adSlotHtml = `<ad-slot position="mpu_top-double"></ad-slot>`; 3397 const targetParent = document.querySelector('.ad--placeholder--double.element1'); 3398 if (targetParent) { 3399 targetParent.insertAdjacentHTML('beforeend', adSlotHtml); 3400 // console.log('Inder 3 - add present as user is NOT a member'); 3401 } 3402 } else { 3403 const placeholderContainer = document.querySelector('.sticky-content.ad-sticky-wrapper'); 3404 placeholderContainer.style.display = "none"; 3405 // console.log('Inder 4 - placeholder removed because there is no ad'); 3406 } 3407 3408</script>
3408</div></div><div class="wrapper-lazy-loading rm-lazy-load-post-lcp-wrapper next-page-wrapper" data-skl-id="/root/blocks/block[side_bar]/abtests/abtest/rm_tabs/rm_wrapper[1]/choose/otherwise/choose/when[(post_page)]/element_wrapper/element_wrapper/element_wrapper/lazyload-" data-has-more="true" data-more-posts-exists="true" data-posts-sources="embed-mostread-side" data-ignore-page-number="false"></div></div></div><!-- User Code --><button class="to-top"></button><!-- End User Code --></div></div></div></div><div class="" id="strending_module_0_0_28_0_0_0"><!-- User Code -->
3408<script> 3409 insertTrending(); 3410 3411 function insertTrending() { 3412 const haveTrending = document.querySelector('.trending-wrapper') 3413 if (haveTrending){ 3414 return; 3415 } 3416 // let body = document.querySelector(".body"); 3417 //const video2 = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p, .rebellt-ecommerce p, .gbn-offer-card p)')[4]; 3418 //let createDiv = insertTrendingDiv(); 3419 // if the team changes it's mind and wants us to account for empty p tags 3420 // const allP = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p, .rebellt-ecommerce p)'); 3421 // const filtered = Array.from(allP).filter(p => p.textContent.trim() !== ''); 3422 //video2.after(createDiv); 3423 } 3424 3425 function insertTrendingDiv() { 3426 let trendingDiv = document.createElement('div'); 3427 trendingDiv.classList.add("trending-wrapper"); 3428 trendingDiv.innerHTML = ` 3429 <div class="trending-header">TRENDING</div> 3430 <div class="tabs"> 3431 <div class="tab active" data-tab="stories">Stories</div> 3432 <div class="tab" data-tab="videos">Videos</div> 3433 <div class="tab" data-tab="your-say">Your Say</div> 3434 </div> 3435 <div class="tab-content active" id="stories"></div> 3436 <div class="tab-content" id="videos"></div> 3437 <div class="tab-content" id="your-say"></div> 3438 `; 3439 return trendingDiv; 3440 } 3441</script>
3441<!-- End User Code --></div><!-- User Code -->
3441<script> 3442 3443 var embeddontmiss=document.querySelector('.embed-dontmiss'); 3444 if(embeddontmiss){ 3445 // let dontMiss = document.querySelector('.embed-dontmiss__posts'); 3446 // var dontmissclone = dontMiss.cloneNode(true); 3447 // dontmissclone.classList.remove('hidden'); 3448 // embeddontmiss.appendChild(dontmissclone); 3449 // const modSlot = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p)')[12]; 3450 // modSlot.appendChild(embeddontmiss); 3451 // if(embeddontmiss.querySelectorAll('.widget').length < 3 ){ 3452 // embeddontmiss.classList.add('hidden'); 3453 // } 3454 } 3455 3456 var mostreadElement= document.querySelector('.embed-mostread'); 3457 if(mostreadElement){ 3458 let mostRead = document.querySelector('.embed-mostread__posts'); 3459 let mostreadclone = mostRead.cloneNode(true); 3460 mostreadclone.classList.remove('hidden'); 3461 // console.log(mostreadElement); 3462 mostreadElement.appendChild(mostreadclone); 3463 3464 if(mostreadElement.querySelectorAll('.widget').length < 3){ 3465 mostreadElement.classList.add('hidden'); 3466 } 3467 } 3468 3469 3470 3471 // handle for you 3472 // const modSlot = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p)')[6]; 3473 // var embedForYou=document.querySelector('.embed-latest'); 3474 3475 // if (embedForYou) { 3476 // let foryou = document.querySelector('.embed-foryou__posts'); 3477 // var foryouclone = foryou.cloneNode(true); 3478 // foryouclone.classList.remove('hidden'); 3479 // console.log(embedForYou); 3480 // modSlot.appendChild(foryouclone); 3481 3482 // if(embedForYou.querySelectorAll('.widget').length < 3 ){ 3483 // embedForYou.classList.add('hidden'); 3484 // } 3485 // } 3486 3487 // insert newsletter signup after fourth paragraph/div 3488 // insertNewsletterAfter(4); 3489 3490 // function insertNewsletterAfter(n) { 3491 // for (let i = 0; i < divs.length-2; i++) { 3492 // if ((i + 1) % n === 0) { 3493 // const div = insertNewsletterSignup(); 3494 // divs[i].after(div); 3495 // break; 3496 // } 3497 // } 3498 // } 3499 3500 // returns newly created div for the newsletters 3501 // function insertNewsletterSignup() { 3502 // let newsLetter = document.createElement('div'); 3503 // newsLetter.id = "newsletter-signup"; 3504 // newsLetter.style.marginBottom = "20px"; 3505 // return newsLetter; 3506 // } 3507</script>
3507<!-- End User Code -->
3507<script> 3508 3509 3510window._taboola = window._taboola || []; 3511 3512 3513 3514let accessStatusFromWindowObj5 = window.userStatus; 3515 3516// ONLY inject Outbrain if accessStatus is NOT member 3517if (accessStatusFromWindowObj5 !== 'member') { 3518 // Fill in *your* param values, as provided by Taboola: 3519 // *Global* command queue for the page 3520 window._taboola = window._taboola || []; 3521 3522 console.log("user is not a member tab stage one") 3523 const paragraphs = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p, .rebellt-ecommerce p, .trending-wrapper p)'); 3524 if (paragraphs.length > 7) { 3525 console.log("2nd para found, tab stage 2") 3526 const adPos = paragraphs[7]; 3527 const div = document.createElement('div'); 3528 div.innerHTML = `<div id="taboola-mid-article-thumbnails"></div>`; 3529 adPos.after(div); 3530 console.log("tab id inserted") 3531 _taboola.push({ 3532 mode: 'alternating-thumbnails-stream-rmp', 3533 container: 'taboola-mid-article-thumbnails', 3534 placement: 'Mid Article Thumbnails', 3535 target_type: 'mix', 3536 }); 3537 } 3538 // _taboola.push({flush: true}); 3539 } 3540 console.log("show ads") 3541 3542 _taboola.push({ flush: true }); 3543 3544 3545 3546 3547</script>
3547<div class="" id="sPost_Default_0_0_16_0_0_2_0_23"></div><!-- User Code --><!-- <p id="widgetLoaded" style="width:0px;height:0px;"></p>
3548<script> 3549 (function (d, s, b) { var mElmt, primisElmt = d.createElement('script'); primisElmt.setAttribute('type', 'text/javascript'); primisElmt.setAttribute('async','async'); primisElmt.setAttribute('src', s); var elmtInterval = setInterval(function() { mElmt = d.getElementById(b); if (mElmt) { mElmt.parentNode.insertBefore(primisElmt, mElmt.nextSibling); mElmt.parentNode.removeChild(mElmt); return clearInterval(elmtInterval); } }, 3500); })(document, 'https://live.primis.tech/live/liveView.php?s=121157&cbuster=%%CACHEBUSTER%%', 'widgetLoaded'); 3550</script>
3550 --><!-- End User Code --></div></div>
3550<script class="lazy-style" type="css"> 3551 3552 body.tp-modal-open .pushwoosh-subscribe-widget__bell-button{display:none}h1.vf-client-settings-form-profile-header{display:none!important}.viafoura .vf-flex-container{display:none!important}@media (min-width:1280px){.sticky-banner-wrapper{position:relative}.ad--billboard{position:sticky;top:0;z-index:10;background-color:white}ad-slot[position^="billboard"]{position:sticky;top:0;z-index:10;display:block;background-color:white}}@media (min-width:767px){.more-from-gbn{position:relative;font-size:24px;font-weight:700;line-height:24px;margin-top:20px;padding:15px 20px;color:#000f55;background-color:#F5F5F5}.more-from-gbn:after{content:"";position:absolute;bottom:0;max-width:96%;height:1px;background:#000f55;left:16px;right:16px}}@media (max-width:767px){.more-from-gbn{position:relative;font-size:24px;font-weight:700;line-height:24px;margin-top:20px;color:#000f55;background-color:#F5F5F5;padding-top:40px;padding-left:10px;padding-bottom:20px}.more-from-gbn:before{content:"";position:absolute;height:1px;background:#000f55;max-width:96%;left:10px;margin-bottom:15px;bottom:40px;right:10px}} 3553 3554 </script>
3554<script class="rm-i-script" id="user-javascript-medium-normal"> 3555 window.REBELMOUSE_TASKS_QUEUE.push(function loadFonts(){}); 3556 3557window.REBELMOUSE_TASKS_QUEUE.push(function(){ 3558 3559 3560 const observer = new MutationObserver(() => { 3561 if ( 3562 document.querySelector('.rfmodal') || 3563 document.querySelector('.mobileWebModalWrapper') || 3564 document.querySelector('.modal-overlay.active') 3565 ) { 3566 document.body.style.overflow = 'hidden'; 3567 } else { 3568 document.body.style.overflow = ''; 3569 } 3570}); 3571 3572observer.observe(document.body, { 3573 childList: true, 3574 subtree: true, 3575 attributes: true, 3576 attributeFilter: ['class'], 3577}); 3578 3579 3580}); 3581 3582window.REBELMOUSE_TASKS_QUEUE.push(function(){ 3583 3584 3585 // 1. Update OB_ContextKeyValue 3586// window.OB_ContextKeyValue = window.gbnConfig.dataLayer.cd30; 3587// let ob_script = document.createElement('script') 3588// ob_script.innerHTML = "window.OB_ContextKeyValue="+window.gbnConfig.dataLayer.cd30; 3589// document.body.appendChild(ob_script) 3590 3591 3592// // 2. Update testVariant 3593// window.testVariant = window.gbnConfig.dataLayer.cd30; 3594 3595 3596 3597// 3. Update contentType 3598function getContentType() { 3599 // Ensure dataLayer exists 3600 window.dataLayer = window.dataLayer || []; 3601 3602 // Find the last object in dataLayer that has a cd10 property 3603 for (let i = window.dataLayer.length - 1; i >= 0; i--) { 3604 if (window.dataLayer[i].cd10) { 3605 return window.dataLayer[i].cd10; 3606 } 3607 } 3608 return 'not set'; 3609} 3610window.contentType = getContentType(); 3611 3612 3613 3614// 4. Update contentSection 3615function getContentSection() { 3616 // Ensure dataLayer exists 3617 window.dataLayer = window.dataLayer || []; 3618 3619 // Find the last object in dataLayer that has a cd9 property 3620 for (let i = window.dataLayer.length - 1; i >= 0; i--) { 3621 if (window.dataLayer[i].cd9) { 3622 return window.dataLayer[i].cd9; 3623 } 3624 } 3625 return 'not set'; 3626} 3627window.contentSection = getContentSection(); 3628 3629 3630}); 3631 3632window.REBELMOUSE_TASKS_QUEUE.push(function(){ 3633 3634 3635 function getEventDescription(event) { 3636 switch (event) { 3637 case "GBN_MEM_005_M": 3638 return { description: "GBN Membership £5 Monthly", price: 5.00 }; 3639 case "GBN_MEM_010_M": 3640 return { description: "GBN Membership £10 Monthly", price: 10.00 }; 3641 case "GBN_MEM_020_M": 3642 return { description: "GBN Membership £20 Monthly", price: 20.00 }; 3643 case "GBN_MEM_054_Y": 3644 return { description: "GBN Membership £54 Yearly", price: 54.00 };; 3645 case "GBN_MEM_108_Y": 3646 return { description: "GBN Membership £108 Yearly", price: 108.00 };; 3647 case "GBN_MEM_216_Y": 3648 return { description: "GBN Membership £216 Yearly", price: 216.00 };; 3649 case "GBN_DON_020_O": 3650 return { description: "GBN Donation £20 - one off", price: 20.00 };; 3651 case "GBN_DON_050_O": 3652 return { description: "GBN Donation £50 - one off", price: 50.00 };; 3653 case "GBN_DON_OTHER": 3654 return { description: "GBN Donation â Other (custom amount)", price: 0.00 };; 3655 case "GBN_GIFT_MEM_005_M": 3656 return { description: "Gift Subscription for GBN Membership £5 Monthly", price: 10.00 }; 3657 case "GBN_GIFT_MEM_010_M": 3658 return { description: "Gift Subscription for GBN Membership £10 Monthly", price: 10.00 };; 3659 case "GBN_GIFT_MEM_108_Y": 3660 return { description: "Gift subscription for GBN Membership £108 Yearly", price: 108.00 };; 3661 case "GBN_GIFT_MEM_120_6M": 3662 return { description: "Gift subscription for GBN Membership £120 (6 months)", price: 120.00 };; 3663 case "GBN_GIFT_MEM_020_M": 3664 return { description: "Gift Subscription for GBN Membership £20 Monthly", price: 20.00 };; 3665 case "GBN_GIFT_MEM_216_Y": 3666 return { description: "Gift subscription for GBN Membership £216 Yearly", price: 216.00 };; 3667 case "GBN_GIFT_MEM_030_6M": 3668 return { description: "Gift subscription for GBN Membership £30 (6 months)", price: 30.00 };; 3669 case "GBN_GIFT_MEM_054_Y": 3670 return { description: "Gift subscription for GBN Membership £54 Yearly", price: 54.00 };; 3671 case "GBN_GIFT_MEM_060_6M": 3672 return { description: "Gift subscription for GBN Membership £60 (6 months)", price: 60.00 };; 3673 } 3674 return "Unknown event."; 3675} 3676 3677 3678window.tp = window.tp || []; 3679// AddToBasket event 3680tp.push(["addHandler", "registrationSuccess", function (data) { 3681 console.log('registrationSuccess fired') 3682 dataLayer.push({ 3683 event: "AddToCart", 3684 value: 5.00 3685 }); 3686}]); 3687 3688// Show offer event 3689let showOfferShown = 0; 3690tp.push(["addHandler", "showOffer", function (data) { 3691 if (showOfferShown == 0) { 3692 console.log('showOffer fired') 3693 const page = window.location.pathname; 3694 if (page === '/support') { 3695 dataLayer.push({ 3696 event: "fb.event", 3697 fb_event_type: "viewContent", 3698 fb_content_name: "GB News Membership Options", 3699 fb_currency: "GBP" 3700 }); 3701 } else if (page === '/gifting') { 3702 dataLayer.push({ 3703 event: "fb.event", 3704 fb_event_type: "viewContent", 3705 fb_content_name: "GB News Gifting Options", 3706 fb_currency: "GBP" 3707 }); 3708 } else if (page === '/donate') { 3709 3710 dataLayer.push({ 3711 event: "fb.event", 3712 fb_event_type: "viewContent", 3713 fb_content_name: "GB News Donation Options", 3714 fb_currency: "GBP" 3715 }); 3716 } else { 3717 // handle other pages 3718 } 3719 3720 showOfferShown = 1; 3721 } 3722}]); 3723 3724//offer button clicks 3725tp.push(['addHandler', 'customEvent', function(event) 3726 {
3727 if (event.experienceActionId.includes("showOffer")) { 3728 console.log('milos', event); 3729 let eventName = event.eventName; 3730 let eventDescription = getEventDescription(eventName); 3731 if(eventDescription.description !== "Unknown event.") { 3732 dataLayer.push({ 3733 event: "fb.event", 3734 fb_event_type: "initiateCheckout", 3735 fb_content_name: eventDescription.description, 3736 fb_content_ids: [eventName], 3737 fb_currency: "GBP", 3738 fb_value: eventDescription.price 3739 }); 3740 } 3741 } 3742 }]); 3743 3744// Checkout event 3745// tp.push(["addHandler", "startCheckout", function () { 3746// console.log('startCheckout fired') 3747 3748// dataLayer.push({ 3749// event: "InitiateCheckout", 3750// value: 5.00 3751// }); 3752// }]); 3753 3754// Purchase event 3755tp.push(["addHandler", "checkoutComplete", function (conversion) { 3756 console.log('checkoutComplete fired') 3757 let eventDescription = getEventDescription(conversion.termId); 3758 dataLayer.push({ 3759 event: "fb.event", 3760 fb_event_type: "purchase", 3761 fb_content_name: eventDescription.description, 3762 fb_content_ids: [conversion.termId], 3763 fb_currency: "GBP", 3764 fb_value: conversion.chargeAmount, 3765 fb_transaction_id: conversion.paymentId 3766 }); 3767}]); 3768 3769console.log("tp handlers registered."); 3770 3771 3772}); 3773 3774window.REBELMOUSE_TASKS_QUEUE.push(function(){ 3775 3776 3777 // console.log("POST PAGE = TRUE OR PAGE.SECTION AND PAGE.SECTION.URL") 3778 3779 3780 3781 3782 console.log("context.page.section") 3783 // 3784 // var sectionv2 = "money" 3785 // console.log(sectionv2) 3786 // console.log("") 3787 var pri_nav_items=document.querySelectorAll('.navbar .nav .text-element a'); 3788 var sec_nav_items=document.querySelectorAll('.navbar .secondary--nav .list a'); 3789 3790 3791 3792 ///aaa ssss 3793 3794 3795 3796 console.log("3") 3797 3798 3799 3800 var sections_list=['money']; 3801 var is_pri_act_set = false; 3802 var is_sec_act_set = false; 3803 var is_section_page=false; 3804 3805 3806for (var el of pri_nav_items) { 3807 //console.log("this is test" + is_pri_act_set); 3808 //console.log("this is test" + is_section_page); 3809 //is_pri_act_set && 3810 const domainName = `https://${window.location.host}`; 3811 3812 if (el.href.replace(domainName,'').toLowerCase().indexOf(sections_list[0].toLowerCase()) != -1) { 3813 3814 3815 is_pri_act_set = true; 3816 el.closest('.nav--item').classList.add('active'); 3817 break; 3818 } 3819} 3820if (!is_pri_act_set) { 3821 3822 for (var el of sec_nav_items) { 3823 3824 if (el.href.toLowerCase().indexOf(sections_list[0].toLowerCase()) != -1) { 3825 3826 is_sec_act_set = true; 3827 is_pri_act_set = true; 3828 el.closest('.nav--item').classList.add('active'); 3829 el.classList.add('active'); 3830 break; 3831 } 3832 3833 var el_href=el.href.replace(window.location.origin,""); 3834 var win_href=window.location.pathname; 3835 if(el_href[el_href.length-1]=="/"){ 3836 el_href=el_href.slice(0,-1); 3837 } 3838 if(win_href[win_href.length-1]=="/"){ 3839 win_href=win_href.slice(0,-1); 3840 } 3841 if (el_href.toLowerCase()==win_href.toLowerCase()) { 3842 //debugger; 3843 is_sec_act_set = true; 3844 is_sec_act_set = true; 3845 el.closest('.nav--item').classList.add('active'); 3846 el.classList.add('active'); 3847 break; 3848 } 3849 } 3850} 3851else if (is_pri_act_set && is_section_page){ 3852 3853 3854 3855 sec_nav_items = document.querySelectorAll('.nav--item.active .secondary--nav .list a'); 3856 for (var el of sec_nav_items) { 3857 var el_href=el.href.replace(window.location.origin,""); 3858 var win_href=window.location.pathname; 3859 if(el_href[el_href.length-1]=="/"){ 3860 el_href=el_href.slice(0,-1); 3861 } 3862 if(win_href[win_href.length-1]=="/"){ 3863 win_href=win_href.slice(0,-1); 3864 } 3865 if (el_href.toLowerCase()==win_href.toLowerCase()) { 3866 is_sec_act_set = true; 3867 el.closest('.nav--item').classList.add('active'); 3868 el.classList.add('active'); 3869 break; 3870 } 3871 } 3872} 3873 3874 3875if(is_pri_act_set && is_sec_act_set) return; 3876 3877 3878 3879var active_channel = document.querySelector('.navbar .nav--item.active'); 3880var post_sections="money,money/economy,content-type/article,editorial/homepage-top20,content-type,money/store-closures,editorial/dont-miss-articles".split(','); 3881if (active_channel) { 3882 var breaker=false 3883 sec_nav_items = active_channel.querySelectorAll('.secondary--nav .list a'); 3884 3885 for (el of sec_nav_items) { 3886 let windowHrf=window.location.href; 3887 if(el.href.toLowerCase()==windowHrf.split('?')[0].toLowerCase()){ 3888 el.classList.add('active'); 3889 breaker=true; 3890 break; 3891 } 3892 } 3893 if (breaker) return; 3894 3895 if (breaker) return; 3896 3897 // var topic = post_sections.find(a => a.includes(sections_list[0] + "/")); 3898 3899 3900 for (el of sec_nav_items) { 3901 //debugger; 3902 breaker=false 3903 var hrf = el.href; 3904 post_sections.forEach(function(sec_url) { 3905 if (hrf.toLowerCase().indexOf(sec_url.toLowerCase()) != -1 && sec_url.toLowerCase().includes(post_sections[0].toLowerCase()+"/")) { 3906 el.classList.add('active'); 3907 breaker=true; 3908 } 3909 }) 3910 if (breaker) break; 3911 } 3912} 3913 else { 3914 for (el of sec_nav_items) { 3915 let windowHrf=window.location.href; 3916 if(el.href.toLowerCase()==windowHrf.split('?')[0].toLowerCase()){ 3917 el.classList.add('active'); 3918 el.closest('nav--item')?l.closest('nav--item').classList.add('active'):""; 3919 breaker=true; 3920 break; 3921 } 3922 } 3923 } 3924 3925 3926 3927 3928}); 3929 3930window.REBELMOUSE_TASKS_QUEUE.push(function(){ 3931 3932 3933 // // Scroll position for primary navigation 3934// const isMobile = window.innerWidth <= 768; 3935 3936// let menuButtonSize = 0; 3937// const menuButton = document.querySelector('.navbar .nav .sticky-left-click'); 3938 3939// if (menuButton) { 3940// menuButtonSize = menuButton.getBoundingClientRect().width; 3941// } 3942 3943// var doc_body = document.body; 3944// var pri_nav = document.querySelector('.navbar .nav'); 3945 3946// // Checking active primary menu item and calculating left scroll for the navigation 3947// if (isMobile) { 3948// const activeMenuItem = document.querySelector('.navbar .nav .nav--item.active');
3949// if (activeMenuItem) { 3950// const activeMenuItemLeftPosition = activeMenuItem.offsetLeft; 3951 3952// const navigation = document.querySelector('.navbar .nav'); 3953// const navigationComputedStyles = window.getComputedStyle(navigation); 3954// const marginLeft = parseInt(navigationComputedStyles.getPropertyValue('margin-left')); 3955 3956// pri_nav.scrollLeft = activeMenuItemLeftPosition - marginLeft - menuButtonSize; 3957// } 3958// } else if (window.sessionStorage.getItem("pri_nav_pos")) { 3959// pri_nav.scrollLeft = window.sessionStorage.getItem("pri_nav_pos"); 3960// } 3961 3962// // The logic for the secondary menu wasn't changed 3963// if (window.sessionStorage.getItem("sec_nav_pos") && window.sessionStorage.getItem("sec_nav_wrap")) { 3964// var scrolli__item = document.querySelector('.'+window.sessionStorage.getItem("sec_nav_wrap")+' .list'); 3965// if (scrolli__item) { 3966// scrolli__item.scrollLeft = window.sessionStorage.getItem("sec_nav_pos"); 3967// } 3968// } 3969 3970// var pri_nav_items = pri_nav.querySelectorAll('a'); 3971// var sec_nav_items = document.querySelectorAll('.navbar .secondary--nav a'); 3972 3973// // Function to restore active navigation states after page reload 3974// function restoreActiveNavigation() { 3975// // Restore active primary nav item 3976// const activePriNavItem = sessionStorage.getItem('active_pri_nav_item'); 3977// if (activePriNavItem) {
3978// const priElement = document.querySelector(`[data-pri-nav-id="${activePriNavItem}"]`); 3979// if (priElement) { 3980// // Remove active class from all primary nav items first 3981// document.querySelectorAll('.navbar .nav .nav--item').forEach(el => { 3982// el.classList.remove('active'); 3983// }); 3984// priElement.classList.add('active'); 3985// console.log('Restored active class to primary nav:', priElement); 3986// } 3987// } 3988 3989// // Restore active secondary nav item 3990// const activeSecNavItem = sessionStorage.getItem('active_sec_nav_item'); 3991// if (activeSecNavItem) { 3992// const secElement = document.querySelector(`[data-sec-nav-id="${activeSecNavItem}"]`); 3993// if (secElement) { 3994// // Remove active class from all secondary nav items first 3995// document.querySelectorAll('.navbar .secondary--nav .list__item').forEach(el => { 3996// el.classList.remove('active'); 3997// }); 3998// secElement.classList.add('active'); 3999// console.log('Restored active class to secondary nav:', secElement); 4000// } 4001// } 4002// } 4003 4004// // Add unique identifiers to navigation items 4005// function initializeNavigationIds() { 4006// // Add IDs to primary nav items 4007// pri_nav_items.forEach(function(item, index) { 4008// const navItem = item.closest('.nav--item'); 4009// if (navItem && !navItem.hasAttribute('data-pri-nav-id')) { 4010// navItem.setAttribute('data-pri-nav-id', `pri-nav-${index}`); 4011// } 4012// }); 4013 4014// // Add IDs to secondary nav items 4015// sec_nav_items.forEach(function(item, index) { 4016// if (!item.hasAttribute('data-sec-nav-id')) { 4017// item.setAttribute('data-sec-nav-id', `sec-nav-${index}`); 4018// } 4019// }); 4020// } 4021 4022// // Primary navigation click handlers 4023// pri_nav_items.forEach(function(item) { 4024// item.onclick = function(event) { 4025// console.log('Primary nav clicked:', event.target); 4026 4027// const navItem = event.target.closest('.nav--item'); 4028// if (navItem) { 4029// // Remove active class from all primary nav items 4030// document.querySelectorAll('.navbar .nav .nav--item').forEach(el => { 4031// el.classList.remove('active'); 4032// }); 4033 4034// // Add active class to clicked primary nav item 4035// navItem.classList.add('active'); 4036 4037// // Save active primary nav item to sessionStorage 4038// const priNavId = navItem.getAttribute('data-pri-nav-id'); 4039// if (priNavId) { 4040// sessionStorage.setItem('active_pri_nav_item', priNavId); 4041// console.log('Saved active primary nav item:', priNavId); 4042// } 4043 4044// // Clear secondary nav active state when primary nav changes 4045// sessionStorage.removeItem('active_sec_nav_item'); 4046// document.querySelectorAll('.navbar .secondary--nav .list__item').forEach(el => { 4047// el.classList.remove('active'); 4048// }); 4049// } 4050 4051// // Original sessionStorage handling 4052// sessionStorage.removeItem("pri_nav_pos"); 4053// sessionStorage.removeItem("sec_nav_wrap"); 4054// sessionStorage.removeItem("sec_nav_pos"); 4055// window.sessionStorage.setItem("pri_nav_pos", pri_nav.scrollLeft); 4056// } 4057// }); 4058 4059// // Secondary navigation click handlers (your existing code with modifications) 4060// sec_nav_items.forEach(function(item) { 4061// item.onclick = function(event) { 4062// const target = event.target; 4063 4064// // Remove active class from all secondary nav items in current menu 4065// const currentSecondaryNav = target.closest('.secondary--nav'); 4066// if (currentSecondaryNav) { 4067// currentSecondaryNav.querySelectorAll('.list__item').forEach(el => { 4068// el.classList.remove('active'); 4069// }); 4070// } 4071 4072// // Add active class to clicked secondary nav item 4073// target.classList.add('active'); 4074 4075// // Save active secondary nav item to sessionStorage 4076// const secNavId = target.getAttribute('data-sec-nav-id'); 4077// if (secNavId) { 4078// sessionStorage.setItem('active_sec_nav_item', secNavId); 4079// } 4080 4081// // Reset primary nav active state (optional, depending on your logic) 4082// document.querySelectorAll('.navbar .nav .nav--item').forEach(el => { 4083// el.classList.remove('active'); 4084// }); 4085// sessionStorage.removeItem('active_pri_nav_item'); 4086 4087// // Store scroll positions 4088// sessionStorage.removeItem("sec_nav_wrap"); 4089// sessionStorage.removeItem("sec_nav_pos"); 4090 4091// const sec_nav_wrap = target.closest('.list'); 4092// if (sec_nav_wrap) { 4093// sessionStorage.setItem("sec_nav_pos", sec_nav_wrap.scrollLeft); 4094 4095// const navItem = sec_nav_wrap.closest('.nav--item'); 4096// if (navItem && navItem.classList[1]) { 4097// sessionStorage.setItem("sec_nav_wrap", navItem.classList[1]); 4098// } 4099// } 4100 4101// sessionStorage.setItem("pri_nav_pos", pri_nav.scrollLeft); 4102// }; 4103// }); 4104 4105 4106// // Hover effects for nav items 4107// document.querySelectorAll('.nav--item').forEach(function(item) { 4108// var timeout = null; 4109// var timeout2 = null; 4110 4111// // Uncomment if you want hover effects 4112// // item.onmouseover = function() { 4113// // timeout = setTimeout(function(){ 4114// // item.classList.add('hover_active') 4115// // }, 300); 4116// // clearTimeout(timeout2); 4117// // } 4118 4119// // item.onmouseout = function() { 4120// // timeout2 = setTimeout(function(){ 4121// // item.classList.remove('hover_active') 4122// // }, 300); 4123// // clearTimeout(timeout); 4124// // } 4125// }); 4126 4127// // Initialize navigation system 4128// function initializeNavigation() { 4129// initializeNavigationIds(); 4130// restoreActiveNavigation(); 4131// } 4132 4133// // Initialize when DOM is ready 4134// if (document.readyState === 'loading') { 4135// document.addEventListener('DOMContentLoaded', initializeNavigation); 4136// } else { 4137// initializeNavigation(); 4138// } 4139 4140// // Opinion section scroll handling 4141// if (window.location.search=="?opinion") { 4142// const opinionWidget = document.querySelector('.opinion-wrapper .widget'); 4143// if (opinionWidget) { 4144// if (/constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification))) { 4145// opinionWidget.scrollIntoView(true); 4146// } else if(typeof InstallTrigger !== 'undefined') { 4147// opinionWidget.scrollIntoView(true); 4148// } else { 4149// opinionWidget.scrollIntoView({ 4150// block: 'nearest', 4151// behavior: 'smooth' 4152// }); 4153// } 4154// } 4155// } 4156 4157// // Delay function for mouse interactions
4158// var delay = function (elem, callback) { 4159// var timeout = null; 4160 4161// elem.onmouseover = function() { 4162// elem.classList.add('shit') 4163// // Set timeout to be a timer which will invoke callback after 1s 4164// timeout = setTimeout(callback, 1000); 4165// }; 4166 4167// elem.onmouseout = function() { 4168// doc_body.classList.remove('hide-sec_nav'); 4169// clearTimeout(timeout); 4170// } 4171// }; 4172 4173 4174}); 4175 4176window.REBELMOUSE_TASKS_QUEUE.push(function(){ 4177 4178 4179 // Scroll position for primary navigation 4180 4181function init() { 4182 const isMobile = window.innerWidth <= 768; 4183 4184 let menuButtonSize = 0; 4185 const menuButton = document.querySelector(".navbar .nav .sticky-left-click"); 4186 4187 if (menuButton) { 4188 menuButtonSize = menuButton.getBoundingClientRect().width; 4189 } 4190 4191 var pri_nav = document.querySelector(".navbar .nav"); 4192 var hamb_nav = document.querySelector(".hamburger .nav"); 4193 4194 // Checking active primary menu item and calculating left scroll for the navigation 4195 const activeMenuItem = document.querySelector( 4196 ".navbar .nav .nav--item.active" 4197 ); 4198 4199 if (activeMenuItem) { 4200 const activeMenuItemLeftPosition = activeMenuItem.offsetLeft; 4201 4202 const navigation = document.querySelector(".navbar .nav"); 4203 const navigationComputedStyles = window.getComputedStyle(navigation); 4204 const marginLeft = parseInt( 4205 navigationComputedStyles.getPropertyValue("margin-left") 4206 ); 4207 4208 pri_nav.scrollLeft = 4209 activeMenuItemLeftPosition - marginLeft - menuButtonSize; 4210 } 4211 4212 4213 if (!isMobile && window.sessionStorage.getItem("pri_nav_pos")) { 4214 pri_nav.scrollLeft = window.sessionStorage.getItem("pri_nav_pos"); 4215 } 4216 4217 // The logic for the secondary menu wasn't changed 4218 if ( 4219 window.sessionStorage.getItem("sec_nav_pos") && 4220 window.sessionStorage.getItem("sec_nav_wrap") 4221 ) { 4222 var scrolli__item = document.querySelector( 4223 "." + window.sessionStorage.getItem("sec_nav_wrap") + " .list" 4224 ); 4225 if (scrolli__item) { 4226 scrolli__item.scrollLeft = window.sessionStorage.getItem("sec_nav_pos"); 4227 } 4228 } 4229 4230 window.pri_nav_items = pri_nav.querySelectorAll("a"); 4231 window.sec_nav_items = document.querySelectorAll(".navbar .secondary--nav a"); 4232 window.hamb_nav_items = hamb_nav.querySelectorAll("a"); 4233 4234 // Primary navigation click handlers 4235 pri_nav_items.forEach(function (item) { 4236 item.onclick = function (event) { 4237 console.log("Primary nav clicked:", event.target); 4238 4239 const watchLive = event.target?.classList.contains('watch-live-button'); 4240 4241 const navItem = event.target.closest(".nav--item"); 4242 if (navItem) { 4243 // Remove active class from all primary nav items (both navbar and hamburger) 4244 document.querySelectorAll(".navbar .nav .nav--item").forEach((el) => { 4245 el.classList.remove("active"); 4246 }); 4247 document 4248 .querySelectorAll(".hamburger .nav .nav--item") 4249 .forEach((el) => { 4250 el.classList.remove("active"); 4251 }); 4252 4253 // Add active class to clicked primary nav item 4254 navItem.classList.add("active"); 4255 4256 // Find corresponding item in hamburger menu and activate it 4257 const href = item.getAttribute("href"); 4258 const correspondingHamb = Array.from(hamb_nav_items).find( 4259 (a) => a.getAttribute("href") === href 4260 ); 4261 4262 if (correspondingHamb) { 4263 const corrHambNavItem = correspondingHamb.closest(".nav--item"); 4264 if (corrHambNavItem) { 4265 corrHambNavItem.classList.add("active"); 4266 } 4267 } 4268 4269 // Save active primary nav item to sessionStorage 4270 const priNavId = navItem.getAttribute("data-pri-nav-id"); 4271 if (priNavId) { 4272 if(watchLive){ 4273 let watchChannelActive = document.querySelector('.nav--item.watch--channel__active'); 4274 let activeMenuItemLeftPosition = watchChannelActive.offsetLeft; 4275 let navigation = document.querySelector(".navbar .nav"); 4276 let navigationComputedStyles = window.getComputedStyle(navigation); 4277 let marginLeft = parseInt(navigationComputedStyles.getPropertyValue("margin-left")); 4278 4279 let targetScrollPosition = activeMenuItemLeftPosition - marginLeft - menuButtonSize; 4280 watchLiveLink = document.querySelector('.navbar .nav--item.watch--channel__active') 4281 watchLive_navId = watchLiveLink.getAttribute("data-pri-nav-id") 4282 watchLive_secId = watchLiveLink.querySelector('[aria-label="Live"]').getAttribute("data-sec-nav-id") 4283 sessionStorage.setItem("active_pri_nav_item", watchLive_navId); 4284 sessionStorage.setItem("active_sec_nav_item", watchLive_secId); 4285 window.sessionStorage.setItem("pri_nav_pos", targetScrollPosition); 4286 } else { 4287 sessionStorage.setItem("active_pri_nav_item", priNavId); 4288 console.log("Saved active primary nav item:", priNavId); 4289 } 4290 } 4291 4292 // Clear secondary nav active state when primary nav changes 4293 if(!watchLive){ 4294 sessionStorage.removeItem("active_sec_nav_item"); 4295 } 4296 document 4297 .querySelectorAll(".navbar .secondary--nav .list__item") 4298 .forEach((el) => { 4299 el.classList.remove("active"); 4300 }); 4301 4302 } 4303 4304 // Original sessionStorage handling 4305 sessionStorage.removeItem("pri_nav_pos"); 4306 sessionStorage.removeItem("sec_nav_wrap"); 4307 sessionStorage.removeItem("sec_nav_pos"); 4308 if(!watchLive){ 4309 window.sessionStorage.setItem("pri_nav_pos", pri_nav.scrollLeft); 4310 } 4311 }; 4312 }); 4313 4314 // Secondary navigation click handlers
4315 sec_nav_items.forEach(function (item) { 4316 item.onclick = function (event) { 4317 const target = event.target; 4318 4319 // Remove active class from all secondary nav list__items 4320 document 4321 .querySelectorAll(".navbar .secondary--nav .list__item") 4322 .forEach((el) => { 4323 el.classList.remove("active"); 4324 }); 4325 4326 // Add active class to the closest .list__item 4327 const listItem = target.closest(".list__item"); 4328 if (listItem) { 4329 listItem.classList.add("active"); 4330 } 4331 4332 // Save active secondary nav item to sessionStorage 4333 const secNavId = target.getAttribute("data-sec-nav-id"); 4334 if (secNavId) { 4335 sessionStorage.setItem("active_sec_nav_item", secNavId); 4336 } 4337 4338 // KEEP primary nav active and save it (if it's a sub-menu) 4339 const navItem = target.closest(".nav--item"); 4340 if (navItem) { 4341 const priNavId = navItem.getAttribute("data-pri-nav-id"); 4342 if (priNavId) { 4343 sessionStorage.setItem("active_pri_nav_item", priNavId); 4344 } 4345 } 4346 4347 // Store scroll positions 4348 sessionStorage.removeItem("sec_nav_wrap"); 4349 sessionStorage.removeItem("sec_nav_pos"); 4350 4351 const sec_nav_wrap = target.closest(".list"); 4352 if (sec_nav_wrap) { 4353 sessionStorage.setItem("sec_nav_pos", sec_nav_wrap.scrollLeft); 4354 4355 const navItem = sec_nav_wrap.closest(".nav--item"); 4356 if (navItem && navItem.classList[1]) { 4357 sessionStorage.setItem("sec_nav_wrap", navItem.classList[1]); 4358 } 4359 } 4360 4361 sessionStorage.setItem("pri_nav_pos", pri_nav.scrollLeft); 4362 }; 4363 }); 4364 4365 // Watch Live button click handler 4366 const watchLiveButton = document.querySelector('.sticky-left .watch-live-button'); 4367 if (watchLiveButton) { 4368 watchLiveButton.onclick = function(event) { 4369 console.log('Watch Live button clicked:', event.target); 4370 4371 // Find the nav--item with watch--channel__active active classes 4372 const watchChannelActive = document.querySelector('.nav--item.watch--channel__active.active'); 4373 if (watchChannelActive) { 4374 // Get the secondary navigation from this element 4375 const secondaryNav = watchChannelActive.querySelector('.secondary--nav'); 4376 if (secondaryNav) { 4377 // Find the active secondary nav item (Live) 4378 const activeSecondaryItem = secondaryNav.querySelector('.list__item.active'); 4379 if (activeSecondaryItem) { 4380 const secNavId = activeSecondaryItem.getAttribute('data-sec-nav-id'); 4381 if (secNavId) { 4382 sessionStorage.setItem('active_sec_nav_item', secNavId); 4383 console.log('Saved active secondary nav item from watch channel:', secNavId); 4384 } 4385 } 4386 4387 // Save the watch channel primary nav as active 4388 const priNavId = watchChannelActive.getAttribute('data-pri-nav-id'); 4389 if (priNavId) { 4390 sessionStorage.setItem('active_pri_nav_item', priNavId); 4391 console.log('Saved active primary nav item from watch channel:', priNavId); 4392 } 4393 4394 // Store scroll positions for secondary nav 4395 const secNavList = secondaryNav.querySelector('.list'); 4396 if (secNavList) { 4397 sessionStorage.setItem("sec_nav_pos", secNavList.scrollLeft); 4398 4399 if (watchChannelActive.classList[1]) { 4400 sessionStorage.setItem("sec_nav_wrap", watchChannelActive.classList[1]); 4401 } 4402 } 4403 4404 // Store primary nav scroll position 4405 sessionStorage.setItem("pri_nav_pos", pri_nav.scrollLeft); 4406 } 4407 } 4408 }; 4409 } 4410 4411 // Hamburger navigation click handlers 4412 hamb_nav_items.forEach(function (item) { 4413 item.onclick = function (event) { 4414 console.log("Hamburger nav clicked:", event.target); 4415 4416 const navItem = event.target.closest(".nav--item"); 4417 if (navItem) { 4418 // Remove active class from all primary nav items 4419 document.querySelectorAll(".navbar .nav .nav--item").forEach((el) => { 4420 el.classList.remove("active"); 4421 }); 4422 document 4423 .querySelectorAll(".hamburger .nav .nav--item") 4424 .forEach((el) => { 4425 el.classList.remove("active"); 4426 }); 4427 4428 // Add active class to clicked hamburger nav item 4429 navItem.classList.add("active"); 4430 4431 // Find corresponding item in primary nav and activate it 4432 const href = item.getAttribute("href"); 4433 const corresponding = Array.from( 4434 document.querySelectorAll(".navbar .nav .nav--item a") 4435 ).find((a) => a.getAttribute("href") === href); 4436 4437 if (corresponding) {
4438 const corrNavItem = corresponding.closest(".nav--item"); 4439 if (corrNavItem) { 4440 corrNavItem.classList.add("active"); 4441 } 4442 } 4443 4444 // Save active primary nav item to sessionStorage 4445 const priNavId = navItem.getAttribute("data-pri-nav-id"); 4446 if (priNavId) { 4447 sessionStorage.setItem("active_pri_nav_item", priNavId); 4448 console.log("Saved active primary nav item:", priNavId); 4449 } 4450 4451 // Clear secondary nav active state when primary nav changes 4452 sessionStorage.removeItem("active_sec_nav_item"); 4453 document 4454 .querySelectorAll(".navbar .secondary--nav .list__item") 4455 .forEach((el) => { 4456 el.classList.remove("active"); 4457 }); 4458 } 4459 4460 // Original sessionStorage handling 4461 sessionStorage.removeItem("pri_nav_pos"); 4462 sessionStorage.removeItem("sec_nav_wrap"); 4463 sessionStorage.removeItem("sec_nav_pos"); 4464 window.sessionStorage.setItem("pri_nav_pos", pri_nav.scrollLeft); 4465 }; 4466 }); 4467} 4468 4469 4470function restoreActiveNavigation() { 4471 const isMobile = window.innerWidth <= 768; 4472 4473 4474 if (isMobile) { 4475 console.log("Mobile detected - skipping sessionStorage restore"); 4476 return; 4477 } 4478 4479 const activePriNavItem = sessionStorage.getItem("active_pri_nav_item"); 4480 const activeSecNavItem = sessionStorage.getItem("active_sec_nav_item"); 4481 4482 // Always restore primary nav first (if it exists) 4483 if (activePriNavItem) { 4484 const priElement = document.querySelector( 4485 `.navbar [data-pri-nav-id="${activePriNavItem}"]` 4486 ); 4487 if (priElement) { 4488 // Clear all primary nav items 4489 document 4490 .querySelectorAll(".navbar .nav .nav--item") 4491 .forEach((el) => el.classList.remove("active")); 4492 document 4493 .querySelectorAll(".hamburger .nav .nav--item") 4494 .forEach((el) => el.classList.remove("active")); 4495 4496 // Set primary nav as active 4497 priElement.classList.add("active"); 4498 console.log("Restored active class to primary nav:", priElement); 4499 4500 // Activate corresponding hamburger item 4501 const priLink = priElement.querySelector("a"); 4502 if (priLink) { 4503 const href = priLink.getAttribute("href"); 4504 const correspondingHamb = Array.from(window.hamb_nav_items).find( 4505 (a) => a.getAttribute("href") === href 4506 ); 4507 4508 if (correspondingHamb) { 4509 const corrHambNavItem = correspondingHamb.closest(".nav--item"); 4510 if (corrHambNavItem) { 4511 corrHambNavItem.classList.add("active"); 4512 console.log( 4513 "Restored active class to hamburger nav:", 4514 corrHambNavItem 4515 ); 4516 } 4517 } 4518 } 4519 } 4520 } 4521 4522 // Then restore secondary nav (if it exists) 4523 if (activeSecNavItem) { 4524 const secElement = document.querySelector( 4525 `[data-sec-nav-id="${activeSecNavItem}"]` 4526 ); 4527 if (secElement) { 4528 document 4529 .querySelectorAll(".navbar .secondary--nav .list__item") 4530 .forEach((el) => el.classList.remove("active")); 4531 const listItem = secElement.closest(".list__item"); 4532 if (listItem) { 4533 listItem.classList.add("active"); 4534 console.log("Restored active secondary nav:", listItem); 4535 } 4536 } 4537 } 4538} 4539 4540// Add unique identifiers to navigation items 4541function initializeNavigationIds() { 4542 // Add IDs to primary nav items 4543 pri_nav_items.forEach(function (item, index) {
4544 const navItem = item.closest(".nav--item"); 4545 if (navItem && !navItem.hasAttribute("data-pri-nav-id")) { 4546 navItem.setAttribute("data-pri-nav-id", `pri-nav-${index}`); 4547 } 4548 }); 4549 4550 // Add IDs to hamburger nav items 4551 hamb_nav_items.forEach(function (item, index) { 4552 const navItem = item.closest(".nav--item"); 4553 if (navItem && !navItem.hasAttribute("data-pri-nav-id")) { 4554 navItem.setAttribute("data-pri-nav-id", `pri-nav-${index}`); 4555 } 4556 }); 4557 4558 // Add IDs to secondary nav items 4559 sec_nav_items.forEach(function (item, index) { 4560 if (!item.hasAttribute("data-sec-nav-id")) { 4561 item.setAttribute("data-sec-nav-id", `sec-nav-${index}`); 4562 } 4563 }); 4564} 4565 4566// Initialize navigation system 4567function initializeNavigation() { 4568 init(); 4569 initializeNavigationIds(); 4570 4571 4572 4573 if(window.location.pathname === "/watch/live"){ 4574 restoreActiveNavigation(); 4575 } 4576} 4577 4578// Initialize when DOM is ready 4579// if (document.readyState === 'loading') { 4580// document.addEventListener('DOMContentLoaded', initializeNavigation); 4581// } else { 4582// initializeNavigation(); 4583// } 4584 4585REBELMOUSE_STDLIB.createElementChangeListener(".hamburger", function () { 4586 initializeNavigation(); 4587}); 4588 4589// Opinion section scroll handling 4590if (window.location.search == "?opinion") { 4591 const opinionWidget = document.querySelector(".opinion-wrapper .widget"); 4592 if (opinionWidget) { 4593 if ( 4594 /constructor/i.test(window.HTMLElement) || 4595 (function (p) { 4596 return p.toString() === "[object SafariRemoteNotification]"; 4597 })( 4598 !window["safari"] || 4599 (typeof safari !== "undefined" && window["safari"].pushNotification) 4600 ) 4601 ) { 4602 opinionWidget.scrollIntoView(true); 4603 } else if (typeof InstallTrigger !== "undefined") { 4604 opinionWidget.scrollIntoView(true); 4605 } else { 4606 opinionWidget.scrollIntoView({ 4607 block: "nearest", 4608 behavior: "smooth", 4609 }); 4610 } 4611 } 4612} 4613 4614 4615}); 4616 4617window.REBELMOUSE_TASKS_QUEUE.push(function(){ 4618 4619 4620 REBELMOUSE_STDLIB.createElementChangeListener('.show-only-if-post-present', function (item) { 4621 if (!item.querySelector('.widget')) { 4622 item.classList.add('hidden'); 4623 if(item.nextSibling.classList.contains('ad--placeholder')){ 4624 item.nextSibling.remove(); 4625 } 4626 } 4627 }); 4628 4629 REBELMOUSE_STDLIB.createElementChangeListener('.show-only-if-four-post-present', function (item) { 4630 if (item.querySelectorAll('.widget').length <= 3) { 4631 item.classList.add('hidden'); 4632 } 4633 }) 4634 4635 REBELMOUSE_STDLIB.createElementChangeListener('.rebellt-ecommerce--price', function (item) { 4636 item.innerHTML = item.innerHTML.replace(/\$/g, '£'); 4637 }) 4638 4639 4640}); 4641 4642window.REBELMOUSE_TASKS_QUEUE.push(function(){ 4643 4644 4645 // Piano object 4646tp = []; 4647 4648const addInfoToTP = () => { 4649 const preDefinedInfo = document.querySelector('.js-all-tags'); 4650 let allTags = `${preDefinedInfo.dataset.tags.replace(/[\[\]']+/g, '')}`; 4651 let primarySectionTitle = preDefinedInfo.dataset.contentSection; 4652 let postAuthor = preDefinedInfo.dataset.author; 4653 let postType = preDefinedInfo.dataset.contentType; 4654 let cd1 = preDefinedInfo.dataset.cd1; 4655 let cd2 = preDefinedInfo.dataset.cd2; 4656 let cd9 = preDefinedInfo.dataset.cd9; 4657 let cd11 = window.matchMedia('(display-mode: standalone)').matches ? 'pwa' : 'web'; 4658 // console.log(cd11); 4659 let cd12 = preDefinedInfo.dataset.cd12; 4660 let cd13 = preDefinedInfo.dataset.cd13; 4661 let cd14 = preDefinedInfo.dataset.cd14; 4662 let cd15 = preDefinedInfo.dataset.cd15; 4663 let cd16 = preDefinedInfo.dataset.cd16; 4664 let cd17 = preDefinedInfo.dataset.cd17; 4665 let cd18 = preDefinedInfo.dataset.cd18; 4666 let cd19 = document.referrer.split('/')[2] || 'not set'; 4667 let cd23 = 'not set'; 4668 let cd25 = window.navigator.userAgent; 4669 4670 const getInfo = (string) => 4671 string 4672 .split("':")[1] 4673 .replace(/[&#,+()$~%.'"*?<>{}]/g, '') 4674 .trim(); 4675 const passDataToTp = (type, data) => tp.push([type, data]); 4676 const passCustomDataToTp = (name, data) => tp.push(['setCustomVariable', name, data]); 4677 4678 primarySectionTitle = getInfo(primarySectionTitle); 4679 passDataToTp('setContentSection', primarySectionTitle); 4680 4681 postAuthor = getInfo(postAuthor); 4682 passDataToTp('setContentAuthor', postAuthor); 4683 4684 postType = getInfo(postType); 4685 passCustomDataToTp('content_type', postType); 4686 4687 cd1 = getInfo(cd1); 4688 passCustomDataToTp('cd1', cd1); 4689 cd2 = getInfo(cd2); 4690 passCustomDataToTp('cd2', cd2); 4691 cd9 = getInfo(cd9); 4692 passCustomDataToTp('cd9', cd9); 4693 passCustomDataToTp('cd11', cd11); 4694 cd12 = getInfo(cd12); 4695 passCustomDataToTp('cd12', cd12); 4696 cd13 = getInfo(cd13); 4697 passCustomDataToTp('cd13', cd13); 4698 cd14 = getInfo(cd14); 4699 passCustomDataToTp('cd14', cd14); 4700 cd15 = getInfo(cd15);
4701 passCustomDataToTp('cd15', cd15); 4702 cd16 = getInfo(cd16); 4703 passCustomDataToTp('cd16', cd16); 4704 cd17 = getInfo(cd17); 4705 passCustomDataToTp('cd17', cd17); 4706 cd18 = getInfo(cd18); 4707 passCustomDataToTp('cd18', cd18); 4708 passCustomDataToTp('cd19', cd19); 4709 passCustomDataToTp('cd23', cd23); 4710 passCustomDataToTp('cd25', cd25); 4711 4712 return allTags.length ? passDataToTp('setTags', allTags) : false; 4713}; 4714 4715addInfoToTP(); 4716 4717 4718}); 4719 4720window.REBELMOUSE_LOW_TASKS_QUEUE.push(function(){ 4721 4722 4723 // window.gbnCE = window.gbnCE || []; 4724// window.gbnCE.push([ 4725// 'init', 4726// function (gbnCE) { 4727// gbnCE.auth.updateHeaderElement(); 4728// }, 4729// ]); 4730 4731 4732});</script>
4732<script class="rm-i-script" id="user-javascript-active" type="text"> 4733 4734 4735window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4736 4737 4738 window.REBELMOUSE_STDLIB.loadExternalScript("//script.id.gbnews.com/index.js?v=2", function() { 4739 4740 console.log("[gbn id script loaded]") 4741 4742 }); 4743 4744 4745}); 4746 4747window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4748 4749 4750 const INTERNAL_CLASS_PREFIXES = ["tag-", "post-section-", "rm-fl-"]; 4751 4752function filterOutNoisyClassNames(className) { 4753 function doesClassNameStartWithPrefix(badPrefix) { 4754 return className.indexOf(badPrefix) === 0; 4755 } 4756 4757 return !INTERNAL_CLASS_PREFIXES.some(doesClassNameStartWithPrefix); 4758} 4759 4760function signatureMaker(id, tagName, classList) { 4761 const cleanClassList = classList.filter(filterOutNoisyClassNames).sort(); 4762 return [id, tagName, cleanClassList]; 4763} 4764 4765window.__rpmOptions = { 4766 lcpTrackerOptions: { 4767 signatureMaker: signatureMaker, 4768 }, 4769}; 4770 4771 4772window.REBELMOUSE_STDLIB.loadExternalScript("https://www.rebelmouse.com/pharos/client/v1/mjs/web.mjs", function(){}) 4773 4774 4775}); 4776 4777window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4778 4779 4780 const DEBUGGING = false; 4781const PA_WAIT_INTERVAL = 100; // time in ms to wait for Piano Analytics 4782const PA_WAIT_ATTEMPTS = 5; // number of times to try looking for Piano Analytics 4783// const PLAYER_URL = "https://mm-dev.simplestream.com/ssmp/gbnews.js"; 4784const PLAYER_URL = "https://mm-dev.simplestream.com/ssmp/gbnewsv2.js"; // testing endpoint! 4785 4786var pa_attempts = 0; 4787 4788// Only load player when Piano Analytics is ready 4789waitForPianoAnalytics(); 4790 4791function waitForPianoAnalytics(){ 4792 debug('Checking for Piano Analytics...'); 4793 if (typeof pa !== "undefined" || pa_attempts >= PA_WAIT_ATTEMPTS){ 4794 debug('Piano Analytics is loaded so loading video player'); 4795 loadVideoPlayer(); 4796 } 4797 else{ 4798 debug('Piano Analytics not yet loaded'); 4799 pa_attempts++; 4800 setTimeout(waitForPianoAnalytics, PA_WAIT_INTERVAL); 4801 } 4802} 4803 4804function loadVideoPlayer() { 4805 debug('creating listener'); 4806 window.REBELMOUSE_STDLIB.createElementChangeListener( 4807 ".simplestream-holder.rm-shortcode .simplestream", 4808 function (_element) { 4809 debug('loading external JS'); 4810 window.REBELMOUSE_STDLIB.loadExternalScript( 4811 PLAYER_URL, 4812 function () { 4813 debug('simplestream staging JS loaded'); 4814 loadScript(); 4815 function loadScript(){ 4816 let sidebar = document.querySelector('.sidebar-wrapper'); 4817 let noSidebar = sidebar ? window.getComputedStyle(sidebar).display === 'none' : false; 4818 4819 if (_element.classList.contains('sidebar') && noSidebar){ 4820 debug('Preventing initialization of hidden sidebar live player') 4821 } 4822 else{ 4823 var getId='#'+_element.getAttribute('data-id'); 4824 debug('initializing video ' + getId); 4825 window.simplestream.initApp(); 4826 } 4827 } 4828 } 4829 ); 4830 } 4831 ); 4832} 4833 4834function debug(message) { 4835 if (DEBUGGING) 4836 console.log('[Video Player]: '+message); 4837} 4838 4839 4840}); 4841 4842window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4843 4844 4845 function asyncScriptLoading(src) { 4846 return new Promise(function (resolve, reject) { 4847 let s; 4848 s = document.createElement('script'); 4849 s.type = 'text/javascript'; 4850 s.async = true; 4851 s.src = src; 4852 s.onload = resolve; 4853 s.onerror = reject; 4854 document.head.appendChild(s); 4855 }); 4856} 4857 4858const src = '//cdn.pushwoosh.com/webpush/v3/pushwoosh-web-notifications.js'; 4859 4860asyncScriptLoading(src); 4861 4862 4863}); 4864 4865window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4866 4867 4868 REBELMOUSE_STDLIB.createElementChangeListener("#pwSubscribePopup.pw-show", function(element){ 4869 console.log(element); 4870 setTimeout(() => { 4871 element.classList.add("delay-display"); 4872 }, 1000) 4873}) 4874 4875 4876}); 4877 4878window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4879 4880 4881 REBELMOUSE_STDLIB.createElementChangeListener('.carousel--wrapper', function(carousel){ 4882 carousel_post=carousel.querySelector('.widget'); 4883 var scrolling_item=carousel.querySelector('.posts-wrapper'); 4884 if(!scrolling_item) return; 4885// console.log(carousel); 4886 4887function car_distance_calc(){ 4888
4889 var multiplier=parseInt(scrolling_item.clientWidth/carousel_post.clientWidth); 4890 if(carousel.classList.contains('scroll--one')){ 4891 multiplier=1; 4892 } 4893// console.log(multiplier + "---"+scrolling_item.clientWidth+"---" +carousel_post.clientWidth ) 4894return multiplier*(carousel_post.clientWidth+20); 4895} 4896let carousel__arrows=carousel.querySelectorAll('.carousel--arrow'); 4897 4898var carousel_distance = car_distance_calc(); 4899 4900carousel__arrows.forEach(function(item){ 4901 buttonNextPrevVisiblity(700,item.closest('.carousel--wrapper')); 4902 item.onclick=function(){ 4903 scrolling_item.scrollBy({ 4904 left: item.classList.contains('prev')? -carousel_distance:carousel_distance, 4905 behavior: 'smooth' 4906 }); 4907 buttonNextPrevVisiblity(700,item.closest('.carousel--wrapper')); 4908 } 4909}) 4910 window.addEventListener("resize",debounce(function(e){ 4911 carousel_distance=car_distance_calc(); 4912 carousel__arrow_pos(); 4913})); 4914function carousel__arrow_pos(){ 4915carousel__arrows.forEach(function(item){ 4916item.style.top=(carousel_post.clientWidth*.5625-53)/2 + 'px' 4917}) 4918} 4919carousel__arrow_pos(); 4920 4921function buttonNextPrevVisiblity(timeOffset,carousel) { 4922var btn_prev=carousel.querySelector('.carousel--arrow.prev'); 4923 var btn_next=carousel.querySelector('.carousel--arrow.next'); 4924 4925 4926 if(scrolling_item.scrollWidth <= scrolling_item.clientWidth+20){ 4927 btn_next.classList.add("hidden"); 4928 btn_prev.classList.add("hidden") 4929 } 4930 setTimeout(sccc => { 4931 if (scrolling_item.scrollLeft > 0) { 4932 btn_prev.classList.remove("hidden") 4933 } else { 4934 btn_prev.classList.add("hidden") 4935 } 4936 if (scrolling_item.scrollWidth <= (scrolling_item.clientWidth + scrolling_item.scrollLeft+ 20) ) { 4937 btn_next.classList.add("hidden") 4938 } else { 4939 btn_next.classList.remove("hidden") 4940 } 4941 }, timeOffset) 4942 } 4943 4944}) 4945function debounce(func){ 4946 var timer; 4947 return function(event){ 4948 if(timer) clearTimeout(timer); 4949 timer = setTimeout(func,250,event); 4950 }; 4951} 4952 4953 4954}); 4955 4956window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4957 4958 4959 REBELMOUSE_STDLIB.createElementChangeListener(".widget__shares", function(sharesElement){ 4960 let currentUrl = window.location.href; 4961 console.log(sharesElement); 4962 let wppShareUrl = "https://web.whatsapp.com://send?text=" + currentUrl; 4963 let wppBtn = document.createElement("a"); 4964 wppBtn.innerHTML = `<i aria-hidden="true" class="icons-share whatsapp fa fa-whatsapp"></i>` 4965 wppBtn.setAttribute("href", wppShareUrl); 4966 wppBtn.setAttribute("data-track-share", "WhatsApp"); 4967 wppBtn.setAttribute("class", "share share-whatsapp-desktop show-buttons"); 4968 wppBtn.setAttribute("rel", "noopener noreferrer"); 4969 wppBtn.setAttribute("aria-label", "Share on WhatsApp"); 4970 4971 /* let fbShareUrl = "fb-messenger://share/?link=" + currentUrl; 4972 let fbBtn = document.createElement("a"); 4973 fbBtn.innerHTML = `<i aria-hidden="true" class="icons-share messenger fa fa-facebook-messenger"></i>` 4974 fbBtn.setAttribute("href", fbShareUrl); 4975 fbBtn.setAttribute("data-track-share", "Facebook Messenger"); 4976 fbBtn.setAttribute("class", "share share-facebook-messenger show-buttons"); 4977 fbBtn.setAttribute("rel", "noopener noreferrer"); 4978 fbBtn.setAttribute("aria-label", "Share on Facebook Messenger"); 4979 4980 sharesElement.insertBefore(wppBtn, sharesElement.children[2]); 4981 sharesElement.insertBefore(fbBtn, sharesElement.children[-1]); */ 4982}) 4983 4984 4985}); 4986 4987window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 4988 4989 4990 if (!CSS.supports('selector(:has(*))')) { 4991 REBELMOUSE_STDLIB.createElementChangeListener(".widget", function(post){ 4992 const isMemberPost = Boolean(post.querySelector('.member-post-label')); 4993 4994 if (isMemberPost) { 4995 const label = post.querySelector('.member-post-label'); 4996 const postContainer = label.closest('.widget'); 4997 4998 return postContainer.classList.add('member'); 4999 } 5000 5001 return false; 5002 5003 //return isMemberPost ? post.classList.add('member') : false; 5004 }) 5005} 5006 5007 5008}); 5009 5010window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 5011 5012 5013 window.REBELMOUSE_STDLIB.loadExternalScript("//scripts.loyaltypoints.gbnews.com/index.js?v=3", function() { 5014 5015 console.log("[gbnCE] Script loaded"); 5016 5017 }); 5018 5019 5020}); 5021 5022window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 5023 5024 5025 var comments = document.getElementById('comments'); 5026var comments_buttons5 = document.getElementsByClassName("comments__button"); 5027var attempts = 0; 5028var engbar = document.querySelector('.engbar'); 5029var comments_loaded = false;
5030const max_attempts = 15; 5031const wait_interval = 120; 5032const engbar_h = 80; 5033const margin = 35; 5034const timeout = 2500; 5035const conversation_starter_active = false; 5036const debugging = false; 5037 5038var isUserScrollingUp = false; 5039var lastScrollY = window.scrollY; 5040var scrollingActive = false; 5041 5042// new bit 5043var scrollUpThreshold = 5; 5044 5045 5046 5047debug("Hash = "+location.hash) 5048if (location.hash === "#comments" || location.hash === "#viafoura-conversations-id") { 5049 debug("Scrolling to comments due to hash = "+location.hash); 5050 scrollToComments(); 5051} 5052 5053if (comments_buttons5.length) { 5054 for(var i = 0; i<comments_buttons5.length; i++) { 5055 comments_buttons5[i].onclick=function() { 5056 debug("Comments link clicked"); 5057 scrollToComments(); 5058 } 5059 } 5060} 5061 5062 5063// function 1 5064// set scrollingActive to true (indicating scrolling is happening) 5065// call smoothScroll() to scroll to the comments section 5066// checks if isUserScrollingUp is true - if yes then aborts and prevents further action happening 5067function scrollToComments() { 5068 debug(attempts + ' scrollToComments'); 5069 5070 var offset = (engbar ? engbar.offsetHeight : engbar_h) + margin; 5071 5072 var OB = document.querySelector('.OUTBRAIN'); 5073 var adBlock = false; 5074 5075 scrollingActive = true; 5076 smoothScroll(comments, offset).then(() => { 5077 if (isUserScrollingUp) { 5078 debug("Scrolling up detected, canceling scrollToComments"); 5079 scrollingActive = false; 5080 return; 5081 } 5082 5083 // check for ad blockers 5084 if (OB) { 5085 adBlock = window.getComputedStyle(OB)?.display === "none"; 5086 debug('ad blocker ' + (adBlock ? 'detected' : 'not detected')); 5087 } 5088 5089 // if Viafoura not yet inserted into Outbrain try again 5090 if (!comments_loaded && !comments.closest('.OUTBRAIN') && attempts < max_attempts && !adBlock) { 5091 // wait and then try scrolling again 5092 debug("Trying again..."); 5093 attempts++; 5094 setTimeout(() => { 5095 if (!isUserScrollingUp) { 5096 scrollToComments(); 5097 } else { 5098 scrollingActive = false; 5099 } 5100 }, Math.floor(wait_interval * (attempts + 1))); 5101 } else { 5102 // the final attempt 5103 debug("The final attempt"); 5104 smoothScroll(comments, offset).then(() => { 5105 if (document.querySelector('.OUTBRAIN .comments-wrapper') === null) { 5106 debug('failed to insert comments into Outbrain'); 5107 if (document.querySelector('.comments-wrapper .viafoura')) { 5108 document.querySelector('.comments-wrapper .viafoura').style.display = "block"; 5109 } 5110 5111 if (typeof window.OB_loaded === 'undefined' || !window.OB_loaded) { 5112 debug('Outbrain did not load'); 5113 document.querySelector('.you-may-like__wrapper').style.display = "none"; 5114 } 5115 } 5116 debug('Comments should now be in view'); 5117 5118 // set loaded flag 5119 comments_loaded = true; 5120 scrollingActive = false; 5121 }); 5122 } 5123 }).catch(err => { 5124 scrollingActive = false; 5125 debug(err.message); 5126 }); 5127} 5128 5129// function 2 5130// handling of the scroll to comments action 5131// promise is resolved when the target is reached 5132function smoothScroll(elem, offset = 0) { 5133 debug("smoothScroll with offset = " + offset); 5134 5135 const rect = elem.getBoundingClientRect(); 5136 let targetPosition = Math.floor(rect.top + window.pageYOffset - offset); 5137 window.scrollTo({ 5138 top: targetPosition, 5139 behavior: 'smooth' 5140 }); 5141 5142 let p = new Promise((resolve, reject) => { 5143 const failed = setTimeout(() => { 5144 reject(new Error("Scroll to comments timed out")); 5145 }, timeout); 5146 5147 const scrollHandler = () => { 5148 if (Math.abs(window.pageYOffset - targetPosition) < 10) { 5149 window.removeEventListener("scroll", scrollHandler); 5150 clearTimeout(failed); 5151 resolve("Target reached, disabling scroll listener"); 5152 } 5153 5154 if (window.scrollY < lastScrollY) { 5155 isUserScrollingUp = true; 5156 debug("Scroll up detected"); 5157 window.removeEventListener("scroll", scrollHandler); 5158 clearTimeout(failed); 5159 resolve("User is scrolling up, disabling scroll listener"); 5160 } 5161 }; 5162 5163 if (Math.abs(window.pageYOffset - targetPosition) < 10) { 5164 clearTimeout(failed); 5165 resolve("Scrolled to target position"); 5166 } else { 5167 window.addEventListener("scroll", scrollHandler); 5168 } 5169 }); 5170 5171 p.then(value => { 5172 debug(value); 5173 }).catch(err => { 5174 debug(err.message); 5175 }); 5176 5177 return p; 5178} 5179 5180// Add a scroll event listener to detect scroll direction 5181// Detects the scroll direction 5182// If the user starts to scroll up WHILE the script is running (more than the threshold set), set scrollingActive to false and ABORT scroll action 5183window.addEventListener('scroll', () => { 5184 5185 // if (window.scrollY < lastScrollY) { 5186 if (lastScrollY - window.scrollY > scrollUpThreshold) { 5187 isUserScrollingUp = true; 5188 if (scrollingActive) { 5189 debug("User started scrolling up during scroll, aborting"); 5190 scrollingActive = false;
5191 } 5192 } else { 5193 isUserScrollingUp = false; 5194 } 5195 lastScrollY = window.scrollY; 5196}); 5197 5198 5199function debug(message) { 5200 if (debugging) 5201 console.log('DEBUG [Scroll to comments]: ' + message); 5202} 5203 5204 5205}); 5206 5207window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 5208 5209 5210 let shareButton = document.querySelector('.share__button'); 5211let copyText = document.querySelector('.share-copy-link'); 5212const shareDialog = document.querySelector('.share-background'); 5213const url = document.querySelector('link[rel=canonical]') 5214 ? document.querySelector('link[rel=canonical]').href 5215 : document.location.href; 5216const closeButton = document.querySelector('.close-button'); 5217const title = document.title; 5218 5219// const article = document.querySelector('article[elid]'); 5220// const articleId = article ? article.getAttribute('elid') : null; 5221 5222let pageLink = window.location.href; 5223 5224// initialise Gamification window object 5225window.gbnCE = window.gbnCE || []; 5226 5227closeButton.addEventListener('click', (event) => { 5228 shareDialog.classList.remove('is-open'); 5229}); 5230 5231shareButton.addEventListener('click', (event) => { 5232 if (navigator.share) { 5233 navigator 5234 .share({ 5235 title: title, 5236 url: url, 5237 }) 5238 .then(() => { 5239 // console.log('Thanks for sharing!', title); 5240 // console.log("article id is - ", articleId); 5241 window.gbnCE.push(['event', 'share', 'article', pageLink]); 5242 console.log('gbnCE push', window.gbnCE); 5243 }) 5244 .catch(console.error); 5245 } else { 5246 shareDialog.classList.add('is-open'); 5247 window.gbnCE.push(['event', 'share', 'article', articleId]); 5248 } 5249}); 5250 5251copyText.addEventListener('click', (event) => { 5252 navigator.clipboard.writeText(window.location.href); 5253}); 5254 5255 5256}); 5257 5258window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 5259 5260 5261 let lastScrollTop = 0, 5262 engBar = document.querySelector('.article-shares-el'); 5263 5264window.addEventListener("scroll", function(){ 5265 5266 let st = window.pageYOffset || document.documentElement.scrollTop; 5267 showCommentsBtn() 5268 if (st > lastScrollTop) { 5269 if (document.body.scrollTop > 900 || document.documentElement.scrollTop > 900) { 5270 engBar.style.opacity = 100; 5271 // z-index was set to 999; 5272 engBar.style.zIndex = 98; 5273 engBar.style.display = "flex"; 5274 5275 } 5276 } 5277 // else if (st < lastScrollTop) { 5278 // showCommentsBtn() 5279 // if (document.body.scrollTop > 1100 || document.documentElement.scrollTop > 1100) { 5280 // engBar.style.opacity = 100; 5281 // engBar.style.zIndex = 999; 5282 5283 5284 // } 5285 // else{ 5286 // showCommentsBtn() 5287 // engBar.style.opacity = 0; 5288 // engBar.style.zIndex = -1; 5289 // engBar.style.display = "none"; 5290 5291 // } 5292 // } 5293 lastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling 5294}, false); 5295 5296function showCommentsBtn(){ 5297 if(document.getElementById('comments')){ 5298 let commentsElement = document.getElementById('comments'), 5299 bounding = commentsElement.getBoundingClientRect(), 5300 commentsBtn = document.querySelector('.commentIcon'), 5301 commentsHeight = commentsElement.offsetHeight; 5302 5303 5304 if (commentsElement && bounding.top >= -(commentsHeight) && bounding.left >= 0 && bounding.right <= window.innerWidth && bounding.bottom <= window.innerHeight - 230) { 5305 commentsBtn.style.opacity = 0; 5306 commentsBtn.style.cursor = 'default'; 5307 commentsBtn.style.pointerEvents = "none"; 5308 //console.log('Element is in the viewport!'); 5309 } else { 5310 commentsBtn.style.opacity = 100; 5311 commentsBtn.style.cursor = 'pointer'; 5312 commentsBtn.style.pointerEvents = "auto"; 5313 5314 //console.log('Element is NOT in the viewport!'); 5315 } 5316 }else{ 5317 document.querySelector('.commentIcon').style.display = 'none'; 5318 5319 } 5320} 5321 5322 5323}); 5324 5325window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 5326 5327 5328 const ENABLE_PERSONALIZATION_LOGS = false; 5329 5330let postsToDisplay = []; 5331let fetchedPosts = []; 5332const fetchCount = 25; 5333let preferencesData = []; 5334let currentPostSections = []; 5335let currentPostAllSections = []; 5336let sectionsToManuallyExcludeFromFetch = []; 5337let followedSectionsSet, currentPostPrimarySection, currentPostPrimarySectionParent ; 5338 5339const today = new Date(); 5340const newExpiryDate = (daysFromNow = 7) => (new Date().setDate(today.getDate() + daysFromNow) ); 5341const localPreferenceData = JSON.parse(localStorage.hp_data || '{}'); 5342let visitedPostsSections = localPreferenceData.visited_posts_sections || {}; 5343const systemSections = localStorage.all_sections ? JSON.parse(localStorage.all_sections) : null 5344let allSectionsObj = systemSections?.sections; // using an object not array for efficiency 5345let allSectionsIdMap = systemSections?.sectionsIdMap; // using an object not array for efficiency 5346let sectionsToExclude = systemSections?.privateSections || {0:'home'}; 5347let likedPostSectionsObj = {}; 5348window.trackedImpression = false;
5349 5350const sectionsToRunPersonalizedContent = [ 5351 588563276 //sport 5352] 5353 5354const getAllSections = async() => { 5355 try { 5356 const req = await fetch(`https://www.gbnews.com/r/kappa/api/v2/reader/get-sections`, { 5357 method: "GET", 5358 credentials: "omit" 5359 }); 5360 const res = await req.json(); 5361 allSectionsObj = {}; 5362 allSectionsIdMap = {}; 5363 sectionsToExclude = {}; 5364 // encode the section name to match the encoding of the followed topics and update the cache 5365 res.map(section => { 5366 section.encodedTitle = section.title?.replace(/\s+/g, ''); 5367 allSectionsObj[section.encodedTitle] = section; 5368 allSectionsIdMap[section.id] = section; 5369 if(section.status !== 2){ // not a public section 5370 sectionsToExclude[section.id] = section.slug; 5371 } 5372 return section; 5373 }) 5374 sectionsToExclude[0] = 'home'; // manually excude the home section since it's not returned from the endpoint 5375 5376 localStorage.all_sections = JSON.stringify({ 5377 sections: allSectionsObj, 5378 sectionsIdMap: allSectionsIdMap, 5379 privateSections: sectionsToExclude, 5380 expiry: newExpiryDate(3) 5381 }); 5382 return res; 5383 } catch (error) { 5384 console.log(error) 5385 } 5386} 5387 5388function manuallyExcludeSections(){ 5389 const sectionsToManuallyExclude = { 5390 2151427851 : 'alerts', 5391 586688191 : 'non-content' 5392 }; 5393 5394 for (const [key, value] of Object.entries(sectionsToManuallyExclude)) { 5395 sectionsToExclude[key] = value; 5396 sectionsToManuallyExcludeFromFetch.push(key); 5397 } 5398} 5399 5400function decodeSection(encodedTitle) { 5401 return allSectionsObj?.[encodedTitle]?.id || 'section_deprecated' ; 5402} 5403 5404async function getUserPreferenceData () { 5405 try { 5406 preferencesData = await new Promise((resolve, reject) => { 5407 setTimeout(() => { 5408 try { 5409 const { likedPostsTopics, followedTopics, likedPosts } = window.gbnID._currentUser.interests; 5410 5411 const likedPostsTopicsObj = {}; 5412 5413 likedPostsTopics.forEach(item => { 5414 const [id, weight] = item.split(":"); 5415 likedPostsTopicsObj[id] = Number(weight); 5416 }); 5417 5418 resolve([ 5419 { 5420 field_name: "Liked_Posts_Topics", 5421 value: JSON.stringify(likedPostsTopicsObj) 5422 }, 5423 { 5424 field_name: "follow-topics-and-sections", 5425 value: JSON.stringify(followedTopics) 5426 }, 5427 { 5428 field_name: "Liked_Posts", 5429 value: JSON.stringify(likedPosts) 5430 } 5431 ]); 5432 } catch (err) { 5433 reject(err); 5434 } 5435 }, 2000); 5436 }); 5437 // console.log("[__get_personalized_data]: ", preferencesData); 5438 return preferencesData; 5439 5440 } catch (err) { 5441 console.error(err); 5442 } 5443}; 5444 5445 5446function validateLocalPreferenceData() { 5447 //this removes visited posts that are over 7 days old from the localstorage to allow them be recommended again 5448 localPreferenceData.visited_posts = (localPreferenceData.visited_posts || []).filter(post => today < post.expiry); 5449 //validate the viewed hp posts 5450 localPreferenceData.viewed_hp_posts = (localPreferenceData.viewed_hp_posts || []).filter(post => today < post.expiry); 5451 localStorage.hp_data = JSON.stringify(localPreferenceData); 5452} 5453 5454function addCurrentPostToVisitedStore(_id, postSections) { 5455 //check if the post is already there 5456 const visitedPosts = localPreferenceData.visited_posts || []; 5457 const existingPost = visitedPosts?.find(post => post.id == _id); 5458 visitedPostsSections = localPreferenceData.visited_posts_sections || {}; 5459 5460 // check if the post was already visited in this browser in the last 7 days and update accordingly 5461 if (!existingPost) { 5462 console.log('post added locally', _id); 5463 visitedPosts.push({ id: _id, expiry: newExpiryDate() }); 5464 } else { 5465 console.log('post already exists locally. Expiry time updated', _id); 5466 existingPost.expiry = newExpiryDate(); // update the existing post by reference 5467 } 5468 5469 //update the section visit count for the current post or for views post sections 5470 if (currentPostSections.length || postSections) { 5471 (postSections ? postSections : currentPostSections).map(section => { 5472 if(sectionsToExclude[section]) return false;
5473 5474 const scoreToBeAdded = (section === currentPostPrimarySection) ? 2 : 1; 5475 visitedPostsSections[section] = (visitedPostsSections[section] || 0) + scoreToBeAdded; 5476 }) 5477 } 5478// } 5479 5480 localPreferenceData.visited_posts = visitedPosts; 5481 localPreferenceData.visited_posts_sections = visitedPostsSections; 5482 localStorage.hp_data = JSON.stringify(localPreferenceData); 5483} 5484 5485 5486function addViewedPersonalizedPostToStore(_id) { 5487 const viewedPersonalizedPosts = localPreferenceData.viewed_hp_posts || []; 5488 const viewedHPPost = postsToDisplay.find(post => post.id == _id); 5489 const existingPost = viewedPersonalizedPosts?.find(post => post.id == viewedHPPost.id); 5490 5491 if(existingPost){ 5492 existingPost.expiry = newExpiryDate(); 5493 } else { 5494 viewedPersonalizedPosts.push({ ...viewedHPPost, expiry: newExpiryDate() }); 5495 } 5496 5497 localPreferenceData.viewed_hp_posts = viewedPersonalizedPosts; 5498 localStorage.hp_data = JSON.stringify(localPreferenceData); 5499} 5500 5501function generateExclusionQuery(){ 5502 const sectionsToFetchSet = new Set([...followedSectionsSet, ...Object.keys(likedPostSectionsObj)]); 5503 const sectionsToFetch = [...sectionsToFetchSet].filter(section => !sectionsToExclude[section] ); // exclude private and unlisted sections 5504 const postsToExclude = localPreferenceData?.visited_posts?.map(post => post.id)?.length ? localPreferenceData?.visited_posts?.map(post => post.id) : [0]; 5505 5506 const query = { 5507 "$and": [ 5508 { 5509 "id": { "notEqualsAny":postsToExclude } 5510 } 5511 ] 5512 } 5513 5514 if(sectionsToManuallyExcludeFromFetch?.length) { 5515 sectionsToManuallyExcludeFromFetch.forEach(section => { 5516 query["$and"].push({"sections": { "arrayNotContains": section }}) 5517 }) 5518 } 5519 if(sectionsToFetch?.length) { 5520 query["$and"].push({"sections": { "arrayAny": sectionsToFetch }}) 5521 } 5522 if(currentPostAllSections?.length) { 5523 query["$and"].push({"sections": { "arrayAny": currentPostAllSections.filter(section => !sectionsToExclude[section] ) }}) 5524 } 5525 console.log('the exclusion query', query); 5526 return query; 5527} 5528 5529 5530async function fetchPosts(){ 5531 const url = 'https://www.gbnews.com/r/content-delivery-api/api/v2/posts?apiKey=public-lKJvTz-usoMR4wCZkmZdSiuKRUle1GZkHBifjUrMHMtLSrzOM5BSqAQciHIddp9l&now='+Date.now(); 5532 // TODO: we need to remove this API key from the frontend 5533 // What about custom page endpoint where we'll send a list of ids we want to exclude and in the called SE we use mashup that's call the CDapi , on the front we'll get 5534 5535 const excludeQuery = JSON.stringify(generateExclusionQuery()); 5536 const options = { 5537 method: 'POST', 5538 headers: { 'content-type': 'application/json' }, 5539 body: `{"uniqueIdentifier":"root","includeFields":["id","headline","sections","post_url","teaser_image"],"filterQuery": ${excludeQuery},"sort": {"created_ts": -1},"clusterName":"AllContentTypesWithoutNonContent","limit":${fetchCount},"offset":0,"useV1":"true"}` 5540 }; 5541 try { 5542 const response = await fetch(url, options); 5543 const data = await response.json(); 5544 // fliter out visited posts 5545 const visitedPostsToBeRemoved = new Set((localPreferenceData.visited_posts || []).map(item => JSON.parse(item.id))); 5546 fetchedPosts = (data?.data || []).filter(post => !visitedPostsToBeRemoved.has(post.id) ); 5547 // console.log(data); 5548 } catch (error) { 5549 console.error(error); 5550 } 5551} 5552 5553function assignWeightToPosts() { 5554 fetchedPosts.forEach(post => { 5555 post.sections?.map(section => { 5556 if(sectionsToExclude[section.id]) return; 5557 // check if in followed sections 5558 // console.log('ADDITION POINT 0 FOR', section.title, post.weight); 5559 if (followedSectionsSet.has(section.id)) { 5560 post.weight = (post.weight || 0) + 10; 5561 // console.log('ADDITION POINT 1 Followed sections FOR', section.title, post.weight); 5562 5563 // track the section metrics 5564 section.followed_weight = 10; 5565 } 5566 // check if in liked sections 5567 if (likedPostSectionsObj[section.id]) { 5568 post.weight = (post.weight || 0) + (likedPostSectionsObj[section.id] + 5); 5569 // console.log('ADDITION POINT 2 liked post section FOR', section.title, post.weight); 5570 5571 // track the section metrics 5572 section.liked_weight = (likedPostSectionsObj[section.id] + 5); 5573 } 5574 // check if in visited sections 5575 if (localPreferenceData.visited_posts_sections?.[section.id] != undefined) {
5576 post.weight = (post.weight || 0) + localPreferenceData.visited_posts_sections[section.id] + 1; 5577 // console.log('ADDITION POINT 3 visited sections FOR', section.title, post.weight); 5578 5579 // track the section metrics 5580 section.visited_weight = localPreferenceData.visited_posts_sections[section.id] + 1; 5581 } 5582 5583 post.trackedSections ? post.trackedSections.push(section) : (post.trackedSections = [section]) 5584 }) 5585 // console.log('END ADDITION FOR this post ------------------------>', post.headline, post.weight); 5586 }) 5587 // sort the posts based on descending order of weight 5588 fetchedPosts.sort((a, b) => (b.weight || 0) - (a.weight || 0)); 5589 postsToDisplay = fetchedPosts.slice(0, 3); 5590 5591 console.log('the sorted weighted posts -->', fetchedPosts); 5592} 5593 5594function handleAnalytics(link, analyticKey = "dontmiss") { 5595 console.log("handle analytics click fired --> ", analyticKey); 5596 try { 5597 // handle clicks 5598 link.addEventListener("click", () => { 5599 pa.sendEvent(`${analyticKey}.click`, { 5600 post_headline: link.ariaLabel, 5601 post_url: link.href, 5602 }); 5603 }); 5604 } catch (error) { 5605 console.error("Piano Analytics error:", error); 5606 } 5607} 5608 5609function handleAnalyticsImpressions(analyticKey = "dontmiss") { 5610 function waitForPa(callback, maxAttempts = 50) { 5611 let attempts = 0; 5612 5613 const checkPa = setInterval(function () { 5614 attempts++; 5615 5616 if (typeof pa !== 'undefined' && pa.sendEvent) { 5617 clearInterval(checkPa); 5618 console.log('[waitForPa] pa is available after', attempts * 100, 'ms'); 5619 callback(); 5620 } else if (attempts >= maxAttempts) { 5621 clearInterval(checkPa); 5622 console.warn('[waitForPa] pa not available after', maxAttempts * 100, 'ms - giving up'); 5623 } 5624 }, 100); 5625 } 5626 5627 waitForPa(function () { 5628 console.log(`event ${analyticKey} impression sent`, pa); 5629 pa.sendEvent(`${analyticKey}.impression`, {}); 5630 5631 }); 5632} 5633 5634function generatDemoMarkup(){ 5635 if(!postsToDisplay?.length) { 5636 document.querySelector('.hp_container_placeholder')?.classList?.add('hidden'); 5637 showDefaultRecirculationUnit(); 5638 return; 5639 } 5640 const parentDiv = document.createElement('div'); 5641 parentDiv.className = 'hp_container'; 5642 parentDiv.classList.add('embed-foryou_posts') 5643 parentDiv.classList.add('embed-foryou') 5644 5645 const h3 = document.createElement('h3'); 5646 h3.classList.add("module-headline__text"); 5647 h3.classList.add("h2") 5648 h3.textContent = "For You"; 5649 parentDiv.appendChild(h3); 5650 5651 const contentDiv = document.createElement('div'); 5652 contentDiv.classList.add('hp_container_posts'); 5653 contentDiv.setAttribute('data-attr-source_id', 'embed-foryou'); 5654 let contentHTML = ''; 5655 5656 postsToDisplay.forEach(post => { 5657 contentHTML += ` 5658 <div class="hp_content" post-data-id="${post.id}"> 5659 <a class="widget__headline-text custom-post-headline" aria-label="${post.headline}" href="${post.post_url}"> 5660 <img 5661 src="${post.teaser_image?.images?.['1000x750'] || 'https://assets.rbl.ms/61228189/origin.png'}" 5662 alt="Image for ${post.headline}" 5663 /> 5664 5665 <h2 class="widget__headline h2" aria-label="${post.headline}"> 5666 ${post.headline} 5667 </h2> 5668 </a> 5669 </div>`; 5670 }); 5671 contentDiv.innerHTML = contentHTML; 5672 parentDiv.appendChild(contentDiv); 5673 5674 console.log('Waiting for Personalized content to be added') 5675 var embeddontmiss=document.querySelector('.embed-dontmiss'); 5676 document.querySelector('.fordont').innerHTML="For You"; 5677 embeddontmiss?.classList?.remove('embed-dontmiss'); 5678 embeddontmiss?.classList?.add('embed-foryou'); 5679 embeddontmiss?.appendChild(parentDiv); 5680 5681 const modSlot = document.querySelector('.hp_container_placeholder'); 5682 if(embeddontmiss != null){ 5683 modSlot?.replaceWith(embeddontmiss); 5684 5685 // handle tracking and analytics 5686 handleAnalyticsImpressions('foryou'); 5687 REBELMOUSE_STDLIB.createElementChangeListener(".hp_content a", 5688 function (link) { 5689 handleAnalytics(link, "foryou"); 5690 } 5691 ); 5692 } else { 5693 modSlot.classList?.add('hidden') 5694 } 5695} 5696 5697function generatePersonalizationReport(){ 5698 if (!ENABLE_PERSONALIZATION_LOGS) return; 5699 5700 console.group("%cHYPERPERSONALIZED CONTENT", 'color: blue; padding: 4px;'); 5701 console.group("%cPERSONALIZED CONTENT --> Summary of user data", 'color: yellow; padding: 4px;'); 5702 5703 console.groupCollapsed("Parameters used for filtering the fetch call"); 5704 5705 console.log("PERSONALIZED CONTENT --> Sections of the current post --> ", currentPostAllSections?.map(section => `${allSectionsIdMap[section]?.title || 'Home'}`) ); 5706 5707 // followed sections 5708 console.log("PERSONALIZED CONTENT --> List of followed Topics -->", [...followedSectionsSet]?.map(section => `${allSectionsIdMap[section]?.title}`)); 5709 5710 // liked sections 5711 console.log("PERSONALIZED CONTENT --> List of Liked Topics --> ", Object.keys(likedPostSectionsObj)?.map(section => `${allSectionsIdMap[section]?.title}: ${likedPostSectionsObj[section]}`) ); 5712 5713 // Visited sections 5714 console.log("PERSONALIZED CONTENT --> List of Visited Topics --> ", Object.keys(visitedPostsSections)?.map(section => `${allSectionsIdMap[section]?.title}: ${visitedPostsSections[section]}`)); 5715 5716 console.groupEnd(); 5717 5718 console.groupCollapsed("Excluded posts that won't be fetched"); 5719 // Visited posts 5720 console.log("PERSONALIZED CONTENT --> List of Visited Posts -->", localPreferenceData?.visited_posts?.map(post => post.id) ); 5721 5722 // Viewed HP posts 5723 console.log("PERSONALIZED CONTENT --> List of Viewed Personalized Posts -->", localPreferenceData?.viewed_hp_posts?.map(post => post.headline) ); 5724 5725 console.groupEnd(); 5726 console.groupEnd(); 5727 5728 5729 console.group("%cPERSONALIZED CONTENT --> Summary of personalized posts data", 'color: green; padding: 4px;'); 5730 fetchedPosts?.forEach(post => { 5731 5732 // console.group(`${post .headline} - ${post.weight || 0}`); 5733 console.groupCollapsed(`${post .headline} - Score: ${post.weight || 0}`); 5734 5735 post.trackedSections?.forEach( section => { 5736 console.log(`${section.title}: (Followed: ${section.followed_weight || 0}) + (Liked: ${section.liked_weight || 0}) + (visited: ${section.visited_weight || 0}
5736) = ${(section.followed_weight || 0) + (section.liked_weight || 0) + (section.visited_weight || 0)}`) 5737 }); 5738 console.groupEnd(); 5739 }); 5740 console.groupEnd(); 5741 5742 console.groupEnd(); 5743 console.log("PERSONALIZED CONTENT END--> "); 5744} 5745 5746function addDontMissPlaceholder(){ 5747 const placeholder = ` 5748 <div class="hp_container embed-foryou_posts embed-foryou "> 5749 <h3 class="module-headline__text h2">For You</h3> 5750 <div class='plaeholder_spinner'/> </div> 5751 </div> 5752 ` 5753 const placeholderDiv = document.createElement('div'); 5754 placeholderDiv.classList.add('hp_container_placeholder') 5755 placeholderDiv.innerHTML = placeholder; 5756 const modSlot = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p, .trending-item)')[12]; 5757 console.log('the plaeholder code', placeholderDiv); 5758 console.log('the plaeholder code 2 ', placeholderDiv); 5759 if(placeholderDiv != null){ 5760 modSlot?.appendChild(placeholderDiv); 5761 } 5762} 5763 5764function showDefaultRecirculationUnit() { 5765 var embeddontmiss=document.querySelector('.embed-dontmiss'); 5766 if(embeddontmiss){ 5767 let dontMiss = document.querySelector('.embed-dontmiss__posts'); 5768 var dontmissclone = dontMiss.cloneNode(true); 5769 dontmissclone.classList.remove('hidden'); 5770 embeddontmiss.appendChild(dontmissclone); 5771 const modSlot = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p, .trending-item)')[12]; 5772 modSlot.appendChild(embeddontmiss); 5773 5774 if(embeddontmiss.querySelectorAll('.widget').length < 3 ){ 5775 embeddontmiss.classList.add('hidden'); 5776 } 5777 } 5778 5779 // handle tracking and analytics 5780 handleAnalyticsImpressions('dontmiss'); 5781 REBELMOUSE_STDLIB.createElementChangeListener(".embed-dontmiss__posts:not(.hidden) a.widget__headline-text, .embed-dontmiss:not(.hidden) .widget__head > a", 5782 function (link) { 5783 console.log('The logged out analytics'); 5784 handleAnalytics(link, 'dontmiss'); 5785 } 5786 ); 5787} 5788 5789function checkIfPersonalizedContentShouldRun() { 5790 console.log('the post sections', JSON.parse('[0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833]' || '[]') ) 5791 if (window.gbnID?._isLoggedIn) { 5792 return true; 5793 } 5794 return false; 5795} 5796 5797async function init(){ 5798 if (!checkIfPersonalizedContentShouldRun()) { 5799 showDefaultRecirculationUnit(); 5800 console.log('[__get_personalized_data]: User not logged in, loading dont miss'); 5801 return; 5802 } 5803 5804 addDontMissPlaceholder(); // add a placeholder to that will reserve space for the HP content 5805 console.log('[__get_personalized_data]: User logged in, loading for you') 5806 5807 if (!checkIfPersonalizedContentShouldRun()) { 5808 console.log('[__get_personalized_data]: User not logged in, loading dont miss in its place'); 5809 showDefaultRecirculationUnit(); 5810 return; 5811 } 5812 5813 await getUserPreferenceData(); 5814 validateLocalPreferenceData(); 5815 5816 5817 5818 if ('True' && '[0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833]') { 5819 currentPostAllSections = JSON.parse('[0, 584086272, 588563296, 588563271, 586304622, 590311187, 586304181, 2251910421, 586311833]' || '[]'); 5820 currentPostPrimarySection = !!'588563271' ? '588563271' : null; // checks the post's primary section 5821 currentPostPrimarySectionParent = currentPostPrimarySection && '0'; //check the primary section's parent section 5822 currentPostPrimarySection && currentPostSections.push(currentPostPrimarySection)// checks the post's primary section 5823 currentPostPrimarySectionParent && currentPostSections.push(currentPostPrimarySectionParent); 5824 5825 addCurrentPostToVisitedStore('2677966747'); 5826 } 5827 5828 5829 console.log('the piano user data -->', preferencesData); 5830 // followed sections 5831 let followedSections = preferencesData?.find(data => data.field_name?.toLowerCase() == 'follow-topics-and-sections')?.value; 5832 followedSections = (followedSections ? JSON.parse(followedSections) : []).map(decodeSection)?.filter(section => section != 'section_deprecated'); 5833 followedSectionsSet = new Set(followedSections); 5834 5835 // Liked sections 5836 likedPostSectionsObj = JSON.parse(preferencesData?.find(data => data.field_name?.toLowerCase() == 'liked_posts_topics')?.value || '{}'); 5837 5838 await fetchPosts(); 5839 assignWeightToPosts(); 5840 // at this point the recentPosts variable is sorted based on weight 5841 generatDemoMarkup(); 5842 generatePersonalizationReport(); 5843 5844 // If a personalized post is on the page for 2.5 seconds, add it to the visited posts 5845 const visibilityTimers = new Map(); 5846 const viewedHPPosts = new Set(); 5847 5848 function addViewedHPPostToLocalStore(id){ 5849 if(viewedHPPosts.has(id)) console.log('this post has already been updated in this session', id); 5850 if(!id || viewedHPPosts.has(id)) return; 5851 let postSections = postsToDisplay.find(post => post.id == +id )?.sections; 5852 postSections && (postSections = postSections.map(section => section.id)); 5853 console.log('visibility timer activated --> ', id, postSections); 5854 addCurrentPostToVisitedStore(id, postSections); 5855 addViewedPersonalizedPostToStore(id); 5856 } 5857 function cancelVisibilityTimer(id){ 5858 // If the element goes out of view before 2.5s, cancel the timer 5859 if (!id) return; 5860 console.log('visibility timer cancelled for --> ', id); 5861 const timer = visibilityTimers.get(id); 5862 if (timer) { 5863 clearTimeout(timer); 5864 visibilityTimers.delete(id); 5865 } 5866 } 5867 5868 window.REBELMOUSE_STDLIB.onElementInViewport({ 5869 selector: ".hp_container .hp_content", 5870 threshold: 1, 5871 onBellowViewport: (element) => cancelVisibilityTimer(element?.getAttribute('post-data-id')), 5872 onAboveViewport: (element) => cancelVisibilityTimer(element?.getAttribute('post-data-id')), 5873 onIntersect: function (entry) { 5874 const id = entry?.target?.getAttribute('post-data-id'); 5875 //skip if timer is already active 5876 if (!id || visibilityTimers.has(id)) return; 5877 5878 const timer = setTimeout(() => { 5879 console.log('element in view --> ', entry.target); 5880 addViewedHPPostToLocalStore(id); 5881 viewedHPPosts.add(id); // add the post to the list of processed post to prevent duplication of stats 5882 visibilityTimers.delete(id); // remove timer after it's fired 5883 }, 2500); 5884 visibilityTimers.set(id, timer); 5885 } 5886 }); 5887} 5888 5889window.gbnID = window.gbnID || []; 5890 5891gbnID.push(['init', async function() { 5892 try { 5893 init(); 5894 } catch (err) { 5895 console.error(err) 5896 } 5897}]) 5898 5899 5900}); 5901 5902window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ 5903 5904 5905 let toTopBtn = document.querySelector(".to-top"); 5906var content= document.querySelector(".content"); 5907 5908//toTopBtn.style.right=(window.innerWidth-content.clientWidth)/2-20+"px"; 5909window.onscroll = function() {scrollFunction()}; 5910 5911function scrollFunction() { 5912 if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { 5913 toTopBtn.style.display = "block"; 5914 } else { 5915 toTopBtn.style.display = "none"; 5916 } 5917} 5918 5919toTopBtn.addEventListener("click", () => { 5920 window.scrollTo({top: 0, behavior: 'smooth'}); 5921}); 5922 5923 5924});</script>
5924<script class="rm-i-script" id="user-javascript-components" type="text"> 5925window.REBELMOUSE_STDLIB.components.wireComponent("newsletter_component_outlined", function handler(instance, props){ 5926 (function () { 5927 function getLocalUserId() { 5928 // fast path e â raw UUID, synchronous 5929 return window.localStorage.gbnid_id || null; 5930 } 5931 5932 function getLocalUserEmail() { 5933 try { 5934 const raw = window.localStorage.gbnId; 5935 if (!raw) return null; 5936 const parsed = JSON.parse(raw); 5937 return parsed?.currentUser?.email || null; 5938 } catch (e) { 5939 return null; 5940 } 5941 } 5942 5943 // New - to fix google banner for members 5944 async function waitForUserData(maxAttempts = 10, delay = 200) { 5945 for (let i = 0; i < maxAttempts; i++) { 5946 if (window.gbnID?._currentUser?.memberships !== undefined) { 5947 return window.gbnID._currentUser; 5948 } 5949 await new Promise((r) => setTimeout(r, delay)); 5950 } 5951 console.warn('kam waitForUserData: timeout, proceeding with whatever data is available'); 5952 return window.gbnID?._currentUser; 5953} 5954 // end new 5955 5956 function initNewsletter(root) { 5957 window.gbnID = window.gbnID || []; 5958 5959 tp = window.tp || []; 5960 5961 gbnID.push([ 5962 'init', 5963 async function () { 5964 try { 5965 const form = root.querySelector('.gbn-newsletter__form'); 5966 const emailInput = root.querySelector('.gbn-newsletter__email'); 5967 let newsletterSection = root.querySelector('.gbn-newsletter'); 5968 const label = root.querySelector('.gbn-newsletter__visually-hidden'); 5969 const newsletterContainer = document.querySelector('.gbn-newsletter__container'); 5970 const newsletterDiv = document.querySelector('.gbn-newsletter'); 5971 const googleForm = document.getElementById('google-banner-placeholder'); 5972 const newsletterSuccess = document.querySelector('.newsletter-success'); 5973 const membershipForm = document.getElementById('membership-nl-placeholder'); 5974 5975 await waitForUserData(); //new 5976 console.log('kam user data after wait:', window.gbnID?._currentUser); 5977 5978 let currSection = newsletterSection.dataset.section.toLowerCase(); 5979 5980 /* handle incorrect section assignment */ 5981 5982 console.log('the current section is: ', currSection); 5983 5984 if (currSection != window.dataLayer?.[0]?.cd9.toLowerCase()) { 5985 currSection = window.dataLayer?.[0]?.cd9.toLowerCase(); 5986 5987 document.querySelector('.gbn-newsletter__title').textContent = `Sign up for ${ 5988 currSection.charAt(0).toUpperCase() + currSection.slice(1) 5989 } Newsletters`; 5990 } 5991 5992 /* newsletters currently in circulation */ 5993 5994 const activeNewsletters = [ 5995 'news', 5996 'opinion', 5997 'politics', 5998 'royal', 5999 'money', 6000 'celebrity', 6001 'tech', 6002 'motoring', 6003 'travel', 6004 'sport', 6005 'members only', 6006 'diet', 6007 ]; 6008 6009 const sport_sections = [ 6010 'cricket', 6011 'f1', 6012 'football', 6013 'olympics', 6014 'tennis', 6015 'rugby', 6016 'boxing', 6017 'other_sport', 6018 'golf', 6019 'snooker', 6020 'darts', 6021 'nfl', 6022 ]; 6023 6024 /* handle sport newsletters */ 6025 6026 let isSportSection = sport_sections.includes(currSection); 6027 6028 if (isSportSection) { 6029 currSection = 'sport'; // Simply update currSection here 6030 newsletterSection.dataset.section = 'sport'; 6031 if (document.querySelector('.gbn-newsletter__title')) { 6032 document.querySelector('.gbn-newsletter__title').textContent = 'Sign up for Sports Newsletters'; 6033 } 6034 } 6035 6036 /* handle news newsletters */ 6037 6038 const isNewsSection = /(^|[-_\s])news($|[-_\s])/.test(currSection.toLowerCase()); 6039 6040 if (currSection == 'cars') { 6041 currSection = 'motoring'; 6042 if (document.querySelector('.gbn-newsletter__title')) { 6043 document.querySelector('.gbn-newsletter__title').textContent = 'Sign up for Motoring Newsletters'; 6044 } 6045 } else if (currSection == 'finance') { 6046 currSection = 'money'; 6047 } else if (isNewsSection) {
6048 currSection = 'news'; 6049 if (document.querySelector('.gbn-newsletter__title')) { 6050 document.querySelector('.gbn-newsletter__title').textContent = 'Sign up for News Newsletters'; 6051 } 6052 } 6053 6054 console.log('activeNL: ', activeNewsletters); 6055 console.log('currSection: ', currSection); 6056 6057 /* decide whether to google form or newsletter form */ 6058 6059 let sectionsArray = (window.gbnID?._currentUser?.interests?.newsletterOptIn || []).map((item) => 6060 item.toLowerCase(), 6061 ); 6062 6063 console.log('sections array: ', sectionsArray); 6064 6065 let isSubscribed = sectionsArray.includes(currSection.toLowerCase()); 6066 6067 console.log('is subscribed: ', isSubscribed); 6068 6069 if (!activeNewsletters.includes(currSection.toLowerCase())) { 6070 isSubscribed = true; 6071 } 6072 6073 // 2. Determine if user is a member 6074 const memberships = window.gbnID?._currentUser?.memberships; 6075 const isUserMember = Array.isArray(memberships) && memberships.length > 0; 6076 6077 console.log('users memberships: ', memberships); 6078 console.log('is user member: ', isUserMember); 6079 6080 // 3. Clear Conditional Logic 6081 if (isSubscribed && !isUserMember) { 6082 // Case 1: Subscribed to newsletter, but NOT a member -> Show Membership Form 6083 console.log('Subscribed user who is NOT a member -> Showing Membership Form'); 6084 console.log('is subbed and not a member', isSubscribed, isUserMember); 6085 newsletterDiv.style.display = 'none'; 6086 googleForm.style.display = 'none'; 6087 membershipForm.style.display = 'block'; 6088 } else if (isSubscribed && isUserMember) { 6089 // Case 2: Subscribed to newsletter AND IS a member -> Show Google Form 6090 console.log('Subscribed user who IS a member -> Showing Google Form'); 6091 console.log('is subbed and is member: ', isSubscribed, isUserMember); 6092 newsletterDiv.style.display = 'none'; 6093 membershipForm.style.display = 'none'; 6094 googleForm.style.display = 'block'; 6095 } else { 6096 // Case 3: NOT subscribed (or Anonymous / Logged out) -> Show Newsletter Form 6097 console.log('Not subscribed or anonymous -> Showing Newsletter Form'); 6098 console.log('user is anonymous: ', isSubscribed, window.gbnID); 6099 newsletterDiv.style.display = 'block'; 6100 googleForm.style.display = 'none'; 6101 membershipForm.style.display = 'none'; 6102 } 6103 6104 console.log('window.gbnID', window.gbnID?._currentUser?.interests?.newsletterOptIn || []); 6105 6106 console.log('current user interests: ', window.gbnID?._currentUser?.interests?.newsletterOptIn || []); 6107 6108 console.log('nlSection: ', currSection); 6109 6110 /* convert cars and finance sections to motoring and money */ 6111 6112 async function setNewsletterTagInPw(userEmail, section, anonID) { 6113 try { 6114 const response = await fetch('https://api.gbnews.com/gbnid/api/v1/newsletters/subscribe', { 6115 method: 'POST', 6116 headers: { 'Content-Type': 'application/json' }, 6117 credentials: 'include', 6118 body: JSON.stringify({ 6119 newsletter: section, 6120 ...(userEmail ? { email: userEmail } : {}), 6121 ...(anonID ? { gbn_id: anonID } : {}), 6122 }), 6123 }); 6124 6125 if (!response.ok) { 6126 throw new Error('setNewsletterTagInPw request failed'); 6127 } 6128 6129 const data = await response.json(); 6130 6131 console.log('setNewsletterTagInPw', data); 6132 6133 console.log('Immediate:', window.gbnID?._currentUser?.interests?.newsletterOptIn); 6134 setTimeout(() => { 6135 console.log('After 2 seconds:', window.gbnID?._currentUser?.interests?.newsletterOptIn); 6136 }, 2000); 6137 6138 newsletterContainer.style.display = 'none'; 6139 6140 document.querySelector('#newsletter-signup-id .gbn-newsletter').style.display = 'none'; 6141 6142 document.querySelector('#google-banner-placeholder .google-icon').style.display = 'none'; 6143 6144 newsletterSuccess.style.display = 'block'; 6145 6146 pa.sendEvent('goal.completed', { 6147 goal_type: `${section}-newsletter-signup`, 6148 }); 6149 6150 console.log('goal.completed: ', section); 6151 } catch (error) { 6152 console.error(error); 6153 } 6154 } 6155 6156 if (!form || !emailInput) { 6157 return; 6158 } 6159 6160 if (label) { 6161 label.setAttribute('for', emailInput.id); 6162 } 6163 6164 /* single sign-up: fast path suggested by colleague â window.localStorage.gbnid_id */ 6165 const localUserId = getLocalUserId(); 6166 const isLoggedIn = !!localUserId; 6167 6168 if (isLoggedIn) { 6169 emailInput.style.display = 'none'; 6170 if (label) label.style.display = 'none'; 6171 emailInput.removeAttribute('required'); 6172 } 6173 6174 console.log('api section: ', currSection); 6175 console.log('isLoggedIn: ', isLoggedIn); 6176 6177 form.addEventListener('submit', function (event) { 6178 event.preventDefault(); 6179 6180 console.log('api currSection', currSection); 6181 6182 if (isLoggedIn) { 6183 const localUserEmail = getLocalUserEmail(); 6184 setNewsletterTagInPw(localUserEmail, currSection, localUserId); 6185 return; 6186 } 6187 6188 const currEmail = emailInput.value; 6189 if (!currEmail) { 6190 emailInput.reportValidity?.(); 6191 return; 6192 } 6193 6194 setNewsletterTagInPw(currEmail, currSection, undefined); 6195 }); 6196 } catch (error) { 6197 console.error('GBNID newsletter initialisation failed:', error); 6198 } 6199 }, 6200 ]); 6201 } 6202 6203 function injectNewsletter() { 6204 const target = document.getElementById('newsletter-signup-id'); 6205 const template = document.querySelector('[data-gbn-newsletter-template]'); 6206 6207 if (!target || !template) { 6208 return; 6209 } 6210 6211 target.innerHTML = ''; 6212 target.appendChild(template.content.cloneNode(true)); 6213 initNewsletter(target); 6214 } 6215 6216 if (document.readyState === 'loading') { 6217 document.addEventListener('DOMContentLoaded', injectNewsletter); 6218 } else { 6219 injectNewsletter(); 6220 } 6221})(); 6222 6223}) 6224</script>
6224<script class="rm-i-script" id="user-javascript-lowest" type="text"> 6225 6226window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 6227 6228 6229 window.tp = []; 6230window.tp.pianoId = {}; 6231window.tp.pianoId.show = (params) => { 6232 window.gbnID = window.gbnID || []; 6233 window.gbnID.push([ 6234 'init', 6235 function () { 6236 window.gbnID.openLoginModal(); 6237 if (params && params.loggedIn && typeof params.loggedIn === 'function') { 6238 window.gbnID.onLogin(params.loggedIn); 6239 } 6240 }, 6241 ]); 6242}; 6243 6244 6245}); 6246 6247window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 6248 6249 6250 (function () { 6251 console.log('[Recurly Global] Script initialising'); 6252 console.log('[Recurly Global v2 - kam] Script initialising'); 6253 6254 // ââ Guard FIRST: duplicate script loads must not register anything âââââââââ 6255 if (window._recurlyGlobalInitialised) return; 6256 window._recurlyGlobalInitialised = true; 6257 6258 const PLANS = { 6259 gbn_membership_5_monthly: { 6260 label: 'Supporter â £5/month', 6261 amount: '5', 6262 period: 'per month', 6263 duration: 'Monthly until cancelled', 6264 }, 6265 gbn_membership_5_monthly_trial: { 6266 label: 'Supporter â £5/month', 6267 amount: '5', 6268 period: 'per month', 6269 duration: 'Monthly until cancelled', 6270 }, 6271 gbn_membership_10_monthly: { 6272 label: 'Defender â £10/month', 6273 amount: '10', 6274 period: 'per month', 6275 duration: 'Monthly until cancelled', 6276 }, 6277 gbn_membership_20_monthly: { 6278 label: 'Champion â £20/month', 6279 amount: '20', 6280 period: 'per month', 6281 duration: 'Monthly until cancelled', 6282 }, 6283 gbn_membership_54_annual: { 6284 label: 'Supporter â £54/year', 6285 amount: '54', 6286 period: 'per year', 6287 duration: 'Annual until cancelled', 6288 }, 6289 gbn_membership_108_annual: { 6290 label: 'Defender â £108/year', 6291 amount: '108', 6292 period: 'per year', 6293 duration: 'Annual until cancelled', 6294 }, 6295 gbn_membership_216_annual: { 6296 label: 'Champion â £216/year', 6297 amount: '216', 6298 period: 'per year', 6299 duration: 'Annual until cancelled', 6300 }, 6301 gbn_donation_20: { 6302 label: 'Donation £20', 6303 amount: '20', 6304 period: 'one off', 6305 duration: '', 6306 }, 6307 gbn_donation_50: { 6308 label: 'Donation £50', 6309 amount: '50', 6310 period: 'one off', 6311 duration: '', 6312 }, 6313 gbn_donation_other: { 6314 label: 'Donation', 6315 amount: '0', 6316 period: 'one off', 6317 duration: '', 6318 }, 6319 gbn_membership_5_monthly_gift: { 6320 label: 'gift', 6321 amount: '5', 6322 period: '', 6323 duration: '', 6324 }, 6325 gbn_membership_10_monthly_gift: { 6326 label: 'gift', 6327 amount: '10', 6328 period: '', 6329 duration: '', 6330 }, 6331 gbn_membership_20_monthly_gift: { 6332 label: 'gift', 6333 amount: '20', 6334 period: '', 6335 duration: '', 6336 }, 6337 gbn_membership_30_monthly_gift: { 6338 label: 'gift', 6339 amount: '30', 6340 period: '', 6341 duration: '', 6342 }, 6343 gbn_membership_60_monthly_gift: { 6344 label: 'gift', 6345 amount: '60', 6346 period: '', 6347 duration: '', 6348 }, 6349 gbn_membership_120_monthly_gift: { 6350 label: 'gift', 6351 amount: '120', 6352 period: '', 6353 duration: '', 6354 }, 6355 gbn_membership_54_monthly_gift: { 6356 label: 'gift', 6357 amount: '54', 6358 period: '', 6359 duration: '', 6360 }, 6361 gbn_membership_108_monthly_gift: { 6362 label: 'gift', 6363 amount: '108', 6364 period: '', 6365 duration: '', 6366 }, 6367 gbn_membership_216_monthly_gift: { 6368 label: 'gift', 6369 amount: '216', 6370 period: '', 6371 duration: '', 6372 }, 6373 }; 6374 6375 let checkIsTrial; 6376 6377 const addCloseBtn = () => { 6378 if (!document.getElementById('modal-close-btn')) { 6379 const closeBtn = document.createElement('button'); 6380 closeBtn.id = 'modal-close-btn'; 6381 closeBtn.classList.add('modal-close'); 6382 closeBtn.ariaLabel = 'close'; 6383 closeBtn.innerHTML = '×'; 6384 if (document.querySelector('.modal-header')) { 6385 document.querySelector('.modal-header').appendChild(closeBtn); 6386 } 6387 } 6388 }; 6389 6390 function isFreeTrialPrompt() {
6391 const primaryBtn = document.querySelector('.rfmodal-button-yes.primary-btn-p'); 6392 6393 if (!primaryBtn) { 6394 return false; 6395 } 6396 6397 return primaryBtn.textContent.trim().toLowerCase() === 'start free trial'; 6398 } 6399 6400 const purchasesEndpoint = 'https://api.gbnews.com/gbnid/api/v1/users/purchases'; 6401 const donationsEndpoint = 'https://api.gbnews.com/gbnid/api/v1/users/donations'; 6402 const giftingEndpoint = 'https://api.gbnews.com/gbnid/api/v1/users/gift-cards'; 6403 6404 let requiredEndpoint = purchasesEndpoint; 6405 let planCode = 'gbn_membership_5_monthly_trial', 6406 planAmount = '5'; 6407 6408 if (window.location.pathname.includes('/freeentries')) { 6409 planCode = 'gbn_membership_5_monthly'; 6410 planAmount = '5'; 6411 } 6412 6413 if (window.location.pathname.includes('/non-personalised-advertising')) { 6414 planCode = 'gbn_privacy_plus_4_99_monthly'; 6415 planAmount = '4.99'; 6416 console.log('planCode: ', planCode); 6417 console.log('planAmount: ', planAmount); 6418 } 6419 6420 // added - to show the balance 6421 let chargeableAmount = planAmount; 6422 6423 // let recipient_fn; 6424 // let recipient_ln; 6425 let recipient_email; 6426 let recipient_message; 6427 6428 const STORAGE_KEY = 'recurly_pending_plan'; 6429 6430 // added - to show the balance (scoped to /redeem-gift only â this script is global 6431 // across /support, /donate, /gifting, /redeem-gift, so we gate everything below 6432 // behind this check to avoid touching behaviour on the other pages) 6433 // const CREDIT_FEATURE_ENABLED = /\/redeem-gift/.test(window.location.pathname); 6434 const CREDIT_FEATURE_ENABLED = true; 6435 const balanceEndpoint = 'https://api.gbnews.com/gbnid/api/v1/users/balance'; 6436 let availableCredit = 0; 6437 6438 // added - to show the balance 6439 const fetchGiftBalance = async () => { 6440 if (!CREDIT_FEATURE_ENABLED) return 0; // never fires on other pages 6441 6442 try { 6443 const res = await fetch(balanceEndpoint, { credentials: 'include' }); 6444 if (!res.ok) { 6445 availableCredit = 0; 6446 return 0; 6447 } 6448 const data = await res.json(); 6449 const gbp = Array.isArray(data?.balances) ? data.balances.find((b) => b.currency === 'GBP') : null; 6450 const raw = Number(gbp?.available_credit_amount) || 0; 6451 6452 // Known backend bug: available_credit_amount sometimes comes back negative 6453 // for real credit (e.g. -5 instead of +5). This field only ever represents 6454 // credit (never debt â that's the separate `amount` + `past_due` field), 6455 // so taking the absolute value is safe here regardless of which way the 6456 // backend's sign is currently flipped. 6457 availableCredit = Math.abs(raw); 6458 return availableCredit; 6459 } catch (e) { 6460 console.error('[Recurly] Failed to fetch gift balance', e); 6461 availableCredit = 0; 6462 return 0; 6463 } 6464 }; 6465 6466 const hasMembership = () => { 6467 const memberships = window.gbnID?._currentUser?.memberships; 6468 return Array.isArray(memberships) && memberships.length > 0; 6469 }; 6470 6471 // Save plan selection before login redirect 6472 const savePendingPlan = (code, amount = null) => { 6473 try { 6474 sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ code, amount })); 6475 } catch (e) { 6476 console.error('[Recurly] Failed to save pending plan', e); 6477 } 6478 }; 6479 6480 // Check and restore saved plan after reload 6481 const checkAndRestorePendingPlan = () => { 6482 try { 6483 const saved = sessionStorage.getItem(STORAGE_KEY); 6484 console.log('[Recurly] Saved session state:', saved); 6485 if (!saved) return; 6486 6487 const { code, amount } = JSON.parse(saved); 6488 6489 // Only auto-open if the user is now logged in 6490 if (window.gbnID?._isLoggedIn) { 6491 // Check if user already has any membership 6492 const memberships = window.gbnID?._currentUser?.memberships; 6493 const hasMembership = Array.isArray(memberships) && memberships.length > 0; 6494 6495 if (hasMembership) { 6496 console.log('[Recurly] User already has a membership. Suppressing modal.'); 6497 sessionStorage.removeItem(STORAGE_KEY); 6498 return; 6499 } 6500 6501 const isDonationOrGift = code.includes('donation') || code.includes('gift'); 6502 6503 // Handle custom amount input restoration if applicable 6504 if (amount && code === 'gbn_donation_other') { 6505 planAmount = amount; 6506 const inputEl = document.querySelector('#gbn-other-amount'); 6507 if (inputEl) inputEl.value = amount; 6508 } 6509 6510 // Clean up session storage before opening modal 6511 sessionStorage.removeItem(STORAGE_KEY); 6512 6513 // Delay briefly to allow DOM & scripts to stabilize 6514 setTimeout(() => { 6515 processPlanSelection(code); 6516 }, 300); 6517 } 6518 } catch (e) { 6519 console.error('[Recurly] Failed to restore pending plan', e); 6520 sessionStorage.removeItem(STORAGE_KEY); 6521 } 6522 }; 6523 6524 const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); 6525 6526 const checkMembership = async () => { 6527 try { 6528 const res = await fetch('https://api.gbnews.com/gbnid/api/v1/users/me/is-member', { credentials: 'include' }); 6529 if (!res.ok) { 6530 return false;
6531 } 6532 const data = await res.json(); 6533 return data?.data?.isMember === true; 6534 } catch (err) { 6535 return false; 6536 } 6537 }; 6538 6539 const ValidateMembership = async () => { 6540 let tryCount = 0; 6541 while (tryCount < 5) { 6542 if (await checkMembership()) { 6543 return true; 6544 } 6545 6546 await sleep(3000); 6547 tryCount++; 6548 } 6549 return false; 6550 }; 6551 6552 const returnToPost = async () => { 6553 const params = new URLSearchParams(window.location.search); 6554 6555 const subscriptionAttributionId = params.get('subscription_attribution_id'); 6556 const originArticleId = params.get('origin_article_id'); 6557 6558 const previousArticle = localStorage.getItem('recurly-entry-url'); 6559 6560 // Only allow redirect if this purchase originated from an article journey 6561 const cameFromArticle = subscriptionAttributionId && originArticleId; 6562 6563 if (!cameFromArticle) { 6564 // Clean up stale data 6565 localStorage.removeItem('recurly-entry-url'); 6566 return; 6567 } 6568 6569 if (previousArticle) { 6570 localStorage.removeItem('recurly-entry-url'); 6571 6572 if (window.Redfast) { 6573 Redfast.ping(); 6574 } 6575 6576 console.log('Valid article purchase - validating membership'); 6577 6578 const membership = await ValidateMembership(); 6579 const planCode = membership?.planCode || ''; 6580 6581 const excludedKeywords = ['_trial', '_donation', '_gift']; 6582 6583 const isExcludedPlan = excludedKeywords.some((keyword) => planCode.includes(keyword)); 6584 6585 if (!isExcludedPlan) { 6586 window.location.href = previousArticle; 6587 } else { 6588 console.log(`Redirect skipped due to plan code: ${planCode}`); 6589 } 6590 } 6591 }; 6592 6593 // ââ All stateful flags on window so duplicate scripts share them âââââââââââ 6594 window._recurlySubmitting = window._recurlySubmitting || false; 6595 window._recurlyPaypalBuilt = window._recurlyPaypalBuilt || false; 6596 window._recurlyGooglePayBuilt = window._recurlyGooglePayBuilt || false; 6597 window._recurly3DSActive = window._recurly3DSActive || false; 6598 6599 recurly.configure({ 6600 publicKey: 'fra-3wFRPuQP3TEzELMHOGgvzH', 6601 currency: 'GBP', 6602 // fields: { 6603 // number: { 6604 // selector: '#card-number' 6605 // }, 6606 // month: { 6607 // selector: '#card-month' 6608 // }, 6609 // year: { 6610 // selector: '#card-year' 6611 // }, 6612 // cvv: { 6613 // selector: '#card-cvv' 6614 // }, 6615 // }, 6616 }); 6617 6618 const elements = recurly.Elements(); 6619 const style = { 6620 fontSize: '16.5px', 6621 fontFamily: 'Montserrat, sans-serif', 6622 color: '#1f2937', 6623 placeholder: { 6624 color: '#9ca3af', 6625 content: 'Card number', 6626 }, 6627 invalid: { fontColor: 'red' }, 6628 }; 6629 6630 const styleExp = { 6631 fontSize: '16.5px', 6632 fontFamily: 'Montserrat, sans-serif', 6633 color: '#1f2937', 6634 placeholder: { 6635 color: '#9ca3af', 6636 content: 'Expiry Month', 6637 }, 6638 invalid: { fontColor: 'red' }, 6639 }; 6640 6641 const styleExpY = { 6642 fontSize: '16.5px', 6643 fontFamily: 'Montserrat, sans-serif', 6644 color: '#1f2937', 6645 placeholder: { 6646 color: '#9ca3af', 6647 content: 'Expiry Year', 6648 }, 6649 invalid: { fontColor: 'red' }, 6650 }; 6651 6652 const styleCVV = { 6653 fontSize: '16.5px', 6654 fontFamily: 'Montserrat, sans-serif', 6655 color: '#1f2937', 6656 placeholder: { 6657 color: '#9ca3af', 6658 content: 'CVC', 6659 }, 6660 invalid: { fontColor: 'red' }, 6661 }; 6662 6663 // 2. Element definitions 6664 const cardNumberElement = elements.CardNumberElement({ 6665 style, 6666 }); 6667 6668 const cardMonthElement = elements.CardMonthElement({ 6669 inputType: 'select', // <-- FIXED: Use 'text' or 'select' (not 'mobileSelect') 6670 style: styleExp, 6671 }); 6672 6673 const cardYearElement = elements.CardYearElement({ 6674 inputType: 'select', // <-- FIXED: Use 'text' or 'select' (not 'mobileSelect') 6675 style: styleExpY, 6676 }); 6677 6678 const cardCvvElement = elements.CardCvvElement({ 6679 style: styleCVV, 6680 }); 6681 6682 window._recurlyElements = elements; 6683 6684 const $ = (sel) => document.querySelector(sel); 6685 6686 const getAccountCode = () => { 6687 try { 6688 const u = window.gbnID && window.gbnID._currentUser; 6689 if (!u) return null; 6690 if (u.id) return u.id; 6691 if (u.token) { 6692 const segment = u.token.split('.')[1]; 6693 if (!segment) return null; 6694 const base64 = segment.replace(/-/g, '+').replace(/_/g, '/'); 6695 const padded = base64.padEnd(base64.length + ((4 - (base64.length % 4)) % 4), '='); 6696 const payload = JSON.parse(atob(padded)); 6697 return payload.sub || payload.id || null; 6698 } 6699 } catch (e) { 6700 console.error('[GBN ID] Could not get account code', e); 6701 } 6702 return null; 6703 }; 6704 6705 const showError = (msg) => { 6706 const ex = $('.recurly-error'); 6707 if (ex) ex.remove(); 6708 6709 const d = document.createElement('div');
6710 d.className = 'recurly-error'; 6711 d.textContent = msg; 6712 6713 // Accessibility: Force assistive technologies to announce error messages immediately 6714 d.setAttribute('role', 'alert'); 6715 d.setAttribute('aria-live', 'assertive'); 6716 d.setAttribute('tabindex', '-1'); // Allows programmatic focus shifting 6717 6718 const btn = $('#submit-btn'); 6719 if (btn) btn.after(d); 6720 }; 6721 6722 let threeDSAttempts = 0; 6723 const MAX_3DS_ATTEMPTS = 1; 6724 6725 const isArticlePage = () => { 6726 try { 6727 const cd50 = window.dataLayer?.[0]?.cd50 || ''; 6728 // Checks if 'article' exists in the comma-separated string 6729 return cd50 6730 .toLowerCase() 6731 .split(',') 6732 .map((t) => t.trim()) 6733 .includes('article'); 6734 } catch (e) { 6735 return false; 6736 } 6737 }; 6738 6739 const showConfirmation = (code) => { 6740 threeDSAttempts = 0; 6741 const plan = PLANS[code]; 6742 const modal = $('#checkout-modal'); 6743 const inner = document.querySelector('.modal-inner'); 6744 const fw = $('#modal-form-wrapper'); 6745 const se = $('#modal-success'); 6746 const closeBtn = $('#modal-close-btn'); 6747 6748 // 1. Fade out the modal container smoothly 6749 if (modal) modal.style.opacity = '0'; 6750 6751 // 2. Wait for the fade-out animation to complete (250ms) 6752 setTimeout(() => { 6753 // Re-enable pointer events and interaction state on the modal & close button 6754 window._recurlySubmitting = false; 6755 window._recurly3DSActive = false; 6756 if (modal) modal.style.pointerEvents = 'auto'; 6757 if (closeBtn) closeBtn.style.pointerEvents = 'auto'; 6758 6759 // Hide form & show success UI 6760 if (fw) fw.style.display = 'none'; 6761 if (inner) inner.classList.add('paid'); 6762 if (se) se.style.display = 'block'; 6763 6764 // Populate the correct message based on plan type 6765 const sm = document.getElementById('success-message'); 6766 const sh = document.getElementById('success-heading'); 6767 console.log('success message appearing!', sm); 6768 if (sm) { 6769 const isDonation = code.includes('donation'); 6770 const isGift = code.includes('gift'); 6771 const isTrial = code.includes('_trial'); // I added this 6772 6773 if (isDonation) { 6774 sm.textContent = `Thank you! Your donation of £${parseFloat(planAmount).toFixed(2)} is complete.`; 6775 } else if (isGift) { 6776 sm.textContent = 6777 'Your recipient will receive an email shortly with instructions on how to redeem their gift.'; 6778 } else if (isTrial) { 6779 // I added this 6780 if (sh) sh.textContent = 'Thank you'; 6781 sm.textContent = `Your 14-day free trial is now active.`; 6782 } else { 6783 if (sh) sh.textContent = 'Thank you for your support'; 6784 const user = window.gbnID && window.gbnID._currentUser; 6785 const userEmail = (user && user.email) || ''; 6786 sm.textContent = `Your GB News Membership is now active. A confirmation email has been sent to ${userEmail}.`; 6787 } 6788 } 6789 6790 // 3. Re-fade the modal back in with the Thank You view active 6791 if (modal) modal.style.opacity = '1'; 6792 6793 if (window.Redfast) { 6794 Redfast.ping(); 6795 console.log('redfast pinged'); 6796 } 6797 6798 // Trigger redirection logic 6799 returnToPost(); 6800 }, 250); 6801 }; 6802 6803 const showDonationAmountError = (message) => { 6804 const input = document.getElementById('gbn-other-amount'); 6805 if (!input) return; 6806 6807 let error = document.getElementById('donation-amount-error'); 6808 6809 if (!error) { 6810 error = document.createElement('div'); 6811 error.id = 'donation-amount-error'; 6812 error.className = 'field-error'; 6813 error.style.color = '#d32f2f'; 6814 error.style.fontSize = '14px'; 6815 error.style.marginTop = '6px'; 6816 6817 input.insertAdjacentElement('afterend', error); 6818 } 6819 6820 error.textContent = message; 6821 input.classList.add('is-invalid'); 6822 }; 6823 6824 const clearDonationAmountError = () => { 6825 const input = document.getElementById('gbn-other-amount'); 6826 if (input) input.classList.remove('is-invalid'); 6827 6828 document.getElementById('donation-amount-error')?.remove(); 6829 }; 6830 6831 const setSubmitLoading = (isLoading) => { 6832 window._recurlySubmitting = isLoading; 6833 6834 const modal = document.querySelector('#checkout-modal'); 6835 const submitBtn = document.querySelector('#submit-btn');
6836 const closeBtn = document.querySelector('#modal-close-btn'); 6837 const paypalContainer = document.querySelector('#paypal-container'); 6838 const paypalMsg = document.querySelector('#paypal-processing-msg'); // Optional message element 6839 const appleContainer = document.querySelector('#apple-container'); 6840 const appleMsg = document.querySelector('#apple-processing-msg'); 6841 const googleContainer = document.querySelector('#google-container'); 6842 const googleMsg = document.querySelector('#google-processing-msg'); 6843 6844 const containers = [modal, paypalContainer, appleContainer, googleContainer].filter(Boolean); 6845 6846 // Prevent user from closing the modal mid-payment 6847 if (closeBtn) { 6848 closeBtn.style.pointerEvents = isLoading ? 'none' : 'auto'; 6849 closeBtn.style.opacity = isLoading ? '0.5' : '1'; 6850 } 6851 6852 // Handle PayPal Container interaction & message 6853 if (paypalContainer) { 6854 // Disable clicks on PayPal container while processing 6855 paypalContainer.style.pointerEvents = isLoading ? 'none' : 'auto'; 6856 paypalContainer.style.opacity = isLoading ? '0.6' : '1'; 6857 } 6858 6859 if (appleContainer) { 6860 // Disable clicks on PayPal container while processing 6861 appleContainer.style.pointerEvents = isLoading ? 'none' : 'auto'; 6862 appleContainer.style.opacity = isLoading ? '0.6' : '1'; 6863 } 6864 6865 if (googleContainer) { 6866 // Disable clicks on PayPal container while processing 6867 googleContainer.style.pointerEvents = isLoading ? 'none' : 'auto'; 6868 googleContainer.style.opacity = isLoading ? '0.6' : '1'; 6869 } 6870 6871 if (paypalMsg) { 6872 paypalMsg.style.display = isLoading ? 'block' : 'none'; 6873 } 6874 6875 if (appleMsg) { 6876 appleMsg.style.display = isLoading ? 'block' : 'none'; 6877 } 6878 6879 if (googleMsg) { 6880 googleMsg.style.display = isLoading ? 'block' : 'none'; 6881 } 6882 6883 if (isLoading) { 6884 // 1. Update primary button state 6885 if (submitBtn) { 6886 submitBtn.disabled = true; 6887 submitBtn.innerHTML = `<span class="spinner"></span> Processing payment...`; 6888 submitBtn.classList.add('is-loading'); 6889 } 6890 6891 // 2. Add visual shield to all active payment sections 6892 containers.forEach((el) => el.classList.add('payment-busy')); 6893 } else { 6894 // 1. Reset primary button state 6895 if (submitBtn) { 6896 submitBtn.disabled = false; 6897 submitBtn.textContent = 'Pay now'; 6898 submitBtn.classList.remove('is-loading'); 6899 } 6900 6901 // 2. Remove shield from all payment sections 6902 containers.forEach((el) => el.classList.remove('payment-busy')); 6903 } 6904 }; 6905 6906 const resetSubmitBtn = () => { 6907 setSubmitLoading(false); 6908 window._recurlySubmitting = false; 6909 window._recurly3DSActive = false; 6910 const btn = $('#submit-btn'); 6911 if (btn) { 6912 btn.disabled = false; 6913 if (btn.textContent.trim() === 'Processing...') btn.textContent = 'Pay now'; 6914 } 6915 }; 6916 6917 const updatePlanSummary = (code) => { 6918 const plan = PLANS[code]; 6919 if (!plan) return; 6920 6921 const activeAmount = parseFloat(planAmount || 0).toFixed(2); 6922 const isTrial = code.endsWith('_trial'); 6923 6924 // added - to show the balance â credit only applies to real membership 6925 // purchases on /across web but (never trial, donation, or gift codes) 6926 const isDonationCode = code.includes('donation'); 6927 const isGiftCode = code.includes('gift'); 6928 // const eligibleForCredit = CREDIT_FEATURE_ENABLED && !isTrial && !isDonationCode && !isGiftCode; 6929 const eligibleForCredit = CREDIT_FEATURE_ENABLED && !isTrial; 6930 const creditApplied = eligibleForCredit ? Math.min(availableCredit, parseFloat(activeAmount)) : 0; 6931 const finalAmount = Math.max(parseFloat(activeAmount) - creditApplied, 0); 6932 // chargeableAmount = finalAmount.toFixed(2); 6933 6934 // NEW: trial always has 0 chargeable amount, regardless of credit logic 6935 chargeableAmount = isTrial ? '0.00' : finalAmount.toFixed(2); 6936 6937 const ce = $('#modal-charge-amount'); 6938 if (ce) { 6939 ce.textContent = isTrial ? '£0.00' : '£' + finalAmount.toFixed(2); 6940 } 6941 6942 // added - to show the balance 6943 const asterisk = $('#modal-charge-asterisk'); 6944 if (asterisk) asterisk.style.display = creditApplied > 0 ? 'inline' : 'none'; 6945
6946 const creditNote = $('#modal-credit-note'); 6947 if (creditNote) creditNote.style.display = creditApplied > 0 ? 'block' : 'none'; 6948 6949 const be = $('#modal-billing-amount'); 6950 if (be) { 6951 be.textContent = '£' + activeAmount + ' ' + plan.period; 6952 } 6953 6954 const de = $('#modal-duration'); 6955 if (de) { 6956 const isDonation = code.includes('donation'); 6957 const isGift = code.includes('gift'); 6958 6959 // Hide duration if it's empty, or if the item is a donation/gift 6960 if (!plan.duration || isDonation || isGift) { 6961 de.style.display = 'none'; 6962 document.getElementById('modal-duration-wrapper').style.display = 'none'; 6963 } else { 6964 de.style.display = ''; // Resets display so it shows for standard plans 6965 de.textContent = plan.duration; 6966 } 6967 } 6968 6969 const se = $('#modal-start-date') || $('.modal-start-date') || $('#modal-starting'); 6970 if (se) { 6971 if (isTrial) { 6972 const futureDate = new Date(); 6973 futureDate.setDate(futureDate.getDate() + 14); 6974 const options = { day: 'numeric', month: 'short', year: 'numeric' }; 6975 se.textContent = futureDate.toLocaleDateString('en-GB', options); 6976 } else { 6977 se.textContent = 'Today'; 6978 } 6979 } 6980 6981 const lt = $('.modal-title'); 6982 if (lt) { 6983 lt.textContent = code === 'gbn_donation_other' ? `Custom Donation â £${activeAmount}` : plan.label; 6984 } 6985 const ll = $('#modal-plan-label'); 6986 if (ll) { 6987 ll.textContent = code === 'gbn_donation_other' ? `Custom Donation` : plan.label; 6988 } 6989 }; 6990 6991 //added to fix redeem gifting page 6992 const openModal = () => { 6993 const m = $('#checkout-modal'); 6994 clearError(); 6995 resetSubmitBtn(); 6996 if (m) { 6997 m.style.display = ''; 6998 m.style.opacity = ''; 6999 m.style.pointerEvents = 'auto'; 7000 m.classList.add('active'); 7001 7002 const inner = m.querySelector('.modal-inner'); 7003 if (inner) inner.style.display = ''; 7004 } 7005 7006 attachCardIfNeeded(); 7007 7008 // added - to show the balance 7009 if (CREDIT_FEATURE_ENABLED) { 7010 fetchGiftBalance().then(() => { 7011 updatePlanSummary(planCode); 7012 rebuildWalletsForPlan(); 7013 }); 7014 } 7015 }; 7016 7017 const closeModal = () => { 7018 const m = $('#checkout-modal'); 7019 if (m) { 7020 m.classList.remove('active'); 7021 m.style.opacity = ''; 7022 m.style.display = ''; // Clear inline display style entirely 7023 m.style.pointerEvents = ''; 7024 } 7025 7026 const mi = document.querySelector('.modal-inner'); 7027 if (mi) mi.classList.remove('paid'); 7028 7029 const fw = $('#modal-form-wrapper'); 7030 if (fw) fw.style.display = ''; 7031 7032 const se = $('#modal-success'); 7033 if (se) se.style.display = 'none'; 7034 7035 const ac = $('#my-auth-container'); 7036 if (ac) ac.innerHTML = ''; 7037 7038 planCode = 'gbn_membership_5_monthly_trial'; 7039 requiredEndpoint = purchasesEndpoint; 7040 planAmount = '5'; 7041 chargeableAmount = planAmount; // added - to show the balance 7042 threeDSAttempts = 0; 7043 resetSubmitBtn(); 7044 }; 7045 7046 let cardAttached = false; 7047 const attachCardIfNeeded = () => { 7048 if (cardAttached) return; 7049 // if (!$('#recurly-elements')) return; 7050 7051 // Using requestAnimationFrame to mount Recurly in the next visual paint cycle. 7052 // This removes render-blocking lag when opening the modal for the first time. 7053 requestAnimationFrame(() => { 7054 cardNumberElement.attach('#card-number'); 7055 cardMonthElement.attach('#card-month'); 7056 cardYearElement.attach('#card-year'); 7057 cardCvvElement.attach('#card-cvc'); 7058 cardAttached = true; 7059 console.log('[Recurly] Card element attached'); 7060 }); 7061 }; 7062 7063 const activateTab = (tabId) => { 7064 if (tabId === 'paypal') buildPayPal(); 7065 if (tabId === 'googlepay') buildGooglePay(); 7066 document.querySelectorAll('.payment-tab').forEach((t) => t.classList.toggle('active', t.dataset.tab === tabId)); 7067 document 7068 .querySelectorAll('.payment-panel') 7069 .forEach((p) => (p.style.display = p.id === 'panel-' + tabId ? 'block' : 'none')); 7070 }; 7071 7072 const submitToBackend = async (tokenId, thePlanCode, theAccountCode, actionTokenId) => { 7073 const user = window.gbnID && window.gbnID._currentUser; 7074 let body; 7075 if (requiredEndpoint === purchasesEndpoint) { 7076 body = { 7077 token_id: tokenId, 7078 plan_code: thePlanCode, 7079 account_code: theAccountCode, 7080 first_name: user && user.name && user.name.first, 7081 last_name: user && user.name && user.name.last, 7082 email: (user && user.email) || '', 7083 }; 7084 } else if (requiredEndpoint === giftingEndpoint) { 7085 // recipient_fn = document.getElementById('gift-recipient-FN').value; 7086 // recipient_ln = document.getElementById('gift-recipient-LN').value; 7087 recipient_email = document.getElementById('gift-recipient-email').value; 7088 recipient_message = document.getElementById('gift-recipient-message').value; 7089 body = { 7090 amount: planAmount, 7091 currency: 'GBP', 7092 recipient: { 7093 email: recipient_email || '', 7094 deliver_at: null, 7095 personal_message: recipient_message || '', 7096 }, 7097 sender: { 7098 email: (user && user.email) || '', 7099 first_name: user && user.name && user.name.first, 7100 last_name: user && user.name && user.name.last, 7101 three_d_secure_action_result_token_id: actionTokenId || '', 7102 token_id: tokenId, 7103 }, 7104 }; 7105 } else { 7106 body = { 7107 currency: 'GBP', 7108 email: (user && user.email) || '', 7109 first_name: user && user.name && user.name.first, 7110 last_name: user && user.name && user.name.last, 7111 line_items: [ 7112 { 7113 item_code: 'gbn_donation_other', 7114 quantity: 1, 7115 unit_amount: Number(parseFloat(planAmount).toFixed(2)), 7116 }, 7117 ], 7118 three_d_secure_action_result_token_id: actionTokenId || '', 7119 token_id: tokenId, 7120 }; 7121 } 7122 7123 if (actionTokenId) body.three_d_secure_action_result_token_id = actionTokenId; 7124 7125 try { 7126 const res = await fetch(requiredEndpoint, { 7127 method: 'POST', 7128 headers: { 'Content-Type': 'application/json' }, 7129 credentials: 'include', 7130 body: JSON.stringify(body), 7131 }); 7132 if (!res.ok) { 7133 showError('Payment failed. Please try again.'); 7134 resetSubmitBtn(); 7135 return; 7136 } 7137 const data = await res.json(); 7138 if (data.error) { 7139 showError( 7140 (typeof data.error === 'string' ? data.error : data.error.message) || 'Payment failed. Please try again.', 7141 ); 7142 resetSubmitBtn(); 7143 return; 7144 } 7145 console.log('[Recurly] Backend response:', data); 7146 if (data.three_d_secure_action_token_id) { 7147 handle3DS(data.three_d_secure_action_token_id, tokenId, thePlanCode, theAccountCode); 7148 return; 7149 } else { 7150 showConfirmation(thePlanCode); 7151 addCloseBtn(); 7152 // Refresh if we're on Privacy Plus 7153 setTimeout(() => { 7154 if (window.location.pathname.includes('/non-personalised-advertising')) { 7155 window.location.reload(); 7156 } 7157 }, 1000); 7158 7159 if ( 7160 planCode === 'gbn_membership_5_monthly_trial' || 7161 (planCode.includes('_monthly') && !planCode.includes('_gift')) 7162 ) { 7163 localStorage.removeItem('trial_flow_ready'); 7164 // Replace with your trial plan code 7165 localStorage.setItem('gbn_membership_5_monthly_trial', 'true'); 7166 document.cookie = 'gbn_membership_5_monthly_trial=true; max-age=31536000; path=/; SameSite=Lax'; 7167 } 7168 if (document.querySelector('.rfmodal')) { 7169 document.querySelector('.rfmodal').style.display = 'none'; 7170 } else if (document.querySelector('.modal-mobileweb-display')) { 7171 document.querySelector('.modal-mobileweb-display').style.display = 'none'; 7172 } 7173 } 7174 } catch (err) { 7175 showError(err.message || 'Payment failed. Please try again.'); 7176 resetSubmitBtn(); 7177 } 7178 }; 7179 7180 const handle3DS = (actionTokenId, originalTokenId, thePlanCode, theAccountCode) => { 7181 console.log('donation! token id', originalTokenId, 'actionTokenId', actionTokenId); 7182 threeDSAttempts++; 7183 if (threeDSAttempts > MAX_3DS_ATTEMPTS) { 7184 console.error('[Recurly] 3DS requested again after a completed challenge â aborting to avoid loop'); 7185 showError('We could not verify your card for this plan. Please try a different card or payment method.'); 7186 resetSubmitBtn(); 7187 threeDSAttempts = 0; 7188 return; 7189 } 7190 if (window._recurly3DSActive) return; 7191 window._recurly3DSActive = true; 7192 7193 const ac = $('#my-auth-container'); 7194 if (!ac) { 7195 showError('3D Secure could not start. Please try again.'); 7196 resetSubmitBtn(); 7197 threeDSAttempts = 0; 7198 return; 7199 } 7200 7201 ac.innerHTML = ''; 7202 7203 const tds = recurly.Risk().ThreeDSecure({ actionTokenId }); 7204 tds.on('token', (rt) => { 7205 window._recurly3DSActive = false;
7206 console.log('tokens after 3ds', originalTokenId, rt.id); 7207 submitToBackend(originalTokenId, thePlanCode, theAccountCode, rt.id); 7208 }); 7209 tds.on('error', () => { 7210 threeDSAttempts = 0; 7211 showError('3D Secure failed. Please try again.'); 7212 resetSubmitBtn(); 7213 }); 7214 tds.attach(ac); 7215 }; 7216 7217 // ââ Wallets ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 7218 // let googlePlayInstance = null; 7219 const buildGooglePay = () => { 7220 if (window._recurlyGooglePayBuilt) return; 7221 const container = $('#google-pay-button-container'); 7222 if (!container) return; 7223 7224 const existingButtons = container.querySelectorAll('#gpay-button-online-api-id'); 7225 console.log(`Google Pay buttons found: ${existingButtons.length}`); 7226 7227 if (existingButtons.length > 0) { 7228 console.log('â ï¸ Google Pay button already exists', existingButtons); 7229 } 7230 7231 window._recurlyGooglePayBuilt = true; 7232 const gp = recurly.GooglePay({ 7233 currency: 'GBP', 7234 country: 'GB', 7235 total: chargeableAmount, // added - to show the balance (was: planAmount) 7236 googleMerchantId: 'BCR2DN5TR6L2HHDR', 7237 billingAddressRequired: true, 7238 buttonOptions: { 7239 buttonColor: 'default', 7240 buttonType: 'checkout', 7241 buttonRadius: 4, 7242 buttonBorderType: 'default_border', 7243 buttonSizeMode: 'fill', 7244 }, 7245 }); 7246 7247 gp.on('error', (err) => console.error('[Recurly] GPay error:', err)); 7248 gp.on('token', (token) => { 7249 const ac = getAccountCode(); 7250 if (!ac) { 7251 showError('You must be logged in.'); 7252 return; 7253 } 7254 threeDSAttempts = 0; 7255 submitToBackend(token.id, planCode, ac); 7256 }); 7257 gp.on('ready', (btn) => { 7258 // Duplicate google pay buttons fix 7259 container.appendChild(btn); 7260 7261 const buttons = container.querySelectorAll('.gpay-button-fill'); 7262 7263 if (buttons.length > 1) { 7264 console.log(`Removing ${buttons.length - 1} duplicate Google Pay button(s)`); 7265 7266 buttons.forEach((button, index) => { 7267 if (index > 0) { 7268 button.remove(); 7269 } 7270 }); 7271 } 7272 }); 7273 }; 7274 7275 let applePayClickHandler = null; 7276 let applePayInstance = null; 7277 const buildApplePay = () => { 7278 if (!window.ApplePaySession || !ApplePaySession.canMakePayments()) { 7279 const t = $('#tab-applepay'); 7280 if (t) t.style.display = 'none'; 7281 return; 7282 } 7283 const ap = recurly.ApplePay({ 7284 country: 'GB', 7285 currency: 'GBP', 7286 label: 'GB News Subscription', 7287 total: chargeableAmount, // added - to show the balance (was: planAmount) 7288 }); 7289 applePayInstance = ap; 7290 ap.on('error', () => { 7291 if (ap !== applePayInstance) return; 7292 showError('Apple Pay is not available.'); 7293 }); 7294 ap.on('token', (token) => { 7295 if (ap !== applePayInstance) return; 7296 const ac = getAccountCode(); 7297 if (!ac) { 7298 showError('You must be logged in.'); 7299 return; 7300 } 7301 threeDSAttempts = 0; 7302 submitToBackend(token.id, planCode, ac); 7303 }); 7304 ap.ready(() => { 7305 if (ap !== applePayInstance) return; 7306 const btn = $('#my-apple-pay-button'); 7307 if (!btn) return; 7308 if (applePayClickHandler) btn.removeEventListener('click', applePayClickHandler); 7309 applePayClickHandler = () => applePayInstance && applePayInstance.begin(); 7310 btn.addEventListener('click', applePayClickHandler); 7311 }); 7312 }; 7313 7314 const rebuildWalletsForPlan = () => { 7315 window._recurlyGooglePayBuilt = false; 7316 const gpc = $('#google-pay-button-container'); 7317 if (gpc) gpc.innerHTML = ''; 7318 // buildGooglePay(); // <= added to restore disappearing button 7319 buildApplePay(); 7320 }; 7321 7322 const buildPayPal = () => { 7323 if (window._recurlyPaypalBuilt) return; 7324 if (!$('#paypal-container')) return; 7325 window._recurlyPaypalBuilt = true; 7326 7327 const pp = recurly.PayPal({ 7328 payPalComplete: { target: '#paypal-container', pricing: recurly.Pricing.Checkout(), buttonoptions: {} }, 7329 }); 7330 7331 pp.on('error', () => { 7332 resetSubmitBtn(); // Ensure UI is re-enabled if PayPal fails or is closed 7333 showError('PayPal unavailable. Please try another method.'); 7334 }); 7335 7336 pp.on('token', (token) => { 7337 const ac = getAccountCode(); 7338 if (!ac) { 7339 showError('You must be logged in.'); 7340 return; 7341 } 7342 7343 // 1. Trigger the loading message & overlay 7344 setSubmitLoading(true); 7345 7346 threeDSAttempts = 0; 7347 submitToBackend(token.id, planCode, ac); 7348 }); 7349 }; 7350 7351 const handleLogin = (code, amount) => { 7352 if (window.gbnID && window.gbnID._isLoggedIn) return true; 7353 if (code) { 7354 savePendingPlan(code, amount); 7355 } 7356 if (window.gbnID) window.gbnID.openLoginModal({ registration: true }); 7357 return false;
7358 }; 7359 7360 // ââ Real-Time Input Listener for Custom Amounts ââââââââââââââââââââââââââââ 7361 document.addEventListener('input', function (e) { 7362 if (e.target.id === 'gbn-other-amount' && planCode === 'gbn_donation_other') { 7363 const value = parseFloat(e.target.value); 7364 planAmount = isNaN(value) || value <= 0 ? '0' : value.toString(); 7365 console.log('[Recurly] Dynamic custom amount update:', planAmount); 7366 updatePlanSummary(planCode); 7367 rebuildWalletsForPlan(); 7368 } 7369 }); 7370 7371 const clearError = () => { 7372 const ex = $('.recurly-error'); 7373 if (ex) ex.remove(); 7374 }; 7375 7376 const isGiftingContext = (el, code) => { 7377 if (code && code.includes('gift')) return true; 7378 if (!el) return false; 7379 return ( 7380 el.closest('.gift-wrapper') || 7381 el.closest('#gift-container') || 7382 el.dataset.type === 'gift' || 7383 (el.dataset.plan && el.dataset.plan.includes('gift')) 7384 ); 7385 }; 7386 7387 // ââ Delegated click handling âââââââââââââââââââââââââââââââââââââââââââââââ 7388 document.addEventListener('click', function (e) { 7389 const planBtn = e.target.closest('.plan-btn'); 7390 7391 if (planBtn) { 7392 addCloseBtn(); 7393 7394 let newCode = planBtn.dataset.plan; 7395 const wrapper = planBtn.closest('.dropdown-wrapper'); 7396 const giftingTarget = isGiftingContext(planBtn, newCode) || isGiftingContext(wrapper, newCode); 7397 7398 if (wrapper) { 7399 const selectEl = wrapper.querySelector('select'); 7400 if (selectEl) { 7401 const selectedOption = selectEl.options[selectEl.selectedIndex]; 7402 newCode = selectedOption 7403 ? selectedOption.dataset.plan || selectedOption.value || selectEl.value 7404 : selectEl.value; 7405 7406 if (!newCode || newCode === '' || selectedOption?.disabled) { 7407 clearError(); 7408 if (giftingTarget) { 7409 showError('Please select a gift amount from the options before proceeding.'); 7410 } else { 7411 showError('Please select a plan before proceeding.'); 7412 } 7413 selectEl.classList.add('is-invalid'); 7414 selectEl.focus(); 7415 return; // Block opening modal 7416 } 7417 } 7418 } 7419 7420 let targetAmount = PLANS[newCode]?.amount; 7421 if (newCode === 'gbn_donation_other') { 7422 const inputEl = $('#gbn-other-amount'); 7423 targetAmount = inputEl ? inputEl.value : '0'; 7424 } 7425 if (!handleLogin(newCode, targetAmount)) return; 7426 7427 if (newCode && PLANS[newCode]) { 7428 // ââ GIFTING VALIDATION âââââââââââââââââââââââââââââââââââââââââââââââ 7429 processPlanSelection(newCode); 7430 if (newCode.includes('gift')) { 7431 clearError(); 7432 const giftEmailInput = document.getElementById('gift-recipient-email'); 7433 7434 if (giftEmailInput) { 7435 const emailVal = giftEmailInput.value.trim(); 7436 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 7437 7438 if (!emailVal) { 7439 showError("Please enter the recipient's email address."); 7440 giftEmailInput.classList.add('is-invalid'); 7441 giftEmailInput.focus(); 7442 return; // Stops modal from opening 7443 } 7444 7445 if (!emailRegex.test(emailVal)) { 7446 showError('Please enter a valid email address for the recipient.'); 7447 giftEmailInput.classList.add('is-invalid'); 7448 giftEmailInput.focus(); 7449 return; // Stops modal from opening 7450 } 7451 7452 // Clear invalid styling if validation passes 7453 giftEmailInput.classList.remove('is-invalid'); 7454 recipient_email = emailVal; 7455 } 7456 requiredEndpoint = giftingEndpoint; 7457 } else if (newCode.includes('donation')) { 7458 clearError(); 7459 if (newCode == 'gbn_donation_other') { 7460 if (document.querySelector('#gbn-other-wrap')) 7461 document.getElementById('gbn-other-wrap').style.display = 'block'; 7462 } else { 7463 if (document.querySelector('#gbn-other-wrap')) 7464 document.getElementById('gbn-other-wrap').style.display = 'none'; 7465 } 7466 requiredEndpoint = donationsEndpoint; 7467 } else { 7468 requiredEndpoint = purchasesEndpoint; 7469 } 7470 7471 const planChanged = newCode !== planCode; 7472 planCode = newCode; 7473 7474 if (newCode === 'gbn_donation_other') { 7475 const inputEl = $('#gbn-other-amount'); 7476 const value = inputEl ? parseFloat(inputEl.value) : 1; 7477 planAmount = isNaN(value) || value <= 0 ? '0' : value.toString(); 7478 } else { 7479 planAmount = PLANS[newCode].amount; 7480 } 7481 7482 updatePlanSummary(newCode); 7483 if (planChanged || newCode === 'gbn_donation_other') rebuildWalletsForPlan(); 7484 7485 openModal(); 7486 const ua = navigator.userAgent; 7487 let defaultTab = 'card'; 7488 if (/iphone|ipad|ipod/i.test(ua) && window.ApplePaySession && ApplePaySession.canMakePayments()) 7489 defaultTab = 'applepay'; 7490 else if (/android/i.test(ua)) defaultTab = 'googlepay'; 7491 activateTab(defaultTab); 7492 } else if (giftingTarget) { 7493 showError('Please select a gift amount before proceeding.'); 7494 } else { 7495 openModal();
7496 activateTab('card'); 7497 } 7498 return; 7499 } else { 7500 checkIsTrial = isFreeTrialPrompt(); 7501 console.log('user is being shown free trial prompt: ', checkIsTrial); 7502 } 7503 7504 const payTab = e.target.closest('.payment-tab'); 7505 if (payTab && payTab.dataset.tab) { 7506 activateTab(payTab.dataset.tab); 7507 return; 7508 } 7509 7510 // if (e.target.closest('#modal-close-btn') || e.target.id === 'checkout-modal') { 7511 // if (window._recurlySubmitting) return; 7512 // closeModal(); 7513 // return; 7514 // } 7515 const isCloseBtn = !!e.target.closest('#modal-close-btn'); 7516 const isOverlayClick = e.target.id === 'checkout-modal'; 7517 7518 if (isCloseBtn || (isOverlayClick && !isArticlePage())) { 7519 if (window._recurlySubmitting) return; 7520 closeModal(); 7521 return; 7522 } 7523 }); 7524 7525 const processPlanSelection = (newCode) => { 7526 if (!handleLogin()) return; 7527 7528 // Fallback to trial code if no code was passed (e.g., article page direct call) 7529 const targetCode = newCode && PLANS[newCode] ? newCode : 'gbn_membership_5_monthly_trial'; 7530 7531 if (targetCode.includes('gift')) { 7532 clearError(); 7533 const giftEmailInput = document.getElementById('gift-recipient-email'); 7534 7535 if (giftEmailInput) { 7536 const emailVal = giftEmailInput.value.trim(); 7537 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 7538 7539 if (!emailVal) { 7540 showError("Please enter the recipient's email address."); 7541 giftEmailInput.classList.add('is-invalid'); 7542 if (giftEmailInput.parentElement) { 7543 giftEmailInput.parentElement.classList.add('has-invalid-field'); 7544 } 7545 giftEmailInput.focus(); 7546 return; 7547 } 7548 7549 if (!emailRegex.test(emailVal)) { 7550 showError('Please enter a valid email address for the recipient.'); 7551 giftEmailInput.classList.add('is-invalid'); 7552 if (giftEmailInput.parentElement) { 7553 giftEmailInput.parentElement.classList.add('has-invalid-field'); 7554 } 7555 giftEmailInput.focus(); 7556 return; 7557 } 7558 7559 giftEmailInput.classList.remove('is-invalid'); 7560 if (giftEmailInput.parentElement) { 7561 giftEmailInput.parentElement.classList.remove('has-invalid-field'); 7562 } 7563 recipient_email = emailVal; 7564 } 7565 requiredEndpoint = giftingEndpoint; 7566 } else if (targetCode.includes('donation')) { 7567 clearError(); 7568 if (targetCode === 'gbn_donation_other') { 7569 if (document.querySelector('#gbn-other-wrap')) 7570 document.getElementById('gbn-other-wrap').style.display = 'block'; 7571 } else { 7572 if (document.querySelector('#gbn-other-wrap')) document.getElementById('gbn-other-wrap').style.display = 'none'; 7573 } 7574 requiredEndpoint = donationsEndpoint; 7575 } else { 7576 requiredEndpoint = purchasesEndpoint; 7577 } 7578 7579 const planChanged = targetCode !== planCode; 7580 planCode = targetCode; 7581 7582 if (targetCode === 'gbn_donation_other') { 7583 const inputEl = $('#gbn-other-amount'); 7584 const value = inputEl ? parseFloat(inputEl.value) : 1; 7585 planAmount = isNaN(value) || value <= 0 ? '0' : value.toString(); 7586 } else { 7587 planAmount = PLANS[targetCode].amount; 7588 } 7589 7590 updatePlanSummary(targetCode); 7591 if (planChanged || targetCode === 'gbn_donation_other') rebuildWalletsForPlan(); 7592 7593 openModal(); 7594 7595 const ua = navigator.userAgent; 7596 let defaultTab = 'card'; 7597 if (/iphone|ipad|ipod/i.test(ua) && window.ApplePaySession && ApplePaySession.canMakePayments()) 7598 defaultTab = 'applepay'; 7599 else if (/android/i.test(ua)) defaultTab = 'googlepay'; 7600 activateTab(defaultTab); 7601 }; 7602 7603 // Remove error indicators cleanly when the user resolves the field value 7604 document.addEventListener('input', function (e) { 7605 if (e.target.classList.contains('is-invalid') && e.target.value.trim() !== '') { 7606 e.target.classList.remove('is-invalid'); 7607 if (e.target.parentElement) { 7608 e.target.parentElement.classList.remove('has-invalid-field'); 7609 } 7610 } 7611 }); 7612 7613 const isReallyVisible = (el) => { 7614 if (el.disabled || el.readOnly) return false;
7615 if (typeof el.checkVisibility === 'function') { 7616 return el.checkVisibility({ checkOpacity: true, checkVisibilityCSS: true }); 7617 } 7618 const cs = getComputedStyle(el); 7619 if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false; 7620 return !!(el.offsetWidth || el.offsetHeight); 7621 }; 7622 7623 document.addEventListener( 7624 'submit', 7625 function (e) { 7626 // Determine if the submitted element is or belongs to #my-form 7627 const target = e.target; 7628 const form = 7629 target && target.matches && target.matches('#my-form') 7630 ? target 7631 : target.closest 7632 ? target.closest('#my-form') 7633 : document.getElementById('my-form'); 7634 7635 // If it's not our form, let it pass 7636 if (!form || (target.id !== 'my-form' && !form.contains(target))) return; 7637 7638 // ââ CRITICAL MOBILE FIX ââââââââââââââââââââââââââââââââââââââââââââââââââ 7639 // Stop native HTML form submit immediately before ANY logic runs 7640 e.preventDefault(); 7641 e.stopPropagation(); 7642 7643 // Prevent duplicate submissions 7644 if (window._recurlySubmitting) return false; 7645 7646 try { 7647 // ââ 2. ACCOUNT & AUTH CHECKS ââââââââââââââââââââââââââââââââââââââââââ 7648 if (typeof handleLogin === 'function' && !handleLogin()) return false; 7649 7650 const accountCode = typeof getAccountCode === 'function' ? getAccountCode() : null; 7651 if (!accountCode) { 7652 showError('Could not identify your account. Please log in again.'); 7653 return false; 7654 } 7655 7656 // ââ 3. RESET PRIOR ACCESSIBILITY & ERROR STATES âââââââââââââââââââââââ 7657 clearError(); 7658 form.querySelectorAll('.is-invalid').forEach((el) => el.classList.remove('is-invalid')); 7659 form.querySelectorAll('.has-invalid-field').forEach((el) => el.classList.remove('has-invalid-field')); 7660 7661 const cardContainers = form.querySelectorAll('.rec-field'); 7662 cardContainers.forEach((container) => { 7663 container.classList.remove('recurly-element-invalid-custom'); 7664 }); 7665 7666 let errors = []; 7667 7668 // ââ 4. SCAN STANDARD INPUTS (Text, Email, Number) ââââââââââââââââââââ 7669 const textInputs = form.querySelectorAll('input[type="text"], input[type="email"], input[type="number"]'); 7670 textInputs.forEach((input) => { 7671 // Safe visibility check that works inside mobile modals 7672 // const isVisible = !!(input.offsetWidth || input.offsetHeight || input.getClientRects().length); 7673 const isVisible = isReallyVisible(input); 7674 if (isVisible && !input.value.trim()) { 7675 const fieldName = input.placeholder || 'Required field'; 7676 errors.push({ element: input, message: `"${fieldName}" is required.` }); 7677 7678 input.classList.add('is-invalid'); 7679 if (input.parentElement) { 7680 input.parentElement.classList.add('has-invalid-field'); 7681 } 7682 } 7683 }); 7684 7685 // Stop if standard inputs fail 7686 if (errors.length > 0) { 7687 const uniqueMessages = [...new Set(errors.map((err) => err.message))]; 7688 showError(uniqueMessages.join(' ')); 7689 if (errors[0].element) errors[0].element.focus(); 7690 return false; 7691 } 7692 7693 // additional error handling for other donation if user submits £0 7694 if (planCode === 'gbn_donation_other' && (isNaN(parseFloat(planAmount)) || parseFloat(planAmount) < 1)) { 7695 showError('Donations start from £1. Please try again'); 7696 const otherAmountInput = document.getElementById('gbn-other-amount'); 7697 if (otherAmountInput) { 7698 otherAmountInput.classList.add('is-invalid'); 7699 if (otherAmountInput.parentElement) { 7700 otherAmountInput.parentElement.classList.add('has-invalid-field'); 7701 } 7702 otherAmountInput.focus(); 7703 } 7704 return false;
7705 } 7706 7707 // ââ 5. DETERMINE ACTIVE PAYMENT PANEL ââââââââââââââââââââââââââââââââ 7708 // Helper function replacing jQuery dependency safely 7709 const cardPanel = document.querySelector('#panel-card'); 7710 const isCardTabActive = cardPanel && getComputedStyle(cardPanel).display !== 'none'; 7711 7712 const markCardContainersInvalid = () => { 7713 cardContainers.forEach((container) => { 7714 container.classList.add('recurly-element-invalid-custom'); 7715 if (container.parentElement) { 7716 container.parentElement.classList.add('has-invalid-field'); 7717 } 7718 }); 7719 }; 7720 7721 // ââ 6. PROCESS CARD OR WALLET SUBMISSION ââââââââââââââââââââââââââââââ 7722 if (isCardTabActive) { 7723 window._recurlySubmitting = true; 7724 if (typeof threeDSAttempts !== 'undefined') threeDSAttempts = 0; 7725 7726 const btn = document.querySelector('#submit-btn'); 7727 if (btn) { 7728 btn.disabled = true; 7729 btn.textContent = 'Processing...'; 7730 } 7731 7732 if (typeof setSubmitLoading === 'function') setSubmitLoading(true); 7733 7734 // Call Recurly Token explicitly 7735 // Note: For Recurly Elements, pass `elements` as target 7736 const recurlyTarget = typeof elements !== 'undefined' ? elements : form; 7737 7738 recurly.token(recurlyTarget, form, (err, token) => { 7739 if (err) { 7740 window._recurlySubmitting = false; 7741 if (typeof resetSubmitBtn === 'function') resetSubmitBtn(); 7742 7743 markCardContainersInvalid(); 7744 7745 let errorMessage = 'Please check your card details and fill in all required fields.'; 7746 7747 // Mobile safari returns field errors in err.details or err.fields 7748 const rawFields = err.fields || (err.details ? err.details.map((d) => d.field) : []); 7749 7750 if (Array.isArray(rawFields) && rawFields.length > 0) { 7751 const formattedFields = rawFields 7752 .map((f) => { 7753 if (f === 'number' || f === 'card_number') return 'Card Number'; 7754 if (f === 'month' || f === 'year' || f === 'cvc' || f === 'cvv') return f.toUpperCase(); 7755 return f; 7756 }) 7757 .join(', '); 7758 7759 errorMessage = `Please complete the following card fields: ${formattedFields}.`; 7760 } else if ( 7761 err.code === 'validation-error' || 7762 (err.message && err.message.toLowerCase().includes('validating')) 7763 ) { 7764 errorMessage = 7765 'Card details are incomplete or invalid. Please check your card number, expiration date, and CVC.'; 7766 } else if (err.message) { 7767 errorMessage = err.message; 7768 } 7769 7770 showError(errorMessage); 7771 return; 7772 } 7773 7774 console.log('RECURLY TOKEN GENERATED:', token); 7775 submitToBackend(token.id, typeof planCode !== 'undefined' ? planCode : null, accountCode); 7776 }); 7777 } else { 7778 window._recurlySubmitting = true; 7779 if (typeof threeDSAttempts !== 'undefined') threeDSAttempts = 0; 7780 if (typeof setSubmitLoading === 'function') setSubmitLoading(true); 7781 } 7782 } catch (fatalError) { 7783 // Catch any unexpected JS runtime exception to prevent default browser form post 7784 window._recurlySubmitting = false; 7785 if (typeof resetSubmitBtn === 'function') resetSubmitBtn(); 7786 console.error('Mobile Form Exception:', fatalError); 7787 showError('An unexpected error occurred. Please refresh and try again.'); 7788 } 7789 7790 return false; 7791 }, 7792 true, // Use capture phase to catch mobile submit events before bubble traps 7793 ); 7794 7795 attachCardIfNeeded(); 7796 7797 // Also listen for DOMReady in case the script ran in <head> 7798 if (document.readyState === 'loading') { 7799 document.addEventListener('DOMContentLoaded', attachCardIfNeeded); 7800 } else { 7801 attachCardIfNeeded(); 7802 } 7803 7804 updatePlanSummary(planCode); 7805 buildApplePay(); 7806
7807 activateTab('card'); 7808 7809 checkAndRestorePendingPlan(); 7810 7811 console.log('[Recurly Global] Checkout fully initialised'); 7812 7813 document.querySelectorAll('.plan-btn').forEach((btn) => { 7814 btn.style.opacity = '1'; 7815 btn.style.pointerEvents = 'auto'; 7816 }); 7817})(); 7818 7819 7820}); 7821 7822window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 7823 7824 7825 let countryList = []; 7826let countrySelect = document.getElementById('country'); 7827 7828// LOAD COUNTRIES FROM API 7829async function loadCountries() { 7830 try { 7831 const res = await fetch('https://www.gbnews.com/r/kappa/api/v2/reader/My_Account_Countries', { 7832 method: 'GET', 7833 credentials: 'omit', 7834 }); 7835 7836 const data = await res.json(); 7837 7838 countryList = data.countries || []; 7839 7840 populateCountryDropdown(countryList); 7841 } catch (error) { 7842 console.error('Failed to load countries:', error); 7843 } 7844} 7845 7846function populateCountryDropdown(countries) { 7847 7848 if(!countrySelect) { 7849 return; 7850 } 7851 countrySelect.innerHTML = `<option value="United Kingdom" disabled selected>United Kingdom</option>`; 7852 7853 countries.forEach((c) => { 7854 const option = document.createElement('option'); 7855 option.value = c.name; 7856 option.textContent = c.name; 7857 countrySelect.appendChild(option); 7858 }); 7859 7860 // Re-apply value after dropdown options exist 7861 const pendingValue = countrySelect.dataset.pendingValue; 7862 7863 if (pendingValue) { 7864 countrySelect.value = pendingValue; 7865 } 7866} 7867 7868loadCountries(); 7869 7870 7871}); 7872 7873window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 7874 7875 7876 const paymentModal = document.querySelector('.modal-overlay'); 7877 7878if (paymentModal) { 7879 paymentModal.addEventListener('click', (e) => { 7880 // Only prevent clicks on the overlay itself, not the modal content 7881 if (e.target === paymentModal) { 7882 e.stopPropagation(); 7883 e.preventDefault(); 7884 } 7885 }); 7886} 7887 7888 7889}); 7890 7891window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 7892 7893 7894 // Remove legacy trial flow flag 7895localStorage.removeItem('trial_flow_ready'); 7896 7897// Query elements safely 7898const recurlyModal = document.querySelector('.rfmodal-wrapper'); 7899const mobileRecMod = document.querySelector('.mobileWebModalWrapper'); 7900const paymentModal = document.querySelector('.modal-overlay'); 7901const paymentCloseBtn = document.getElementById('modal-close-btn'); 7902 7903// Safely get display styles (defaults to 'none' if element isn't found) 7904const recurlyDisplay = recurlyModal ? window.getComputedStyle(recurlyModal).display : 'none'; 7905const mobileRecDisplay = mobileRecMod ? window.getComputedStyle(mobileRecMod).display : 'none'; 7906 7907console.log('related computed style for trial: ', recurlyDisplay); 7908 7909// Check conditions safely 7910// const isTrialReady = localStorage.getItem('trial_flow_ready') === 'true'; 7911 7912function checkHasHadTrial() { 7913 const expiredMemberships = window.gbnID?._currentUser?.expiredMemberships || []; 7914 7915 // Check if any plan matches _trial, _monthly, or _annual 7916 const matchesTargetPlan = expiredMemberships.some((membership) => { 7917 const code = membership?.planCode || ''; 7918 return code.includes('_trial') || code.includes('_monthly') || code.includes('_annual'); 7919 }); 7920 7921 console.log('matches trial: ', matchesTargetPlan); 7922 7923 // Returns True if a matching membership exists, TRUE if none are found 7924 return !matchesTargetPlan; 7925} 7926 7927// const hasTrial = checkHasHadTrial(); 7928 7929// if (isTrialReady && recurlyDisplay !== 'flex' && mobileRecDisplay !== 'flex' && hasTrial) { 7930// console.log('Resuming trial flow'); 7931 7932// if (paymentModal) { 7933// paymentModal.style.display = 'block'; 7934// } else { 7935// console.warn('.modal-overlay element not found in DOM'); 7936// } 7937 7938// localStorage.removeItem('trial_flow_ready'); 7939// console.log('local storage item consumed'); 7940// } 7941 7942// if (paymentCloseBtn && paymentModal) { 7943// paymentCloseBtn.addEventListener('click', () => { 7944// console.log('close modal'); 7945// paymentModal.style.display = 'none'; 7946// }); 7947// } 7948 7949 7950}); 7951 7952window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 7953 7954 7955 const paymentSubmit = document.getElementById('submit-btn'); 7956 7957paymentSubmit.addEventListener('click', () => { 7958 (function () { 7959 const originalFetch = window.fetch; 7960 const addCloseBtn = () => { 7961 if (!document.getElementById('modal-close-btn')) { 7962 const closeBtn = document.createElement('button'); 7963 closeBtn.id = 'modal-close-btn'; 7964 closeBtn.classList.add('modal-close'); 7965 closeBtn.ariaLabel = 'close'; 7966 closeBtn.innerHTML = '×'; 7967 if (document.querySelector('.modal-header')) { 7968 document.querySelector('.modal-header').appendChild(closeBtn); 7969 } 7970 } 7971 }; 7972 7973 function isFreeTrialPrompt() {
7974 const primaryBtn = document.querySelector('.rfmodal-button-yes.primary-btn-p'); 7975 7976 if (!primaryBtn) { 7977 return false; 7978 } 7979 7980 return primaryBtn.textContent.trim().toLowerCase() === 'start free trial'; 7981 } 7982 7983 window.fetch = async function (...args) { 7984 const response = await originalFetch.apply(this, args); 7985 const url = typeof args[0] === 'string' ? args[0] : args[0]?.url; 7986 if (url && url.includes('/api/v1/users/purchases') && response.status === 200) { 7987 if (isFreeTrialPrompt()) { 7988 addCloseBtn(); 7989 } else { 7990 console.log('Prompt is not for Free trial'); 7991 } 7992 } 7993 7994 return response; 7995 }; 7996 })(); 7997}); 7998 7999 8000}); 8001 8002window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8003 8004 8005 function isSamsungBrowser() { 8006 const userAgent = navigator.userAgent.toLowerCase(); 8007 return userAgent.includes('samsungbrowser'); 8008} 8009 8010if (isSamsungBrowser()) { 8011 8012 document.querySelector('.engbar-content').style.display = "none"; 8013 document.querySelector('.engbar').style.paddingTop = "0px"; 8014 document.querySelector('.engbar').style.paddingBottom = "0px"; 8015 document.querySelector('#support-banner').style.fontSize = "10px"; 8016// console.log("Samsung Internet browser detected"); 8017} else { 8018// console.log("Not Samsung Internet browser"); 8019} 8020 8021 8022}); 8023 8024window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8025 8026 8027 // Wait for element 8028function waitForElement(selector, callback) { 8029 const element = document.querySelector(selector); 8030 if (element) { 8031 callback(element); 8032 return; 8033 } 8034 8035 const observer = new MutationObserver(function () { 8036 const element = document.querySelector(selector); 8037 if (element) { 8038 callback(element); 8039 observer.disconnect(); 8040 } 8041 }); 8042 8043 observer.observe(document.body, { childList: true, subtree: true }); 8044} 8045 8046console.log('MENU INITIALIZATION'); 8047 8048// Search my account wrapper 8049waitForElement('.login-link-wrapper', function (loginWrapper) { 8050 console.log('Found login wrapper:', loginWrapper); 8051 8052 waitForElement('#myAccountMenu', function (myAccountMenu) { 8053 console.log('Found My Account menu:', myAccountMenu); 8054 8055 const textLink = loginWrapper.querySelector('#login-link-text'); // Link with text "My Account" 8056 const avatarLink = loginWrapper.querySelector('#accountToggleLink'); // Link with avatar 8057 8058 console.log('Text link:', textLink); 8059 console.log('Avatar link:', avatarLink); 8060 8061 const overlay = document.getElementById('overlay'); 8062 console.log('Overlay:', overlay); 8063 8064 // is user logged in ? 8065 function isUserLoggedIn() { 8066 return avatarLink && avatarLink.classList.contains('loggedin'); 8067 } 8068 8069 // Function to toggle avatar visibility 8070 function toggleAvatar(show) { 8071 if (avatarLink) { 8072 avatarLink.style.visibility = show ? 'visible' : 'hidden'; 8073 console.log('Avatar', show ? 'shown' : 'hidden'); 8074 } 8075 } 8076 8077 // Create close button as sibling to avatar link 8078 function createCloseButton() { 8079 if (!avatarLink) return null; 8080 8081 // close exists? 8082 const existingCloseBtn = loginWrapper.querySelector('.custom-close-button'); 8083 if (existingCloseBtn) { 8084 return existingCloseBtn; 8085 } 8086 8087 const closeButton = document.createElement('img'); 8088 closeButton.src = 'https://assets.rbl.ms/61170200/origin.png'; 8089 closeButton.alt = 'Close'; 8090 closeButton.classList.add('custom-close-button'); 8091 closeButton.style.display = 'none'; 8092 8093 // Add event to close menu 8094 closeButton.addEventListener('click', function (e) { 8095 e.stopPropagation(); 8096 hideMenu(); 8097 }); 8098 8099 // Insert close button as sibling after avatar link 8100 avatarLink.parentNode.insertBefore(closeButton, avatarLink.nextSibling); 8101 return closeButton; 8102 } 8103 8104 // Menu functions 8105 function showMenu() { 8106 if (!isUserLoggedIn()) { 8107 console.log("User not logged in, menu won't open"); 8108 return; 8109 } 8110 8111 myAccountMenu.removeAttribute('hidden'); 8112 myAccountMenu.classList.add('show'); 8113 8114 const closeButton = createCloseButton(); 8115 if (closeButton) { 8116 closeButton.style.display = 'block'; 8117 // Hide avatar when close button is shown 8118 toggleAvatar(false); 8119 } 8120 8121 if (overlay) overlay.classList.add('show'); 8122 8123 console.log('Menu opened'); 8124 } 8125 8126 function hideMenu() { 8127 myAccountMenu.classList.remove('show'); 8128 if (overlay) overlay.classList.remove('show'); 8129 8130 const closeButton = loginWrapper.querySelector('.custom-close-button'); 8131 if (closeButton) { 8132 closeButton.style.display = 'none'; 8133 // Show avatar when close button is hidden 8134 toggleAvatar(true); 8135 } 8136 8137 setTimeout(() => { 8138 myAccountMenu.setAttribute('hidden', ''); 8139 }, 200); 8140 8141 console.log('Menu closed'); 8142 } 8143 8144 // Event listener for link with text "My Account" 8145 if (textLink) { 8146 textLink.addEventListener('click', function (e) { 8147 e.preventDefault(); 8148 e.stopPropagation(); 8149 8150 console.log('Text link clicked'); 8151 8152 if (!isUserLoggedIn()) { 8153 console.log("User not logged in, menu won't open"); 8154 return; 8155 } 8156 8157 // Toggle menu 8158 if (myAccountMenu.classList.contains('show')) { 8159 hideMenu(); 8160 } else { 8161 showMenu(); 8162 } 8163 }); 8164 } 8165 8166 // Event listener for avatar
8167 if (avatarLink) { 8168 avatarLink.addEventListener('click', function (e) { 8169 e.preventDefault(); 8170 e.stopPropagation(); 8171 8172 console.log('Avatar link clicked'); 8173 8174 if (!isUserLoggedIn()) { 8175 console.log("User not logged in, menu won't open"); 8176 return; 8177 } 8178 8179 // Toggle menu 8180 if (myAccountMenu.classList.contains('show')) { 8181 hideMenu(); 8182 } else { 8183 showMenu(); 8184 } 8185 }); 8186 } 8187 8188 // Close menu when clicking overlay 8189 if (overlay) { 8190 overlay.addEventListener('click', hideMenu); 8191 } 8192 8193 // Close menu when Piano modal appears 8194 waitForElement('.piano-id-modal', function (pianoModal) { 8195 console.log('Piano modal appeared:', pianoModal); 8196 hideMenu(); 8197 }); 8198 8199 // Close menu on ESC key 8200 document.addEventListener('keydown', function (e) { 8201 if (e.key === 'Escape' && myAccountMenu.classList.contains('show')) { 8202 hideMenu(); 8203 } 8204 }); 8205 8206 // Prevent menu from closing when clicking inside it 8207 myAccountMenu.addEventListener('click', function (e) { 8208 e.stopPropagation(); 8209 }); 8210 8211 // Close menu when clicking menu links 8212 const menuLinks = myAccountMenu.querySelectorAll('a'); 8213 menuLinks.forEach((link) => { 8214 link.addEventListener('click', function () { 8215 hideMenu(); 8216 }); 8217 }); 8218 8219 // Logout logic 8220 const logoutLink = Array.from(menuLinks).find((link) => { 8221 return link.textContent.trim().toLowerCase().includes('log out') || link.getAttribute('aria-label') === 'Log Out'; 8222 }); 8223 8224 if (logoutLink) { 8225 logoutLink.addEventListener('click', function (e) { 8226 e.preventDefault(); 8227 8228 // Log out from GBN Id 8229 if (window.gbnID) { 8230 window.gbnID.logout(); 8231 } 8232 8233 // Log out from Piano 8234 if (window.tp && tp.pianoId) { 8235 tp.pianoId.logout(); 8236 } else { 8237 console.warn('Piano not ready'); 8238 } 8239 8240 // Hide menu after logout 8241 hideMenu(); 8242 }); 8243 } 8244 8245 // "Notifications" (Viafoura bell) in menu 8246 const vfBellLink = myAccountMenu.querySelector('#viafoura-bell-link'); 8247 if (vfBellLink) { 8248 vfBellLink.addEventListener('click', function (e) { 8249 e.preventDefault(); 8250 e.stopPropagation(); 8251 console.log('Kamila clicked!'); 8252 8253 if (window.vf && window.vf.$publish) { 8254 console.log('Opening Viafoura tray...'); 8255 window.vf.$publish('tray', 'open', 'args'); 8256 } else { 8257 console.warn('Viafoura is not ready yet.'); 8258 } 8259 }); 8260 } else { 8261 console.warn('#viafoura-bell-link not found in menu.'); 8262 } 8263 8264 // Observer to check the classes changes 8265 if (avatarLink) { 8266 const classObserver = new MutationObserver(function (mutations) { 8267 mutations.forEach(function (mutation) { 8268 if (mutation.type === 'attributes' && mutation.attributeName === 'class') { 8269 const isLoggedIn = avatarLink.classList.contains('loggedin'); 8270 console.log('Login status changed:', isLoggedIn); 8271 8272 if (!isLoggedIn) { 8273 // hide menu if logged out 8274 hideMenu(); 8275 8276 const closeButton = loginWrapper.querySelector('.custom-close-button'); 8277 if (closeButton) { 8278 closeButton.remove(); 8279 } 8280 8281 // Show avatar when user logs out 8282 toggleAvatar(true); 8283 } 8284 } 8285 }); 8286 }); 8287 8288 classObserver.observe(avatarLink, { 8289 attributes: true, 8290 attributeFilter: ['class'], 8291 }); 8292 } 8293 }); 8294}); 8295 8296 8297}); 8298 8299window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8300 8301 8302 8303 var url = decodeURIComponent(decodeURIComponent(document.location.href)); 8304 var params = url.match(new RegExp('tab' + '=([^&=]+)')); 8305 var accountTab = params ? params[1] : false; 8306 8307 setTimeout(function() { 8308 if (accountTab) { 8309 var scope = angular.element("#ng-app").scope(); 8310 scope.current = accountTab; 8311 scope.$apply(); 8312 } 8313 }, 100); 8314 8315 8316 8317}); 8318 8319window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8320 8321 8322 const EDITIONS = { 8323 us: {
8324 flag: `<svg width="30" height="20" viewBox="0 0 30 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 8325 <g clip-path="url(#clip0_13558_36419)"> 8326 <path d="M0 0H30V20H0V0Z" fill="white" /> 8327 <path 8328 d="M0 0H30V1.53801H0V0ZM0 3.07602H30V4.61404H0V3.07602ZM0 6.15205H30V7.69006H0V6.15205ZM0 9.22807H30V10.7661H0V9.22807ZM0 12.3099H30V13.848H0V12.3099ZM0 15.386H30V16.924H0V15.386ZM0 18.462H30V20H0V18.462Z" 8329 fill="#D80027" /> 8330 <path d="M0 0H15V10.7661H0V0Z" fill="#2E52B2" /> 8331 <path 8332 d="M2.79441 8.12367L2.56049 7.37514L2.30318 8.12367H1.53125L2.15698 8.57397L1.92306 9.32251L2.56049 8.86052L3.18037 9.32251L2.94061 8.57397L3.57803 8.12367H2.79441ZM6.08681 8.12367L5.84704 7.37514L5.60143 8.12367H4.8295L5.45523 8.57397L5.22131 9.32251L5.84704 8.86052L6.47862 9.32251L6.2447 8.57397L6.87043 8.12367H6.08681ZM9.3909 8.12367L9.13944 7.37514L8.90552 8.12367H8.11605L8.75932 8.57397L8.51371 9.32251L9.13944 8.86052L9.78271 9.32251L9.5371 8.57397L10.1628 8.12367H9.3909ZM12.6774 8.12367L12.4435 7.37514L12.1979 8.12367H11.4201L12.0517 8.57397L11.8178 9.32251L12.4435 8.86052L13.0751 9.32251L12.8236 8.57397L13.4669 8.12367H12.6774ZM5.84704 4.40438L5.60143 5.15291H4.8295L5.45523 5.6149L5.22131 6.35175L5.84704 5.89561L6.47862 6.35175L6.2447 5.6149L6.87043 5.15291H6.08681L5.84704 4.40438ZM2.56049 4.40438L2.30318 5.15291H1.53125L2.15698 5.6149L1.92306 6.35175L2.56049 5.89561L3.18037 6.35175L2.94061 5.6149L3.57803 5.15291H2.79441L2.56049 4.40438ZM9.13944 4.40438L8.90552 5.15291H8.11605L8.75932 5.6149L8.51371 6.35175L9.13944 5.89561L9.78271 6.35175L9.5371 5.6149L10.1628 5.15291H9.3909L9.13944 4.40438ZM12.4435 4.40438L12.1979 5.15291H11.4201L12.0517 5.6149L11.8178 6.35175L12.4435 5.89561L13.0751 6.35175L12.8236 5.6149L13.4669 5.15291H12.6774L12.4435 4.40438ZM2.56049 1.44531L2.30318 2.18215H1.53125L2.15698 2.64414L1.92306 3.38683L2.56049 2.92484L3.18037 3.38683L2.94061 2.64414L3.57803 2.18215H2.79441L2.56049 1.44531ZM5.84704 1.44531L5.60143 2.18215H4.8295L5.45523 2.64414L5.22131 3.38683L5.84704 2.92484L6.47862 3.38683L6.2447 2.64414L6.87043 2.18215H6.08681L5.84704 1.44531ZM9.13944 1.44531L8.90552 2.18215H8.11605L8.75932 2.64414L8.51371 3.38683L9.13944 2.92484L9.78271 3.38683L9.5371 2.64414L10.1628 2.18215H9.3909L9.13944 1.44531ZM12.4435 1.44531L12.1979 2.18215H11.4201L12.0517 2.64414L11.8178 3.38683L12.4435 2.92484L13.0751 3.38683L12.8236 2.64414L13.4669 2.18215H12.6774L12.4435 1.44531Z" 8333 fill="white" /> 8334 </g> 8335 <defs> 8336 <clipPath id="clip0_13558_36419"> 8337 <rect width="30" height="20" fill="white" /> 8338 </clipPath> 8339 </defs> 8340 </svg>`, 8341 label: 'US edition', 8342 short: 'US', 8343 route: '/us/', 8344 }, 8345 uk: { 8346 flag: `<svg width="30" height="20" viewBox="0 0 30 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 8347 <g clip-path="url(#clip0_13558_36453)"> 8348 <path d="M0 0H30V20.0002H0V0Z" fill="white" /> 8349 <path 8350 d="M16.875 0H13.125V8.12497H0V11.875H13.125V19.9999H16.875V11.875H30V8.12497H16.875V0Z" 8351 fill="#D80027" /> 8352 <path 8353 d="M23.0703 13.4785L29.997 17.3267V13.4785H23.0703ZM18.2578 13.4785L29.997 20.0002V18.1561L21.5774 13.4785H18.2578ZM26.87 20.0002L18.2578 15.2152V20.0002H26.87Z" 8354 fill="#0052B4" /> 8355 <path d="M18.2578 13.4785L29.997 20.0002V18.1561L21.5774 13.4785H18.2578Z" fill="white" /> 8356 <path d="M18.2578 13.4785L29.997 20.0002V18.1561L21.5774 13.4785H18.2578Z" fill="#D80027" /> 8357 <path 8358 d="M5.29342 13.4785L0 16.4193V13.4785H5.29342ZM11.7392 14.3079V20.0003H1.49361L11.7392 14.3079Z" 8359 fill="#0052B4" /> 8360 <path d="M8.41952 13.4785L0 18.1561V20.0002L11.7392 13.4785H8.41952Z" fill="#D80027" /> 8361 <path 8362 d="M6.92667 6.52173L0 2.67352V6.52173H6.92667ZM11.7392 6.52173L0 0V1.84418L8.41952 6.52173H11.7392ZM3.12692 0L11.7392 4.785V0H3.12692Z" 8363 fill="#0052B4" /> 8364 <path d="M11.7392 6.52173L0 0V1.84418L8.41952 6.52173H11.7392Z" fill="white" /> 8365 <path d="M11.7392 6.52173L0 0V1.84418L8.41952 6.52173H11.7392Z" fill="#D80027" /> 8366 <path 8367 d="M24.7035 6.52178L29.997 3.58096V6.52178H24.7035ZM18.2578 5.69245V0H28.5033L18.2578 5.69245Z" 8368 fill="#0052B4" /> 8369 <path d="M21.5774 6.52173L29.997 1.84418V0L18.2578 6.52173H21.5774Z" fill="#D80027" /> 8370 </g> 8371 <defs> 8372 <clipPath id="clip0_13558_36453"> 8373 <rect width="30" height="20" fill="white" /> 8374 </clipPath> 8375 </defs> 8376 </svg>`, 8377 label: 'UK edition', 8378 short: 'UK', 8379 route: '/', 8380 }, 8381}; 8382 8383// REBELMOUSE_STDLIB.createElementChangeListener('#editionBtn', function (element) { 8384// // const btn = document.getElementById('editionBtn'); 8385// const menu = document.getElementById('editionMenu'); 8386// const chevron = document.getElementById('chevron'); 8387 8388// element.addEventListener('click', (e) => { 8389// e.stopPropagation(); 8390// const open = menu.classList.toggle('open');
8391// chevron.classList.toggle('open', open); 8392// element.setAttribute('aria-expanded', open); 8393// }); 8394// }); 8395 8396REBELMOUSE_STDLIB.createElementChangeListener('.mb-edition-wrap', function (element) { 8397 // const mb_btn = document.getElementById('mb-editionBtn'); 8398 const mb_menu = document.getElementById('mb-editionMenu'); 8399 const mb_chevron = document.querySelector('.mb-edition-wrap .sub_nav_toggle'); 8400 8401 mb_chevron.addEventListener('click', (e) => { 8402 e.stopPropagation(); 8403 const open = mb_menu.classList.toggle('open'); 8404 mb_chevron.classList.toggle('open', open); 8405 element.setAttribute('aria-expanded', open); 8406 }); 8407}); 8408 8409function getEdition(element) { 8410 let edition = localStorage.getItem('edition'); 8411 8412 if (edition == 'us') { 8413 element.innerHTML = `${EDITIONS.us.flag}`; 8414 let homeLink = document.querySelector('.site-logo a'); 8415 homeLink.href = `/us/?ico=header_logo_button`; 8416 8417 if (element.classList.contains('mb-edition-flag')) { 8418 element.nextElementSibling.innerHTML = 'US Edition'; 8419 element.parentElement.href = `${EDITIONS.us.route}`; 8420 document.querySelector('.nav #mb-opt-us').classList.add('hidden'); 8421 } else { 8422 document.querySelector('#opt-us').classList.add('hidden'); 8423 } 8424 } else { 8425 element.innerHTML = `${EDITIONS.uk.flag}`; 8426 if (element.classList.contains('mb-edition-flag')) { 8427 element.nextElementSibling.innerHTML = 'UK Edition'; 8428 element.parentElement.href = `${EDITIONS.uk.route}`; 8429 document.querySelector('.nav #mb-opt-uk').classList.add('hidden'); 8430 } else { 8431 document.querySelector('#opt-uk').classList.add('hidden'); 8432 } 8433 } 8434} 8435 8436REBELMOUSE_STDLIB.createElementChangeListener( 8437 '#editionBtn .edition-flag, #mb-editionBtn .mb-edition-flag', 8438 function (element) { 8439 getEdition(element); 8440 }, 8441); 8442 8443REBELMOUSE_STDLIB.createElementChangeListener('#opt-us, #mb-opt-us', function (element) { 8444 element.addEventListener('click', (e) => { 8445 e.preventDefault(); 8446 localStorage.setItem('edition', 'us'); 8447 window.location.href = e.currentTarget.href; 8448 }); 8449}); 8450 8451REBELMOUSE_STDLIB.createElementChangeListener('#opt-uk, #mb-opt-uk', function (element) { 8452 element.addEventListener('click', (e) => { 8453 e.preventDefault(); 8454 localStorage.setItem('edition', 'uk'); 8455 window.location.href = e.currentTarget.href; 8456 }); 8457}); 8458 8459 8460}); 8461 8462window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8463 8464 8465 var pri_nav = document.querySelector('.navbar .nav').cloneNode(true); 8466var hamburger = document.createElement('div'); 8467const searchNavItem = `<a class="hamburger search-item nav--item" href="/search/">Search</a>`; 8468const searchForMenu = ` 8469<form method="get" class="quick--search__form" action="/search/"><input 8470 type="text" 8471 required="" 8472 placeholder="Search.." 8473 value="" 8474 name="q" 8475 class="quick--search__form--input" 8476 onfocus="if (this.value == '') {this.value = '';}" 8477 onblur="if (this.value == '') {this.value = '';}" 8478 /><button type="submit" class="quick--search__form--submit" value="Search"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 40 40" fill="none"><path 8479 d="M39.7217 38.324L27.2102 25.356C30.0291 22.554 31.5786 18.89 31.5786 15C31.5786 10.994 29.9365 7.226 26.9534 4.394C23.9703 1.562 20.0061 0 15.7893 0C11.5725 0 7.60623 1.56 4.62521 4.394C1.64419 7.228 0 10.994 0 15C0 19.006 1.64209 22.774 4.62521 25.606C7.60834 28.438 11.5725 30 15.7893 30C19.4229 30 22.8671 28.842 25.6587 26.71L38.1701 39.676C38.3785 39.892 38.6606 40 38.9469 40C39.2017 40 39.4564 39.914 39.6585 39.738C40.088 39.364 40.1153 38.732 39.7238 38.326L39.7217 38.324ZM2.10313 15C2.10313 7.832 8.24201 2 15.7872 2C23.3324 2 29.4712 7.832 29.4712 15C29.4712 22.168 23.3324 28 15.7872 28C8.24201 28 2.10313 22.168 2.10313 15Z" 8480 fill="#0032AA" 8481 fill-opacity="0.8" 8482 ></path></svg></button></form> 8483`; 8484hamburger.className = 'hamburger'; 8485hamburger.append(pri_nav); 8486hamburger.querySelector('.nav').insertAdjacentHTML('afterBegin', searchForMenu); 8487document.querySelector('.topbar').append(hamburger); 8488document.querySelector('.menu__toggle').onclick = function (event) { 8489 event.stopPropagation(); // Prevent click event from bubbling up to document 8490 document.body.classList.toggle('hamburger__open'); 8491}; 8492 8493var nav__item = document.querySelectorAll('.hamburger .nav--item'); 8494nav__item.forEach(function (item) { 8495 var button = document.createElement('button'); 8496 button.className = "sub_nav_toggle"; 8497 item.append(button); 8498 button.onclick = function () { 8499 nav__item.forEach(function (sni) { 8500 if (item == sni) { 8501 } else {
8502 sni.classList.remove('expand'); 8503 } 8504 }); 8505 item.classList.toggle('expand'); 8506 }; 8507}); 8508 8509// display the hamburger menu 8510let toggleMenus = document.querySelectorAll(".menu__toggle"); 8511let toggleMenu = toggleMenus[1]; 8512let toggleMenu2 = toggleMenus[0]; // to hide the unwanted one in the hamburger menu 8513toggleMenu.addEventListener("click", toggleHamburger); 8514let hideWatchLive = document.querySelector('.watch-live-button'); //added 8515let hideVerticalLine = document.querySelector('.vertical-line'); //added 8516let lastVerticalLine = document.querySelector('.sticky-left .vertical-line:last-of-type');//added 8517 8518 8519 8520 8521function toggleHamburger(event) { 8522 event.stopPropagation(); // Prevent click event from bubbling up to document 8523 console.log("YES THIS LOGS"); 8524 document.body.classList.toggle('hamburger__open'); 8525 toggleMenu2.style.display = "none"; 8526 hideWatchLive.style.display ="none"; //added 8527 hideVerticalLine.style.display ="none"; //added 8528 lastVerticalLine.style.display ="none"; //added 8529 8530} 8531 8532//this is hiding both lines 8533// function toggleHamburger(event) { 8534// event.stopPropagation(); // Prevent click event from bubbling up to document 8535// document.body.classList.toggle('hamburger__open'); 8536// toggleMenu2.style.display = "none"; 8537// hideWatchLive.style.display = "none"; 8538 8539// if (document.body.classList.contains('hamburger__open')) { 8540 8541// hideVerticalLine.forEach(el => { 8542// el.style.display = "none"; 8543// }); 8544// } else { 8545 8546// hideVerticalLine.forEach(el => { 8547// el.style.display = ""; 8548// }); 8549 8550// hideWatchLive.style.display = ""; 8551// } 8552// } 8553 8554 8555 8556 8557 8558 8559// Close hamburger when clicking outside 8560document.addEventListener('click', function (event) { 8561 // Check if click is outside the hamburger and menu__toggle button 8562 if (!hamburger.contains(event.target) && !document.querySelector('.menu__toggle').contains(event.target)) { 8563 document.body.classList.remove('hamburger__open'); 8564 } 8565}); 8566 8567 8568}); 8569 8570window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8571 8572 8573 // var pri_nav = document.querySelector('.navbar .nav').cloneNode(true); 8574// var hamburger = document.createElement('div'); 8575// const searchNavItem = `<a class="hamburger search-item nav--item" href="/search/">Search</a>`; 8576// const searchForMenu = ` 8577// <form method="get" class="quick--search__form" action="/search/"><input 8578// type="text" 8579// required="" 8580// placeholder="Search.." 8581// value="" 8582// name="q" 8583// class="quick--search__form--input" 8584// onfocus="if (this.value == '') {this.value = '';}" 8585// onblur="if (this.value == '') {this.value = '';}" 8586// /><button type="submit" class="quick--search__form--submit" value="Search"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 40 40" fill="none"><path 8587// d="M39.7217 38.324L27.2102 25.356C30.0291 22.554 31.5786 18.89 31.5786 15C31.5786 10.994 29.9365 7.226 26.9534 4.394C23.9703 1.562 20.0061 0 15.7893 0C11.5725 0 7.60623 1.56 4.62521 4.394C1.64419 7.228 0 10.994 0 15C0 19.006 1.64209 22.774 4.62521 25.606C7.60834 28.438 11.5725 30 15.7893 30C19.4229 30 22.8671 28.842 25.6587 26.71L38.1701 39.676C38.3785 39.892 38.6606 40 38.9469 40C39.2017 40 39.4564 39.914 39.6585 39.738C40.088 39.364 40.1153 38.732 39.7238 38.326L39.7217 38.324ZM2.10313 15C2.10313 7.832 8.24201 2 15.7872 2C23.3324 2 29.4712 7.832 29.4712 15C29.4712 22.168 23.3324 28 15.7872 28C8.24201 28 2.10313 22.168 2.10313 15Z"
8588// fill="#0032AA" 8589// fill-opacity="0.8" 8590// ></path></svg></button></form> 8591// `; 8592// hamburger.className = 'hamburger'; 8593// hamburger.append(pri_nav); 8594// hamburger.querySelector('.nav').insertAdjacentHTML('afterBegin', searchForMenu); 8595// document.querySelector('.topbar').append(hamburger); 8596 8597 8598 8599 8600 8601// var nav__item = document.querySelectorAll('.hamburger .nav--item'); 8602// nav__item.forEach(function (item) { 8603// var button = document.createElement('button'); 8604// button.className = "sub_nav_toggle"; 8605// item.append(button); 8606// button.onclick = function () { 8607// nav__item.forEach(function (sni) { 8608// if (item == sni) { 8609// } else { 8610// sni.classList.remove('expand'); 8611// } 8612// }); 8613// item.classList.toggle('expand'); 8614// }; 8615// }); 8616 8617 8618 8619// function toggleHamburger(event) { 8620// event.stopPropagation(); 8621 8622// const isCurrentlyOpen = document.body.classList.contains('hamburger__open'); 8623 8624// // Close account menu if it's open 8625// const accountMenu = document.getElementById('myAccountMenu'); 8626// if (accountMenu) { 8627// accountMenu.style.display = 'none'; 8628// accountMenu.hidden = true; 8629// } 8630 8631// // Reset account toggle button state 8632// const accountToggle = document.getElementById('accountToggleLink'); 8633// if (accountToggle) { 8634// accountToggle.classList.remove('active'); 8635// accountToggle.setAttribute('aria-expanded', 'false'); 8636// } 8637 8638// // Toggle hamburger menu 8639// if (!isCurrentlyOpen) { 8640// console.log("Opening hamburger menu"); 8641// document.body.classList.add('hamburger__open'); 8642 8643// // Hide elements 8644// let toggleMenus = document.querySelectorAll(".menu__toggle"); 8645// let toggleMenu2 = toggleMenus[0]; 8646// let hideWatchLive = document.querySelector('.watch-live-button'); 8647// let hideVerticalLine = document.querySelector('.vertical-line'); 8648// let lastVerticalLine = document.querySelector('.sticky-left .vertical-line:last-of-type'); 8649 8650// if (toggleMenu2) toggleMenu2.style.display = "none"; 8651// if (hideWatchLive) hideWatchLive.style.display = "none"; 8652// if (hideVerticalLine) hideVerticalLine.style.display = "none"; 8653// if (lastVerticalLine) lastVerticalLine.style.display = "none"; 8654// } else { 8655// console.log("Closing hamburger menu"); 8656// document.body.classList.remove('hamburger__open'); 8657// } 8658// } 8659 8660// // Function for account menu 8661// function toggleAccountMenu(event) { 8662// event.preventDefault(); 8663// event.stopPropagation(); 8664 8665// const accountMenu = document.getElementById('myAccountMenu'); 8666// const isCurrentlyOpen = accountMenu && !accountMenu.hidden && accountMenu.style.display !== 'none'; 8667 8668// // Close hamburger menu if it's open 8669// document.body.classList.remove('hamburger__open'); 8670 8671// // Close account menu first 8672// if (accountMenu) { 8673// accountMenu.style.display = 'none'; 8674// accountMenu.hidden = true; 8675// } 8676 8677// // Reset account toggle button state 8678// const accountToggle = document.getElementById('accountToggleLink'); 8679// if (accountToggle) { 8680// accountToggle.classList.remove('active'); 8681// accountToggle.setAttribute('aria-expanded', 'false'); 8682// } 8683 8684// // If the account menu wasn't open, open it 8685// if (!isCurrentlyOpen && accountMenu) { 8686// accountMenu.style.display = 'block'; 8687// accountMenu.hidden = false; 8688 8689// // Set button state 8690// if (accountToggle) { 8691// accountToggle.classList.add('active'); 8692// accountToggle.setAttribute('aria-expanded', 'true'); 8693// } 8694// } 8695// } 8696 8697// // DODAJ tylko jeden event listener dla każdego menu: 8698// document.addEventListener('DOMContentLoaded', function() { 8699// // Hamburger menu - znajdź wÅaÅciwy przycisk 8700// let toggleMenus = document.querySelectorAll(".menu__toggle"); 8701// let toggleMenu = toggleMenus[1]; // lub [0] - sprawdź który to wÅaÅciwy 8702 8703// if (toggleMenu) { 8704// // UsuÅ wszystkie poprzednie event listenery 8705// toggleMenu.removeEventListener("click", toggleHamburger); 8706// toggleMenu.onclick = null; 8707 8708// // Dodaj nowy event listener 8709// toggleMenu.addEventListener("click", toggleHamburger); 8710// } 8711 8712// // Account menu toggle 8713// const accountToggle = document.getElementById('accountToggleLink'); 8714// if (accountToggle) { 8715// accountToggle.addEventListener('click', toggleAccountMenu); 8716// } 8717 8718// // Zamykanie menu po klikniÄciu poza nimi 8719// document.addEventListener('click', function(event) { 8720// const accountMenu = document.getElementById('myAccountMenu'); 8721// const hamburgerMenu = document.querySelector('.hamburger'); 8722// const accountToggle = document.getElementById('accountToggleLink'); 8723 8724// // Sprawdź wszystkie przyciski hamburger 8725// let isClickOnHamburgerButton = false;
8726// document.querySelectorAll('.menu__toggle').forEach(btn => { 8727// if (btn.contains(event.target)) { 8728// isClickOnHamburgerButton = true; 8729// } 8730// }); 8731 8732// // JeÅli klikniÄcie jest poza menu i przyciskami 8733// if (!accountMenu?.contains(event.target) && 8734// !accountToggle?.contains(event.target) && 8735// !hamburgerMenu?.contains(event.target) && 8736// !isClickOnHamburgerButton) { 8737 8738// // Zamknij oba menu 8739// document.body.classList.remove('hamburger__open'); 8740// if (accountMenu) { 8741// accountMenu.style.display = 'none'; 8742// accountMenu.hidden = true; 8743// } 8744// if (accountToggle) { 8745// accountToggle.classList.remove('active'); 8746// accountToggle.setAttribute('aria-expanded', 'false'); 8747// } 8748// } 8749// }); 8750// }); 8751 8752 8753 8754 8755// // Added 8756// function toggleAccountMenu(event) { 8757// event.preventDefault(); 8758// event.stopPropagation(); 8759 8760// const accountMenu = document.getElementById('myAccountMenu'); 8761// const isCurrentlyOpen = accountMenu && !accountMenu.hidden && accountMenu.style.display !== 'none'; 8762 8763// // Close hamburger menu if it's open 8764// document.body.classList.remove('hamburger__open'); 8765 8766// // Close account menu first 8767// if (accountMenu) { 8768// accountMenu.style.display = 'none'; 8769// accountMenu.hidden = true; 8770// } 8771 8772// // Reset account toggle button state 8773// const accountToggle = document.getElementById('accountToggleLink'); 8774// if (accountToggle) { 8775// accountToggle.classList.remove('active'); 8776// accountToggle.setAttribute('aria-expanded', 'false'); 8777// } 8778 8779// // If the account menu wasn't open, open it 8780// if (!isCurrentlyOpen && accountMenu) { 8781// accountMenu.style.display = 'block'; 8782// accountMenu.hidden = false; 8783 8784// // Set button state 8785// if (accountToggle) { 8786// accountToggle.classList.add('active'); 8787// accountToggle.setAttribute('aria-expanded', 'true'); 8788// } 8789// } 8790// } 8791 8792// // Event listener for account menu 8793// document.addEventListener('DOMContentLoaded', function() { 8794// const accountToggle = document.getElementById('accountToggleLink'); 8795// if (accountToggle) { 8796// accountToggle.addEventListener('click', toggleAccountMenu); 8797// } 8798// }); 8799 8800 8801}); 8802 8803window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8804 8805 8806 // document.addEventListener('DOMContentLoaded', function() { 8807// console.log('DOM loaded'); 8808 8809// //search element 8810// const button = document.querySelector('.live-cta__button'); 8811 8812// if (button) { 8813// console.log('Element found'); 8814// console.log('Element:', button); 8815// console.log('Class:', button.className); 8816 8817// button.addEventListener('click', function(e) { 8818// e.preventDefault(); 8819 8820// console.log('clicked Watch Live!'); 8821 8822 8823// // Toggle class active 8824// this.classList.toggle('active'); 8825 8826// console.log('class after toggle:', this.className); 8827// console.log('class active?', this.classList.contains('active')); 8828// }); 8829// } else { 8830// console.error('no button .live-cta__button'); 8831 8832// } 8833// }); 8834 8835 8836}); 8837 8838window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8839 8840 8841 // PRIMARY NAV 8842let primary_nav = document.querySelector('.topbar ~ .navbar .nav') || document.querySelector('.topbar-wrapper ~ .navbar .nav'); 8843let primary_leftArrow = document.querySelector('.nav--arrows.primary--nav__arrow.left'); 8844let primary_rightArrow = document.querySelector('.nav--arrows.primary--nav__arrow.right'); 8845let primary_navItems = window.innerWidth > 768 ? document.querySelectorAll('.topbar ~ .navbar .nav .nav--item') : document.querySelectorAll('.topbar-wrapper ~ .navbar .nav .nav--item'); 8846 8847// SECONDARY NAV 8848let secondary_nav = document.querySelector('.topbar ~ .navbar .nav .nav--item.active .secondary--nav .list'); 8849let secondary_leftArrow = document.querySelector('.nav--arrows.secondary--nav__arrow.left'); 8850let secondary_rightArrow = document.querySelector('.nav--arrows.secondary--nav__arrow.right'); 8851let secondary_navItems = window.innerWidth > 768 ? secondary_nav.querySelectorAll('.list__item') : null 8852 8853function scrollToItem(item, nav, rightArrow, leftArrow) { 8854 if (item) { 8855 const navRect = nav.getBoundingClientRect(); 8856 const itemRect = item.getBoundingClientRect(); 8857 8858 const scrollLeft = nav.scrollLeft + (itemRect.left - navRect.left); 8859 const maxScroll = nav.scrollWidth - nav.clientWidth; 8860 const targetScroll = Math.min(scrollLeft, maxScroll); 8861 8862 nav.scrollTo({ 8863 left: targetScroll, 8864 behavior: 'smooth' 8865 }); 8866 8867 // ONLY DESKTOP 8868 if (window.innerWidth > 768) {
8869 if (targetScroll === 0) { 8870 rightArrow.classList.remove("hidden"); 8871 } else { 8872 leftArrow.classList.remove("hidden"); 8873 rightArrow.classList.remove("hidden"); 8874 } 8875 } 8876 } 8877} 8878 8879function scrollToActiveItem() { 8880 const primary_activeItem = document.querySelector('.topbar ~ .navbar .nav .nav--item.active') || document.querySelector('.topbar-wrapper ~ .navbar .nav .nav--item.active'); 8881 const secondary_activeItem = window.innerWidth > 768 ? secondary_nav.querySelector('.list__item.active') : null; 8882 8883 if (primary_activeItem) { 8884 scrollToItem(primary_activeItem, primary_nav, primary_rightArrow, primary_leftArrow); 8885 } 8886 if (secondary_activeItem) { 8887 scrollToItem(secondary_activeItem, secondary_nav, secondary_rightArrow, secondary_leftArrow); 8888 } 8889} 8890 8891function updateArrows(nav, leftArrow, rightArrow) { 8892 const scrollLeft = nav.scrollLeft; 8893 const maxScroll = nav.scrollWidth - nav.clientWidth; 8894 8895 // Hide left arrow if at the start (with small threshold) 8896 if (leftArrow) { 8897 if (scrollLeft <= 1) { 8898 leftArrow.classList.add("hidden"); 8899 } else { 8900 leftArrow.classList.remove("hidden"); 8901 } 8902 } 8903 8904 // Hide right arrow if at the end (with small threshold) 8905 if (rightArrow) { 8906 if (scrollLeft >= maxScroll - 1) { 8907 rightArrow.classList.add("hidden"); 8908 } else { 8909 rightArrow.classList.remove("hidden"); 8910 } 8911 } 8912} 8913 8914function initScroll() { 8915 8916 if (!primary_nav) return; 8917 8918 // Scroll to active item on load 8919 scrollToActiveItem(); 8920 8921 // Add click listeners to nav items 8922 primary_navItems.forEach(function(item) { 8923 item.addEventListener('click', function(e) { 8924 primary_navItems.forEach(function(i) { 8925 i.classList.remove('active'); 8926 }); 8927 item.classList.add('active'); 8928 scrollToItem(item); 8929 }); 8930 }); 8931 8932 // Add scroll listener to update arrows | ONLY DESKTOP 8933 if (window.innerWidth > 768) { 8934 primary_nav.addEventListener('scroll', function() { 8935 updateArrows(primary_nav, primary_leftArrow, primary_rightArrow) 8936 }); 8937 secondary_nav.addEventListener('scroll', function() { 8938 updateArrows(secondary_nav, secondary_leftArrow, secondary_rightArrow); 8939 }); 8940 8941 // Add click listeners to arrows 8942 if (primary_leftArrow) { 8943 primary_leftArrow.addEventListener('click', function() { 8944 primary_nav.scrollBy({ left: -(primary_nav.clientWidth), behavior: 'smooth' }); 8945 }); 8946 } 8947 8948 if (primary_rightArrow) { 8949 primary_rightArrow.addEventListener('click', function() { 8950 primary_nav.scrollBy({ left: primary_nav.clientWidth, behavior: 'smooth' }); 8951 }); 8952 } 8953 8954 if (secondary_leftArrow) { 8955 secondary_leftArrow.addEventListener('click', function() { 8956 secondary_nav.scrollBy({ left: -(secondary_nav.clientWidth), behavior: 'smooth' }); 8957 }); 8958 } 8959 8960 if (secondary_rightArrow) { 8961 secondary_rightArrow.addEventListener('click', function() { 8962 secondary_nav.scrollBy({ left: secondary_nav.clientWidth, behavior: 'smooth' }); 8963 }); 8964 } 8965 8966 updateArrows(primary_nav, primary_leftArrow, primary_rightArrow); 8967 updateArrows(secondary_nav, secondary_leftArrow, secondary_rightArrow); 8968 8969 window.addEventListener('resize', function() { 8970 updateArrows(primary_nav, primary_leftArrow, primary_rightArrow) 8971 updateArrows(secondary_nav, secondary_leftArrow, secondary_rightArrow) 8972 }); 8973 } 8974} 8975 8976setTimeout(() => { 8977 initScroll(); 8978}, 700) 8979 8980// reset active to HOME when clicking in LOGO 8981REBELMOUSE_STDLIB.createElementChangeListener(".site-logo a", function(button){ 8982 button.addEventListener("click", () => { 8983 sessionStorage.setItem("active_pri_nav_item", "pri-nav-1") 8984 sessionStorage.setItem("active_sec_nav_item", "pri-nav-1") 8985 }) 8986}) 8987 8988 8989}); 8990 8991window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 8992 8993 8994 // Make tp available or use existing one if already loaded 8995tp = []; 8996 8997tp.push([ 8998 'addHandler', 8999 'customEvent', 9000 function (e) { 9001 // 1. refresh page on ad-blocker Done button 9002 if (e.customEventName == 'offer-close-modal-done') { 9003 location.reload(); 9004 } 9005 9006 // 2. reload page on "already has access modal" Reload button 9007 if (e.customEventName == 'custom-reload') { 9008 location.reload(); 9009 } 9010 9011 // 3. take the user back to Homepage on "non-personalised advertising" 9012 if (e.customEventName == 'return-home') { 9013 // drop browser cookie 9014 const COOKIE = 'sp_subscribed_status'; 9015 document.cookie = COOKIE + '=true; path=/;'; 9016 console.log('cookie has been set'); 9017 9018 // rejectAll 9019 (function () { 9020 __tcfapi('postRejectAll', 2, function (postRejectAllResponse, success) { 9021 // Custom callback code can be included here 9022 console.log('postRejectAllResponse: ', postRejectAllResponse); 9023 console.log('postRejectAllResponse was successful: ' + success); 9024 }); 9025 })(); 9026 console.log('rejectAll from TCF API'); 9027 9028 // return home 9029 document.location = '/'; 9030 } 9031 9032 // 4. abandon and take user back to Homepage on "non-personalised advertising" 9033 if (e.customEventName == 'abandon-purchase') { 9034 // return home 9035 document.location = '/'; 9036 } 9037 9038 // 5. navigate user to my-account 9039 if (e.customEventName == 'go-to-my-account') { 9040 console.log('go-to-my-account custom event occured'); 9041 document.location = '/my-account'; 9042 } 9043 9044 // 6. Fathers Day 9045 if (e.customEventName == 'fathers-day-promo-cta') { 9046 console.log('checking fathers day pa event'); 9047 pa.sendEvent(e.customEventName, { 9048 entered: 'true', 9049 consent_type: 'consent.impression', 9050 }); 9051 } 9052 9053 // 7. Monkey Patch on Piano Experiences - Login 9054 if (e.customEventName == 'trigger-login') { 9055 console.log('Dwai - Inder testing Login'); 9056 window.gbnID.openLoginModal(); 9057 } 9058 9059 // 8. Monkey Patch on Piano Experiences - Register 9060 if (e.customEventName == 'trigger-register') { 9061 console.log('Dwai - Inder testing Register'); 9062 window.gbnID.openLoginModal({ registration: true }); 9063 } 9064 }, 9065]); 9066 9067 9068}); 9069 9070window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9071 9072 9073 // Make tp available or use existing one if already loaded 9074tp = []; 9075 9076tp.push([ 9077 'addHandler', 9078 'customEvent', 9079 function (e) { 9080 const customEventName = e?.customEventName; 9081 if (!customEventName) return; 9082 9083 // Handling Non Newsletter Custom Events 9084 switch (customEventName) { 9085 case 'piano-google-follow': 9086 pa.sendEvent('goal.completed', { goal_type: customEventName }); 9087 console.log('Google Follow Goal Set'); 9088 return; 9089 9090 case 'ios-app-promo': 9091 pa.sendEvent('goal.completed', { goal_type: customEventName }); 9092 console.log('Download iOS App Goal Set'); 9093 return; 9094 9095 case 'android-app-promo': 9096 pa.sendEvent('goal.completed', { goal_type: customEventName }); 9097 console.log('Download Android App Goal Set'); 9098 return; 9099 9100 case 'desktop-app-promo': 9101 pa.sendEvent('goal.completed', { goal_type: customEventName }); 9102 console.log('Download Desktop Goal Set'); 9103 return; 9104 } 9105 9106 // Ensure it is a Newsletter Custom Event: 9107 // Newsletter must end with "newsletter-signup-submit" 9108 if (!customEventName.endsWith('newsletter-signup-submit')) return; 9109 9110 // Newsletter must match format: "{section}-newsletter-signup-submit" 9111 if (!/^[a-z]+-newsletter-signup-submit$/.test(customEventName)) return; 9112 9113 // Section comes from the first part of the Custom Event 9114 let section = customEventName.split('-')[0]; 9115 if (!section) return; 9116 9117 // 1. Set goal.completed for newsletter signup 9118 pa.sendEvent('goal.completed', { goal_type: `${section}-newsletter-signup` }); 9119 console.log(`Goal set: ${section}-newsletter-signup`); 9120 9121 // 2. Is user logged in? 9122 const isUserLoggedIn = tp.pianoId.getUser(); 9123 9124 // If YES - First assign to correct Mailing List 9125 const mailing_lists = { 9126 royal: '[6722]', 9127 news: '[6723]', 9128 finance: '[6724]', 9129 motoring: '[6725]', 9130 politics: '[6726]', 9131 celebrity: '[6728]', 9132 opinion: '[6730]', 9133 diet: '[7290]', 9134 food: '[7291]', 9135 gardening: '[7292]', 9136 health: '[7293]', 9137 property: '[7294]', 9138 tech: '[7295]', 9139 travel: '[7296]', 9140 sport: '[10761]', 9141 }; 9142 9143 const sqids = mailing_lists[section]; 9144 let userEmail = ''; 9145 9146 // Logged in users - assign to mailing list 9147 if (isUserLoggedIn) { 9148 // Get user email directly from tp 9149 tp.pianoId.loadExtendedUser({ 9150 formName: '', 9151 extendedUserLoaded: function (data) { 9152 userEmail = data.email; 9153 9154 // 3. Assign user to mailing list (logged in users ONLY) 9155 assignMailingList(userEmail, sqids); 9156 9157 // 4. setNewsletter in Pushwoosh (for all users) 9158 setNewsletterTagInPw(userEmail, section); 9159 }, 9160 }); 9161 } else { 9162 // Get user email from Newsletter form 9163 userEmail = e.params.email; 9164 9165 // 4. setNewsletter in Pushwoosh (for all users) 9166 setNewsletterTagInPw(userEmail, section); 9167 } 9168 9169 // HELPER FUNCTIONS 9170 // Assign user to mailing list 9171 async function assignMailingList(userEmail, sqids) {
9172 try { 9173 const response = await fetch( 9174 `https://www.gbnews.com/r/kappa/api/v2/reader/piano_assign_user_mailingList?cache=${Date.now()}`, 9175 { 9176 method: 'POST', 9177 headers: { 'Content-Type': 'application/json' }, 9178 credentials: 'omit', 9179 body: JSON.stringify({ 9180 email: userEmail, 9181 sqids: sqids, 9182 }), 9183 }, 9184 ); 9185 9186 if (!response.ok) { 9187 throw new Error('piano_assign_user_mailingList request failed'); 9188 } 9189 9190 const data = await response.json(); 9191 console.log('assignMailingList', data); 9192 } catch (error) { 9193 console.error(error); 9194 } 9195 } 9196 9197 // update Newsletter tags in Pushwoosh 9198 async function setNewsletterTagInPw(userEmail, section) { 9199 try { 9200 const response = await fetch( 9201 `https://www.gbnews.com/r/kappa/api/v2/reader/PW_Set_Newsletter_Tag?cache=${Date.now()}`, 9202 { 9203 method: 'POST', 9204 headers: { 'Content-Type': 'application/json' }, 9205 credentials: 'omit', 9206 body: JSON.stringify({ userEmail, newsletter: section }), 9207 }, 9208 ); 9209 9210 if (!response.ok) { 9211 throw new Error('setNewsletterTagInPw request failed'); 9212 } 9213 9214 const data = await response.json(); 9215 console.log('setNewsletterTagInPw', data); 9216 } catch (error) { 9217 console.error(error); 9218 } 9219 } 9220 }, 9221]); 9222 9223 9224}); 9225 9226window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9227 9228 9229 window.REBELMOUSE_STDLIB.loadExternalScript("//cdn.viafoura.net/entry/index.js", function() { 9230 9231 const COMMENTS_HEADING = "Have Your Say"; 9232const FEATURED_COMMENTS = "Member Comments"; 9233const COMMENTS_TERMS_HTML = 'By commenting you agree to <a href="/terms/community-rule-book">our community rules</a>.'; 9234 9235// Viafoura 9236// Make vfQ available or use existing one if already loaded 9237window.vfQ = window.vfQ || []; 9238window.vfQ.push(() => { 9239 9240 // Viafoura is loaded and window.vf is available
9241 window.vf.$subscribe('commenting', 'loaded', function(el) { 9242 9243 // change "Comments" to "Have Your Say" 9244 var headings = el.getElementsByClassName("vf-comment-header__heading") 9245 if (headings.length) { 9246 headings[0].innerHTML = COMMENTS_HEADING; 9247 } 9248 9249 // change "Featured Comments" to "Member Comments" on watch/live 9250 if (window.location.href.includes("https://www.gbnews.com/watch/live")) { 9251 let featComments = el.getElementsByClassName("vf-label-text vf-nav-tab-button__text"); 9252 if (featComments.length) { 9253 featComments[0].innerHTML = FEATURED_COMMENTS; 9254 } 9255 9256 } 9257 9258 // Add the terms&conditions to the bottom of all commenting widgets 9259 var forms = el.getElementsByClassName("vf-post-form"); 9260 if (forms.length) { 9261 var form = forms[0]; 9262 let terms = document.createElement('p'); 9263 terms.classList.add('gbn-terms'); 9264 terms.innerHTML = COMMENTS_TERMS_HTML; 9265 form.after(terms); 9266 } 9267 }); 9268}); 9269 9270 }); 9271 9272 9273}); 9274 9275window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9276 9277 9278 window.addEventListener('appinstalled', () => { 9279 window.dataLayer.push({ 9280 'event': 'pwa_app_install', 9281 }); 9282}); 9283 9284window.addEventListener('beforeinstallprompt', (e) => { 9285 window.dataLayer.push({ 9286 'event': 'pwa_app_prompt', 9287 }); 9288}); 9289 9290 9291}); 9292 9293window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9294 9295 9296 // Prevent scroll position on reload 9297// more info - https://stackoverflow.com/questions/70188241/history-scrollrestoration-manual-doesnt-prevent-safari-from-restoring-scrol 9298 9299window.addEventListener("pageshow", (e) => { 9300 if (e.persisted) { 9301 window.scrollTo(0, 0); 9302 } 9303}); 9304 9305if ('scrollRestoration' in history) { 9306 history.scrollRestoration = 'manual'; 9307} 9308 9309 9310}); 9311 9312window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9313 9314 9315 const supportBanner = document.getElementById('support-banner'); 9316const fixedBanner = supportBanner.cloneNode(true); 9317 9318fixedBanner.setAttribute('id', 'support-banner-fixed'); 9319 9320if (document.querySelector('.main--column, .main .content')) { 9321 document.querySelector('.main--column, .main .content').appendChild(fixedBanner); 9322} 9323 9324window.addEventListener('scroll', showBanner); 9325 9326 9327function showBanner() { 9328 if (supportBanner && fixedBanner) { 9329 if (window.scrollY > supportBanner.offsetTop + supportBanner.offsetHeight) { 9330 if (!fixedBanner.classList.contains('show-banner')) 9331 fixedBanner.classList.add('show-banner'); 9332 } else { 9333 if (fixedBanner.classList.contains('show-banner')) 9334 fixedBanner.classList.remove('show-banner'); 9335 } 9336 } 9337} 9338 9339showBanner(); 9340 9341 9342}); 9343 9344window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9345 9346 9347 const articleId = String(window.dataLayer[0].cd12); 9348const pageLink = window.location.href; 9349 9350let uid; 9351let likedPosts = []; 9352let likedPostSections = {}; 9353 9354const likeIcon = document.querySelector('#article-like-button'); 9355const likeIconImg = document.querySelector('#article-like-button img'); 9356 9357// checks the post's primary section 9358const currentPostPrimarySection = !!'588563271' ? JSON.parse('588563271') : null; 9359 9360// check the primary section's parent section 9361const currentPostPrimarySectionParent = currentPostPrimarySection && JSON.parse('0'); 9362 9363const currentPostSections = !!currentPostPrimarySection ? [currentPostPrimarySection] : null; 9364 9365currentPostPrimarySectionParent && currentPostSections.push(currentPostPrimarySectionParent); 9366 9367// initialise Gamification window object 9368window.gbnCE = window.gbnCE || []; 9369let readEventPushed = false; 9370 9371// Helper function for Likes 9372const addPush = (eventType, contentType) => { 9373 window.gbnCE.push(['event', eventType, contentType, pageLink]); 9374 return; 9375}; 9376 9377// Get existing topic/section custom field 9378async function getExistingLikedPostTopics() { 9379 const likedPostsTopics = window.gbnID._currentUser?.interests?.likedPostsTopics || []; 9380 9381 likedPostSections = {}; 9382 9383 likedPostsTopics.forEach((item) => { 9384 const [sectionId, score] = item.split(':'); 9385 9386 if (sectionId && score !== undefined) { 9387 likedPostSections[String(sectionId)] = Number(score); 9388 } 9389 }); 9390 9391 console.log('gbnidExistingLikedPostSections', likedPostSections); 9392 return likedPostSections; 9393} 9394 9395const updateLikedTopics = (isLiked = true) => { 9396 // FIX: if the object is empty it will show an empty object and never return null 9397 if (!likedPostSections || typeof likedPostSections !== 'object') { 9398 likedPostSections = {}; 9399 } 9400 9401 console.log('updateLikedTopics called:', { 9402 isLiked, 9403 currentPostSections, 9404 likedPostSections: JSON.stringify(likedPostSections), 9405 }); 9406 9407 if (!currentPostSections) return {}; 9408 9409 const sectionsToExclude = (localStorage.all_sections && JSON.parse(localStorage.all_sections).privateSections) || { 9410 0: 'home', 9411 }; 9412 9413 currentPostSections.forEach((id) => { 9414 // change from .map (because map created a new array) to .forEach 9415 console.log('Processing section:', id, 'current value:', likedPostSections[id]); 9416 9417 if (sectionsToExclude[id]) { 9418 console.log('Excluding section:', id); 9419 delete likedPostSections[id]; 9420 return; 9421 } 9422 9423 const scoreToBeAdded = id === currentPostPrimarySection ? 2 : 1; 9424 const currentScore = likedPostSections[id] || 0; 9425 9426 likedPostSections[id] = isLiked ? currentScore + scoreToBeAdded : Math.max(0, currentScore - scoreToBeAdded); 9427 console.log('Updated section:', id, 'new value:', likedPostSections[id]); 9428 }); 9429 9430 // delete sections that have Zero or negative likes 9431 for (const key in likedPostSections) { 9432 if (likedPostSections[key] <= 0) { 9433 delete likedPostSections[key]; 9434 } 9435 } 9436 9437 const dataToSave = Object.entries(likedPostSections || {}).map(([k, v]) => `${k}:${v}`); 9438 console.log(' Data to save:', dataToSave); 9439 9440 return dataToSave; 9441}; 9442 9443async function updateLikedTopicsOnGbnid(likedPostsTopics) { 9444 try { 9445 console.log('likedPostsTopics from updateLikedTopicsOnGbnid function', likedPostsTopics);
9446 await window.gbnID.profile.updateLikedTopics(likedPostsTopics); 9447 } catch (error) { 9448 console.error(error); 9449 } 9450} 9451 9452// Save the topic scoring custom field 9453const encodeCustomField = (isLiked = true) => { 9454 return updateLikedTopics(isLiked); 9455}; 9456 9457async function updateLikedPosts(isLiked) { 9458 try { 9459 if (isLiked) { 9460 likedPosts = [...new Set([...likedPosts, articleId])]; 9461 } else { 9462 likedPosts = likedPosts.filter((id) => id !== articleId); 9463 } 9464 9465 console.log('Updating liked posts', likedPosts); 9466 9467 await window.gbnID.profile.updateLikedPosts(likedPosts); 9468 9469 console.log('Liked posts updated', likedPosts); 9470 9471 // Update topic/section scoring 9472 const encodedTopics = encodeCustomField(isLiked); 9473 await updateLikedTopicsOnGbnid(encodedTopics); 9474 9475 if (isLiked) { 9476 likeIconImg.setAttribute('src', 'https://assets.rbl.ms/61112481/origin.png'); 9477 9478 // Push Like to Gamification 9479 addPush('like', 'article'); 9480 console.log('gbnCE push', window.gbnCE); 9481 } else { 9482 likeIconImg.setAttribute('src', 'https://assets.rbl.ms/61112480/origin.png'); 9483 9484 // Push Dislike to Gamification 9485 addPush('dislike', 'article'); 9486 console.log('gbnCE push', window.gbnCE); 9487 } 9488 } catch (error) { 9489 console.error('Failed to update liked posts:', error); 9490 } 9491} 9492 9493async function init() { 9494 // const user = window.gbnID._currentUser; 9495 const user = await window.gbnID.getCurrentUser(); // safer way 9496 9497 if (user) { 9498 uid = user.uid; 9499 9500 // Get liked posts from GBN ID 9501 likedPosts = (user.interests?.likedPosts || []).map(String); 9502 console.log('existingLikedPosts', likedPosts); 9503 9504 await getExistingLikedPostTopics(); // function will update likedPostSections 9505 9506 // Set initial icon 9507 if (likedPosts.includes(articleId)) { 9508 likeIconImg.setAttribute('src', 'https://assets.rbl.ms/61112481/origin.png'); 9509 } else { 9510 likeIconImg.setAttribute('src', 'https://assets.rbl.ms/61112480/origin.png'); 9511 } 9512 9513 likeIcon.addEventListener('click', async () => { 9514 // user is not logged in 9515 if (!window.gbnID._currentUser) { 9516 window.gbnID.openLoginModal(); 9517 return; 9518 } 9519 9520 const isLiked = likedPosts.includes(articleId); 9521 await updateLikedPosts(!isLiked); 9522 }); 9523 } else { 9524 // user is not logged in 9525 likeIcon.addEventListener('click', () => { 9526 window.gbnID.openLoginModal(); 9527 }); 9528 } 9529} 9530 9531// Initialise GBN ID 9532window.gbnID = window.gbnID || []; 9533 9534gbnID.push([ 9535 'init', 9536 async function () { 9537 try { 9538 await init(); 9539 } catch (err) { 9540 console.error(err); 9541 } 9542 }, 9543]); 9544 9545 9546}); 9547 9548window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9549 9550 9551 // initialise Gamification window object 9552window.gbnCE = window.gbnCE || []; 9553let readEventPushed = false; 9554 9555// const article = document.querySelector('article[elid]'); 9556// const articleId = article ? article.getAttribute('elid') : null; 9557 9558const pageLink = window.location.href; 9559 9560const targetEl = document.querySelector('.posts-custom .all-related-sections'); 9561 9562if (targetEl) { 9563 const observer = new IntersectionObserver( 9564 (entries) => { 9565 entries.forEach((entry) => { 9566 if (entry.isIntersecting && !readEventPushed) { 9567 window.gbnCE.push(['event', 'read', 'article', pageLink]); 9568 console.log('gbnCE push', window.gbnCE); 9569 9570 readEventPushed = true; 9571 observer.disconnect(); // stop observing after first trigger 9572 } 9573 }); 9574 }, 9575 { 9576 threshold: 0.1, // trigger when ~10% of the element is visible 9577 }, 9578 ); 9579 9580 observer.observe(targetEl); 9581} 9582 9583 9584}); 9585 9586window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9587 9588 9589 function createAndInsertCommentsIcon(num) { 9590 9591 const social_wrappers = document.querySelectorAll(".shares-container"); 9592 const social_wrapper = social_wrappers[num]; 9593 9594 if (document.querySelector(".commentIcon")) { 9595 // console.log("YOU HAVE YOUR COMMENTS ICON SLOT") 9596 let commentIcon = document.querySelector(".commentIcon"); 9597 commentIcon.id = "commentIcon-" + num; 9598 9599 // Creating comment count span element 9600 // console.log("first span element") 9601 let spanElement = document.createElement("span"); 9602 spanElement.id = "comment-count-" + num; 9603 commentIcon.appendChild(spanElement); 9604 // console.log("span el added") 9605 9606 // Create "Comment" span 9607 let commentSpan = document.createElement("span"); 9608 commentSpan.id = "comment-span-" + num; 9609 commentSpan.innerText = "Comment"; 9610 commentIcon.appendChild(commentSpan); 9611 9612 // Create "Comments" (with an S) span
9613 let commentsSpan = document.createElement("span"); 9614 commentsSpan.id = "comments-span-" + num; 9615 commentsSpan.innerText = "Comments"; 9616 commentIcon.appendChild(commentsSpan); 9617 9618 // Appending commentIcon button to social_wrapper 9619 // console.log("social wrapper", social_wrapper); 9620 // console.log("commentIcon", commentIcon); 9621 social_wrapper.appendChild(commentIcon); 9622 } else { 9623 // console.log("YOU DO NOT HAVE YOUR COMMENT SSLOT") 9624 } 9625 9626 9627} 9628 9629createAndInsertCommentsIcon(0); 9630 9631 9632}); 9633 9634window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9635 9636 9637 let commentsWidget = document.getElementById('comments'); 9638let scrollToCommentsIcon = document.querySelectorAll(".commentIcon"); 9639let youMayLike = document.querySelector(".you-may-like__wrapper"); 9640 9641let firstClick = true; // flag to track first click 9642 9643function scrollToElementWithOffset(element, offset = 0, duration = 800) { 9644 let start = window.scrollY; 9645 let end = element.getBoundingClientRect().top + start - offset; 9646 let distance = end - start; 9647 let startTime = performance.now(); 9648 9649 function animateScroll(currentTime) { 9650 let elapsed = currentTime - startTime; 9651 let progress = Math.min(elapsed / duration, 1); 9652 window.scrollTo(0, start + distance * progress); 9653 if (progress < 1) requestAnimationFrame(animateScroll); 9654 } 9655 9656 requestAnimationFrame(animateScroll); 9657} 9658 9659scrollToCommentsIcon.forEach(icon => { 9660 icon.addEventListener('click', () => { 9661 if (firstClick && youMayLike) { 9662 // First click and "You may like" exists 9663 youMayLike.scrollIntoView({ behavior: 'smooth' }); 9664 9665 setTimeout(() => { 9666 scrollToElementWithOffset(commentsWidget, 50, 300); 9667 }, 4000); 9668 9669 firstClick = false; // subsequent clicks skip "You may like" 9670 } else { 9671 // Directly scroll to comments with offset 9672 scrollToElementWithOffset(commentsWidget, 50, 300); 9673 firstClick = false; // ensure firstClick is false even if youMayLike doesn't exist 9674 } 9675 }); 9676}); 9677 9678 9679}); 9680 9681window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9682 9683 9684 function getCommentCount (value) { 9685 const roundedTime = 1721838910000; 9686 9687 fetch(`https://www.gbnews.com/r/kappa/api/v2/reader/new_comment_count_PROD?name=${value}&cache=${roundedTime}`, { 9688 method: 'GET', 9689 credentials: "omit" 9690 }) 9691 9692 .then(response => { 9693 if(response.ok) { 9694 return response.json(); 9695 } else { 9696 throw new Error('API request failed'); 9697 } 9698 }) 9699 .then(data => { 9700 // console.log(`comment count is ${data}`); // data is a number 9701 9702 const isMobile = window.innerWidth <= 768; 9703 9704 // TOP OF THE PAGE 9705 let commentsDesktop = document.getElementById("comment-count-0"); 9706 let commentSpanDesktop = document.getElementById("comment-span-0");
9707 let commentsSpanDesktop = document.getElementById("comments-span-0"); 9708 let nowDesktop = document.getElementById("now-0"); 9709 9710 console.log("your data ", data) 9711 if (data == 0) { 9712 // display "Comment" and "Now!" and hide "Comments" 9713 if (isMobile) { 9714 commentSpanDesktop.style.display = "none"; 9715 commentsSpanDesktop.style.display = "none"; 9716 } else { 9717 commentSpanDesktop.style.display = "block"; 9718 commentsSpanDesktop.style.display = "none"; 9719 } 9720 9721 nowDesktop.style.display = "block"; 9722 commentsSpanDesktop.style.display = "none"; 9723 9724 commentSpanDesktopBottom.style.display = "block"; 9725 nowDesktopBottom.style.display = "block"; 9726 commentsSpanDesktopBottom.style.display = "none"; 9727 } 9728 9729 if (data == 1) { 9730 // display "Count" and "Comment" and hide "Comments" 9731 commentsDesktop.style.display = "block"; 9732 commentSpanDesktop.style.display = "block"; 9733 commentsSpanDesktop.style.display = "none"; 9734 } 9735 9736 if (data > 1) { 9737 // display "count" and "Comments" 9738 commentsDesktop.style.display = "block"; 9739 commentSpanDesktop.style.display = "none"; 9740 } 9741 9742 if (data >= 1 && data < 100) { 9743 commentsDesktop.style.padding = "0 0 0 0px"; 9744 } 9745 if (data >= 100 && data < 1000) { 9746 commentsDesktop.style.padding = "0 0 0 0px"; 9747 } 9748 9749 if (data >= 1000) { 9750 // Round count to the nearest 100 9751 data = Math.round(data / 100) * 100; 9752 data = (data / 1000).toFixed(1) + "K"; 9753 } 9754 9755 // update the icon's with the above 9756 if (commentsDesktop) { 9757 commentsDesktop.innerHTML = data; 9758 commentsDesktop.textContent = data; 9759 commentsDesktop.value = data; 9760 } 9761 9762 }) 9763} 9764 9765// look up Meta element for the container_id 9766const metaElement = document.querySelector('meta[name="vf:container_id"]'); 9767if (metaElement) { 9768 const contentValue = metaElement.getAttribute('content'); 9769 // call comment_count API 9770 getCommentCount(contentValue); 9771 // console.log(getCommentCount); 9772} else { 9773 // console.log('Meta element not found'); 9774} 9775 9776 9777}); 9778 9779window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9780 9781 9782 var embedScript = document.createElement('script'); 9783embedScript.src = 'https://widgets.opinary.com/embed.js'; 9784if (embedScript) { 9785 embedScript.onerror = () => { 9786 const w = document.querySelector('.opinary-widget-embed'); 9787 if (!w) { 9788 return 9789 } 9790 const link = document.createElement('div'); 9791 link.id = "opinary-link-container"; 9792 link.classList.add("opinary-link-container"); 9793 link.innerHTML = `<img class="opinary-icon" src="https://assets.rbl.ms/55730280/origin.png" alt="opinary link icon"><a class="opinary-link-text" target="_blank" href="https://compass.opinary.com/compasses/${w.dataset.customer}/${w.dataset.poll}?adblocker=true">It looks like your browser is blocking the Poll: <u>Please open here instead</u></a>`; 9794 w.parentNode.replaceChild(link, w); 9795 }; 9796} 9797document.head.appendChild(embedScript); 9798 9799 9800}); 9801 9802window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9803 9804 9805 // const captions = document.querySelectorAll(".image-media.media-caption"); 9806// const credits = document.querySelectorAll(".image-media.media-photo-credit"); 9807 9808 9809 9810// captions.forEach((caption) => { 9811// const captionsWrapper = document.createElement("div"); 9812// captionsWrapper.classList.add("captions-wrapper"); 9813// captionsWrapper.appendChild(caption); 9814// caption.parentElement.prepend(captionsWrapper); 9815// caption.remove(); 9816// }) 9817 9818 9819 9820// if (document.querySelector(".captions-wrapper")) { 9821// captionsWrappers = document.querySelectorAll(".captions-wrapper"); 9822// credits.forEach((credit, i) => { 9823// captionsWrappers[i].appendChild(credit); 9824// credit.remove(); 9825// }) 9826// } 9827 9828 9829}); 9830 9831window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9832 9833 9834 const tabs = document.querySelectorAll('.tab'); 9835 const contents = document.querySelectorAll('.tab-content'); 9836
9837 tabs.forEach(tab => { 9838 tab.addEventListener('click', () => { 9839 // Remove active class from all tabs and contents 9840 tabs.forEach(t => t.classList.remove('active')); 9841 contents.forEach(c => c.classList.remove('active')); 9842 9843 // Add active to current tab and related content 9844 tab.classList.add('active'); 9845 document.getElementById(tab.dataset.tab).classList.add('active'); 9846 }); 9847}); 9848 9849 9850}); 9851 9852window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9853 9854 9855 async function loadTrendingMostRead() { 9856 try { 9857 const response = await fetch( 9858 `/res/custom_page/data.js?resource_id=generic&layout_name=MostRead` 9859 ); 9860 const posts = await response.json(); 9861 9862 // Parse the HTML string 9863 const parser = new DOMParser(); 9864 const doc = parser.parseFromString(posts.html, "text/html"); 9865 9866 // Select all headline <a> elements 9867 const headlineElements = doc.querySelectorAll(".widget__headline-text"); 9868 9869 // Select or create a container in your HTML to append these 9870 const container = document.getElementById("stories"); 9871 9872 // Loop and create <p> with number and link 9873 Array.from(headlineElements).forEach((el, index) => { 9874 const headlineText = el.textContent.trim(); 9875 const href = el.getAttribute("href"); 9876 9877 const p = document.createElement("p"); 9878 p.className = "trending-item"; 9879 9880 // Create number span 9881 const span = document.createElement("span"); 9882 span.className = "trending-article-number"; 9883 span.textContent = `${index + 1}`; 9884 9885 // Create anchor 9886 const a = document.createElement("a"); 9887 a.href = href; 9888 a.textContent = headlineText; 9889 a.className = "trending-body-text"; 9890 9891 // Append span and anchor to paragraph 9892 p.appendChild(span); 9893 p.appendChild(a); 9894 9895 // Append paragraph to container 9896 container.appendChild(p); 9897 }); 9898 9899 } catch (e) { 9900 console.error('Failed to load', e); 9901 } 9902} 9903 9904loadTrendingMostRead(); 9905 9906 9907}); 9908 9909window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9910 9911 9912 async function loadTrendingMostWatched() { 9913 try { 9914 const response = await fetch( 9915 `/res/custom_page/data.js?resource_id=generic&layout_name=MostWatched` 9916 ); 9917 const posts = await response.json(); 9918 9919 // Parse the HTML string 9920 const parser = new DOMParser(); 9921 const doc = parser.parseFromString(posts.html, "text/html"); 9922 9923 // Select all headline <a> elements 9924 const headlineElements = doc.querySelectorAll(".widget__headline-text"); 9925 9926 // Select or create a container in your HTML to append these 9927 const container = document.getElementById("videos"); 9928 9929 // Loop and create <p> with number and link 9930 Array.from(headlineElements).forEach((el, index) => { 9931 const headlineText = el.textContent.trim(); 9932 const href = el.getAttribute("href"); 9933 9934 const p = document.createElement("p"); 9935 p.className = "trending-item"; 9936 9937 // Create number span 9938 const span = document.createElement("span"); 9939 span.className = "trending-article-number"; 9940 span.textContent = `${index + 1}`; 9941 9942 // Create anchor 9943 const a = document.createElement("a"); 9944 a.href = href; 9945 a.textContent = headlineText; 9946 a.className = "trending-body-text"; 9947 9948 // Append span and anchor to paragraph 9949 p.appendChild(span); 9950 p.appendChild(a); 9951 9952 // Append paragraph to container 9953 container.appendChild(p); 9954 }); 9955 9956 } catch (e) { 9957 console.error('Failed to load', e); 9958 } 9959} 9960 9961loadTrendingMostWatched(); 9962 9963 9964}); 9965 9966window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 9967 9968 9969 async function loadYourSay() { 9970 try { 9971 const response = await fetch(`https://www.gbnews.com/r/kappa/api/v2/reader/module_yoursay`, { 9972 method: 'GET', 9973 credentials: "omit" 9974 }); 9975 const posts = await response.json(); 9976 let yourSayArticles = posts.trending; // array 9977 // console.log(yourSayArticles); 9978 9979 // Select the container in your HTML to append these 9980 const container = document.getElementById("your-say"); 9981 9982 // Loop through each article
9983 yourSayArticles.forEach((article, index) => { 9984 const headlineText = article.origin_title; 9985 const href = article.origin_url; 9986 9987 // Create <p> wrapper 9988 const p = document.createElement("p"); 9989 p.className = "trending-item"; 9990 9991 // Create number <span> 9992 const span = document.createElement("span"); 9993 span.className = "trending-article-number"; 9994 span.textContent = `${index + 1}`; 9995 9996 // Create <a> tag 9997 const a = document.createElement("a"); 9998 a.href = href; 9999 a.textContent = headlineText; 10000 a.className = "trending-body-text"; 10001 10002 // Append to container 10003 p.appendChild(span); 10004 p.appendChild(a); 10005 container.appendChild(p); 10006 }); 10007 10008 10009 } catch (e) { 10010 console.error('Failed to load', e); 10011 } 10012} 10013 10014loadYourSay(); 10015 10016 10017}); 10018 10019window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 10020 10021 10022 const articleId = window.dataLayer[0].cd12; 10023// Fill in *your* param values, as provided by Taboola: 10024// *Global* command queue for the page 10025window._taboola = window._taboola || []; 10026 10027const taboolaPush = (mode, container, placement, target_type) => { 10028 _taboola.push({ 10029 mode: mode, 10030 container: container /* The ID of the <div> container (e.g. '') */, 10031 placement: placement, 10032 target_type: target_type, 10033 }); 10034 return; 10035}; 10036 10037let accessStatusFromWindowObj5 = window.userStatus; 10038 10039if (accessStatusFromWindowObj5 !== 'member') { 10040 taboolaPush('alternating-thumbnails-stream-rmp', 'taboola-mid-article-thumbnails', 'Mid Article Thumbnails', 'mix'); 10041 10042 taboolaPush('alternating-thumbnails-a', 'taboola-below-article-thumbnails', 'Below Article Thumbnails', 'mix'); 10043} 10044 10045// // window._taboola = window._taboola || []; 10046// // _taboola.push({ 10047// // mode: 'alternating-thumbnails-a', 10048// // container: 'taboola-below-article-thumbnails', 10049// // placement: 'Below Article Thumbnails', 10050// // target_type: 'mix', 10051// // }); 10052 10053// // const paragraphs = document.querySelectorAll('.body-description p:not(small p, .evergreen-particle p)'); 10054// // if (paragraphs.length > 2) { 10055// // const video = paragraphs[2]; 10056// // const div = document.createElement('div'); 10057// // div.innerHTML = `<div id="taboola-mid-article-thumbnails"></div>`; 10058// // video.after(div); 10059// // } 10060 10061 10062}); 10063 10064window.REBELMOUSE_LOWEST_TASKS_QUEUE.push(function(){ 10065 10066 10067 REBELMOUSE_STDLIB.createElementChangeListener(".ssmp-content", function(poster) { 10068 const videoPlayer = document.querySelector('.simplestream-holder video'); 10069 let isVideoStarted = false; 10070 let playVideoInterval; 10071 10072 const handler = function() { 10073 if (!isVideoStarted) { 10074 playVideoInterval = setInterval(() => { 10075 if (videoPlayer.readyState === 4) { 10076 isVideoStarted = true; 10077 poster.removeEventListener('click', handler, true); 10078 clearInterval(playVideoInterval); 10079 return videoPlayer.play(); 10080 } 10081 }, 100); 10082 } 10083 } 10084 10085 return poster.addEventListener('click', handler, true); 10086}); 10087 10088 10089});</script>
10089</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.