/* =========================================================
   R.S. Banaras Law College
   FINAL DESKTOP + MOBILE HEADER / MENU FIX
   Load this CSS LAST.
   ========================================================= */

/* ---------- DESKTOP / LAPTOP ---------- */
@media (min-width: 1200px) {
    .rs-premium-header {
        overflow: visible !important;
    }

    .rs-premium-navbar {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: 8px 0 0 !important;
    }

    .rs-brand-cluster {
        display: flex !important;
        align-items: center !important;
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        gap: 16px !important;
        padding: 2px 0 11px !important;
    }

    .rs-header-brand {
        flex: 0 0 108px !important;
        width: 108px !important;
        height: 92px !important;
        margin: 0 !important;
    }

    .rs-header-logo {
        width: auto !important;
        height: 88px !important;
        max-width: 104px !important;
        max-height: 88px !important;
        object-fit: contain !important;
    }

    .rs-brand-copy {
        display: flex !important;
        flex-direction: column !important;
        min-width: 0 !important;
        text-decoration: none !important;
    }

    .rs-brand-title {
        display: block !important;
        color: #fff !important;
        font-size: clamp(38px, 2.8vw, 46px) !important;
        font-weight: 800 !important;
        line-height: 1.06 !important;
        white-space: nowrap !important;
        letter-spacing: .1px !important;
        text-shadow: 0 5px 18px rgba(0,0,0,.28) !important;
    }

    .rs-brand-city {
        display: inline-flex !important;
        align-items: center !important;
        gap: 7px !important;
        margin-top: 6px !important;
        color: #f4d86a !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        letter-spacing: 1px !important;
    }

    .rs-menu-toggle {
        display: none !important;
    }

    /* Critical override: old responsive.css used display:none!important here. */
    .navbar-expand-xl .rs-navbar-collapse,
    .navbar-expand-xl .rs-navbar-collapse.collapse,
    .navbar-expand-xl .rs-navbar-collapse.collapse:not(.show),
    .navbar-expand-xl .rs-navbar-collapse:not(.show),
    .navbar-expand-xl .rs-navbar-collapse:not(.show):not(.collapsing) {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        flex: 0 0 100% !important;
        flex-basis: 100% !important;
        width: 100% !important;
        align-items: center !important;
        justify-content: space-between !important;
        margin: 0 !important;
        padding: 7px 0 8px !important;
        overflow: visible !important;
        background: rgba(2,15,36,.23) !important;
        border-top: 1px solid rgba(255,255,255,.12) !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .rs-main-menu {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        gap: 2px !important;
    }

    .rs-main-menu .nav-item {
        display: block !important;
        width: auto !important;
    }

    .rs-main-menu .rs-menu-link {
        display: flex !important;
        align-items: center !important;
        width: auto !important;
        min-height: 44px !important;
        padding: 11px 9px !important;
        color: #fff !important;
        font-size: 13.5px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
        border-bottom: 0 !important;
        border-radius: 9px !important;
    }

    .rs-main-menu .rs-menu-link:hover,
    .rs-main-menu .rs-menu-link:focus,
    .rs-main-menu .rs-menu-link.active {
        color: #ffe47a !important;
        background: rgba(255,255,255,.08) !important;
    }

    .rs-dropdown-menu {
        position: absolute !important;
        width: auto !important;
        min-width: 235px !important;
        margin-top: 0 !important;
        transform: none !important;
        border-radius: 0 0 12px 12px !important;
        box-shadow: 0 18px 40px rgba(0,0,0,.20) !important;
    }

    .rs-apply-button {
        display: inline-flex !important;
        flex: 0 0 auto !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        min-height: 45px !important;
        margin: 0 4px 0 8px !important;
        padding: 11px 15px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }
}

/* Keep 1200-1399 screens horizontal too; just tighten spacing. */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .rs-header-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .rs-brand-title {
        font-size: 37px !important;
    }

    .rs-main-menu .rs-menu-link {
        padding-left: 6px !important;
        padding-right: 6px !important;
        font-size: 12.4px !important;
    }

    .rs-apply-button {
        padding-left: 10px !important;
        padding-right: 10px !important;
        font-size: 12px !important;
    }
}

/* ---------- TABLET + MOBILE ---------- */
@media (max-width: 1199.98px) {
    .rs-header-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .rs-premium-navbar {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 86px !important;
        gap: 8px !important;
        padding: 6px 0 !important;
    }

    .rs-brand-cluster {
        display: flex !important;
        align-items: center !important;
        flex: 1 1 0 !important;
        min-width: 0 !important;
        gap: 10px !important;
        padding: 0 !important;
    }

    .rs-header-brand {
        flex: 0 0 68px !important;
        width: 68px !important;
        height: 64px !important;
        margin: 0 !important;
    }

    .rs-header-logo {
        width: auto !important;
        height: 61px !important;
        max-width: 66px !important;
        max-height: 61px !important;
        object-fit: contain !important;
    }

    .rs-brand-copy {
        display: flex !important;
        flex-direction: column !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        padding: 0 2px 0 0 !important;
    }

    .rs-brand-title {
        display: block !important;
        color: #fff !important;
        font-size: clamp(18px, 3.8vw, 29px) !important;
        font-weight: 800 !important;
        line-height: 1.12 !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    .rs-brand-city {
        display: inline-flex !important;
        align-items: center !important;
        gap: 5px !important;
        margin-top: 3px !important;
        color: #f4d86a !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        letter-spacing: .6px !important;
    }

    .rs-menu-toggle {
        display: flex !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        height: 42px !important;
        align-items: center !important;
        justify-content: center !important;
        margin-left: 5px !important;
        padding: 0 !important;
        color: #071b3f !important;
        background: linear-gradient(135deg,#ffe47b,#d9ad28) !important;
        border: 0 !important;
        border-radius: 10px !important;
    }

    /* Critical mobile collapse behavior. */
    .navbar-expand-xl .rs-navbar-collapse.collapse:not(.show),
    .navbar-expand-xl .rs-navbar-collapse:not(.show):not(.collapsing) {
        display: none !important;
    }

    .navbar-expand-xl .rs-navbar-collapse.collapse.show,
    .navbar-expand-xl .rs-navbar-collapse.collapsing {
        display: block !important;
    }

    .rs-navbar-collapse {
        flex: 0 0 100% !important;
        flex-basis: 100% !important;
        width: 100% !important;
        margin-top: 6px !important;
        padding: 7px 0 13px !important;
        max-height: calc(100dvh - 110px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background: #061a38 !important;
        border: 1px solid rgba(217,173,40,.22) !important;
        border-radius: 12px !important;
        box-shadow: 0 16px 32px rgba(0,0,0,.22) !important;
    }

    .rs-main-menu {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .rs-main-menu .nav-item {
        width: 100% !important;
    }

    .rs-main-menu .rs-menu-link {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        min-height: 46px !important;
        padding: 12px 16px !important;
        color: #fff !important;
        font-size: 14.5px !important;
        font-weight: 600 !important;
        border-bottom: 1px solid rgba(255,255,255,.07) !important;
        border-radius: 0 !important;
    }

    .rs-main-menu .dropdown-toggle {
        justify-content: space-between !important;
    }

    .rs-main-menu .dropdown-toggle::after {
        margin-left: auto !important;
    }

    .rs-dropdown-menu {
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 4px 0 !important;
        transform: none !important;
        background: #fff !important;
        border: 0 !important;
        border-left: 3px solid #d9ad28 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .rs-dropdown-menu .dropdown-item {
        padding: 10px 22px !important;
        font-size: 13.5px !important;
        white-space: normal !important;
    }

    .rs-apply-button {
        display: flex !important;
        width: calc(100% - 24px) !important;
        min-height: 48px !important;
        margin: 12px 12px 2px !important;
        justify-content: center !important;
    }
}

/* ---------- PHONE ---------- */
@media (max-width: 767.98px) {
    .top-bar {
        padding: 5px 0 !important;
    }

    .top-contact,
    .top-navigation {
        width: 100% !important;
        justify-content: center !important;
        gap: 4px !important;
    }

    .top-contact span,
    .top-navigation .top-link {
        margin: 0 !important;
        padding: 3px 6px !important;
        font-size: 10px !important;
        box-shadow: none !important;
    }

    .top-email {
        display: none !important;
    }

    .rs-premium-navbar {
        min-height: 78px !important;
    }

    .rs-brand-cluster {
        gap: 7px !important;
    }

    .rs-header-brand {
        flex: 0 0 56px !important;
        width: 56px !important;
        height: 55px !important;
    }

    .rs-header-logo {
        height: 52px !important;
        max-width: 54px !important;
        max-height: 52px !important;
    }

    .rs-brand-title {
        font-size: clamp(16px, 4.8vw, 21px) !important;
        line-height: 1.12 !important;
    }

    .rs-brand-city {
        margin-top: 2px !important;
        font-size: 10px !important;
    }

    .rs-menu-toggle {
        flex-basis: 40px !important;
        width: 40px !important;
        height: 39px !important;
        margin-left: 4px !important;
    }
}

/* ---------- VERY SMALL PHONE ---------- */
@media (max-width: 430px) {
    .rs-header-container {
        padding-left: 7px !important;
        padding-right: 7px !important;
    }

    .rs-brand-cluster {
        gap: 5px !important;
    }

    .rs-header-brand {
        flex: 0 0 47px !important;
        width: 47px !important;
        height: 49px !important;
    }

    .rs-header-logo {
        height: 46px !important;
        max-width: 46px !important;
        max-height: 46px !important;
    }

    .rs-brand-title {
        font-size: clamp(13.5px, 4.25vw, 17px) !important;
        white-space: nowrap !important;
    }

    .rs-brand-city {
        font-size: 9.4px !important;
    }

    .rs-menu-toggle {
        flex: 0 0 38px !important;
        width: 38px !important;
        height: 38px !important;
    }
}


/* =========================================================
   NON-STICKY HEADER + HOME HERO IMAGE FINAL OVERRIDE
   Must remain at the end of this file.
   ========================================================= */

.rs-premium-header {
    position: relative !important;
    top: auto !important;
}

@media (max-width: 767.98px) {
    .hero-section {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        height: 56.19vw !important;
        min-height: 200px !important;
        max-height: 430px !important;
        aspect-ratio: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        background-image: url("../images/hero.png") !important;
        background-repeat: no-repeat !important;
        background-position: center center !important;
        background-size: 100% 100% !important;
        overflow: hidden !important;
    }

    .hero-section .container,
    .hero-section .row,
    .hero-row {
        min-height: 0 !important;
        height: 100% !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

@media (max-width: 430px) {
    .hero-section {
        min-height: 202px !important;
    }
}

/* =========================================================
   FLOATING SCROLL-TO-TOP BUTTON - MATCH ADMISSION BUTTON
   Keeps the arrow beside/above the Admission Notice cap.
   ========================================================= */

.scroll-top-btn {
    position: fixed !important;
    right: 20px !important;
    bottom: 162px !important;
    z-index: 1039 !important;

    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    padding: 0 !important;
    margin: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    color: #0B1F4D !important;
    background: linear-gradient(135deg, #F8D953 0%, #D4AF37 100%) !important;
    border: 0 !important;
    border-radius: 50% !important;

    box-shadow: 0 12px 28px rgba(11,31,77,.24) !important;

    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;

    transform: translateY(12px) scale(.94) !important;
    transition:
        opacity .28s ease,
        visibility .28s ease,
        transform .28s ease,
        background-color .28s ease,
        color .28s ease,
        box-shadow .28s ease !important;
}

.scroll-top-btn i {
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font-size: 21px !important;
    line-height: 1 !important;
}

.scroll-top-btn.show {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) scale(1) !important;
}

.scroll-top-btn:hover,
.scroll-top-btn:focus {
    color: #ffffff !important;
    background: #0B1F4D !important;
    box-shadow: 0 16px 34px rgba(11,31,77,.32) !important;
    transform: translateY(-3px) scale(1.03) !important;
    outline: none !important;
}

/* Home page: cap button is fixed at bottom 95px, so arrow sits just above it. */
body:has(.floating-admission-btn) .scroll-top-btn {
    right: 20px !important;
    bottom: 162px !important;
}

/* Pages without the Admission Notice floating cap. */
body:not(:has(.floating-admission-btn)) .scroll-top-btn {
    right: 20px !important;
    bottom: 24px !important;
}

@media (max-width: 575.98px) {
    .scroll-top-btn {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
        right: 14px !important;
        bottom: 138px !important;
    }

    .scroll-top-btn i {
        font-size: 19px !important;
    }

    /* Admission cap is at bottom 78px on phone; arrow sits directly above it. */
    body:has(.floating-admission-btn) .scroll-top-btn {
        right: 14px !important;
        bottom: 138px !important;
    }

    body:not(:has(.floating-admission-btn)) .scroll-top-btn {
        right: 14px !important;
        bottom: 18px !important;
    }
}
