/* =========================================================
    FONTS — self-contained for microsite (was pulled from
    style.css before that link was removed from header)
========================================================= */
@font-face {
    font-family: 'oswald-500';
    src: url('../fonts/WEB/oswald/Oswald-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'oswald-700';
    src: url('../fonts/WEB/oswald/Oswald-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'satoshi-500';
    src: url('../fonts/WEB/fonts/Satoshi-Light.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'satoshi-variable-700';
    src: url('../fonts/WEB/fonts/Satoshi-Variable.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --font-oswald-500: "oswald-500", sans-serif;
    --font-oswald-700: "oswald-700", sans-serif;
    --font-satoshi-500: "satoshi-500", sans-serif;
    --font-satoshi-700: "satoshi-variable-700", sans-serif;
    --main-clr: #002C5F;
    --main-clr-rgb: 240, 0, 0;
    --main-hover: #00AAD2;
    --main-active: #001125;
}

a:hover {
    text-decoration: none;
}

img {
    max-width: 100%;
}

.container-fluid {
    max-width: 1650px !important;
    margin: auto;
    padding: 0 15px;
}

.section-heading {
    color: #FFF;
    text-align: center;
    font-family: var(--font-oswald-700);
    font-size: 88px;
    font-style: normal;
    font-weight: 700;
    line-height: 88px;
    /* 100% */
    letter-spacing: -1.76px;
    text-transform: uppercase;
    z-index: 99;
    position: relative;
}

.section-desc {
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    color: #FFF;
    line-height: 20px;
    max-width: 760px;
    margin: auto;
    z-index: 99;
    position: relative;
}

.primary-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    color: var(--main-clr);
    padding: 16px 24px;
    border-radius: 12px;
    font-family: var(--font-oswald-700);
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
    /* 133.333% */
    letter-spacing: 0.36px;
    text-transform: uppercase;
    transition: .3s ease;
}

.primary-btn:hover {
    background: var(--main-hover);
    color: #fff;
    text-decoration: none;
}

.secondary-btn{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--main-clr);
    color: #fff;
    padding: 16px 24px;
    border-radius: 12px;
    font-family: var(--font-oswald-700);
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
    /* 133.333% */
    letter-spacing: 0.36px;
    text-transform: uppercase;
    transition: .3s ease;
}

.secondary-btn:hover {
    background: var(--main-hover);
    color: #fff;
    text-decoration: none;
}

/* Smooth in-page scrolling for the sticky-nav anchor links. */
html {
    scroll-behavior: smooth;
}

/* Offset so a clicked section lands below the sticky main header + floating nav,
   instead of being hidden underneath them. */
#programme,
#memories,
#journey,
#generator,
#prediction-game {
    scroll-margin-top: 120px;
}

.floating-nav {
    position: fixed;
    top: -100px;
    left: 0;
    width: 100%;
    z-index: 999;
    background: var(--main-clr);
    backdrop-filter: blur(8px);
    transition: .4s ease;
    padding: 14px 0;
    /* border-bottom: 1px solid rgba(255, 255, 255, 0.1); */
}

.floating-nav.show-nav {
    top: var(--microsite-header-h, 85px);
}

.floating-nav ul {
    list-style: none;
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
    gap: 40px;
}

.floating-nav ul li a {
    color: #fff;
    font-family: var(--font-oswald-700);
    text-transform: uppercase;
    font-size: 15px;
    letter-spacing: 1px;
    transition: .3s ease;
}

.floating-nav ul li a:hover {
    color: #E0E2E7;
    text-decoration: none;
}

/* HERO SECTION */

.hero-section {
    background: linear-gradient(0deg, #2297c3 0%, #239bc6 32.64%, #005D96 51.97%, #0082B2 73.02%, #00AAD2 89.34% 89.34%);
    background-size: cover;
    background-position: center;
    position: relative;
    padding-top: 40px;
    padding-bottom: 120px;
    overflow: hidden;
    z-index: 99;
}

.hero-bottom-img {
    position: relative;
    z-index: 1;
}

.hero-bottom-img::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 45%;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(180deg, #1674a4 0%, rgba(0, 170, 210, 0.00) 37.02%), #d3d3d300 -30.373px -75.174px / 104.218% 117.463% no-repeat;
}

/* Bridge */
.hero-fade-bridge {
    position: relative;
    height: 0;
    z-index: 4;
}

.hero-fade-bridge::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -111px;
    height: 300px;
    background: linear-gradient(180deg, rgba(0, 41, 109, 0) 0%, rgb(30 151 204) 50%, rgba(0, 45, 130, 0) 100%);
    pointer-events: none;
}

/* TOP fade — matches the #23A0C5 at the point where image starts */

.hero-text h3 {
    color: var(--Base-White, #FFF);
    font-family: var(--font-oswald-700);
    font-size: 36.755px;
    font-style: normal;
    font-weight: 700;
    line-height: 41.973px;
    /* 114.195% */
    text-transform: uppercase;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    margin: 0;
    margin-bottom: 10px;
}

.hero-text .hyundai-logo {
    height: 51.791px;
    margin: 0;
    object-fit: contain;
}

.nrwp br {
    display: none;
}


.hero-bottom-img img {
    display: block;
    width: 100%;
    position: relative;
    z-index: 1;
}

.hero-text,
.feature-cards {
    position: relative;
    z-index: 5;
}


.hero-text {
    text-align: center;
    padding-top: 50px;
}

.hero-desc {
    max-width: 760px;
    margin: auto;
    color: #FFF;
    text-align: center;
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px;
    /* 150% */
    margin-top: 20px;
}

.stadium-wrap {
    margin-top: 40px;
    position: relative;
}

.stadium-wrap picture {
    display: block;
}

.stadium-wrap img {
    width: 100%;
}

/* Hero banner slider (admin desktop + mobile images) */
.dc-hero-banner picture,
.dc-hero-banner img {
    display: block;
    width: 100%;
    height: auto;
}

/* Prediction Game — desktop/mobile background. The image URLs are passed from
   Blade as CSS variables (--pred-bg-desktop / --pred-bg-mobile); the media query
   lives here, not inline. Falls back to the static programme image when unset. */
#prediction-game {
    background-image:
        linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)),
        var(--pred-bg-desktop, url('/assets/images/digital-programme.png'));
}

@media (max-width: 768px) {
    #prediction-game {
        background-image:
            linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)),
            var(--pred-bg-mobile, var(--pred-bg-desktop, url('/assets/images/digital-programme.png')));
    }
}

/* Commemorative / Interactive Programme — desktop/mobile background. URLs come from
   Blade as CSS variables (--prog-bg-desktop / --prog-bg-mobile); media query lives here. */
#programme {
    background-image:
        linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)),
        var(--prog-bg-desktop, url('/assets/images/digital-programme.png'));
}

@media (max-width: 768px) {
    #programme {
        background-image:
            linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)),
            var(--prog-bg-mobile, var(--prog-bg-desktop, url('/assets/images/digital-programme.png')));
    }
}

.feature-cards {
    margin-top: -70px;
    position: relative;
    z-index: 5;
}

.feature-card {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    height: 370px;
    transition: .3s ease;
}

.feature-card:hover {
    transform: translateY(-5px);
}

.feature-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

.feature-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 34, 90, 0.00) 49.86%, #00225A 82.45%), #d3d3d300 -67.363px -29.637px / 133.413% 99.948% no-repeat;
    z-index: 2;
    pointer-events: none;
}

.feature-card-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 20px 22px 22px;
    z-index: 3;
}

.feature-card-content h4 {
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 24px;
    line-height: 1;
    text-transform: uppercase;
    margin: 0;
    letter-spacing: 0.5px;
}

/* SECTION 2 */

/* Bridge  */
.section-fade-bridge {
    position: relative;
    height: 0;
    z-index: 100;
}

.section-fade-bridge::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -190px;
    height: 380px;
    background: linear-gradient(180deg, rgba(0, 41, 109, 0) 0%, rgb(1 43 111) 50%, rgba(0, 45, 130, 0) 70%);
    pointer-events: none;
}

.road-section {
    position: relative;
    overflow: hidden;
    text-align: center;
    padding: 0;
    min-height: 720px;
    background: linear-gradient(180deg, #002d82 0%, #001d52 100%);
}

.road-section .road-carousel,
.road-section .road-carousel .carousel-inner {
    height: 720px;
}

.road-section .carousel-item {
    height: 720px;
    transition: opacity 1s ease-in-out;
}

.road-section .carousel-item .container-fluid {
    position: relative;
    z-index: 101;
    padding-top: 80px;
}

.road-section .carousel-indicators {
    bottom: 30px;
    z-index: 102;
    margin: 0 15%;
}

.road-section .carousel-indicators li,
.road-section .carousel-indicators li.active {
    box-sizing: border-box !important;
    width: 40px !important;
    height: 3px !important;
    padding: 0 !important;
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-radius: 0 !important;
    background-clip: border-box !important;
    opacity: 1 !important;
    margin: 0 6px !important;
    text-indent: -999px;
    transition: background-color 0.3s ease;
}

.road-section .carousel-indicators li {
    background-color: rgba(255, 255, 255, 0.45) !important;
}

.road-section .carousel-indicators li.active {
    background-color: #fff !important;
}

.road-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    z-index: 1;
}

*/ .road-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
            rgba(0, 29, 82, 0.45) 0%,
            rgba(0, 29, 82, 0.15) 25%,
            rgba(0, 29, 82, 0) 50%);
    z-index: 2;
    pointer-events: none;
}

.road-section .container {
    position: relative;
    z-index: 101;
}

.road-section .eyebrow {
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 12px;
    z-index: 99;
    position: relative;
}

/* PROGRAMME SECTION */

.programme-section {
    position: relative;
    padding: 100px 0;
    background:
        linear-gradient(to right,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 0)),
        url('/assets/images/digital-programme.png');

    background-size: cover;
    background-position: center;
}

.programme-section .eyebrow,
.programme-section .section-title,
.programme-section p {
    color: #000;
}

.programme-section .eyebrow {

    font-family: var(--font-oswald-700);
    font-size: 32px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px;
    /* 100% */
    text-transform: uppercase;
}

.programme-section .section-title {
    font-family: var(--font-oswald-700);
    font-size: 72px;
    font-style: normal;
    font-weight: 700;
    line-height: 72px;
    /* 100% */
    letter-spacing: -1.44px;
    text-transform: uppercase;
}

.programme-section p,
.info-card p,
.pulse-text p,
.generator-card p {
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px;
    /* 150% */
}

/* SMALL CARDS */

.small-cards-section {
    padding: 90px 0;
    background: radial-gradient(64.36% 67.15% at 87.78% 105.94%, rgba(0, 41, 109, 0.50) 0%, rgba(0, 41, 109, 0.00) 100%), rgba(220, 236, 255, 0.30);
}

.info-card {
    background: transparent;
}

.info-card .eyebrow {
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
    /* 100% */
    text-transform: uppercase;
    margin-bottom: 8px;
}

.info-card img {
    width: 100%;
    border-radius: 8px;
    margin-bottom: 25px;
    height: 355px;
    object-fit: cover;
}

.info-card h3 {
    color: var(--Base-Black, #000);
    font-family: var(--font-oswald-700);
    font-size: 50px;
    font-style: normal;
    font-weight: 700;
    line-height: 50px;
    /* 100% */
    letter-spacing: -1px;
    text-transform: uppercase;
}

.simple-link {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
    /* 133.333% */
    letter-spacing: 0.36px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 15px;
    transition: color 0.2s ease;
    text-decoration: none;
}

.simple-link:hover {
    color: var(--main-hover) !important;
    transition: all 0.2s ease-in-out !important;
    text-decoration: none;
}

.simple-link:active {
    color: #333842 !important;
    transition: 0.2s ease-in-out !important;
}

.simple-link:hover i {
    transform: translateX(4px);
    transition: all 0.2s ease-in-out !important;
}

/* JOURNEY SECTION */

.journey-section {
    position: relative;
    overflow: hidden;
    text-align: center;
    padding: 60px 0 0;
    min-height: 720px;
    background: linear-gradient(180deg, #002d82 0%, #00194a 100%);
}

.journey-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    z-index: 1;
}

/* Readability overlay  */
.journey-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, #00296D 11.43%, #00aad259 56.47%), #f4f9ff00;
    z-index: 2;
    pointer-events: none;
}

.journey-section .container-fluid {
    position: relative;
    z-index: 101;
}

.journey-section .eyebrow {
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* Bridge */
.journey-fade-bridge {
    position: relative;
    height: 0;
    z-index: 100;
}

.journey-fade-bridge::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -150px;
    height: 300px;
    background: linear-gradient(180deg, rgb(240 240 240 / 0%) 0%, rgb(243 243 243) 50%, rgb(253 253 253) 100%);
    pointer-events: none;
}

/* LEADERBOARD  */

.leaderboard-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(to bottom,
            #ffffff 0%,
            #f0f0f0 100%);
    text-align: center;
    padding: 90px 0;
}

/* ASEAN United FC pattern, bottom-right — sits behind the content. */
.leaderboard-pattern {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    pointer-events: none;
}

.leaderboard-pattern img {
    display: block;
    height: auto;
}


/* Keep leaderboard content above the bridge that overlaps its top edge. */
.leaderboard-section .container-fluid {
    position: relative;
    z-index: 101;
}

.leaderboard-section .eyebrow {
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 32px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px;
    /* 100% */
    text-transform: uppercase;
}

.leaderboard-section h2 {
    color: #000;
    font-family: var(--font-oswald-700);
    text-align: center;
    font-size: 88px;
    font-style: normal;
    font-weight: 700;
    line-height: 88px;
    /* 100% */
    letter-spacing: -1.76px;
    text-transform: uppercase;
}

.leaderboard-section p {
    color: #000;
    text-align: center;
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 24px;
    /* 150% */
}

.players-image {
    position: relative;
    z-index: 2;
    margin-top: 60px;
}

/* Dissolve the bottom of the players image so the white bridge below instead of a hard edge. */
.players-image img {
    -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}

/*  GENERATOR CARDS */

.generator-section {
    position: relative;
    background: #efefef;
    padding: 60px 0 100px;
}

/* Keep generator content above the bridge that overlaps its top edge. */
.generator-section .container-fluid {
    position: relative;
    z-index: 101;
}

.generator-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
    border-radius: 8px;
    margin-bottom: 25px;
    object-fit: cover;
}

.generator-card .eyebrow {
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.generator-card h3 {
    color: var(--Base-Black, #000);
    font-family: var(--font-oswald-700);
    font-size: 50px;
    font-style: normal;
    font-weight: 700;
    line-height: 50px;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.generator-card p {
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 24px;
}

/* FOOTER  */

.mc-footer {
    position: relative;
    overflow: hidden;
    text-align: center;
    color: #fff;
    padding: 70px 0 50px;
    background: linear-gradient(0deg, #2254DB -0.04%, #00296D 100%),
        url('/assets/images/aufc-transparent-logo-footer.png') no-repeat;
}

/* Decorative pattern, top-right — same asset/position as homepage footer. */
.mc-footer__bg {
    position: absolute;
    right: 0;
    top: 0;
    z-index: 0;
    pointer-events: none;
}

.mc-footer .container {
    position: relative;
    z-index: 1;
}

.mc-footer__logo {
    height: 120px;
    width: auto;
    margin: 0 auto 14px;
}

.mc-footer__tagline {
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    color: #fff;
    margin: 0 0 28px;
}

.mc-footer__social {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    padding: 10px 0;
}

.mc-footer__social a:hover img {
    transform: scale(1.1);
    transition: transform .3s ease-in-out;
}

/*  MOBILE */

/* FAN CARD CREATOR PAGE  */

/* Makes the whole hero feature card clickable without altering its look. */
.feature-card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.feature-card-link:hover {
    color: inherit;
    text-decoration: none;
}

.fcc-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    padding-bottom: 70px;
    /* Stadium banner with a dark navy overlay so the white text stays readable. */
    background: linear-gradient(180deg, rgba(0, 14, 61, 0.55) 0%, rgb(40 170 210) 100%),
        url('/assets/asean-championship/images/Hero-Banner-fancard-updated.png') center / cover no-repeat;
}

.fcc-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 22px 0;
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    transition: opacity .2s ease;
}

.fcc-back:hover {
    color: #fff;
    opacity: .8;
    text-decoration: none;
}

.fcc-hero__inner {
    text-align: center;
    padding: 20px 0 40px;
}

.fcc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 18px;
    letter-spacing: 4px;
    text-transform: uppercase;
}

.fcc-eyebrow-logo {
    height: 36px;
    width: auto;
}

.fcc-create {
    background: linear-gradient(180deg, #ffffff 0%, #eef2fb 100%);
    text-align: center;
    padding: 80px 0 90px;
}

.fcc-create__title {
    color: #00194a;
    font-family: var(--font-oswald-700);
    font-size: 48px;
    line-height: 1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.fcc-create__desc {
    max-width: 620px;
    margin: 0 auto 50px;
    color: #5a6584;
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    line-height: 1.6;
}

.fcc-card-visual {
    max-width: 740px;
    margin: 0 auto 48px;
}

.fcc-card-visual img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

/* FAN CARD BUILDER (create-fancard)  */

.fcb {
    background: radial-gradient(64.36% 67.15% at 87.78% 105.94%, rgba(0, 41, 109, 0.50) 0%, rgba(0, 41, 109, 0.00) 100%), rgba(220, 236, 255, 0.30);
    padding: 64px 0 90px;
}

.fcb-eyebrow {
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 20px;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.fcb-title {
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 40px;
    line-height: 1;
    text-transform: uppercase;
    margin: 0 0 48px;
}

/* ---- LEFT: live preview ---- */
.fcb-left__inner {
    position: sticky;
    top: 118px;
}

.fcb-left__sentinel {
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.fc-card {
    position: relative;
    width: 100%;
    max-width: 360px;
    aspect-ratio: 1 / 1;
    border-radius: 6px;
    overflow: hidden;
    background: transparent;
}

/* background-image (not <img>) so html2canvas exports it reliably; longhand
   offsets instead of `inset` shorthand, which html2canvas 1.4.1 doesn't parse. */
.fc-card__photo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #FFF;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
}

.fc-card__frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    z-index: 2;
    pointer-events: none;
}

.fc-card__name {
    position: absolute;
    left: 18px;
    bottom: 42px;
    z-index: 3;
    max-width: 60%;
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 26px;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}

.fc-card__flag {
    position: absolute;
    right: 18px;
    bottom: 42px;
    z-index: 3;
    width: 34px;
    height: auto;
}

.fc-download {
    margin-top: 22px;
    width: 100%;
    max-width: 360px;
    justify-content: center;
}

/* ---- RIGHT: controls ---- */
.fcb-label {
    display: block;
    margin-bottom: 10px;
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 20px;
    text-transform: uppercase;
}

.fcb-hint {
    margin: 6px 0 0;
    color: rgba(0, 25, 74, 0.65);
    font-family: var(--font-satoshi-500);
    font-size: 12px;
    line-height: 1.3;
}

.fcb-hint--error {
    color: #c0392b;
}

.fcb-input {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 48px;
    padding: 0 14px;
    background: #fff;
    border: 1px solid #d6deec;
    border-radius: 8px;
    color: #00194a;
}

.fcb-input i {
    color: #8a97b5;
}

.fcb-input input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: var(--font-satoshi-500);
    font-size: 15px;
    color: #00194a;
}

.fcb-input--file {
    flex: 1;
    overflow: hidden;
    color: #5a6584;
}

.fcb-input--file span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: var(--font-satoshi-500);
    font-size: 14px;
}

.fcb-upload {
    display: flex;
    gap: 10px;
}

.fcb-browse {
    flex: 0 0 auto;
    height: 48px;
    padding: 0 18px;
    border: 0;
    border-radius: 8px;
    background: #cfd7e6;
    color: #00194a;
    font-family: var(--font-oswald-700);
    font-size: 13px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease;
}

.fcb-browse:hover {
    background: #b9c4da;
}

.fcb-group {
    margin-top: 18px;
}

.fcb-group__title {
    margin: 0 0 16px;
    color: #000;
    font-family: var(--font-oswald-700);
    font-size: 20px;
    text-transform: uppercase;
}

/* team selector */
.fcb-teams {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.fc-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 12px 6px;
    background: #fff;
    border: 2px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.fc-team:focus{
    outline: none;
    border-color:var(--main-hover);
}

.fc-team:hover {
    box-shadow: 0 4px 14px rgba(10, 26, 77, .08);
}

.fc-team.is-active {
    border-color:var(--main-hover);
    background: #eef3ff;
}

.fc-team__flag img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.fc-team__name {
    color: #00194a;
    font-family: var(--font-oswald-700);
    font-size: 11px;
    letter-spacing: .3px;
}

/* background selector */
.fcb-bgs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    align-items: flex-start;
}

.fc-bg {
    padding: 0;
    border: none !important;
    outline: none !important;
    background: transparent;
    cursor: pointer;
    text-align: center;
}

.fc-bg__thumb {
    display: block;
    aspect-ratio: 1 / 1;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    background: #FFF;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.fc-bg__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fc-bg.is-active .fc-bg__thumb {
    border-color: var(--main-hover);
    box-shadow: 0 0 0 2px rgba(42, 75, 160, .25);
}

.fc-bg__name {
    display: block;
    margin-top: 8px;
    color: #00194a;
    font-family: var(--font-oswald-700);
    font-size: 16px;
    letter-spacing: .3px;
}

/* FAN CARD READY (download-fancard) */

.fcr-hero {
    padding-bottom: 90px;
}

.fcr-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 56px;
    padding: 20px 0 10px;
}

.fcr-left {
    flex: 0 0 auto;
}

.fcr-card-wrap {
    width: 360px;
    max-width: 100%;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 24px 48px rgba(0, 0, 0, .35);
}

.fcr-card-wrap img {
    display: block;
    width: 100%;
    height: auto;
}

.fcr-right {
    flex: 1 1 auto;
    color: #fff;
    max-width: 540px;
}

.fcr-right .fcc-eyebrow {
    margin-bottom: 18px;
}

.fcr-title {
    font-family: var(--font-oswald-700);
    font-size: 56px;
    line-height: 1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    color: #fff;
    margin: 0 0 18px;
}

.fcr-desc {
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    line-height: 1.6;
    color: #d6dcee;
    margin: 0 0 32px;
    max-width: 460px;
}

.fcr-actions {
    display: flex;
    align-items: stretch;
    gap: 14px;
    flex-wrap: wrap;
}

.fcr-download {
    flex: 0 0 auto;
}

.fcr-share-wrap {
    position: relative;
}

.fcr-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    color: #00194a;
    border: none;
    padding: 16px 24px;
    border-radius: 12px;
    font-family: var(--font-oswald-700);
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: 0.36px;
    text-transform: uppercase;
    cursor: pointer;
    transition: .3s ease;
}

.fcr-share-btn:hover {
    background: #eef2fb;
}

.fcr-share-icons {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    display: flex;
    align-items: center;
    gap: 18px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .25);
    padding: 12px 18px;
    z-index: 5;
}

.fcr-share-icons[hidden] {
    display: none;
}

.fcr-share-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #00194a;
    text-decoration: none;
    transition: color .2s ease;
}

.fcr-share-icons a:hover {
    color: var(--main-hover);
    text-decoration: none;
}

.fcr-share-icons .social-links-news-temp {
    font-size: 22px;
}

/* =========================================================
    LEADERBOARD PAGE
========================================================= */

.lb-hero {
    position: relative;
    padding-bottom: 0;
}

.lb-hero .fcc-back {
    color: #000;
}

.lb-hero .fcc-eyebrow {
    color: #000;
}

.lb-hero .section-heading {
    font-size: 64px;
    line-height: 1;
    color: #000;
}

.lb-players {
    margin-top: -10px;
    pointer-events: none;
}

.lb-players img {
    display: block;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    object-fit: contain;
}

.lb-podium-section {
    position: relative;
    /* background: linear-gradient(180deg, #00194a 0%, #00112f 100%); */
    padding: 0;
    margin-top: -120px;
    z-index: 1;
}

.lb-podium {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: end;
    max-width: 1100px;
    margin: 0 auto;
}

.lb-card {
    border-radius: 17.418px;
    background:
        radial-gradient(94.75% 69.35% at 94.44% 0%, rgb(55 54 54 / 84%) 0%, rgb(65 66 68 / 76%) 100%),
        radial-gradient(89.42% 49.53% at 36.92% 100%, rgba(0, 85, 184, 0.30) 0%, rgba(0, 85, 184, 0.00) 100%),
        linear-gradient(180deg, rgba(71, 71, 71, 0.00) 55.79%, #474747 89.29%),
        url('/assets/images/leaderboard-players.png') -331.869px -8.376px / 260.247% 109.012% no-repeat,
        rgba(54, 54, 54, 0.95);
    background-color: rgba(54, 54, 54, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.10);
    /* extra bottom padding (~100px) reserves an empty band that the table
       overlaps — keeps the Cards row and other content above the bleed line. */
    padding: 28px 22px 100px;
    color: #fff;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.lb-card--rank1 {
    border-color: rgba(255, 255, 255, 0.30);
    transform: translateY(-30px);
    padding: 36px 26px 100px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.45);
}

.lb-card--rank2 {
    transform: translateY(-15px);
}

.lb-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.lb-card__rank {
    font-family: var(--font-oswald-700);
    font-size: 60px;
    line-height: 1;
    color: #fff;
}


.lb-card__name-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lb-card__name {
    font-family: var(--font-oswald-700);
    font-size: 18px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.lb-card__flag {
    width: 28px;
    height: 28px;
    object-fit: contain;
    border-radius: 4px;
}

.lb-card__score {
    text-align: right;
    margin-bottom: 22px;
}

.lb-card__score-value {
    display: block;
    font-family: var(--font-oswald-700);
    font-size: 54px;
    line-height: 1;
    color: #fff;
}

.lb-card__score-label {
    display: block;
    margin-top: 4px;
    font-family: var(--font-oswald-500);
    font-size: 12px;
    color: #FFF;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.lb-card__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    padding: 14px 0;
}

.lb-card__stats--top {
    border-top: 0;
    margin-bottom: 4px;
     grid-template-columns: repeat(3, 1fr);
}

.lb-stat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    text-align: left;
}

.lb-stat i {
    color: var(--main-hover);
    font-size: 16px;
    margin-bottom: 2px;
}

.lb-stat__icon {
    width: 26px;
    object-fit: contain;
    margin-bottom: 2px;
}

.lb-stat__value {
    font-family: var(--font-oswald-700);
    font-size: 26px;
    line-height: 1;
    color: #fff;
}

.lb-stat--sm .lb-stat__value {
    font-size: 18px;
}

.lb-stat__label {
    font-family: var(--font-oswald-500);
    font-size: 12px;
    line-height: 1.2;
    color: #FFF;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lb-card__cards {
    display: flex;
    align-items: center;
    gap: 18px;
    padding-top: 12px;
    font-family: var(--font-oswald-700);
    font-size: 13px;
    letter-spacing: 0.5px;
}

.lb-card__chip {
    display: inline-block;
    width: 10px;
    height: 14px;
    border-radius: 2px;
    margin-right: 6px;
    vertical-align: middle;
}

.lb-card__chip--y {
    background: #f7c948;
}

.lb-card__chip--r {
    background: #e02d2d;
}

/* Top 10 table */
.lb-table-section {
    /* background: linear-gradient(180deg, #00112f 0%, #000b22 100%); */
    padding: 0 0 90px;
    margin-top: -80px;
    position: relative;
    z-index: 2;
}

.lb-table-wrap {
    background: rgba(73, 73, 73, 1);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 14px;
    padding: 22px;
    /* overflow: hidden; */
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.lb-table-title {
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 32px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 18px;
    position: absolute;
    right: -1px;
    top: -34px;
    padding: 16px 48px;
    background: #494949;
    border-radius: 16px;
}

.lb-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.lb-table {
    width: 100%;
    min-width: 1000px;
    border-collapse: separate;
    border-spacing: 0;
    color: #fff;
}

.lb-table thead th {
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 0.5px;
    color: #FFF;
    text-transform: uppercase;
    text-align: left;
    padding: 12px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    white-space: nowrap;
}

.lb-table tbody td {
    font-family: var(--font-oswald-500);
    font-size: 18px;
    color: #fff;
    padding: 14px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    white-space: nowrap;
}

.lb-table tbody tr:last-child td {
    border-bottom: 0;
}

.lb-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.03);
}

.lb-table__team {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-oswald-700);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lb-table__team img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    border-radius: 3px;
}


 .fcc-crop-modal{
        z-index:99999;
    }
    .fcc-crop-modal .modal-content {
        background: #002c5f;
        color: #fff;
        border: 1px solid rgba(255,255,255,.1);
        border-radius: 12px;
    }
    .fcc-crop-modal .modal-header,
    .fcc-crop-modal .modal-footer {
        border-color: rgba(255,255,255,.08);
    }
    .fcc-crop-modal .modal-title {
        font-family: var(--font-oswald-700);
        text-transform: uppercase;
        letter-spacing: .5px;
    }
    .fcc-crop-modal .close { color: #fff; opacity: .8; text-shadow: none; }
    .fcc-crop-modal .close:hover { opacity: 1; }
    .fcc-crop-stage {
        max-height: 60vh;
        background: #050d2c;
        border-radius: 8px;
        overflow: hidden;
    }
    .fcc-crop-stage img {
        display: block;
        max-width: 100%;
    }
    .fcc-crop-hint {
        margin: 12px 0 0;
        font-size: 13px;
        color: rgba(255,255,255,.65);
    }
    .fcc-crop-btn {
        border: 0;
        padding: 10px 22px;
        border-radius: 8px;
        font-family: var(--font-oswald-700);
        font-size: 14px;
        text-transform: uppercase;
        letter-spacing: .5px;
        transition: .2s ease;
    }
    .fcc-crop-btn--ghost {
        background: transparent;
        color: #fff;
        border: 1px solid rgba(255,255,255,.3);
    }
    .fcc-crop-btn--ghost:hover { background: rgba(255,255,255,.08); }
    .fcc-crop-btn--primary {
        background: var(--main-hover, #00AAD2);
        color: #fff;
    }
    .fcc-crop-btn--primary:hover { background: #008cb0; }
    .fcb-required { color: #ff5b6b; margin-left: 2px; }

    .fcb-name-color {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-top: 10px;
        flex-wrap: wrap;
    }
    .fcb-name-color__label {
        font-family: var(--font-satoshi-500);
        font-size: 13px;
        color: #00194a;
        margin-right: 4px;
    }
    .fc-name-color {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 12px;
        background: #fff;
        border: 1.5px solid #d6deec;
        border-radius: 999px;
        cursor: pointer;
        transition: border-color .2s ease, box-shadow .2s ease;
    }
    .fc-name-color:hover { 
        box-shadow: 0 2px 8px rgba(10, 26, 77, .08); 
    }

    .fc-name-color:focus{
         border-color: var(--main-hover, #00AAD2);
         outline: none;
    }

    .fc-name-color:focus-visible{
         border-color: var(--main-hover, #00AAD2);
         outline: none;
    }

    .fc-name-color.is-active {
        border-color: var(--main-hover, #00AAD2);
        box-shadow: 0 0 0 2px rgba(0, 170, 210, .15);
    }
    .fc-name-color__swatch {
        width: 16px;
        height: 16px;
        border-radius: 50%;
        border: 1px solid rgba(0, 0, 0, .15);
        display: inline-block;
    }
    .fc-name-color__swatch--white { background: #ffffff; }
    .fc-name-color__swatch--black { background: #000000; border-color: rgba(0, 0, 0, .35); }
    .fc-name-color__txt {
        font-family: var(--font-oswald-700);
        font-size: 12px;
        letter-spacing: .5px;
        text-transform: uppercase;
        color: #00194a;
    }
    .fc-card__name.is-dark {
        color: #000;
        text-shadow: 0 1px 4px rgba(255, 255, 255, .35);
    }

/* =========================================================
    RESPONSIVE — all media queries consolidated at the end
========================================================= */

@media (max-width: 991px) {
    /* Fan card builder */
    .fcb-left {
        margin-bottom: 40px;
    }

    .fcb-left__inner {
        position: static;
        top: auto;
    }

    .fc-card,
    .fc-download {
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    /* Floating preview after the original scrolls off-screen */
    .fcb-left.is-floating .fcb-left__inner {
        position: fixed;
        right: 16px;
        bottom: 16px;
        top: auto;
        width: 140px;
        z-index: 60;
        pointer-events: none;
    }

    .fcb-left.is-floating .fc-card {
        max-width: 140px;
        margin: 0;
        box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
        border: 2px solid #fff;
    }

    .fcb-left.is-floating .fc-card__name {
        left: 8px;
        bottom: 16px;
        font-size: 12px;
    }

    .fcb-left.is-floating .fc-card__flag {
        right: 8px;
        bottom: 16px;
        width: 16px;
    }

    .fcb-left.is-floating .fc-download {
        display: none;
    }

    /* Fan card ready */
    .fcr-row {
        flex-direction: column;
        text-align: center;
        gap: 32px;
    }

    .fcr-right {
        max-width: 100%;
    }

    .fcr-desc {
        margin-left: auto;
        margin-right: auto;
    }

    .fcr-right .fcc-eyebrow {
        justify-content: center;
    }

    .fcr-actions {
        justify-content: center;
    }

    .fcr-share-icons {
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }

    /* Leaderboard — keep 3-in-a-row but strip everything except rank + flag + score */
    .lb-podium {
        gap: 10px;
        max-width: 100%;
    }

    .lb-card {
         padding: 12px 16px 48px;
        text-align: center;
    }

    .lb-card--rank1 {
        transform: translateY(-18px);
    }

    .lb-card--rank2 {
        transform: translateY(-8px);
    }

    .lb-card__head {
        flex-direction: column-reverse;
        align-items: center;
        gap: 8px;
        margin-bottom: 10px;
    }

    .lb-card__name-wrap {
        flex-direction: column;
        gap: 6px;
    }

    .lb-card__flag {
        width: 36px;
        height: 36px;
    }

    .lb-card__rank {
        font-size: 28px;
    }

    .lb-card--rank1 .lb-card__rank {
        font-size: 32px;
    }

    .lb-card__name {
        font-size: 13px;
    }

    .lb-card__score {
        display: flex;
        text-align: center;
        margin-bottom: 0;
    }

    .lb-card__score-value {
        font-size: 36px;
    }

    .lb-card--rank1 .lb-card__score-value {
        font-size: 44px;
    }

    .lb-card__score-label {
        font-size: 10px;
    }

    /* Hide detailed stats blocks on mobile per design */
    .lb-card__stats,
    .lb-card__cards {
        display: none;
    }
}

@media (max-width: 768px) {
    .section-heading,
    .section-title {
        font-size: 52px;
        line-height: 54px;
    }

    .feature-card-content h4 {
        font-size: 14px;
        line-height: 16px;
    }

    .info-card h3,
    .generator-card h3 {
        font-size: 26px;
        line-height: 30px;
    }

    .generator-card .eyebrow {
        font-size: 12px;
        line-height: 14px;
    }

    .fcb-input--file {
        padding: 14px;
    }

    .programme-section .section-title {
        font-size: 52px;
        line-height: 54px;
    }

    .leaderboard-section h2 {
        font-size: 34px;
        line-height: 40px;
    }

    .hero-text h3 {
        font-size: 16px;
    }

    /* Compound `.row.feature-cards` selector needed because Bootstrap loads
       after microsite-style.css and would otherwise win on `.row`. */
    .row.feature-cards {
        margin-top: 40px;
        flex-wrap: nowrap;
        overflow-x: auto;
        margin-left: 0;
        margin-right: 0;
        padding-bottom: 10px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .row.feature-cards::-webkit-scrollbar {
        display: none;
    }

    .row.feature-cards > [class*="col-"] {
        flex: 0 0 auto;
        width: calc(100% / 2.2);
        max-width: calc(100% / 2.2);
        padding-left: 8px;
        padding-right: 8px;
        scroll-snap-align: start;
    }

    .feature-card {
        height: 182px;
        margin-bottom: 0;
    }

    .small-cards-section .row > .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
        padding-left: 8px;
        padding-right: 8px;
    }

    .floating-nav ul {
        gap: 22px;
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        padding: 0 15px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .floating-nav ul::-webkit-scrollbar {
        display: none;
    }

    .floating-nav ul li {
        flex: 0 0 auto;
    }

    .floating-nav ul li a {
        font-size: 12px;
        white-space: nowrap;
    }

    .info-card {
        margin-bottom: 50px;
    }

    .feature-card img,
    .generator-card img {
        height: auto;
    }

    .info-card img {
        height: 180px;
        margin-bottom: 14px;
    }

    /* Generator cards: horizontal scroll showing ~2.2 cards in view (no slider). */
    .generator-section .row {
        flex-wrap: nowrap;
        overflow-x: auto;
        margin: 0;
        padding-bottom: 10px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .generator-section .row::-webkit-scrollbar {
        display: none;
    }

    .generator-section .row > [class*="col-"] {
        flex: 0 0 auto;
        width: calc(100% / 2.2);
        scroll-snap-align: start;
    }

    .generator-section .generator-card {
        margin-bottom: 0;
    }

    .mc-footer__bg img {
        width: 200px;
    }

    .mc-footer__social {
        flex-wrap: wrap;
        gap: 1.5rem;
    }

    /* Fan card creator */
    .fcc-create__title {
        font-size: 32px;
    }

    .fcc-create {
        padding: 56px 0 64px;
    }

    .fcc-hero__inner {
        padding: 10px 0 28px;
    }

    /* Fan card builder */
    .fcb-title {
        font-size: 30px;
    }

    .fcb-teams {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Background frames: 3.2 in view, horizontally scrollable */
    .fcb-bgs {
        display: flex;
        grid-template-columns: none;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 12px;
        padding-bottom: 8px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .fcb-bgs::-webkit-scrollbar {
        display: none;
    }

    .fcb-bgs .fc-bg {
        flex: 0 0 auto;
        width: calc((100% - 24px) / 3.2);
        scroll-snap-align: start;
        display: flex;
        flex-direction: column;
    }

    .fcb-upload {
        flex-direction: column;
    }

    .fcb-browse {
        width: 100%;
    }

    /* Fan card ready */
    .fcr-title {
        font-size: 36px;
    }

    .fcr-card-wrap {
        width: 280px;
    }

    /* Leaderboard */
    .lb-hero .section-heading {
        font-size: 46px;
    }

    .lb-podium-section {
        margin-top: -60px;
    }

    .lb-table-section {
        margin-top: -30px;
        padding-bottom: 60px;
    }

    .lb-table-wrap {
        padding: 14px;
        padding-top: 24px;
    }

    .lb-table-title {
        font-size: 16px;
        top: -16px;
        padding: 8px 16px;
        border-radius: 16px;
    }

}

/* =========================================================
   FIXTURES / SCHEDULE TEASER — merged into .hero-section.
   Star sits behind the fixtures content (bottom-right of hero).
   Content inside .fixtures-inner has extra top spacing so it
   reads as a distinct block beneath the feature cards.
========================================================= */
.fixtures-star {
    position: absolute;
    bottom: 40px;
    right: -60px;
    width: 620px;
    max-width: 55%;
    height: auto;
    pointer-events: none;
    user-select: none;
    z-index: 1;
    opacity: 1;
}

.fixtures-inner {
    position: relative;
    z-index: 5;
    max-width: 760px;
    margin: 100px auto 0;
    text-align: center;
}

.fixtures-eyebrow {
    color: #fff;
    font-family: var(--font-oswald-700);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 18px;
    opacity: 0.9;
}

.fixtures-heading {
    font-size: 72px;
    line-height: 72px;
    letter-spacing: -1.4px;
    margin-bottom: 22px;
}

.fixtures-desc {
    max-width: 640px;
    margin: 0 auto 34px;
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    color: #FFF;
}

.fixtures-cta-wrap {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

.fixtures-btn svg {
    transition: transform 0.3s ease;
}

.fixtures-btn:hover svg {
    transform: translateX(4px);
}

@media (max-width: 991px) {
    .fixtures-inner {
        margin-top: 80px;
    }

    .fixtures-star {
        width: 420px;
        right: -110px;
        bottom: 60px;
        opacity: 0.4;
    }

    .fixtures-heading {
        font-size: 54px;
        line-height: 54px;
    }
}

@media (max-width: 767px) {
    .fixtures-star {
        width: 340px;
        right: -120px;
        bottom: 40px;
        opacity: 0.35;
    }
}

@media (max-width: 575px) {
    .fixtures-inner {
        margin-top: 60px;
    }

    .fixtures-star {
        width: 260px;
        right: -100px;
        bottom: 20px;
        opacity: 0.3;
    }

    .fixtures-eyebrow {
        font-size: 16px;
        letter-spacing: 1.5px;
        margin-bottom: 14px;
    }

    .fixtures-heading {
        font-size: 52px;
        line-height: 54px;
        letter-spacing: -0.8px;
        margin-bottom: 16px;
    }

    .fixtures-desc {
        font-size: 14px;
        margin-bottom: 26px;
    }

    .fixtures-btn {
        padding: 14px 22px;
        font-size: 16px;
    }
}

/* =========================================================
   SCROLL-TO-TOP FLOATING BUTTON
   Fixed bottom-right; fades in after scrolling 400px.
========================================================= */
.scroll-to-top {
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--main-clr);
    color: #fff;
    border: none;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(0, 41, 109, 0.35);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s ease, visibility 0.3s ease;
    z-index: 9999;
}

.scroll-to-top:hover {
    background: var(--main-hover);
    transform: translateY(0) scale(1.06);
}

.scroll-to-top:focus {
    outline: none;
    box-shadow: 0 0 0 4px rgba(0, 170, 210, 0.35), 0 8px 24px rgba(0, 41, 109, 0.35);
}

.scroll-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (max-width: 575px) {
    .scroll-to-top {
        bottom: 20px;
        right: 20px;
        width: 42px;
        height: 42px;
    }
}

/* =======================================================
        NATIONS' POWER MASKS
    ======================================================= */

.npm-hero {
    padding-bottom: 60px;
}

.npm-hero .section-heading {
    font-size: 64px;
    line-height: 1.05;
}

.npm-section {
    background: radial-gradient(64.36% 67.15% at 87.78% 105.94%, rgba(0, 41, 109, 0.50) 0%, rgba(0, 41, 109, 0.00) 100%), rgba(220, 236, 255, 0.30);
    padding: 70px 0 100px;
    color: var(--main-clr);
}

.npm-intro {
    max-width: 720px;
}

.npm-eyebrow {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.npm-title {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 44px;
    line-height: 1.05;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.npm-desc {
    color: #5a6584;
    font-family: var(--font-satoshi-500);
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 50px;
}

.npm-select-label {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 22px;
}

.npm-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 60px;
}

.npm-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 22px 12px 18px;
    margin: 0;
    background: transparent;
    border-radius: 14px;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}

.npm-card:hover {
    background: rgba(0, 41, 109, 0.05);
}

.npm-card__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}

.npm-card__input:focus-visible ~ .npm-card__mask {
    outline: 2px solid var(--main-hover);
    outline-offset: 4px;
    border-radius: 8px;
}

.npm-card:has(.npm-card__input:checked) {
    background: rgba(0, 41, 109, 0.10);
}

.npm-card__mask {
    width: 100%;
    max-width: 130px;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.npm-card__mask img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.npm-card__name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-align: center;
}

.npm-card__flag {
    width: 18px;
    object-fit: cover;
    flex-shrink: 0;
}

.npm-try {
    padding-top: 10px;
}

.npm-try__label {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.npm-try__btn {
    padding: 14px 22px;
}

.npm-try__icon {
    width: 20px;
    height: 20px;
    filter: brightness(0) invert(1);
}

@media (max-width: 1199px) {
    .npm-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .npm-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .npm-title {
        font-size: 36px;
    }

    .npm-hero .section-heading {
        font-size: 48px;
    }
}

@media (max-width: 575px) {
    .npm-section {
        padding: 50px 0 70px;
    }

    .npm-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .npm-title {
        font-size: 28px;
    }

    .npm-hero .section-heading {
        font-size: 36px;
    }

    .npm-card__name {
        font-size: 12px;
        letter-spacing: 1px;
    }

    .npm-card__mask {
        max-width: 90px;
    }
}

/* =======================================================
        DIGITAL STICKER PACKS
    ======================================================= */

.dsp-hero {
    padding-bottom: 60px;
}

.dsp-hero .section-heading {
    font-size: 64px;
    line-height: 1.05;
}

.dsp-section {
    background: radial-gradient(64.36% 67.15% at 87.78% 105.94%, rgba(0, 41, 109, 0.50) 0%, rgba(0, 41, 109, 0.00) 100%), rgba(220, 236, 255, 0.30);
    padding: 70px 0 100px;
    color: var(--main-clr);
}

.dsp-intro {
    max-width: 720px;
    margin-bottom: 40px;
}

.dsp-eyebrow {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.dsp-title {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 40px;
    line-height: 1.05;
    letter-spacing: -0.4px;
    text-transform: uppercase;
    margin: 0;
}

.dsp-desc {
    margin: 14px 0 0;
    color: #4a5568;
    font-size: 16px;
    line-height: 1.6;
}

.dsp-select-label {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.dsp-grid {
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 50px;
}

.dsp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 14px 8px;
    margin: 0;
    background: transparent;
    border-radius: 10px;
    cursor: pointer;
    transition: background .2s ease;
}

.dsp-card:hover {
    background: rgba(0, 41, 109, 0.05);
}

.dsp-card__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}

.dsp-card:has(.dsp-card__input:checked) {
    background: rgba(0, 41, 109, 0.10);
}

.dsp-card__shield {
    width: 44px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    /* Shield silhouette: straight top, curved bottom point */
    clip-path: path('M 4 0 L 40 0 Q 44 0 44 4 L 44 32 Q 44 40 36 46 L 24 52 Q 22 53 20 52 L 8 46 Q 0 40 0 32 L 0 4 Q 0 0 4 0 Z');
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.dsp-card__shield img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dsp-card__name {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 12px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.2;
}

/* Platform */
.dsp-platform {
    margin-bottom: 40px;
}

.dsp-platform__options {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}

.dsp-platform-opt {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 0;
    cursor: pointer;
}

.dsp-platform-opt__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}

.dsp-platform-opt__dot {
    width: 20px;
    height: 20px;
    border: 2px solid var(--main-clr);
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
    transition: border-color .2s ease;
}

.dsp-platform-opt__dot::after {
    content: "";
    position: absolute;
    inset: 3px;
    background: var(--main-clr);
    border-radius: 50%;
    transform: scale(0);
    transition: transform .15s ease;
}

.dsp-platform-opt:has(.dsp-platform-opt__input:checked) .dsp-platform-opt__dot::after {
    transform: scale(1);
}

.dsp-platform-opt__label {
    color: var(--main-clr);
    font-family: var(--font-oswald-700);
    font-size: 14px;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.dsp-platform-opt__icon {
    color: var(--main-clr);
    font-size: 18px;
}

/* Download */
.dsp-download__btn {
    border: none;
    padding: 14px 26px;
}

@media (max-width: 1199px) {
    .dsp-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .dsp-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .dsp-title {
        font-size: 32px;
    }

    .dsp-hero .section-heading {
        font-size: 48px;
    }
}

@media (max-width: 575px) {
    .dsp-section {
        padding: 50px 0 70px;
    }

    .dsp-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
    }

    .dsp-title {
        font-size: 26px;
    }

    .dsp-hero .section-heading {
        font-size: 36px;
    }

    .dsp-card__name {
        font-size: 11px;
        letter-spacing: 0.8px;
    }

    .dsp-platform__options {
        gap: 24px;
    }
}