/* Page Loader Styles */
.loader-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #f8f9fa;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.loader {
    width: 80px;
    height: 80px;
    perspective: 1000px;
}

.cube {
    width: 100%;
    height: 100%;
    position: relative;
    transform-style: preserve-3d;
    animation: rotateCube 2s infinite linear;
}

.cube div {
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(var(--cta),#7c7c7c);
    /* background-color: #007bff; */
    opacity: 0.8;
    border: 2px solid #fff;
    box-sizing: border-box;
}

.cube div:nth-child(1) {
    transform: rotateY(0deg) translateZ(40px);
}

.cube div:nth-child(2) {
    transform: rotateY(90deg) translateZ(40px);
}

.cube div:nth-child(3) {
    transform: rotateY(180deg) translateZ(40px);
}

.cube div:nth-child(4) {
    transform: rotateY(-90deg) translateZ(40px);
}

.cube div:nth-child(5) {
    transform: rotateX(90deg) translateZ(40px);
}

.cube div:nth-child(6) {
    transform: rotateX(-90deg) translateZ(40px);
}

@keyframes rotateCube {
    0% {
        transform: rotateX(0deg) rotateY(0deg);
    }

    100% {
        transform: rotateX(360deg) rotateY(360deg);
    }
}

body {
    font-family: 'Poppins', sans-serif;
    background-color: #fff;
    color: var(--cta);
}
main{
    min-height: 100vh !important;
}
#alert-box {
    padding: 0px !important;
    margin: 0px !important;
    position: fixed;
    top: 5%;
    right: 2%;
    z-index: 9999999 !important;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
    row-gap: 7px;
    /* background: rgba(26, 25, 25, 0.062); */
}

.close-btn {
    width: 30px !important;
    height: 30px !important;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -25%;
    right: -3%;

}

#alert-box .alert {
    width:  100% !important;
    overflow: visible !important;
    animation: slide-right 0.1s;
    font-size: 14px !important;
    padding: 10px !important;
    border-radius: 10px !important;
    /* corrected animation name */
}
.alert {    
    font-size: 14px !important;
    padding: 10px !important;
}
@keyframes slide-right {
    0% {
        right: -100%;
        /* Start position, outside the view */
    }

    100% {
        right: 0%;
        /* End position, sliding in to the view */
    }
}

#alert-box .alert span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.navbar {
    background-color: #fff;
    border-bottom: 1px solid #ddd;
    position: sticky;
    top: 0;
    z-index: 1020;
}

.navbar-brand, .nav-link {
    color: var(--cta) !important;
    font-weight: 500;
}

.nav-link {
    position: relative;
}

.cart-indicator {
    position: absolute;
    top: -10%;
    right: 0%;
    background-color: var(--cta);
    color: #fff !important;
    border-radius: 50%;
    padding: 2px 6px;
    font-size: 0.75rem;
}

.hero-section {
    background: url('../frontend/imgs/banner-1.4.png') no-repeat center center/cover;
    color: white;
    padding: 100px 0;
}

.hero-section h1 {
    font-size: 3rem;
    animation: fadeIn 2s;
}

.hero-section p {
    font-size: 1.2rem;
    margin-top: 20px;
    animation: fadeIn 2s 1s;
}

.btn-primary {
    background-color: var(--cta);
    border: 1px solid var(--cta);
    color: #fff;
}

.btn-primary:hover {
    background-color: #555;
    border: 1px solid #555;
}

.courses-section {
    background-color: #f8f9fa;
}

.course-card {
    transition: transform 0.3s;
}

.course-card:hover {
    transform: scale(1.05);
}

.footer {
    /* width: 100%;
    position: absolute;
    top: 100%; */
    background-color: var(--cta);
    color: #fff;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.dropdown-menu {
    display: none;
    position: absolute;
    z-index: 1000;
    min-width: 20rem;
    padding: 0.5rem 0;
    margin: 0;
    font-size: 1rem;
    text-align: left;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, .15);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .15);
    animation: fadeInDropdown 0.3s ease forwards;
}

.dropdown:hover .main-dropdown-menu {
    display: block;
}

.dropdown-submenu:hover .dropdown-menu {
    display: block;
}

.dropdown-submenu {
    position: static;
}

.dropdown-submenu .dropdown-menu {
    left: 100%;
    top: 0;
}

.dropdown-menu .dropdown-item {
    padding: 0.5rem 1rem;
    clear: both;
    font-weight: normal;
    color: var(--cta);
    transition: all 0.3s ease;
}

.dropdown-menu .dropdown-item:hover {
    background-color: #f1f1f1;
}

.form-control {
    border: 1px solid #ccc;
    transition: all 0.3s ease;
}

.form-control:focus {
    border-color: #555;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
    outline: none;
}

@keyframes fadeInDropdown {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.carousel.slide {
    height: 90vh;
}

.carousel.slide img, .carousel-inner, .carousel-item {
    height: 100% !important;
    object-fit: cover;
}

.carousel-item {
    position: relative !important;
}

.carousel-item::before {
    width: 100%;
    height: 100%;
    content: '';
    background-color: black;
    top: 0%;
    left: 0%;
    z-index: -1;
    position: absolute;
}

.min-h-100 {
    min-height: 100vh;
    ;
}

@media screen and (max-width: 991px) {
    .carousel-caption {
        left: 0% !important;
        right: 0% !important;
        margin-bottom: 20px !important;
        border-radius: 0px !important;
    }
}

.nav-logo {
    width: 50px;
    height: 50px;
    object-fit: contain;
    ;
}

.hero-image {
    max-height: 400px !important;
    object-fit: contain !important;
}

.object-fit-contain {
    object-fit: contain !important;
}