{"id":21653,"date":"2026-07-11T06:22:46","date_gmt":"2026-07-11T10:22:46","guid":{"rendered":"https:\/\/www.squawka.com\/us\/?post_type=news&#038;p=21653"},"modified":"2026-07-11T06:22:47","modified_gmt":"2026-07-11T10:22:47","slug":"match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals","status":"publish","type":"news","link":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/","title":{"rendered":"France vs Spain: Predictions, Picks, Odds &#038; Lineups"},"content":{"rendered":"<p><strong>France meet Spain on Tuesday, July 14 at 3:00 PM ET \/ 2:00 PM CT \/ 12:00 PM PT in the World Cup 2026 semi-finals, a heavyweight last-four tie between the tournament\u2019s two form teams.<\/strong><\/p>\n<p>Our France vs Spain prediction starts with how little separates them. France arrive on a six-match winning run having conceded once; Spain are unbeaten in six and have also given up a single goal. Two of the meanest defenses at the tournament, two of the sharpest attacks \u2014 and a place in the final on the line.<\/p>\n<p>The prediction market can barely split them, making France marginal favorites with Spain and the draw close behind. It reflects two sides who have looked the class of the field, separated by fine margins rather than any gulf.<\/p>\n\n\n<style>\n.sq-bpg{--lime:#a8e039;--glow:#c8f24c;--tx:#f4f8f1;--mut:rgba(244,248,241,.62);--line:rgba(255,255,255,.10);--gold:#F7B500;--b365:#ffdd00;position:relative;overflow:hidden;isolation:isolate;font-family:'Bricolage Grotesque',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--tx);max-width:960px;margin:12px auto 30px;border-radius:18px;background:radial-gradient(70% 90% at 18% 0%,rgba(168,224,57,.20) 0%,rgba(168,224,57,0) 60%),linear-gradient(135deg,#0e3f29 0%,#0a2c1f 60%,#08251a 100%);box-shadow:0 18px 44px rgba(10,44,31,.32)}\n.sq-bpg *{box-sizing:border-box}\n.sq-bpg::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20preserveAspectRatio%3D%22xMidYMid%20slice%22%20viewBox%3D%220%200%203000%203000%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22a%22%20width%3D%2278%22%20height%3D%22175.5%22%20x%3D%220%22%20y%3D%220%22%20patternTransform%3D%22rotate%28-45%29%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Cpath%20fill%3D%22%2303261a%22%20d%3D%22m-38.22%20157.05-.78-78%2078-.78c.45%2043.12-34.12%2078.33-77.22%2078.78%22%2F%3E%3Cpath%20fill%3D%22%2303261a%22%20d%3D%22M77.22%200%2078%2081.6l-78%20.78C-.45%2035.67%2034.12.45%2077.22%200%22%2F%3E%3Cpath%20fill%3D%22%2303261a%22%20d%3D%22m37.78%20158.05-.78-78%2078-.78c.45%2043.12-34.12%2078.33-77.22%2078.78%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E\");background-position:top left;background-size:380px 380px;opacity:.4}\n.sq-bpg__r{position:absolute;width:0;height:0;opacity:0;pointer-events:none}\n.sq-bpg__wrap{position:relative;z-index:1;padding:26px 30px 24px}\n.sq-bpg__tag{display:inline-flex;align-items:center;gap:9px;border:1.5px solid rgba(168,224,57,.55);border-radius:999px;padding:7px 16px;color:var(--lime);font-weight:800;font-size:12px;letter-spacing:2.4px;text-transform:uppercase;background:rgba(10,44,31,.4)}\n.sq-bpg__tag::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px 1px var(--glow)}\n.sq-bpg__ttl{font-size:26px;font-weight:800;letter-spacing:-.3px;line-height:1.12;margin:0;color:var(--tx)}\n.sq-bpg__sub{margin:8px 0 0;font-size:14.5px;line-height:1.5;color:var(--mut);max-width:70ch}\n.sq-bpg__perf{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}\n.sq-bpg__perf-h{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--lime)}\n.sq-bpg__chip{font-size:12.5px;color:var(--mut);background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:999px;padding:4px 11px}\n.sq-bpg__chip b{color:var(--tx)}\n.sq-bpg__chip--big{background:var(--lime);color:#08251a;border-color:var(--lime)}\n.sq-bpg__chip--big b{color:#08251a}\n.sq-bpg__siglink{margin-left:auto;font-size:13px;font-weight:700;color:var(--lime);text-decoration:none;border-bottom:2px solid rgba(168,224,57,.35)}\n.sq-bpg__geoq{margin-top:18px;font-size:13px;font-weight:700;color:var(--tx)}\n.sq-bpg__toggle{display:flex;gap:6px;margin-top:9px}\n.sq-bpg__tab{flex:1;text-align:center;cursor:pointer;user-select:none;font-size:14.5px;font-weight:800;line-height:1.2;padding:10px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--mut);transition:.15s}\n.sq-bpg__tab span{display:block;font-size:11px;font-weight:600;margin-top:3px;opacity:.8}\n.sq-bpg__r--us:checked ~ .sq-bpg__toggle .sq-bpg__tab--us,\n.sq-bpg__r--row:checked ~ .sq-bpg__toggle .sq-bpg__tab--row{background:var(--lime);color:#08251a;border-color:var(--lime)}\n.sq-bpg__list{margin-top:16px;border-top:1px solid var(--line)}\n.sq-bpg__row{display:grid;grid-template-columns:1fr 122px;gap:14px;align-items:center;padding:15px 2px;border-bottom:1px solid var(--line)}\n.sq-bpg__pk{font-size:16px;font-weight:800;line-height:1.25;color:var(--tx)}\n.sq-bpg__top{display:inline-block;vertical-align:middle;margin-left:8px;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#5b3b00;background:linear-gradient(90deg,#ffe07a,var(--gold));padding:3px 8px;border-radius:6px}\n.sq-bpg__why{display:block;margin-top:5px;font-size:13.5px;line-height:1.5;color:var(--mut)}\n.sq-bpg__pr{text-align:center}\n.sq-bpg__prob{display:block;font-size:26px;font-weight:800;color:var(--lime);line-height:1}\n.sq-bpg__prl{display:block;font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--mut);margin-top:3px}\n.sq-bpg__odd{display:none;margin-top:7px;font-size:12.5px;font-weight:700;color:var(--tx);background:rgba(255,255,255,.08);border-radius:7px;padding:3px 8px}\n.sq-bpg__r--row:checked ~ .sq-bpg__list .sq-bpg__odd{display:inline-block}\na.sq-bpg__prob,a.sq-bpg__odd{cursor:pointer}\na.sq-bpg__prob{color:var(--lime);text-decoration:none}\na.sq-bpg__prob:hover{text-decoration:underline}\na.sq-bpg__odd{text-decoration:none}\na.sq-bpg__odd:hover{filter:brightness(1.08)}\n.sq-bpg__r--row:checked ~ .sq-bpg__list a.sq-bpg__prob{pointer-events:none;cursor:default}\n.sq-bpg__approach{margin:15px 0 0;font-size:13.5px;line-height:1.55;color:var(--tx)}\n.sq-bpg__panel{display:none;margin-top:16px}\n.sq-bpg__r--us:checked ~ .sq-bpg__panel--us{display:block}\n.sq-bpg__r--row:checked ~ .sq-bpg__panel--row{display:block}\n.sq-bpg__act{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}\n.sq-bpg__act-txt{flex:1;min-width:200px}\n.sq-bpg__act-txt b{display:block;font-size:16px;color:var(--tx)}\n.sq-bpg__act-txt span{display:block;font-size:13px;color:var(--mut);margin-top:2px}\n.sq-bpg__cta{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:800;text-decoration:none;padding:13px 22px;border-radius:11px;white-space:nowrap}\n.sq-bpg__cta--kal{background:linear-gradient(135deg,var(--lime),var(--glow));color:#08251a;box-shadow:0 8px 18px rgba(168,224,57,.28)}\n.sq-bpg__cta--b365{background:var(--b365);color:#1a1a1a;box-shadow:0 8px 18px rgba(0,0,0,.28)}\n.sq-bpg__altsdiv{height:1px;background:var(--line);margin:16px 0 0}\n.sq-bpg__altslead{margin:14px 0 0;font-size:13px;color:var(--mut)}\n.sq-bpg__altslead a{color:var(--lime);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(168,224,57,.35)}\n.sq-bpg__altsrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}\n.sq-bpg__altsbtn{flex:1 1 160px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:11px 16px;border-radius:11px;background:#5a26d6;border:1px solid rgba(255,255,255,.10);color:#fff;font-weight:800;font-size:14px;text-decoration:none;box-shadow:0 4px 14px rgba(90,38,214,.30);transition:.15s}\n.sq-bpg__altsbtn:hover{background:#6b34e8}\n.sq-bpg__altsbtn img{height:18px;width:auto;display:block;filter:brightness(0) invert(1);opacity:.97}\n.sq-bpg__disc{margin:12px 0 0;font-size:11.5px;line-height:1.5;color:rgba(244,248,241,.5)}\n@media(max-width:640px){\n .sq-bpg__wrap{padding:22px 16px 20px}\n .sq-bpg__ttl{font-size:21px}\n .sq-bpg__sub{font-size:14px}\n .sq-bpg__perf{gap:7px}\n .sq-bpg__siglink{margin-left:0;flex-basis:100%;margin-top:2px}\n .sq-bpg__row{grid-template-columns:1fr 96px;gap:10px}\n .sq-bpg__prob{font-size:22px}\n .sq-bpg__odd{font-size:11px;padding:2px 6px;line-height:1.3}\n .sq-bpg__act{padding:14px}\n .sq-bpg__act-txt{min-width:0}\n .sq-bpg__cta{width:100%;justify-content:center}\n .sq-bpg__altsbtn{flex:1 1 120px}\n}\n@media(max-width:400px){\n .sq-bpg__ttl{font-size:19px}\n .sq-bpg__pk{font-size:15px}\n .sq-bpg__why{font-size:12.5px}\n .sq-bpg__row{grid-template-columns:1fr 82px}\n .sq-bpg__prob{font-size:19px}\n .sq-bpg__altsbtn{flex:1 1 100%}\n}\n<\/style>\n<div class=\"sq-bpg\" id=\"sq-bpg-fraesp\">\n <div class=\"sq-bpg__wrap\">\n  <input class=\"sq-bpg__r sq-bpg__r--us\" type=\"radio\" name=\"sqbpg-fraesp\" id=\"sqbpg-us-fraesp\" checked>\n  <input class=\"sq-bpg__r sq-bpg__r--row\" type=\"radio\" name=\"sqbpg-fraesp\" id=\"sqbpg-row-fraesp\">\n  <span class=\"sq-bpg__tag\">Best Bets<\/span>\n  <h2 class=\"sq-bpg__ttl\">France vs Spain: Best Bets &amp; Predictions<\/h2>\n  <p class=\"sq-bpg__sub\">Two of the tournament&#8217;s form teams and meanest defenses meet in the last four &#8212; France edge the market, but Spain are unbeaten in six and this shapes as a razor-thin call.<\/p>\n  <div class=\"sq-bpg__perf\">\n    <span class=\"sq-bpg__perf-h\">Squawka World Cup record<\/span>\n    <span class=\"sq-bpg__chip sq-bpg__chip--big\"><b>70%<\/b> hit rate<\/span>\n    <span class=\"sq-bpg__chip\">97 predictions settled<\/span>\n    <a class=\"sq-bpg__siglink\" href=\"#sq-signal-block\">See our Signal model verdict &darr;<\/a>\n  <\/div>\n\n  <div class=\"sq-bpg__geoq\">Where are you following from? Odds &amp; offers below update to match.<\/div>\n  <div class=\"sq-bpg__toggle\" role=\"tablist\">\n    <label class=\"sq-bpg__tab sq-bpg__tab--us\" for=\"sqbpg-us-fraesp\">&#127482;&#127480; United States<span>Trade on Kalshi<\/span><\/label>\n    <label class=\"sq-bpg__tab sq-bpg__tab--row\" for=\"sqbpg-row-fraesp\">&#127758; Outside the US<span>Odds via bet365<\/span><\/label>\n  <\/div>\n\n  <div class=\"sq-bpg__list\">\n    <div class=\"sq-bpg__row\" data-market=\"Anytime Goalscorer\" data-selection=\"Kylian Mbappe\" data-prob=\"45\" data-odds=\"+122\" data-player-id=\"5e9ilgrz3tzg9kd1gk3yvrahh\">\n      <div><span class=\"sq-bpg__pk\">Kylian Mbapp&eacute; to score anytime<\/span><span class=\"sq-bpg__top\">Top pick<\/span><span class=\"sq-bpg__why\">Eight goals off 19 shots on target and 16 chances created &#8212; France&#8217;s talisman and the shortest-priced scorer on the board.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"https:\/\/www.squawka.com\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">45%<\/a><span class=\"sq-bpg__prl\">chance<\/span><a class=\"sq-bpg__odd\" href=\"https:\/\/www.squawka.com\/en\/go\/bet365?q=us-sg1-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">+122 @ bet365<\/a><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Result\" data-selection=\"France to Win\" data-prob=\"40\" data-odds=\"+150\">\n      <div><span class=\"sq-bpg__pk\">France to Win<\/span><span class=\"sq-bpg__why\">Six straight wins, one goal conceded, and the market&#8217;s marginal pick &#8212; but only just, in a semi-final that shapes as a coin toss.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"https:\/\/www.squawka.com\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">40%<\/a><span class=\"sq-bpg__prl\">win prob.<\/span><a class=\"sq-bpg__odd\" href=\"https:\/\/www.squawka.com\/en\/go\/bet365?q=us-sg1-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">+150 @ bet365<\/a><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Both Teams to Score\" data-selection=\"Yes\" data-prob=\"58\" data-odds=\"-138\">\n      <div><span class=\"sq-bpg__pk\">Both Teams to Score: Yes<\/span><span class=\"sq-bpg__why\">Two of the tournament&#8217;s sharpest attacks meet, and the market leans to a goal at each end despite the clean-sheet records.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"https:\/\/www.squawka.com\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">58%<\/a><span class=\"sq-bpg__prl\">chance<\/span><a class=\"sq-bpg__odd\" href=\"https:\/\/www.squawka.com\/en\/go\/bet365?q=us-sg1-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">-138 @ bet365<\/a><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Over 2.5 Goals\" data-selection=\"Over 2.5\" data-prob=\"51\" data-odds=\"-104\">\n      <div><span class=\"sq-bpg__pk\">Over 2.5 Goals<\/span><span class=\"sq-bpg__why\">France and Spain have 24 goals between them across the run; if the defenses blink, the quality on show tips it over the line.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"https:\/\/www.squawka.com\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">51%<\/a><span class=\"sq-bpg__prl\">chance<\/span><a class=\"sq-bpg__odd\" href=\"https:\/\/www.squawka.com\/en\/go\/bet365?q=us-sg1-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">-104 @ bet365<\/a><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Correct Score\" data-selection=\"France 2-1\" data-prob=\"12\" data-odds=\"+700\">\n      <div><span class=\"sq-bpg__pk\">Correct Score: France 2-1<\/span><span class=\"sq-bpg__why\">The natural shape of a narrow France win in an open game &#8212; the result, the over and both teams scoring tied into one line.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"https:\/\/www.squawka.com\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">12%<\/a><span class=\"sq-bpg__prl\">chance<\/span><a class=\"sq-bpg__odd\" href=\"https:\/\/www.squawka.com\/en\/go\/bet365?q=us-sg1-all-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">+700 @ bet365<\/a><\/div>\n    <\/div>\n  <\/div>\n\n  <p class=\"sq-bpg__approach\"><b>Our approach:<\/b> lead with Kylian Mbapp&eacute; anytime and expect a tight, goals-in-it game &#8212; the result itself is a genuine coin toss.<\/p>\n\n  <div class=\"sq-bpg__panel sq-bpg__panel--us\">\n    <div class=\"sq-bpg__act\">\n      <div class=\"sq-bpg__act-txt\"><b>Trade these markets on Kalshi<\/b><span>New users get $10 &#8212; trade $10 to unlock. USE CODE SQUAWKA. Prices update live.<\/span><\/div>\n      <a class=\"sq-bpg__cta sq-bpg__cta--kal\" href=\"https:\/\/www.squawka.com\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"sponsored nofollow\" target=\"_blank\">Trade on Kalshi &rarr;<\/a>\n    <\/div>\n    <div class=\"sq-bpg__altsdiv\"><\/div>\n    <p class=\"sq-bpg__altslead\">If Kalshi isn&rsquo;t your choice, we also rate <a href=\"https:\/\/www.squawka.com\/us\/bet\/betting-sites\/polymarket\/\">Polymarket<\/a> and <a href=\"https:\/\/www.squawka.com\/us\/bet\/betting-sites\/prophetx\/\">ProphetX<\/a> &mdash; or compare the full lineup.<\/p>\n    <div class=\"sq-bpg__altsrow\">\n      <a class=\"sq-bpg__altsbtn\" href=\"https:\/\/www.squawka.com\/en\/go\/polymarket?q=us-sg1-all-wof-s-spo\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/06101144\/polymarket-1.svg\" alt=\"Polymarket\" loading=\"lazy\" \/><\/a>\n      <a class=\"sq-bpg__altsbtn\" href=\"https:\/\/www.squawka.com\/en\/go\/prophet-x?q=us-sg1-all-wof-s-spo\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/06\/12062936\/ProphetX.svg\" alt=\"ProphetX\" loading=\"lazy\" \/><\/a>\n      <a class=\"sq-bpg__altsbtn\" href=\"https:\/\/www.squawka.com\/us\/bet\/best-prediction-markets\/\">Compare All &rarr;<\/a>\n    <\/div>\n    <p class=\"sq-bpg__disc\">Probabilities reflect live Kalshi market prices at time of loading. 21+. Prediction markets are CFTC-regulated event contracts, not sportsbook bets. Polymarket excluded in AZ, IL, MA, MD, MI, MT, NJ, NV, OH. Please play responsibly. Gambling Problem? Call 1-800-GAMBLER. New Kalshi users: USE CODE SQUAWKA.<\/p>\n  <\/div>\n\n  <div class=\"sq-bpg__panel sq-bpg__panel--row\">\n    <div class=\"sq-bpg__act\">\n      <div class=\"sq-bpg__act-txt\"><b>Back these with bet365<\/b><span>Odds shown for your region &#8212; toggle the odds beside each pick above.<\/span><\/div>\n      <a class=\"sq-bpg__cta sq-bpg__cta--b365\" href=\"https:\/\/www.squawka.com\/en\/go\/bet365?q=us-sg1-all-wof-s-spo\" rel=\"sponsored nofollow\" target=\"_blank\">Bet with bet365 &rarr;<\/a>\n    <\/div>\n    <p class=\"sq-bpg__disc\">Odds shown in American format for illustration; your local odds and offer are served on click. Eligibility, minimum age (18+\/21+) and T&amp;Cs vary by region. Please gamble responsibly.<\/p>\n  <\/div>\n <\/div>\n<\/div>\n\n\n<h2>World Cup Form &amp; Route to the Semi-Finals<\/h2>\n<p>France have been ruthless: after seeing off Iraq 3-0, Norway 4-1 and Sweden 3-0 in the group, they edged Paraguay 1-0 and brushed Morocco aside 2-0 in the quarter-final. Kylian Mbapp&eacute; has eight goals, the defense has conceded just once, and Mike Maignan has four clean sheets to his name.<\/p>\n<p>Spain have matched them step for step. A 4-0 win over Saudi Arabia set the tone, with Uruguay (1-0), Austria (3-0) and Portugal (1-0) all beaten before a 2-1 quarter-final win over Belgium. Unai Sim&oacute;n has conceded only once across the run, and Spain arrive unbeaten in six with four clean sheets of their own.<\/p>\n<p><!-- SQ-KALSHI-SLOT --><\/p>\n<h2>Recent Form<\/h2>\n<h3>France: W W W W W<\/h3>\n<ul>\n<li>Jul 9: France 2-0 Morocco (W)<\/li>\n<li>Jul 4: Paraguay 0-1 France (W)<\/li>\n<li>Jun 30: France 3-0 Sweden (W)<\/li>\n<li>Jun 26: Norway 1-4 France (W)<\/li>\n<li>Jun 22: France 3-0 Iraq (W)<\/li>\n<\/ul>\n<p>Five straight wins, four of them without conceding &#8212; a run built on control as much as flair, and one that has yet to be seriously tested.<\/p>\n<h3>Spain: W W W W W<\/h3>\n<ul>\n<li>Jul 10: Spain 2-1 Belgium (W)<\/li>\n<li>Jul 6: Portugal 0-1 Spain (W)<\/li>\n<li>Jul 2: Spain 3-0 Austria (W)<\/li>\n<li>Jun 26: Uruguay 0-1 Spain (W)<\/li>\n<li>Jun 21: Spain 4-0 Saudi Arabia (W)<\/li>\n<\/ul>\n<p>A perfect record and a defense that has barely been breached &#8212; the 2-1 win over Belgium the only game all tournament in which Spain have conceded.<\/p>\n<p><!-- SQ-LINEUPS-START --><\/p>\n\n\n<div class=\"sq-teamnews sq-teamnews--theme-world-cup sq-teamnews--predicted\">\n<style>\n.sq-teamnews,.sq-teamnews *{box-sizing:border-box}\n.sq-teamnews{\n  \/* \u2500\u2500 THEME TOKENS \u2014 only these values change per competition \u2500\u2500 *\/\n  --sq-primary:#1B5E3B;      \/* forest green \u2014 accents, formation chip        *\/\n  --sq-accent:#A8E039;       \/* electric lime \u2014 chevron + confirmed pill      *\/\n  --sq-accent-2:#C8F24C;     \/* brighter lime \u2014 chevron highlight             *\/\n  --sq-gold:#F0B429;         \/* gold \u2014 goalkeeper jersey + note markers       *\/\n  --sq-ink:#16201b;          \/* body text                                     *\/\n  --sq-surface:#ffffff;      \/* card background                               *\/\n  --sq-ground:#F4F6F2;       \/* inset background                              *\/\n  --sq-line:#E4E7E2;         \/* hairline borders                             *\/\n  --sq-muted:#6B7770;        \/* caveat \/ footnote text                       *\/\n  --sq-headA:#0e3f29; --sq-headB:#08251a;  \/* header gradient stops          *\/\n  --sq-turfA:#1c7d4b; --sq-turfB:#125e37;  \/* pitch gradient stops           *\/\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  font-family:inherit;\n  color:var(--sq-ink);background:var(--sq-surface);\n  border:1px solid var(--sq-line);border-radius:16px;overflow:hidden;\n  box-shadow:0 18px 42px -30px rgba(14,36,25,.55);\n  max-width:100%;line-height:1.4;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;\n  margin:24px 0 32px;\n}\n\/* \u2500\u2500 header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__head{position:relative;overflow:hidden;padding:16px 18px 15px;\n  background:linear-gradient(105deg,var(--sq-headA) 0%,var(--sq-headB) 100%);\n  border-left:5px solid var(--sq-accent);color:#f4f8f1;}\n.sq-teamnews__head::before{content:\"\";position:absolute;inset:0;opacity:.06;pointer-events:none;\n  background-size:560px 560px;\n  background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3000 3000' preserveAspectRatio='xMidYMid slice'><defs><pattern id='a' width='78' height='175.5' patternTransform='rotate(-45)' patternUnits='userSpaceOnUse'><path fill='%23ffffff' d='m-38.22 157.05-.78-78 78-.78c.45 43.12-34.12 78.33-77.22 78.78'\/><path fill='%23ffffff' d='M77.22 0 78 81.6l-78 .78C-.45 35.67 34.12.45 77.22 0'\/><path fill='%23ffffff' d='m37.78 158.05-.78-78 78-.78c.45 43.12-34.12 78.33-77.22 78.78'\/><\/pattern><\/defs><rect width='100%25' height='100%25' fill='url(%23a)'\/><\/svg>\");}\n.sq-teamnews__brandrow{position:relative;display:flex;align-items:center;gap:9px;margin-bottom:10px;}\n.sq-teamnews__chev{width:19px;height:19px;flex:none;display:block;}\n.sq-teamnews__kicker{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--sq-accent-2);}\n.sq-teamnews__pill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:10.5px;\n  letter-spacing:.12em;text-transform:uppercase;font-weight:800;padding:5px 11px;border-radius:999px;white-space:nowrap;}\n.sq-teamnews__pill-dot{width:6px;height:6px;border-radius:50%;flex:none;}\n.sq-teamnews--predicted .sq-teamnews__pill{background:rgba(240,180,41,.16);color:var(--sq-gold);border:1px solid rgba(240,180,41,.5);}\n.sq-teamnews--predicted .sq-teamnews__pill-dot{background:var(--sq-gold);}\n.sq-teamnews--confirmed .sq-teamnews__pill{background:var(--sq-accent);color:var(--sq-headB);border:1px solid var(--sq-accent);}\n.sq-teamnews--confirmed .sq-teamnews__pill-dot{background:var(--sq-headB);}\n.sq-teamnews__h2{position:relative;margin:0;font-size:18px;line-height:1.15;font-weight:800;letter-spacing:-.015em;color:#fff;text-wrap:balance;}\n\/* \u2500\u2500 caveat \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__caveat{display:flex;gap:8px;align-items:flex-start;margin:0;padding:11px 18px;\n  background:var(--sq-ground);border-bottom:1px solid var(--sq-line);\n  font-size:12px;line-height:1.45;color:var(--sq-muted);font-style:italic;}\n.sq-teamnews__caveat svg{flex:none;margin-top:1px;opacity:.8;}\n\/* \u2500\u2500 teams grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__teams{display:grid;grid-template-columns:1fr;gap:16px;padding:16px;}\n.sq-teamnews__team{min-width:0;}\n.sq-teamnews__teamhead{display:flex;align-items:center;gap:10px;margin-bottom:10px;}\n.sq-teamnews__crest{width:32px;height:32px;flex:none;border-radius:7px;overflow:hidden;object-fit:cover;\n  background:var(--sq-ground);box-shadow:inset 0 0 0 1px var(--sq-line);}\n.sq-teamnews__name{flex:1;margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em;}\n.sq-teamnews__formation{flex:none;font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--sq-primary);\n  background:rgba(27,94,59,.09);border:1px solid rgba(27,94,59,.2);border-radius:7px;padding:4px 9px;}\n\/* \u2500\u2500 the pitch \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__pitch{position:relative;overflow:hidden;border-radius:11px;min-height:330px;\n  background:repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 12.5%,rgba(0,0,0,.05) 12.5% 25%),\n    linear-gradient(180deg,var(--sq-turfA) 0%,var(--sq-turfB) 100%);\n  box-shadow:inset 0 0 0 2px rgba(255,255,255,.14),0 6px 18px -12px rgba(14,36,25,.5);}\n.sq-teamnews__pk{position:absolute;pointer-events:none;}\n.sq-teamnews__pk--half{left:7%;right:7%;top:50%;border-top:2px solid rgba(255,255,255,.18);}\n.sq-teamnews__pk--circle{left:50%;top:50%;width:86px;height:86px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.18);border-radius:50%;}\n.sq-teamnews__pk--spot{left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);background:rgba(255,255,255,.3);border-radius:50%;}\n.sq-teamnews__pk--boxb{left:24%;right:24%;bottom:0;height:19%;border:2px solid rgba(255,255,255,.18);border-bottom:none;}\n.sq-teamnews__pk--boxt{left:24%;right:24%;top:0;height:19%;border:2px solid rgba(255,255,255,.18);border-top:none;}\n.sq-teamnews__pk--goalb{left:41%;right:41%;bottom:-2px;height:7px;border:2px solid rgba(255,255,255,.28);border-bottom:none;background:rgba(255,255,255,.06);}\n.sq-teamnews__pk--goalt{left:41%;right:41%;top:-2px;height:7px;border:2px solid rgba(255,255,255,.28);border-top:none;background:rgba(255,255,255,.06);}\n\/* bands: GK at the bottom (goal), FWD at the top (attacking) *\/\n.sq-teamnews__bands{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column-reverse;padding:12px 4px;}\n.sq-teamnews__band{flex:1;display:flex;align-items:center;justify-content:space-evenly;gap:2px;}\n.sq-teamnews__node{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;min-width:0;max-width:98px;}\n.sq-teamnews__jersey{width:27px;height:24px;flex:none;color:#ffffff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45));}\n.sq-teamnews__band[data-role=\"GK\"] .sq-teamnews__jersey{color:var(--sq-gold);}\n.sq-teamnews__pname{font-size:10.5px;font-weight:700;line-height:1.12;color:#fff;text-align:center;\n  letter-spacing:-.01em;max-width:100%;overflow-wrap:break-word;\n  text-shadow:0 1px 3px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.55);}\n.sq-teamnews__mark{color:var(--sq-gold);font-weight:800;}\nsup.sq-teamnews__mark{font-size:.72em;margin-left:1px;text-shadow:none;}\n\/* \u2500\u2500 footnotes (auto-hides when there are none) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__notes{list-style:none;margin:0;padding:14px 16px 2px;display:flex;flex-direction:column;gap:5px;}\n.sq-teamnews__notes:empty{display:none;}\n.sq-teamnews__notes li{font-size:11.5px;line-height:1.4;color:var(--sq-muted);}\n.sq-teamnews__notes strong{color:var(--sq-ink);font-weight:700;}\n.sq-teamnews__notes .sq-teamnews__mark{text-shadow:none;}\n\/* \u2500\u2500 footer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__foot{display:flex;align-items:center;gap:7px;margin-top:14px;padding:10px 16px;\n  border-top:1px solid var(--sq-line);background:var(--sq-ground);\n  font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--sq-muted);}\n\/* \u2500\u2500 narrow phones: stop the header pill + 4-across bands clipping \u2500\u2500 *\/\n@media(max-width:559px){\n  .sq-teamnews__head{padding:14px 14px 13px;}\n  .sq-teamnews__kicker{font-size:10px;letter-spacing:.12em;}\n  .sq-teamnews__pill{font-size:9.5px;padding:4px 9px;letter-spacing:.08em;}\n  .sq-teamnews__h2{font-size:16.5px;}\n  .sq-teamnews__teams{padding:12px;gap:12px;}\n  .sq-teamnews__bands{padding:10px 2px;}\n  .sq-teamnews__band{gap:1px;}\n  .sq-teamnews__node{max-width:none;}\n  .sq-teamnews__pname{font-size:9px;line-height:1.05;}\n  .sq-teamnews__jersey{width:23px;height:20px;}\n}\n\/* \u2500\u2500 desktop: pitches side-by-side \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media(min-width:560px){\n  .sq-teamnews__teams{grid-template-columns:1fr 1fr;}\n  .sq-teamnews__head{padding:18px 20px 17px;}\n  .sq-teamnews__h2{font-size:21px;}\n  .sq-teamnews__name{font-size:17px;}\n  .sq-teamnews__pitch{min-height:372px;}\n  .sq-teamnews__pname{font-size:11px;}\n}\n<\/style>\n\n  <!-- \u2500\u2500 HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <div class=\"sq-teamnews__head\">\n    <div class=\"sq-teamnews__brandrow\">\n      <svg class=\"sq-teamnews__chev\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M4 5l7 7-7 7\" stroke=\"var(--sq-accent-2)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <path d=\"M13 5l7 7-7 7\" stroke=\"var(--sq-accent)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n      <\/svg>\n      <span class=\"sq-teamnews__kicker\">Team News<\/span>\n      <span class=\"sq-teamnews__pill\"><span class=\"sq-teamnews__pill-dot\"><\/span>Predicted<\/span>\n    <\/div>\n    <h2 class=\"sq-teamnews__h2\">France vs Spain Predicted Lineups<\/h2>\n  <\/div>\n\n  <!-- \u2500\u2500 CAVEAT (predicted only) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  \n  <p class=\"sq-teamnews__caveat\">\n    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"2\"\/>\n      <path d=\"M12 11.2v5M12 7.4v.4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n    <\/svg>\n    <span>Based on the XI each side started in their last match.<\/span>\n  <\/p>\n  \n\n  <!-- \u2500\u2500 TWO TEAMS, each on a pitch \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <div class=\"sq-teamnews__teams\">\n    \n    <section class=\"sq-teamnews__team\">\n      <div class=\"sq-teamnews__teamhead\">\n        \n        <h3 class=\"sq-teamnews__name\">France<\/h3>\n        <span class=\"sq-teamnews__formation\">4-2-3-1<\/span>\n      <\/div>\n      <div class=\"sq-teamnews__pitch\">\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--half\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--circle\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--spot\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxb\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalb\"><\/div>\n        <!-- bands render GK\u2192FWD; column-reverse puts GK at the goal end -->\n        <div class=\"sq-teamnews__bands\">\n          \n          <div class=\"sq-teamnews__band\" data-role=\"GK\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">M. Maignan<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DEF\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">L. Digne<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">W. Saliba<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">D. Upamecano<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">J. Kounde<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DM\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">A. Rabiot<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">M. Kone<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"AM\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">D. Doue<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">M. Olise<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">O. Dembele<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"FWD\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">K. Mbappe<\/span>\n            <\/div>\n            \n          <\/div>\n          \n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <section class=\"sq-teamnews__team\">\n      <div class=\"sq-teamnews__teamhead\">\n        \n        <h3 class=\"sq-teamnews__name\">Spain<\/h3>\n        <span class=\"sq-teamnews__formation\">4-2-3-1<\/span>\n      <\/div>\n      <div class=\"sq-teamnews__pitch\">\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--half\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--circle\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--spot\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxb\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalb\"><\/div>\n        <!-- bands render GK\u2192FWD; column-reverse puts GK at the goal end -->\n        <div class=\"sq-teamnews__bands\">\n          \n          <div class=\"sq-teamnews__band\" data-role=\"GK\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Unai Simon<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DEF\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Marc Cucurella<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Aymeric Laporte<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Pau Cubarsi<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Pedro Porro<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DM\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Fabian Ruiz<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Rodri<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"AM\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Alex Baena<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Dani Olmo<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Lamine Yamal<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"FWD\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Mikel Oyarzabal<\/span>\n            <\/div>\n            \n          <\/div>\n          \n        <\/div>\n      <\/div>\n    <\/section>\n    \n  <\/div>\n\n  <!-- \u2500\u2500 FOOTNOTES: one line per player with a note (any team) \u2500\u2500 -->\n  <ul class=\"sq-teamnews__notes\">\n    \n  <\/ul>\n\n  <div class=\"sq-teamnews__foot\">\n    <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M5 6l6 6-6 6\" stroke=\"var(--sq-primary)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n      <path d=\"M13 6l6 6-6 6\" stroke=\"var(--sq-primary)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <\/svg>\n    <span>Squawka \u00b7 Team News<\/span>\n  <\/div>\n\n<\/div>\n\n\n<p><!-- SQ-LINEUPS-END --><\/p>\n<h2>Potential Match-Winners<\/h2>\n<ul>\n<li><strong>Kylian Mbapp&eacute; (France):<\/strong> eight goals from 19 shots on target plus a team-high 16 chances created &#8212; the game&#8217;s single biggest threat and France&#8217;s reference point in attack.<\/li>\n<li><strong>Ousmane Dembel&eacute; (France):<\/strong> five goals and two assists off the right, giving France a second scoring outlet when Mbapp&eacute; is crowded out.<\/li>\n<li><strong>Mikel Oyarzabal (Spain):<\/strong> Spain&#8217;s four-goal leader off an xG of 3.55 and 10 shots on target &#8212; the man they turn to in the tight games.<\/li>\n<li><strong>Lamine Yamal (Spain):<\/strong> only one goal so far but an xG of 2.82 from 10 shots on target; overdue, and capable of settling a night like this on his own.<\/li>\n<\/ul>\n<p><!-- SQ-SIGNAL-START --><span id=\"sq-signal-block\"><\/span><\/p>\n\n\n<div class=\"sq-sigp\" style=\"font-family:inherit;color:#f4f8f1;background:radial-gradient(70% 90% at 18% 0%,rgba(168,224,57,.18) 0%,rgba(168,224,57,0) 60%),linear-gradient(135deg,#0e3f29 0%,#0a2c1f 60%,#08251a 100%);border-radius:16px;overflow:hidden;box-shadow:0 18px 42px -28px rgba(10,44,31,.6);margin:24px 0 32px\">\n<style>.sq-sigp *{box-sizing:border-box}.sq-sigp a{text-decoration:none;font-weight:800}.sq-sigp__in{padding:22px 22px 20px}@media(min-width:560px){.sq-sigp__in{padding:26px 28px 24px}}<\/style>\n<div class=\"sq-sigp__in\">\n  <div style=\"display:flex;align-items:center;gap:9px;margin-bottom:6px\">\n    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M4 5l7 7-7 7\" stroke=\"#a8e039\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><path d=\"M13 5l7 7-7 7\" stroke=\"#a8e039\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n    <span style=\"font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:900;color:#a8e039\">Squawka Signal<\/span>\n    <span style=\"margin-left:auto;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#d0b6ff;background:rgba(90,38,214,.28);border:1px solid rgba(208,182,255,.4);border-radius:999px;padding:4px 10px\">Data model<\/span>\n  <\/div>\n  <h2 style=\"margin:0 0 3px;font-size:20px;font-weight:900;letter-spacing:-.02em;color:#fff\">France vs Spain: the model read<\/h2>\n  <p style=\"margin:0 0 18px;font-size:12.5px;color:rgba(255,255,255,.6)\">Squawka Signal &mdash; win probability, tournament outlook &amp; Golden Boot watch. Updated daily.<\/p>\n  <div style=\"display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:13.5px;margin-bottom:7px\">\n    <span style=\"display:inline-flex;align-items:center;gap:8px\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAgNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHg9IjAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjMDAyMzk1Ii8+PHJlY3QgeD0iMjAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmZmZmZmIi8+PHJlY3QgeD0iNDAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZWQyOTM5Ii8+PC9zdmc+\" width=\"22\" height=\"14\" style=\"border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle\" alt=\"\">France<\/span>\n    <span style=\"display:inline-flex;align-items:center;gap:8px\">Spain<img loading=\"lazy\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAgNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI2MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2FhMTUxYiIvPjxyZWN0IHk9IjEwIiB3aWR0aD0iNjAiIGhlaWdodD0iMjAiIGZpbGw9IiNmMWJmMDAiLz48cmVjdCB4PSIxMSIgeT0iMTUiIHdpZHRoPSI5IiBoZWlnaHQ9IjExIiByeD0iMSIgZmlsbD0iI2FhMTUxYiIvPjxyZWN0IHg9IjEzIiB5PSIxNyIgd2lkdGg9IjUiIGhlaWdodD0iNyIgZmlsbD0iI2YxYmYwMCIvPjwvc3ZnPg==\" width=\"22\" height=\"14\" style=\"border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle\" alt=\"\"><\/span>\n  <\/div>\n  <div style=\"display:flex;height:34px;border-radius:9px;overflow:hidden;font-weight:900;font-size:14px\">\n    <div style=\"width:49%;background:#a8e039;color:#0a2c1f;display:flex;align-items:center;padding:0 12px\">49%<\/div>\n    <div style=\"width:51%;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:flex-end;padding:0 12px\">51%<\/div>\n  <\/div>\n  <p style=\"margin:7px 0 18px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:700\">Single-match win probability (draws split on penalties)<\/p>\n  <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px\"><div style=\"background:rgba(8,37,26,.5);border:1px solid rgba(168,224,57,.18);border-radius:13px;padding:14px 15px\"><div style=\"display:flex;align-items:center;gap:8px;font-weight:800;font-size:13px;margin-bottom:10px\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAgNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHg9IjAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjMDAyMzk1Ii8+PHJlY3QgeD0iMjAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmZmZmZmIi8+PHJlY3QgeD0iNDAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZWQyOTM5Ii8+PC9zdmc+\" width=\"20\" height=\"13\" style=\"border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle\" alt=\"\">France<\/div><div style=\"display:flex;gap:16px\"><div><div style=\"font-size:26px;font-weight:900;color:#a8e039;line-height:1\">67%<\/div><div style=\"font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:700;margin-top:3px\">Reach final<\/div><\/div><div><div style=\"font-size:26px;font-weight:900;color:#fff;line-height:1\">36%<\/div><div style=\"font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:700;margin-top:3px\">Win it<\/div><\/div><\/div><\/div><div style=\"background:rgba(8,37,26,.5);border:1px solid rgba(168,224,57,.18);border-radius:13px;padding:14px 15px\"><div style=\"display:flex;align-items:center;gap:8px;font-weight:800;font-size:13px;margin-bottom:10px\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAgNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI2MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2FhMTUxYiIvPjxyZWN0IHk9IjEwIiB3aWR0aD0iNjAiIGhlaWdodD0iMjAiIGZpbGw9IiNmMWJmMDAiLz48cmVjdCB4PSIxMSIgeT0iMTUiIHdpZHRoPSI5IiBoZWlnaHQ9IjExIiByeD0iMSIgZmlsbD0iI2FhMTUxYiIvPjxyZWN0IHg9IjEzIiB5PSIxNyIgd2lkdGg9IjUiIGhlaWdodD0iNyIgZmlsbD0iI2YxYmYwMCIvPjwvc3ZnPg==\" width=\"20\" height=\"13\" style=\"border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle\" alt=\"\">Spain<\/div><div style=\"display:flex;gap:16px\"><div><div style=\"font-size:26px;font-weight:900;color:#a8e039;line-height:1\">66%<\/div><div style=\"font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:700;margin-top:3px\">Reach final<\/div><\/div><div><div style=\"font-size:26px;font-weight:900;color:#fff;line-height:1\">37%<\/div><div style=\"font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:700;margin-top:3px\">Win it<\/div><\/div><\/div><\/div><\/div>\n  <div style=\"margin-bottom:16px\">\n    <div style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#a8e039;font-weight:800;margin-bottom:9px\">Golden Boot watch<\/div>\n    <div style=\"display:flex;flex-wrap:wrap;gap:8px\"><span style=\"display:inline-flex;align-items:center;gap:7px;background:rgba(8,37,26,.55);border:1px solid rgba(168,224,57,.18);border-radius:999px;padding:6px 12px;font-weight:800;font-size:13px;color:#fff\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAgNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHg9IjAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjMDAyMzk1Ii8+PHJlY3QgeD0iMjAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZmZmZmZmIi8+PHJlY3QgeD0iNDAuMDAwIiB3aWR0aD0iMjAuMzAwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjZWQyOTM5Ii8+PC9zdmc+\" width=\"20\" height=\"13\" style=\"border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle\" alt=\"\">Kylian Mbappe <b style=\"color:#a8e039\">8<\/b><\/span><span style=\"display:inline-flex;align-items:center;gap:7px;background:rgba(8,37,26,.55);border:1px solid rgba(168,224,57,.18);border-radius:999px;padding:6px 12px;font-weight:800;font-size:13px;color:#fff\"><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAgNDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI2MCIgaGVpZ2h0PSI0MCIgZmlsbD0iI2FhMTUxYiIvPjxyZWN0IHk9IjEwIiB3aWR0aD0iNjAiIGhlaWdodD0iMjAiIGZpbGw9IiNmMWJmMDAiLz48cmVjdCB4PSIxMSIgeT0iMTUiIHdpZHRoPSI5IiBoZWlnaHQ9IjExIiByeD0iMSIgZmlsbD0iI2FhMTUxYiIvPjxyZWN0IHg9IjEzIiB5PSIxNyIgd2lkdGg9IjUiIGhlaWdodD0iNyIgZmlsbD0iI2YxYmYwMCIvPjwvc3ZnPg==\" width=\"20\" height=\"13\" style=\"border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle\" alt=\"\">Mikel Oyarzabal <b style=\"color:#a8e039\">4<\/b><\/span><\/div>\n  <\/div>\n  <div style=\"display:flex;flex-wrap:wrap;gap:10px\">\n    <a href=\"https:\/\/www.squawka.com\/us\/outright-markets\/world-cup-2026-outright-odds\/\" style=\"flex:1;min-width:180px;text-align:center;background:#5a26d6;color:#fff;border-radius:9px;padding:11px 14px;font-size:12.5px;letter-spacing:.04em\">Tournament Winner Signal &rarr;<\/a>\n    <a href=\"https:\/\/www.squawka.com\/us\/outright-markets\/world-cup-2026-golden-boot-odds\/\" style=\"flex:1;min-width:180px;text-align:center;background:transparent;border:1.5px solid #5a26d6;color:#d0b6ff;border-radius:9px;padding:11px 14px;font-size:12.5px;letter-spacing:.04em\">Golden Boot Signal &rarr;<\/a>\n  <\/div>\n<\/div><\/div>\n\n\n<p><!-- SQ-SIGNAL-END --><\/p>\n<h2>France vs Spain Prediction<\/h2>\n<p>This has the look of the tie of the tournament: two sides who defend for their lives and carry a match-winner at the other end. The margins are so fine that the market and our model don&#8217;t even agree who is ahead: Kalshi makes France marginal favorites, while our Signal model leans Spain at 51%. We expect a tight game with a goal in it at each end, decided by a moment of quality &#8212; and Mbapp&eacute; is the likeliest man to provide it. Our lean is <a href=\"\/en\/go\/kalshi?q=us-all-all-wof-s-spo\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><strong>Kylian Mbapp&eacute; to score anytime<\/strong><\/a>, with both teams to score in a low-margin game the supporting play. New to prediction markets? Our <a href=\"https:\/\/www.squawka.com\/us\/bet\/betting-sites\/kalshi\/\">Kalshi review<\/a> explains how it works, and there is more on the run-in at our <a href=\"https:\/\/www.squawka.com\/us\/world-cup-2026\/\">World Cup 2026 hub<\/a>. Kick-off is 3:00 PM ET on Tuesday.<\/p>\n<p><small>Odds correct at the time of writing. Please gamble responsibly.<\/small><\/p>\n<p><em>Must be 21+. GAMBLING PROBLEM? Call 1-800-GAMBLER<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>France meet Spain on Tuesday, July 14 at 3:00 PM ET \/ 2:00 PM CT \/ 12:00 PM PT in the World Cup 2026 semi-finals, a heavyweight last-four tie between the tournament\u2019s two form teams. Our France vs Spain prediction starts with how little separates them. France arrive on a six-match winning run having conceded&#8230;<\/p>\n","protected":false},"author":393,"featured_media":21655,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"france vs spain prediction","_yoast_wpseo_title":"France vs Spain: World Cup 2026 Prediction | Squawka","_yoast_wpseo_metadesc":"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.","footnotes":""},"tags":[273],"news-category":[328],"class_list":["post-21653","news","type-news","status-publish","has-post-thumbnail","hentry","tag-world-cup-2026","news-category-world-cup"],"acf":{"external_featured_image_url":"","hide_featured_image_pattern":true},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>France vs Spain: World Cup 2026 Prediction | Squawka<\/title>\n<meta name=\"description\" content=\"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"France vs Spain: Predictions, Picks, Odds &amp; Lineups\" \/>\n<meta property=\"og:description\" content=\"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/\" \/>\n<meta property=\"og:site_name\" content=\"Squawka | US\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SquawkaFootballNews\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-11T10:22:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1167\" \/>\n\t<meta property=\"og:image:height\" content=\"590\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Squawka\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/\",\"url\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/\",\"name\":\"France vs Spain: World Cup 2026 Prediction | Squawka\",\"isPartOf\":{\"@id\":\"https:\/\/www.squawka.com\/us\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg\",\"datePublished\":\"2026-07-11T10:22:46+00:00\",\"dateModified\":\"2026-07-11T10:22:47+00:00\",\"description\":\"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#primaryimage\",\"url\":\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg\",\"contentUrl\":\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg\",\"width\":1167,\"height\":590},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.squawka.com\/us\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"News\",\"item\":\"https:\/\/www.squawka.com\/us\/news\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"France vs Spain: Predictions, Picks, Odds &#038; Lineups\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.squawka.com\/us\/#website\",\"url\":\"https:\/\/www.squawka.com\/us\/\",\"name\":\"Squawka US\",\"description\":\"Soccer News and Predictions | Stats, Betting\",\"publisher\":{\"@id\":\"https:\/\/www.squawka.com\/us\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.squawka.com\/us\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.squawka.com\/us\/#organization\",\"name\":\"Squawka US\",\"url\":\"https:\/\/www.squawka.com\/us\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.squawka.com\/us\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/23072352\/Squawka-Logo.jpg\",\"contentUrl\":\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/23072352\/Squawka-Logo.jpg\",\"width\":1000,\"height\":1000,\"caption\":\"Squawka US\"},\"image\":{\"@id\":\"https:\/\/www.squawka.com\/us\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SquawkaFootballNews\/\",\"https:\/\/x.com\/Squawka\",\"https:\/\/www.instagram.com\/squawkafootball\/\"],\"description\":\"Squawka is a football editorial site covering the Premier League, Champions League, MLS, Liga MX, FIFA World Cup 2026 and the wider international game. We publish match previews, tactical analysis, player and team stats, outright odds, betting tips, streaming guides and long-form features for a committed football audience. Founded in the UK and part of OneTwenty Group, Squawka now runs localised editions for the UK (squawka.com\/en\/), United States (squawka.com\/us\/), Mexican-Spanish (squawka.com\/us-es\/), Ireland, Netherlands, Nigeria, Kenya, Uganda, South Africa and Ghana. Each edition is editorially tailored to its market, with locale-specific competition focus, operator compliance and commercial partnerships. Traffic skews toward high-intent football readers \u2014 supporters researching fixtures, form, odds and where to watch \u2014 making Squawka a strong fit for sportsbook, prediction-market, DFS, streaming and sports-merchandise brands across the UK, Europe and North America.\",\"foundingDate\":\"2012-06-11\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"France vs Spain: World Cup 2026 Prediction | Squawka","description":"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/","og_locale":"en_US","og_type":"article","og_title":"France vs Spain: Predictions, Picks, Odds & Lineups","og_description":"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.","og_url":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/","og_site_name":"Squawka | US","article_publisher":"https:\/\/www.facebook.com\/SquawkaFootballNews\/","article_modified_time":"2026-07-11T10:22:47+00:00","og_image":[{"width":1167,"height":590,"url":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@Squawka","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/","url":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/","name":"France vs Spain: World Cup 2026 Prediction | Squawka","isPartOf":{"@id":"https:\/\/www.squawka.com\/us\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#primaryimage"},"image":{"@id":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#primaryimage"},"thumbnailUrl":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg","datePublished":"2026-07-11T10:22:46+00:00","dateModified":"2026-07-11T10:22:47+00:00","description":"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.","breadcrumb":{"@id":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#primaryimage","url":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg","contentUrl":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/07\/11061423\/wc2026-match-preview-france-vs-spain.jpg","width":1167,"height":590},{"@type":"BreadcrumbList","@id":"https:\/\/www.squawka.com\/us\/news\/world-cup\/match-preview-france-vs-spain-07-14-26-world-cup-2026-semifinals\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.squawka.com\/us\/"},{"@type":"ListItem","position":2,"name":"News","item":"https:\/\/www.squawka.com\/us\/news\/"},{"@type":"ListItem","position":3,"name":"France vs Spain: Predictions, Picks, Odds &#038; Lineups"}]},{"@type":"WebSite","@id":"https:\/\/www.squawka.com\/us\/#website","url":"https:\/\/www.squawka.com\/us\/","name":"Squawka US","description":"Soccer News and Predictions | Stats, Betting","publisher":{"@id":"https:\/\/www.squawka.com\/us\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.squawka.com\/us\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.squawka.com\/us\/#organization","name":"Squawka US","url":"https:\/\/www.squawka.com\/us\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.squawka.com\/us\/#\/schema\/logo\/image\/","url":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/23072352\/Squawka-Logo.jpg","contentUrl":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/23072352\/Squawka-Logo.jpg","width":1000,"height":1000,"caption":"Squawka US"},"image":{"@id":"https:\/\/www.squawka.com\/us\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SquawkaFootballNews\/","https:\/\/x.com\/Squawka","https:\/\/www.instagram.com\/squawkafootball\/"],"description":"Squawka is a football editorial site covering the Premier League, Champions League, MLS, Liga MX, FIFA World Cup 2026 and the wider international game. We publish match previews, tactical analysis, player and team stats, outright odds, betting tips, streaming guides and long-form features for a committed football audience. Founded in the UK and part of OneTwenty Group, Squawka now runs localised editions for the UK (squawka.com\/en\/), United States (squawka.com\/us\/), Mexican-Spanish (squawka.com\/us-es\/), Ireland, Netherlands, Nigeria, Kenya, Uganda, South Africa and Ghana. Each edition is editorially tailored to its market, with locale-specific competition focus, operator compliance and commercial partnerships. Traffic skews toward high-intent football readers \u2014 supporters researching fixtures, form, odds and where to watch \u2014 making Squawka a strong fit for sportsbook, prediction-market, DFS, streaming and sports-merchandise brands across the UK, Europe and North America.","foundingDate":"2012-06-11"}]}},"yoast_title":"France vs Spain: World Cup 2026 Prediction | Squawka","yoast_description":"France vs Spain prediction, picks and odds for the World Cup 2026 semi-final. Mbappe leads the scorer market in a razor-thin heavyweight tie.","yoast_keyword":"france vs spain prediction","_links":{"self":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news\/21653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news"}],"about":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/types\/news"}],"author":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/users\/393"}],"version-history":[{"count":3,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news\/21653\/revisions"}],"predecessor-version":[{"id":21658,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news\/21653\/revisions\/21658"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/media\/21655"}],"wp:attachment":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/media?parent=21653"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/tags?post=21653"},{"taxonomy":"news-category","embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news-category?post=21653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}