/* Public site navbar */
/* Navbar Custom Styles */
.main-navbar {
    background: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(15px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    z-index: 2000 !important; /* Ensure it stays above all content and animations */
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.main-navbar.navbar-scrolled {
    background: rgba(10, 26, 60, 0.98) !important; /* Forces the deep navy blue over global defaults */
    backdrop-filter: blur(15px);
    box-shadow: 0 4px 25px rgba(0, 0, 0, 0.2);
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.navbar-nav .nav-link {
    color: #1a472a !important;
    transition: all 0.3s ease;
    font-size: 0.95rem;
    font-weight: 700;
    position: relative;
    padding: 0.5rem 1rem !important;
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
}

.main-navbar.navbar-scrolled .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.8) !important;
}

.main-navbar.navbar-scrolled .navbar-nav .nav-link:hover, 
.main-navbar.navbar-scrolled .navbar-nav .nav-link.active {
    color: #ffffff !important;
    text-shadow: none;
}

.main-navbar.navbar-scrolled .navbar-nav .nav-link::after {
    background: #ffffff;
}

.main-navbar.navbar-scrolled .brand-text-wrapper span {
    color: #ffffff !important;
}

.main-navbar.navbar-scrolled .brand-text-wrapper small {
    color: rgba(255, 255, 255, 0.7) !important;
}

.main-navbar.navbar-scrolled .navbar-toggler i {
    color: #ffffff !important;
}

.main-navbar.navbar-scrolled .login-nav-link {
    color: #ffffff !important;
}

.main-navbar.navbar-scrolled .btn-user-nav {
    border-color: rgba(255, 255, 255, 0.4);
    color: #ffffff;
}

.navbar-nav .nav-link:hover, 
.navbar-nav .nav-link.active {
    color: #0c3483 !important;
}

.navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: #0c3483;
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {
    width: 60%;
}

.btn-user-nav {
    border: 2px solid #0c3483;
    color: #0c3483;
    transition: all 0.3s ease;
    font-weight: 600;
}

.btn-user-nav:hover {
    background: #0c3483;
    color: white;
    transform: translateY(-2px);
}

.login-nav-link {
    color: #0c3483;
    transition: all 0.3s ease;
    padding: 10px 15px;
    border-radius: 8px;
}

.login-nav-link:hover {
    background: rgba(12, 52, 131, 0.05);
    color: #1a472a;
}

.btn-register-nav {
    background: #0c3483;
    color: white !important;
    padding: 10px 25px !important;
    transition: all 0.3s ease;
}

.btn-register-nav:hover {
    filter: brightness(1.1);
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(12, 52, 131, 0.25) !important;
}

.dropdown-item {
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.dropdown-item:hover {
    background-color: #f8fafc;
    padding-left: 1.75rem;
    color: #0c3483;
}

.hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(12, 52, 131, 0.15) !important;
}

.animate.slideIn {
    animation-duration: 0.3s;
    animation-fill-mode: both;
    animation-name: slideIn;
}

@keyframes slideIn {
    0% {
        transform: translateY(1rem);
        opacity: 0;
    }
    100% {
        transform: translateY(0rem);
        opacity: 1;
    }
}

/* Premium public-site navigation */
.public-site-nav {
    --nav-navy: #071b39;
    --nav-ink: #07142c;
    --nav-gold: #e5bd63;
    background: rgba(5, 19, 43, 0.93) !important;
    border-bottom: 1px solid rgba(229, 189, 99, 0.35) !important;
    box-shadow: 0 12px 34px rgba(1, 10, 27, 0.24) !important;
    backdrop-filter: blur(18px) saturate(135%);
}
.public-site-nav .container { min-height: 64px; }
.public-site-nav .navbar-brand { gap: 0.7rem; }
.public-site-nav .brand-mark {
    width: 54px; height: 54px; padding: 3px; display: inline-flex;
    border: 1px solid rgba(229, 189, 99, 0.75); border-radius: 50%;
    background: #c9a84c; box-shadow: 0 0 0 4px rgba(229, 189, 99, 0.12);
}
.public-site-nav .brand-mark img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.public-site-nav .brand-name-main {
    color: #fff8e5 !important; font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.28rem; font-weight: 700; line-height: 1; letter-spacing: 0.04em;
}
.public-site-nav .brand-text-wrapper small { color: rgba(255, 246, 220, 0.68); font-size: 0.62rem; letter-spacing: 0.13em; margin-top: 4px; text-transform: uppercase; }
.public-site-nav .navbar-nav { gap: 0.1rem; }
.public-site-nav .navbar-nav .nav-link {
    color: rgba(255, 250, 238, 0.78) !important; padding: 0.5rem 0.75rem !important;
    font-size: 0.83rem; letter-spacing: 0.02em; text-shadow: none;
}
.public-site-nav .navbar-nav .nav-link::after { bottom: 2px; height: 2px; background: var(--nav-gold); }
.public-site-nav .navbar-nav .nav-link:hover,
.public-site-nav .navbar-nav .nav-link.active { color: #fff !important; }
.public-site-nav .navbar-nav .nav-link.active::after,
.public-site-nav .navbar-nav .nav-link:hover::after { width: 45%; }
.public-site-nav .authentication-buttons { gap: 0.6rem !important; }
.public-site-nav .nav-signin { color: #fff6de; font-size: 0.85rem; font-weight: 700; text-decoration: none; padding: 0.55rem 0.65rem; }
.public-site-nav .nav-signin:hover { color: var(--nav-gold); }
.public-site-nav .nav-reserve {
    display: inline-flex; align-items: center; color: #0a1b35 !important; background: #c9a84c;
    border-radius: 999px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2); font-size: 0.82rem; font-weight: 800;
    padding: 0.64rem 1rem; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.public-site-nav .nav-reserve:hover { color: #07142c !important; transform: translateY(-2px); box-shadow: 0 9px 22px rgba(0, 0, 0, 0.28); }
.public-site-nav .btn-user-nav { border-color: rgba(229, 189, 99, 0.65); color: #fff7e4; background: rgba(255,255,255,0.08); }
.public-site-nav .btn-user-nav:hover { color: #0a1b35; background: #f0ce77; border-color: #f0ce77; }
.public-site-nav .dropdown-menu { border: 1px solid rgba(229, 189, 99, 0.32); box-shadow: 0 18px 36px rgba(5, 15, 43, 0.22); }
.public-site-nav .navbar-toggler { border: 1px solid rgba(229, 189, 99, 0.65) !important; padding: 0.45rem; }
.public-site-nav .hamburger-box { display: grid; gap: 4px; width: 22px; }
.public-site-nav .hamburger-line { display: block; height: 2px; border-radius: 99px; background: #f6d887; }
.public-site-nav.navbar-scrolled { background: rgba(5, 18, 40, 0.97) !important; padding-top: 0.38rem !important; padding-bottom: 0.38rem !important; border-bottom-color: rgba(229, 189, 99, 0.5) !important; }
.public-site-nav.navbar-scrolled .brand-text-wrapper span { color: #fff8e5 !important; }

@media (max-width: 991.98px) {
    .public-site-nav .navbar-collapse { margin-top: 0.75rem; padding: 0.85rem; background: rgba(5, 18, 40, 0.96); border: 1px solid rgba(229, 189, 99, 0.22); border-radius: 1rem; }
    .public-site-nav .navbar-nav { gap: 0.25rem; }
    .public-site-nav .navbar-nav .nav-link { padding: 0.7rem 0.75rem !important; }
    .public-site-nav .authentication-buttons { margin-top: 0.7rem; display: grid !important; grid-template-columns: 1fr 1.4fr; }
    .public-site-nav .nav-signin, .public-site-nav .nav-reserve { justify-content: center; text-align: center; }
}
