@charset "utf-8";

/*
 * World Cup 2026 Predictor
 * CCP v2.0.9
 * 2026.06.10
 *
 * Gaming
 *
 * Release Candidate 4
 */

/*
Version
*/
#CustomContentPodContentWrapper
{
    --version: 2.0.5 (2026.06.05);
}

/*
Colours
*/
#CustomContentPodContentWrapper
{
    --system-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    --preload-outer: hsla(161, 100%, 58%, 0.25);
    --bet365-green: #29ffbb;
    --bet365-yellow: #ffdf1b;
    --base-text-color: #fff;
    --button-text: #222;
    --button-hover: #fff;
    --summary-box-color: rgba(26, 26, 26, 0.8);
    --main-background: #222;
}

/*
Global positioning and sizes
*/
body:not(.sportsbook-embedded) #CustomContentPodContentWrapper
{
    --top-navigation-height: 110px;
}

body.sportsbook-embedded #CustomContentPodContentWrapper
{
    --top-navigation-height: 50px;
}

#CustomContentPodContentWrapper
{
    --preload-height: calc(100lvh - var(--top-navigation-height));

    position: relative;
    max-width: 1450px;
    margin: 0 auto 50px;
}

@media (max-width: 599px)
{
    #CustomContentPodContentWrapper
    {
        --target-ccpbody-height: 780px;
    }
}

@media (min-width: 600px) and (max-width: 767px)
{
    #CustomContentPodContentWrapper
    {
        --target-ccpbody-height: 800px;
    }
}

@media (min-width: 768px)
{
    #CustomContentPodContentWrapper
    {
        --target-ccpbody-height: 750px;
    }
}

@media (max-width: 767px)
{
    #CustomContentPodContentWrapper:not(.loaded)
    {
        min-height: var(--preload-height);
    }

    .__CCPBody.preloading
    {
        height: var(--preload-height);
    }
}

@media (min-width: 768px)
{
    #CustomContentPodContentWrapper:not(.loaded)
    {
        min-height: var(--target-ccpbody-height);
    }

    .__CCPBody
    {
        height: var(--target-ccpbody-height);
    }
}

/*
Site cascade resets
*/
.__CCPBody h3
{
    max-width: unset;
}

/* .CCP_TopBannerOverride */
div.odtb:has(div.odtb-ImageContainer)
{
    display: none;
}


/*
** CCP rules begin **
*/
.__CCPBody
{
    display: flex;
    position: relative;
    width: 100%;
    margin: auto;
    overflow: hidden;
    z-index: 1;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
}

@media (max-width: 480px)
{
    .__CCPBody
    {
        --main-logo-height: 20vw;
        --global-kit-height: clamp(150px, 40vw, 200px);
        --main-content-height: calc(var(--global-kit-height) + 160px);
    }
}

@media (min-width: 481px) and (max-width: 767px)
{
    .__CCPBody
    {
        --main-logo-height: 100px;
        --main-content-height: 340px;
    }
}

@media (min-width: 768px)
{
    .__CCPBody
    {
        --main-logo-height: 120px;
        --main-content-height: 380px;
    }
}

@media (max-width: 1023px)
{
    .__CCPBody
    {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (min-width: 1024px)
{
    .__CCPBody
    {
        --main-logo-height: 150px;
        --main-content-height: 460px;

        gap: 50px;
    }
}

@media (min-width: 1024px) and (max-width: 1299px)
{
    .__CCPBody
    {
        --edge-margin: 25px;
    }
}

@media (min-width: 1300px)
{
    .__CCPBody
    {
        --edge-margin: 50px;
    }
}



.__CCPBody img
{
    display: block;
    margin: 0;
}

.__CCPBody strong
{
    font-family: FuturaPTDemi;
    font-weight: normal;
}


.__CCPBody h2
{
    font-family: FuturaPTWebCondensedExtraBoldOblique;
    color: var(--bet365-green);
    text-transform: uppercase;
    margin: 0;
    line-height: 1.2;
}

@media (min-width: 481px) and (max-width: 767px)
{
    .__CCPBody h2
    {
        font-size: 26px;
    }
}

@media (min-width: 768px)
{
    .__CCPBody h2
    {
        font-size: 36px;
    }
}

.__CCPBody > section
{
    isolation: isolate;
}

.CCP_MasterTextBlock
{
    box-sizing: border-box;
    flex: 1 1 35%;
}

.CCP_MasterActionBlock
{
    flex: 1 1 52%;
    max-width: 760px;
    margin-right: var(--edge-margin);
    height: var(--main-content-height);
}

@media (max-width: 480px)
{
    .CCP_MasterActionBlock
    {
        height: unset;
    }
}

@media (max-width: 1023px)
{
    .CCP_MasterTextBlock,
    .CCP_MasterActionBlock
    {
        margin: 0 auto;
        width: 100%;
    }

    .CCP_MasterTextBlock
    {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 30px;
        padding: 0 25px;
        order: 2;
    }

    .CCP_MasterActionBlock
    {
        order: 1;
    }

    .__CCPBody h2,
    .CCP_CTA
    {
        text-align: center;
    }
}

@media (min-width: 1024px)
{
    .CCP_MasterTextBlock
    {
        max-width: 520px;
        height: var(--main-content-height);
        margin-left: var(--edge-margin);
    }
}

/* Specific tablet portrait shift for MasterTextBlock summary display */
@media (min-width: 768px) and (max-width: 1023px)
{
    .CCP_MasterTextBlock.summary
    {
        display: grid;
        grid-template-columns: 1fr clamp(320px, 40%, 400px);
        grid-template-rows: 45px 1fr 40px;
        column-gap: 20px;
        max-width: 900px;
        flex: none;
        align-items: unset;
    }

    .CCP_MasterTextBlock.summary > h2,
    .CCP_MasterTextBlock.summary > .CCP_CTA
    {
        text-align: left;
    }

    .CCP_MasterTextBlock.summary > .CCP_CTA
    {
        grid-column-start: 1;
        grid-row-start: 2;
    }

    .CCP_MasterTextBlock.summary > .CCP_PayoutTable
    {
        grid-row: span 2 / span 2;
        grid-column-start: 2;
        grid-row-start: 1;
        grid-row: 1 / span 2;
        margin-bottom: 0;
    }

    .CCP_MasterTextBlock.summary > .CCP_ButtonBar
    {
        grid-column: 1 / span 2;
        grid-row-start: 3;
        justify-content: unset;
    }
}

/*
Image background
*/
.CCP_Background
{
    position: absolute;
    width: 100%;
    height: 100%;
    background: var(--main-background) var(--background-image) top;
    pointer-events: none;
    z-index: -1;
}

.CCP_Background:not(.no-gradient)
{
    -webkit-mask: linear-gradient(to top, transparent, black 25%);
            mask: linear-gradient(to top, transparent, black 25%);
}

/*
Main logo components
*/
.CCP_MainLogo
{
    background: transparent var(--logo-src) left bottom no-repeat;
    background-size: contain;
    text-indent: -999em;
}

.__CCPBody > .CCP_MainLogo
{
    width: calc(100% - 30px);
    height: var(--main-logo-height);
    margin: 10px auto 0;
    flex-shrink: 0;
}

.CCP_MasterTextBlock:has(.CCP_MainLogo) .CCP_MainLogo
{
    height: 220px;
    background: transparent var(--logo-src) left bottom no-repeat;
    background-size: contain;
    text-indent: -999em;
}

.CCP_MasterTextBlock:has(.CCP_MainLogo) > h2
{
    margin-top: 1em;
}


/*
CTA line
*/
.CCP_CTA
{
    margin: 0 auto 1em;
    font: 18px FuturaPTWebBook;
    font: 14px var(--system-font);
    height: 2.4em;
    line-height: 1.2;
    color: #fff;
    text-wrap: pretty;
}

.CCP_CTA.solo
{
    margin: 0 auto;
    font: 26px FuturaPTDemi;
    line-height: 1.3;
}

@media (min-width: 768px)
{
    .CCP_CTA.larger
    {
        margin-bottom: 0.5em;
        font-size: 23px;
        letter-spacing: -0.025em;
    }
}


/*
Intro screen
*/
.CCP_IntroGames
{
    --tile-height: 2em;
    display: flex;
    justify-content: center;
    position: relative;
    height: var(--main-content-height);
    font-family: 'FuturaPTCondBoldOblique';
    text-transform: uppercase;
    align-items: center;
}

@media (max-width: 767px)
{
    .CCP_IntroGames
    {
        font-size: 16px;
    }
}

@media ((min-width: 768px) and (max-width: 1023px)) or (min-width: 1300px)
{
    .CCP_IntroGames
    {
        font-size: 20px;
    }
}

@media (min-width: 1024px) and (max-width: 1299px)
{
    .CCP_IntroGames
    {
        font-size: 18px;
    }
}

.CCP_IntroGames > ol
{
    --skew-offset: calc(var(--tile-height) * 0.12278);
    --skew-clip-path: polygon(var(--skew-offset) 0, 100% 0, calc(100% - var(--skew-offset)) 100%, 0 100%);

    margin: 0 50px;
    padding: 0;
    list-style: none;
    width: 100%;
    max-width: 570px;
    color: #fff;
    margin: 0;
}

.CCP_IntroGames li
{
    display: flex;
    line-height: 1;
    justify-content: space-between;
    align-items: center;
    margin: 0 2.5em;
}

.CCP_IntroGames li:not(:last-child)
{
    margin-bottom: 12px;
}

.CCP_IntroGames li > span
{
    box-sizing: border-box;
    display: flex;
    position: relative;
    align-items: center;
    width: calc(50% - 0.75em);
    height: var(--tile-height);
    padding: 0 calc(var(--skew-offset) + 10px);
}

.CCP_IntroGames li > span:last-child
{
    justify-content: flex-end;
}

.CCP_IntroGames li > span::before,
.CCP_IntroGames li > span::after
{
    content: "";
    display: block;
    position: absolute;
    clip-path: var(--skew-clip-path);
}

.CCP_IntroGames li > span::before
{
    aspect-ratio: 1.5;
    height: 100%;
    background: transparent var(--tile-flag) center no-repeat;
    background-size: cover;
}

.CCP_IntroGames li > span::after
{
    inset: 0;
    background-color: var(--tile-color);
    z-index: -1;
}

.CCP_IntroGames li > span:first-child::before
{
    right: 100%;
}

.CCP_IntroGames li > span:last-child::before
{
    left: 100%;
}

.CCP_IntroGames li > span.text-dark
{
    color: #222;
}

@media (max-width: 400px)
{
    .CCP_IntroGames li
    {
        margin: 0;
    }

    .CCP_IntroGames li > span::before
    {
        display: none;
    }
}

.CCP_IntroGames .game-wrapper
{
    display: flex;
    position: relative;
    gap: 15px;
    flex: 1 1 40%;
    align-content: center;
    align-items: center;
}

.CCP_IntroGames.even .game-wrapper
{
    flex-basis: 40%;
}

.CCP_IntroGames.odd .game-wrapper
{
    flex-basis: 30%;
}

.CCP_IntroGames .logo-pair
{
    display: flex;
    justify-content: center;
}

.CCP_IntroGames .team-display
{
    aspect-ratio: 1;
    object-fit: contain;
    height: 30px;
}

.CCP_IntroGames .game-name
{
    box-sizing: border-box;
    margin: 0;
    line-height: 1;
    color: #ccc;
    text-align: center;
    max-width: 100%;
}

.CCP_IntroGames .game-name > p
{
    margin: 0;
    line-height: 1.2;
}

@media (max-width: 767px)
{
    .CCP_IntroGames .game-name
    {
        padding: 7px 12px;
        font-size: 12px;
    }
}

@media (max-width: 480px)
{
    .CCP_IntroGames
    {
        row-gap: 30px;
        margin: 0 1em;
    }

    .CCP_IntroGames .logo-pair
    {
        gap: 10px;
    }

    .CCP_IntroGames .team-display
    {
        width: min(18vw, 70px);
    }

    .CCP_IntroGames .game-name
    {
        max-width: 40vw;
    }

    .CCP_IntroGames .game-wrapper:only-child .team-display
    {
        width: min(35vw, 150px);
    }

    .CCP_IntroGames .game-wrapper:only-child .game-name
    {
        max-width: none;
    }
}

@media (min-width: 481px) and (max-width: 1023px)
{
    .CCP_IntroGames
    {
        margin: 0 2em;
    }
}

@media (min-width: 1024px)
{
    .CCP_IntroGames .game-wrapper:only-child .team-display
    {
        width: 250px;
    }
}


/*
Predictors
*/
.CCP_PredictorSet
{
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: center;
    height: var(--main-content-height);
}

@media (max-width: 480px)
{
    .CCP_PredictorSet
    {
        margin: 0 10px;
    }
}

@media (min-width: 481px) and (max-width: 1023px)
{
    .CCP_PredictorSet
    {
        margin: 0 15px;
    }
}

@media (max-width: 480px)
{
    .CCP_PredictorSet
    {
        --max-kit-height: var(--global-kit-height);
    }
}

@media (min-width: 600px) and (max-width: 1023px)
{
    .CCP_PredictorSet
    {
        --max-kit-height: 200px;
    }
}

@media (min-width: 1024px) and (max-width: 1299px)
{
    .CCP_PredictorSet
    {
        --max-kit-height: clamp(200px, 20vw, 276px);
    }
}

@media (min-width: 1300px)
{
    .CCP_PredictorSet
    {
        --max-kit-height: 276px;
    }
}

@media (max-width: 480px)
{
    .CCP_PredictorSet .tile
    {
        width: 100%;
    }
}

@media (min-width: 481px)
{
    .CCP_PredictorSet .tile
    {
        display: flex;
        flex-shrink: 1;
    }

    .CCP_PredictorSet .tile:not(.draw)
    {
        flex-basis: 35%;
        max-width: 270px;
    }

    .CCP_PredictorSet .tile.draw
    {
        flex-basis: 20%;
    }
}

@media (min-width: 1300px)
{
    .CCP_PredictorSet .tile:not(.draw)
    {
        flex: unset;
        width: 270px;
    }
}

/* Predictor tiles */
.CCP_Predictor
{
    display: flex;
    position: relative;
    font-family: FuturaPTCondBoldOblique;
    text-transform: uppercase;
    justify-content: space-between;
}

.CCP_PredictorSet .tile
{
    display: flex;
    position: relative;
    justify-content: center;
    flex-direction: column;
    align-items: center;
}

.CCP_Predictor .team-name
{
    height: 2em;
    margin: 0.5em 0 0;
    font-size: 22px;
    line-height: 1;
    text-align: center;
    color: #fff;
    pointer-events: none;
}

.CCP_Predictor .item-selected .team-name
{
    margin-left: -5em;
    margin-right: -5em;
}

.CCP_Predictor.no-input
{
    pointer-events: none;
}

@media (max-width: 480px)
{
    .CCP_Predictor .team-display
    {
        height: min(31vw, 140px);
    }

    .CCP_Predictor .team-name
    {
        font-size: 16px;
    }
}

@media (min-width: 481px) and (max-width: 899px) and (orientation: portrait)
{
    .CCP_Predictor .team-display
    {
        height: min(28vw, 220px);
    }
}

@media (min-width: 481px) and (max-width: 899px) and (orientation: landscape)
{
    .CCP_Predictor .team-display
    {
        height: 120px;
    }
}

@media (min-width: 481px) and (max-width: 767px)
{
    .CCP_Predictor .team-name
    {
        font-size: min(4vw, 26px);
        font-size: 18px;
    }
}

@media (min-width: 900px)
{
    .CCP_Predictor
    {
        margin-bottom: 10px;
    }
}


/*
Shirt compositing
*/
.CCP_TeamDisplay
{
    pointer-events: none;
}

.CCP_TeamDisplay img.base-image
{
    width: auto;
    max-height: var(--max-kit-height);
}

.CCP_TeamDisplay.shirt-composite
{
    display: grid;
    position: relative;
    mask: var(--team-shirt-alpha) center no-repeat;
    mask-size: auto 100%;
}

.CCP_TeamDisplay.shirt-composite:not(.full)::before,
.CCP_TeamDisplay.shirt-composite::after
{
    content: "";
    display: block;
    position: absolute;
    inset: 0;
}

.CCP_TeamDisplay.shirt-composite::after
{
    background: radial-gradient(circle at center 30%, #999 25%, #666 70%, #333);
    mix-blend-mode: overlay;
}

.CCP_TeamDisplay.shirt-composite:not(.full)::before,
.CCP_TeamDisplay .color-composite
{
    background-color: var(--team-shirt-color);
    mix-blend-mode: multiply;
}

.CCP_TeamDisplay.shirt-composite > *
{
    grid-area: 1 / 1;
}

.CCP_TeamDisplay .flag-composite
{
    height: 100%;
    background: transparent var(--team-flag-src) no-repeat;
    background-position: center 8%;
    background-size: auto 65%;
    mask: var(--team-chest-alpha) center no-repeat;
    mask-size: auto 100%;
}

.CCP_TeamDisplay.image
{
    display: flex;
    flex: 1;
    justify-content: center;
}

.CCP_TeamDisplay.image > img.draw
{
    width: 50%;
    min-width: 30px;
    height: var(--max-kit-height);
}

/* Shadow effect */
.__CCPBody div:has( > .shirt-composite)::after
{
    content: "";
    display: block;
    position: absolute;
    aspect-ratio: 1;
    left: 50%;
    top: 0;
    height: var(--max-kit-height);
    background: transparent radial-gradient(ellipse closest-side, black 50%, transparent 75%);
    transform-origin: bottom;
    transform: translate(-50%, 4%) scaleY(0.09) scaleX(0.75);
    filter: blur(calc(var(--max-kit-height) * 0.075));
    opacity: 0.65;
    z-index: -1;
}


/* Prediction buttons */
.CCP_PredictorSet > .button-sets
{
    display: grid;
    position: relative;
}

.CCP_PredictorSet > .button-sets > *
{
    grid-area: 1 / 1;
}


/* Progress SVGs */
.CCP_ProgressDisplay
{
    display: flex;
    position: relative;
    width: 100%;
    margin: 0 auto;
    height: 60px;
    gap: 20px;
    align-items: center;
    font-size: 14px;
}

.CCP_SVGBox
{
    display: grid;
    position: relative;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
    width: 60px;
    height: 60px;
}

.CCP_SVGBox.unbound
{
    position: absolute;
}

.CCP_SVGBox > *
{
    width: 100%;
    height: 100%;
    grid-area: 1 / 1;
}

.CCP_SVGBox circle,
.CCP_SVGBox polyline
{
    fill: none;
    stroke-dasharray: 100;
}

.CCP_SVGBox > .progress-bar .backing
{
    stroke: #133a2f;
}

.CCP_SVGBox > .progress-bar .fill
{
    stroke: #1c9770;
    stroke-dashoffset: 100;
    transition: stroke-dashoffset 350ms ease-out;
}

.CCP_SVGBox > .tick-mark *
{
    stroke: #fff;
}


/* Progress bar specifics */
.CCP_SVGBox > span
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: FuturaPTCond;
    line-height: 1;
    color: #fff;
}

.CCP_SVGBox.standard
{
    font-size: 18px;
}

.CCP_SVGBox.big-multi
{
    font-size: 14px;
}


/*
Messaging
*/
.CCP_Messaging
{
    display: flex;
    justify-content: center;
}

.CCP_Messaging .error-message
{
    display: block;
    box-sizing: border-box;
    min-width: 180px;
    margin: 0 auto;
    padding: 0 15px;
    font-family: FuturaPTDemi;
    text-align: center;
    height: 40px;
    font-size: 20px;
    line-height: 40px;
    letter-spacing: -0.58px;
    border-radius: 10px;
    background-color: #601;
    color: #eee;
}


/*
Prediction progress ticker
*/
.CCP_PredictionTicker
{
    position: relative;
    max-width: 500px;
    height: 40px;
    margin: 0;
    font-family: FuturaPTCondBoldOblique;
    text-transform: uppercase;
}

@media (max-width: 1023px)
{
    .CCP_PredictionTicker
    {
        width: 80%;
        min-width: 200px;
    }
}

.CCP_PredictionTicker > div
{
    display: flex;
    flex-direction: row-reverse;
    gap: 7px;
    margin: auto;
    width: 100%;
    height: 4px;
    justify-content: flex-end;
    transform: skewX(-45deg);
}

.CCP_PredictionTicker .ticker-bar
{
    display: block;
    position: relative;
    flex: 1;
    max-width: 120px;
    background-color: var(--bet365-yellow);
    overflow: hidden;
    transition: background-color 150ms linear;
}

.CCP_PredictionTicker .ticker-bar::before
{
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #666;

    transition: transform 150ms ease-in-out;
    transform-origin: right;
}

.CCP_PredictionTicker .ticker-bar.active~.ticker-bar
{
    background-color: #14805e;
    background-color: var(--bet365-green);
}

.CCP_PredictionTicker .ticker-bar.active::before,
.CCP_PredictionTicker .ticker-bar.active~.ticker-bar::before
{
    transform: scaleX(0);
}

.CCP_PredictionTicker > p
{
    font-size: 18px;
    line-height: 1;
    margin: 0 auto 5px;
    color: #fff;
}

@media (max-width: 480px)
{
    .CCP_PredictionTicker > p
    {
        font-size: 14px;
    }
}

@media (max-width: 1023px)
{
    .CCP_PredictionTicker
    {
        width: 80%;
        min-width: 200px;
    }

    .CCP_PredictionTicker > p
    {
        text-align: center;
    }
}


/*
Prediction summary
*/
.CCP_PredictionSummary
{
    display: flex;
    position: relative;
    height: var(--main-content-height);
    margin: 0;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 10px;
    align-content: center;
}

@media (max-width: 599px)
{
    .CCP_PredictionSummary
    {
        margin: 0 20px;
    }

    .CCP_PredictionSummary.normal
    {
        --max-kit-height: 70px;
    }

    .CCP_PredictionSummary.larger
    {
        --max-kit-height: 120px;
    }

    .CCP_PredictionSummary.smaller
    {
        --max-kit-height: 40px;

        gap: 6px;
    }
}

@media (min-width: 600px) and (max-width: 767px)
{
    .CCP_PredictionSummary.normal
    {
        --max-kit-height: 100px;
    }

    .CCP_PredictionSummary.larger
    {
        --max-kit-height: 200px;
    }

    .CCP_PredictionSummary.smaller
    {
        --max-kit-height: 90px;
    }
}

@media (min-width: 768px) and (max-width: 1023px)
{
    .CCP_PredictionSummary.normal
    {
        --max-kit-height: 130px;
    }

    .CCP_PredictionSummary.larger
    {
        --max-kit-height: 220px;
    }

    .CCP_PredictionSummary.smaller
    {
        --max-kit-height: 110px;
    }
}

@media (min-width: 1024px)
{
    .CCP_PredictionSummary.normal
    {
        --max-kit-height: 220px;
    }

    .CCP_PredictionSummary.larger
    {
        --max-kit-height: 276px;
    }

    .CCP_PredictionSummary.smaller
    {
        --max-kit-height: 150px;
    }
}

.CCP_PredictionSummary .summary-item
{
    display: flex;
    position: relative;
    align-items: center;
    flex-direction: column;
    flex: 1 1 40%;
    max-width: 350px;
    gap: 10px;
}

.CCP_PredictionSummary.smaller .summary-item
{
    max-width: 240px;
    flex-basis: 30%;
}

.CCP_PredictionSummary.larger .summary-item
{
    max-width: unset;
}

.CCP_PredictionSummary .game-wrapper
{
    box-sizing: border-box;
    position: relative;
    text-align: center;
    width: 80%;
    max-width: 180px;
    padding: 5px 15px 6px;
}

.CCP_PredictionSummary .game-wrapper::before,
.CCP_PredictionSummary .game-wrapper::after
{
    content: "";
    display: block;
    position: absolute;
}

.CCP_PredictionSummary .game-wrapper::before
{
    inset: 0;
    background-color: var(--summary-box-color);
    transform: skewX(-7deg);
    z-index: -1;
}

.CCP_PredictionSummary .game-wrapper::after
{
    right: 0;
    top: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 15px 2px 0px 14px;
    border-color: transparent;
    border-top-color: var(--team-shirt-color);
    transform: translateX(3.5px);
}

.CCP_PredictionSummary p
{
    line-height: 18px;
    margin: 0;
}

.CCP_PredictionSummary .prediction
{
    font-family: FuturaPTCondBoldOblique;
    text-transform: uppercase;
    color: #fff;
}

.CCP_PredictionSummary .game-name
{
    color: #aaa;
    font-family: var(--system-font);
}

.CCP_PredictionSummary .result-tick
{
    position: absolute;
    top: 7px;
    right: 7px;
    aspect-ratio: 1;
    height: 18px;
}

@media (max-width: 480px)
{
    .CCP_PredictionSummary .summary-item
    {
        flex-direction: row;
        flex-basis: 100% !important;
        max-width: none !important;
    }

    .CCP_PredictionSummary .game-wrapper
    {
        text-align: left;
        max-width: none;
        flex-grow: 1;
    }

    .CCP_PredictionSummary .team-display
    {
        width: 65px;
    }

    .CCP_PredictionSummary .prediction
    {
        font-size: 15px;
    }

    .CCP_PredictionSummary .game-name
    {
        font-size: 12px;
    }

    .CCP_TeamDisplay
    {
        flex: unset !important;
    }
}

@media (min-width: 481px) and (max-width: 767px)
{
    .CCP_PredictionSummary .team-display {
        width: min(20vw, 120px);
    }

    .CCP_PredictionSummary .game-name
    {
        margin-top: 2px;
        font-size: 12px;
    }

    .CCP_PredictionSummary .prediction
    {
        font-size: 15px;
    }
}

@media (min-width: 768px)
{
    .CCP_PredictionSummary
    {
        gap: 20px 10px;
    }
}

@media (min-width: 768px) and (max-width: 899px)
{
    .CCP_PredictionSummary .prediction
    {
        font-size: 15px;
    }

    .CCP_PredictionSummary .game-name
    {
        font-size: 12px;
    }
}

@media (min-width: 900px)
{
    .CCP_PredictionSummary .prediction
    {
        font-size: 16px;
    }

    .CCP_PredictionSummary .game-name
    {
        font-size: 12px;
    }
}

/*
Spins payout summary table
*/
.CCP_PayoutTable
{
    position: relative;
    margin: 10px 0 30px;
    font: 11px var(--system-font);
    color: #fff;
    text-align: center;
    border-collapse: collapse;
    table-layout: fixed;
}

.CCP_PayoutTable::before
{
    content: "";
    display: block;
    position: absolute;
    inset: -3px -15px;
    background-color: var(--summary-box-color);
    transform: skewX(-7deg);
    z-index: -1;
}

.CCP_PayoutTable > thead
{
    border-bottom: 1px solid #444;
    color: var(--bet365-green);
}

.CCP_PayoutTable tr > *
{
    width: 50px;
    padding: 5px 0;
    line-height: 16px;
}

.CCP_PayoutTable tr > *:first-child
{
    padding-right: 10px;
    text-align: left;
    font-weight: bold;
    white-space: nowrap;
}


/*
* Free Spins wins table
*/
.CCP_WinsHistoryTableContainer
{
    --system-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    --table-base-padding: 8px;
    --scrollbar-base: #222;
    --scrollbar-fore: #535353;
    --bet365-green: #28ffbb;
    margin: 20px calc(var(--table-base-padding) * -1) 40px;
}

.CCP_InlineTableHeader
{
    font: 26px FuturaPTCond;
    font-weight: normal;
    margin: 0 var(--table-base-padding) 10px;
    line-height: 40px;
    color: #fff;
    text-transform: uppercase;
}

.CCP_WinsHistoryTableContainer > .scroll-wrapper
{
    max-height: min(50lvh, 600px);
    overflow: auto;
    padding-bottom: 10px;
}

.CCP_WinsHistoryTableContainer > p
{
    margin: 0 var(--table-base-padding) 1.5em;
    font: 14px var(--system-ui);
    line-height: 16px;
}

.CCP_WinsHistoryTableContainer > p.no-history
{
    padding: 1em;
    border: 1px solid #444;
    border-radius: 2em;
    text-align: center;
    color: #999;
}

.CCP_WinsHistoryTable
{
    width: 100%;
    min-width: 500px;
    border-collapse: collapse;
    text-align: left;
    font: 12px var(--system-font);
    color: #ccc;
    line-height: 18px;
    cursor: default;
}

.CCP_WinsHistoryTable thead
{
    position: sticky;
    top: 0;
    text-align: left;
    color: #fff;
    z-index: 1;
    border-bottom: 1px solid #444;
}

.CCP_WinsHistoryTable tbody:not(:last-of-type)
{
    border-bottom: 1px solid #444;
}

.CCP_WinsHistoryTable tr > *
{
    padding: 3px 10px 5px;
}

.CCP_WinsHistoryTable th:last-child,
.CCP_WinsHistoryTable tr > *.prize
{
    text-align: right;
}

.CCP_WinsHistoryTable td
{
    vertical-align: top;
}

.CCP_WinsHistoryTable span
{
    display: block;
}

.CCP_WinsHistoryTable span + span
{
    margin-top: 3px;
}

.CCP_WinsHistoryTable td::last-child span
{
    text-align: right;
}

.CCP_WinsHistoryTable.has-icons .prediction span
{
    padding-left: 30px;
    background: transparent var(--flag-src) left bottom no-repeat;
    background-size: auto 16px;
}

.CCP_WinsHistoryTable .game
{
    color: #999;
}

@media (max-width: 480px)
{
    .CCP_WinsHistoryTable .prediction span
    {
        padding-left: unset !important;
        background: none !important;
    }
}


/*
Scrollbar styling where possible
*/
.CCP_WinsHistoryTableContainer > .scroll-wrapper
{
    scrollbar-width: thin;
    scrollbar-color: #535353 #222;
}


/*
Buttons
*/
.CCP_ButtonBar
{
    box-sizing: border-box;
    display: flex;
    position: relative;
    width: 100%;
    margin: 0 auto;
    min-height: 40px;
    gap: 20px;
    align-items: center;
}

.CCP_ButtonBar.predict
{
    justify-content: space-between;
}

.CCP_ButtonBar.confirm
{
    flex-wrap: wrap;
    gap: 10px 20px;
    justify-content: center;
    align-items: center;
}

.CCP_ButtonBar.predict > .tile.button
{
    justify-content: center;
}

.CCP_ButtonBar.predict > .tile.draw .CCP_Button
{
    min-width: 100px;
}

.CCP_ButtonBar.confirm .CCP_Button
{
    min-width: 150px;
}

.CCP_ButtonBar > .confirm-message
{
    position: absolute;
    inset: 100% 0 auto;
    margin: 1em 0 0;
    font: 14px var(--system-font);
    line-height: 1.2;
    color: #fff;
    text-align: center;
}


@media (max-width: 480px)
{
    .CCP_ButtonBar
    {
        --derived-font-size: 13px;

        flex-direction: column;
        gap: 10px 20px;
        min-height: 40px;
    }

    .CCP_ButtonBar > .confirm-message
    {
        position: static;
        margin-top: 0;
    }
}

@media (min-width: 600px) and (max-width: 1299px)
{
    .CCP_ButtonBar
    {
        --derived-font-size: 14px;
    }
}

@media (max-width: 1023px)
{
    .CCP_ButtonBar
    {
        align-items: center;
    }

    .CCP_ButtonBar:not(.predict)
    {
        justify-content: center;
    }
}

@media (min-width: 1300px)
{
    .CCP_ButtonBar
    {
        --derived-font-size: 16px;
    }
}


.CCP_Button
{
    box-sizing: border-box;
    height: 2.5em;
    margin: 0;
    padding: 0 15px;
    font: var(--derived-font-size) var(--system-font);
    font-weight: 700;
    line-height: 1;
    text-align: center;
    border-radius: 2px;
}

.CCP_Button:not(.error)
{
    display: block;
    position: relative;
    outline: none;
    cursor: pointer;
    background-size: 300% auto;
    background-position: 100% 0;
    background-repeat: no-repeat;
    transition: background-position .3s cubic-bezier(.45, 0, .55, 1), color .3s cubic-bezier(.45, 0, .55, 1);
}

.CCP_Button:not(.secondary):not(.error)
{
    border: none;
    background-color: #8affab;
    background-image: linear-gradient(90deg, #fff 33%, #26ffbe 67%, #8affab);
    color: var(--button-text);
}

.CCP_Button.secondary
{
    border: 1px solid var(--bet365-green);
    background-color: #2229;
    background-image: linear-gradient(90deg, var(--bet365-green) 33%, transparent 67%);
    color: var(--bet365-green);
}

.CCP_Button.error
{
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    color: var(--base-text-color);
    background-color: #902;
    cursor: default;
}

.CCP_Button.throbbing
{
    pointer-events: none;
    color: transparent !important;
}

.CCP_Button.throbbing::before
{
    content: "";
    box-sizing: border-box;
    display: block;
    position: absolute;
    aspect-ratio: 1;
    height: 26px;
    left: 50%;
    top: 50%;
    border: 3px solid var(--button-text);
    border-bottom-color: transparent;
    border-radius: 100%;
    transform: translate(-50%, -50%);
    animation: CCP_Anim-Throbber 1s linear infinite;
    animation-composition: add;
}

@keyframes CCP_Anim-Throbber
{
    to {
        transform: rotate(360deg);
    }
}


@media (max-width: 480px)
{
    .CCP_Button
    {
        width: 100%;
        max-width: 280px;
    }
}


.CCP_Link
{
    color: var(--bet365-green);
    text-decoration: none;
}

.CCP_Link.summary
{
    font: 14px var(--system-font);
    line-height: 1.2;
}

.CCP_Button, .CCP_Link
{
    -webkit-tap-highlight-color: transparent;
}


/*
Page Footer Links
*/
.CCP_FooterLinks
{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 20px auto 0;
    padding: 0 15px;
    list-style: none;
    gap: 1em 2em;
    font: 15px FuturaPTDemi;
    font: 12px var(--system-font);
    line-height: 1;
}

@media (max-width: 480px)
{
	.CCP_FooterLinks .link-list
	{
		font-size: 13px;
	}
}


/* Hover states */
@media (hover: hover)
{
    .CCP_Button:not(.error):hover
    {
        background-position: 0;
    }

    .CCP_Button.secondary:hover
    {
        color: var(--button-text);
    }

    .CCP_Link:hover
    {
        color: var(--button-hover);
    }

    .CCP_WinsHistoryTable tbody:hover
    {
        background-color: rgba(255, 255, 255, 0.02);
    }
}


/*
Animations
*/
.CCP_Anim-ErrorBox
{
    animation: CCP_KF-ErrorBoxGrow 350ms var(--motion-ease-out-quint) forwards;
}

.CCP_Anim-ErrorText
{
    animation: CCP_KF-ErrorBoxText 150ms 200ms linear both;
}

.CCP_Anim-SVGDrawStroke .draw-stroke
{
    stroke-dashoffset: 100; /* SVG file forces pathLength to 100 */
}

.CCP_Anim-SVGOuterRing .ring
{
    animation: CCP_KF-SVGDrawStroke 350ms 250ms ease-in-out forwards;
}

.CCP_Anim-SVGOuterRing .backing
{
    animation: CCP_KF-SVGDrawStroke 350ms ease-in forwards;
}

.CCP_Anim-SVGTickMark .tick
{
    animation: CCP_KF-SVGDrawStroke 200ms 550ms ease-out forwards;
}


@keyframes CCP_KF-SVGDrawStroke
{
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes CCP_KF-ErrorBoxGrow
{
    from {
        transform: scaleX(0);
    }
}

@keyframes CCP_KF-ErrorBoxText
{
    from {
        opacity: 0;
    }
}

/*
UI Transitions
*/

/* Motion classes */
.__CCPBody
{
    --motion-ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
}

.CCP_Motion-BoxEnter
{
    transition: opacity 200ms 250ms linear;
}

.CCP_Motion-PanelEnter
{
    transition: transform 450ms var(--motion-ease-out-quint);
}

.CCP_Motion-IntroTile
{
    transition: transform 350ms var(--motion-ease-out-quint), opacity 150ms linear;
}

.CCP_Motion-ShiftTile
{
    transition: transform 250ms ease-in-out, opacity 150ms linear;
}

.CCP_Motion-Enter
{
    transition: transform 150ms 150ms ease-out, opacity 150ms 150ms linear;
}

.CCP_Motion-Exit
{
    transition: transform 150ms linear, opacity 150ms linear;
}

.CCP_Motion-TextEnter
{
    transition: opacity 150ms 300ms linear;
}

.CCP_Motion-TextCrossFade
{
    transition: opacity 100ms linear;
}

.CCP_Motion-VerticalResolve
{
    transition: transform 450ms ease-out, opacity 450ms ease-out;
}


/* Transition effects */
.__CCPBody .box-hide
{
    opacity: 0;
    pointer-events: none;
}

.__CCPBody .item-text-hidden
{
    opacity: 0;
}

.__CCPBody .panel-hide
{
    transform: translateX(100%);
}

.__CCPBody .vertical-shift
{
    transform: translateY(6px);
    opacity: 0;
}

.__CCPBody .scale-hide
{
    transform: scale(0);
}

.__CCPBody .scale-x
{
    transform: scaleX(0);
}


/* Slide to centre for different predictors */
.CCP_Predictor.standard :first-child.item-selected
{
    transform: translateX(calc(var(--predictor-midpoint) - 50%));
}

.CCP_Predictor.standard :last-child.item-selected
{
    transform: translateX(calc(var(--predictor-midpoint) * -1 + 50%));
}

.CCP_Predictor.pair :first-child.item-selected
{
    transform: translateX(50%);
}

.CCP_Predictor.pair :last-child.item-selected
{
    transform: translateX(-50%);
}


.CCP_Predictor .item-resolve-in
{
    opacity: 0;
}

.CCP_Predictor :first-child.item-resolve-in
{
    transform: translateX(15%);
}

.CCP_Predictor :last-child.item-resolve-in
{
    transform: translateX(-15%);
}

.CCP_Predictor .item-hidden
{
    transform: scale(.8);
    opacity: 0;
}

.CCP_Predictor.box-exit
{
    transform: scale(.7);
    opacity: 0;
}

.CCP_PredictionSummary .team-display.item-resolve-in
{
    transform: scale(0.5);
}



/*
Text-only states overrides
*/
.CCP_MasterTextBlock:not(:has(+ .CCP_MasterActionBlock))
{
    height: unset;
    margin: auto;
}



/*
 * Preloader; retain at bottom of file
 */
.__CCPBody.preloading
{
    visibility: hidden;
}

.CCP_PreloadOverlay
{
    display: flex;
    position: absolute;
    inset: 0;
    max-height: max(var(--preload-height), var(--target-ccpbody-height));
    z-index: 1;
    justify-content: center;
    align-items: center;
}

@media (min-width: 768px)
{
    .CCP_PreloadOverlay
    {
        height: var(--target-ccpbody-height);
    }
}

.CCP_PreloadOverlay > .bar-outer
{
    position: relative;
    width: 50%;
    max-width: 350px;
    height: 4px;
    margin-top: -2px;
    border-radius: 4px;
    background-color: var(--preload-outer);
}

.CCP_PreloadOverlay .bar-inner
{
    width: 0;
    height: 100%;
    margin: 0;
    border-radius: inherit;
    background-color: var(--bet365-green);
    transition: width 350ms ease-out;
}

.CCP_PreloadOverlay .bar-number
{
    margin-top: 5px;
    text-align: right;
    font: 10px var(--system-font);
    line-height: 1;
    color: var(--bet365-green);
}