/* Header */
header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
}

/* Barre de navigation */
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;   /* ✅ aligne verticalement */
  padding: 10px 20px;    /* ✅ réduit la hauteur de la barre blanche */
  max-height: 150px;      /* ✅ empêche qu’elle prenne trop de place */
}

/* Bloc logo + texte */
.brand {
  display: flex;
  align-items: center;  
  gap: 12px;
  padding-left: 15px; /* ajuste selon ton rendu */
}

/* Logo */
.logo {
  height: 250px;
  width: auto;
  flex-shrink: 0;
  margin-top: 25px;
 
}


/* Texte à côté du logo */
.brand .title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #0047AB;
}

.brand .subtitle {
  font-size: 0.9rem;
  color: #555;
}
#contact {
  scroll-margin-top: 150px; /* adapte à la hauteur de ton header */
}
/* --- Services icons + uniform cards + hover color change --- */
:root { --accent: #0047AB; --accent-2: #ff6600; }
.grid-3 .card {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:240px;
  padding:22px;
  border-radius:12px;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow:0 10px 26px rgba(11,23,36,0.04);
  background: #fff;
}
.service-icon img {
  width:56px;
  height:56px;
  display:block;
  margin-bottom:12px;
  transition: transform 0.25s ease, filter 0.25s ease, opacity 0.25s ease;
  color: var(--accent);
}
.grid-3 .card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(11,23,36,0.08); }
.grid-3 .card:hover .service-icon img { /* change color to orange via color on img (SVG uses currentColor) */ color: var(--accent-2); transform: scale(1.04); }
/* ensure img uses currentColor in svg */
.service-icon img { color: var(--accent); }
.grid-3 { display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:22px; }

/* --- Contact elegant card --- */
.contact-container { display:flex; gap:24px; align-items:flex-start; max-width:1100px; margin:0 auto; padding:24px; }
.contact-card--elegant { background:#fff; padding:20px; border-radius:12px; box-shadow:0 10px 30px rgba(11,23,36,0.05); min-width:280px; max-width:420px; }
.contact-item { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.icon-circle { width:48px; height:48px; border-radius:50%; background:var(--accent-2); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition: background 0.25s ease; }
.icon-circle img { width:20px; height:20px; display:block; filter: brightness(0) invert(1); }
.contact-text a { color:var(--ink); font-weight:600; text-decoration:none; word-break:break-word; white-space:normal; }
/* Hover invert colors */
.contact-card--elegant .icon-circle:hover { background: var(--accent); }
.contact-card--elegant .icon-circle:hover img { filter: none; }
/* Form styling */
.contact-form { flex:1; min-width:300px; background:#fff; padding:18px; border-radius:12px; box-shadow:0 10px 30px rgba(11,23,36,0.04); }
.contact-form input, .contact-form textarea { width:100%; padding:12px; border-radius:10px; border:1px solid #e6e9ee; margin-bottom:12px; font-family:inherit; }
.contact-form .btn-primary { width:100%; background:var(--accent); border:none; color:#fff; padding:12px; border-radius:10px; font-weight:700; cursor:pointer; }

/* Responsive adjustments */
@media (max-width: 900px) {
  .contact-container { flex-direction:column; padding:18px; }
  .contact-form { width:100%; }
  .grid-3 .card { min-height: auto; }
}
/* Centrer la carte contact */
.contact-container {
  display: flex;
  justify-content: center;   /* centre horizontalement */
  align-items: center;       /* aligne verticalement */
  padding: 40px 20px;
}

/* Ajuster la carte */
.contact-card--elegant {
  background: #fff;
  padding: 28px;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(11,23,36,0.08);
  text-align: left;          /* garde texte aligné */
  max-width: 500px;          /* largeur max */
  width: 100%;
}
.contact-item {
  margin-bottom: 18px; 
}

.contact-note {
  margin-top: 10px;
  font-size: 0.95rem;  
  color: var(--muted); 
  line-height: 1.5;    
}
.legend {
  background: white;
  padding: 10px 14px;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(0,0,0,0.15);
  font-size: 14px;
  line-height: 1.5;
  color: #333;
}
.legend h4 {
  margin: 0 0 6px;
  font-size: 15px;
  color: #0047AB; /* ton bleu accent */
}
.legend i {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 8px;
  vertical-align: middle;
  border-radius: 3px;
}
/* MAP */

.map-wrap {
  position: relative;
}

#map {
  position: relative;
  z-index: 2; /* La carte reste au-dessus */
}

.zone-villes-hidden {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1; /* Le texte est derrière */
  opacity: 0; /* Invisible pour l'utilisateur */
  font-size: 1px; /* Compact pour ne pas gêner la mise en page */
  line-height: 1;
}
#map {
  height: 480px;
  width: 100%;
  max-width: 1000px; /* évite qu’elle déborde */
  margin: 0 auto; /* centre la carte */
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}
.zone-villes-hidden {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;       /* largeur minimale */
  height: 1px;      /* hauteur minimale */
  overflow: hidden; /* cache tout débordement */
  opacity: 0;       /* invisible */
  z-index: 0;       /* derrière la carte */
  font-size: 0;     /* évite toute prise d’espace résiduelle */
  line-height: 0;   /* idem */
}
/* Grid 2 colonnes pour les zones */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  max-width: 700px;
  margin: 30px auto 0;
}

/* Mini-cards */
.mini-card {
  text-align: center;
  padding: 18px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}

.mini-card .service-icon img {
  width: 40px;
  height: 40px;
  margin-bottom: 10px;
}

.mini-card h4 {
  color: var(--accent);
  margin-bottom: 6px;
  font-size: 1.1rem;
}
.mini-card p {
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.4;
}
header {
  position: sticky;
  top: 0;
  z-index: 1000; 
  background: #fff; 
}
.leaflet-container {
  z-index: 0;
}
/* Conteneur global des cartes de prix */
.pricing-wrapper {
  display: flex;
  gap: 24px;
  justify-content: center;
  margin-top: 240px;   /* espace augmenté entre le texte et les blocs */
}

/* Carte tarifaire */
.price-card {
  background: #fff;
  padding: 24px;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(0,0,0,0.06);
  text-align: center;
  position: relative;
  animation: cardPulse 2.5s infinite;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Décalage de l'animation pour la 2e carte */
.price-card:nth-child(2) {
  animation-delay: 1.2s;
}

/* Effet au survol */
.price-card:hover {
  transform: scale(1.04);
  box-shadow: 0 14px 35px rgba(0,0,0,0.12);
}

/* Animation Pulse pour les blocs */
@keyframes cardPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}

/* Icône cadeau */
.gift {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  padding: 6px;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.gift-icon {
  width: 28px;
  height: 28px;
  animation: pulse 1.8s infinite;
}

/* Animation Pulse pour l’icône cadeau */
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}

/* Zone : en bleu */
.zone {
  margin-top: 30px;
  color: var(--accent);   /* ton bleu */
  font-size: 1.1rem;
  font-weight: 700;
}

/* Prix */

.tarifs-subtitle {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 600;
  color: #ff7a2d;
  background: #ff7a2d75;
  padding: 6px 14px;
  border-radius: 8px;
  margin-top: 10px;
}
#tarifs {
  scroll-margin-top: 280px; 
}
.price {
  font-size: 1.5rem;
  margin: 12px 0;
}
.price .old {
  text-decoration: line-through;
  color: #999;
  font-size: 1rem;
  margin-right: 8px;
}
.price .promo {
  color: var(--accent-2); /* orange pour le tarif spécial */
  font-weight: 700;
  font-size: 1.6rem;
}

/* Phrase en bas : mise en évidence */
.note {
  font-size: 0.95rem;
  color: var(--accent); /* bleu pour cohérence */
  margin-top: 8px;
  font-weight: 600;     /* gras */
  text-decoration: underline; /* souligné */
}
/* Barre promo fine sous le header */
.promo-strip {
  background: linear-gradient(135deg, #ff7a2d, #ff6600);
  color: #fff;
  text-align: center;
  padding: 8px 12px;
  font-size: 1rem;
  font-weight: 600;
  animation: blink 2s infinite;
  width: 100%;
  display: block;
}

.promo-strip strong {
  background: #fff;
  color: #0047AB;
  padding: 2px 6px;
  border-radius: 4px;
  margin: 0 6px;
}

.promo-strip .btn-call {
  margin-left: 10px;
  background: #0047AB;
  color: #fff;
  padding: 4px 10px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 700;
}

.promo-strip .btn-call:hover {
  background: #002d6d;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.75; }
}
.promo-strip .btn-tarifs {
  margin-left: 10px;
  background: #ff7a2d;
  color: #fff;
  padding: 4px 10px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 700;
  transition: background 0.3s ease;
}

.promo-strip .btn-tarifs:hover {
  background: #cc5200;
}

/* Footer */

footer {
  background: #f8f9fa; 
  padding: 20px;
  align-items: center;
}

.footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

footer .footer-logo{
  height: 150px; 
  width: auto;    
}
/* Version mobile : header + promo */
@media (max-width: 768px) {
  .nav {
    flex-direction: column; /* passe en colonne */
    align-items: center;
    padding: 10px;
    gap: 10px;
    max-height: none; /* supprime la contrainte de hauteur */
  }

 #contact {
    scroll-margin-top: 350px; /* ajuste selon la hauteur réelle du header + promo sur mobile */
  }
  #tarifs {
    scroll-margin-top: 350px; /* ajuste selon la hauteur réelle du header + promo sur mobile */
  }
  .brand {
    flex-direction: column; /* logo au-dessus du texte */
    align-items: center;
    text-align: center;
    gap: 0px;
  }

  .logo {
    height: 100px; /* réduit le logo */
    margin: 0 auto;
    display: block;
  }
   .brand .title {
    margin-top: 0px; /* rapproche le texte du logo */
    transform: translateY(-25px);
    font-size: 1.2rem;
    font-weight: bold;
  }

  .brand .subtitle {
    font-size: 0.9rem;
    margin-top: 2px; /* réduit l'espace sous le titre */
    transform: translateY(-25px);
  }
  .top-actions {
    display: flex;
    flex-direction: column; /* numéro + bouton l’un sous l’autre */
    gap: 8px;
  }

  .promo-strip {
    flex-direction: column; /* empile le texte et les boutons */
    font-size: 0.9rem;
    text-align: center;
  }

  .promo-strip .btn-call,
  .promo-strip .btn-tarifs {
    display: block;
    margin: 6px auto;
  }
}