/* Brand1Solutions - Custom Styles */

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #005487;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #0C7CC0;
}

/* Mobile menu transitions */
#mobileMenu {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
#mobileMenu.open {
    transform: translateX(0) !important;
}

/* Mobile nav link hover */
.mobile-nav-link:active {
    background-color: #F0F7FC;
}

/* Fade-in animation for sections */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Service card hover effect */
.service-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
}

/* Tech item hover effect */
.tech-item {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tech-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

/* Step card connector line (desktop only) */
@media (min-width: 1024px) {
    .step-card:not(:last-child)::after {
        content: '';
        position: absolute;
        top: 24px;
        right: -12px;
        width: 24px;
        height: 2px;
        background: rgba(255, 255, 255, 0.3);
    }
    .step-card {
        position: relative;
    }
}

/* Form focus states */
input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: #005487 !important;
    box-shadow: 0 0 0 3px rgba(0, 84, 135, 0.1);
}

/* Radio button custom styles */
.radio-dot {
    transform: scale(0);
    transition: transform 0.15s ease;
}
label:has(input[type="radio"]:checked) .radio-dot {
    transform: scale(1);
}
label:has(input[type="radio"]:checked) .radio-ring {
    border-color: #005487;
}

/* Button press effect */
.btn-press:active {
    transform: scale(0.97);
}

/* Gradient text utility */
.gradient-text {
    background: linear-gradient(135deg, #005487, #0C7CC0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Loading spinner */
.spinner {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: white;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Prevent body scroll when mobile menu is open */
body.menu-open {
    overflow: hidden;
}
