@import "tailwindcss";
@import "tw-animate-css";
@import "../styles/bento-headless-shopify.css";

@plugin "@tailwindcss/typography";

@custom-variant dark (&:is(.dark *));

html {
  scroll-behavior: smooth;
}

@theme inline {
  --color-brand: var(--brand);
  --color-gray-light: var(--gray-light);
  --color-gray-medium: var(--gray-medium);
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-sans: var(--font-geist-sans);
  --font-mono: var(--font-geist-mono);
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --elegant-font: var(----elegant-font);
}

:root {
  --brand: #fd105e;
  --gray-light: #474747;
  --gray-medium: #333333;
  --eleva-pastel-green: #dceee2;
  --eleva-light-grey: #d9d9d9;
  --eleva-white: #ffffff;
  --eleva-dark-grey: #1f2327;
  --eleva-purple: #8b71fe;
  --eleva-medium-grey: #5a5a5a;
  --radius: 0.625rem;
  --background: #000000;
  --foreground: oklch(0.984 0.003 247.858);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.129 0.042 264.695);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.129 0.042 264.695);
  --primary: oklch(0.208 0.042 265.755);
  --primary-foreground: oklch(0.984 0.003 247.858);
  --secondary: oklch(0.968 0.007 247.896);
  --secondary-foreground: oklch(0.208 0.042 265.755);
  --muted: oklch(0.968 0.007 247.896);
  --muted-foreground: oklch(0.554 0.046 257.417);
  --accent: oklch(0.968 0.007 247.896);
  --accent-foreground: oklch(0.208 0.042 265.755);
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.929 0.013 255.508);
  --input: oklch(0.929 0.013 255.508);
  --ring: oklch(0.704 0.04 256.788);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(0.984 0.003 247.858);
  --sidebar-foreground: oklch(0.129 0.042 264.695);
  --sidebar-primary: oklch(0.208 0.042 265.755);
  --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
  --sidebar-accent: oklch(0.968 0.007 247.896);
  --sidebar-accent-foreground: oklch(0.208 0.042 265.755);
  --sidebar-border: oklch(0.929 0.013 255.508);
  --sidebar-ring: var(--sidebar-ring);
  --elegant-font: "Great Vibes";
}

.dark {
  --brand: #fd105e;
  --gray-light: #474747;
  --gray-medium: #333333;
  --background: oklch(0.129 0.042 264.695);
  --foreground: oklch(0.984 0.003 247.858);
  --card: oklch(0.208 0.042 265.755);
  --card-foreground: oklch(0.984 0.003 247.858);
  --popover: oklch(0.208 0.042 265.755);
  --popover-foreground: oklch(0.984 0.003 247.858);
  --primary: oklch(0.929 0.013 255.508);
  --primary-foreground: oklch(0.208 0.042 265.755);
  --secondary: oklch(0.279 0.041 260.031);
  --secondary-foreground: oklch(0.984 0.003 247.858);
  --muted: oklch(0.279 0.041 260.031);
  --muted-foreground: oklch(0.704 0.04 256.788);
  --accent: oklch(0.279 0.041 260.031);
  --accent-foreground: oklch(0.984 0.003 247.858);
  --destructive: oklch(0.704 0.191 22.216);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --ring: oklch(0.551 0.027 264.364);
  --chart-1: oklch(0.488 0.243 264.376);
  --chart-2: oklch(0.696 0.17 162.48);
  --chart-3: oklch(0.769 0.188 70.08);
  --chart-4: oklch(0.627 0.265 303.9);
  --chart-5: oklch(0.645 0.246 16.439);
  --sidebar: oklch(0.208 0.042 265.755);
  --sidebar-foreground: oklch(0.984 0.003 247.858);
  --sidebar-primary: oklch(0.488 0.243 264.376);
  --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
  --sidebar-accent: oklch(0.279 0.041 260.031);
  --sidebar-accent-foreground: oklch(0.984 0.003 247.858);
  --sidebar-border: oklch(1 0 0 / 10%);
  --sidebar-ring: oklch(0.551 0.027 264.364);
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  html {
    background: #000000;
  }
  html,
  body {
    min-height: 100dvh;
    min-height: 100%;
  }
  body {
    padding-bottom: env(safe-area-inset-bottom, 0px);
    overflow-x: clip;
    @apply bg-background text-foreground;
  }
}

@layer utilities {
  .animation-delay-200 {
    animation-delay: 200ms;
  }
}

/* rehype-pretty-code */
[data-rehype-pretty-code-figure] pre {
  border-radius: 0.5rem;
}
[data-rehype-pretty-code-figure]:has(figcaption) pre {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
[data-rehype-pretty-code-figure] code {
  font-size: 0.85rem;
  counter-reset: line;
}
[data-rehype-pretty-code-figure] [data-line] {
  padding: 0 1rem;
  border-left: 2px solid transparent;
}
[data-rehype-pretty-code-figure] [data-highlighted-line] {
  background: rgba(253, 16, 94, 0.08);
  border-left-color: #fd105e;
}
[data-rehype-pretty-code-figure] [data-highlighted-chars] {
  padding: 0.125rem 0.25rem;
  background: rgba(253, 16, 94, 0.15);
  border-radius: 0.25rem;
}
[data-rehype-pretty-code-figure] [data-line-numbers] > [data-line]::before {
  display: inline-block;
  width: 1rem;
  margin-right: 1.5rem;
  color: rgb(115, 115, 115);
  text-align: right;
  content: counter(line);
  counter-increment: line;
}

/* Tech Cloud Marquee Animation */
.marquee-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.marquee-content {
  display: flex;
  gap: 0;
  width: max-content;
  animation: marquee 28s linear infinite;
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .marquee-content {
    animation: none;
  }
}

/* Scroll Down Animation */
@keyframes scroll-down {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
  100% {
    transform: translateY(20px);
    opacity: 0;
  }
}

.animate-scroll-down {
  transform-origin: center;
  animation: scroll-down 2s ease-in-out infinite;
}

/* Eleva Splide Carousel Styles */
.eleva-splide {
  padding-bottom: 60px;
}

.eleva-splide .splide__track {
  overflow: visible;
}

.eleva-splide .splide__list {
  align-items: center;
  backface-visibility: hidden;
}

.eleva-splide .splide__slide {
  pointer-events: none;
  opacity: 0.4;
  transform: scale(0.9);
  transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.eleva-splide .splide__slide.is-active {
  pointer-events: auto;
  opacity: 1 !important;
  transform: scale(1) !important;
}

/* Mobile: seule la slide active est visible */
@media (max-width: 640px) {
  .eleva-splide .splide__slide {
    opacity: 0;
    transform: scale(0.8);
  }

  .eleva-splide .splide__slide.is-active {
    opacity: 1 !important;
    transform: scale(1) !important;
  }
}

/* Desktop: slides partielles visibles sur les côtés */
@media (min-width: 1024px) {
  .eleva-splide .splide__slide {
    opacity: 0.3;
    transform: scale(0.85);
  }

  .eleva-splide .splide__slide.is-active {
    opacity: 1 !important;
    transform: scale(1) !important;
  }
}

/* Navigation Arrows */
.eleva-splide .splide__arrows {
  position: absolute;
  bottom: 20px;
  left: 50%;
  z-index: 30;
  display: flex;
  gap: 8px;
  align-items: center;
  height: 8px;
  transform: translateX(calc(-50% - 140px));
}

.eleva-splide .splide__arrow {
  position: static !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  color: rgb(156 163 175);
  cursor: pointer;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: 0.5 !important;
  transform: none !important;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

.eleva-splide .splide__arrow:hover:not(:disabled) {
  color: #fd105e;
  background: transparent !important;
  opacity: 1 !important;
  transform: scale(1.1) !important;
}

.eleva-splide .splide__arrow:disabled {
  cursor: not-allowed;
  opacity: 0.2 !important;
}

.eleva-splide .splide__arrow svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

/* Pagination Dots */
.eleva-splide .splide__pagination {
  position: absolute !important;
  bottom: 20px !important;
  left: 50% !important;
  z-index: 20 !important;
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  padding: 0 !important;
  transform: translateX(-50%) !important;
}

.eleva-splide .splide__pagination__page {
  width: 8px !important;
  height: 8px !important;
  margin: 0 !important;
  cursor: pointer !important;
  background: rgb(209 213 219 / 0.3) !important;
  border: none !important;
  border-radius: 50% !important;
  opacity: 1 !important;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

.eleva-splide .splide__pagination__page.is-active {
  width: 24px !important;
  background: #fd105e !important;
  border-radius: 4px !important;
}

.eleva-splide .splide__pagination__page:hover {
  background: #fd105e !important;
  opacity: 0.7 !important;
}

/* Service Card 3D Hover Effect */
.service-card {
  transform-style: preserve-3d;
  transition: transform 0.3s ease;
}

.service-card:hover {
  transform: translateY(-4px) rotateX(2deg);
}

/* Focus visible pour accessibilité */
.eleva-splide .splide__arrow:focus-visible,
.eleva-splide .splide__pagination__page:focus-visible {
  outline: 2px solid #fd105e;
  outline-offset: 2px;
}

/* Why Choose Us Section Animations */
.section-header {
  opacity: 0;
  transform: translateY(30px);
  animation: slideUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.performance-ticker {
  opacity: 0;
  transform: translateY(20px);
  animation: slideUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s forwards;
}

.pillar-wrapper {
  opacity: 0;
  transform: translateY(40px);
  animation: slideUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.pillar-wrapper[data-index="0"] {
  animation-delay: 0.4s;
}

.pillar-wrapper[data-index="1"] {
  animation-delay: 0.6s;
}

.pillar-wrapper[data-index="2"] {
  animation-delay: 0.8s;
}

.cta-section {
  opacity: 0;
  transform: translateY(30px);
  animation: slideUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 1s forwards;
}

@keyframes slideUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Pillar Card Styles */
.pillar-card {
  transform-style: preserve-3d;
  transition: transform 0.3s ease;
}

.pillar-card:hover {
  transform: translateY(-2px);
}

.detailed-metrics {
  transform: translateY(10px);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.pillar-card:hover .detailed-metrics {
  transform: translateY(0);
}

.metric-detail {
  opacity: 0;
  transform: translateY(10px);
  animation: slideInMetric 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  animation-play-state: paused;
}

.pillar-card:hover .metric-detail {
  animation-play-state: running;
}

@keyframes slideInMetric {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Focus styles for accessibility */
.pillar-card:focus-within {
  outline: 2px solid #fd105e;
  outline-offset: 2px;
}

/* Buttons focus visible */
button:focus-visible {
  outline: 2px solid #fd105e;
  outline-offset: 2px;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .pillar-card {
    transform: none !important;
  }

  .pillar-card:hover {
    transform: none !important;
  }

  .detailed-metrics,
  .metric-detail {
    transform: none !important;
    animation: none !important;
  }

  .pillar-card:hover .detailed-metrics {
    transform: none !important;
  }

  .section-header,
  .performance-ticker,
  .pillar-wrapper,
  .cta-section {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* Testimonials Marquee Animations */
@keyframes marquee-right {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@keyframes marquee-right-slow {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.animate-marquee-right {
  animation: marquee-right 30s linear infinite;
}

.animate-marquee-right-slow {
  animation: marquee-right-slow 40s linear infinite;
}

/* Faster marquee on mobile */
@media (max-width: 640px) {
  .animate-marquee-right {
    animation-duration: 17s;
  }
  .animate-marquee-right-slow {
    animation-duration: 23s;
  }
}

.hover\:pause-animation:hover {
  animation-play-state: paused;
}

/* Hero fade-in animation (CSS replacement for Framer Motion) */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fade-in 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@media (prefers-reduced-motion: reduce) {
  .animate-fade-in {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* Ensure smooth transitions */
.animate-marquee-right,
.animate-marquee-right-slow {
  will-change: transform;
}
