body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background-color: #f8fafc !important;
    color: #1e293b !important;
}
h1, h2, h3, h4, h5, h6, .font-heading {
    font-family: 'Outfit', sans-serif !important;
}
.bg-primary-grad {
    background: linear-gradient(135deg, #003995 0%, #0952be 50%, #002f80 100%) !important;
}
.bg-white-capsule {
    background-color: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(0, 57, 149, 0.08) !important;
    box-shadow: 0 15px 30px -5px rgba(0, 57, 149, 0.08), 0 8px 12px -6px rgba(0, 57, 149, 0.04) !important;
    border-radius: 9999px !important;
}
.text-link-active {
    color: #003995 !important;
    font-weight: 600 !important;
}
.text-link-inactive {
    color: #475569 !important;
    font-weight: 600 !important;
}
.text-link-inactive:hover {
    color: #003995 !important;
}
.btn-login {
    color: #475569 !important;
    font-weight: 600 !important;
}
.btn-login:hover {
    color: #003995 !important;
}
.btn-primary-custom {
    background-color: #003995 !important;
    color: #ffffff !important;
    border-radius: 9999px !important;
    font-weight: 600 !important;
    transition: all 0.3s ease !important;
    border: none !important;
}
.btn-primary-custom:hover {
    background-color: #002b75 !important;
    box-shadow: 0 8px 20px -4px rgba(0, 57, 149, 0.4) !important;
    transform: translateY(-1px);
}
.btn-secondary-custom {
    background-color: #f1f5f9 !important;
    color: #334155 !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 9999px !important;
    font-weight: 600 !important;
    transition: all 0.3s ease !important;
}
.btn-secondary-custom:hover {
    background-color: #e2e8f0 !important;
}
.card-custom {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 1.5rem !important;
    transition: all 0.3s ease !important;
}
.card-custom:hover {
    border-color: #003995 !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.05), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
}
.grid-3-cols {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 2rem !important;
}
/* Custom robust layout helpers for missing compiled classes */
.flex-row-custom {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
}
.flex-col-custom {
    display: flex !important;
    flex-direction: column !important;
}
.gap-2-custom {
    gap: 0.5rem !important;
}
.gap-3-custom {
    gap: 0.75rem !important;
}
.gap-4-custom {
    gap: 1rem !important;
}
.gap-6-custom {
    gap: 1.5rem !important;
}
.gap-8-custom {
    gap: 2rem !important;
}
.gap-12-custom {
    gap: 3rem !important;
}
.pt-48-custom {
    padding-top: 12rem !important;
}
.pb-28-custom {
    padding-bottom: 7rem !important;
}
.pt-16-custom {
    padding-top: 4rem !important;
}
.pb-16-custom {
    padding-bottom: 4rem !important;
}
.py-16-custom {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
}
.py-20-custom {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
}
.mb-4-custom {
    margin-bottom: 1rem !important;
}
.mb-6-custom {
    margin-bottom: 1.5rem !important;
}
.mb-8-custom {
    margin-bottom: 2rem !important;
}
.grid-12-custom {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
}
@media (min-width: 1024px) {
    .grid-12-custom {
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    }
    .lg-col-6-custom {
        grid-column: span 6 / span 6 !important;
    }
}
/* Center alignment and spacing for capsule navbar children */
.bg-white-capsule > div:first-child {
    flex: 1 0 0% !important;
}
.bg-white-capsule > div:last-child {
    flex: 1 0 0% !important;
    display: flex !important;
    justify-content: flex-end !important;
}
.nav-links-custom {
    flex: 0 0 auto !important;
    display: none !important;
    justify-content: center !important;
}
@media (min-width: 768px) {
    .nav-links-custom {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 2rem !important;
    }
}
/* Image Zoom and Spacing Helpers */
.img-zoom {
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.group:hover .img-zoom {
    transform: scale(1.06) !important;
}
.py-12-custom {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
}
.mb-10-custom {
    margin-bottom: 2.5rem !important;
}
.mb-12-custom {
    margin-bottom: 3rem !important;
}
.mt-16-custom {
    margin-top: 4rem !important;
}
.my-12-custom {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
}
.my-16-custom {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
}
.grid-gallery-cols {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
    gap: 1.5rem !important;
}

/* ═══════════════════════════════════════════════════════ */
/* Mobile Responsive — Shared Utilities (max-width: 639px) */
/* ═══════════════════════════════════════════════════════ */
@media (max-width: 639px) {
    /* Navbar compact on mobile */
    #main-header {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        padding-top: 0.75rem !important;
    }
    .bg-white-capsule {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }
    .bg-white-capsule .text-xl {
        font-size: 1rem !important;
    }
    .bg-white-capsule .h-8 {
        height: 1.5rem !important;
        width: 1.5rem !important;
    }
    .btn-login {
        font-size: 0.75rem !important;
    }

    /* Reduced section spacing */
    .py-20-custom {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }
    .mb-12-custom {
        margin-bottom: 2rem !important;
    }
    .mb-10-custom {
        margin-bottom: 1.5rem !important;
    }

    /* Grid columns stack on mobile */
    .grid-3-cols {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }
    .grid-gallery-cols {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    /* Card sizing on mobile */
    .card-custom {
        padding: 1.5rem !important;
        border-radius: 1.25rem !important;
    }
    .card-custom .h-14 {
        height: 3rem !important;
        width: 3rem !important;
    }
    .card-custom .h-14 svg {
        height: 1.5rem !important;
        width: 1.5rem !important;
    }

    /* Footer compact */
    footer {
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
    }
}
