/* ==========================================================
   ENGLISH FAN
   Header + Footer
   Brand System
   Blue: #0B10F5
   Red : #F11414
========================================================== */


/* ==========================================================
   ROOT
========================================================== */

:root {

    --ef-blue: #0B10F5;
    --ef-blue-dark: #080CB8;

    --ef-red: #F11414;
    --ef-red-dark: #D80F0F;

    --ef-navy: #071A38;
    --ef-navy-2: #0B2347;

    --ef-text: #111827;
    --ef-muted: #64748B;

    --ef-border: #E8ECF3;

    --ef-white: #FFFFFF;

    --ef-shadow:
        0 10px 35px rgba(7, 26, 56, .08);

    --ef-shadow-heavy:
        0 20px 55px rgba(7, 26, 56, .16);

}


/* ==========================================================
   HEADER
========================================================== */

.ef-header {

    position: relative;

    width: 100%;

    background: #fff;

    z-index: 100;

}


/* Main header */

.ef-header__main {

    background: #fff;

    border-bottom: 1px solid rgba(7, 26, 56, .06);

}


/* Row */

.ef-header__row {

    min-height: 112px;

    display: flex;

    align-items: center;

    gap: 28px;

}


/* ==========================================================
   LOGO
========================================================== */

.ef-header__logo {

    flex: 0 0 auto;

    display: flex;

    align-items: center;

}


.ef-logo {

    display: inline-flex;

    align-items: center;

    text-decoration: none;

}


.ef-logo img {

    display: block;

    width: auto;

    max-width: 190px;

    max-height: 58px;

    object-fit: contain;

}


/* ==========================================================
   DESKTOP NAV
========================================================== */

.ef-header__nav {

    flex: 1 1 auto;

    display: flex;

    justify-content: center;

}


.ef-nav {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 6px;

    margin: 0;

    padding: 0;

    list-style: none;

}


.ef-nav > li {

    position: relative;

}


.ef-nav > li > a {

    position: relative;

    display: inline-flex;

    align-items: center;

    gap: 3px;

    min-height: 112px;

    padding: 0 13px;

    color: var(--ef-text);

    font-size: 15px;

    font-weight: 600;

    text-decoration: none;

    white-space: nowrap;

    transition:
        color .2s ease,
        transform .2s ease;

}


/* Small blue indicator */

.ef-nav > li > a::after {

    content: "";

    position: absolute;

    right: 13px;

    left: 13px;

    bottom: 25px;

    height: 2px;

    border-radius: 99px;

    background: var(--ef-blue);

    transform: scaleX(0);

    transform-origin: center;

    transition: transform .22s ease;

}


.ef-nav > li > a:hover {

    color: var(--ef-blue);

}


.ef-nav > li > a:hover::after {

    transform: scaleX(1);

}


.ef-nav > li > a i {

    font-size: 16px;

}


/* ==========================================================
   NAV SUBMENU
========================================================== */

.ef-nav__submenu {

    position: absolute;

    top: calc(100% - 7px);

    right: 0;

    width: 205px;

    margin: 0;

    padding: 8px;

    background: #fff;

    border: 1px solid var(--ef-border);

    border-radius: 14px;

    box-shadow: var(--ef-shadow-heavy);

    list-style: none;

    opacity: 0;

    visibility: hidden;

    transform: translateY(10px);

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;

}


.ef-nav__dropdown:hover .ef-nav__submenu {

    opacity: 1;

    visibility: visible;

    transform: translateY(0);

}


.ef-nav__submenu li a {

    display: flex;

    align-items: center;

    gap: 9px;

    padding: 11px 12px;

    border-radius: 9px;

    color: var(--ef-text);

    font-size: 14px;

    font-weight: 500;

    text-decoration: none;

    transition:
        background .2s ease,
        color .2s ease;

}


.ef-nav__submenu li a:hover {

    background: #F3F5FF;

    color: var(--ef-blue);

}


.ef-nav__submenu li a i {

    color: var(--ef-blue);

    font-size: 17px;

}


/* ==========================================================
   HEADER ACTIONS
========================================================== */

.ef-header__actions {

    flex: 0 0 auto;

    display: flex;

    align-items: center;

    gap: 14px;

}


/* Search */

.ef-header__search {

    width: 230px;

}


.ef-search {

    display: flex;

    align-items: stretch;

    height: 46px;

    overflow: hidden;

    border: 1px solid #E1E5EC;

    border-radius: 10px;

    background: #F8F9FC;

    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;

}


.ef-search:focus-within {

    background: #fff;

    border-color: rgba(11, 16, 245, .35);

    box-shadow:
        0 0 0 4px rgba(11, 16, 245, .07);

}


.ef-search input {

    flex: 1;

    width: 100%;

    min-width: 0;

    border: 0;

    outline: 0;

    background: transparent;

    padding: 0 14px;

    color: var(--ef-text);

    font-family: inherit;

    font-size: 13px;

}


.ef-search input::placeholder {

    color: #98A2B3;

}


.ef-search button {

    width: 48px;

    border: 0;

    background: transparent;

    color: var(--ef-blue);

    font-size: 20px;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease;

}


.ef-search button:hover {

    background: var(--ef-blue);

    color: #fff;

}


/* ==========================================================
   AUTH BUTTON
========================================================== */

.ef-auth-btn {

    min-width: 104px;

    height: 46px;

    padding: 0 17px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 7px;

    border-radius: 10px;

    background: var(--ef-red);

    color: #fff !important;

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

    box-shadow: 0 8px 20px rgba(241, 20, 20, .18);

    transition:
        transform .2s ease,
        background .2s ease,
        box-shadow .2s ease;

}


.ef-auth-btn:hover {

    background: var(--ef-red-dark);

    color: #fff !important;

    transform: translateY(-2px);

    box-shadow: 0 12px 25px rgba(241, 20, 20, .25);

}


.ef-auth-btn i {

    font-size: 18px;

}


/* ==========================================================
   ACCOUNT
========================================================== */

.ef-account {

    position: relative;

}


.ef-account__toggle {

    display: flex;

    align-items: center;

    gap: 8px;

    min-height: 46px;

    padding: 4px 9px 4px 12px;

    border: 1px solid var(--ef-border);

    border-radius: 12px;

    background: #fff;

    color: var(--ef-text);

    font-family: inherit;

    cursor: pointer;

    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        color .2s ease;

}


.ef-account__toggle:hover {

    border-color: rgba(11, 16, 245, .25);

    color: var(--ef-blue);

    box-shadow: 0 7px 20px rgba(7, 26, 56, .07);

}


.ef-account__avatar {

    width: 32px;

    height: 32px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #EEF0FF;

    color: var(--ef-blue);

    font-size: 16px;

}


.ef-account__name {

    max-width: 105px;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;

    font-size: 13px;

    font-weight: 700;

}


.ef-account__arrow {

    font-size: 17px;

    color: var(--ef-muted);

}


.ef-account__dropdown {

    position: absolute;

    top: calc(100% + 10px);

    left: 0;

    width: 195px;

    padding: 8px;

    background: #fff;

    border: 1px solid var(--ef-border);

    border-radius: 14px;

    box-shadow: var(--ef-shadow-heavy);

    opacity: 0;

    visibility: hidden;

    transform: translateY(8px);

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;

}


.ef-account:hover .ef-account__dropdown {

    opacity: 1;

    visibility: visible;

    transform: translateY(0);

}


.ef-account__dropdown a,
.ef-account__dropdown button {

    width: 100%;

    display: flex;

    align-items: center;

    gap: 9px;

    padding: 11px 12px;

    border: 0;

    border-radius: 9px;

    background: transparent;

    color: var(--ef-text);

    font-family: inherit;

    font-size: 13px;

    text-align: right;

    text-decoration: none;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease;

}


.ef-account__dropdown a:hover,
.ef-account__dropdown button:hover {

    background: #F3F5FF;

    color: var(--ef-blue);

}


.ef-account__dropdown i {

    color: var(--ef-blue);

    font-size: 17px;

}


/* ==========================================================
   MOBILE ACTIONS
========================================================== */

.ef-mobile-actions {

    display: none;

    align-items: center;

    gap: 9px;

}


.ef-mobile-account,
.ef-mobile-menu {

    width: 38px;

    height: 38px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 10px;

}


.ef-mobile-account {

    background: #EEF0FF;

    color: var(--ef-blue) !important;

    font-size: 18px;

    text-decoration: none;

    border: 1px solid rgba(11, 16, 245, .12);

}


.ef-mobile-menu {

    border: 1px solid var(--ef-border);

    background: #fff;

    color: var(--ef-navy);

    font-size: 21px;

    cursor: pointer;

}


.ef-mobile-account:hover {

    background: var(--ef-blue);

    color: #fff !important;

}


/* ==========================================================
   MOBILE PANEL
========================================================== */

.ef-mobile-panel {

    position: fixed;

    top: 0;

    right: 0;

    width: min(350px, 88vw);

    height: 100vh;

    overflow-y: auto;

    background:
        linear-gradient(
            180deg,
            #071A38 0%,
            #092858 100%
        );

    z-index: 1002;

    transform: translateX(105%);

    transition: transform .32s cubic-bezier(.4, 0, .2, 1);

    box-shadow:
        -15px 0 45px rgba(0, 0, 0, .22);

}


.ef-header.mobile-open .ef-mobile-panel {

    transform: translateX(0);

}


.ef-mobile-overlay {

    position: fixed;

    inset: 0;

    background: rgba(3, 12, 28, .62);

    backdrop-filter: blur(3px);

    z-index: 1001;

    opacity: 0;

    visibility: hidden;

    transition:
        opacity .25s ease,
        visibility .25s ease;

}


.ef-header.mobile-open .ef-mobile-overlay {

    opacity: 1;

    visibility: visible;

}


.ef-mobile-panel__head {

    min-height: 76px;

    padding: 0 20px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    border-bottom: 1px solid rgba(255,255,255,.09);

    color: #fff;

}


.ef-mobile-panel__head span {

    font-size: 15px;

    font-weight: 800;

}


.ef-mobile-close {

    width: 38px;

    height: 38px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 1px solid rgba(255,255,255,.13);

    border-radius: 10px;

    background: rgba(255,255,255,.05);

    color: #fff;

    font-size: 20px;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease;

}


.ef-mobile-close:hover {

    background: var(--ef-red);

    color: #fff;

}


.ef-mobile-nav {

    padding: 15px 16px 25px;

}


.ef-mobile-nav ul {

    margin: 0;

    padding: 0;

    list-style: none;

}


.ef-mobile-nav > ul > li {

    border-bottom: 1px solid rgba(255,255,255,.075);

}


.ef-mobile-nav > ul > li > a,
.ef-mobile-nav__group > span {

    min-height: 55px;

    display: flex;

    align-items: center;

    gap: 12px;

    color: rgba(255,255,255,.94);

    font-size: 14px;

    font-weight: 600;

    text-decoration: none;

}


.ef-mobile-nav > ul > li > a i,
.ef-mobile-nav__group > span i {

    width: 22px;

    color: #AAB4FF;

    font-size: 18px;

}


.ef-mobile-nav > ul > li > a:hover {

    color: #fff;

}


.ef-mobile-nav > ul > li > a:hover i {

    color: var(--ef-red);

}


.ef-mobile-nav__group > ul {

    padding: 0 34px 12px;

}


.ef-mobile-nav__group > ul li a {

    display: block;

    padding: 9px 0;

    color: rgba(255,255,255,.72);

    font-size: 13px;

    text-decoration: none;

}


.ef-mobile-nav__group > ul li a:hover {

    color: #fff;

}


.ef-mobile-nav__account a {

    color: #fff !important;

}


.ef-mobile-nav__account a i {

    color: var(--ef-red) !important;

}


.ef-mobile-panel__footer {

    margin: 10px 16px 25px;

    padding: 18px 5px 5px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    border-top: 1px solid rgba(255,255,255,.08);

}


.ef-mobile-panel__footer > span {

    color: rgba(255,255,255,.65);

    font-size: 12px;

}


.ef-mobile-panel__social {

    display: flex;

    gap: 7px;

}


.ef-mobile-panel__social a {

    width: 34px;

    height: 34px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #fff;

    color: var(--ef-blue);

    font-size: 16px;

    transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease;

}


.ef-mobile-panel__social a:hover {

    background: var(--ef-red);

    color: #fff;

    transform: translateY(-2px);

}


/* ==========================================================
   FOOTER
========================================================== */

.footer-wrap.ef-footer {

    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #06172F 0%,
            #092657 55%,
            #071A38 100%
        ) !important;

    color: rgba(255,255,255,.78);

}


/* Decorative blue glow */

.footer-wrap.ef-footer::before {

    content: "";

    position: absolute;

    width: 420px;

    height: 420px;

    top: -260px;

    left: -130px;

    border-radius: 50%;

    background: rgba(11,16,245,.18);

    pointer-events: none;

}


/* Decorative red glow */

.footer-wrap.ef-footer::after {

    content: "";

    position: absolute;

    width: 230px;

    height: 230px;

    right: -120px;

    bottom: -140px;

    border-radius: 50%;

    background: rgba(241,20,20,.09);

    pointer-events: none;

}


.footer-wrap.ef-footer .footer-top {

    position: relative;

    z-index: 1;

    padding-top: 78px;

    padding-bottom: 48px;

}


/* Footer logo */

.footer-wrap.ef-footer .footer-logo {

    display: inline-flex;

    align-items: center;

    margin-bottom: 18px;

}


.footer-wrap.ef-footer .footer-logo img {

    max-width: 185px;

    max-height: 58px;

    object-fit: contain;

}


/* Description */

.footer-wrap.ef-footer .footer-widget > p {

    color: rgba(255,255,255,.66);

    font-size: 13px;

    line-height: 2;

}


/* Footer headings */

.footer-wrap.ef-footer .footer-widget-title {

    position: relative;

    margin-bottom: 18px;

    padding-bottom: 11px;

    color: #fff;

    font-size: 17px;

    font-weight: 800;

}


.footer-wrap.ef-footer .footer-widget-title::after {

    content: "";

    position: absolute;

    right: 0;

    bottom: 0;

    width: 34px;

    height: 3px;

    border-radius: 99px;

    background: var(--ef-red);

}


/* Footer menu */

.footer-wrap.ef-footer .footer-menu {

    margin: 0;

    padding: 0;

    list-style: none;

}


.footer-wrap.ef-footer .footer-menu li {

    margin-bottom: 9px;

}


.footer-wrap.ef-footer .footer-menu a {

    display: inline-flex;

    color: rgba(255,255,255,.68);

    font-size: 13px;

    text-decoration: none;

    transition:
        color .2s ease,
        transform .2s ease;

}


.footer-wrap.ef-footer .footer-menu a:hover {

    color: #fff !important;

    transform: translateX(-3px);

}


/* Contact */

.footer-wrap.ef-footer .footer-contact-address {

    margin: 0;

    padding: 0;

    list-style: none;

}


.footer-wrap.ef-footer .footer-contact-address li {

    margin-bottom: 12px;

    color: rgba(255,255,255,.7);

    font-size: 13px;

}


.footer-wrap.ef-footer .footer-contact-address a {

    color: rgba(255,255,255,.72);

    text-decoration: none;

}


.footer-wrap.ef-footer .footer-contact-address a:hover {

    color: #fff !important;

}


.footer-wrap.ef-footer .footer-contact-address i {

    margin-left: 6px;

    color: var(--ef-blue);

    font-size: 17px;

}


/* Social */

.footer-wrap.ef-footer .share-on {

    margin-top: 20px;

    display: flex;

    align-items: center;

    gap: 12px;

}


.footer-wrap.ef-footer .share-on > span {

    color: rgba(255,255,255,.68);

    font-size: 12px;

}


.footer-wrap.ef-footer .social-profile {

    display: flex;

    align-items: center;

    gap: 7px;

    margin: 0;

    padding: 0;

    list-style: none;

}


.footer-wrap.ef-footer .social-profile a {

    width: 34px;

    height: 34px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: rgba(255,255,255,.95);

    color: var(--ef-blue);

    font-size: 16px;

    transition:
        background .2s ease,
        color .2s ease,
        transform .2s ease;

}


.footer-wrap.ef-footer .social-profile a:hover {

    background: var(--ef-red);

    color: #fff;

    transform: translateY(-2px);

}


/* Newsletter */

.footer-wrap.ef-footer .newsletter-wrap .form-group {

    display: flex;

    overflow: hidden;

    border: 1px solid rgba(255,255,255,.12);

    border-radius: 10px;

    background: rgba(255,255,255,.06);

}


.footer-wrap.ef-footer .newsletter-wrap input {

    min-width: 0;

    height: 46px;

    flex: 1;

    border: 0;

    outline: 0;

    background: transparent;

    color: #fff;

    padding: 0 13px;

    font-family: inherit;

    font-size: 12px;

}


.footer-wrap.ef-footer .newsletter-wrap input::placeholder {

    color: rgba(255,255,255,.45);

}


.footer-wrap.ef-footer .newsletter-wrap .submit-btn {

    width: 48px;

    border: 0;

    background: var(--ef-blue);

    color: #fff;

    cursor: pointer;

    transition: background .2s ease;

}


.footer-wrap.ef-footer .newsletter-wrap .submit-btn:hover {

    background: var(--ef-red);

}


/* Footer bottom */

.footer-wrap.ef-footer .footer-bottom {

    position: relative;

    z-index: 1;

    border-top: 1px solid rgba(255,255,255,.08);

    background: rgba(3, 12, 28, .35);

}


.footer-wrap.ef-footer .copyright-text {

    padding: 18px 0;

    text-align: center;

}


.footer-wrap.ef-footer .copyright-text p {

    margin: 0;

    color: rgba(255,255,255,.55);

    font-size: 12px;

}


.footer-wrap.ef-footer .copyright-text .las {

    color: var(--ef-red);

}


/* ==========================================================
   RESPONSIVE — TABLET
========================================================== */

@media (max-width: 1199px) {

    .ef-header__row {

        gap: 18px;

    }

    .ef-nav > li > a {

        padding: 0 9px;

        font-size: 14px;

    }

    .ef-header__search {

        width: 190px;

    }

    .ef-logo img {

        max-width: 165px;

    }

}


/* ==========================================================
   RESPONSIVE — MOBILE
========================================================== */

@media (max-width: 991px) {

    .ef-header__row {

        min-height: 74px;

        justify-content: space-between;

    }

    .ef-header__nav,
    .ef-header__actions {

        display: none;

    }

    .ef-mobile-actions {

        display: flex;

        order: 1;

    }

    .ef-header__logo {

        order: 2;

    }

    .ef-logo img {

        max-width: 145px;

        max-height: 46px;

    }

    .ef-header__row {

        direction: ltr;

    }

    .ef-header__logo,
    .ef-mobile-actions {

        direction: ltr;

    }

    .footer-wrap.ef-footer .footer-top {

        padding-top: 60px;

    }

}


/* ==========================================================
   SMALL MOBILE
========================================================== */

@media (max-width: 767px) {

    .ef-mobile-panel {

        width: min(330px, 90vw);

    }

    .ef-mobile-panel__head {

        min-height: 68px;

    }

    .footer-wrap.ef-footer .footer-top {

        padding-top: 48px;

        padding-bottom: 28px;

    }

    .footer-wrap.ef-footer .footer-widget {

        margin-bottom: 25px;

    }

    .footer-wrap.ef-footer .footer-widget.ml-30 {

        margin-left: 0;

    }

    .footer-wrap.ef-footer .share-on {

        justify-content: flex-start;

    }

}


/* ==========================================================
   EXTRA SMALL
========================================================== */

@media (max-width: 375px) {

    .ef-header__row {

        min-height: 68px;

    }

    .ef-logo img {

        max-width: 125px;

    }

    .ef-mobile-account,
    .ef-mobile-menu {

        width: 35px;

        height: 35px;

    }

    .ef-mobile-panel {

        width: 92vw;

    }

    .footer-wrap.ef-footer .footer-widget-title {

        font-size: 16px;

    }

}








body.mobile-menu-open {
    overflow: hidden;
}