@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* APX Studio – palette Lovable + compat */
:root {
  /* Hex (compat) */
  --apx-primary: #8A4AF7;
  --apx-primary-light: #B58DFF;
  --apx-primary-dark: #6622DA;
  --apx-deep: #4C2889;
  --apx-bg: #0a0a0a;
  --apx-surface: #141414;
  --apx-text: #e5e5e5;
  --apx-muted: #a3a3a3;

  /* HSL (Lovable) */
  --background: 260 30% 4%;
  --foreground: 270 20% 98%;
  --card: 260 25% 8%;
  --primary: 267 76% 72%;
  --primary-foreground: 260 30% 4%;
  --muted: 260 20% 15%;
  --muted-foreground: 260 15% 55%;
  --border: 260 20% 18%;

  --violet-light: 267 100% 78%;
  --violet-main: 267 76% 58%;
  --violet-dark: 267 87% 32%;
  --violet-deep: 267 92% 18%;

  --gradient-primary: linear-gradient(135deg, hsl(267 100% 78%) 0%, hsl(267 87% 32%) 100%);
  --gradient-accent: linear-gradient(180deg, hsl(267 100% 78%) 0%, hsl(267 92% 18%) 100%);
  --gradient-glow: radial-gradient(ellipse at center, hsl(267 76% 58% / 0.3) 0%, transparent 70%);

  --shadow-glow: 0 0 60px hsl(267 76% 58% / 0.4);
  --shadow-card: 0 4px 24px hsl(0 0% 0% / 0.3);
  --radius: 0.75rem;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: 'Inter', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Space Grotesk', sans-serif;
  color: hsl(var(--foreground));
}

/* Utilitaires Lovable */
.text-gradient {
  background-image: var(--gradient-primary);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.bg-gradient-primary {
  background-image: var(--gradient-primary);
}

.glow {
  box-shadow: var(--shadow-glow);
}

.glow-text {
  text-shadow: 0 0 40px hsl(267 76% 58% / 0.6);
}

.glass {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background-color: hsl(var(--card) / 0.6);
  border: 1px solid hsl(var(--border) / 0.5);
}

/* Icône carte interventions : hover fluide (gradient via pseudo-élément) */
.intervention-card-icon {
  position: relative;
  background-color: hsl(var(--muted));
  transition: box-shadow 0.3s ease;
}
.intervention-card-icon::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--gradient-primary);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.group:hover .intervention-card-icon::before {
  opacity: 1;
}
.group:hover .intervention-card-icon {
  box-shadow: 0 0 20px hsl(267 76% 58% / 0.4);
}

/* Header : transparence opaque fixe (même taille au scroll) */

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

.animate-pulse-slow {
  animation: pulse-slow 4s ease-in-out infinite;
}

.animate-fade-up {
  animation: fade-up 0.8s ease-out forwards;
}

.animate-fade-in {
  animation: fade-in 0.6s ease-out forwards;
}

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

@keyframes pulse-slow {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.8; }
}

@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Logo hero */
.hero-logo {
  max-width: 280px;
  height: auto;
}

@media (min-width: 768px) {
  .hero-logo {
    max-width: 360px;
  }
}

/* Menu mobile ouvert */
#mobile-menu.mobile-menu-open {
  max-height: 20rem;
}

/* Burger → X (géré par JS avec classes sur les spans) */
.burger-line {
  display: block;
  width: 1.5rem;
  height: 2px;
  background-color: hsl(var(--foreground));
  transition: transform 0.3s, opacity 0.3s;
}

.burger-open .burger-line:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.burger-open .burger-line:nth-child(2) {
  opacity: 0;
}

.burger-open .burger-line:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* Nav link underline (hover) */
.nav-link-underline {
  position: relative;
}

.nav-link-underline::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 2px;
  background-image: var(--gradient-primary);
  transition: width 0.3s;
}

.nav-link-underline:hover::after,
.nav-link-underline.nav-link-active::after {
  width: 100%;
}

.nav-link-active {
  opacity: 1;
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: hsl(var(--background));
}

::-webkit-scrollbar-thumb {
  background: hsl(var(--muted));
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: hsl(var(--muted-foreground));
}
