:root{--bleu-nuit:#0f1f34;--bleu-petrole:#0f3f47;--bleu-electrique:#00bfe0;--vert-energie:#00c17c;--jaune-solaire:#fcd207;--jaune-dore:#fabc19;--blanc:#ffffff;--gris-clair:#f5f7fa;--gris-moyen:#e2e8f0;--gris-texte:#4a5568;--ombre:0 8px 24px rgba(15,31,52,.10);--ombre-hover:0 14px 34px rgba(15,31,52,.18);--transition:all .35s cubic-bezier(.4,0,.2,1);}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Roboto',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;color:var(--bleu-nuit);line-height:1.65;background:var(--blanc);overflow-x:hidden;}
h1,h2,h3,h4{font-weight:700;line-height:1.25;color:var(--bleu-nuit);}
h1{font-weight:900;font-size:clamp(2rem,5vw,3.5rem);}
h2{font-size:clamp(1.75rem,3.5vw,2.5rem);margin-bottom:1rem;}
h3{font-size:1.35rem;font-weight:700;margin-bottom:.75rem;}
h4{font-size:1.1rem;font-weight:500;}
p{margin-bottom:1rem;color:var(--gris-texte);}
a{color:var(--bleu-electrique);text-decoration:none;transition:var(--transition);}
a:hover{color:var(--vert-energie);}
.zap{color:var(--bleu-electrique);font-weight:900;display:inline-block;}
header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);box-shadow:0 2px 10px rgba(15,31,52,.06);padding:.8rem 2rem;}
.nav-wrap{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.logo{display:flex;align-items:center;gap:.85rem;text-decoration:none;}
.logo-mark{width:64px;height:58px;flex-shrink:0;}
.logo-text{display:flex;flex-direction:column;line-height:1.1;}
.logo-text .brand{font-weight:900;font-size:1.45rem;color:var(--bleu-nuit);letter-spacing:-.5px;}
.logo-text .tag{font-size:.72rem;color:var(--gris-texte);font-weight:400;margin-top:3px;font-style:italic;}
nav ul{display:flex;list-style:none;gap:1.75rem;align-items:center;}
nav a{color:var(--bleu-nuit);font-weight:500;font-size:.95rem;position:relative;}
nav a::after{content:'';position:absolute;bottom:-6px;left:0;width:0;height:2px;background:var(--bleu-electrique);transition:var(--transition);}
nav a:hover::after{width:100%;}
.btn{display:inline-block;padding:.85rem 1.8rem;border-radius:50px;font-weight:700;font-size:.95rem;text-decoration:none;transition:var(--transition);cursor:pointer;border:none;text-align:center;letter-spacing:.3px;}
.btn-primary{background:var(--bleu-electrique);color:var(--blanc);box-shadow:0 4px 14px rgba(0,191,224,.35);}
.btn-primary:hover{background:var(--vert-energie);color:var(--blanc);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,193,124,.4);}
.btn-secondary{background:var(--jaune-solaire);color:var(--bleu-nuit);box-shadow:0 4px 14px rgba(252,210,7,.35);}
.btn-secondary:hover{background:var(--jaune-dore);transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--blanc);border:2px solid var(--blanc);}
.btn-outline:hover{background:var(--blanc);color:var(--bleu-nuit);}
.hamburger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;}
.hamburger span{width:26px;height:3px;background:var(--bleu-nuit);border-radius:2px;}
.hero{position:relative;background:linear-gradient(135deg,var(--bleu-nuit) 0%,var(--bleu-petrole) 100%);color:var(--blanc);padding:6rem 2rem 10rem;text-align:center;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-100px;right:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(252,210,7,.18) 0%,transparent 70%);border-radius:50%;}
.hero::after{content:'';position:absolute;bottom:120px;left:-100px;width:350px;height:350px;background:radial-gradient(circle,rgba(0,193,124,.15) 0%,transparent 70%);border-radius:50%;}
.hero-content{max-width:900px;margin:auto;position:relative;z-index:2;}
.hero h1{color:var(--blanc);margin-bottom:1.2rem;}
.hero h1 span{color:var(--jaune-solaire);}
.hero .subtitle{font-size:clamp(1rem,2vw,1.25rem);color:rgba(255,255,255,.9);margin-bottom:2.5rem;font-weight:400;}
.hero .subtitle .zap{color:var(--jaune-solaire);}
.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.wave{position:absolute;bottom:-1px;left:0;width:100%;height:120px;z-index:1;}
.stats{background:var(--bleu-petrole);color:var(--blanc);padding:3rem 2rem;margin-top:-1px;}
.stats-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;text-align:center;}
.stat-item .number{font-size:clamp(2.2rem,4vw,3rem);font-weight:900;color:var(--jaune-solaire);display:block;line-height:1;margin-bottom:.4rem;}
.stat-item .label{color:rgba(255,255,255,.85);font-size:.95rem;font-weight:500;}
section{padding:5rem 2rem;}
.container{max-width:1200px;margin:auto;}
.section-title{text-align:center;margin-bottom:3rem;}
.section-title .eyebrow{display:inline-block;color:var(--bleu-electrique);font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:.75rem;}
.section-title h2::after{content:'';display:block;width:70px;height:4px;background:linear-gradient(90deg,var(--bleu-electrique),var(--vert-energie),var(--jaune-solaire));margin:1rem auto 0;border-radius:2px;}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.about-card{background:linear-gradient(135deg,var(--bleu-nuit),var(--bleu-petrole));color:var(--blanc);padding:2.5rem;border-radius:20px;box-shadow:var(--ombre);}
.about-card h3{color:var(--jaune-solaire);margin-top:1.5rem;}
.about-card h3:first-child{margin-top:0;}
.about-card p{color:rgba(255,255,255,.9);}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.75rem;}
.card{background:var(--blanc);padding:2rem;border-radius:16px;box-shadow:var(--ombre);transition:var(--transition);border-top:4px solid transparent;position:relative;overflow:hidden;}
.card:hover{transform:translateY(-6px);box-shadow:var(--ombre-hover);border-top-color:var(--bleu-electrique);}
.card:nth-child(2):hover{border-top-color:var(--vert-energie);}
.card:nth-child(3):hover{border-top-color:var(--jaune-solaire);}
.card:nth-child(4):hover{border-top-color:var(--jaune-dore);}
.card-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;background:linear-gradient(135deg,var(--bleu-electrique),var(--vert-energie));}
.card:nth-child(2) .card-icon{background:linear-gradient(135deg,var(--vert-energie),var(--jaune-solaire));}
.card:nth-child(3) .card-icon{background:linear-gradient(135deg,var(--jaune-solaire),var(--jaune-dore));}
.card:nth-child(4) .card-icon{background:linear-gradient(135deg,var(--bleu-petrole),var(--bleu-electrique));}
.card-icon svg{width:28px;height:28px;fill:var(--blanc);}
.bg-gris{background:var(--gris-clair);}
.projects-table{overflow-x:auto;background:var(--blanc);border-radius:16px;box-shadow:var(--ombre);}
table{width:100%;border-collapse:collapse;min-width:700px;}
thead{background:var(--bleu-nuit);color:var(--blanc);}
th,td{padding:1rem 1.25rem;text-align:left;}
th{font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;}
tbody tr{border-bottom:1px solid var(--gris-moyen);transition:var(--transition);}
tbody tr:hover{background:var(--gris-clair);}
tbody tr:last-child{border-bottom:none;}
.badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:700;background:var(--jaune-solaire);color:var(--bleu-nuit);}
.market-card{padding:2.5rem;border-radius:20px;color:var(--blanc);text-align:center;transition:var(--transition);}
.market-card:hover{transform:translateY(-6px);box-shadow:var(--ombre-hover);}
.market-card.canada{background:linear-gradient(135deg,var(--bleu-nuit),var(--bleu-electrique));}
.market-card.togo{background:linear-gradient(135deg,var(--vert-energie),var(--jaune-solaire));}
.market-card.gabon{background:linear-gradient(135deg,var(--bleu-petrole),var(--vert-energie));}
.market-card h3{color:var(--blanc);}
.market-card p{color:rgba(255,255,255,.92);}
.market-flag{font-size:3rem;margin-bottom:1rem;display:block;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;}
.contact-form{background:var(--blanc);padding:2.5rem;border-radius:20px;box-shadow:var(--ombre);}
.form-group{margin-bottom:1.25rem;}
.form-group label{display:block;font-weight:500;margin-bottom:.5rem;font-size:.9rem;color:var(--bleu-nuit);}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.85rem 1rem;border:2px solid var(--gris-moyen);border-radius:10px;font-family:inherit;font-size:1rem;transition:var(--transition);background:var(--blanc);}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--bleu-electrique);box-shadow:0 0 0 3px rgba(0,191,224,.15);}
.form-group textarea{resize:vertical;min-height:120px;}
.contact-info{background:linear-gradient(135deg,var(--bleu-nuit),var(--bleu-petrole));color:var(--blanc);padding:2.5rem;border-radius:20px;}
.contact-info h3{color:var(--jaune-solaire);}
.contact-info p{color:rgba(255,255,255,.92);}
.contact-item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.5rem;}
.contact-item svg{width:24px;height:24px;fill:var(--bleu-electrique);flex-shrink:0;margin-top:3px;}
.contact-item strong{color:var(--blanc);display:block;margin-bottom:.25rem;}
footer{background:var(--bleu-nuit);color:var(--blanc);padding:3.5rem 2rem 1.5rem;}
.footer-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem;}
.footer-grid h4{color:var(--jaune-solaire);margin-bottom:1rem;font-weight:700;}
.footer-grid p,.footer-grid a{color:rgba(255,255,255,.75);font-size:.92rem;}
.footer-grid ul{list-style:none;}
.footer-grid ul li{margin-bottom:.5rem;}
.footer-grid a:hover{color:var(--bleu-electrique);}
.social-links{display:flex;gap:.75rem;margin-top:1rem;}
.social-links a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:var(--transition);}
.social-links a:hover{background:var(--bleu-electrique);transform:translateY(-3px);}
.social-links svg{width:18px;height:18px;fill:var(--blanc);}
.copyright{border-top:1px solid rgba(255,255,255,.15);padding-top:1.5rem;text-align:center;color:rgba(255,255,255,.6);font-size:.9rem;}
.fade-in{opacity:1!important;transform:none!important;}
.fade-in.visible{opacity:1!important;transform:none!important;}
@media(max-width:900px){.about-grid,.contact-grid{grid-template-columns:1fr;}.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){
nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:var(--blanc);flex-direction:column;padding:1.5rem;box-shadow:0 4px 12px rgba(0,0,0,.1);gap:1rem;}
nav ul.open{display:flex;}
.hamburger{display:flex;}
.nav-cta{display:none;}
.hero{padding:4rem 1.5rem 8rem;}
section{padding:3.5rem 1.5rem;}
.footer-grid{grid-template-columns:1fr;}
header{padding:.8rem 1.5rem;}
.logo-text .tag{display:none;}
}
.nav-cta{display:flex;align-items:center;gap:.55rem;flex-shrink:0;}
.logo-text .brand{display:block;gap:0;}
.nav-cta .btn{padding:.68rem 1.05rem;font-size:.86rem;}
.mobile-module-link{display:none;}
.form-notice{padding:1rem 1.2rem;border-radius:10px;margin-bottom:1rem;font-weight:700;}
.form-notice--success{color:#135c35;background:#daf5e8;}
.form-notice--error{color:#8a251f;background:#ffe3df;}
.contact-form .form-trap{position:absolute!important;left:-10000px!important;}
@media(max-width:1120px){nav ul{gap:1rem;}.nav-wrap{gap:.7rem}.logo-text .tag{display:none;}}
@media(max-width:930px){
nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:var(--blanc);flex-direction:column;padding:1.5rem;box-shadow:0 4px 12px rgba(0,0,0,.1);gap:1rem;}
nav ul.open{display:flex;}
.hamburger{display:flex;}
.nav-cta{display:none;}
.mobile-module-link{display:block;}
}
