
/* ===== VARIABLES CSS ===== */
:root {
--primary-color: #bc0101;
--secondary-color: #9e0000;
--accent-color: #e42929;
--light-color: #ffc9c9;
--gradient: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
--ai-gradient: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 50%, #ec4899 100%);
--ai-glow: 0 0 20px rgba(99, 102, 241, 0.4);
/* Couleurs texte */
--text-dark: #0f172a;
--text-light: #64748b;
--text-muted: #94a3b8;
/* Couleurs arrière-plan */
--bg-light: #f8fafc;
--bg-gray: #f1f5f9;
--border-color: #e2e8f0;
/* Couleurs utilitaires */
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
/* Ombres modernes */
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
/* Rayons de bordure */
--border-radius: 12px;
--border-radius-lg: 16px;
/* Transitions */
--transition-fast: all 0.2s ease;
--transition-base: all 0.3s ease;
--transition-slow: all 0.5s ease;
}

/* ===== HERO SECTION ===== */

.hero-section {
min-height: 100vh;
display: flex;
align-items: center;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
}

.hero-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
z-index: 1;
}

/* ===== HERO AVEC IMAGE ===== */

.hero-section.hero-with-image {
background: none;
}

.hero-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}

.hero-image img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}

.hero-image-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
z-index: 2;
}

.hero-particles {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}

.particle {
position: absolute;
background: rgba(255, 255, 255, 0.1);
border-radius: 50%;
animation: particleFloat 15s linear infinite;
}

.hero-content {
position: relative;
z-index: 3;
text-align: center;
color: white;
max-width: 800px;
margin: 0 auto;
}

.hero-badge {
display: inline-flex;
align-items: center;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
padding: 8px 16px;
border-radius: 25px;
font-size: 0.9rem;
font-weight: 600;
margin-bottom: 24px;
animation: fadeInUp 1s ease-out 0.2s both;
}

.hero-title {
font-size: 3.5rem;
font-weight: 900;
margin-bottom: 24px;
text-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
animation: fadeInUp 1s ease-out 0.4s both;
}

.hero-subtitle {
font-size: 1.3rem;
margin-bottom: 40px;
opacity: 0.95;
animation: fadeInUp 1s ease-out 0.6s both;
}

.hero-cta {
display: flex;
gap: 20px;
justify-content: center;
flex-wrap: wrap;
animation: fadeInUp 1s ease-out 0.8s both;
}

.hero-btn {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 16px 32px;
border-radius: var(--border-radius);
font-weight: 700;
font-size: 1.1rem;
text-decoration: none;
transition: var(--transition-base);
border: 2px solid rgba(255, 255, 255, 0.3);
backdrop-filter: blur(10px);
}

.hero-btn.primary {
background: rgba(255, 255, 255, 0.2);
color: white;
}

.hero-btn.primary:hover {
background: rgba(255, 255, 255, 0.3);
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
color: white;
}

.hero-btn:not(.primary) {
background: transparent;
color: white;
}

.hero-btn:not(.primary):hover {
background: rgba(255, 255, 255, 0.1);
transform: translateY(-2px);
color: white;
}

/* ===== SECTIONS STATS ===== */

.stats-section {
padding: 80px 0;
background: white;
position: relative;
z-index: 4;
}

.stats-container {
position: relative;
}

.stat-item {
text-align: center;
padding: 40px 20px;
background: white;
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-md);
border: 1px solid var(--border-color);
transition: var(--transition-base);
height: 100%;
}

.stat-item:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-xl);
}

.stat-icon {
width: 80px;
height: 80px;
background: var(--gradient);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 20px;
color: white;
font-size: 2rem;
}

.stat-number {
font-size: 3rem;
font-weight: 900;
color: var(--primary-color);
display: block;
margin-bottom: 10px;
}

.stat-label {
font-size: 1.3rem;
font-weight: 700;
color: var(--text-dark);
margin-bottom: 10px;
}

.stat-description {
color: var(--text-light);
font-size: 1rem;
}

/* ===== SECTIONS COMMUNES ===== */

.section-header {
text-align: center;
margin-bottom: 80px;
}

.section-badge {
display: inline-flex;
align-items: center;
background: var(--primary-color);
color: white;
padding: 8px 20px;
border-radius: 25px;
font-size: 0.9rem;
font-weight: 600;
margin-bottom: 20px;
}

.section-title {
font-size: 3rem;
font-weight: 900;
color: var(--text-dark);
margin-bottom: 20px;
}

.section-subtitle {
font-size: 1.2rem;
color: var(--text-light);
max-width: 600px;
margin: 0 auto;
}

/* ===== SECTIONS CATÉGORIES ===== */

.categories-section {
padding: 120px 0;
background: var(--bg-light);
}

.categories-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 30px;
margin-top: 60px;
}

.category-card {
background: white;
border-radius: var(--border-radius-lg);
overflow: hidden;
box-shadow: var(--shadow-md);
transition: var(--transition-base);
border: 1px solid var(--border-color);
opacity: 0;
transform: translateY(20px);
}

.category-card.visible {
opacity: 1;
transform: translateY(0);
}

.category-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-xl);
}

.category-image {
height: 200px;
overflow: hidden;
position: relative;
}

.category-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: var(--transition-slow);
}

.category-card:hover .category-image img {
transform: scale(1.05);
}

.category-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
display: flex;
align-items: flex-end;
padding: 20px;
opacity: 0;
transition: var(--transition-base);
}

.category-card:hover .category-overlay {
opacity: 1;
}

.category-overlay-content {
color: white;
}

.category-overlay-title {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 5px;
}

.category-overlay-count {
font-size: 1rem;
opacity: 0.9;
}

.category-content {
padding: 30px 25px;
}

.category-icon {
width: 60px;
height: 60px;
background: var(--gradient);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.5rem;
margin-bottom: 20px;
}

.category-title {
font-size: 1.5rem;
font-weight: 700;
color: var(--text-dark);
margin-bottom: 15px;
}

.category-description {
color: var(--text-light);
margin-bottom: 20px;
line-height: 1.6;
}

.category-link {
color: var(--primary-color);
font-weight: 600;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
transition: var(--transition-base);
}

.category-link:hover {
color: var(--secondary-color);
transform: translateX(5px);
}

/* ===== SECTION PRODUITS ===== */

.products-section {
padding: 120px 0;
background: white;
}

.products-carousel {
position: relative;
overflow: hidden;
border-radius: var(--border-radius-lg);
margin-top: 60px;
}

.products-track {
display: flex;
transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.product-slide {
min-width: 380px;
margin-right: 32px;
background: white;
border-radius: var(--border-radius);
overflow: hidden;
box-shadow: var(--shadow-md);
border: 1px solid var(--border-color);
transition: var(--transition-base);
}

.product-slide:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-xl);
}

.product-image {
height: 240px;
overflow: hidden;
position: relative;
background: var(--bg-light);
}

.product-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: var(--transition-base);
}

.product-slide:hover .product-image img {
transform: scale(1.05);
}

.product-badge {
position: absolute;
top: 15px;
left: 15px;
background: var(--gradient);
color: white;
padding: 6px 12px;
border-radius: 6px;
font-size: 0.75rem;
font-weight: 700;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.product-info {
padding: 25px;
}

.product-category {
color: var(--text-muted);
font-size: 0.8rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 8px;
}

.product-title {
font-size: 1.2rem;
font-weight: 700;
color: var(--text-dark);
margin-bottom: 15px;
line-height: 1.3;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}

.product-price {
font-size: 1.5rem;
font-weight: 800;
color: var(--success-color);
margin-bottom: 20px;
}

.product-btn {
background: var(--gradient);
color: white;
border: none;
padding: 12px 24px;
border-radius: var(--border-radius);
font-weight: 600;
cursor: pointer;
transition: var(--transition-base);
width: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}

.product-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4);
}

.carousel-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(255, 255, 255, 0.9);
border: none;
width: 50px;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: var(--transition-base);
z-index: 3;
box-shadow: var(--shadow-md);
}

.carousel-nav:hover {
background: white;
transform: translateY(-50%) scale(1.1);
box-shadow: var(--shadow-lg);
}

.carousel-nav-prev {
left: 20px;
}

.carousel-nav-next {
right: 20px;
}

.carousel-nav i {
font-size: 1.2rem;
color: var(--text-dark);
}

/* ===== SECTION SERVICES ===== */

.services-section {
padding: 120px 0;
background: var(--bg-light);
}

.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 40px;
margin-top: 60px;
}

.service-card {
background: white;
padding: 40px 30px;
border-radius: var(--border-radius-lg);
text-align: center;
box-shadow: var(--shadow-md);
border: 1px solid var(--border-color);
transition: var(--transition-base);
opacity: 0;
transform: translateY(20px);
}

.service-card.visible {
opacity: 1;
transform: translateY(0);
}

.service-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-xl);
}

.service-icon {
width: 80px;
height: 80px;
background: var(--gradient);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 25px;
color: white;
font-size: 2rem;
}

.service-title {
font-size: 1.4rem;
font-weight: 700;
color: var(--text-dark);
margin-bottom: 15px;
}

.service-description {
color: var(--text-light);
line-height: 1.6;
}

/* ===== ANIMATIONS SPÉCIFIQUES À INDEX ===== */

@keyframes particleFloat {
0% {
transform: translateY(100vh) translateX(0);
opacity: 0;
}
10% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
transform: translateY(-100px) translateX(100px);
opacity: 0;
}
}

.animate-on-scroll {
opacity: 0;
transform: translateY(20px);
transition: all 0.6s ease-out;
}

.animate-on-scroll.visible {
opacity: 1;
transform: translateY(0);
}

/* ===== RESPONSIVE DESIGN SPÉCIFIQUE À INDEX ===== */

@media (max-width: 768px) {

/* Correction du positionnement du hero-content */
.hero-section {
min-height: 100vh;
align-items: center;
justify-content: center;
padding: 80px 0 60px 0; /* Ajout de padding pour éviter les chevauchements avec la navigation */
}

.hero-content {
position: relative;
z-index: 3;
text-align: center;
color: white;
max-width: 90%; /* Réduction de la largeur pour mobile */
margin: 0 auto;
padding: 20px; /* Ajout de padding interne */
transform: translateY(-10vh); /* Remonte le contenu de 10% de la hauteur de l'écran */
}

.hero-title {
font-size: 2.2rem; /* Légère augmentation par rapport à 2.5rem original */
line-height: 1.2;
margin-bottom: 20px;
}

.hero-subtitle {
font-size: 1.1rem;
margin-bottom: 30px;
line-height: 1.4;
}

.hero-cta {
flex-direction: column;
align-items: center;
gap: 15px;
}

.hero-btn {
width: 100%;
max-width: 280px;
justify-content: center;
padding: 14px 24px;
}



.section-title {
font-size: 2.2rem;
}

.section-subtitle {
font-size: 1rem;
}

.categories-grid {
grid-template-columns: 1fr;
gap: 20px;
}

.services-grid {
grid-template-columns: 1fr;
gap: 20px;
}

.carousel-nav {
width: 40px;
height: 40px;
}

.carousel-nav-prev {
left: 10px;
}

.carousel-nav-next {
right: 10px;
}
}

@media (min-width: 1200px) {
.categories-grid {
grid-template-columns: repeat(3, 1fr);
}

.services-grid {
grid-template-columns: repeat(4, 1fr);
}
}

/* ===== OPTIMISATIONS PERFORMANCE ===== */

.hero-section,
.stats-section,
.categories-section,
.products-section,
.services-section {
will-change: transform;
}



