/* =========================================================
   RIFA COUNTRIES — MODERN COUNTRY PASSPORT SYSTEM
   Concept:
   Editorial sports design + international competition interface
   No generic dashboard cards
========================================================= */

/* Mobile */

.navbar__mobile-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.menu-toggle{
    width:44px;
    height:44px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
}

.menu-toggle span{
    width:24px;
    height:2px;
    background:#fff;
    border-radius:5px;
}

/* Desktop */

@media(min-width:900px){

    .navbar__mobile-actions{
        display:none;
    }

}
/* =========================================================
   HERO
========================================================= */
/* ========================================
   COUNTRIES COVER IMAGE
======================================== */

.countries-cover {
    position: relative;
    height: 520px;
    overflow: hidden;
    background: #081C3B;
}

/* Image */

.countries-cover__image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    transform: scale(1.03);

    filter:
        brightness(.58)
        saturate(.82)
        contrast(1.08);

    transition: transform 1.2s ease;
}

.countries-cover:hover .countries-cover__image {
    transform: scale(1.06);
}


/* Cinematic overlay */

.countries-cover__overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(8,28,59,.95) 0%,
            rgba(8,28,59,.72) 35%,
            rgba(8,28,59,.25) 75%,
            rgba(8,28,59,.45) 100%
        ),

        linear-gradient(
            0deg,
            rgba(8,28,59,.92) 0%,
            transparent 55%
        );
}


/* Text */

.countries-cover__content {
    position: relative;
    z-index: 2;

    height: 100%;

    max-width: 1200px;
    margin: auto;

    padding: 0 40px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}


.countries-cover__label {
    display: flex;
    align-items: center;
    gap: 15px;

    color: #FFC83D;

    font-size: .7rem;
    font-weight: 800;

    letter-spacing: 4px;
    text-transform: uppercase;

    margin-bottom: 25px;
}

.countries-cover__label::before {
    content: "";

    width: 55px;
    height: 2px;

    background: #FFC83D;
}


.countries-cover__title {
    margin: 0;

    max-width: 850px;

    color: #fff;

    font-family: var(--font-heading);

    font-size: clamp(4rem, 8vw, 8rem);

    font-weight: 900;

    line-height: .84;

    letter-spacing: -.06em;

    text-transform: uppercase;
}


.countries-cover__title span {
    display: block;

    margin-left: 70px;

    color: transparent;

    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 2px #fff;
}


/* Bottom detail */

.countries-cover::after {
    content: "16 COUNTRIES  /  200 TEAMS  /  ONE WORLD CUP";

    position: absolute;

    right: 40px;
    bottom: 30px;

    z-index: 3;

    color: rgba(255,255,255,.5);

    font-size: .55rem;
    font-weight: 700;

    letter-spacing: 3px;
}


/* ========================================
   MOBILE
======================================== */

@media (max-width: 700px) {

    .countries-cover {
        height: 500px;
    }

    .countries-cover__content {
        padding: 0 22px;
    }

    .countries-cover__title {
        font-size: clamp(3.2rem, 14vw, 5rem);
    }

    .countries-cover__title span {
        margin-left: 20px;
        -webkit-text-stroke: 1px #fff;
    }

    .countries-cover__label {
        font-size: .55rem;
        letter-spacing: 2.5px;
    }

    .countries-cover::after {
        right: 22px;
        bottom: 20px;

        font-size: .4rem;
        letter-spacing: 2px;
    }
}
.countries-hero {

    position: relative;

    padding: 150px 0 70px;

    background: var(--navy);

    overflow: hidden;

}


/* Huge background typography */

.countries-hero::before {

    content: "WORLD";

    position: absolute;

    right: -20px;

    top: 50%;

    transform: translateY(-50%);

    font-size: clamp(150px, 22vw, 360px);

    font-weight: 900;

    line-height: .8;

    letter-spacing: -.08em;

    color: rgba(255,255,255,.025);

    pointer-events: none;

    white-space: nowrap;

}


/* Subtle technical line */

.countries-hero::after {

    content: "";

    position: absolute;

    left: 0;

    right: 0;

    bottom: 0;

    height: 1px;

    background: rgba(255,255,255,.08);

}


.countries-hero .container {

    position: relative;

    z-index: 2;

}


/* =========================================================
   HERO EYEBROW
========================================================= */

.countries-hero__eyebrow {

    display: flex;

    align-items: center;

    gap: 16px;

    margin-bottom: 34px;

    color: #fff;

    font-size: .65rem;

    font-weight: 700;

    letter-spacing: 5px;

    text-transform: uppercase;

}


.countries-hero__eyebrow span:first-child {

    color: #FFC83D;

    letter-spacing: 2px;

}


.countries-hero__line {

    width: 65px;

    height: 1px;

    background: #FFC83D;

}


/* =========================================================
   HERO HEADING
========================================================= */

.countries-hero__heading {

    display: flex;

    flex-direction: column;

    max-width: 950px;

    margin: 0;

    color: #fff;

    font-family: var(--font-heading);

    font-size: clamp(4.2rem, 8.5vw, 9rem);

    font-weight: 900;

    line-height: .83;

    letter-spacing: -.065em;

    text-transform: uppercase;

}


/* First line outline */

.countries-hero__heading {

    color: transparent;

    -webkit-text-fill-color: transparent;

    -webkit-text-stroke: 2px #fff;

}


/* Second line solid */

.countries-hero__heading span {

    color: #fff;

    -webkit-text-fill-color: #fff;

    -webkit-text-stroke: 0;

    margin-left: 5vw;

    margin-top: 8px;

}


/* Description */

.countries-hero__body {

    max-width: 520px;

    margin: 42px 0 0;

    color: #D7E3F2;

    font-size: 1.05rem;

    line-height: 1.8;

}


/* =========================================================
   REGION FILTER
========================================================= */

.region-filter {

    position: relative;

    z-index: 5;

    display: flex;

    align-items: center;

    gap: 8px;

    margin-top: 65px;

    padding-top: 22px;

    border-top: 1px solid rgba(255,255,255,.08);

}


.filter-pill {

    position: relative;

    padding: 12px 20px;

    border: 1px solid rgba(255,255,255,.12);

    background: transparent;

    color: rgba(255,255,255,.5);

    font-size: .62rem;

    font-weight: 700;

    letter-spacing: 2px;

    text-transform: uppercase;

    cursor: pointer;

    transition:

        color .3s ease,

        border-color .3s ease,

        background .3s ease,

        transform .3s ease;

}


.filter-pill:hover {

    color: #fff;

    border-color: rgba(255,255,255,.4);

    transform: translateY(-2px);

}


.filter-pill.is-active {

    color: #081C3B;

    background: #FFC83D;

    border-color: #FFC83D;

}


/* =========================================================
   COUNTRY SECTION
========================================================= */

.countries-section {

    position: relative;

    padding: 120px 0 150px;

    background: var(--navy);

    overflow: hidden;

}


/* Giant section number */

.countries-section::before {

    content: "02";

    position: absolute;

    left: -20px;

    top: 70px;

    font-size: 220px;

    font-weight: 900;

    line-height: 1;

    color: rgba(255,255,255,.025);

    pointer-events: none;

}


/* =========================================================
   SECTION HEADER
========================================================= */

.countries-section__header {

    position: relative;

    z-index: 2;

    margin-bottom: 70px;

}


.countries-section__label {

    display: flex;

    align-items: center;

    gap: 14px;

    margin-bottom: 25px;

    color: #FFC83D;

    font-size: .6rem;

    font-weight: 700;

    letter-spacing: 4px;

}


.countries-section__label-line {

    width: 50px;

    height: 1px;

    background: #FFC83D;

}


.countries-section__heading {

    display: flex;

    flex-direction: column;

    margin: 0;

    font-family: var(--font-heading);

    font-size: clamp(3rem, 6vw, 6rem);

    font-weight: 900;

    line-height: .88;

    letter-spacing: -.05em;

    color: #fff;

    text-transform: uppercase;

}


.countries-section__heading span {

    margin-left: 70px;

    color: transparent;

    -webkit-text-fill-color: transparent;

    -webkit-text-stroke: 1.5px rgba(255,255,255,.7);

}


/* =========================================================
   COUNTRY GRID
========================================================= */

.countries-grid {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 2px;

    background: rgba(255,255,255,.08);

}


/* =========================================================
   COUNTRY CARD
========================================================= */

.country-card {

    position: relative;

    min-height: 390px;

    padding: 34px;

    background: #081C3B;

    overflow: hidden;

    transition:

        background .45s ease,

        transform .45s cubic-bezier(.2,.8,.2,1);

}


/* Hover background */

.country-card::before {

    content: "";

    position: absolute;

    inset: 0;

    background:

        radial-gradient(
            circle at 80% 20%,
            rgba(255,200,61,.10),
            transparent 35%
        );

    opacity: 0;

    transition: opacity .45s ease;

}


.country-card:hover::before {

    opacity: 1;

}


/* Yellow edge */

.country-card::after {

    content: "";

    position: absolute;

    left: 0;

    top: 0;

    bottom: 0;

    width: 3px;

    background: #FFC83D;

    transform: scaleY(0);

    transform-origin: bottom;

    transition: transform .45s cubic-bezier(.2,.8,.2,1);

}


.country-card:hover::after {

    transform: scaleY(1);

}


/* =========================================================
   CARD NUMBER
========================================================= */

.country-card__number {

    position: absolute;

    top: 25px;

    right: 30px;

    font-size: .55rem;

    font-weight: 700;

    letter-spacing: 3px;

    color: rgba(255,255,255,.25);

}


/* =========================================================
   CARD TOP
========================================================= */

.country-card__top {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    gap: 24px;

}


/* Flag container */

.country-card__flag-wrap {

    width: 76px;

    height: 76px;

    display: flex;

    align-items: center;

    justify-content: center;

    background: rgba(255,255,255,.04);

    border: 1px solid rgba(255,255,255,.1);

    overflow: hidden;

    transition:

        transform .4s ease,

        border-color .4s ease;

}


.country-card:hover .country-card__flag-wrap {

    transform: scale(1.08);

    border-color: rgba(255,200,61,.5);

}


.country-card__flag {

    font-size: 45px;

    line-height: 1;

}


/* Identity */

.country-card__identity {

    min-width: 0;

}


.country-card__region {

    display: block;

    margin-bottom: 7px;

    color: #FFC83D;

    font-size: .55rem;

    font-weight: 700;

    letter-spacing: 3px;

}


.country-card__name {

    margin: 0;

    max-width: 350px;

    color: #fff;

    font-family: var(--font-heading);

    font-size: clamp(1.5rem, 2.5vw, 2.4rem);

    font-weight: 800;

    line-height: .95;

    text-transform: uppercase;

}


/* =========================================================
   STATUS
========================================================= */

.country-card__status {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    gap: 10px;

    margin-top: 55px;

}


.status-dot {

    width: 7px;

    height: 7px;

    border-radius: 50%;

    flex-shrink: 0;

}


.status-dot--open {

    background: #FFC83D;

    box-shadow: 0 0 12px rgba(255,200,61,.7);

}


.status-dot--qualifiers {

    background: #5B8CFF;

    box-shadow: 0 0 12px rgba(91,140,255,.7);

}


.status-dot--qualified {

    background: #fff;

}


.status-dot--coming-soon {

    background: rgba(255,255,255,.35);

}


.status-badge {

    padding: 0;

    border: 0;

    background: transparent;

    font-size: .58rem;

    font-weight: 700;

    letter-spacing: 2px;

    text-transform: uppercase;

}


.status-badge--open {

    color: #FFC83D;

}


.status-badge--qualifiers {

    color: #7EA5FF;

}


.status-badge--qualified {

    color: rgba(255,255,255,.8);

}


.status-badge--coming-soon {

    color: rgba(255,255,255,.45);

}


/* =========================================================
   DIVIDER
========================================================= */

.country-card__divider {

    position: relative;

    z-index: 2;

    width: 100%;

    height: 1px;

    margin: 28px 0;

    background: rgba(255,255,255,.09);

}


/* =========================================================
   PARTNER
========================================================= */

.country-card__partner {

    position: relative;

    z-index: 2;

    display: flex;

    flex-direction: column;

    gap: 8px;

    max-width: 390px;

}


.country-card__partner-label {

    color: rgba(255,255,255,.35);

    font-size: .5rem;

    font-weight: 700;

    letter-spacing: 3px;

}


.country-card__partner strong {

    color: rgba(255,255,255,.82);

    font-size: .9rem;

    font-weight: 500;

    line-height: 1.5;

}


/* =========================================================
   CARD CTA
========================================================= */

.country-card__cta {

    position: absolute;

    left: 34px;

    right: 34px;

    bottom: 30px;

    z-index: 3;

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding-top: 20px;

    border-top: 1px solid rgba(255,255,255,.09);

    color: #fff;

    text-decoration: none;

    font-size: .6rem;

    font-weight: 700;

    letter-spacing: 2px;

    text-transform: uppercase;

}


.country-card__cta .btn-arrow {

    font-size: 1.2rem;

    transition: transform .3s ease;

}


.country-card:hover .country-card__cta .btn-arrow {

    transform: translateX(8px);

}


/* =========================================================
   NO PARTNER
========================================================= */

.country-card--no-partner {

    background:

        linear-gradient(
            135deg,
            #081C3B 0%,
            #0A2146 100%
        );

}


.country-card--no-partner .country-card__partner strong {

    color: rgba(255,255,255,.65);

}


/* =========================================================
   FINAL PARTNER CTA
========================================================= */

.country-partner-cta {

    position: relative;

    padding: 150px 0;

    background: #081C3B;

    border-top: 1px solid rgba(255,255,255,.08);

    overflow: hidden;

}


/* giant background word */

.country-partner-cta::before {

    content: "RIFA";

    position: absolute;

    right: -40px;

    bottom: -100px;

    font-size: 300px;

    font-weight: 900;

    line-height: .7;

    color: rgba(255,255,255,.025);

    pointer-events: none;

}


.country-partner-cta__content {

    position: relative;

    z-index: 2;

    max-width: 850px;

}


.country-partner-cta__heading {

    display: flex;

    flex-direction: column;

    margin: 25px 0 30px;

    color: #fff;

    font-family: var(--font-heading);

    font-size: clamp(3.5rem, 7vw, 7rem);

    font-weight: 900;

    line-height: .84;

    letter-spacing: -.06em;

    text-transform: uppercase;

}


.country-partner-cta__heading span {

    margin-left: 80px;

    color: transparent;

    -webkit-text-fill-color: transparent;

    -webkit-text-stroke: 1.5px #fff;

}


.country-partner-cta__body {

    max-width: 550px;

    margin-bottom: 40px;

    color: #D7E3F2;

    font-size: 1rem;

    line-height: 1.8;

}


.country-partner-cta__button {

    display: inline-flex;

    align-items: center;

    gap: 18px;

}


/* =========================================================
   DESKTOP LARGE
========================================================= */

@media (min-width: 1200px) {

    .countries-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .country-card {

        min-height: 410px;

        padding: 42px;

    }

    .country-card__cta {

        left: 42px;

        right: 42px;

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .countries-hero {

        padding-top: 130px;

    }


    .countries-grid {

        grid-template-columns: 1fr;

    }


    .country-card {

        min-height: 370px;

    }


    .countries-section__heading span {

        margin-left: 35px;

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .countries-hero {

        padding: 115px 0 45px;

    }


    .countries-hero::before {

        font-size: 120px;

        top: 30%;

    }


    .countries-hero__eyebrow {

        gap: 10px;

        margin-bottom: 28px;

        font-size: .52rem;

        letter-spacing: 3px;

    }


    .countries-hero__line {

        width: 38px;

    }


    .countries-hero__heading {

        font-size: clamp(3.2rem, 15vw, 5rem);

        line-height: .86;

        letter-spacing: -.045em;

    }


    .countries-hero__heading {

        -webkit-text-stroke: 1px #fff;

    }


    .countries-hero__heading span {

        margin-left: 22px;

    }


    .countries-hero__body {

        margin-top: 30px;

        font-size: .9rem;

        line-height: 1.7;

    }


    .region-filter {

        margin-top: 42px;

        overflow-x: auto;

    }


    .filter-pill {

        padding: 10px 15px;

        font-size: .52rem;

    }


    .countries-section {

        padding: 80px 0 100px;

    }


    .countries-section::before {

        font-size: 130px;

        top: 35px;

    }


    .countries-section__header {

        margin-bottom: 45px;

    }


    .countries-section__label {

        font-size: .5rem;

        letter-spacing: 2px;

    }


    .countries-section__heading {

        font-size: clamp(2.8rem, 13vw, 4.5rem);

    }


    .countries-section__heading span {

        margin-left: 25px;

    }


    .country-card {

        min-height: 400px;

        padding: 25px;

    }


    .country-card__number {

        right: 22px;

        top: 22px;

    }


    .country-card__top {

        gap: 17px;

        padding-right: 25px;

    }


    .country-card__flag-wrap {

        width: 60px;

        height: 60px;

    }


    .country-card__flag {

        font-size: 34px;

    }


    .country-card__name {

        font-size: 1.4rem;

    }


    .country-card__status {

        margin-top: 40px;

    }


    .country-card__divider {

        margin: 24px 0;

    }


    .country-card__cta {

        left: 25px;

        right: 25px;

        bottom: 25px;

    }


    .country-partner-cta {

        padding: 100px 0;

    }


    .country-partner-cta::before {

        font-size: 150px;

        bottom: -30px;

    }


    .country-partner-cta__heading {

        font-size: clamp(3rem, 14vw, 5rem);

    }


    .country-partner-cta__heading span {

        margin-left: 25px;

    }


    .country-partner-cta__body {

        font-size: .9rem;

    }

}