 :root {
            --bg: #fafafa;
            --fg: #1e293b;
            --muted: #64748b;
            --accent: #046bd2;
            --accent-hover: #045cb4;
            --card: #ffffff;
            --border: #e2e8f0;
            --primary-dark: #1a365d;
            --secondary: #f97316;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }

        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background: var(--bg);
            color: var(--fg);
            line-height: 1.6;
            overflow-x: hidden;
        }

        h1, h2, h3, h4, h5, h6 {
            font-family: 'Playfair Display', serif;
            font-weight: 700;
        }

        /* Skip to content for accessibility */
        .skip-link {
            position: absolute;
            top: -100%;
            left: 16px;
            z-index: 9999;
            padding: 8px 16px;
            background: var(--accent);
            color: white;
            border-radius: 0 0 8px 8px;
            font-weight: 600;
            text-decoration: none;
            transition: top 0.2s;
        }
        .skip-link:focus { top: 0; }

        /* Header */
        .header {
            background: linear-gradient(135deg, var(--primary-dark) 0%, #0f172a 100%);
            position: relative;
            z-index: 100;
        }
        .header::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: linear-gradient(90deg, var(--accent), var(--secondary));
        }

        /* Nav */
        .nav-link {
            position: relative;
            color: rgba(255,255,255,0.85);
            font-weight: 500;
            transition: color 0.3s;
            text-decoration: none;
        }
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 0;
            width: 0;
            height: 2px;
            background: var(--secondary);
            transition: width 0.3s;
        }
        .nav-link:hover, .nav-link.active { color: #fff; }
        .nav-link:hover::after, .nav-link.active::after { width: 100%; }

        /* Mobile menu */
        .mobile-menu {
            position: fixed;
            top: 0;
            right: -100%;
            width: 100%;
            max-width: 320px;
            height: 100vh;
            background: linear-gradient(180deg, var(--primary-dark) 0%, #0f172a 100%);
            z-index: 1000;
            transition: right 0.4s cubic-bezier(0.4,0,0.2,1);
            box-shadow: -10px 0 40px rgba(0,0,0,0.3);
            contain: layout style;
        }
        .mobile-menu.open { right: 0; }
        .mobile-menu-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.6);
            backdrop-filter: blur(4px);
            z-index: 999;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s, visibility 0.3s;
        }
        .mobile-menu-overlay.open { opacity: 1; visibility: visible; }

        /* Hero */
        .hero {
            position: relative;
            min-height: 70vh;
            display: flex;
            align-items: center;
            overflow: hidden;
        }
        .hero-bg {
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, var(--primary-dark) 0%, #0f172a 50%, #1e3a5f 100%);
        }
        .hero-bg::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse at 20% 30%, rgba(4,107,210,0.3) 0%, transparent 50%),
                radial-gradient(ellipse at 80% 70%, rgba(249,115,22,0.2) 0%, transparent 50%);
            animation: gradientMove 15s ease infinite;
            background-size: 200% 200%;
        }
        .hero-pattern {
            position: absolute;
            inset: 0;
            background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.05) 1px, transparent 0);
            background-size: 40px 40px;
        }

        @keyframes gradientMove {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* Accordion */
        .accordion-item {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 12px;
            margin-bottom: 12px;
            overflow: hidden;
            transition: box-shadow 0.3s, transform 0.3s;
        }
        .accordion-item:hover { box-shadow: 0 8px 30px rgba(0,0,0,0.08); }
        .accordion-header {
            width: 100%;
            padding: 20px 24px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: transparent;
            border: none;
            cursor: pointer;
            font-family: 'Plus Jakarta Sans', sans-serif;
            font-size: 1rem;
            font-weight: 600;
            color: var(--fg);
            text-align: left;
            transition: background 0.3s;
        }
        .accordion-header:hover { background: rgba(4,107,210,0.05); }
        .accordion-header:focus { outline: 2px solid var(--accent); outline-offset: -2px; }
        .accordion-icon {
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: var(--accent);
            color: white;
            transition: transform 0.3s;
            flex-shrink: 0;
        }
        .accordion-item.active .accordion-icon { transform: rotate(180deg); }
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1);
        }
        .accordion-item.active .accordion-content { max-height: 500px; }
        .accordion-body { padding: 0 24px 20px; color: var(--muted); line-height: 1.7; }

        /* Cards */
        .card {
            background: var(--card);
            border-radius: 16px;
            overflow: hidden;
            transition: transform 0.3s, box-shadow 0.3s;
        }
        .card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.12); }
        .card-image { overflow: hidden; }
        .card-image img { transition: transform 0.5s; }
        .card:hover .card-image img { transform: scale(1.1); }

        /* Stats */
        .stat-card {
            background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
            color: white;
            padding: 2rem;
            border-radius: 16px;
            text-align: center;
            transition: transform 0.3s;
        }
        .stat-card:hover { transform: scale(1.05); }
        .stat-number { font-size: 3rem; font-weight: 800; line-height: 1; margin-bottom: 0.5rem; }

        /* Logo Carousel */
        .logo-carousel { display: flex; animation: scroll 30s linear infinite; }
        @keyframes scroll {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }
        .logo-carousel:hover { animation-play-state: paused; }

        /* Footer */
        .footer {
            background: linear-gradient(180deg, var(--primary-dark) 0%, #0f172a 100%);
            position: relative;
        }
        .footer::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: linear-gradient(90deg, var(--accent), var(--secondary));
        }
        .footer-link {
            color: rgba(255,255,255,0.7);
            transition: color 0.3s, transform 0.3s;
            display: inline-block;
            text-decoration: none;
        }
        .footer-link:hover { color: var(--secondary); transform: translateX(4px); }

        /* Buttons */
        .btn-primary {
            display: inline-block;
            background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
            color: white;
            padding: 12px 28px;
            border-radius: 8px;
            font-weight: 600;
            transition: transform 0.3s, box-shadow 0.3s;
            border: none;
            cursor: pointer;
            text-decoration: none;
        }
        .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(4,107,210,0.3); }
        .btn-primary:focus { outline: 2px solid var(--secondary); outline-offset: 2px; }

        /* Hamburger */
        .hamburger { width: 28px; height: 20px; position: relative; cursor: pointer; background: none; border: none; padding: 0; }
        .hamburger span { display: block; position: absolute; height: 2px; width: 100%; background: white; border-radius: 2px; transition: all 0.3s; }
        .hamburger span:nth-child(1) { top: 0; }
        .hamburger span:nth-child(2) { top: 9px; }
        .hamburger span:nth-child(3) { top: 18px; }
        .hamburger.active span:nth-child(1) { transform: rotate(45deg); top: 9px; }
        .hamburger.active span:nth-child(2) { opacity: 0; }
        .hamburger.active span:nth-child(3) { transform: rotate(-45deg); top: 9px; }

        /* Section backgrounds */
        .section-light { background: var(--bg); }
        .section-white { background: var(--card); }
        .section-gradient { background: linear-gradient(180deg, #f8fafc 0%, #eff6ff 100%); }

        /* Scroll animation */
        .animate-on-scroll {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.6s ease-out, transform 0.6s ease-out;
        }
        .animate-on-scroll.visible { opacity: 1; transform: translateY(0); }

        /* Focus styles */
        a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

        /* Content visibility for performance */
        .cv-auto { content-visibility: auto; contain-intrinsic-size: 0 600px; }

        /* Responsive */
        @media (max-width: 768px) {
            .stat-number { font-size: 2.25rem; }
            .hero { min-height: 60vh; }
        }

        /* Reduced motion */
        @media (prefers-reduced-motion: reduce) {
            .animate-on-scroll { opacity: 1; transform: none; transition: none; }
            .logo-carousel { animation: none; }
            .hero-bg::before { animation: none; }
            * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
        }