/* ---------- RESET & BASE ---------- */
* { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family: 'Segoe UI', system-ui, 'Inter', -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif;
    background: #f9fafb; color: #1f2937; line-height: 1.5; scroll-behavior: smooth;
}
html { scroll-padding-top: 85px; }

.skip-link {
    position: absolute; top: -40px; left: 0;
    background: #a41324; color: white; padding: 8px 16px;
    text-decoration: none; z-index: 1100; font-weight: 600;
    border-radius: 0 0 8px 0; transition: top 0.2s ease;
}
.skip-link:focus { top: 0; outline: 2px solid white; }

/* ---------- NAVBAR ---------- */
.navbar {
    position: fixed; top: 0; width: 100%; z-index: 1000;
    background: rgba(0,0,0,0.1); backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(255,255,255,0.2);
    padding: 0.7rem 2rem; transition: all 0.3s ease;
}
.navbar.scrolled {
    background: rgba(255,255,255,0.98); backdrop-filter: blur(12px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    border-bottom: 1px solid rgba(31,26,104,0.1);
    padding: 0.5rem 2rem;
}
.nav-container { max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.logo { display:flex; align-items:center; gap:0.6rem; text-decoration:none; font-weight:800; font-size:1.6rem; transition:transform 0.2s; }
.logo:hover { transform:scale(1.02); }
.logo-img { height:48px; width:auto; border-radius:14px; box-shadow:0 4px 10px rgba(31,26,104,0.2); }
.nav-controls { display:flex; align-items:center; gap:1rem; }
.lang-switcher { display:flex; gap:0.5rem; }
.lang-btn { background:none; border:none; cursor:pointer; padding:0; opacity:0.7; transition:opacity 0.2s, transform 0.1s; border-radius:6px; }
.lang-btn img { display:block; width:24px; height:18px; object-fit:cover; border-radius:3px; }
.lang-btn.active { opacity:1; transform:scale(1.05); }
.lang-btn:hover { opacity:1; }
.hamburger { display:flex; flex-direction:column; justify-content:space-between; width:35px; height:28px; background:transparent; border:none; cursor:pointer; padding:0; z-index:1010; }
.hamburger span { width:100%; height:3px; background:linear-gradient(90deg,#1f1a68,#a41324); border-radius:6px; transition:all 0.3s cubic-bezier(0.68,-0.55,0.265,1.55); transform-origin:left center; }
.hamburger.active span:first-child { transform:rotate(45deg) translate(0px,0px); }
.hamburger.active span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.active span:last-child { transform:rotate(-45deg) translate(0px,0px); }

.nav-links {
    position:absolute; top:100%; left:0; width:100%; background:rgba(255,255,255,0.98); backdrop-filter:blur(16px);
    flex-direction:column; align-items:center; gap:1.2rem; padding:1.8rem 1rem 2rem;
    border-radius:0 0 28px 28px; box-shadow:0 20px 30px -12px rgba(0,0,0,0.2);
    list-style:none; transition:opacity 0.35s ease, visibility 0.35s ease, transform 0.35s ease;
    opacity:0; visibility:hidden; transform:translateY(-20px); z-index:999; pointer-events:none;
}
.nav-links.show { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.nav-links li { width:100%; text-align:center; }
.nav-links a {
    display:inline-block; text-decoration:none; font-weight:600; font-size:1.5rem; color:#1f2937;
    padding:0.7rem 1.2rem; transition:all 0.25s; border-radius:50px; text-transform:uppercase; width:80%;
}
.nav-links a:hover { background:linear-gradient(135deg,#1f1a68,#a41324); color:white; transform:translateY(-3px); box-shadow:0 8px 18px rgba(31,26,104,0.3); }
.nav-links a.active { background:rgba(31,26,104,0.12); color:#1f1a68; font-weight:700; border-left:3px solid #a41324; border-radius:40px; }

@media (min-width:768px) {
    .navbar { padding:0.5rem 2rem; }
    .hamburger { display:none; }
    .nav-links { position:static; display:flex !important; flex-direction:row; width:auto; background:transparent; backdrop-filter:none; box-shadow:none; padding:0; gap:0.5rem; opacity:1; visibility:visible; transform:none; pointer-events:auto; }
    .nav-links li { width:auto; }
    .nav-links a { font-size:1rem; font-weight:500; padding:0.6rem 1.2rem; width:auto; color:#d3d3d3; background:transparent; text-transform:none; }
    .nav-links a:hover { background:rgba(31,26,104,0.1); color:#1f1a68; transform:translateY(-2px); box-shadow:none; }
    .nav-links a.active { background:rgba(31,26,104,0.1); color:#1f1a68; border-left:none; font-weight:600; }
    .navbar.scrolled .nav-links a { color:#334155; }
}

@media (max-width:480px) {
    .navbar { padding:0.6rem 1.2rem; }
    .logo-img { height:40px; }
    .lang-switcher { gap:0.3rem; }
    .lang-btn img { width:20px; height:15px; }
}

/* ---------- HERO SLIDER ---------- */
.hero-slider-section { padding:0; margin-bottom:0; background:#0a0c10; overflow:hidden; position:relative; border-radius:0; box-shadow:none; }
.slider-container { position:relative; width:100%; height:100vh; min-height:600px; overflow:hidden; background:#000; }
.slider { position:relative; width:100%; height:100%; }
.slide { position:absolute; top:0; left:0; width:100%; height:100%; opacity:0; visibility:hidden; transition:opacity 1.2s cubic-bezier(0.25,0.1,0.15,1), visibility 1.2s; z-index:1; }
.slide.active { opacity:1; visibility:visible; z-index:2; }
.slide-bg { position:absolute; top:0; left:0; width:100%; height:100%; background-size:cover; background-position:center; background-repeat:no-repeat; transform:scale(1.08); transition:transform 8s ease-out; }
.slide.active .slide-bg { transform:scale(1); }
.slide-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg, rgba(31,26,104,0.7) 0%, rgba(164,19,36,0.5) 100%); z-index:2; }
.slide-content { position:absolute; bottom:30%; left:8%; right:8%; max-width:800px; color:white; text-align:left; z-index:3; transform:translateY(30px); opacity:0; transition:transform 0.8s cubic-bezier(0.2,0.9,0.4,1.1), opacity 0.8s ease; }
.slide.active .slide-content { transform:translateY(0); opacity:1; }
.slide-tagline { font-size:0.9rem; letter-spacing:3px; text-transform:uppercase; font-weight:500; color:#FFF; margin-bottom:1rem; background:rgba(31,26,104,0.5); display:inline-block; padding:0.3rem 1rem; border-radius:30px; backdrop-filter:blur(4px); }
.slide-content h1, .slide-content h2 { font-size:3.5rem; font-weight:800; line-height:1.2; margin-bottom:1rem; color:white; text-shadow:0 2px 15px rgba(0,0,0,0.3); }
.slide-content p { font-size:1.3rem; margin-bottom:2rem; line-height:1.5; opacity:0.9; max-width:600px; }
.slide-buttons { display:flex; gap:1.2rem; flex-wrap:wrap; }
.slide-buttons .btn-primary, .slide-buttons .btn-outline { display:inline-flex; align-items:center; gap:0.5rem; padding:0.9rem 2rem; border-radius:50px; font-weight:600; text-decoration:none; transition:all 0.3s; font-size:1rem; }
.slide-buttons .btn-primary { background:#a41324; color:white; box-shadow:0 8px 20px rgba(164,19,36,0.3); }
.slide-buttons .btn-primary:hover { background:#c41a30; transform:translateY(-3px); box-shadow:0 15px 25px rgba(164,19,36,0.4); }
.slide-buttons .btn-outline { background:transparent; color:white; border:2px solid rgba(255,255,255,0.5); backdrop-filter:blur(4px); }
.slide-buttons .btn-outline:hover { background:white; color:#1f1a68; border-color:white; transform:translateY(-3px); }
.slider-arrow { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,0.4); backdrop-filter:blur(8px); color:white; border:none; width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:20; transition:all 0.3s; opacity:0.6; }
.slider-arrow:hover { background:#1f1a68; opacity:1; transform:translateY(-50%) scale(1.05); }
.prev { left:30px; } .next { right:30px; }
.slider-dots { position:absolute; bottom:30px; left:0; right:0; display:flex; justify-content:center; gap:12px; z-index:20; }
.dot { width:12px; height:12px; background:rgba(255,255,255,0.5); border-radius:50%; cursor:pointer; transition:all 0.3s; }
.dot.active { background:#a41324; width:30px; border-radius:10px; transform:scale(1.2); }
.slider-progress { position:absolute; bottom:0; left:0; width:100%; height:3px; background:rgba(255,255,255,0.2); z-index:20; }
.progress-bar { width:0%; height:100%; background:linear-gradient(90deg,#1f1a68,#a41324); transition:width 0.1s linear; }

@media (max-width:1024px) {
    .slider-container { height:85vh; min-height:500px; }
    .slide-content h1, .slide-content h2 { font-size:2.8rem; }
    .slide-content p { font-size:1rem; }
    .slider-arrow { width:44px; height:44px; }
    .prev { left:20px; } .next { right:20px; }
}
@media (max-width:768px) {
    .slider-container { height:70vh; min-height:450px; }
    .slide-content { bottom:35%; left:5%; right:5%; max-width:90%; }
    .slide-content h1, .slide-content h2 { font-size:2rem; }
    .slide-tagline { font-size:0.7rem; letter-spacing:2px; }
    .slide-buttons .btn-primary, .slide-buttons .btn-outline { padding:0.7rem 1.5rem; font-size:0.9rem; }
    .slider-arrow { display:none; }
    .dot { width:8px; height:8px; }
    .dot.active { width:24px; }
}

/* ---------- SECTION À PROPOS ---------- */
.about-section { background:white; padding:2rem 2rem; position:relative; }
.about-container { max-width:1280px; margin:0 auto; }
.about-content { display:flex; flex-wrap:wrap; align-items:center; gap:4rem; }
.about-text { flex:1.2; min-width:300px; }
.about-text h2 { font-size:2.2rem; font-weight:400; line-height:1.5; text-transform:uppercase; margin-bottom:1.5rem; color:#1f2937; }
.about-text h2 .highlight { font-weight:500; font-size:1.2rem; background:linear-gradient(125deg,#1f1a68,#a41324); background-clip:text; -webkit-background-clip:text; color:transparent; }
.about-text h3 { padding:2px 10px; font-size:1.6rem; font-weight:500; line-height:1.4; margin-bottom:1.5rem; color:#b1a7a7; border-left:solid 2px rgba(164,19,36,0.5); }
.about-description { color:#2f353e; line-height:1.6; margin-bottom:1.2rem; }
.about-stats { display:flex; gap:2rem; margin:2rem 0; border-top:1px solid #e2e8f0; padding-top:1.8rem; }
.stat-item { text-align:left; }
.stat-number { font-size:2rem; font-weight:400; color:#1f1a68; line-height:1; display:inline-block; }
.stat-unit { font-size:2rem; font-weight:500; color:rgba(164,19,36,0.305); margin-left:2px; }
.stat-label { font-size:0.9rem; color:#64748b; font-weight:500; display:block; margin-top:0.3rem; }
.about-buttons { margin-top:1rem; }
.about-buttons .btn-primary { display:inline-flex; align-items:center; gap:0.5rem; background:#a41324; color:white; padding:0.9rem 2rem; border-radius:50px; font-weight:600; text-decoration:none; transition:all 0.3s; }
.about-buttons .btn-primary:hover { background:#1f1a68; gap:0.8rem; }
.about-image { flex:0.9; position:relative; border-radius:5px; overflow:hidden; box-shadow:0 20px 35px -12px rgba(0,0,0,0.1); }
.about-image img { width:100%; height:auto; display:block; transition:transform 0.5s ease; }
.about-image:hover img { transform:scale(1.02); }
.image-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg, rgba(31,26,104,0.1), rgba(164,19,36,0.1)); }
.about-image-badge { position:absolute; bottom:50px; right:-10px; background:#a41324; color:white; padding:0.5rem 1.2rem; border-radius:20px; font-size:1.3rem; font-weight:600; box-shadow:0 8px 15px rgba(164,19,36,0.3); z-index:3; }
@media (max-width:768px) {
    .about-section { padding:3rem 1rem; }
    .about-content { flex-direction:column; gap:2rem; }
    .about-text h2 { font-size:2rem; }
    .about-stats { flex-wrap:wrap; gap:1.5rem; }
    .stat-item { flex:1; text-align:center; }
}

/* ---------- SECTION VALEURS ---------- */
.values-section { background:#ffffff; padding:1rem 2rem; border-radius:32px; position:relative; }
.values-container { max-width:1280px; margin:0 auto; text-align:center; }
.values-grid { display:flex; flex-wrap:wrap; gap:2rem; justify-content:center; margin-bottom:3rem; }
.value-card { flex:1; min-width:260px; background:transparent; padding:2rem 1.5rem; text-align:center; transition:all 0.3s; border-bottom:2px solid #e2e8f0; cursor:pointer; }
.value-card:hover { transform:translateY(-6px); border-bottom-color:#a41324; box-shadow:0 12px 24px -12px rgba(0,0,0,0.1); }
.value-icon { width:70px; height:70px; background:#f8fafc; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.2rem; transition:all 0.3s; }
.value-card:hover .value-icon { background:#f1f5f9; transform:scale(1.02); }
.value-icon i { font-size:2rem; color:#a41324; transition:all 0.3s; }
.value-card:hover .value-icon i { color:#1f1a68; transform:scale(1.05); }
.value-card h3 { font-size:1.4rem; font-weight:600; color:#1f1a68; margin-bottom:1rem; transition:color 0.3s; }
.value-card:hover h3 { color:#a41324; }
.value-card p { color:#4b5563; line-height:1.6; font-size:0.95rem; transition:color 0.3s; }
.value-card:hover p { color:#1f2937; }
.values-quote { max-width:700px; margin:2rem auto 0; padding:1.2rem 0; border-top:1px solid #e2e8f0; text-align:center; }
.values-quote i { color:#a41324; font-size:1.2rem; margin-right:0.5rem; vertical-align:middle; }
.values-quote p { display:inline; font-size:1rem; font-weight:500; color:#1f2937; letter-spacing:0.2px; }
@media (max-width:768px) {
    .values-section { margin:2rem 1rem; padding:3rem 1rem; }
    .values-grid { flex-direction:column; gap:1rem; }
    .value-card { border-bottom:1px solid #e2e8f0; padding:1.5rem 1rem; }
}

/* ---------- SECTION SERVICES ---------- */
.services-section { background:#f9fafb; padding:2rem 2rem; position:relative; }
.services-container { max-width:1280px; margin:0 auto; text-align:center; }
.services-header { margin-bottom:3rem; }
.services-badge { display:inline-block; background:rgba(31,26,104,0.08); color:#1f1a68; font-size:0.75rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:0.3rem 1rem; border-radius:40px; margin-bottom:1rem; }
.services-header h2 { font-size:2.5rem; font-weight:700; color:#1f2937; margin-bottom:0.5rem; letter-spacing:-0.02em; }
.services-header .section-sub { color:#64748b; font-size:1.1rem; max-width:700px; margin:0 auto; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-bottom:4rem; }
.service-card { background:#ffffff; border-radius:5px; overflow:hidden; transition:all 0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.02); border:1px solid #eef2ff; text-align:center; cursor:pointer; display:flex; flex-direction:column; height:100%; }
.service-card:hover { transform:translateY(-8px); box-shadow:0 20px 30px -12px rgba(31,26,104,0.12); border-color:#a41324; }
.service-image { width:100%; height:220px; overflow:hidden; background:#f1f5f9; position:relative; }
.service-image img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.service-card:hover .service-image img { transform:scale(1.05); }
.service-card h3 { font-size:1.35rem; font-weight:700; color:#1f1a68; margin:1.4rem 1.2rem 0.8rem; transition:color 0.3s; }
.service-card:hover h3 { color:#a41324; }
.service-card p { color:#4b5563; line-height:1.5; font-size:0.9rem; margin:0 1.2rem 1.2rem; flex-grow:1; }
.service-link { display:inline-flex; align-items:center; gap:0.4rem; font-size:0.85rem; font-weight:600; color:#a41324; text-decoration:none; margin:0 1.2rem 1.5rem; transition:gap 0.2s; align-self:flex-start; }
.service-link i { font-size:0.7rem; transition:transform 0.2s; }
.service-link:hover { gap:0.7rem; color:#1f1a68; }
.service-link:hover i { transform:translateX(3px); }
@media (max-width:1024px) { .services-grid { grid-template-columns:repeat(2,1fr); } .services-header h2 { font-size:2.2rem; } }
@media (max-width:768px) { .services-section { padding:3rem 1rem; } .services-grid { grid-template-columns:1fr; } .services-header h2 { font-size:1.8rem; } .service-image { height:200px; } }

/* ---------- SECTION PROCESSUS ---------- */
.process-section { position:relative; padding:6rem 2rem; overflow:hidden; isolation:isolate; }
.process-bg { position:absolute; inset:0; background-image:url('../imgs/hero/hero-3.png'); background-size:cover; background-position:center; filter:blur(5px) brightness(0.9); transform:scale(1.05); transition:transform 8s ease-out; }
.process-section:hover .process-bg { transform:scale(1); }
.process-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.7); z-index:1; }
.process-container { position:relative; z-index:2; max-width:1280px; margin:0 auto; color:white; }
.process-header { text-align:center; margin-bottom:5rem; }
.process-badge { display:inline-block; background:rgba(255,255,255,0.15); backdrop-filter:blur(4px); color:white; font-size:0.75rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:0.3rem 1rem; border-radius:40px; margin-bottom:1rem; }
.process-header h2 { font-size:2.8rem; font-weight:800; margin-bottom:0.75rem; }
.process-header h2 .highlight { background:linear-gradient(125deg,#fff,#a41324); background-clip:text; -webkit-background-clip:text; color:transparent; }
.process-subtitle { font-size:1.2rem; color:rgba(255,255,255,0.9); max-width:700px; margin:0 auto; }
.progress-timeline { margin-bottom:4rem; position:relative; }
.progress-track { position:relative; height:4px; background:rgba(255,255,255,0.2); border-radius:4px; margin:0 2rem; overflow:hidden; }
.progress-fill { position:absolute; top:0; left:0; height:100%; width:0%; background:linear-gradient(90deg,#a41324,#ff6b4a); border-radius:4px; transition:width 0.4s cubic-bezier(0.2,0.9,0.4,1.1); z-index:1; }
.steps-wrapper { display:flex; justify-content:space-between; align-items:center; margin-top:-1.8rem; position:relative; z-index:2; }
.step { flex:1; text-align:center; cursor:pointer; }
.step-marker { display:flex; justify-content:center; margin-bottom:0.5rem; }
.step-circle { width:60px; height:60px; background:white; border-radius:50%; display:flex; align-items:center; justify-content:center; position:relative; box-shadow:0 4px 12px rgba(0,0,0,0.2); transition:all 0.3s; border:2px solid transparent; }
.step.active .step-circle { border-color:#a41324; transform:scale(1.1); box-shadow:0 0 0 4px rgba(164,19,36,0.3); }
.step-circle i { font-size:1.6rem; color:#1f1a68; transition:all 0.3s; }
.step.active .step-circle i { color:#a41324; }
.step-number { position:absolute; bottom:-8px; right:-8px; background:#a41324; color:white; width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.7rem; font-weight:bold; border:2px solid white; }
.step-label { font-size:0.85rem; font-weight:500; color:rgba(255,255,255,0.8); transition:color 0.3s; }
.step.active .step-label { color:white; font-weight:600; }
.steps-cards { display:flex; flex-wrap:wrap; gap:2rem; margin-top:3rem; }
.step-card { flex:1; min-width:220px; background:rgba(255,255,255,0.1); backdrop-filter:blur(10px); border-radius:5px; padding:1.5rem; text-align:center; transition:all 0.3s; border:1px solid rgba(255,255,255,0.2); cursor:pointer; }
.step-card:hover { background:white; transform:translateY(-6px); border-color:#a41324; }
.step-card h3 { font-size:1.2rem; font-weight:700; margin-bottom:0.5rem; color:white; transition:color 0.3s; }
.step-card:hover h3 { color:#1f1a68; }
.step-card p { font-size:0.9rem; line-height:1.4; color:rgba(255,255,255,0.8); margin-bottom:1rem; transition:color 0.3s; }
.step-card:hover p { color:#4b5563; }
.step-detail { font-size:0.8rem; color:#a41324; background:rgba(164,19,36,0.1); display:inline-flex; align-items:center; gap:0.3rem; padding:0.3rem 0.8rem; border-radius:40px; opacity:0; transform:translateY(5px); transition:all 0.3s; }
.step-card:hover .step-detail { opacity:1; transform:translateY(0); }
@media (max-width:1024px) {
    .process-section { padding:4rem 1rem; }
    .process-header h2 { font-size:2rem; }
    .steps-wrapper { flex-wrap:wrap; gap:1.5rem; justify-content:center; }
    .step { flex:0 0 auto; min-width:100px; }
    .progress-track { display:none; }
    .steps-cards { flex-direction:column; }
}
@media (max-width:768px) { .step-circle { width:50px; height:50px; } .step-circle i { font-size:1.3rem; } .step-label { font-size:0.7rem; } }

/* ---------- SECTION CONTACT ---------- */
.contact-section { background:#ffffff; padding:2rem 2rem; border-radius:32px; position:relative; box-shadow:0 8px 24px rgba(0,0,0,0.03); border:1px solid #eef2ff; }
.contact-container { max-width:1280px; margin:0 auto; }
.contact-header { text-align:center; margin-bottom:3rem; }
.contact-badge { display:inline-block; background:rgba(31,26,104,0.08); color:#1f1a68; font-size:0.75rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:0.3rem 1rem; border-radius:40px; margin-bottom:1rem; }
.contact-header h2 { font-size:2.5rem; font-weight:700; color:#1f2937; margin-bottom:0.5rem; letter-spacing:-0.02em; }
.contact-header .section-sub { color:#64748b; font-size:1.1rem; max-width:600px; margin:0 auto; }
.contact-grid { display:flex; flex-wrap:wrap; gap:3rem; align-items:flex-start; }
.contact-info { flex:1; min-width:280px; background:#f9fafb; padding:2rem; border-radius:5px; border:1px solid #eef2ff; }
.info-card { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.8rem; }
.info-card i { font-size:1.4rem; color:#a41324; width:36px; height:36px; background:white; display:flex; align-items:center; justify-content:center; border-radius:12px; flex-shrink:0; box-shadow:0 2px 6px rgba(0,0,0,0.02); }
.info-card h3 { font-size:1.05rem; font-weight:600; color:#1f1a68; margin-bottom:0.2rem; }
.info-card p, .info-card a { color:#4b5563; text-decoration:none; line-height:1.4; font-size:0.9rem; transition:color 0.2s; }
.info-card a:hover { color:#a41324; }
.contact-form { flex:1; min-width:280px; background:#ffffff; padding:2rem; border-radius:5px; border:1px solid #eef2ff; box-shadow:0 4px 12px rgba(0,0,0,0.02); }
.form-group { margin-bottom:1.2rem; }
.form-group input, .form-group textarea { width:100%; padding:0.85rem 1rem; background:#f9fafb; border:1px solid #e2e8f0; border-radius:5px; font-family:inherit; font-size:0.95rem; transition:all 0.2s; outline:none; }
.form-group input:focus, .form-group textarea:focus { border-color:#a41324; background:white; box-shadow:0 0 0 3px rgba(164,19,36,0.05); }
.btn-submit { display:inline-flex; align-items:center; justify-content:center; gap:0.6rem; background:#a41324; color:white; padding:0.85rem 1.5rem; border-radius:5px; font-weight:600; border:none; cursor:pointer; transition:all 0.3s; font-size:1rem; width:100%; }
.btn-submit:hover { background:#1f1a68; gap:0.8rem; transform:translateY(-2px); }
.form-note { font-size:0.7rem; color:#94a3b8; text-align:center; margin-top:1rem; }
@media (max-width:768px) {
    .contact-section { padding:3rem 1rem; }
    .contact-header h2 { font-size:1.8rem; }
    .contact-grid { flex-direction:column; gap:2rem; }
    .contact-info, .contact-form { padding:1.5rem; }
}

/* ---------- SECTION PARTENAIRES ---------- */
.partners-section { background:#fbfbfb; padding:2rem 2rem; position:relative; }
.partners-container { max-width:1280px; margin:0 auto; }
.partners-header { text-align:center; margin-bottom:3rem; }
.partners-badge { display:inline-block; background:rgba(31,26,104,0.08); color:#1f1a68; font-size:0.75rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:0rem 1rem; border-radius:40px; margin-bottom:1rem; }
.partners-header h2 { font-size:2.2rem; font-weight:700; color:#1f2937; margin-bottom:0rem; }
.partners-header .section-sub { color:#64748b; font-size:1rem; max-width:600px; margin:0 auto; }
.partners-carousel { position:relative; padding:1rem 0; }
.carousel-container { overflow:hidden; margin:0 3rem; }
.carousel-track { display:flex; gap:2rem; transition:transform 0.5s ease; will-change:transform; }
.partner-card { flex:0 0 200px; padding:1.2rem; background-color:#FFF; display:flex; align-items:center; justify-content:center; transition:all 0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.02); }
.partner-card img { width:100%; height:100%; max-height:80px; object-fit:contain; filter:grayscale(0.3); transition:filter 0.3s; }
.partner-card:hover { transform:translateY(-4px); border-color:#a41324; box-shadow:0 12px 20px -12px rgba(31,26,104,0.1); }
.partner-card:hover img { filter:grayscale(0); }
.carousel-btn { position:absolute; top:50%; transform:translateY(-50%); background:white; border:1px solid #e2e8f0; border-radius:50%; width:40px; height:40px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; box-shadow:0 2px 6px rgba(0,0,0,0.05); z-index:2; }
.carousel-btn:hover { background:#1f1a68; border-color:#1f1a68; color:white; }
.carousel-btn i { font-size:1rem; }
.prev { left:0; } .next { right:0; }
.carousel-dots { display:flex; justify-content:center; gap:0.5rem; margin-top:2rem; }
.dot { width:8px; height:8px; background:#cbd5e1; border-radius:50%; cursor:pointer; transition:all 0.2s; }
.dot.active { background:#a41324; width:24px; border-radius:4px; }
@media (max-width:768px) {
    .partners-section { padding:3rem 1rem; }
    .partners-header h2 { font-size:1.8rem; }
    .partner-card { flex:0 0 150px; padding:1rem; }
    .carousel-container { margin:0 1rem; }
    .carousel-btn { width:32px; height:32px; }
}

/* ---------- FOOTER ---------- */
.site-footer { background:#0f172a; color:#e2e8f0; padding:3rem 2rem 1.5rem; border-top:1px solid rgba(255,255,255,0.05); }
.footer-container { max-width:1280px; margin:0 auto; }
.footer-grid { display:flex; flex-wrap:wrap; gap:2rem; justify-content:space-between; margin-bottom:2rem; }
.footer-col { flex:1; min-width:200px; }
.footer-logo { display:flex; align-items:center; gap:0.8rem; margin-bottom:1rem; }
.footer-logo img { height:48px; width:auto; filter:brightness(5px) invert(1); }
.footer-logo span { font-size:1.4rem; font-weight:700; background:linear-gradient(135deg,#fff,#a41324); background-clip:text; -webkit-background-clip:text; color:transparent; }
.footer-col p { font-size:0.9rem; line-height:1.5; margin-bottom:1rem; color:#cbd5e1; }
.social-links { display:flex; gap:1rem; margin-top:1rem; }
.social-links a { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; background:rgba(255,255,255,0.1); border-radius:50%; color:white; transition:all 0.2s; text-decoration:none; }
.social-links a:hover { background:#a41324; transform:translateY(-3px); }
.footer-col h4 { font-size:1.1rem; font-weight:600; margin-bottom:1rem; color:white; position:relative; padding-bottom:0.5rem; }
.footer-col h4::after { content:''; position:absolute; left:0; bottom:0; width:40px; height:2px; background:#a41324; }
.footer-col ul { list-style:none; padding:0; }
.footer-col ul li { margin-bottom:0.6rem; }
.footer-col ul li a { color:#cbd5e1; text-decoration:none; transition:color 0.2s; font-size:0.9rem; }
.footer-col ul li a:hover { color:#a41324; padding-left:4px; }
.contact-info-footer li { display:flex; align-items:flex-start; gap:0.5rem; font-size:0.85rem; color:#cbd5e1; margin-bottom:0.8rem; }
.contact-info-footer li i { color:#a41324; width:20px; margin-top:2px; }
.contact-info-footer li a { color:#cbd5e1; text-decoration:none; }
.contact-info-footer li a:hover { color:#a41324; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.1); padding-top:1.5rem; text-align:center; font-size:0.8rem; color:#94a3b8; }
.footer-bottom a { color:#94a3b8; text-decoration:none; }
.footer-bottom a:hover { color:#a41324; }
@media (max-width:768px) {
    .site-footer { padding:2rem 1rem 1rem; }
    .footer-grid { flex-direction:column; gap:1.5rem; }
    .footer-col { text-align:center; }
    .footer-col h4::after { left:50%; transform:translateX(-50%); }
    .social-links { justify-content:center; }
    .contact-info-footer li { justify-content:center; }
}

/* ---------- ANIMATIONS (data-aos) ---------- */
[data-aos] { opacity:0; transform:translateY(20px); transition:opacity 0.6s ease, transform 0.6s ease; }
[data-aos].aos-animate { opacity:1; transform:translateY(0); }



.form-notification {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 12px 20px;
    border-radius: 8px;
    background: white;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 1000;
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 10px;
}
.form-notification.success {
    background: #e6f7e6;
    color: #2e7d32;
    border-left: 4px solid #2e7d32;
}
.form-notification.error {
    background: #ffe6e6;
    color: #c62828;
    border-left: 4px solid #c62828;
}