Folarin Balogun received a red card for stepping awkwardly on the right ankle of Tarik Muharemović of Bosnia-Herzegovina in a 2-0 round of 32 win on Wednesday, triggering an automatic one-game suspension. U.S. President Trump called FIFA President Gianni Infantino after the game asking FIFA review the red card, and then FIFA announced Sunday that the suspension had been lifted for the round of 16 match, an extraordinary move that triggered praise from Trump and outrage from Belgium’s team. (Produced by Luke Garratt) 2 of 6 | FIFA President Gianni Infantino, right, awards President Donald Trump with the FIFA Peace Prize during the draw for the 2026 soccer World Cup at the Kennedy Center in Washington, Dec. 5, 2025. (AP Photo/Chris Carlson, File) 3 of 6 | United States’ Folarin Balogun (20) walks off the field after receiving a red card during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Jeff Chiu) 4 of 6 | Referee Raphael Claus of Brazil shows a red card to United States’ Folarin Balogun, right, during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Julio Cortez) 5 of 6 | United States’ Folarin Balogun (20) fouls Bosnia’s Tarik Muharemovic (4) during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. Balogun received a red card on the play. (AP Photo/Jeff Chiu) 6 of 6 | Bosnia’s Tarik Muharemovic (4) reacts after a tackle form United States’ Folarin Balogun (20) during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Julio Cortez) Folarin Balogun received a red card for stepping awkwardly on the right ankle of Tarik Muharemović of Bosnia-Herzegovina in a 2-0 round of 32 win on Wednesday, triggering an automatic one-game suspension. U.S. President Trump called FIFA President Gianni Infantino after the game asking FIFA review the red card, and then FIFA announced Sunday that the suspension had been lifted for the round of 16 match, an extraordinary move that triggered praise from Trump and outrage from Belgium’s team. (Produced by Luke Garratt) Add AP News as your preferred source to see more of our stories on Google. Share Share Facebook Copy Link copied Print Email X LinkedIn Bluesky Flipboard Pinterest Reddit Read More 2 of 6 | FIFA President Gianni Infantino, right, awards President Donald Trump with the FIFA Peace Prize during the draw for the 2026 soccer World Cup at the Kennedy Center in Washington, Dec. 5, 2025. (AP Photo/Chris Carlson, File) FIFA President Gianni Infantino, right, awards President Donald Trump with the FIFA Peace Prize during the draw for the 2026 soccer World Cup at the Kennedy Center in Washington, Dec. 5, 2025. (AP Photo/Chris Carlson, File) Add AP News as your preferred source to see more of our stories on Google. Share Share Facebook Copy Link copied Print Email X LinkedIn Bluesky Flipboard Pinterest Reddit Read More 3 of 6 | United States’ Folarin Balogun (20) walks off the field after receiving a red card during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Jeff Chiu) United States’ Folarin Balogun (20) walks off the field after receiving a red card during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Jeff Chiu) Add AP News as your preferred source to see more of our stories on Google. Share Share Facebook Copy Link copied Print Email X LinkedIn Bluesky Flipboard Pinterest Reddit Read More 4 of 6 | Referee Raphael Claus of Brazil shows a red card to United States’ Folarin Balogun, right, during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Julio Cortez) Referee Raphael Claus of Brazil shows a red card to United States’ Folarin Balogun, right, during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Julio Cortez) Add AP News as your preferred source to see more of our stories on Google. Share Share Facebook Copy Link copied Print Email X LinkedIn Bluesky Flipboard Pinterest Reddit Read More 5 of 6 | United States’ Folarin Balogun (20) fouls Bosnia’s Tarik Muharemovic (4) during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. Balogun received a red card on the play. (AP Photo/Jeff Chiu) United States’ Folarin Balogun (20) fouls Bosnia’s Tarik Muharemovic (4) during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. Balogun received a red card on the play. (AP Photo/Jeff Chiu) Add AP News as your preferred source to see more of our stories on Google. Share Share Facebook Copy Link copied Print Email X LinkedIn Bluesky Flipboard Pinterest Reddit Read More 6 of 6 | Bosnia’s Tarik Muharemovic (4) reacts after a tackle form United States’ Folarin Balogun (20) during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Julio Cortez) Bosnia’s Tarik Muharemovic (4) reacts after a tackle form United States’ Folarin Balogun (20) during the World Cup round of 32 soccer match between the United States and Bosnia in Santa Clara, Calif., near San Francisco, Wednesday, July 1, 2026. (AP Photo/Julio Cortez) Add AP News as your preferred source to see more of our stories on Google. Share Share Facebook Copy Link copied Print Email X LinkedIn Bluesky Flipboard Pinterest Reddit Read More By RONALD BLUM and MICHELLE L. PRICE Updated : , , Leer en español Add AP News on Google Add AP News as your preferred source to see more of our stories on Google. Share (function () { const counter = document.getElementById("scrollToComments"); const HEADER_OFFSET = 120; function findCommentsModule() { return document.querySelector('.vf3-comments, #vf-conversations, '); } function maybeShowCounter() { if (findCommentsModule()) { counter.style.display = "inline-flex"; } else { counter.style.display = "none"; } } // Show only when Viafoura is present maybeShowCounter(); // Watch DOM for late loads const observer = new MutationObserver(maybeShowCounter); observer.observe(document.documentElement, { childList: true, subtree: true }); // Scroll action counter.addEventListener("click", function () { const el = findCommentsModule(); if (!el) return; const top = el.getBoundingClientRect().top + window.scrollY - HEADER_OFFSET; window.scrollTo({ top, behavior: "smooth" }); }); })(); .thin-line-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #ccc; height: 30px; padding: 0 10px; cursor: pointer; border-radius: 5px; background: none; text-align: center; font-size: 1.4rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; color: inherit; transition: none; /* Remove animation effect */ } .thin-line-button { color: #000; background: white; } /* Remove hover effect */ .thin-line-button:hover { border: 1px solid #ccc; } .comment-icon { width: 20px; height: 20px; min-width: 20px; min-height: 20px; flex: 0 0 20px; object-fit: contain; display: inline-block; } .Page-actions-commentCounter .embed-caption { display: none; } .vf-comments-count.vf-is-logged-in { margin-left: 4px; } SEATTLE (AP) — U.S. President Donald Trump intervened on behalf of star U.S. forward Folarin Balogun, whose red-card suspension was lifted in a decision that allows him to play in a World Cup match against Belgium on Monday. A single red card can completely change a World Cup match. Here’s why it’s the most feared punishment in soccer. Produced by Nandini Gupta Balogun, the American leader with three goals in the tournament, received a red card for stepping awkwardly on the right ankle of Tarik Muharemović of Bosnia-Herzegovina in a 2-0 round of 32 win on Wednesday, triggering an automatic one-game suspension. FIFA announced Sunday that the suspension had been lifted for the round of 16 match, an extraordinary move that triggered praise from Trump and outrage from Belgium’s team. It appeared to be the first time since 1962 that a red card during a World Cup didn’t result in a suspension. Trump called FIFA president Gianni Infantino after the game asking FIFA review the red card, according to a person familiar with the call who spoke on condition of anonymity because the person was not authorized to speak publicly about the matter. “Thank you to FIFA for doing what was right, and reversing a great injustice!” Trump said in a statement on social media. Belgium gets ‘justice’ for Balogun playing with 4-1 win over US to reach World Cup quarterfinals 3 MIN READ American fans saw a night of hope turn to World Cup disappointment, in photos 1 MIN READ Balogun’s controversial return couldn’t stop the US from being knocked out by Belgium 3 MIN READ 72 The Royal Belgian Football Association (RBFA) said it was “astonished,” and Belgium coach Rudi Garcia mocked FIFA’s action. “I didn’t know that in the offices of FIFA the fifth of July was the first of April in Europe,” Garcia said through a translator in an April Fools’ Day comparison. “The Belgian federation does not defend itself, it does not protect the national team. She defends football in general, she defends her integrity, her ethics. I think it’s the first time in the history of the World Cup that there is this kind of decision.” Garcia wouldn’t respond when asked about a possible appeal to the Court of Arbitration for Sport or whether he thought Trump impacted FIFA’s action. “In order to safeguard the legitimate rights of all participating teams and to protect the fundamental principles of fair play in our sport, both at this FIFA World Cup and at future editions of the tournament, the RBFA is investigating all potential options,” the Belgian federation said in a statement. American players learned of Balogun’s availability when social media posts started popping up during the 10-minute bus ride Sunday morning from their hotel to training at the University of Washington’s Husky Soccer Stadium, where they were greeted by Dubs II, the university’s Alaskan Malamute. Balogun’s red card had been one of the World Cup’s most controversial and consequential decisions. Brazilian referee Raphael Claus didn’t initially signal a card but showed Balogun red after a video review. “If you look at the foul, it was just zero intent at all,” U.S. star Christian Pulisic said. “I felt like there was much worse ones that went on this tournament.” The U.S. Soccer Federation learned of FIFA’s action in a message sent by FIFA in its portal at 10:31 a.m. EDT. “The implementation of the match suspension is suspended for a probationary period of one year,” FIFA announced. “If Folarin Balogun commits another infringement of a similar nature and gravity during the probationary period, the suspension shall be revoked and the sanction enforced without prejudice to any additional sanction imposed for the new infringement.” U.S. coach Mauricio Pochettino applauded FIFA’s move. “We were punished enough against Bosnia-Herzegovina to play with 10 men (for) 30 minutes in a decision that was completely unfair,” he said. Pochettino, who played for Argentina in the 2002 World Cup, was not surprised Trump decided to call Infantino. “I came from a culture, Argentina or Europe, that football, soccer is a religion, more than the religion,” he said. “If we go keep going, pushing on, maybe one step more tomorrow you will see that the sport is magic, that the sport is amazing, is so powerful, unite people, unite a country like us.” England coach Thomas Tuchel wondered whether more decisions going forward could be challenged, whether yellow cards could be overturned for England’s Declan Rice and France’s Michael Olise. “We can now debate endlessly: I think it’s not a yellow card,” he said. “Where does this end? Where does it stop?” Balogun’s three goals included a go-ahead strike against Bosnia. He matched Landon Donovan in 2010 for the second-most goals by an American in a World Cup, behind only Bert Patenaude’s four in the initial tournament in 1930. A 25-year-old who plays for Monaco, Balogun scored 13 Ligue 1 goals last season and has 12 goals in 30 international appearances. He was born in Brooklyn to Nigerian parents who were living in London and in 2023 opted to change his national team affiliation from England, which he had represented at the under-21 level. “He strikes fear into a lot of defenders,” Richards said. The host U.S. is seeking to reach the quarterfinals for the first time since 2002. The Americans lost in the round of 16 to Ghana in 2010, Belgium in 2014 and the Netherlands in 2022. They failed to advance from the group stage in 2006 and didn’t qualify for the 2018 tournament. The USSF didn’t make Balogun available for comment Sunday, but Balogun posted on social media a picture of himself in front of U.S. fans and overlaid with music of Michael Jackson’s pop single “Bad.” On Friday, Balogun said he thought a yellow card instead of red “would have been fair.” FIFA said its decision relied on Article 27 of disciplinary committee rules. “The judicial body may decide to fully or partially suspend the implementation of a disciplinary measure,” the rule states. “By suspending the implementation of the sanction, the judicial body subjects the person sanctioned to a probationary period of one to four years.” FIFA in November deferred the final two games of a three-match ban for Portugal’s Cristiano Ronaldo for a red card against Ireland in a World Cup qualifier, allowing him to play at the start of the World Cup. Argentine defender Nicolás Otamendi and Ecuadoran midfielder Moisés Caicedo in April had one-game bans deferred for red cards in qualifiers, also allowing them to be available for World Cup openers. Brazilian midfielder Garrincha received a red card in the 83rd minute of the 1962 semifinal against host Chile for kicking an opponent but was allowed to play in the final against Czechoslovakia after a lobbying campaign that included support from Chile President Jorge Alessandri. Brazil won the final for its second straight title. “What about the next red card? What happens then?” Norway coach Ståle Solbakken said. “Is there going to be some committee somewhere that is going to take that card away? It’s a bad, bad, bad, bad, bad decision that will hurt the World Cup.” AP Soccer Writer James Robson in Atlanta and AP Sports Writers Andrew Destin in Seattle, Jim Vertuno in Austin, Texas, and Stephen Whyno in East Rutherford, New Jersey, contributed to this report. See more of AP’s World Cup coverage here MICHELLE L. PRICE Price covers the White House. She previously covered the 2024 presidential campaign and politics, government and other news in New York, Nevada, Utah and Arizona. She is based in Washington. twitter mailto window.vfQ = window.vfQ || ; // Tags that always block comments on ANY story, regardless of section. Example const COMMENT_BLOCK_TAGS = ; // Section name we care about (as it appears in ). // We'll normalize to lowercase, so "World News" -> "world news". const WORLD_NEWS_SECTION = 'world news'; // Tags that block comments ONLY when the story is in the World News section. const WORLD_NEWS_EXCLUSION_TAGS = ; window.vfQ = window.vfQ || ; // Zephr mod handling + prepublish + login failure handling setTimeout(() => { const all = document.querySelectorAll('.Zephr.Zephr-mod'); // If there's more than one of this element, delete the one with ID if (all.length > 1) { const withId = document.getElementById('viafoura-zephr-mod'); if (withId) withId.remove(); return } // prepublish → Zephr auth / walls handling window.vfQ.push(() => { if (!window.vf || typeof window.vf.$prepublish !== 'function') return; window.vf.$prepublish((channel, event, ...args) => { if (channel === 'authentication' && event === 'required') { window.vf.$publish && window.vf.$publish('tray', 'close'); window.Zephr?.openModal?.(); // window.location.href = `/login?target=${window.location.pathname}` return false; } else if (channel === 'walls' && event === 'post-attempt') { if (window.zephrQueue && typeof window.zephrQueue.enqueue === 'function') { window.zephrQueue.enqueue(async (zephr) => { if ( !zephr?.accessDetails?.authenticated || !window.Zephr?.openModal ) { return; } window.Zephr.openModal(); }); } return { channel, event, args }; } else { return { channel, event, args }; } }); }); // login failure → show ban message + tooltip window.vfQ.push(() => { if (!window.vf || typeof window.vf.$subscribe !== 'function') return; window.vf.$subscribe('login', 'failure', (errorContext) => { if (!errorContext) return; const isBanned = errorContext.error_key === 'login_banned'; if (!isBanned) return; let reasonText = 'Your account has been permanently banned from posting.'; if (errorContext.isPermanent === 0) { const date = new Date(errorContext.endDate); const formatted = date.toLocaleString('en-US', { month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: '2-digit', hour12: true, }); reasonText = 'Your account has been banned from posting until ' + formatted; } waitForEditorWrapper((wrapper) => { if (wrapper && !document.querySelector('.vf-ban-container')) { const container = document.createElement('div'); container.className = 'vf-ban-container'; // Message const message = document.createElement('div'); message.className = 'vf-ban-message'; message.innerHTML = '❗' + '' + reasonText + ''; // Tooltip trigger if (errorContext.reason) { const tooltip = document.createElement('span'); tooltip.className = 'vf-ban-tooltip'; tooltip.textContent = ' — WHY WAS I BANNED?'; const tooltipContent = document.createElement('div'); tooltipContent.className = 'vf-ban-tooltip-content'; tooltipContent.textContent = errorContext.reason; tooltip.appendChild(tooltipContent); message.appendChild(tooltip); } container.appendChild(message); wrapper.parentNode.insertBefore(container, wrapper.nextSibling); } }); }); }); }, 50); function waitForEditorWrapper(callback, maxTries = 50, interval = 100) { let tries = 0; const iv = setInterval(() => { const wrapper = document.querySelector('.vf-new-content__content-editor-wrapper'); if (wrapper) { clearInterval(iv); callback(wrapper); } else if (++tries >= maxTries) { clearInterval(iv); } }, interval); } function pageHasBlockedTag(tagsToBlock = COMMENT_BLOCK_TAGS) { const metas = Array.from( document.querySelectorAll(', 'meta' ].join(',')) ); const pageTags = metas .map(m => (m.getAttribute('content') || '')) .flatMap(c => c.split(',')) .map(s => s.trim().toLowerCase()) .filter(Boolean); const blockSet = new Set( (tagsToBlock || ).map(t => String(t).trim().toLowerCase()).filter(Boolean) ); return pageTags.some(t => blockSet.has(t)); } function getPageSection() { // Look for // or just in case. const meta = document.querySelector( 'meta, meta' ); if (!meta) return ''; return (meta.getAttribute('content') || '').trim().toLowerCase(); } function replaceBellIconInNav(container) { if (!container) return; const bellButtons = container.querySelectorAll( '.comment-nav-right .vf-tray-trigger.comment-nav-right__icon, .vf-tray-trigger' ); bellButtons.forEach((btn) => { if (btn.dataset.iconSwapped === '1') return; const bellSvg = btn.querySelector('.vf-icon_bell_icon'); if (bellSvg) bellSvg.remove(); const img = document.createElement('img'); img.src = 'https://assets.apnews.com/75/e2/83fe757647f790e4a0bf06370f10/comment-2.png'; img.alt = 'Comments'; img.style.height = '24px'; img.style.width = '24px'; img.style.verticalAlign = 'middle'; img.setAttribute('data-ap-bell', '1'); // precise selector for dark-mode tweak btn.appendChild(img); btn.dataset.iconSwapped = '1'; }); } function injectNoticeInContainer(container) { if (!container) return false; if (container.querySelector('.vf-guidelines-notice')) return true; const header = container.querySelector('.vf-comment-header'); if (!header) return false; const notice = document.createElement('div'); notice.className = 'vf-guidelines-notice'; notice.innerHTML = 'All comments are subject to our ' + 'Community Guidelines.' + 'Please note that comments are not moderated immediately — every post is reviewed before appearing publicly to ensure it meets our community guidelines. This means there may be a delay before your comment is visible.'; header.parentNode.insertBefore(notice, header.nextSibling); return true; } function hideFloatingBellButton() { document.querySelectorAll('.vf-tray-trigger--floating').forEach((btn) => { btn.style.display = 'none'; }); } function moveTrendingAboveCommentsFooter() { const trendingHost = document.getElementById('ap-trending-host'); if (!trendingHost || trendingHost.dataset.moved === '1') return; const footer = document.querySelector('#vf-conversations > div > section > div > footer'); if (footer && footer.parentNode) { footer.parentNode.insertBefore(trendingHost, footer); trendingHost.dataset.moved = '1'; } } function onCommentingLoaded() { const container = document.getElementById('ap-comments'); if (!container) return; injectNoticeInContainer(container); replaceBellIconInNav(container); moveTrendingAboveCommentsFooter(); } function wireViafoura() { if (window.vf && typeof window.vf.$subscribe === 'function') { window.vf.$subscribe('commenting', 'loaded', onCommentingLoaded); } } /* ----------------- DARK THEME HANDLING ----------------- */ function isDarkColor(rgb) { if (!rgb) return false; const m = rgb.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i); if (!m) return false; const r = +m, g = +m, b = +m; const lum = (0.2126*r + 0.7152*g + 0.0722*b) / 255; return lum < 0.5; } function shouldUseDarkTheme() { if (document.querySelector('')) return true; const carrier = document.querySelector('') || document.body || document.documentElement; const bg = carrier ? getComputedStyle(carrier).backgroundColor : ''; return isDarkColor(bg); } function getEffectiveDarkBg() { const carrier = document.querySelector('') || document.body || document.documentElement; const bg = carrier ? getComputedStyle(carrier).backgroundColor : ''; return bg && bg !== 'rgba(0, 0, 0, 0)' && bg !== 'transparent' ? bg : '#0b0b0b'; } // NEW: normalize dropdown/menu background in dark mode (solid dark, non-transparent) function fixDarkModeDropdowns() { if (!shouldUseDarkTheme()) return; const bg = getEffectiveDarkBg(); const text = 'rgba(255,255,255,0.85)'; const dropdowns = document.querySelectorAll( ',,.vf-dropdown__menu,.vf-select__menu' ); dropdowns.forEach((el) => { const cs = getComputedStyle(el); const bgColor = cs.backgroundColor; // Only fix ones that are effectively transparent / not already dark if ( bgColor === 'rgba(0, 0, 0, 0)' || bgColor === 'transparent' ) { el.style.setProperty('--default-color', bg); el.style.setProperty('--background-color', bg); el.style.setProperty('--light-text-on-default-color', text); el.style.setProperty('--dark-text-on-default-color', '#ffffff'); el.style.setProperty('--light-text-on-background-color', text); el.style.setProperty('--dark-text-on-background-color', '#ffffff'); el.style.backgroundColor = bg; el.style.color = text; } }); } function applyDarkThemeIfNeeded() { const container = document.getElementById('ap-comments'); if (!container) return; const useDark = shouldUseDarkTheme(); const bg = useDark ? getEffectiveDarkBg() : null; container.classList.toggle('ap-comments--dark', useDark); if (useDark) { container.style.setProperty('--apc-bg', bg); container.style.setProperty('--apc-text', '#e8e8e8'); container.style.setProperty('--apc-link', '#9ecbff'); container.setAttribute('data-theme', 'dark'); container.style.setProperty('background', 'var(--apc-bg)', 'important'); // Normalize Viafoura / AP-style variables INSIDE the comments container container.style.setProperty('--default-color', bg); container.style.setProperty('--background-color', bg); container.style.setProperty('--light-text-on-default-color', 'rgba(255, 255, 255, 0.8)'); container.style.setProperty('--dark-text-on-default-color', '#ffffff'); container.style.setProperty('--light-text-on-background-color', 'rgba(255, 255, 255, 0.8)'); container.style.setProperty('--dark-text-on-background-color', '#ffffff'); } else { container.removeAttribute('data-theme'); container.style.removeProperty('background'); .forEach(v => container.style.removeProperty(v)); } const elConv = document.getElementById('vf-conv'); const elTrend = document.getElementById('vf-trending'); const realConv = document.querySelector('#vf-conversations'); const realTrend = document.querySelector('#vf-trending-articles'); .forEach(el => { if (!el) return; if (useDark) { el.setAttribute('data-vf-theme', 'dark'); el.setAttribute('vf-theme', 'dark'); el.setAttribute('theme', 'dark'); el.style.removeProperty('background'); el.style.color = 'var(--apc-text)'; } else { .forEach(a => el.removeAttribute(a)); el.style.removeProperty('background'); el.style.removeProperty('color'); } }); .forEach((root) => { if (!root) return; if (useDark) { root.classList.add('ap-vf-dark'); root.setAttribute('data-theme', 'dark'); } else { root.classList.remove('ap-vf-dark'); root.removeAttribute('data-theme'); } }); // fix dropdowns / sort menus any time theme is recalculated if (useDark) { fixDarkModeDropdowns(); } } const vfObserver = new MutationObserver(() => { applyDarkThemeIfNeeded(); }); (function bootComments() { const container = document.getElementById('ap-comments'); if (!container) return; // Initial theme & dropdown fix applyDarkThemeIfNeeded(); // --------- NEW: Global block tags (e.g. no_comment) ---------- // If the page has ANY of the COMMENT_BLOCK_TAGS, hide comments on all stories. if (pageHasBlockedTag(COMMENT_BLOCK_TAGS)) { container.innerHTML = ''; container.classList.remove('viafoura'); container.id = 'comments-hidden'; hideFloatingBellButton(); return; } // --------- NEW: Section-specific logic (World News) ---------- const section = getPageSection(); // Only apply this rule if the story is in World News. if (section === WORLD_NEWS_SECTION) { // If a World News story has any tag in WORLD_NEWS_EXCLUSION_TAGS (e.g. Israel), // hide the embed. Other sections with those tags are still allowed. if (pageHasBlockedTag(WORLD_NEWS_EXCLUSION_TAGS)) { container.innerHTML = ''; container.classList.remove('viafoura'); container.id = 'comments-hidden'; hideFloatingBellButton(); return; } } // --------- Existing Viafoura boot logic ---------- if (!window.vf && !document.querySelector('script')) { const s = document.createElement('script'); s.async = true; s.src = '//cdn.viafoura.net/entry/index.js'; document.head.appendChild(s); } if (document.readyState === 'complete' || document.readyState === 'interactive') { wireViafoura(); } else { document.addEventListener('DOMContentLoaded', wireViafoura); } (function startCappedRetry() { let tries = 0; const maxTries = 120; const iv = setInterval(() => { injectNoticeInContainer(container); replaceBellIconInNav(container); hideFloatingBellButton(); moveTrendingAboveCommentsFooter(); applyDarkThemeIfNeeded(); if (++tries >= maxTries) clearInterval(iv); }, 100); })(); try { vfObserver.observe(container, { childList: true, subtree: true }); } catch (e) {} })(); .vf-guidelines-notice { font-family: var(--primary-font, 'AP', sans-serif); font-size: 1.0em; color: #666; margin: 0 0 10px 0; padding-left: 4px; opacity: 0.85; line-height: 1.4; } .vf-guidelines-notice a { text-decoration: underline; font-weight: 500; } #vf-trending-articles > div > div > h2 { font-size: 14px !important; line-height: 1.2; text-transform: uppercase; } #vf-trending-articles p.vf-trending-article__comment-count { font-size: 16px !important; line-height: 1.1; } #comments-hidden { display: none; } /* ---------- Dark theme for AP comments ---------- */ #ap-comments.ap-comments--dark { --apc-bg: #0b0b0b; --apc-text: #e8e8e8; --apc-muted: #a7a7a7; --apc-border: #2a2a2a; --apc-link: #9ecbff; background: var(--apc-bg) !important; color: var(--apc-text); color-scheme: dark; } /* DO NOT touch every descendant’s colors anymore – that was killing badges/icons */ #ap-comments.ap-comments--dark a { color: var(--apc-link); } #ap-comments.ap-comments--dark a:hover, #ap-comments.ap-comments--dark a:focus { text-decoration: underline; } #ap-comments.ap-comments--dark hr, #ap-comments.ap-comments--dark .vf-divider, #ap-comments.ap-comments--dark .vf-comment + .vf-comment, #ap-comments.ap-comments--dark .vf-card { border-color: var(--apc-border) !important; } #ap-comments.ap-comments--dark .vf-guidelines-notice { color: var(--apc-muted); } #ap-comments.ap-comments--dark #vf-trending-articles > div > div > h2, #ap-comments.ap-comments--dark p.vf-trending-article__comment-count { color: var(--apc-text) !important; } #ap-comments.ap-comments--dark #vf-conversations.ap-vf-dark, #ap-comments.ap-comments--dark #vf-trending-articles.ap-vf-dark { background: transparent !important; color: var(--apc-text) !important; color-scheme: dark; } #ap-comments.ap-comments--dark #vf-conversations, #ap-comments.ap-comments--dark #vf-trending-articles { background-color: var(--apc-bg) !important; } /* Removed “*:not(input)” background/color override so badges keep their own colors */ #ap-comments.ap-comments--dark #vf-conversations section, #ap-comments.ap-comments--dark #vf-conversations article, #ap-comments.ap-comments--dark #vf-conversations header, #ap-comments.ap-comments--dark #vf-conversations footer, #ap-comments.ap-comments--dark #vf-conversations .vf-card, #ap-comments.ap-comments--dark #vf-trending-articles section, #ap-comments.ap-comments--dark #vf-trending-articles article, #ap-comments.ap-comments--dark #vf-trending-articles header, #ap-comments.ap-comments--dark #vf-trending-articles footer, #ap-comments.ap-comments--dark #vf-trending-articles .vf-card { background-color: transparent !important; border-color: var(--apc-border) !important; } #ap-comments.ap-comments--dark .vf-content-editor-form, #ap-comments.ap-comments--dark .vf-editor-area { background-color: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.24) !important; border-radius: 6px !important; } #ap-comments.ap-comments--dark .vf-content-editor-input { color: var(--apc-text) !important; caret-color: var(--apc-text) !important; } #ap-comments.ap-comments--dark .vf-content-editor-input::placeholder { color: #cfcfcf !important; opacity: 1 !important; } #ap-comments.ap-comments--dark .vf-content-editor-input:focus, #ap-comments.ap-comments--dark .vf-editor-area:focus-within { outline: none !important; border-color: rgba(255,255,255,0.36) !important; box-shadow: 0 0 0 2px rgba(255,255,255,0.12) !important; } #ap-comments.ap-comments--dark .vf-dropdown-button, #ap-comments.ap-comments--dark .vf-dropdown-button__text { background-color: transparent !important; color: var(--apc-text) !important; border-color: var(--apc-border) !important; } #ap-comments.ap-comments--dark .vf-dropdown-button:hover, #ap-comments.ap-comments--dark .vf-dropdown-button:focus { background-color: rgba(255,255,255,0.06) !important; } /* Only tweak the swapped bell icon in dark mode; leave other badges alone */ #ap-comments.ap-comments--dark .vf-tray-trigger img { filter: invert(1) hue-rotate(180deg) brightness(1.1); opacity: 1; mix-blend-mode: normal; } /* Ban message styles */ .vf-ban-container { margin: 10px 0 15px; padding: 10px 12px; border-radius: 4px; background-color: #fff3cd; border: 1px solid #ffeeba; } .vf-ban-message { font-family: var(--primary-font, 'AP', sans-serif); font-size: 0.95em; color: #856404; display: flex; align-items: center; flex-wrap: wrap; } .vf-ban-icon { margin-right: 8px; } .vf-ban-tooltip { margin-left: 4px; font-weight: 600; text-decoration: underline; cursor: pointer; position: relative; } .vf-ban-tooltip-content { display: none; position: absolute; z-index: 9999; top: 120%; left: 0; width: 260px; padding: 8px 10px; background: #fff; border: 1px solid #ccc; border-radius: 4px; font-weight: 400; text-decoration: none; color: #333; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .vf-ban-tooltip:hover .vf-ban-tooltip-content { display: block; }