/* Custom Login Page Styles */

/* Font Configuration - Google Fonts loaded via HTML for optimal performance */

body { 
    font-family: 'Inter', sans-serif; 
}

/* Custom color palette */
:root {
    --primary-dark-blue: #1D4273;
    --secondary-dark-blue: #163A59;
    --primary-blue: #2B96D9;
    --light-blue: #32A9D9;
    --light-gray: #F2F2F2;
    --white: #FFFFFF;
}

/* Navbar styles */
.navbar {
    background: var(--white);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--light-gray);
    box-shadow: 0 2px 10px rgba(29, 66, 115, 0.1);
}

.nav-link {
    color: var(--primary-dark-blue);
    font-weight: 500;
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
}

.nav-link:hover {
    background-color: var(--light-gray);
    color: var(--light-blue);
}

.mobile-menu {
    transform: translateX(100%);
    transition: transform 0.3s ease;
    background: var(--white);
    z-index: 1000;
}

.mobile-menu.active {
    transform: translateX(0);
}

.mobile-menu .nav-link {
    background: var(--white);
    color: var(--primary-dark-blue);
    margin-bottom: 0.25rem;
    border-radius: 0.5rem;
}

.mobile-menu .nav-link:hover {
    background-color: var(--light-gray);
    color: var(--light-blue);
}

/* Gradient background with family image */
.hero-gradient {
    background: linear-gradient(
        to bottom,
        transparent 0%,
        transparent 80%,
        rgba(0, 0, 0, 0.3) 90%,
        rgba(0, 0, 0, 0.7) 100%
    ), 
    linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        rgba(0, 0, 0, 0.2) 60%,
        rgba(0, 0, 0, 0.6) 100%
    ),
    url('/img/family3.webp');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    /* Removed background-attachment: fixed for Safari compatibility */
}

/* Mobile view: background position from right */
@media (max-width: 768px) {
    .hero-gradient {
        background-position: right center;
    }
}

/* Safari-specific fixes */
@supports (-webkit-appearance: none) {
    .hero-gradient {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
        -webkit-perspective: 1000px;
        perspective: 1000px;
    }
}

/* Floating card animation */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
}

.floating-card {
    animation: float 3s ease-in-out infinite;
}

.floating-card:nth-child(2) {
    animation-delay: -1s;
}

.floating-card:nth-child(3) {
    animation-delay: -2s;
}

/* Safari-specific fixes for backdrop blur */
@supports (-webkit-backdrop-filter: blur(10px)) {
    .floating-card {
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
        background: rgba(255, 255, 255, 0.25) !important;
    }
}

/* Fallback for browsers that don't support backdrop-filter */
@supports not (backdrop-filter: blur(10px)) {
    .floating-card {
        background: rgba(255, 255, 255, 0.35) !important;
    }
}

/* Custom button styles */
.btn-primary {
    background: var(--white);
    color: var(--primary-dark-blue);
    font-weight: 600;
    padding: 0.875rem 2rem;
    border-radius: 9999px;
    box-shadow: 0 10px 25px rgba(29, 66, 115, 0.1);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 35px rgba(29, 66, 115, 0.15);
    background: var(--light-blue);
    color: var(--white);
}

/* Enhanced card styles */
.benefit-card {
    background: white;
    padding: 2rem;
    border-radius: 1rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    border: 1px solid #f1f5f9;
}

.benefit-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

/* Typing text container */
.typing-container {
    min-height: 4rem;
    display: flex;
    align-items: center;
}

/* Feature card styles */
.feature-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 1rem;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

.feature-card:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-5px);
}

/* Stats animation */
@keyframes countUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.stat-item {
    animation: countUp 0.6s ease-out forwards;
}

/* Mobile responsive floating cards */
@media (max-width: 768px) {
    .floating-card {
        animation: none;
        margin: 0.5rem 0;
        transform: none !important;
    }
    
    .feature-card {
        padding: 1rem;
        margin: 0.5rem 0;
    }
    
    .hero-section {
        min-height: auto;
        padding: 6rem 0;
    }
}

/* Desktop hero height adjustment */
@media (min-width: 1024px) {
    .hero-section {
        min-height: 100vh;
    }
}

/* Custom utility classes for consistent colors */
.bg-custom-light { background-color: var(--light-gray) !important; }
.bg-custom-primary { background-color: var(--primary-dark-blue) !important; }
.bg-custom-secondary { background-color: var(--secondary-dark-blue) !important; }
.bg-custom-blue { background-color: var(--primary-blue) !important; }
.bg-custom-light-blue { background-color: var(--light-blue) !important; }
.bg-custom-white { background-color: var(--white) !important; }

.text-custom-primary { color: var(--primary-dark-blue) !important; }
.text-custom-secondary { color: var(--secondary-dark-blue) !important; }
.text-custom-blue { color: var(--primary-blue) !important; }
.text-custom-light-blue { color: var(--light-blue) !important; }
.text-custom-white { color: var(--white) !important; }

.border-custom-light { border-color: var(--light-gray) !important; }
.border-custom-primary { border-color: var(--primary-dark-blue) !important; }

/* Consistent container spacing - let content spread wider with safe margins */
.container-safe {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .container-safe {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .container-safe {
        padding-left: 3rem;
        padding-right: 3rem;
    }
}

@media (min-width: 1280px) {
    .container-safe {
        padding-left: 4rem;
        padding-right: 4rem;
    }
}

@media (min-width: 1536px) {
    .container-safe {
        padding-left: 6rem;
        padding-right: 6rem;
    }
}