  :root { --primary-accent: #0055FF; }
    body { font-family: "Public Sans", sans-serif; background-color: #FFFFFF; color: #000000; }
    .material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }

    /* ── HAMBURGER ── */
    .hamburger-bar {
      display: block; width: 22px; height: 2px;
      background: #000; border-radius: 2px;
      transition: transform 0.35s cubic-bezier(.77,0,.18,1), opacity 0.2s ease, width 0.3s ease;
      transform-origin: center;
    }
    .hamburger-btn.open .bar1 { transform: translateY(8px) rotate(45deg); }
    .hamburger-btn.open .bar2 { opacity: 0; transform: scaleX(0); }
    .hamburger-btn.open .bar3 { transform: translateY(-8px) rotate(-45deg); }

    /* ── MOBILE MENU ── */
    #mobile-menu {
      max-height: 0; overflow: hidden;
      transition: max-height 0.4s cubic-bezier(.77,0,.18,1), opacity 0.3s ease;
      opacity: 0;
    }
    #mobile-menu.open { max-height: 500px; opacity: 1; }

    .mobile-nav-link {
      display: flex; align-items: center; gap: 10px;
      padding: 14px 20px; font-size: 0.9rem; font-weight: 600;
      color: #4B5563; border-radius: 10px;
      transition: all 0.25s ease; position: relative;
      text-decoration: none;
    }
    .mobile-nav-link::before {
      content: ''; position: absolute; left: 0; top: 50%;
      transform: translateY(-50%); width: 3px; height: 0;
      background: #0055FF; border-radius: 2px;
      transition: height 0.25s ease;
    }
    .mobile-nav-link:hover, .mobile-nav-link.active {
      color: #0055FF; background: rgba(0,85,255,0.05);
      padding-left: 28px;
    }
    .mobile-nav-link:hover::before, .mobile-nav-link.active::before { height: 60%; }

    /* ── DESKTOP NAV PILL ── */
    #nav-pill-container { position: relative; display: flex; align-items: center; gap: 4px; }
    #nav-hover-pill {
      position: absolute; top: 0; left: 0;
      height: 100%; border-radius: 10px;
      background: white;
      box-shadow: 0 2px 12px rgba(0,0,0,0.10), 0 1px 3px rgba(0,0,0,0.06);
      pointer-events: none; z-index: 0;
      transition: transform 0.38s cubic-bezier(.34,1.56,.64,1), width 0.38s cubic-bezier(.34,1.56,.64,1), opacity 0.2s ease;
      opacity: 0;
    }
    #nav-hover-pill.active-glow {
      background: linear-gradient(135deg, #e8f0ff 0%, #f0f5ff 100%);
      box-shadow: 0 2px 16px rgba(0,85,255,0.15), 0 0 0 1px rgba(0,85,255,0.1);
    }

    .desktop-nav-link {
      position: relative; z-index: 1;
      padding: 8px 16px; font-size: 0.875rem; font-weight: 600;
      color: #4B5563; border-radius: 10px;
      transition: color 0.2s ease;
      text-decoration: none; white-space: nowrap;
    }
    .desktop-nav-link:hover { color: #0055FF; }
    .desktop-nav-link.active { color: #0055FF; }

    /* Active dot */
    .desktop-nav-link.active .nav-active-dot {
      opacity: 1; transform: translateX(-50%) translateY(0);
    }

    /* Ripple */
    .ripple-burst {
      position: absolute; border-radius: 50%;
      background: rgba(0,85,255,0.18);
      pointer-events: none; z-index: 10;
      transform: scale(0); animation: ripple-anim 0.55s cubic-bezier(.2,.8,.4,1) forwards;
    }
    @keyframes ripple-anim {
      to { transform: scale(4); opacity: 0; }
    }

    /* CTA button */
    .cta-btn {
      position: relative; overflow: hidden;
      background: #0055FF; color: white;
      padding: 10px 24px; border-radius: 10px;
      font-size: 0.875rem; font-weight: 700; letter-spacing: 0.03em;
      transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
      box-shadow: 0 8px 24px rgba(0,85,255,0.25);
      text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
    }
    .cta-btn:hover {
      transform: translateY(-2px) scale(1.03);
      box-shadow: 0 14px 32px rgba(0,85,255,0.35);
      filter: brightness(1.1);
    }
    .cta-btn:active { transform: scale(0.97); }
    .cta-btn .btn-arrow {
      display: inline-block;
      transition: transform 0.25s cubic-bezier(.34,1.56,.64,1);
    }
    .cta-btn:hover .btn-arrow { transform: translateX(4px); }
    .cta-btn .btn-shine {
      position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
      transform: skewX(-15deg);
      transition: left 0.5s ease;
    }
    .cta-btn:hover .btn-shine { left: 130%; }

    /* Logo hover */
    .logo-wrap { transition: transform 0.3s cubic-bezier(.34,1.56,.64,1); }
    .logo-wrap:hover { transform: scale(1.06); }
    .logo-wrap:active { transform: scale(0.96); }

    /* ── FOOTER RESPONSIVE ── */
    @media (max-width: 639px) {
      .footer-grid { grid-template-columns: 1fr !important; }
      .footer-brand { grid-column: 1 !important; }
      .footer-bottom { flex-direction: column; text-align: center; gap: 12px; }
    }
    @media (min-width: 640px) and (max-width: 1023px) {
      .footer-grid { grid-template-columns: 1fr 1fr !important; }
      .footer-brand { grid-column: 1 / -1 !important; }
    }
    @media (min-width: 1024px) {
      .footer-grid { grid-template-columns: 2fr 1fr 1fr !important; }
    }

    .footer-contact-item { display: flex; align-items: flex-start; gap: 12px; }
    .footer-contact-item .material-symbols-outlined { flex-shrink: 0; margin-top: 1px; }

       .bg-growth-pattern {
            background-image: radial-gradient(circle at 2px 2px, #133eec11 1px, transparent 0);
            background-size: 24px 24px;
        }