/* Smooth Fade In Animation Classes */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Ambient SVG Background Animation */
@keyframes float {
    0% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(30px, -50px) rotate(10deg); }
    66% { transform: translate(-20px, 20px) rotate(-5deg); }
    100% { transform: translate(0, 0) rotate(0deg); }
}
.animate-blob {
    animation: float 15s infinite ease-in-out alternate;
    transform-origin: center;
}
.animate-blob-delayed {
    animation: float 18s infinite ease-in-out alternate-reverse;
    transform-origin: center;
    animation-delay: 2s;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: #FDFEFD;
}
::-webkit-scrollbar-thumb {
    background: #1D5A87;
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
    background: #2DA9DF;
}

/* Calendar Styles */
.calendar-day {
    transition: all 0.2s ease;
}
.calendar-day:hover:not(.disabled) {
    background-color: #D8F5FE;
    color: #1D5A87;
    cursor: pointer;
}
.calendar-day.selected {
    background-color: #1D5A87;
    color: #FDFEFD;
    font-weight: bold;
}
.calendar-day.disabled {
    color: #cbd5e1;
    cursor: not-allowed;
    background-color: #f8fafc;
}

/* Dynamic Navbar Styles - Transparent & Color-Shifting */
#navbar {
    transition: padding 0.3s ease, background-color 0.3s ease;
    background-color: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
#navbar .nav-text, #navbar .nav-accent, #navbar .nav-icon, #navbar .nav-cta, #navbar .nav-link {
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

/* LIGHT THEME (Over White/Light Sections) -> Dark Text */
.nav-light-theme .nav-text, .nav-light-theme .nav-link { color: #1D5A87 !important; }
.nav-light-theme .nav-accent { color: #2DA9DF !important; }
.nav-light-theme .nav-icon { color: #2DA9DF !important; }
.nav-light-theme .nav-link:hover { color: #2DA9DF !important; }
.nav-light-theme .nav-cta {
    background-color: #1D5A87 !important;
    color: #ffffff !important;
    border: 1px solid #1D5A87 !important;
}
.nav-light-theme .nav-cta:hover {
    background-color: transparent !important;
    color: #1D5A87 !important;
}

/* DARK THEME (Over Dark Blue Sections) -> White Text */
.nav-dark-theme .nav-text, .nav-dark-theme .nav-link { color: #ffffff !important; }
.nav-dark-theme .nav-accent { color: #69AFCE !important; }
.nav-dark-theme .nav-icon { color: #ffffff !important; }
.nav-dark-theme .nav-link:hover { color: #69AFCE !important; }
.nav-dark-theme .nav-cta {
    background-color: #ffffff !important;
    color: #1D5A87 !important;
    border: 1px solid #ffffff !important;
}
.nav-dark-theme .nav-cta:hover {
    background-color: transparent !important;
    color: #ffffff !important;
}

/* Notification Toast */
#toast {
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s, opacity 0.5s linear;
}
#toast.show {
    visibility: visible;
    opacity: 1;
}

/* Before/After Slider Styles */
.slider-container {
    position: relative;
    width: 100%;
    height: 300px;
    overflow: hidden;
    border-radius: 0.5rem;
}
.slider-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.slider-before {
    width: 50%;
    z-index: 1;
    border-right: 2px solid #F59E0B;
}
.slider-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 2;
    cursor: ew-resize;
}
.slider-badge {
    position: absolute;
    bottom: 10px;
    padding: 4px 10px;
    background: rgba(29, 90, 135, 0.8);
    color: white;
    font-size: 0.75rem;
    font-weight: bold;
    border-radius: 4px;
    z-index: 1;
}
.badge-before { left: 10px; }
.badge-after { right: 10px; }
