/* General Body Styles */
body {
    font-family: 'Inter', sans-serif;
}

/* Hero/Banner Backgrounds */
.hero-bg { /* For homepage */
    background-image: linear-gradient(105deg, #1c1c3c 0%, #503382 50%, #c745a2 100%);
    background-size: cover;
    background-position: center;
}

.page-title-bg { /* For contact page banner */
    background-image: linear-gradient(105deg, #1c1c3c 0%, #503382 50%, #c745a2 100%);
    background-size: cover;
    background-position: center;
}

/* Logo and Navigation */
.logo-container {
    display: flex;
    align-items: center;
}

.logo-img {
    height: 2.5rem; 
    width: 2.5rem; 
    border-radius: 9999px; 
    object-fit: cover;
    margin-right: 0.75rem; 
}

.company-name-nav {
    font-size: 1.5rem; 
    font-weight: 700; 
    color: rgb(79 70 229); 
}

.nav-link {
    padding-left: 0.75rem; 
    padding-right: 0.75rem; 
    padding-top: 0.5rem; 
    padding-bottom: 0.5rem; 
    border-radius: 0.375rem; 
    font-size: 0.875rem; 
    line-height: 1.25rem; 
    font-weight: 500; 
    color: rgb(55 65 81); 
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.nav-link:hover {
    background-color: rgb(224 231 255); 
    color: rgb(67 56 202); 
}

.nav-link-active {
    padding-left: 0.75rem; 
    padding-right: 0.75rem; 
    padding-top: 0.5rem; 
    padding-bottom: 0.5rem; 
    border-radius: 0.375rem; 
    font-size: 0.875rem; 
    line-height: 1.25rem; 
    font-weight: 500; 
    background-color: rgb(79 70 229); 
    color: rgb(255 255 255); 
}

/* Language Switcher Styles */
.language-switcher {
    display: flex;
    align-items: center;
    margin-left: auto; 
}
.lang-option {
    display: flex; /* To align flag and text */
    align-items: center;
    font-size: 0.875rem; 
    font-weight: 500; 
    color: rgb(107 114 128); 
    padding: 0.25rem 0.5rem; 
    cursor: pointer;
    border-radius: 0.25rem; 
    transition: background-color 0.2s, color 0.2s, opacity 0.2s;
    opacity: 0.7; /* Default opacity for non-active */
}
.lang-option:hover {
    background-color: rgb(243 244 246); 
    color: rgb(55 65 81); 
    opacity: 1;
}
.lang-option.active-lang {
    color: rgb(79 70 229); 
    font-weight: 700; 
    opacity: 1;
}
.lang-flag {
    width: 1.25rem; /* w-5 */
    height: auto;
    margin-right: 0.375rem; /* mr-1.5 */
    border-radius: 0.125rem; /* rounded-sm for slight rounding of flag */
    box-shadow: 0 0 2px rgba(0,0,0,0.2); /* Subtle shadow for flags */
}
.lang-separator {
    color: rgb(209 213 219); 
    margin: 0 0.25rem; 
}


/* Section Title */
.section-title {
    font-size: 1.875rem; 
    line-height: 2.25rem; 
    font-weight: 700; 
    text-align: center; 
    margin-bottom: 3rem; 
    color: rgb(31 41 55); 
}

/* Service Card (Homepage) */
.service-card {
    background-color: rgb(255 255 255); 
    border-radius: 0.75rem; 
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 
    overflow: hidden; 
    transform: scale(1); 
    transition-property: transform; 
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 
    transition-duration: 300ms; 
}
.service-card:hover {
    transform: scale(1.05); 
}

/* Contact Page Specific Styles */
.contact-icon {
    width: 1.5rem; 
    height: 1.5rem; 
    color: rgb(79 70 229); 
    margin-right: 0.75rem; 
    flex-shrink: 0; 
}

.form-input {
    width: 100%; 
    padding-left: 0.75rem; 
    padding-right: 0.75rem; 
    padding-top: 0.625rem; 
    padding-bottom: 0.625rem; 
    border-width: 1px; 
    border-color: rgb(156 163 175); 
    border-radius: 0.5rem; 
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); 
    transition-property: border-color, box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.form-input::placeholder {
     color: rgb(156 163 175); 
}
.form-input:focus {
    border-color: rgb(99 102 241); 
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05), 0 0 0 2px rgb(99 102 241 / 0.5); 
}

.form-label {
    display: block; 
    font-size: 0.875rem; 
    line-height: 1.25rem; 
    font-weight: 500; 
    color: rgb(55 65 81); 
    margin-bottom: 0.25rem; 
}

.contact-card {
    background-color: rgb(255 255 255); 
    padding: 2rem; 
    border-radius: 0.75rem; 
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); 
    transition-property: box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 300ms; 
}
.contact-card:hover {
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); 
}

/* Footer */
.footer-link {
    color: rgb(107 114 128); 
    transition-property: color; 
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.footer-link:hover {
    color: rgb(79 70 229); 
}
