:root{
  --bleu-fonce:#0b3d91;
  --bleu-clair:#29abe2;
  --orange:#f7941d;
  --vert:#39b54a;
  --gris-texte:#4a4a4a;
  --gris-clair:#f5f7fa;
  --blanc:#ffffff;
}

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

body{
  font-family:'Segoe UI',Arial,Helvetica,sans-serif;
  color:var(--gris-texte);
  line-height:1.6;
  background:var(--blanc);
}

a{text-decoration:none;color:inherit;}
ul{list-style:none;}
img{max-width:100%;display:block;}

.container{
  max-width:1150px;
  margin:0 auto;
  padding:0 24px;
}

/* Header */
header{
  position:sticky;top:0;z-index:100;
  background:var(--blanc);
  box-shadow:0 2px 10px rgba(0,0,0,0.07);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 24px;
  max-width:1150px;margin:0 auto;
}
.logo-link{display:flex;align-items:center;gap:10px;}
.logo-img{display:none;height:56px;width:auto;}
.logo-fallback{
  display:flex;align-items:center;gap:10px;line-height:1.1;
}
.brand-text{display:flex;flex-direction:column;line-height:1.15;}
.logo-fallback .brand{
  font-size:22px;font-weight:800;letter-spacing:.5px;
  background:linear-gradient(90deg,var(--bleu-fonce),var(--bleu-clair) 40%,var(--orange) 60%,var(--vert) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.logo-fallback .sub{font-size:11px;color:#888;letter-spacing:2px;text-transform:uppercase;}

nav ul{display:flex;gap:28px;}
nav a{
  font-weight:600;font-size:15px;color:var(--gris-texte);
  padding:8px 2px;border-bottom:3px solid transparent;
  transition:.2s;
}
nav a:hover,nav a.active{
  color:var(--bleu-fonce);
  border-bottom-color:var(--orange);
}

.menu-toggle{display:none;background:none;border:none;font-size:26px;cursor:pointer;color:var(--bleu-fonce);}

/* Hero */
.hero{
  background:linear-gradient(120deg,var(--bleu-fonce) 0%,var(--bleu-clair) 45%,var(--orange) 75%,var(--vert) 100%);
  color:var(--blanc);
  padding:90px 24px;
  text-align:center;
}
.hero h1{font-size:2.6rem;margin-bottom:16px;font-weight:800;}
.hero p{font-size:1.15rem;max-width:700px;margin:0 auto 30px;opacity:.95;}
.hero-small{padding:60px 24px;}
.hero-small h1{font-size:2.1rem;}

.btn{
  display:inline-block;padding:14px 32px;border-radius:30px;
  font-weight:700;font-size:15px;transition:.2s;
}
.btn-primary{background:var(--orange);color:var(--blanc);}
.btn-primary:hover{background:#e07f00;}
.btn-outline{background:transparent;border:2px solid var(--blanc);color:var(--blanc);margin-left:12px;}
.btn-outline:hover{background:var(--blanc);color:var(--bleu-fonce);}

/* Sections */
section{padding:70px 0;}
.section-title{
  text-align:center;margin-bottom:12px;font-size:2rem;color:var(--bleu-fonce);font-weight:800;
}
.section-subtitle{
  text-align:center;color:#777;max-width:600px;margin:0 auto 45px;
}
.bg-light{background:var(--gris-clair);}

/* Services grid */
.grid{
  display:grid;gap:28px;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.card{
  background:var(--blanc);
  border-radius:14px;
  padding:32px 26px;
  box-shadow:0 4px 18px rgba(0,0,0,0.06);
  border-top:4px solid var(--bleu-clair);
  transition:.25s;
}
.card:hover{transform:translateY(-6px);box-shadow:0 10px 26px rgba(0,0,0,0.12);}
.card .icon{
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--bleu-fonce),var(--bleu-clair));
  color:#fff;font-size:26px;margin-bottom:18px;
}
.card h3{color:var(--bleu-fonce);margin-bottom:10px;font-size:1.2rem;}
.card p{font-size:.95rem;color:#666;}

/* Alternating colored top borders for variety */
.card:nth-child(2n){border-top-color:var(--orange);}
.card:nth-child(2n) .icon{background:linear-gradient(135deg,var(--orange),#ffb347);}
.card:nth-child(3n){border-top-color:var(--vert);}
.card:nth-child(3n) .icon{background:linear-gradient(135deg,var(--vert),#7ed957);}

/* Photo gallery */
.gallery{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;
}
.gallery figure{
  border-radius:14px;overflow:hidden;background:var(--gris-clair);
  box-shadow:0 4px 14px rgba(0,0,0,0.08);
}
.gallery img{width:100%;height:220px;object-fit:cover;}
.gallery figcaption{padding:12px 16px;font-size:.9rem;color:#666;}
.gallery .placeholder{
  height:220px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#eef3f9,#e4ecf5);color:#9aa7b5;font-size:.9rem;text-align:center;padding:10px;
}

/* Produits / Boutique */
.produits-grid{
  display:grid;gap:28px;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}
.produit-card{
  background:var(--blanc);border-radius:14px;overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,0.07);
  display:flex;flex-direction:column;
}
.produit-img{
  height:170px;background:linear-gradient(135deg,#eef3f9,#e4ecf5);
  display:flex;align-items:center;justify-content:center;color:#9aa7b5;font-size:2rem;
}
.produit-body{padding:20px;flex:1;display:flex;flex-direction:column;}
.produit-body h3{color:var(--bleu-fonce);font-size:1.05rem;margin-bottom:6px;}
.produit-body .cat{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--orange);font-weight:700;margin-bottom:10px;}
.produit-body p{font-size:.9rem;color:#666;flex:1;}
.produit-footer{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding-top:14px;border-top:1px solid #eee;
}
.stock-badge{
  font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:20px;
  background:rgba(57,181,74,.12);color:var(--vert);
}
.prix{font-weight:800;color:var(--bleu-fonce);font-size:1.05rem;}

.notice-box{
  background:#fff8ec;border:1px dashed var(--orange);border-radius:10px;
  padding:20px 24px;margin-bottom:40px;font-size:.92rem;color:#8a5a00;
}

/* Contact */
.contact-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;
}
.contact-info .item{display:flex;gap:16px;margin-bottom:26px;}
.contact-info .icon{
  width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--bleu-fonce),var(--bleu-clair));
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;
}
.contact-info h4{color:var(--bleu-fonce);margin-bottom:2px;}
.contact-info p, .contact-info a{color:#666;font-size:.95rem;}

form{background:var(--gris-clair);padding:32px;border-radius:14px;}
form label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--bleu-fonce);}
form input, form textarea, form select{
  width:100%;padding:12px 14px;margin-bottom:18px;border:1px solid #dde3ea;
  border-radius:8px;font-family:inherit;font-size:.95rem;
}
form textarea{resize:vertical;min-height:110px;}
form button{
  background:var(--orange);color:#fff;border:none;padding:14px 30px;
  border-radius:30px;font-weight:700;cursor:pointer;font-size:15px;
}
form button:hover{background:#e07f00;}

/* Activités bar on home */
.activites-bar{
  display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:30px;
}
.activites-bar span{
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);
  padding:8px 18px;border-radius:20px;font-size:.85rem;font-weight:600;
}

/* CTA band */
.cta-band{
  background:linear-gradient(90deg,var(--bleu-fonce),var(--bleu-clair));
  color:#fff;text-align:center;padding:55px 24px;
}
.cta-band h2{font-size:1.7rem;margin-bottom:12px;}
.cta-band p{margin-bottom:24px;opacity:.9;}

/* Footer */
footer{background:#0a1f3d;color:#c9d3e0;padding:50px 0 20px;}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:30px;
}
.footer-grid h4{color:#fff;margin-bottom:16px;font-size:1rem;}
.footer-grid p, .footer-grid a{font-size:.88rem;color:#a9b6c9;line-height:2;}
.footer-grid a:hover{color:var(--orange);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);padding-top:20px;text-align:center;font-size:.8rem;color:#7f8ea3;
}

@media(max-width:820px){
  .contact-wrap{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
}

@media(max-width:768px){
  nav{
    position:fixed;top:80px;left:0;right:0;background:#fff;
    flex-direction:column;box-shadow:0 8px 20px rgba(0,0,0,.1);
    transform:translateY(-150%);opacity:0;transition:.25s;
  }
  nav.open{transform:translateY(0);opacity:1;}
  nav ul{flex-direction:column;padding:20px 24px;gap:6px;}
  nav a{display:block;padding:12px 0;}
  .menu-toggle{display:block;}
  .hero h1{font-size:2rem;}
  .btn-outline{margin-left:0;margin-top:12px;}
}
