Files
Site_web/archives/index (old).html

1682 lines
55 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NextGN Formation - Formations Certibiocide & Techniques</title>
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap" rel="stylesheet">
<style>
:root {
--teal: #0F6E56;
--teal-mid: #1D9E75;
--teal-light: #E1F5EE;
--teal-dark: #085041;
--amber: #BA7517;
--amber-light: #FAEEDA;
--amber-dark: #633806;
--coral: #993C1D;
--coral-mid: #D85A30;
--coral-light: #FAECE7;
--purple: #534AB7;
--purple-light: #EEEDFE;
--purple-dark: #3C3489;
--blue: #185FA5;
--blue-light: #E6F1FB;
--bg: #F7F6F2;
--white: #FFFFFF;
--text: #1a1a18;
--text-muted: #6b6a65;
--border: rgba(0,0,0,0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
height: 100%;
}
body {
font-family: 'DM Sans', sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.6;
overflow-x: hidden;
}
/* HEADER & NAVIGATION */
header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 70px;
background: var(--white);
border-bottom: 1px solid var(--border);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 40px;
z-index: 1000;
backdrop-filter: blur(10px);
background: rgba(255, 255, 255, 0.95);
}
.logo {
font-family: 'Syne', sans-serif;
font-size: 20px;
font-weight: 700;
letter-spacing: -0.5px;
background: linear-gradient(135deg, var(--teal-mid), var(--coral-mid));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
nav a {
font-family: 'Syne', sans-serif;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--text-muted);
text-decoration: none;
margin-left: 40px;
transition: color 0.3s ease;
position: relative;
}
nav a:hover {
color: var(--teal-mid);
}
nav a::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: var(--teal-mid);
transition: width 0.3s ease;
}
nav a:hover::after {
width: 100%;
}
/* MAIN CONTENT */
main {
margin-top: 70px;
min-height: calc(100vh - 70px);
}
/* PROGRESS BAR */
.progress-bar {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 4px;
background: rgba(0, 0, 0, 0.1);
z-index: 999;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, var(--teal-mid) 0%, var(--coral-mid) 100%);
width: 0%;
transition: width 0.1s ease;
}
/* HERO SECTION */
.hero {
position: relative;
padding: 80px 40px 100px;
background: linear-gradient(135deg, rgba(15, 110, 86, 0.05) 0%, rgba(186, 117, 23, 0.03) 100%);
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: -50%;
right: -10%;
width: 600px;
height: 600px;
background: radial-gradient(circle, var(--teal-light) 0%, transparent 70%);
opacity: 0.4;
border-radius: 50%;
animation: float 20s ease-in-out infinite;
}
.hero::after {
content: '';
position: absolute;
bottom: -30%;
left: -5%;
width: 400px;
height: 400px;
background: radial-gradient(circle, var(--coral-light) 0%, transparent 70%);
opacity: 0.3;
border-radius: 50%;
animation: float-reverse 25s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-30px); }
}
@keyframes float-reverse {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(30px); }
}
.hero-content {
max-width: 900px;
margin: 0 auto;
position: relative;
z-index: 1;
animation: slideUp 0.8s ease forwards;
opacity: 0;
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
h1 {
font-family: 'Syne', sans-serif;
font-size: 56px;
font-weight: 800;
line-height: 1.1;
margin-bottom: 20px;
letter-spacing: -1px;
}
h1 .accent {
background: linear-gradient(135deg, var(--teal-mid), var(--coral-mid));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero p {
font-size: 18px;
color: var(--text-muted);
margin-bottom: 30px;
max-width: 600px;
}
.cta-group {
display: flex;
gap: 20px;
flex-wrap: wrap;
animation: slideUp 0.8s ease forwards 0.2s;
opacity: 0;
}
.btn {
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
padding: 14px 32px;
border: none;
border-radius: 8px;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: inline-block;
position: relative;
overflow: hidden;
}
.btn-primary {
background: var(--teal-mid);
color: var(--white);
}
.btn-primary:hover {
background: var(--teal-dark);
transform: translateY(-2px);
box-shadow: 0 12px 24px rgba(29, 158, 117, 0.25);
}
.btn-secondary {
background: var(--white);
color: var(--teal-mid);
border: 2px solid var(--teal-mid);
}
.btn-secondary:hover {
background: var(--teal-light);
transform: translateY(-2px);
}
/* STATS SECTION */
.stats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
margin-top: 60px;
position: relative;
z-index: 1;
}
.stat-card {
background: var(--white);
padding: 30px;
border-radius: 12px;
border: 1px solid var(--border);
text-align: center;
animation: slideUp 0.8s ease forwards;
opacity: 0;
overflow: hidden;
cursor: pointer;
position: relative;
transition: all 0.3s ease;
background-size: 200% 200%;
background-position: 0% 0%;
}
/* Animation hover pour les stat-cards avec effet de gradient */
.stat-card:hover {
transform: translateY(-10px) scale(1.02);
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
border-color: transparent;
background-position: 100% 100%;
}
/* Parallax effect au scroll - pseudo-élément repositionné */
.stat-card::before {
content: '';
position: absolute;
top: -100%;
left: 0;
right: 0;
height: 300%;
background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.02) 50%, transparent 100%);
pointer-events: none;
z-index: 1;
opacity: 0;
transition: opacity 0.4s ease;
}
.stat-card:hover::before {
opacity: 1;
}
.stat-subtitle {
font-family: 'Syne', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--text-muted);
margin-bottom: 12px;
margin-top: 0;
position: relative;
z-index: 2;
}
.stat-card:nth-child(1) {
animation-delay: 0s;
}
.stat-card:nth-child(2) {
animation-delay: 0.1s;
}
.stat-card:nth-child(3) {
animation-delay: 0.2s;
}
.stat-number {
font-family: 'Syne', sans-serif;
font-size: 48px;
font-weight: 800;
margin-bottom: 8px;
margin-top: 8px;
position: relative;
z-index: 2;
font-variant-numeric: tabular-nums;
background: linear-gradient(135deg, var(--teal-mid) 0%, var(--coral-mid) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-number.counter {
animation: countUp 0.8s ease-out 0.3s both;
}
@keyframes countUp {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}
.stat-card:nth-child(1) .stat-number {
background: linear-gradient(135deg, var(--teal-mid) 0%, var(--purple) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-card:nth-child(2) .stat-number {
background: linear-gradient(135deg, var(--purple) 0%, var(--coral-mid) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-card:nth-child(3) .stat-number {
background: linear-gradient(135deg, var(--coral-mid) 0%, var(--amber) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-label {
font-size: 14px;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
font-weight: 600;
position: relative;
z-index: 2;
}
/* Parallax effect au scroll du hero */
.hero {
position: relative;
}
.hero::before {
animation: parallax-float 20s ease-in-out infinite;
}
@keyframes parallax-float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-30px); }
}
/* FORMATIONS SECTION */
.formations-section {
padding: 100px 40px;
background: var(--white);
border-top: 1px solid var(--border);
}
.section-header {
max-width: 900px;
margin: 0 auto 60px;
}
h2 {
font-family: 'Syne', sans-serif;
font-size: 42px;
font-weight: 800;
margin-bottom: 15px;
letter-spacing: -0.5px;
}
.section-header p {
font-size: 16px;
color: var(--text-muted);
max-width: 600px;
}
/* FORMATIONS GRID */
.formations-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 30px;
max-width: 1200px;
margin: 0 auto;
}
.formation-card {
background: var(--white);
border: 1px solid var(--border);
border-radius: 12px;
overflow: hidden;
transition: all 0.4s ease;
cursor: pointer;
position: relative;
animation: slideUp 0.8s ease forwards;
opacity: 0;
display: flex;
flex-direction: column;
}
/* Backgrounds alternés - REMOVE pour éviter les conflits */
.formation-card:nth-child(odd) {
background: var(--white);
}
.formation-card:nth-child(even) {
background: var(--white);
}
.formation-card:nth-child(1) { animation-delay: 0s; }
.formation-card:nth-child(2) { animation-delay: 0.1s; }
.formation-card:nth-child(3) { animation-delay: 0.2s; }
.formation-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
border-color: transparent;
}
.formation-header {
padding: 30px;
position: relative;
overflow: hidden;
flex-shrink: 0;
}
.formation-card:nth-child(1) .formation-header {
background: linear-gradient(135deg, var(--teal-light) 0%, rgba(29, 158, 117, 0.1) 100%);
border-bottom: 3px solid var(--teal-mid);
}
.formation-card:nth-child(2) .formation-header {
background: linear-gradient(135deg, var(--purple-light) 0%, rgba(83, 74, 183, 0.1) 100%);
border-bottom: 3px solid var(--purple);
}
.formation-card:nth-child(3) .formation-header {
background: linear-gradient(135deg, var(--coral-light) 0%, rgba(216, 90, 48, 0.1) 100%);
border-bottom: 3px solid var(--coral-mid);
}
.formation-card:nth-child(4) .formation-header {
background: linear-gradient(135deg, var(--amber-light) 0%, rgba(186, 117, 23, 0.1) 100%);
border-bottom: 3px solid var(--amber);
}
.formation-icon {
font-size: 40px;
margin-bottom: 12px;
display: inline-block;
}
.formation-title {
font-family: 'Syne', sans-serif;
font-size: 20px;
font-weight: 700;
margin-bottom: 8px;
color: var(--text);
}
.formation-subtitle {
font-size: 13px;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
font-weight: 600;
}
.formation-body {
padding: 30px;
background: var(--white);
flex-grow: 1;
display: flex;
flex-direction: column;
}
.formation-description {
font-size: 14px;
color: var(--text-muted);
margin-bottom: 20px;
line-height: 1.6;
}
.formation-link {
display: inline-block;
margin-top: 12px;
padding: 10px 20px;
background: var(--teal-mid);
color: var(--white);
text-decoration: none;
border-radius: 6px;
font-family: 'Syne', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
transition: all 0.3s ease;
}
.formation-link:hover {
background: var(--teal-dark);
transform: translateX(4px);
}
.formation-link::after {
content: ' →';
margin-left: 4px;
}
/* ABOUT SECTION */
.about-section {
padding: 100px 40px;
background: linear-gradient(135deg, rgba(15, 110, 86, 0.05) 0%, rgba(186, 117, 23, 0.03) 100%);
}
.about-content {
max-width: 900px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}
.about-text h3 {
font-family: 'Syne', sans-serif;
font-size: 32px;
font-weight: 800;
margin-bottom: 20px;
letter-spacing: -0.5px;
white-space: nowrap;
}
.about-text p {
font-size: 15px;
color: var(--text-muted);
margin-bottom: 15px;
line-height: 1.8;
}
.about-features {
display: flex;
flex-direction: column;
gap: 15px;
margin-top: 30px;
}
.feature-item {
display: flex;
gap: 12px;
align-items: flex-start;
}
.feature-icon {
font-size: 20px;
margin-top: 3px;
flex-shrink: 0;
}
.feature-text {
font-size: 14px;
color: var(--text-muted);
}
.about-image {
background: linear-gradient(135deg, var(--teal-light), var(--coral-light));
border-radius: 12px;
padding: 40px;
display: flex;
align-items: center;
justify-content: center;
font-size: 80px;
min-height: 300px;
}
/* RAPPORTS SECTION */
.rapports-section {
padding: 100px 40px;
background: var(--white);
}
.rapports-intro {
background: var(--amber-light);
border-left: 4px solid var(--amber);
border-radius: 8px;
padding: 20px;
margin: 30px auto;
display: flex;
gap: 15px;
align-items: flex-start;
max-width: 1200px;
}
.rapports-intro-icon {
font-size: 32px;
flex-shrink: 0;
}
.rapports-intro-content h3 {
font-family: 'Syne', sans-serif;
font-size: 16px;
font-weight: 700;
color: var(--amber-dark);
margin: 0;
}
.rapports-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 25px;
margin-top: 40px;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
}
.rapport-card {
background: var(--white);
border: 1px solid var(--border);
border-radius: 8px;
padding: 25px;
transition: all 0.3s ease;
display: flex;
flex-direction: column;
height: 100%;
}
.rapport-card:hover {
border-color: var(--amber);
box-shadow: 0 12px 32px rgba(186, 117, 23, 0.15);
transform: translateY(-4px);
}
.rapport-header {
margin-bottom: 15px;
padding-bottom: 12px;
border-bottom: 2px solid var(--amber-light);
}
.rapport-semaine {
font-family: 'Syne', sans-serif;
font-size: 18px;
font-weight: 700;
color: var(--amber);
margin-bottom: 4px;
}
.rapport-date {
font-size: 12px;
color: var(--text-muted);
font-weight: 500;
}
.rapport-body {
flex-grow: 1;
margin-bottom: 15px;
}
.rapport-highlight {
font-size: 13px;
color: var(--text);
margin-bottom: 8px;
font-weight: 600;
}
.rapport-list {
list-style: none;
padding: 0;
margin: 0;
}
.rapport-list li {
font-size: 13px;
color: var(--text-muted);
margin-bottom: 6px;
padding-left: 18px;
position: relative;
}
.rapport-list li::before {
content: '▸';
position: absolute;
left: 0;
color: var(--amber);
font-weight: bold;
}
.rapport-link {
display: inline-block;
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.05em;
color: var(--amber);
text-decoration: none;
transition: all 0.3s ease;
margin-top: 10px;
padding-bottom: 2px;
border-bottom: 1px solid transparent;
}
.rapport-link:hover {
border-bottom-color: var(--amber);
gap: 4px;
}
/* FOOTER */
footer {
background: var(--text);
color: var(--white);
padding: 40px;
text-align: center;
}
footer p {
font-size: 13px;
opacity: 0.8;
}
/* RESPONSIVE */
@media (max-width: 768px) {
header {
padding: 0 20px;
}
.logo {
font-size: 16px;
}
nav a {
margin-left: 20px;
font-size: 10px;
}
.hero {
padding: 50px 20px 60px;
}
h1 {
font-size: 36px;
}
.cta-group {
flex-direction: column;
}
.btn {
width: 100%;
text-align: center;
}
.stats {
grid-template-columns: 1fr;
margin-top: 40px;
}
.formations-section {
padding: 60px 20px;
}
h2 {
font-size: 28px;
}
.formations-grid {
grid-template-columns: 1fr;
gap: 20px;
}
.rapports-section {
padding: 60px 20px;
}
.rapports-grid {
grid-template-columns: 1fr;
gap: 20px;
}
.rapports-intro {
flex-direction: column;
align-items: flex-start;
}
.about-content {
grid-template-columns: 1fr;
gap: 30px;
}
.about-image {
min-height: 200px;
font-size: 60px;
}
}
/* DOCUMENTATION SECTION */
.documentation-section {
padding: 80px 40px;
background: linear-gradient(135deg, rgba(15, 110, 86, 0.02) 0%, rgba(186, 117, 23, 0.02) 100%);
}
.section-header {
max-width: 1200px;
margin: 0 auto;
}
.documentation-grid {
display: grid;
grid-template-columns: 1fr;
gap: 30px;
margin-top: 50px;
max-width: 400px;
margin-left: auto;
margin-right: auto;
}
.doc-card {
background: var(--white);
border: 1px solid var(--border);
border-radius: 12px;
overflow: hidden;
transition: all 0.3s ease;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.doc-card:hover {
transform: translateY(-8px);
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
border-color: var(--teal-mid);
}
.doc-header {
padding: 32px;
background: linear-gradient(135deg, var(--teal-light) 0%, var(--amber-light) 100%);
border-bottom: 2px solid var(--teal-mid);
}
.doc-icon {
font-size: 48px;
margin-bottom: 16px;
display: block;
}
.doc-title {
font-family: 'Syne', sans-serif;
font-size: 20px;
font-weight: 700;
color: var(--text);
margin: 0;
margin-bottom: 8px;
}
.doc-subtitle {
font-size: 13px;
color: var(--text-muted);
margin: 0;
font-style: italic;
}
.doc-body {
padding: 28px 32px;
}
.doc-description {
font-size: 14px;
color: var(--text-muted);
line-height: 1.6;
margin-bottom: 20px;
}
.doc-features {
list-style: none;
padding: 0;
margin: 16px 0;
display: flex;
flex-direction: column;
gap: 8px;
}
.doc-features li {
font-size: 13px;
color: var(--text);
padding-left: 0;
}
.doc-link {
display: inline-block;
margin-top: 16px;
padding: 10px 20px;
background: var(--teal-mid);
color: var(--white);
text-decoration: none;
border-radius: 6px;
font-family: 'Syne', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
transition: all 0.3s ease;
}
.doc-link:hover {
background: var(--teal-dark);
transform: translateX(4px);
}
/* ENCADRÉ "VOIR TOUS LES ARTICLES" */
.see-all-documentation {
margin-top: 60px;
max-width: 900px;
margin-left: auto;
margin-right: auto;
}
.see-all-content {
background: linear-gradient(135deg, var(--amber-light) 0%, rgba(212, 146, 26, 0.05) 100%);
border: 2px solid var(--amber-mid);
border-radius: 12px;
padding: 40px;
display: flex;
align-items: center;
gap: 30px;
animation: slideUp 0.6s ease forwards;
opacity: 0;
animation-delay: 0.3s;
}
.see-all-icon {
font-size: 52px;
flex-shrink: 0;
}
.see-all-text {
flex: 1;
}
.see-all-text h3 {
font-family: 'Syne', sans-serif;
font-size: 24px;
font-weight: 800;
color: var(--text);
margin-bottom: 12px;
}
.see-all-text p {
font-size: 15px;
color: var(--text-muted);
line-height: 1.7;
margin: 0;
}
.see-all-link {
flex-shrink: 0;
padding: 14px 28px;
background: var(--amber-mid);
color: var(--text);
text-decoration: none;
border-radius: 8px;
font-family: 'Syne', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
transition: all 0.3s ease;
white-space: nowrap;
}
.see-all-link:hover {
background: var(--amber-dark);
color: var(--white);
transform: translateY(-2px);
box-shadow: 0 8px 16px rgba(186, 117, 23, 0.25);
}
/* PROFILS CIRCULAIRES */
.profile-circle {
width: 140px;
height: 140px;
border-radius: 50%;
background: var(--white);
border: 3px solid var(--teal-mid);
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
transition: all 0.3s ease;
position: relative;
}
.profile-circle:hover {
transform: scale(1.05);
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}
.profile-circle.nathan {
border-color: var(--amber);
}
.profile-circle.user {
border-color: var(--teal-mid);
}
.profile-circle.inline {
width: 280px;
height: 280px;
position: relative;
}
.profile-name {
position: absolute;
bottom: 10px;
right: 10px;
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
color: var(--white);
background: rgba(0, 0, 0, 0.7);
padding: 6px 12px;
border-radius: 4px;
z-index: 10;
}
.about-profiles {
display: flex;
justify-content: center;
align-items: flex-start;
gap: 0;
position: relative;
height: 340px;
}
.about-image {
min-height: auto;
background: transparent !important;
}
.profile-link {
text-decoration: none;
display: inline-block;
transition: all 0.3s ease;
position: relative;
}
.profile-link:first-child {
position: absolute;
left: 50%;
top: 0;
transform: translateX(-10%);
z-index: 2;
}
.profile-link:last-child {
position: absolute;
right: 50%;
top: 80px;
transform: translateX(20%);
z-index: 1;
}
.profile-link:hover .profile-circle {
transform: scale(1.08);
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
}
.profile-image {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
.profile-empty {
width: 100%;
height: 100%;
background: #f0f0f0;
display: flex;
align-items: center;
justify-content: center;
font-size: 60px;
}
/* CONTACT FORM SECTION */
.contact-section {
padding: 100px 40px;
background: linear-gradient(135deg, var(--teal-light) 0%, var(--purple-light) 100%);
margin-top: 60px;
}
.contact-container {
max-width: 700px;
margin: 0 auto;
}
.contact-section h2 {
text-align: center;
color: var(--text);
margin-bottom: 15px;
background: linear-gradient(135deg, var(--teal-mid) 0%, var(--coral-mid) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.contact-section > p {
text-align: center;
color: var(--text-muted);
margin-bottom: 40px;
font-size: 16px;
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.contact-form {
background: var(--white);
padding: 40px;
border-radius: 12px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
animation: slideUp 0.8s ease forwards;
opacity: 0;
}
.form-group {
margin-bottom: 24px;
}
.form-group label {
display: block;
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--text);
margin-bottom: 8px;
}
.form-group input,
.form-group textarea {
width: 100%;
padding: 12px 16px;
border: 1px solid var(--border);
border-radius: 8px;
font-family: 'DM Sans', sans-serif;
font-size: 14px;
color: var(--text);
transition: all 0.3s ease;
background: var(--white);
}
.form-group input:focus,
.form-group textarea:focus {
outline: none;
border-color: var(--teal-mid);
box-shadow: 0 0 0 3px rgba(29, 158, 117, 0.1);
}
.form-group textarea {
resize: vertical;
min-height: 120px;
font-family: 'DM Sans', sans-serif;
}
.contact-submit {
font-family: 'Syne', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
padding: 14px 32px;
background: linear-gradient(135deg, var(--teal-mid) 0%, var(--coral-mid) 100%);
color: var(--white);
border: none;
border-radius: 8px;
cursor: pointer;
transition: all 0.3s ease;
width: 100%;
}
.contact-submit:hover {
transform: translateY(-2px);
box-shadow: 0 12px 24px rgba(29, 158, 117, 0.3);
}
.contact-submit:active {
transform: translateY(0px);
}
.form-message {
text-align: center;
margin-top: 20px;
padding: 12px;
border-radius: 8px;
display: none;
font-size: 14px;
}
.form-message.success {
background: var(--teal-light);
color: var(--teal-dark);
display: block;
}
.form-message.error {
background: var(--coral-light);
color: var(--coral-mid);
display: block;
}
</style>
</head>
<body>
<header>
<div class="logo">NextGN Formation</div>
<nav>
<a href="#formations">Exercices interactifs</a>
<a href="#documentation">Documentation</a>
<a href="#rapports">Rapports de veille</a>
<a href="#about">À propos</a>
<a href="#contact">Contact</a>
</nav>
</header>
<!-- PROGRESS BAR -->
<div class="progress-bar">
<div class="progress-fill"></div>
</div>
<main>
<!-- HERO SECTION -->
<section class="hero">
<div class="hero-content">
<h1>Formateurs <span class="accent">Certibiocide</span><br>indépendants</h1>
<p>Maîtrisez les compétences essentielles en hygiène, biocides et sécurité. Formations pratiques, interactives et certifiantes pour les professionnels.</p>
<div class="cta-group">
<a href="#formations" class="btn btn-primary">Suivre les exercices interactifs</a>
<a href="#documentation" class="btn btn-secondary">Documentation</a>
<a href="#rapports" class="btn btn-secondary">Rapports de veille</a>
<a href="#about" class="btn btn-secondary">En savoir plus</a>
</div>
<div class="stats">
<div class="stat-card">
<div class="stat-label">En 2026</div>
<div class="stat-number">309</div>
<div class="stat-label">Stagiaires certifiés</div>
</div>
<div class="stat-card">
<div class="stat-label">Exercices</div>
<div class="stat-number">100%</div>
<div class="stat-label">Pratiques & Interactifs</div>
</div>
<div class="stat-card">
<div class="stat-number">Experts</div>
<div class="stat-label">Formateurs certifiés</div>
</div>
</div>
</div>
</section>
<!-- FORMATIONS SECTION -->
<section id="formations" class="formations-section">
<div class="section-header">
<h2>Nos Exercices</h2>
<p>Explorez nos exercices ludiques et détaillés, conçus pour répondre à vos besoins en matière de connaissances théoriques et compétences techniques.</p>
</div>
<div class="formations-grid">
<!-- Formation 1: BioCID Exercises -->
<div class="formation-card">
<div class="formation-header">
<div class="formation-icon">🧪</div>
<h3 class="formation-title">Découverte de la plateforme BioCID</h3>
<p class="formation-subtitle">Premiers pas</p>
</div>
<div class="formation-body">
<p class="formation-description">Exercices interactifs spécialisés dans les biocides et leurs applications. Pratique approfondie et validation des connaissances.</p>
<a href="Exo_BioCID.html" class="formation-link">Accéder</a>
</div>
</div>
<!-- Formation 2: FDS, FT et Étiquettes -->
<div class="formation-card">
<div class="formation-header">
<div class="formation-icon">📋</div>
<h3 class="formation-title">FDS & Étiquettes</h3>
<p class="formation-subtitle">Aller plus loin</p>
</div>
<div class="formation-body">
<p class="formation-description">Maîtrisez les Fiches de Données de Sécurité, fiches techniques et étiquetage. Formation complète et pratique.</p>
<a href="Exo_FDS.html" class="formation-link">Accéder</a>
</div>
</div>
<!-- Formation 3: TP Nuisibles final -->
<div class="formation-card">
<div class="formation-header">
<div class="formation-icon">📚</div>
<h3 class="formation-title">TP Nuisibles final</h3>
<p class="formation-subtitle">Étude de cas</p>
</div>
<div class="formation-body">
<p class="formation-description">Exercices pratiques et complets pour maîtriser la certification Certibiocide. Contenu détaillé et progressif.</p>
<a href="TP_Nuisibles_final.html" class="formation-link">Accéder</a>
</div>
</div>
</div>
</section>
<!-- DOCUMENTATION TECHNIQUE SECTION -->
<section id="documentation" class="documentation-section">
<div class="section-header">
<h2>Documentation technique et biologie des espèces</h2>
<p>Accédez à notre base de connaissances : études détaillées, analyses scientifiques et rapports techniques sur les nuisibles, les biocides et les enjeux réglementaires.</p>
</div>
<div class="documentation-grid">
<!-- Frelon Asiatique -->
<div class="doc-card">
<div class="doc-header">
<div class="doc-icon">🐝</div>
<h3 class="doc-title">Frelon asiatique (Vespa velutina nigrithorax) — Invasion de France</h3>
<p class="doc-subtitle">Analyse évolutive 20042026</p>
</div>
<div class="doc-body">
<p class="doc-description">Étude complète de l'invasion du frelon asiatique en France. Données scientifiques, cartographie de l'expansion, impacts écologiques et stratégies de lutte validées par le MNHN et le CNRS.</p>
<ul class="doc-features">
<li>📊 Données MNHN/INPN certifiées</li>
<li>🗺️ Cartographie interactive SignalNids</li>
<li>📈 Projections et tendances 2026+</li>
<li>⚖️ Cadre légal et réglementaire</li>
</ul>
<a href="frelon_asiatique_evolution.html" class="doc-link">Consulter l'étude →</a>
</div>
</div>
</div>
<!-- Encadré "Voir tous les articles" -->
<div class="see-all-documentation">
<div class="see-all-content">
<div class="see-all-icon">📚</div>
<div class="see-all-text">
<h3>Voir tous les articles</h3>
<p>Explorez l'intégralité de notre base de connaissances avec recherche par mot-clé et filtrage par tags. Retrouvez toutes les pages de documentation technique et biologique.</p>
</div>
<a href="documentation-index.html" class="see-all-link">
Accéder à l'index complet →
</a>
</div>
</div>
</section>
<!-- RAPPORTS DE VEILLE HEBDOMADAIRES -->
<section id="rapports" class="rapports-section">
<div class="section-header">
<h2>Rapports de veille hebdomadaires</h2>
<p>Suivez chaque semaine l'actualité réglementaire, les opportunités de marché et les tendances du secteur Certibiocide en France et en Europe.</p>
</div>
<div class="rapports-intro">
<div class="rapports-intro-icon">📊</div>
<div class="rapports-intro-content">
<h3>8 rubriques thématiques couvrant l'écosystème Certibiocide</h3>
<p style="margin-top: 8px; font-size: 14px;">Réglementation • Marché formation • Nuisibles & ESOD • Désinfection • Opportunités • Innovation • Veille européenne • RH & Concurrence</p>
</div>
</div>
<div class="rapports-grid">
<!-- Semaine 21 -->
<div class="rapport-card">
<div class="rapport-header">
<div class="rapport-semaine">Semaine 21</div>
<div class="rapport-date">18-24 mai 2026</div>
</div>
<div class="rapport-body">
<p class="rapport-highlight">⚠️ <strong>Faits clés :</strong></p>
<ul class="rapport-list">
<li>Loi anti-fraude formation définitivement adoptée (13 mai)</li>
<li>Non-renouvellement cyperméthrine en Europe</li>
<li>4 appels d'offres BOAMP 3D actifs</li>
<li>125+ offres d'emploi techniciens 3D</li>
</ul>
</div>
<a href="rapport-semaine-21.html" class="rapport-link">Consulter le rapport complet →</a>
</div>
<!-- Semaine 20 -->
<div class="rapport-card">
<div class="rapport-header">
<div class="rapport-semaine">Semaine 20</div>
<div class="rapport-date">11-17 mai 2026</div>
</div>
<div class="rapport-body">
<p class="rapport-highlight">⚠️ <strong>Faits clés :</strong></p>
<ul class="rapport-list">
<li>Actualisation réglementaire continue</li>
<li>Évolutions du marché formation</li>
<li>Surveillance nuisibles invasifs</li>
<li>Opportunités secteur 3D</li>
</ul>
</div>
<a href="rapport-semaine-20.html" class="rapport-link">Consulter le rapport complet →</a>
</div>
<!-- Archive -->
<div class="rapport-card">
<div class="rapport-header">
<div class="rapport-semaine">Archives</div>
<div class="rapport-date">Accès historique</div>
</div>
<div class="rapport-body">
<p class="rapport-highlight">📚 <strong>Consultez l'index complet :</strong></p>
<p style="font-size: 14px; margin-top: 10px;">Accédez à tous les rapports de veille précédents, classés par semaine et par rubrique thématique pour un suivi approfondi de l'évolution du secteur.</p>
</div>
<a href="veille-index.html" class="rapport-link">Voir tous les rapports →</a>
</div>
</div>
</section>
<!-- ABOUT SECTION -->
<section id="about" class="about-section">
<div class="about-content">
<div class="about-text">
<h3>Qui sommes-nous ?</h3>
<p>Formateurs indépendants spécialisés dans les formations Certibiocide et les domaines techniques. Avec une expertise pointue en hygiène, biocides et sécurité, nous accompagnons les professionnels pour maîtriser les compétences essentielles.</p>
<div class="about-features">
<div class="feature-item">
<div class="feature-icon"></div>
<div class="feature-text">Formations conformes au programme du Ministère de la Transition écologique</div>
</div>
<div class="feature-item">
<div class="feature-icon"></div>
<div class="feature-text">Approche pratique et interactive</div>
</div>
<div class="feature-item">
<div class="feature-icon"></div>
<div class="feature-text">Contenus à jour avec la réglementation</div>
</div>
</div>
</div>
<div class="about-image">
<div class="about-profiles">
<a href="https://www.linkedin.com/in/nathan-chauwin-88a717183/" target="_blank" rel="noopener" class="profile-link">
<div class="profile-circle user inline">
<img src="Nathan.jpeg" alt="Profil Nathan" class="profile-image">
</div>
</a>
<a href="https://www.linkedin.com/in/gauthier-chombart-553606343/" target="_blank" rel="noopener" class="profile-link">
<div class="profile-circle user inline">
<img src="Gauthier.jpeg" alt="Profil Gauthier" class="profile-image">
</div>
</a>
</div>
</div>
</div>
</section>
<!-- CONTACT SECTION -->
<section class="contact-section" id="contact">
<div class="contact-container">
<h2>Nous contacter</h2>
<p>Une question sur nos formations ? Envoyez-nous un message et nous vous répondrons au plus vite.</p>
<form class="contact-form" id="contactForm">
<div class="form-group">
<label for="name">Nom complet</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Adresse email</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="subject">Sujet</label>
<input type="text" id="subject" name="subject" required>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" name="message" required></textarea>
</div>
<button type="submit" class="contact-submit">Envoyer</button>
<div class="form-message" id="formMessage"></div>
</form>
</div>
</section>
</main>
<footer>
<p>&copy; 2026 NextGN Formation - Formations Certibiocide & Techniques</p>
<p style="margin-top: 10px; opacity: 0.6;">Tous droits réservés — Gauthier Chombart & Nathan Chauwin — Formateurs indépendants</p>
</footer>
<script>
// Animation du compteur pour 309 stagiaires
document.addEventListener('DOMContentLoaded', function() {
const counterElement = document.querySelector('.stat-number.counter');
if (counterElement) {
const target = parseInt(counterElement.getAttribute('data-target'));
const duration = 1500; // Durée de l'animation en ms
const startTime = Date.now();
function updateCounter() {
const now = Date.now();
const progress = Math.min((now - startTime) / duration, 1);
const currentNumber = Math.floor(progress * target);
counterElement.textContent = currentNumber;
if (progress < 1) {
requestAnimationFrame(updateCounter);
} else {
counterElement.textContent = target;
}
}
updateCounter();
}
});
// Parallax effect au scroll
window.addEventListener('scroll', function() {
// Mise à jour de la barre de progression
const scrollTop = window.scrollY;
const docHeight = document.documentElement.scrollHeight - window.innerHeight;
const scrollPercent = (scrollTop / docHeight) * 100;
const progressFill = document.querySelector('.progress-fill');
if (progressFill) {
progressFill.style.width = scrollPercent + '%';
}
// Parallax effect au scroll
const stats = document.querySelector('.stats');
if (stats) {
const scrollY = window.scrollY;
const statsOffset = stats.getBoundingClientRect().top + scrollY;
const windowHeight = window.innerHeight;
if (scrollY + windowHeight > statsOffset) {
const parallaxAmount = (scrollY + windowHeight - statsOffset) * 0.1;
stats.style.transform = `translateY(${parallaxAmount}px)`;
}
}
});
// Gestion du formulaire de contact
const contactForm = document.getElementById('contactForm');
const formMessage = document.getElementById('formMessage');
if (contactForm) {
contactForm.addEventListener('submit', function(e) {
e.preventDefault();
const name = document.getElementById('name').value.trim();
const email = document.getElementById('email').value.trim();
const subject = document.getElementById('subject').value.trim();
const message = document.getElementById('message').value.trim();
// Validation
if (!name || !email || !subject || !message) {
showMessage('Tous les champs sont requis.', 'error');
return;
}
// Validation email
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(email)) {
showMessage('Veuillez entrer une adresse email valide.', 'error');
return;
}
// Construction du corps du message avec encodage
const body = encodeURIComponent(
`Demande de contact\n\n` +
`Nom: ${name}\n` +
`Email: ${email}\n` +
`Sujet: ${subject}\n\n` +
`Message:\n${message}`
);
// Construction du lien mailto
const mailtoLink = `mailto:gauthier.chombart@gmail.com?subject=${encodeURIComponent(subject)}&body=${body}`;
// Ouverture du client email
window.location.href = mailtoLink;
// Affichage du message de succès
showMessage('Votre message a été ouvert dans votre client email. Veuillez cliquer sur Envoyer pour confirmer.', 'success');
// Réinitialisation du formulaire
setTimeout(() => {
contactForm.reset();
formMessage.style.display = 'none';
}, 3000);
});
function showMessage(text, type) {
formMessage.textContent = text;
formMessage.className = `form-message ${type}`;
formMessage.style.display = 'block';
}
}
</script>
</body>
</html>