:root{--primary-color:#0077b6;--primary-dark:#005f8f;--secondary-color:#4ecdc4;--accent-color:#ffb703;--text-color:#333;--light-text:#6c757d;--light-bg:#f8f9fa;--dark-bg:#212529;--success:#28a745;--warning:#ffc107;--danger:#dc3545;--white:#ffffff;--box-shadow:0 5px 15px rgba(0,0,0,0.1);--transition:all 0.3s ease-in-out;}*{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;}body{font-family:'Poppins',sans-serif;line-height:1.6;color:var(--text-color);background-color:var(--white);}h1,h2,h3,h4,h5,h6{margin-bottom:0.8rem;line-height:1.2;font-weight:600;}a{text-decoration:none;color:var(--primary-color);transition:var(--transition);}a:hover{color:var(--primary-dark);}p{margin-bottom:1rem;color:var(--light-text);}ul{list-style:none;}img{max-width:100%;height:auto;display:block;}.container{width:90%;max-width:1200px;margin:0 auto;padding:0 15px;}.section-header{text-align:center;margin-bottom:3rem;}.section-header h2{font-size:2.5rem;margin-bottom:1rem;position:relative;display:inline-block;}.section-header h2::after{content:'';position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:60px;height:3px;background-color:var(--secondary-color);}.section-header p{font-size:1.1rem;max-width:600px;margin:0 auto;}section{padding:5rem 0;}.btn{display:inline-block;padding:12px 28px;font-size:1rem;font-weight:500;text-align:center;border-radius:50px;border:none;cursor:pointer;transition:var(--transition);}.primary-btn{background-color:var(--primary-color);color:var(--white);}.primary-btn:hover{background-color:var(--primary-dark);color:var(--white);}.secondary-btn{background-color:transparent;border:2px solid var(--primary-color);color:var(--primary-color);}.secondary-btn:hover{background-color:var(--primary-color);color:var(--white);}header{position:fixed;top:0;left:0;width:100%;background-color:var(--white);z-index:1000;box-shadow:var(--box-shadow);padding:1rem 0;}header .container{display:flex;justify-content:space-between;align-items:center;}.logo h1{font-size:1.8rem;color:var(--primary-color);margin-bottom:0;}.logo-img{max-height:50px;width:auto;}nav ul{display:flex;}nav ul li{margin-left:2rem;}nav ul li a{color:var(--text-color);font-weight:500;position:relative;}nav ul li a:hover,nav ul li a.active{color:var(--primary-color);}nav ul li a.active::after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:2px;background-color:var(--primary-color);}.mobile-menu-btn{display:none;cursor:pointer;font-size:1.5rem;}.hero{height:100vh;background:linear-gradient(rgba(0,0,0,0.6),rgba(0,0,0,0.6)),url('./hero.png') no-repeat center center/cover;color:var(--white);display:flex;align-items:center;text-align:center;}.hero-content{max-width:800px;margin:0 auto;}.hero-content h1{font-size:3.5rem;margin-bottom:1.5rem;}.hero-content p{font-size:1.2rem;margin-bottom:2rem;color:#f8f9fa;}.cta-buttons{display:flex;justify-content:center;gap:1rem;}.services{background-color:var(--light-bg);}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;}.service-card{background-color:var(--white);padding:2rem;border-radius:10px;text-align:center;box-shadow:var(--box-shadow);transition:var(--transition);}.service-card:hover{transform:translateY(-10px);}.service-card .icon{width:70px;height:70px;background-color:rgba(0,119,182,0.1);display:flex;justify-content:center;align-items:center;margin:0 auto 1.5rem;border-radius:50%;}.service-card .icon i{font-size:1.8rem;color:var(--primary-color);}.service-card h3{margin-bottom:1rem;}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}.about-features{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:1.5rem;}.feature{display:flex;align-items:center;}.feature i{color:var(--success);margin-right:10px;font-size:1.2rem;}.about-image{border-radius:10px;overflow:hidden;box-shadow:var(--box-shadow);}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;}.team-card{background-color:var(--white);border-radius:10px;overflow:hidden;box-shadow:var(--box-shadow);text-align:center;transition:var(--transition);}.team-card:hover{transform:translateY(-10px);}.team-image{height:300px;overflow:hidden;}.team-image img{width:100%;height:100%;object-fit:cover;transition:var(--transition);}.team-card:hover .team-image img{transform:scale(1.1);}.team-card h3{margin-top:1.5rem;padding:0 1rem;}.position{color:var(--primary-color);font-weight:500;margin-bottom:0.8rem;}.bio{padding:0 1.5rem;margin-bottom:1.5rem;}.social-links{display:flex;justify-content:center;gap:15px;margin-bottom:1.5rem;}.social-links a{width:40px;height:40px;background-color:rgba(0,119,182,0.1);border-radius:50%;display:flex;justify-content:center;align-items:center;transition:var(--transition);}.social-links a i{color:var(--primary-color);font-size:1rem;}.social-links a:hover{background-color:var(--primary-color);}.social-links a:hover i{color:var(--white);}.testimonials{background-color:var(--light-bg);}.testimonials-slider{max-width:800px;margin:0 auto;position:relative;overflow:hidden;}.testimonial-item{padding:2rem;background-color:var(--white);border-radius:10px;box-shadow:var(--box-shadow);margin:0 1rem;}.quote{margin-bottom:1.5rem;}.quote i{font-size:2rem;color:var(--primary-color);opacity:0.3;}.client{display:flex;align-items:center;}.client-image{width:60px;height:60px;border-radius:50%;overflow:hidden;margin-right:15px;}.client-info h4{margin-bottom:0.2rem;}.testimonial-controls{display:flex;justify-content:center;gap:20px;margin-top:2rem;}.testimonial-controls button{width:50px;height:50px;border-radius:50%;background-color:var(--white);border:none;box-shadow:var(--box-shadow);cursor:pointer;display:flex;justify-content:center;align-items:center;transition:var(--transition);}.testimonial-controls button:hover{background-color:var(--primary-color);}.testimonial-controls button:hover i{color:var(--white);}.testimonial-controls button i{color:var(--primary-color);}.appointment-container{display:grid;grid-template-columns:3fr 2fr;gap:40px;}.appointment-form{background-color:var(--white);padding:2rem;border-radius:10px;box-shadow:var(--box-shadow);}.form-group{margin-bottom:1.5rem;}.form-group label{display:block;margin-bottom:0.5rem;font-weight:500;}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:5px;font-family:inherit;font-size:1rem;transition:var(--transition);}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);}.appointment-info{background-color:var(--primary-color);color:var(--white);padding:2rem;border-radius:10px;}.appointment-info h3{margin-bottom:1.5rem;color:var(--white);}.appointment-info ul{margin-bottom:2rem;}.appointment-info ul li{margin-bottom:1rem;display:flex;align-items:flex-start;}.appointment-info ul li i{margin-right:10px;margin-top:5px;}.working-hours{margin-bottom:2rem;}.hours-item{display:flex;justify-content:space-between;margin-bottom:0.8rem;}.emergency-contact i{margin-right:10px;}.contact-container{display:grid;grid-template-columns:1fr 1fr;gap:40px;}.contact-info{background-color:var(--white);padding:2rem;border-radius:10px;box-shadow:var(--box-shadow);}.info-item{display:flex;margin-bottom:1.5rem;}.info-item i{font-size:1.5rem;color:var(--primary-color);margin-right:20px;margin-top:5px;}.map{height:400px;border-radius:10px;overflow:hidden;box-shadow:var(--box-shadow);}.faq-container{max-width:800px;margin:0 auto;}.faq-item{margin-bottom:1rem;border:1px solid #ddd;border-radius:10px;overflow:hidden;}.faq-question{padding:1.5rem;background-color:var(--white);cursor:pointer;display:flex;justify-content:space-between;align-items:center;}.faq-question h3{margin-bottom:0;font-size:1.1rem;}.toggle-icon{transition:var(--transition);}.faq-answer{padding:0 1.5rem;max-height:0;overflow:hidden;transition:var(--transition);}.faq-item.active .faq-answer{padding:1.5rem;max-height:1000px;}.faq-item.active .toggle-icon{transform:rotate(45deg);}.newsletter{background-color:var(--dark-bg);color:var(--white);text-align:center;padding:3rem 0;}.newsletter-content{max-width:600px;margin:0 auto;}.newsletter-content h2{color:var(--white);}.newsletter-content p{color:#adb5bd;margin-bottom:2rem;}.newsletter-form{display:flex;gap:10px;}.newsletter-form input{flex:1;padding:12px 20px;border:none;border-radius:50px;font-family:inherit;font-size:1rem;}.newsletter-form input:focus{outline:none;}footer{background-color:var(--primary-dark);color:var(--white);padding:5rem 0 0;}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px;margin-bottom:3rem;}.footer-logo h2{color:var(--white);margin-bottom:1rem;}.footer-logo p{color:#adb5bd;}.footer-links h3,.footer-services h3,.footer-contact h3{color:var(--white);margin-bottom:1.5rem;font-size:1.2rem;}.footer-links ul li,.footer-services ul li{margin-bottom:0.8rem;}.footer-links ul li a,.footer-services ul li a{color:#adb5bd;transition:var(--transition);}.footer-links ul li a:hover,.footer-services ul li a:hover{color:var(--white);padding-left:5px;}.footer-contact ul li{display:flex;margin-bottom:1rem;color:#adb5bd;}.footer-contact ul li i{margin-right:10px;color:var(--secondary-color);}.footer-contact .social-links{margin-top:1.5rem;}.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center;font-size:0.9rem;}.footer-bottom p{margin-bottom:0;color:#adb5bd;}.footer-bottom-links a{color:#adb5bd;margin-left:1.5rem;transition:var(--transition);}.footer-bottom-links a:hover{color:var(--white);}@media (max-width:991px){.hero-content h1{font-size:2.8rem;}.about-content,.appointment-container,.contact-container{grid-template-columns:1fr;}.about-content .about-image{order:-1;}.map{height:300px;}}@media (max-width:768px){header{padding:1rem 0;}.logo h1{font-size:1.5rem;}nav{position:fixed;top:0;right:-100%;width:250px;height:100vh;background-color:var(--white);z-index:1001;box-shadow:-5px 0 15px rgba(0,0,0,0.1);transition:var(--transition);padding:4rem 0 0 2rem;}nav.active{right:0;}nav ul{flex-direction:column;}nav ul li{margin:1rem 0;}.mobile-menu-btn{display:block;z-index:1002;}.hero-content h1{font-size:2.3rem;}.hero-content p{font-size:1rem;}.cta-buttons{flex-direction:column;gap:0.8rem;}.cta-buttons a{width:100%;}.section-header h2{font-size:2rem;}.newsletter-form{flex-direction:column;}.newsletter-form .btn{width:100%;}.footer-bottom{flex-direction:column;text-align:center;}.footer-bottom-links{margin-top:1rem;}.footer-bottom-links a{margin:0 0.5rem;}}.icon{font-size:3rem;color:#4A90E2;margin-bottom:1rem;}.service-card:hover .icon{color:#E74C3C;transform:scale(1.1);transition:all 0.3s ease;}


/* === Auto-injected: swap text links for icons on small screens === */
.call-link .icon, .whatsapp-link .icon { display: none; vertical-align: middle; }
.call-link .icon img, .whatsapp-link .icon img { width: 20px; height: 20px; }
@media (max-width: 640px) {
  .call-link .label, .whatsapp-link .label { display: none !important; }
  .call-link .icon, .whatsapp-link .icon { display: inline-block !important; }
}



/* === Patch to avoid duplicate icons on mobile === */
@media (max-width: 640px) {
  /* Hide any pre-existing inline icons that are not in our .icon wrapper */
  .call-link > img, .call-link > svg, .call-link > i,
  .whatsapp-link > img, .whatsapp-link > svg, .whatsapp-link > i { 
    display: none !important;
  }
}



/* === Patch: enlarge WhatsApp icon on mobile & unify tap target === */
@media (max-width: 640px) {
  /* Make icons clearly visible on high-DPR phones */
  .call-link .icon img,
  .whatsapp-link .icon img {
    width: 28px;
    height: 28px;
  }
  /* Ensure consistent clickable area and vertical centering */
  .call-link .icon,
  .whatsapp-link .icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
  }
  /* Optional: small spacing with the menu items */
  .call-link, .whatsapp-link { 
    padding: 6px 8px;
  }
}



/* === Ensure uniform SVG icon sizing on mobile === */
@media (max-width: 640px) {
  .call-link .icon img,
  .whatsapp-link .icon img {
    width: 28px;
    height: 28px;
  }
  .call-link .icon, .whatsapp-link .icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
  }
}



/* === Google Reviews (Testimonials) === */
#gmaps-reviews { margin-top: 1rem; }
.gmaps-review-headline { display:flex; align-items:baseline; gap:1rem; }
.gmaps-review-headline h3 { margin:0; }
.gmaps-review-summary { opacity:0.8; }
.gmaps-review-list { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 12px; }
.gmaps-review-card { border: 1px solid rgba(0,0,0,.08); border-radius: 12px; padding: 14px; background: #fff; }
.gmaps-review-header { display:flex; gap:10px; align-items:center; margin-bottom: 8px; }
.gmaps-review-avatar { width:36px; height:36px; border-radius:50%; object-fit:cover; }
.gmaps-review-author { font-weight:600; }
.gmaps-stars .star { font-size: 15px; line-height: 1; }
.gmaps-stars .full { color: #F6B01E; } /* gold */
.gmaps-stars .half { color: #F6B01E; opacity: .6; }
.gmaps-stars .empty { color: #C7C7C7; }
.gmaps-review-date { margin-left: 8px; opacity: .7; font-size: 12px; }
.gmaps-review-text { margin: 0; color: #333; }
.gmaps-review-footer { margin-top: 10px; }
.gmaps-review-more { text-decoration: underline; }
.gmaps-review-error { padding: 12px; border-radius: 8px; background: #fff3cd; border: 1px solid #ffeeba; color: #856404; }
@media (max-width: 640px) {
  .gmaps-review-list { grid-template-columns: 1fr; }
}

/* Contact: center Google Map & remove right whitespace (desktop) */
#contact .contact-map-center {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 12px;
}
#contact .contact-map-center iframe {
  display: block;
  width: 100% !important;
  height: 480px;
  border: 0;
}
/* Si une grille/columning gardait une colonne vide à droite */
@media (min-width: 992px) {
  #contact [class*="col-"],
  #contact .column,
  #contact .col,
  #contact .grid > * {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}
@media (max-width: 640px) {
  #contact .contact-map-center iframe { height: 360px; }
}
