/* =========================================================
   AL KARAMA SPORTS CLUB
   FINAL WEBSITE POLISH
========================================================= */

:root {
    --final-red: #c91522;
    --final-red-dark: #98111b;
    --final-red-soft: #fff1f2;

    --final-black: #0d0d0f;
    --final-dark: #171719;

    --final-border: #e9e9eb;

    --final-muted: #74747a;

    --final-shadow:
        0 18px 55px rgba(0, 0, 0, .10);
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.skip-link {
    position: fixed;
    top: -100px;
    inset-inline-start: 20px;

    z-index: 99999;

    padding: 12px 18px;

    background: white;
    color: black;

    border-radius: 10px;

    font-weight: 900;

    box-shadow: var(--final-shadow);
}

.skip-link:focus {
    top: 20px;
}


/* =========================================================
   TOP BAR
========================================================= */

.final-topbar {
    background:
        linear-gradient(
            90deg,
            #8e0d16,
            var(--final-red)
        );

    color: white;
}

.final-topbar-inner {
    min-height: 38px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    font-size: 11px;
}

.final-topbar-start,
.final-topbar-end {
    display: flex;
    align-items: center;
    gap: 18px;
}

.final-official-badge {
    font-weight: 900;
}

.final-topbar-location {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    opacity: .8;
}

.final-topbar-end > a {
    opacity: .86;
}

.final-topbar-end > a:hover {
    opacity: 1;
}

.final-language-mini {
    display: flex;
    align-items: center;
    gap: 6px;
}

.final-language-mini span {
    width: 1px;
    height: 11px;

    background: rgba(255,255,255,.28);
}

.final-language-mini a {
    opacity: .55;
    font-weight: 900;
}

.final-language-mini a.active,
.final-language-mini a:hover {
    opacity: 1;
}


/* =========================================================
   HEADER
========================================================= */

.final-header {
    position: sticky;

    top: 0;

    z-index: 1000;

    background: rgba(255,255,255,.97);

    border-bottom: 1px solid rgba(0,0,0,.06);

    backdrop-filter: blur(18px);

    transition:
        box-shadow .2s ease,
        background .2s ease;
}

.final-header.scrolled {
    box-shadow:
        0 12px 35px rgba(0,0,0,.08);
}

.final-header-inner {
    min-height: 86px;

    display: flex;
    align-items: center;

    gap: 25px;
}


/* =========================================================
   BRAND
========================================================= */

.final-brand {
    display: flex;
    align-items: center;

    gap: 12px;

    flex-shrink: 0;
}

.final-logo-shell {
    width: 62px;
    height: 62px;

    display: grid;
    place-items: center;

    flex-shrink: 0;
}

.final-logo {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.final-logo-fallback {
    width: 52px;
    height: 52px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: var(--final-red);
    color: white;

    font-size: 22px;
    font-weight: 900;
}

.final-brand-copy {
    display: grid;

    line-height: 1.15;
}

.final-brand-copy strong {
    color: #151515;

    font-size: 17px;
    font-weight: 900;

    white-space: nowrap;
}

.final-brand-copy span {
    margin-top: 5px;

    color: #8c8c91;

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .7px;

    direction: ltr;
}


/* =========================================================
   DESKTOP NAVIGATION
========================================================= */

.final-desktop-nav {
    min-width: 0;

    display: flex;
    align-items: stretch;

    align-self: stretch;

    gap: 2px;

    margin-inline: auto;
}

.final-nav-dropdown {
    position: relative;

    display: flex;
    align-items: stretch;
}

.final-nav-link {
    position: relative;

    height: 86px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    padding: 0 10px;

    border: 0;
    background: transparent;

    color: #303034;

    font-size: 12px;
    font-weight: 900;

    white-space: nowrap;

    cursor: pointer;

    transition:
        color .15s ease,
        background .15s ease;
}

.final-nav-link::after {
    content: "";

    position: absolute;

    right: 50%;
    bottom: 0;

    width: 0;
    height: 3px;

    transform: translateX(50%);

    background: var(--final-red);

    border-radius: 3px 3px 0 0;

    transition: width .2s ease;
}

.final-nav-link:hover,
.final-nav-link.active {
    color: var(--final-red);
}

.final-nav-link:hover::after,
.final-nav-link.active::after {
    width: calc(100% - 20px);
}

.final-nav-button {
    font-family: inherit;
}


/* =========================================================
   DESKTOP DROPDOWN
========================================================= */

.final-dropdown-panel {
    position: absolute;

    top: calc(100% - 1px);

    inset-inline-start: 0;

    width: 230px;

    display: grid;

    padding: 10px;

    border-top: 3px solid var(--final-red);

    border-radius:
        0
        0
        17px
        17px;

    background: white;

    box-shadow:
        0 24px 65px rgba(0,0,0,.14);

    opacity: 0;
    visibility: hidden;

    transform: translateY(10px);

    transition:
        opacity .18s ease,
        transform .18s ease,
        visibility .18s ease;
}

.final-nav-dropdown:hover .final-dropdown-panel,
.final-nav-dropdown:focus-within .final-dropdown-panel {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}

.final-dropdown-heading {
    padding: 9px 11px 11px;

    color: #9a9a9f;

    border-bottom: 1px solid #efeff1;

    margin-bottom: 5px;

    font-size: 10px;
    font-weight: 900;
}

.final-dropdown-panel a {
    position: relative;

    padding: 10px 12px;

    border-radius: 9px;

    color: #333338;

    font-size: 12px;
    font-weight: 800;
}

.final-dropdown-panel a:hover,
.final-dropdown-panel a.active {
    background: var(--final-red-soft);
    color: var(--final-red);
}

.final-dropdown-panel a.active::before {
    content: "";

    position: absolute;

    inset-inline-start: 4px;

    top: 50%;

    width: 3px;
    height: 18px;

    transform: translateY(-50%);

    border-radius: 4px;

    background: var(--final-red);
}


/* =========================================================
   HEADER ACTIONS
========================================================= */

.final-header-actions {
    display: flex;
    align-items: center;

    gap: 7px;

    flex-shrink: 0;
}

.final-membership-button {
    min-height: 40px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    padding: 0 13px;

    border: 1px solid #e3e3e5;

    border-radius: 999px;

    color: #29292d;
    background: white;

    font-size: 11px;
    font-weight: 900;
}

.final-membership-button:hover,
.final-membership-button.active {
    color: var(--final-red);

    border-color: #f1bdc1;

    background: var(--final-red-soft);
}

.final-support-button {
    min-height: 40px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 16px;

    border-radius: 999px;

    color: white;

    background:
        linear-gradient(
            135deg,
            var(--final-red-dark),
            var(--final-red)
        );

    font-size: 11px;
    font-weight: 900;

    box-shadow:
        0 8px 20px rgba(201,21,34,.20);
}

.final-support-button:hover {
    transform: translateY(-1px);
}


/* =========================================================
   LANGUAGE
========================================================= */

.final-language-dropdown {
    position: relative;
}

.final-language-button {
    width: 45px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 3px;

    border: 1px solid #e3e3e5;

    border-radius: 999px;

    background: white;

    color: #333;

    cursor: pointer;

    font-size: 9px;
    font-weight: 900;
}

.final-language-button:hover {
    border-color: #cacace;
}

.final-language-menu {
    position: absolute;

    top: calc(100% + 10px);

    inset-inline-end: 0;

    width: 180px;

    padding: 8px;

    border: 1px solid #ededee;

    border-radius: 15px;

    background: white;

    box-shadow: var(--final-shadow);

    opacity: 0;
    visibility: hidden;

    transform: translateY(8px);

    transition: .18s;
}

.final-language-menu.open {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}

.final-language-menu a {
    display: flex;
    align-items: center;

    gap: 11px;

    padding: 10px;

    border-radius: 9px;

    color: #333;
}

.final-language-menu a:hover,
.final-language-menu a.active {
    background: var(--final-red-soft);
    color: var(--final-red);
}

.final-language-menu a span {
    width: 30px;

    color: #999;

    font-size: 10px;
    font-weight: 900;
}

.final-language-menu a strong {
    font-size: 12px;
}


/* =========================================================
   MOBILE BUTTON
========================================================= */

.final-mobile-button {
    display: none;

    width: 44px;
    height: 44px;

    padding: 11px;

    border: 0;

    border-radius: 12px;

    background: #f3f3f4;

    cursor: pointer;
}

.final-mobile-button span {
    width: 100%;
    height: 2px;

    display: block;

    margin: 4px 0;

    border-radius: 2px;

    background: #222;

    transition:
        transform .2s ease,
        opacity .2s ease;
}

.final-mobile-button.active span:nth-child(1) {
    transform:
        translateY(6px)
        rotate(45deg);
}

.final-mobile-button.active span:nth-child(2) {
    opacity: 0;
}

.final-mobile-button.active span:nth-child(3) {
    transform:
        translateY(-6px)
        rotate(-45deg);
}


/* =========================================================
   MOBILE NAVIGATION
========================================================= */

.final-mobile-navigation {
    display: none;

    border-top: 1px solid #eeeeef;

    background: white;

    max-height: calc(100vh - 120px);

    overflow-y: auto;
}

.final-mobile-navigation.open {
    display: block;
}

.final-mobile-inner {
    padding-top: 12px;
    padding-bottom: 30px;
}

.final-mobile-main-link,
.final-mobile-group-button {
    width: 100%;

    min-height: 49px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border: 0;
    border-bottom: 1px solid #eeeeef;

    background: transparent;

    color: #28282c;

    font-family: inherit;
    font-size: 14px;
    font-weight: 900;

    text-align: start;

    cursor: pointer;
}

.final-mobile-main-link.active {
    color: var(--final-red);
}

.final-mobile-plus {
    width: 25px;
    height: 25px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: #f3f3f4;

    transition: transform .2s ease;
}

.final-mobile-group-button.active .final-mobile-plus {
    transform: rotate(45deg);
}

.final-mobile-submenu {
    display: none;

    padding: 5px 12px 10px;

    border-bottom: 1px solid #eeeeef;

    background: #fafafa;
}

.final-mobile-submenu.open {
    display: grid;
}

.final-mobile-submenu a {
    padding: 9px 8px;

    color: #55555a;

    font-size: 12px;
    font-weight: 800;
}

.final-mobile-submenu a:hover {
    color: var(--final-red);
}

.final-mobile-actions {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 8px;

    margin-top: 20px;
}

.final-mobile-support,
.final-mobile-register {
    min-height: 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    font-size: 12px;
    font-weight: 900;
}

.final-mobile-support {
    background: var(--final-red);

    color: white;
}

.final-mobile-register {
    background: #111;

    color: white;
}

.final-mobile-languages {
    margin-top: 23px;

    padding-top: 18px;

    border-top: 1px solid #eeeeef;
}

.final-mobile-languages > span {
    color: #999;

    font-size: 10px;
    font-weight: 900;
}

.final-mobile-languages > div {
    display: flex;
    gap: 8px;

    flex-wrap: wrap;

    margin-top: 9px;
}

.final-mobile-languages a {
    padding: 7px 12px;

    border-radius: 999px;

    background: #f2f2f3;

    font-size: 11px;
    font-weight: 900;
}

.final-mobile-languages a.active {
    background: var(--final-red);
    color: white;
}

body.mobile-menu-open {
    overflow: hidden;
}


/* =========================================================
   FOOTER CTA
========================================================= */

.final-footer {
    margin-top: 30px;

    background: var(--final-black);

    color: rgba(255,255,255,.68);
}

.final-footer-cta {
    background:
        linear-gradient(
            135deg,
            #8f0e17,
            var(--final-red)
        );

    color: white;
}

.final-footer-cta-inner {
    min-height: 210px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 45px;
}

.final-footer-cta-kicker {
    display: block;

    margin-bottom: 8px;

    opacity: .7;

    font-size: 11px;
    font-weight: 900;
}

.final-footer-cta h2 {
    max-width: 750px;

    font-size:
        clamp(
            30px,
            4.5vw,
            50px
        );

    line-height: 1.12;

    font-weight: 900;
}

.final-footer-cta-actions {
    display: flex;
    gap: 8px;

    flex-shrink: 0;
}

.final-footer-white-button,
.final-footer-outline-button {
    min-height: 47px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 20px;

    border-radius: 999px;

    font-size: 12px;
    font-weight: 900;
}

.final-footer-white-button {
    background: white;
    color: #151515;
}

.final-footer-outline-button {
    color: white;

    border: 1px solid rgba(255,255,255,.42);

    background: rgba(255,255,255,.08);
}


/* =========================================================
   FOOTER MAIN
========================================================= */

.final-footer-main {
    display: grid;

    grid-template-columns:
        1.7fr
        1fr
        1fr
        1fr
        1.2fr;

    gap: 45px;

    padding-top: 70px;
    padding-bottom: 55px;
}

.final-footer-brand-head {
    display: flex;
    align-items: center;

    gap: 14px;
}

.final-footer-brand-head img {
    width: 75px;
    height: 75px;

    object-fit: contain;
}

.final-footer-brand-head div {
    display: grid;
}

.final-footer-brand-head strong {
    color: white;

    font-size: 18px;
    font-weight: 900;
}

.final-footer-brand-head span {
    margin-top: 4px;

    color: #77777d;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .8px;
}

.final-footer-brand p {
    max-width: 350px;

    margin-top: 20px;

    color: #8e8e94;

    font-size: 13px;
    line-height: 1.9;
}

.final-footer-socials {
    display: flex;
    gap: 8px;

    margin-top: 20px;
}

.final-footer-socials a {
    width: 38px;
    height: 38px;

    display: grid;
    place-items: center;

    border: 1px solid #2a2a2e;

    border-radius: 50%;

    color: white;

    background: #18181b;

    font-size: 10px;
    font-weight: 900;

    transition: .2s;
}

.final-footer-socials a:hover {
    border-color: var(--final-red);
    background: var(--final-red);
}

.final-footer-column {
    display: flex;
    flex-direction: column;

    gap: 9px;
}

.final-footer-column h3 {
    position: relative;

    margin-bottom: 12px;

    padding-bottom: 13px;

    color: white;

    font-size: 14px;
    font-weight: 900;
}

.final-footer-column h3::after {
    content: "";

    position: absolute;

    bottom: 0;
    inset-inline-start: 0;

    width: 28px;
    height: 2px;

    border-radius: 2px;

    background: var(--final-red);
}

.final-footer-column a,
.final-footer-column span {
    color: #85858b;

    font-size: 12px;

    transition: .15s;
}

.final-footer-column a:hover {
    color: white;
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.final-footer-bottom {
    min-height: 72px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    border-top: 1px solid #242428;

    color: #66666b;

    font-size: 10px;
}

.final-footer-bottom-links {
    display: flex;
    align-items: center;

    gap: 8px;
}

.final-footer-bottom-links a:hover {
    color: white;
}


/* =========================================================
   LTR
========================================================= */

[dir="ltr"] .final-nav-link::after {
    right: auto;
    left: 50%;

    transform: translateX(-50%);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1280px) {

    .final-nav-link {
        padding-inline: 7px;

        font-size: 11px;
    }

    .final-brand-copy strong {
        font-size: 15px;
    }

    .final-membership-button span {
        display: none;
    }

    .final-membership-button {
        width: 40px;

        padding: 0;
    }

}


@media (max-width: 1120px) {

    .final-desktop-nav {
        display: none;
    }

    .final-mobile-button {
        display: block;
    }

    .final-header-inner {
        justify-content: space-between;
    }

    .final-header-actions {
        margin-inline-start: auto;
    }

}


@media (max-width: 950px) {

    .final-footer-main {
        grid-template-columns:
            1.5fr
            1fr
            1fr;
    }

    .final-footer-cta-inner {
        padding-top: 45px;
        padding-bottom: 45px;

        align-items: flex-start;
        flex-direction: column;
    }

}


@media (max-width: 700px) {

    .final-topbar-location,
    .final-topbar-end > a {
        display: none;
    }

    .final-topbar-inner {
        min-height: 34px;
    }

    .final-logo-shell {
        width: 52px;
        height: 52px;
    }

    .final-brand-copy strong {
        font-size: 14px;
    }

    .final-brand-copy span {
        display: none;
    }

    .final-header-inner {
        min-height: 74px;
    }

    .final-support-button {
        display: none;
    }

    .final-footer-main {
        grid-template-columns:
            1fr
            1fr;

        gap: 35px 25px;
    }

    .final-footer-brand {
        grid-column: 1 / -1;
    }

    .final-footer-bottom {
        align-items: flex-start;
        justify-content: center;
        flex-direction: column;

        padding-top: 20px;
        padding-bottom: 20px;
    }

}


@media (max-width: 480px) {

    .final-membership-button {
        display: none;
    }

    .final-language-button {
        width: 40px;
    }

    .final-brand-copy strong {
        font-size: 13px;
    }

    .final-footer-cta-actions {
        width: 100%;

        flex-direction: column;
    }

    .final-footer-white-button,
    .final-footer-outline-button {
        width: 100%;
    }

    .final-footer-main {
        grid-template-columns: 1fr;
    }

    .final-footer-brand {
        grid-column: auto;
    }

}