/* ============================
RESET
============================ */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
font-family:'Poppins',sans-serif;
}

/* ============================
CONTAINER
============================ */

.container{
max-width:1200px;
margin:auto;
padding:0 20px;
}

/* ============================
TOPBAR
============================ */

.topbar{

background:#0f172a;
color:white;
font-size:14px;
padding:8px 0;

}

.topbar .container{

display:flex;
justify-content:space-between;
align-items:center;

}



@media(max-width:900px){

.topbar{
padding:10px 0;
}

.topbar .container{
flex-direction:column;
gap:6px;
}

.topbar span{
background:rgba(255,255,255,0.05);
padding:6px 12px;
border-radius:20px;
}

}




/* ============================
HEADER
============================ */

.main-header{

background:white;
position:sticky;
top:0;
z-index:999;

box-shadow:0 3px 10px rgba(0,0,0,0.05);

transition:0.3s;

}

/* header au scroll */

.main-header.scrolled{

box-shadow:0 8px 20px rgba(0,0,0,0.1);

}

/* flex */

.header-flex{

display:flex;
align-items:center;
justify-content:space-between;

height:80px;

}

/* ============================
LOGO PREMIUM
============================ */

.logo-premium{
text-decoration:none;
display:flex;
flex-direction:column;
position:relative;
}

.logo-main{

display:flex;
font-size:28px;
font-weight:800;
letter-spacing:3px;

}

.logo-auto{

background:linear-gradient(120deg,#ffffff,#dcdcdc,#ffffff);

-webkit-background-clip:text;
-webkit-text-fill-color:transparent;

text-shadow:0 1px 2px rgba(0,0,0,0.4);

margin-right:6px;

}

.logo-mathis{

background:linear-gradient(120deg,#17c3b2,#0f172a,#17c3b2);

-webkit-background-clip:text;
-webkit-text-fill-color:transparent;

}

.logo-sub{

font-size:10px;
letter-spacing:3px;
color:#888;

}

/* ligne vitesse */

.logo-speed{

position:absolute;
left:-40px;
top:50%;

width:30px;
height:3px;

background:linear-gradient(90deg,transparent,#f4c542,transparent);

animation:speedLine 2s infinite;

}

@keyframes speedLine{

0%{
transform:translate(-40px,-50%);
opacity:0;
}

50%{
opacity:1;
}

100%{
transform:translate(80px,-50%);
opacity:0;
}

}

/* ============================
NAVIGATION
============================ */

.nav-menu{

display:flex;
gap:30px;

}

.nav-menu a{

text-decoration:none;
color:#333;
font-weight:500;

position:relative;

transition:0.3s;

}

/* effet underline */

.nav-menu a::after{

content:"";
position:absolute;

width:0%;
height:2px;

background:#17c3b2;

bottom:-5px;
left:0;

transition:0.3s;

}

.nav-menu a:hover::after{

width:100%;

}

.nav-menu a:hover{

color:#17c3b2;

}

/* ============================
MEGA MENU CATALOGUE
============================ */

.nav-menu li{

position:relative;
list-style:none;

}

.mega-menu{

position:absolute;
top:60px;
left:0;

background:white;

width:600px;

padding:30px;

display:none;

grid-template-columns:repeat(3,1fr);

gap:20px;

box-shadow:0 10px 25px rgba(0,0,0,0.1);

}

.nav-menu li:hover .mega-menu{

display:grid;

}

.mega-menu a{

display:block;
padding:8px 0;
color:#444;

}

/* ============================
HEADER ACTIONS
============================ */

.header-actions{

display:flex;
align-items:center;
gap:20px;

}

/* bouton contact */

.btn-contact{

background:#17c3b2;

color:white;
padding:10px 20px;

border-radius:6px;

text-decoration:none;

transition:0.3s;

}

.btn-contact:hover{

background:#0f172a;

}

/* ============================
PANIER
============================ */

.cart-icon{

font-size:22px;
text-decoration:none;

position:relative;

transition:0.3s;

}


#cart-count{
position:absolute;
top:-8px;
right:-10px;
background:#f59e0b;
color:white;
width:20px;
height:20px;
border-radius:50%;
font-size:12px;
display:flex;
align-items:center;
justify-content:center;
font-weight:600;
transition:0.3s;
}

.cart-icon:hover{

transform:scale(1.2);

}

/* badge panier */

.cart-icon::after{


position:absolute;
top:-8px;
right:-10px;

background:#f4c542;

width:18px;
height:18px;

border-radius:50%;

font-size:11px;

display:flex;
align-items:center;
justify-content:center;

}

/* ============================
HAMBURGER
============================ */

.hamburger{

display:none;
flex-direction:column;
cursor:pointer;

}

.hamburger span{

width:25px;
height:3px;

background:#333;

margin:4px 0;

transition:0.4s;

}

/* animation */

.hamburger.active span:nth-child(1){

transform:rotate(45deg) translate(5px,5px);

}

.hamburger.active span:nth-child(2){

opacity:0;

}

.hamburger.active span:nth-child(3){

transform:rotate(-45deg) translate(5px,-5px);

}

/* ============================
RESPONSIVE
============================ */

@media(max-width:900px){

.nav-menu{

position:absolute;
top:80px;
left:0;

width:100%;

background:white;

flex-direction:column;

align-items:center;

gap:20px;

padding:20px 0;

display:none;

}

.nav-menu.active{

display:flex;

}

.hamburger{

display:flex;

}

}










/* ============================
FIX MENU MOBILE SANS CASSER DESKTOP
============================ */

/* mobile menu caché par défaut */
.mobile-menu{
position:fixed;
top:0;
right:-100%;
width:300px;
height:100%;
background:white;
z-index:2000;
padding:20px;
display:flex;
flex-direction:column;
transition:0.4s ease;
box-shadow:-10px 0 30px rgba(0,0,0,0.15);
}

.mobile-menu.active{
right:0;
}

.mobile-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:30px;
}

.close-menu{
cursor:pointer;
font-size:22px;
}

.mobile-nav{
display:flex;
flex-direction:column;
gap:20px;
}

.mobile-nav a{
text-decoration:none;
color:#333;
font-size:18px;
}

.mobile-actions{
margin-top:auto;
display:flex;
flex-direction:column;
gap:15px;
}

.menu-overlay{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.4);
opacity:0;
visibility:hidden;
transition:0.3s;
z-index:1500;
}

.menu-overlay.active{
opacity:1;
visibility:visible;
}

/* IMPORTANT : ne pas casser desktop */
@media(min-width:901px){
.mobile-menu,
.menu-overlay{
display:none !important;
}
}










/* ============================
MOBILE
============================ */

@media(max-width:900px){

/* cacher actions desktop */


.header-actions .btn-contact{
display:none;
}

.header-actions .cart-icon{
display:none;
}

/* afficher actions mobile */
.mobile-actions{
display:flex;
flex-direction:column;
gap:15px;
margin-top:20px;
}

/* hamburger visible */
.hamburger{
display:flex;
}

}








.toast{
position:fixed;
bottom:30px;
right:30px;
background:#17c3b2;
color:white;
padding:15px 20px;
border-radius:8px;
opacity:0;
transform:translateY(20px);
transition:0.3s;
z-index:9999;
}

.toast.show{
opacity:1;
transform:translateY(0);
}