:root {
    --primary-color: #0077b6; /* Professional Blue/Teal (Trust/Tech) */
    --accent-color: #ffb703; /* Bright Orange/Yellow (CTA/Focus) */
    --dark-text: #1f2937; /* Dark Gray */
    --light-bg: #f9fafb; /* Light Background */
}

/* Global Styles */
body {
    font-family: 'Inter', sans-serif; /* Consistent font for most pages */
    color: var(--dark-text);
    background-color: #f9fafb; /* #ffffff Use white background, let section dictate light background */
    margin: 0;
    padding: 0;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

/* Variable Utility Classes */
.text-primary { color: var(--primary-color); }
.bg-primary { background-color: var(--primary-color); }
.text-accent { color: var(--accent-color); }
.bg-accent { background-color: var(--accent-color); }

/* Common UI Component Styles */
.cta-button {
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 119, 182, 0.2);
}
.cta-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 119, 182, 0.3);
}

/* Card/Feature Effects */
.service-card, .feature-card, .service-card-swd {
    transition: all 0.3s ease;
}
.service-card:hover, .feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}
.service-card-swd:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

/* Process Step Effects */
.process-step, .process-step-swd, .process-step-dev {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.process-step:hover, .process-step-swd:hover, .process-step-dev:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}


.process-card-about {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-left: 5px solid transparent;
}
.process-card-about:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
    border-left-color: var(--accent-color);
}

/* Form container height (Ensures consistent space for success message) */
.form-container, .form-container-swd, .form-container-dev {
    min-height: 250px;
}

/*case studies*/
.metric-box {
            background: linear-gradient(135deg, #ffffff, #f0f7ff);
            border: 1px solid #e0f2ff;
            transition: transform 0.3s ease;
        }
        .metric-box:hover {
            transform: translateY(-4px);
            box-shadow: 0 10px 30px rgba(0, 119, 182, 0.15);
        }
        .input-field {
            padding: 0.75rem;
            border-radius: 0.5rem;
            border: 1px solid #d1d5db;
            width: 100%;
            transition: border-color 0.3s;
        }
        .input-field:focus {
            border-color: var(--primary-color);
            outline: none;
        }


/* Career Page: Job Details Toggle */
       .job-card {
            transition: all 0.3s ease;
            cursor: pointer;
            border-left: 6px solid transparent;
        }
        .job-card:hover {
            border-left-color: var(--accent-color);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
        }
        .job-details {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease-out;
            padding: 0 2rem; /* Initial padding 0 */
        }
        .job-details.expanded {
            max-height: 2000px; /* Large enough for content, will adjust naturally */
            padding: 1rem 2rem 2rem 2rem; /* Restore padding when expanded */
            transition: max-height 0.6s ease-in;
        }
/*contact*/
        .contact-info-card {
            transition: all 0.3s ease;
        }
        .contact-info-card:hover {
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
        }
.logo {
            font-size: 1.8em;
            font-weight: 700;
            color: var(--primary-color);
            text-decoration: none;
        }

/* --- Navigation & Dropdown Styles (from index.html) --- */

/* Desktop Dropdown */
.nav-menu ul .sub-menu {
    display: none;
    position: absolute;
    top: 100%; /* Position below the parent link */
    left: 50;
    background-color: white;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    min-width: 220px;
    padding: 10px 0;
    z-index: 1001;
    border-top: 3px solid var(--primary-color);
    border-radius: 0 0 8px 8px;
}
.nav-menu ul li.has-dropdown {
    position: relative;
}
.nav-menu ul li.has-dropdown:hover > .sub-menu {
    display: block;
}
.nav-menu ul .sub-menu li {
    display: block;
}
.nav-menu ul .sub-menu a {
    padding: 10px 20px;
    margin: 0;
    display: block;
    white-space: nowrap;
    border-bottom: 1px solid #f0f0f0;
    color: var(--dark-text);
}
.nav-menu ul .sub-menu a:hover {
    background-color: var(--light-bg);
    color: var(--primary-color);
}

/*sub-menu*/
 .sub-menu {
            position: absolute;
            top: 100%; /* Position right below the parent link */
            left: 50%;
            transform: translateX(-50%);
            z-index: 10;
            min-width: 240px;
            background-color: #ffffff;
            border-radius: 0.5rem; /* rounded-lg */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); /* shadow-md */
            padding: 0.5rem 0;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s ease, visibility 0.3s ease;
            pointer-events: none; /* Allows click-through when hidden */
        }
        /* Triangle indicator */
        .sub-menu::before {
            content: '';
            position: absolute;
            top: -6px;
            left: 50%;
            transform: translateX(-50%) rotate(45deg);
            width: 12px;
            height: 12px;
            background-color: #ffffff;
            border-top: 1px solid #e5e7eb;
            border-left: 1px solid #e5e7eb;
        }

        .has-dropdown:hover .sub-menu {
            opacity: 1;
            visibility: visible;
            pointer-events: auto; /* Enable clicks when visible */
        }
        
        .sub-menu li a {
            display: block;
            padding: 0.5rem 1rem;
            color: #374151; /* Tailwind gray-700 */
            font-weight: 500;
            transition: background-color 0.2s, color 0.2s;
            white-space: nowrap;
        }
        .sub-menu li a:hover {
            background-color: #f3f4f6; /* Tailwind gray-100 */
            color: #0070f3; /* Primary color */
        }
        
        /* Mobile Menu Styles */
        #mobile-menu {
            overflow: hidden;
            max-height: 0; /* Initially hidden */
            transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
            opacity: 0;
            background-color: #ffffff;
            border-top: 1px solid #e5e7eb;
        }

        #mobile-menu.is-open {
            max-height: 500px; /* Taller than content for smooth slide-down */
            opacity: 1;
        }
        
        #mobile-menu ul li a {
            display: block;
            padding: 0.75rem 1rem;
            font-size: 1.1rem;
            color: #1f2937; /* Tailwind gray-900 */
            border-bottom: 1px solid #f3f4f6;
        }
        
        #mobile-menu ul li a:hover {
            background-color: #f3f4f6;
            color: #0070f3;
        }

        /* Mobile submenu specific adjustments */
        #mobile-services-menu {
            /* FIX: Initially hidden, controlled by JS/class */
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease-in-out;
        }
        
        #mobile-services-menu.is-open {
            max-height: 300px; /* Enough to show all sublinks */
        }

        #mobile-menu .sub-menu-container {
            position: static;
            transform: none;
            box-shadow: none;
            padding: 0;
            margin-left: 1rem;
            background-color: #f9fafb; /* Lighter background for nested items */
            border-radius: 0;
            border-bottom: 1px solid #e5e7eb;
        }
        #mobile-menu .sub-menu-container li a {
            padding: 0.5rem 1.5rem;
            font-size: 1rem;
            font-weight: 400;
            border-bottom: none; /* Removed redundant border */
        }

        /* Utility for the Services SVG rotation */
        .has-dropdown:hover .desktop-chevron {
            transform: rotate(180deg);
        }
        .desktop-chevron {
            transition: transform 0.2s ease;
        }
        
        /* Mobile caret rotation */
        .mobile-services-toggle.is-open svg {
            transform: rotate(90deg);
        }
        .mobile-services-toggle svg {
            transition: transform 0.2s ease;
        }


        
        /* Primary/Logo Color Definition */
        .text-primary { color: #0070f3; }
        .bg-accent { background-color: #ffc300; }
        .hover\:bg-yellow-400:hover { background-color: #facc15; }









/* Main Nav Links on Desktop */
nav .nav-menu > ul > li {
    display: inline-block;
    margin-left: 20px;
}
nav .nav-menu > ul > li:first-child {
    margin-left: 0;
}
.menu-toggle {
    display: none;
}
/* Ensure main nav links look consistent */
.main-nav-link {
    color: #4b5563; /* Tailwind gray-600 */
            padding: 0.5rem 0;
            transition: color 0.2s ease-in-out;
            font-weight: 600; /* Tailwind font-semibold */
            /* Crucial for alignment: Ensure consistent display/height */
            display: inline-flex; 
            align-items: center;
            line-height: 1.5rem; /* Standardizing line height */
}
.main-nav-link:hover {
    color: var(--primary-color);
}


/* Mobile Responsiveness */
@media (max-width: 1024px) { /* Changed from 768px to 1024px to cover more devices */
    .menu-toggle {
        display: block;
        padding: 10px 15px;
        background: var(--primary-color);
        color: white;
        border: none;
        cursor: pointer;
        border-radius: 6px;
    }
    .nav-menu {
        display: none;
        width: 100%;
        position: absolute;
        top: 100%; /* Below the header */
        left: 0;
        background-color: white;
        box-shadow: 0 8px 16px rgba(0,0,0,0.1);
    }
    .nav-menu.active {
        display: block;
    }
    .nav-menu ul {
        width: 100%;
        display: block;
        padding: 0;
        margin: 0;
        text-align: left;
    }
    .nav-menu ul li {
        display: block !important;
        border-bottom: 1px solid #eee;
    }
    .nav-menu ul li a {
        display: block;
        padding: 15px 20px;
        margin: 0;
        color: var(--dark-text);
    }
    .nav-menu ul li a:hover {
        background-color: var(--light-bg);
    }
    .nav-menu ul .sub-menu {
        position: static;
        box-shadow: none;
        border: none;
        background-color: #f3f4f6; /* Lighter shade for submenu */
        padding: 0;
        border-top: none;
        border-radius: 0;
    }
    .nav-menu ul .sub-menu a {
        padding-left: 40px;
        font-size: 0.95em;
    }
    .main-header-nav { /* Target the inner flex container */
        justify-content: space-between;
        align-items: center;
    }
    /* Hide the desktop contact button on mobile */
    .md\:block:last-child {
        display: none !important;
    }
}