/* =====================================================
   BIP SERVICES PUBLICITE
   DESIGN PREMIUM ELEGANT
   CSS GLOBAL
===================================================== */


/* ==========================
   VARIABLES
========================== */

:root{

--primary:#42bfe8;
--primary-light:#8ee7ff;
--primary-dark:#159bc8;

--dark:#1f2937;
--text:#334155;
--muted:#64748b;

--background:#f6f9fc;
--white:#ffffff;

--border:#e5e7eb;

--shadow:
0 20px 50px rgba(15,23,42,.08);

--shadow-hover:
0 30px 70px rgba(15,23,42,.14);

--radius:28px;

--transition:.35s ease;

}



/* ==========================
   RESET
========================== */


*{
margin:0;
padding:0;
box-sizing:border-box;
}



html{
scroll-behavior:smooth;
}



body{

font-family:
'Inter',
Arial,
sans-serif;

background:var(--background);

color:var(--text);

line-height:1.7;

font-size:16px;

}



img{

max-width:100%;

display:block;

}



a{

text-decoration:none;

color:inherit;

}



ul{

list-style:none;

}




/* ==========================
   CONTENEURS ELEGANTS
========================== */


.container{

width:100%;

max-width:1100px;

margin:auto;

padding-left:25px;

padding-right:25px;

}



.section{

max-width:1100px;

margin:auto;

padding:

80px 25px;

}



.section-title{

text-align:center;

font-size:40px;

font-weight:850;

color:var(--dark);

margin-bottom:20px;

}



.section-sub{

max-width:650px;

margin:

0 auto 50px;

text-align:center;

color:var(--muted);

font-size:18px;

}





/* ==========================
   HEADER
========================== */


.header{

position:sticky;

top:0;

z-index:1000;

background:

rgba(255,255,255,.92);

backdrop-filter:blur(15px);

box-shadow:

0 5px 25px rgba(0,0,0,.06);

}



.navbar{

height:85px;

display:flex;

align-items:center;

justify-content:space-between;

}





.logo img{

width:170px;

transition:.3s;

}



.logo:hover img{

transform:scale(1.04);

}




/* ==========================
   NAVIGATION CORRIGEE
========================== */


.navigation ul{

display:flex;

align-items:center;

gap:32px;

}



.navigation > ul > li{

position:relative;

display:flex;

align-items:center;

}



.navigation a{

font-weight:600;

color:#334155;

display:flex;

align-items:center;

transition:var(--transition);

}



.navigation a:hover,
.navigation a.active{

color:var(--primary-dark);

}




/* MENU SERVICES */


.dropdown-btn{

border:0;

background:none;

font-size:16px;

font-weight:600;

cursor:pointer;

color:#334155;

font-family:inherit;

display:flex;

align-items:center;

gap:6px;

padding:0;

margin:0;

width:auto;

line-height:1;

}



.dropdown-btn span{

font-size:14px;

color:var(--primary);

line-height:1;

}




.submenu{

position:absolute;

top:35px;

left:0;

background:#e8f8fc;

width:250px;

padding:15px 0;

border-radius:20px;

box-shadow:var(--shadow);

opacity:0;

visibility:hidden;

transform:translateY(10px);

transition:var(--transition);

display:block!important;

border:1px solid rgba(66,191,232,.25);

}



.dropdown:hover .submenu{

opacity:1;

visibility:visible;

transform:translateY(0);

}



.submenu li{

display:block;

}



.submenu a{

display:block;

padding:12px 25px;

font-size:15px;

font-weight:600;

color:#334155;

transition:.3s;

}


.submenu a:hover{

background:#42bfe8;

color:white;

}



/* ==========================
   BOUTON MOBILE
========================== */


.menu-toggle{

display:none;

background:none;

border:0;

cursor:pointer;

}



.menu-toggle span{

display:block;

width:28px;

height:3px;

background:var(--dark);

margin:6px;

border-radius:10px;

}
/* =====================================================
   HERO PREMIUM ELEGANT
===================================================== */


.hero{

position:relative;

overflow:hidden;

padding:100px 25px;

background:

linear-gradient(
135deg,
#42bfe8,
#8ee7ff
);

color:white;

text-align:center;

}



.hero::before{

content:"";

position:absolute;

width:500px;

height:500px;

background:

rgba(255,255,255,.12);

border-radius:50%;

top:-220px;

right:-150px;

}



.hero::after{

content:"";

position:absolute;

width:350px;

height:350px;

background:

rgba(255,255,255,.08);

border-radius:50%;

bottom:-180px;

left:-100px;

}



.hero-content{

position:relative;

z-index:2;

max-width:850px;

margin:auto;

}



.hero h1{

font-size:52px;

font-weight:900;

line-height:1.15;

letter-spacing:-1px;

margin-bottom:25px;

}



.hero p{

font-size:20px;

max-width:750px;

margin:auto;

line-height:1.7;

}





/* =====================================================
   BLOCS SERVICES
===================================================== */


.service-layout{

max-width:1000px;

margin:auto;

display:grid;

grid-template-columns:

1fr .9fr;

gap:60px;

align-items:center;

}



.service-content h2{

font-size:38px;

font-weight:850;

color:var(--dark);

margin-bottom:20px;

}



.service-content p{

font-size:17px;

color:#475569;

margin-bottom:20px;

}





.service-list{

margin-top:25px;

}



.service-list li{

position:relative;

padding-left:30px;

margin-bottom:12px;

font-size:16px;

color:#475569;

}



.service-list li::before{

content:"✓";

position:absolute;

left:0;

font-weight:900;

color:var(--primary-dark);

}





/* IMAGE SERVICE */


.service-image{

background:white;

padding:20px;

border-radius:30px;

box-shadow:var(--shadow);

}



.service-image img{

width:100%;

height:400px;

object-fit:cover;

border-radius:22px;

}



.image-caption{

padding:20px;

text-align:center;

}



.image-caption h3{

font-size:25px;

font-weight:800;

color:var(--dark);

}




/* =====================================================
   CARTES PREMIUM
===================================================== */


.cards{

max-width:1000px;

margin:auto;

display:grid;

grid-template-columns:

repeat(2,1fr);

gap:30px;

}



.card-premium{

background:#e8f8fc;

padding:35px;

border-radius:25px;

box-shadow:var(--shadow);

border:1px solid rgba(66,191,232,.25);

transition:var(--transition);

position:relative;

overflow:hidden;

}



.card-premium::before{

content:"";

position:absolute;

top:0;

left:0;

height:5px;

width:100%;

background:

linear-gradient(
90deg,
var(--primary),
var(--primary-light)
);

}



.card-premium:hover{

transform:translateY(-8px);

background:#d9f3fa;

box-shadow:var(--shadow-hover);

}



.icon-premium{

width:65px;

height:65px;

display:flex;

align-items:center;

justify-content:center;

font-size:35px;

background:white;

border-radius:18px;

margin-bottom:20px;

box-shadow:0 8px 20px rgba(15,23,42,.08);

}



.card-premium h3{

font-size:24px;

font-weight:800;

color:var(--dark);

margin-bottom:12px;

}



.card-premium p{

color:#475569;

font-size:16px;

}




/* =====================================================
   SERVICES GRID
===================================================== */


.services{

max-width:1000px;

margin:auto;

display:grid;

grid-template-columns:

repeat(auto-fit,minmax(280px,1fr));

gap:30px;

}



.service{

background:white;

padding:35px;

border-radius:28px;

box-shadow:var(--shadow);

transition:var(--transition);

position:relative;

overflow:hidden;

}



.service::before{

content:"";

height:5px;

width:100%;

position:absolute;

top:0;

left:0;

background:

linear-gradient(
90deg,
var(--primary),
var(--primary-light)
);

}



.service:hover{

transform:translateY(-8px);

box-shadow:var(--shadow-hover);

}



.service h2{

font-size:25px;

font-weight:800;

color:var(--dark);

margin-bottom:15px;

}



.service p{

color:var(--muted);

}





.icon{

font-size:55px;

margin-bottom:20px;

}





/* =====================================================
   GALERIE
===================================================== */


.gallery{

max-width:1000px;

margin:50px auto 0;

display:grid;

grid-template-columns:

repeat(2,1fr);

gap:25px;

}



.gallery img{

height:360px;

width:100%;

object-fit:cover;

border-radius:25px;

box-shadow:var(--shadow);

transition:var(--transition);

}



.gallery img:hover{

transform:scale(1.03);

box-shadow:var(--shadow-hover);

}
/* =====================================================
   STATISTIQUES PREMIUM
===================================================== */


.stats-grid{

max-width:1000px;

margin:auto;

display:grid;

grid-template-columns:

repeat(4,1fr);

gap:25px;

}



.stat-box{

background:white;

padding:35px 25px;

border-radius:25px;

text-align:center;

box-shadow:var(--shadow);

border:1px solid rgba(66,191,232,.12);

transition:var(--transition);

}



.stat-box:hover{

transform:translateY(-8px);

box-shadow:var(--shadow-hover);

}



.stat-box h2{

font-size:45px;

font-weight:900;

color:var(--primary-dark);

margin-bottom:10px;

}



.stat-box p{

color:var(--muted);

font-weight:600;

}





/* =====================================================
   CTA PREMIUM
===================================================== */


.premium-cta{

max-width:1050px;

margin:80px auto;

padding:70px 40px;

border-radius:40px;

text-align:center;

color:white;

background:

linear-gradient(
135deg,
var(--primary),
var(--primary-light)
);

box-shadow:

0 25px 70px rgba(66,191,232,.3);

position:relative;

overflow:hidden;

}



.premium-cta::before{

content:"";

position:absolute;

width:450px;

height:450px;

background:

rgba(255,255,255,.12);

border-radius:50%;

top:-250px;

right:-150px;

}



.cta-content{

position:relative;

z-index:2;

}



.premium-cta h2{

font-size:40px;

font-weight:900;

margin-bottom:20px;

}



.premium-cta p{

font-size:19px;

max-width:700px;

margin:

0 auto 35px;

}





/* =====================================================
   BOUTONS
===================================================== */


.btn{

display:inline-flex;

align-items:center;

justify-content:center;

padding:15px 35px;

border-radius:50px;

background:

linear-gradient(
135deg,
var(--primary),
var(--primary-dark)
);

color:white;

font-weight:700;

transition:var(--transition);

box-shadow:

0 10px 30px rgba(66,191,232,.35);

}



.btn:hover{

transform:translateY(-4px);

box-shadow:

0 15px 40px rgba(66,191,232,.45);

}





.btn-premium{

display:inline-flex;

align-items:center;

justify-content:center;

padding:16px 38px;

background:white;

color:#167da3;

font-weight:800;

border-radius:50px;

transition:var(--transition);

}



.btn-premium:hover{

background:var(--dark);

color:white;

transform:translateY(-4px);

}





/* =====================================================
   CONTACT PREMIUM
===================================================== */


.contact{

padding:70px 25px;

}



.contact-container{

max-width:1050px;

margin:auto;

display:grid;

grid-template-columns:

330px 1fr;

gap:45px;

align-items:start;

}





/* CARTE INFORMATIONS */


.contact .card{

background:

linear-gradient(
135deg,
#67c6e3,
#90dcf7
);

color:white;

padding:35px;

border-radius:28px;

box-shadow:var(--shadow);

}



.contact .card h2{

font-size:30px;

margin-bottom:25px;

}



.info{

margin-bottom:20px;

}



.info strong{

display:block;

margin-bottom:5px;

}





/* FORMULAIRE */


.form{

background:white;

padding:35px;

border-radius:28px;

box-shadow:var(--shadow);

}



.form h2{

font-size:32px;

color:var(--dark);

margin-bottom:25px;

}



.grid{

display:grid;

grid-template-columns:

repeat(2,1fr);

gap:20px;

}



.group{

margin-bottom:18px;

}



.group label{

display:block;

font-weight:600;

margin-bottom:8px;

}



.group input,
.group select,
.group textarea{

width:100%;

padding:15px;

border-radius:14px;

border:1px solid var(--border);

font-family:inherit;

font-size:15px;

}



.group textarea{

height:160px;

resize:none;

}





/* IMPORTANT :
   bouton formulaire uniquement
   (pas de style global button)
*/


.submit-btn{

width:100%;

padding:16px;

margin-top:10px;

border:none;

border-radius:15px;

background:var(--primary);

color:white;

font-size:17px;

font-weight:700;

cursor:pointer;

transition:.3s;

}



.submit-btn:hover{

background:var(--primary-dark);

transform:translateY(-2px);

}




/* =====================================================
   PAGE SECTEURS
===================================================== */


.secteurs-grid{

max-width:1000px;

margin:auto;

display:grid;

grid-template-columns:

repeat(auto-fit,minmax(280px,1fr));

gap:30px;

}



.secteur-card{

background:#f1f5f9;

padding:35px;

border-radius:25px;

box-shadow:var(--shadow);

transition:var(--transition);

border:1px solid #e2e8f0;

color:var(--text);

}



.secteur-card:hover{

transform:translateY(-8px);

background:#e8f8fc;

box-shadow:var(--shadow-hover);

}



.secteur-card h2{

color:var(--dark);

margin-bottom:15px;

font-weight:800;

}



.secteur-card p{

color:#475569;

}





/* BADGES ZONES */


.badge{

display:inline-block;

padding:8px 18px;

background:

linear-gradient(
135deg,
var(--primary),
var(--primary-dark)
);

color:white;

border-radius:30px;

font-size:14px;

font-weight:700;

margin-bottom:20px;

}





/* CARTE / MAP */


.map{

background:#ffffff;

border-radius:25px;

padding:25px;

box-shadow:var(--shadow);

border:1px solid rgba(66,191,232,.15);

}



.map img{

width:100%;

border-radius:20px;

}



/* ==========================
   ZONES SECTEURS - FOND GRIS CLAIR
========================== */

.secteurs-grid .secteur-card{

background:#dfe7ee !important;

padding:35px;

border-radius:25px;

box-shadow:0 15px 40px rgba(15,23,42,.10);

border:1px solid #cbd5e1;

transition:.35s ease;

}



.secteurs-grid .secteur-card:hover{

background:#d3eaf3 !important;

transform:translateY(-8px);

box-shadow:0 25px 60px rgba(15,23,42,.15);

}



.secteurs-grid .secteur-card h2{

color:#1f2937;

}



.secteurs-grid .secteur-card p{

color:#475569;

}




/* =====================================================
   FOOTER PREMIUM
===================================================== */


.footer-premium{

background:#1f2937;

color:white;

margin-top:80px;

padding-top:60px;

}



.footer-container{

max-width:1100px;

margin:auto;

padding:0 25px 45px;

display:grid;

grid-template-columns:

1.2fr .8fr .8fr;

gap:50px;

}



.footer-logo img{

width:170px;

margin-bottom:20px;

}



.footer-logo p,
.footer-contact p{

color:#cbd5e1;

}



.footer-links h3,
.footer-contact h3{

font-size:20px;

margin-bottom:20px;

}



.footer-links a{

display:block;

color:#cbd5e1;

margin-bottom:10px;

transition:.3s;

}



.footer-links a:hover{

color:var(--primary-light);

transform:translateX(5px);

}



.footer-bottom{

border-top:

1px solid rgba(255,255,255,.1);

text-align:center;

padding:20px;

color:#94a3b8;

font-size:14px;

}

/* =====================================================
   ANIMATIONS
===================================================== */


@keyframes fadeUp{

from{

opacity:0;

transform:translateY(30px);

}

to{

opacity:1;

transform:translateY(0);

}

}



.service-content,
.service-image,
.card-premium,
.service,
.stat-box{

animation:

fadeUp .8s ease both;

}





/* =====================================================
   TIMELINE / METHODE
===================================================== */


.timeline{

max-width:1000px;

margin:50px auto 0;

display:grid;

grid-template-columns:

repeat(5,1fr);

gap:20px;

}



.step{

background:white;

padding:30px 20px;

border-radius:22px;

text-align:center;

box-shadow:var(--shadow);

position:relative;

}



.step:not(:last-child)::after{

content:"➜";

position:absolute;

right:-15px;

top:50%;

transform:translateY(-50%);

font-size:22px;

color:var(--primary);

}



.number{

width:55px;

height:55px;

margin:0 auto 20px;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

background:var(--primary);

color:white;

font-size:22px;

font-weight:800;

}



.step h3{

color:var(--dark);

margin-bottom:10px;

}



.step p{

color:var(--muted);

font-size:15px;

}





/* =====================================================
   RESPONSIVE TABLETTE
===================================================== */


@media(max-width:1000px){


.navigation ul{

gap:20px;

}



.hero h1{

font-size:44px;

}



.service-layout{

grid-template-columns:1fr;

gap:40px;

}



.stats-grid{

grid-template-columns:

repeat(2,1fr);

}



.footer-container{

grid-template-columns:

1fr 1fr;

}



.timeline{

grid-template-columns:

repeat(3,1fr);

}



.step:not(:last-child)::after{

display:none;

}


}





/* =====================================================
   RESPONSIVE MOBILE
===================================================== */


@media(max-width:768px){


.container{

padding-left:20px;

padding-right:20px;

}



.navbar{

height:auto;

padding:20px 0;

}



.menu-toggle{

display:block;

}



.navigation{

display:none;

width:100%;

}



.navigation.active{

display:block;

}



.navigation ul{

flex-direction:column;

align-items:flex-start;

gap:18px;

padding-top:25px;

}



.navigation > ul > li{

width:100%;

}



.dropdown-btn{

font-size:16px;

}



.submenu{

position:static;

width:100%;

box-shadow:none;

border-radius:15px;

opacity:1;

visibility:visible;

transform:none;

display:none!important;

margin-top:15px;

}



.dropdown.active .submenu{

display:block!important;

}



.hero{

padding:75px 20px;

}



.hero h1{

font-size:34px;

}



.hero p{

font-size:17px;

}



.section{

padding:

55px 20px;

}



.section-title{

font-size:30px;

}



.service-content h2{

font-size:30px;

}



.service-image img{

height:280px;

}



.cards{

grid-template-columns:1fr;

}



.gallery{

grid-template-columns:1fr;

}



.gallery img{

height:300px;

}



.stats-grid{

grid-template-columns:1fr;

}



.premium-cta{

margin:

50px 20px;

padding:

45px 25px;

}



.premium-cta h2{

font-size:30px;

}



.contact-container{

grid-template-columns:1fr;

}



.form{

padding:25px;

}



.grid{

grid-template-columns:1fr;

}



.footer-container{

grid-template-columns:1fr;

text-align:center;

}



.timeline{

grid-template-columns:1fr;

}


}





/* =====================================================
   PETITS ECRANS
===================================================== */


@media(max-width:480px){


.logo img{

width:145px;

}



.hero h1{

font-size:30px;

}



.hero p{

font-size:16px;

}



.btn,
.btn-premium{

width:100%;

}



.card-premium,
.service,
.secteur-card{

padding:25px;

}


}




/* =====================================================
   ACCESSIBILITE
===================================================== */


a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus{

outline:

3px solid var(--primary-light);

outline-offset:3px;

}

