This year’s Holiday Bowl is an intriguing matchup between teams that had drastically different regular seasons, and that shows in the betting odds for Louisville vs. USC on Thursday, Dec. 28 in San Diego, Calif.
USC had high hopes in 2023 thanks to the return of 2022 Heisman Trophy-winning QB Caleb Williams, but the Trojans’ defense never was up to the challenge. After starting 6-0, USC dropped five of its last six to finish 7-5.
A slightly above average season likely would have been good enough for Louisville as it dealt with the arrival of Jeff Brohm as a first-year coach and significant turnover. Instead, the Cardinals raced to a 10-1 record before falling to rival Kentucky in the regular season finale and then Florida State in the ACC Championship game.
Still, Louisville has reason to believe things are looking up heading into the 2024 season.
Holiday Bowl Betting Odds & Preview
In normal times, it would be weird to see USC as an underdog for a game in SoCal against a non-explosive team travelling across the country. These are not, however, normal times.
Seventeen USC players have entered the transfer portal, and some other key starters, including Williams, have opted out of the game. In addition to that, USC head coach Lincoln Riley has overhauled his defensive coaching staff, so it’s hard to expect big things out of the Trojans at Petco Park on Thursday.
Because of that, it seems fair that Louisville is favored by 7 points. The Cardinals also had some players enter the transfer portal, but they are much more together as a team than the Trojans.
The key transfers are RB Jawhar Jordan, who led the team in rushing, WR Jamari Thrash, who led the team in receiving, and edge rusher Kameron Wilson.
What’s really interesting is that the total for Thursday’s game is 59 points. Will either team have enough playmakers available to light up the scoreboard?
.cta--body { display: grid; } .cta--row { order: var(--cta--row-order, 0); } .cta--rank-number::before { content: attr(rank-number); /* Display the rank number of each row */ } .cta--row[data-visible*="false"] { display: none !important; } /** body { background: red!important; } */ .cta--basic { --cta--basic--accent--color: #9a3939; font-family: Arial, sans-serif; font-size: 15px; background: white; overflow: hidden; border-radius: 5px; text-align: center; border: 1px solid #ccc; color: black; } .cta--basic, .cta--basic * { box-sizing: border-box; line-height: 1; white-space: pre-line; } .cta--basic a:not(.cta--basic--field-actionLink) { color: var(--cta--basic--accent--color); } .cta--basic--field-headerColumns, .cta--basic--field-mobileHeader { background: var(--cta--basic--field-header-bg, black); color: white; font-size: var(--cta--basic--field-headerColumns--size, 1.5em); } .cta--basic--field-mobileHeader { padding: 5px; } .cta--basic--field-headerColumn { display: none; } .cta--basic--row { display: flex; position: relative; flex-direction: var(--cta--basic--row-direction, row); flex-wrap: var(--cta--basic--row-wrap, wrap); align-items: center; border-bottom: 1px solid #ccc; } .cta--basic--col { flex: var(--cta--basic--col-flex, 0 0 50%); order: var(--cta--basic--col-order, 0); max-width: 50%; overflow-wrap: anywhere; display: flex; flex-direction: column; align-items: center; padding: 10px 5px; gap: 0.5em; } .cta--basic--operator .cta--basic--field-operatorLogo { width: 100%; max-width: 120px; max-height: 60px; aspect-ratio: 4/2; object-fit: contain; } .rawhtml { div.cta-template.cta--basic { padding: 20px 0 20px; border: solid lightgray; border-width: 1px 0; } } /** Columns */ /** Rank */ .cta--basic--rank { } /** Operator */ .cta--basic--field-operatorLogo { transition: transform 1s; } /** Bonus */ .cta--basic--bonus { color: var(--cta--basic--accent--color); --cta--basic--col-order: 2; } .cta--basic--field-bonusText { font-size: var(--cta--basic--field-bonusText--size, 1.75em); /* font-weight: 800; text-transform: uppercase; */ } /** Info */ .cta--basic--info { --cta--basic--col-order: 1; } .cta--basic--field-infoList ul { /* list-style: inside; */ margin: 0px; padding-inline-start: 20px; text-align: left; white-space: normal; } .cta--basic--field-infoList ::marker { content: '✓'; } .cta--basic--field-infoList ul li { padding-inline-start: 0.45em; } .cta--basic--field-infoList ul li:not(:last-child) { margin-bottom: 0.45em; } /** Action */ .cta--basic--action { --cta--basic--col-order: 3; } .cta--basic--field-actionLink { background-color: var(--cta--basic--accent--color); border-radius: 5px; padding: 10px 15px; min-width: 70%; color: #fff; text-decoration: none; font-weight: 600; display: inline-block; text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.4); font-weight: 800; font-size: 1.15em; border: 1px solid #783737; transition: all 0.3s; text-transform: uppercase; } /** Footer */ .cta--basic--field-footer { background-color: #f3f3f3; line-height: 1.5em; font-size: 0.875em; font-weight: 400; padding: 0px 5px; } /* Mobile Styling */ @media (max-width: 767px) { .cta--basic--rank { position: absolute; top: 0; left: 0; padding: 5px; } .cta--basic--field-bonusText { --cta--basic--field-bonusText--size: 1.25em; } } /* Desktop Styling */ @media (min-width: 768px) { .cta--basic { --cta--basic--size: 1rem; } .cta--basic--row { --cta--basic--row-direction: row; } .cta--basic--field-headerColumns { --cta--basic--field-headerColumns--size: 1.5em; display: flex; justify-content: center; } .cta--basic--field-headerColumn { display: block; padding: 10px 5px; } .cta--basic--field-mobileHeader { display: none; } .cta--basic--field-bonusText { --cta--basic--field-bonusText--size: 2.25em; } .cta--basic--col, .cta--basic--field-headerColumn { flex: var(--cta--basic--col-flex, 1); max-width: initial; } .cta--basic--rank { font-size: 2em; padding: 10px 0px 10px 10px; } .cta--basic--rank, .cta--basic--has-rank .cta--basic--field-headerColumn:first-child:not(:last-child) { --cta--basic--col-flex: 0 0 85px; } .cta--basic--has-rank .cta--basic--field-headerColumn:first-child:not(:last-child) { padding: 10px 0px 10px 10px; } .cta--basic--info, .cta--basic--bonus, .cta--basic--action { --cta--basic--col-order: 0; } .cta--basic--operator .cta--basic--field-operatorLogo { max-width: 200px; max-height: 100px; } }
- Use Bonus Code: ROCKYBET
- Up to $1,500 in Bonus Bets*
- *Bonus Bets Expire in 7 Days. One New Customer Offer Only. Add’l terms
- Payouts in 1 Day
- Gambling problem? Call 1-800-GAMBLER. 21+. KY Only
- Use Bonus Code: ROCKYBET
- Redeem BETMGM Rewards
- Payouts in 1 Day
- 21+. Gambling Problem? Call 1-800-GAMBLER
- Use Bonus Code: ROCKYBET
- Up to $1,500 in Bonus Bets*
- *Bonus Bets Expire in 7 Days. One New Customer Offer Only. Add’l terms
- Payouts in 1 Day
- 21+ and present in OH. Gambling Problem? Call 1-800-GAMBLER
- Use Bonus Code: ROCKYBET
- Up to $250 in Bonus Bets*
- *Bonus Bet Expires in 7 Days. One New Customer Offer Only. Add’l terms
- Payouts in 1 Day
- 21+. NV Only. Gambling Problem? Call 1-800-522-4700
- Use Bonus Code: ROCKYBET
- Up to $1,500 in Bonus Bets*
- *Bonus Bets Expire in 7 Days. One New Customer Offer Only. Add’l terms
- 21+ and present in MA. Gambling Problem? GamblingHelpLineMA.org or call (800)-327-5050 for 24/7 support. Live chat at GameSenseMA.com or call 1-800-GAM-1234
- Use Bonus Code: ROCKYBET
- Up to $1,500 in Bonus Bets*
- *Bonus Bets Expire in 7 Days. One New Customer Offer Only. Add’l terms
- Payouts in 1 Day
- Gambling problem? Call 877-718-5543 or visit morethanagame.nc.gov. 21+ NC Only
- Use Bonus Code: ROCKYBET
- Up to $1,500 in Bonus Bets*
- *Bonus Bets Expire in 7 Days. One New Customer Offer Only. Add’l terms
- Payouts in 1 Day
- 21+. Gambling Problem? Call 1-800-GAMBLER
- Use Bonus Code: ROCKYBET
- Up to $1,500 in Bonus Bets*
- *Bonus Bets Expire in 7 Days. One New Customer Offer Only. Add’l terms
- Payouts in 1 Day
- 21+. Gambling Problem? Call 1-800-GAMBLER
const ctaBasic = this.querySelector('.cta-template');{function filterByGeo(currentGeoLocation, customDocument) {const rows = customDocument.querySelectorAll('.cta--row');let hideHeaderFooter = true;Array.from(rows).forEach(row => {let geoCriteriaMet = false;const ctaAllowedGeos = row.getAttribute('geo');const allowedGeosArray = ctaAllowedGeos?.split(' ');let currentGeoLocationArray = currentGeoLocation?.split('-');if (currentGeoLocationArray !== undefined && !['CA', 'US'].includes(currentGeoLocationArray[0])) {currentGeoLocationArray[0] = 'UN';}if (currentGeoLocation) {allowedGeosArray.every(geo => {const geoSplit = geo?.split('-');if (geoSplit[1] == '' || geoSplit[1] == undefined || geoSplit[1]?.toLowerCase() == 'undefined') {if (geoSplit[0] == currentGeoLocationArray[0]) {geoCriteriaMet = true;return false;}}else {if (JSON.stringify(geoSplit) === JSON.stringify(currentGeoLocationArray)) {geoCriteriaMet = true;return false;}}return true;});}if (currentGeoLocation === null || ctaAllowedGeos === "" || geoCriteriaMet) {hideHeaderFooter = false;row.setAttribute('data-visible', 'true');} else {row.setAttribute('data-visible', 'false');}});ctaBasic.style = hideHeaderFooter ? "visibility:hidden;height:0px;overflow:hidden;border:none;" : undefined;}const observer = new MutationObserver((mutationsList) => {for (const mutation of mutationsList) {if (mutation.type !== 'attributes') return;if (mutation.attributeName.startsWith('geo')) {filterByGeo(mutation.target.getAttribute('geo'), this);return;}}});observer.observe(ctaBasic, { attributes: true });const elementNode = document.querySelector('.cta--body');if(elementNode){const ctaBodyObserver = new MutationObserver((mutationsList) => {for (const mutation of mutationsList) {if (mutation.type !== 'childList') return;filterByGeo(mutation.target.getAttribute('geo'), this);const rowNodes = document.querySelectorAll('.cta--row');if(rowNodes){const rowObserver = new MutationObserver(function(mutations) {mutations.forEach(function(mutation) {if (mutation.type === 'attributes' && mutation.attributeName.startsWith('geo')) {filterByGeo(ctaBasic.getAttribute('geo'), this);}});});rowNodes.forEach(function(node) {rowObserver.observe(node, { attributes: true });});}}});ctaBodyObserver.observe(elementNode, { childList: true })}const editRowNodes = document.querySelectorAll('.cta--row');if(editRowNodes){const editRowObserver = new MutationObserver(function(mutations) {mutations.forEach(function(mutation) {if (mutation.type === 'attributes' && mutation.attributeName.startsWith('geo')) {filterByGeo(ctaBasic.getAttribute('geo'), this);}});});editRowNodes.forEach(function(node) {editRowObserver.observe(node, { attributes: true });});}filterByGeo(ctaBasic.getAttribute('geo'), this);}const hasRankNumber = this.querySelector('.cta--rank-number');if( hasRankNumber ){const observer = new MutationObserver((mutationsList) => {for (const m of mutationsList) {if ( m.type !== 'attributes' ) return;if (m.attributeName.startsWith('geo')) {const rows = this.querySelectorAll('.cta--row');const sortedRows = Array.from(rows).filter(row => getComputedStyle(row)?.display !== 'none').sort(function (a, b) {let orderA = getComputedStyle(a)['order'];let orderB = getComputedStyle(b)['order'];return orderA - orderB;});sortedRows.forEach((row, i) => {const rankContainer = row.querySelector('.cta--rank-number');rankContainer.setAttribute('rank-number', (i+1));});return;}}});observer.observe(ctaBasic, { attributes: true });}
.cta--body { display: grid; } .cta--row { order: var(--cta--row-order, 0); } .cta--rank-number::before { content: attr(rank-number); /* Display the rank number of each row */ } .cta--row[data-visible*="false"] { display: none !important; } /** body { background: red!important; } */ .cta--basic { --cta--basic--accent--color: #9a3939; font-family: Arial, sans-serif; font-size: 15px; background: white; overflow: hidden; border-radius: 5px; text-align: center; border: 1px solid #ccc; color: black; } .cta--basic, .cta--basic * { box-sizing: border-box; line-height: 1; white-space: pre-line; } .cta--basic a:not(.cta--basic--field-actionLink) { color: var(--cta--basic--accent--color); } .cta--basic--field-headerColumns, .cta--basic--field-mobileHeader { background: var(--cta--basic--field-header-bg, black); color: white; font-size: var(--cta--basic--field-headerColumns--size, 1.5em); } .cta--basic--field-mobileHeader { padding: 5px; } .cta--basic--field-headerColumn { display: none; } .cta--basic--row { display: flex; position: relative; flex-direction: var(--cta--basic--row-direction, row); flex-wrap: var(--cta--basic--row-wrap, wrap); align-items: center; border-bottom: 1px solid #ccc; } .cta--basic--col { flex: var(--cta--basic--col-flex, 0 0 50%); order: var(--cta--basic--col-order, 0); max-width: 50%; overflow-wrap: anywhere; display: flex; flex-direction: column; align-items: center; padding: 10px 5px; gap: 0.5em; } .cta--basic--operator .cta--basic--field-operatorLogo { width: 100%; max-width: 120px; max-height: 60px; aspect-ratio: 4/2; object-fit: contain; } .rawhtml { div.cta-template.cta--basic { padding: 20px 0 20px; border: solid lightgray; border-width: 1px 0; } } /** Columns */ /** Rank */ .cta--basic--rank { } /** Operator */ .cta--basic--field-operatorLogo { transition: transform 1s; } /** Bonus */ .cta--basic--bonus { color: var(--cta--basic--accent--color); --cta--basic--col-order: 2; } .cta--basic--field-bonusText { font-size: var(--cta--basic--field-bonusText--size, 1.75em); /* font-weight: 800; text-transform: uppercase; */ } /** Info */ .cta--basic--info { --cta--basic--col-order: 1; } .cta--basic--field-infoList ul { /* list-style: inside; */ margin: 0px; padding-inline-start: 20px; text-align: left; white-space: normal; } .cta--basic--field-infoList ::marker { content: '✓'; } .cta--basic--field-infoList ul li { padding-inline-start: 0.45em; } .cta--basic--field-infoList ul li:not(:last-child) { margin-bottom: 0.45em; } /** Action */ .cta--basic--action { --cta--basic--col-order: 3; } .cta--basic--field-actionLink { background-color: var(--cta--basic--accent--color); border-radius: 5px; padding: 10px 15px; min-width: 70%; color: #fff; text-decoration: none; font-weight: 600; display: inline-block; text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.4); font-weight: 800; font-size: 1.15em; border: 1px solid #783737; transition: all 0.3s; text-transform: uppercase; } /** Footer */ .cta--basic--field-footer { background-color: #f3f3f3; line-height: 1.5em; font-size: 0.875em; font-weight: 400; padding: 0px 5px; } /* Mobile Styling */ @media (max-width: 767px) { .cta--basic--rank { position: absolute; top: 0; left: 0; padding: 5px; } .cta--basic--field-bonusText { --cta--basic--field-bonusText--size: 1.25em; } } /* Desktop Styling */ @media (min-width: 768px) { .cta--basic { --cta--basic--size: 1rem; } .cta--basic--row { --cta--basic--row-direction: row; } .cta--basic--field-headerColumns { --cta--basic--field-headerColumns--size: 1.5em; display: flex; justify-content: center; } .cta--basic--field-headerColumn { display: block; padding: 10px 5px; } .cta--basic--field-mobileHeader { display: none; } .cta--basic--field-bonusText { --cta--basic--field-bonusText--size: 2.25em; } .cta--basic--col, .cta--basic--field-headerColumn { flex: var(--cta--basic--col-flex, 1); max-width: initial; } .cta--basic--rank { font-size: 2em; padding: 10px 0px 10px 10px; } .cta--basic--rank, .cta--basic--has-rank .cta--basic--field-headerColumn:first-child:not(:last-child) { --cta--basic--col-flex: 0 0 85px; } .cta--basic--has-rank .cta--basic--field-headerColumn:first-child:not(:last-child) { padding: 10px 0px 10px 10px; } .cta--basic--info, .cta--basic--bonus, .cta--basic--action { --cta--basic--col-order: 0; } .cta--basic--operator .cta--basic--field-operatorLogo { max-width: 200px; max-height: 100px; } }
- Click Claim Promo to Activate
- Bet $5 Get $150 in Bonus Bets if Your Bet Wins
- PLUS Get 3 Free Months of NBA League Pass
- Gambling Problem? Call 1-800-GAMBLER. 21+ VT Only
- Click Claim Promo to Activate
- Bet $5 Get $150 in Bonus Bets if Your Bet Wins
- PLUS Get 3 Free Months of NBA League Pass
- 21+ and present in OH. Gambling Problem? Call 1-800-GAMBLER
- Click Claim Promo to Activate
- Bet $5 Get $150 in Bonus Bets if Your Bet Wins
- PLUS Get 3 Free Months of NBA League Pass
- 21+ and present in MA. Gambling Problem? GamblingHelpLineMA.org or call (800)-327-5050 for 24/7 support. Live chat at GameSenseMA.com or call 1-800-GAM-1234
- Click Claim Promo to Activate
- Bet $5 Get $150 in Bonus Bets if Your Bet Wins
- PLUS Get 3 Free Months of NBA League Pass
- 21+ and present in KY. Gambling Problem? Call 1-800-GAMBLER
- Click Claim Promo to Activate
- Bet $5 Get $150 in Bonus Bets if Your Bet Wins
- PLUS Get 3 Free Months of NBA League Pass
- Gambling problem? Call 877-718-5543 or visit morethanagame.nc.gov. 21+ NC Only
- Click Claim Promo to Activate
- Bet $5 Get $150 in Bonus Bets if Your Bet Wins
- PLUS Get 3 Free Months of NBA League Pass
- Available on Desktop, Android & iOS
const ctaBasic = this.querySelector('.cta-template');{function filterByGeo(currentGeoLocation, customDocument) {const rows = customDocument.querySelectorAll('.cta--row');let hideHeaderFooter = true;Array.from(rows).forEach(row => {let geoCriteriaMet = false;const ctaAllowedGeos = row.getAttribute('geo');const allowedGeosArray = ctaAllowedGeos?.split(' ');let currentGeoLocationArray = currentGeoLocation?.split('-');if (currentGeoLocationArray !== undefined && !['CA', 'US'].includes(currentGeoLocationArray[0])) {currentGeoLocationArray[0] = 'UN';}if (currentGeoLocation) {allowedGeosArray.every(geo => {const geoSplit = geo?.split('-');if (geoSplit[1] == '' || geoSplit[1] == undefined || geoSplit[1]?.toLowerCase() == 'undefined') {if (geoSplit[0] == currentGeoLocationArray[0]) {geoCriteriaMet = true;return false;}}else {if (JSON.stringify(geoSplit) === JSON.stringify(currentGeoLocationArray)) {geoCriteriaMet = true;return false;}}return true;});}if (currentGeoLocation === null || ctaAllowedGeos === "" || geoCriteriaMet) {hideHeaderFooter = false;row.setAttribute('data-visible', 'true');} else {row.setAttribute('data-visible', 'false');}});ctaBasic.style = hideHeaderFooter ? "visibility:hidden;height:0px;overflow:hidden;border:none;" : undefined;}const observer = new MutationObserver((mutationsList) => {for (const mutation of mutationsList) {if (mutation.type !== 'attributes') return;if (mutation.attributeName.startsWith('geo')) {filterByGeo(mutation.target.getAttribute('geo'), this);return;}}});observer.observe(ctaBasic, { attributes: true });const elementNode = document.querySelector('.cta--body');if(elementNode){const ctaBodyObserver = new MutationObserver((mutationsList) => {for (const mutation of mutationsList) {if (mutation.type !== 'childList') return;filterByGeo(mutation.target.getAttribute('geo'), this);const rowNodes = document.querySelectorAll('.cta--row');if(rowNodes){const rowObserver = new MutationObserver(function(mutations) {mutations.forEach(function(mutation) {if (mutation.type === 'attributes' && mutation.attributeName.startsWith('geo')) {filterByGeo(ctaBasic.getAttribute('geo'), this);}});});rowNodes.forEach(function(node) {rowObserver.observe(node, { attributes: true });});}}});ctaBodyObserver.observe(elementNode, { childList: true })}const editRowNodes = document.querySelectorAll('.cta--row');if(editRowNodes){const editRowObserver = new MutationObserver(function(mutations) {mutations.forEach(function(mutation) {if (mutation.type === 'attributes' && mutation.attributeName.startsWith('geo')) {filterByGeo(ctaBasic.getAttribute('geo'), this);}});});editRowNodes.forEach(function(node) {editRowObserver.observe(node, { attributes: true });});}filterByGeo(ctaBasic.getAttribute('geo'), this);}const hasRankNumber = this.querySelector('.cta--rank-number');if( hasRankNumber ){const observer = new MutationObserver((mutationsList) => {for (const m of mutationsList) {if ( m.type !== 'attributes' ) return;if (m.attributeName.startsWith('geo')) {const rows = this.querySelectorAll('.cta--row');const sortedRows = Array.from(rows).filter(row => getComputedStyle(row)?.display !== 'none').sort(function (a, b) {let orderA = getComputedStyle(a)['order'];let orderB = getComputedStyle(b)['order'];return orderA - orderB;});sortedRows.forEach((row, i) => {const rankContainer = row.querySelector('.cta--rank-number');rankContainer.setAttribute('rank-number', (i+1));});return;}}});observer.observe(ctaBasic, { attributes: true });}
Holiday Bowl Prop Bet
The absence of Jordan likely means a bigger role is coming for Isaac Guerendo. While Jordan got 181 carries, Guerendo got plenty of work of his own with 109 carries.
Guerendo was effective, too. He averaged 6 yards per carry on his way to 649 yards. That includes a 73-yard gain on one play, so he clearly has big-play ability. Plus, he scored eight touchdowns.
In the Holiday Bowl, he’ll face a USC team that allowed 33 rushing touchdowns this season. That’s almost three rushing touchdowns PER GAME! It’s true that the Trojans have brand new defensive coaches, but it’s not fair to expect them to drastically improve the defense in one month.
Guerendo should get plenty of touches against a lackluster defense. Count on him to get into the endzone.
Holiday Bowl Best Bet
Louisville -7 (-110 odds at Caesars Sportsbook)
There are so many new and moving pieces at USC that it’s difficult to see the Trojans carrying over the strong offense from the regular season to this bowl game.
Third-year sophomore Miller Moss, who completed 23-of-32 passes for 309 yards this season, will start for USC. He won’t exactly have a bevy of accomplished skill players to get the ball to, though. That’s not a good formula for explosive plays, especially when Louisville has a strong defense.
Place your Holiday Bowl wager with big bonuses from Kentucky online sportsbooks
The Cardinals, on the other hand, will have the benefit of starting QB Jack Plummer leading the charge. Yes, he’ll be down his top rusher and his top receiver, but the Cardinals won’t have to dig as deep in their depth chart for replacements as the Trojans will.
Louisville averaged 30 points per game this season against much tougher defenses than they will face on Thursday. Plus, the Cardinals feel like they have more to play for after a good first season under Brohm.
Don’t underestimate the value of the weather, either. Louisville players are used to bad winter weather, so they will welcome the higher temperatures in San Diego. It won’t be anything special for the USC players.
.cta--body { display: grid; } .cta--row { order: var(--cta--row-order, 0); } .cta--rank-number::before { content: attr(rank-number); /* Display the rank number of each row */ } .cta--row[data-visible*="false"] { display: none !important; } /** body { background: red!important; } */ .cta--basic { --cta--basic--accent--color: #9a3939; font-family: Arial, sans-serif; font-size: 15px; background: white; overflow: hidden; border-radius: 5px; text-align: center; border: 1px solid #ccc; color: black; } .cta--basic, .cta--basic * { box-sizing: border-box; line-height: 1; white-space: pre-line; } .cta--basic a:not(.cta--basic--field-actionLink) { color: var(--cta--basic--accent--color); } .cta--basic--field-headerColumns, .cta--basic--field-mobileHeader { background: var(--cta--basic--field-header-bg, black); color: white; font-size: var(--cta--basic--field-headerColumns--size, 1.5em); } .cta--basic--field-mobileHeader { padding: 5px; } .cta--basic--field-headerColumn { display: none; } .cta--basic--row { display: flex; position: relative; flex-direction: var(--cta--basic--row-direction, row); flex-wrap: var(--cta--basic--row-wrap, wrap); align-items: center; border-bottom: 1px solid #ccc; } .cta--basic--col { flex: var(--cta--basic--col-flex, 0 0 50%); order: var(--cta--basic--col-order, 0); max-width: 50%; overflow-wrap: anywhere; display: flex; flex-direction: column; align-items: center; padding: 10px 5px; gap: 0.5em; } .cta--basic--operator .cta--basic--field-operatorLogo { width: 100%; max-width: 120px; max-height: 60px; aspect-ratio: 4/2; object-fit: contain; } .rawhtml { div.cta-template.cta--basic { padding: 20px 0 20px; border: solid lightgray; border-width: 1px 0; } } /** Columns */ /** Rank */ .cta--basic--rank { } /** Operator */ .cta--basic--field-operatorLogo { transition: transform 1s; } /** Bonus */ .cta--basic--bonus { color: var(--cta--basic--accent--color); --cta--basic--col-order: 2; } .cta--basic--field-bonusText { font-size: var(--cta--basic--field-bonusText--size, 1.75em); /* font-weight: 800; text-transform: uppercase; */ } /** Info */ .cta--basic--info { --cta--basic--col-order: 1; } .cta--basic--field-infoList ul { /* list-style: inside; */ margin: 0px; padding-inline-start: 20px; text-align: left; white-space: normal; } .cta--basic--field-infoList ::marker { content: '✓'; } .cta--basic--field-infoList ul li { padding-inline-start: 0.45em; } .cta--basic--field-infoList ul li:not(:last-child) { margin-bottom: 0.45em; } /** Action */ .cta--basic--action { --cta--basic--col-order: 3; } .cta--basic--field-actionLink { background-color: var(--cta--basic--accent--color); border-radius: 5px; padding: 10px 15px; min-width: 70%; color: #fff; text-decoration: none; font-weight: 600; display: inline-block; text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.4); font-weight: 800; font-size: 1.15em; border: 1px solid #783737; transition: all 0.3s; text-transform: uppercase; } /** Footer */ .cta--basic--field-footer { background-color: #f3f3f3; line-height: 1.5em; font-size: 0.875em; font-weight: 400; padding: 0px 5px; } /* Mobile Styling */ @media (max-width: 767px) { .cta--basic--rank { position: absolute; top: 0; left: 0; padding: 5px; } .cta--basic--field-bonusText { --cta--basic--field-bonusText--size: 1.25em; } } /* Desktop Styling */ @media (min-width: 768px) { .cta--basic { --cta--basic--size: 1rem; } .cta--basic--row { --cta--basic--row-direction: row; } .cta--basic--field-headerColumns { --cta--basic--field-headerColumns--size: 1.5em; display: flex; justify-content: center; } .cta--basic--field-headerColumn { display: block; padding: 10px 5px; } .cta--basic--field-mobileHeader { display: none; } .cta--basic--field-bonusText { --cta--basic--field-bonusText--size: 2.25em; } .cta--basic--col, .cta--basic--field-headerColumn { flex: var(--cta--basic--col-flex, 1); max-width: initial; } .cta--basic--rank { font-size: 2em; padding: 10px 0px 10px 10px; } .cta--basic--rank, .cta--basic--has-rank .cta--basic--field-headerColumn:first-child:not(:last-child) { --cta--basic--col-flex: 0 0 85px; } .cta--basic--has-rank .cta--basic--field-headerColumn:first-child:not(:last-child) { padding: 10px 0px 10px 10px; } .cta--basic--info, .cta--basic--bonus, .cta--basic--action { --cta--basic--col-order: 0; } .cta--basic--operator .cta--basic--field-operatorLogo { max-width: 200px; max-height: 100px; } }
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- 21+ Gambling problem? Call 1-800-NEXT-STEP
- Use Bonus Code: BETROCK
- Bet $5 Get $200 in Bonus Bets
- PLUS Get 2 Months of Altitude+ on bet365
- Payouts in 1 Day
- Gambling Problem? Call or TEXT 1-800-Gambler 21+
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- 21+. Gambling problem? Call 1-800-9-WITH-IT
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- Gambling Problem? Call or TEXT 1-800-Gambler 21+
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- 18+ and physically present in KY. Gambling problem? Call 1-800-GAMBLER
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- LA only. Gambling Problem? Call or text 1-800-GAMBLER 21+
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- Gambling problem? Call 877-718-5543 or Visit morethanagame.nc.gov. 21+ NC Only
- Use Bonus Code: BETROCK
- Bet $5 Get $200 in Bonus Bets + 50 Spins
- Payouts in 1 Day
- Gambling Problem? Call or TEXT 1-800-Gambler 21+
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- Gambling Problem? Call or TEXT 1-800-Gambler 21+
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets.
- Payouts in 1 Day
- OH only. 21+. Gambling Problem? Call or text 1-800-GAMBLER
- Use Bonus Code: BETROCK
- First Bet Safety Net up to $1,000, or Bet $5 Get $200 in Bonus Bets
- Payouts in 1 Day
- Gambling Problem? Call or TEXT 1-800-Gambler 21+
const ctaBasic = this.querySelector('.cta-template');{function filterByGeo(currentGeoLocation, customDocument) {const rows = customDocument.querySelectorAll('.cta--row');let hideHeaderFooter = true;Array.from(rows).forEach(row => {let geoCriteriaMet = false;const ctaAllowedGeos = row.getAttribute('geo');const allowedGeosArray = ctaAllowedGeos?.split(' ');let currentGeoLocationArray = currentGeoLocation?.split('-');if (currentGeoLocationArray !== undefined && !['CA', 'US'].includes(currentGeoLocationArray[0])) {currentGeoLocationArray[0] = 'UN';}if (currentGeoLocation) {allowedGeosArray.every(geo => {const geoSplit = geo?.split('-');if (geoSplit[1] == '' || geoSplit[1] == undefined || geoSplit[1]?.toLowerCase() == 'undefined') {if (geoSplit[0] == currentGeoLocationArray[0]) {geoCriteriaMet = true;return false;}}else {if (JSON.stringify(geoSplit) === JSON.stringify(currentGeoLocationArray)) {geoCriteriaMet = true;return false;}}return true;});}if (currentGeoLocation === null || ctaAllowedGeos === "" || geoCriteriaMet) {hideHeaderFooter = false;row.setAttribute('data-visible', 'true');} else {row.setAttribute('data-visible', 'false');}});ctaBasic.style = hideHeaderFooter ? "visibility:hidden;height:0px;overflow:hidden;border:none;" : undefined;}const observer = new MutationObserver((mutationsList) => {for (const mutation of mutationsList) {if (mutation.type !== 'attributes') return;if (mutation.attributeName.startsWith('geo')) {filterByGeo(mutation.target.getAttribute('geo'), this);return;}}});observer.observe(ctaBasic, { attributes: true });const elementNode = document.querySelector('.cta--body');if(elementNode){const ctaBodyObserver = new MutationObserver((mutationsList) => {for (const mutation of mutationsList) {if (mutation.type !== 'childList') return;filterByGeo(mutation.target.getAttribute('geo'), this);const rowNodes = document.querySelectorAll('.cta--row');if(rowNodes){const rowObserver = new MutationObserver(function(mutations) {mutations.forEach(function(mutation) {if (mutation.type === 'attributes' && mutation.attributeName.startsWith('geo')) {filterByGeo(ctaBasic.getAttribute('geo'), this);}});});rowNodes.forEach(function(node) {rowObserver.observe(node, { attributes: true });});}}});ctaBodyObserver.observe(elementNode, { childList: true })}const editRowNodes = document.querySelectorAll('.cta--row');if(editRowNodes){const editRowObserver = new MutationObserver(function(mutations) {mutations.forEach(function(mutation) {if (mutation.type === 'attributes' && mutation.attributeName.startsWith('geo')) {filterByGeo(ctaBasic.getAttribute('geo'), this);}});});editRowNodes.forEach(function(node) {editRowObserver.observe(node, { attributes: true });});}filterByGeo(ctaBasic.getAttribute('geo'), this);}const hasRankNumber = this.querySelector('.cta--rank-number');if( hasRankNumber ){const observer = new MutationObserver((mutationsList) => {for (const m of mutationsList) {if ( m.type !== 'attributes' ) return;if (m.attributeName.startsWith('geo')) {const rows = this.querySelectorAll('.cta--row');const sortedRows = Array.from(rows).filter(row => getComputedStyle(row)?.display !== 'none').sort(function (a, b) {let orderA = getComputedStyle(a)['order'];let orderB = getComputedStyle(b)['order'];return orderA - orderB;});sortedRows.forEach((row, i) => {const rankContainer = row.querySelector('.cta--rank-number');rankContainer.setAttribute('rank-number', (i+1));});return;}}});observer.observe(ctaBasic, { attributes: true });}