/* Google Fonts Import */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* KSO Brand Colors */
:root {
    --kso-primary: #4A90BE;
    --kso-dark: #2C5F7E;
    --kso-light: #7BB3D3;
}

/* Base Styles */
* {
    font-family: 'Inter', sans-serif;
}

/* Glass Effect Component */
.glass-effect {
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

/* Hero Background */
.hero-bg {
    background: linear-gradient(135deg, rgba(74, 144, 190, 0.9), rgba(44, 95, 126, 0.8)),
                url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><defs><pattern id="grid" width="50" height="50" patternUnits="userSpaceOnUse"><path d="M 50 0 L 0 0 0 50" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(%23grid)"/></svg>');
}

/* Floating Animations */
.floating {
    animation: floating 6s ease-in-out infinite;
}

.floating-delayed {
    animation: floating 6s ease-in-out infinite;
    animation-delay: 2s;
}

@keyframes floating {
    0%, 100% { 
        transform: translateY(0px); 
    }
    50% { 
        transform: translateY(-20px); 
    }
}

/* Gradient Text Effect */
.gradient-text {
    background: linear-gradient(135deg, #4A90BE, #2C5F7E);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Scroll Progress Indicator */
.scroll-indicator {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 4px;
    background: linear-gradient(90deg, #4A90BE, #7BB3D3);
    z-index: 9999;
    transition: width 0.3s ease;
}

/* Navigation Effects */
.navbar-blur {
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.navbar-top {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(5px);
}

/* Hover Scale Effect */
.hover-scale {
    transition: transform 0.3s ease;
}

.hover-scale:hover {
    transform: scale(1.05);
}

/* Service Card Component */
.service-card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(74, 144, 190, 0.2);
    transition: all 0.3s ease;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(74, 144, 190, 0.2);
    border-color: #4A90BE;
}

/* Logo Styles */
.logo-image {
    transition: transform 0.3s ease;
}

.logo-image:hover {
    transform: scale(1.1);
}

/* Custom Dropdown Styles */
.custom-select {
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A90BE' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px;
    padding-right: 40px;
    cursor: pointer;
}

.custom-select:focus {
    box-shadow: 0 0 0 3px rgba(74, 144, 190, 0.1);
}

/* KSO Color Classes */
.text-kso-primary {
    color: var(--kso-primary) !important;
}

.text-kso-dark {
    color: var(--kso-dark) !important;
}

.text-kso-light {
    color: var(--kso-light) !important;
}

.bg-kso-primary {
    background-color: var(--kso-primary) !important;
}

.bg-kso-dark {
    background-color: var(--kso-dark) !important;
}

.hover-text-kso-primary:hover {
    color: var(--kso-primary) !important;
}

.hover-bg-kso-dark:hover {
    background-color: var(--kso-dark) !important;
}

.focus-border-kso-primary:focus {
    border-color: var(--kso-primary) !important;
}

.text-kso-light-blue {
    color: #7BB3D3 !important;
}

.border-kso-light {
    border-color: #7BB3D3 !important;
}

.bg-kso-light-100 {
    background-color: rgba(123, 179, 211, 0.1) !important;
}

.bg-kso-light-200 {
    background-color: rgba(123, 179, 211, 0.2) !important;
}

.bg-kso-light-50 {
    background-color: rgba(123, 179, 211, 0.05) !important;
}

/* Skip Link Accessibility */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.sr-only:focus,
.focus\:not-sr-only:focus {
    position: static !important;
    width: auto !important;
    height: auto !important;
    padding: 0.5rem 1rem !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}

/* Additional Security & Performance Classes */
.img-lazy {
    loading: lazy;
}

/* Print Styles */
@media print {
    .no-print {
        display: none !important;
    }
    
    .floating,
    .floating-delayed {
        animation: none !important;
    }
    
    .glass-effect {
        background: white !important;
        backdrop-filter: none !important;
    }
}

/* Button Hover States - Fallback for CSP compliance */
.btn-kso-primary {
    background-color: var(--kso-primary) !important;
    color: white !important;
    transition: all 0.3s ease !important;
}

.btn-kso-primary:hover {
    background-color: var(--kso-dark) !important;
}

.btn-hero-primary {
    background-color: var(--kso-primary) !important;
    color: white !important;
    border: 2px solid var(--kso-primary) !important;
    transition: all 0.3s ease !important;
}

.btn-hero-primary:hover {
    background-color: transparent !important;
    color: var(--kso-primary) !important;
}

/* Mobile Navigation Toggle */
.mobile-menu-active {
    display: block !important;
}

/* Form Validation States */
.form-error {
    border-color: #dc2626 !important;
    background-color: #fef2f2 !important;
}

.form-success {
    border-color: #059669 !important;
    background-color: #ecfdf5 !important;
} 