*{box-sizing:border-box;}
    html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
    @media(max-width:640px){html{font-size:14px;}}
    body{overflow-x:hidden;max-width:100vw;}
    img{max-width:100%;height:auto;}
    *:focus-visible{outline:2px solid #1e3a5f;outline-offset:2px;}

    .page{display:none;}
    .page.active{display:block;}
    .fade-in{animation:fadeIn 0.5s ease-in-out;}
    @keyframes fadeIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
    .hero-bg{background:linear-gradient(135deg,#1e3a5f 0%,#152a45 100%);}
    .service-card{transition:transform .3s ease,box-shadow .3s ease;}
    .service-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(30,58,95,.1);}
    .carousel{position:relative;overflow:hidden;border-radius:1rem;box-shadow:0 10px 25px rgba(0,0,0,.15);}
    .carousel-container{display:flex;transition:transform .8s ease-in-out;}
    .carousel-slide{min-width:100%;height:250px;display:flex;align-items:center;justify-content:center;position:relative;color:white;text-align:center;background-size:cover;background-position:center;background-repeat:no-repeat;}
    @media(max-width:768px){.carousel-slide{height:200px;}}
    @media(max-width:480px){.carousel-slide{height:180px;}}
    .carousel-slide::before{content:'';position:absolute;inset:0;background:linear-gradient(45deg,rgba(0,0,0,.3) 0%,rgba(30,58,95,.4) 100%);}
    .carousel-content{position:relative;z-index:2;padding:1rem;}
    @media(min-width:768px){.carousel-content{padding:2rem;}}
    .carousel-dots{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;}
    .carousel-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:background .3s ease;}
    .carousel-dot.active{background:white;}
    .auto-carousel{position:relative;overflow:hidden;border-radius:1rem;height:200px;}
    @media(max-width:768px){.auto-carousel{height:150px;}}
    @media(max-width:480px){.auto-carousel{height:120px;}}
    .auto-carousel-track{display:flex;animation:autoSlide 25s infinite linear;height:100%;}
    .auto-carousel-slide{min-width:300px;height:100%;margin-right:1rem;border-radius:.5rem;display:flex;align-items:center;justify-content:center;position:relative;color:white;font-weight:bold;background-size:cover;background-position:center;flex-shrink:0;}
    @media(max-width:768px){.auto-carousel-slide{min-width:250px;}}
    @media(max-width:480px){.auto-carousel-slide{min-width:200px;}}
    .auto-carousel-slide::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.3);border-radius:inherit;}
    .auto-carousel-slide span{position:relative;z-index:2;padding:0 1rem;text-align:center;font-size:.9rem;}
    @media(max-width:768px){.auto-carousel-slide span{font-size:.8rem;}}
    @keyframes autoSlide{0%{transform:translateX(0);}100%{transform:translateX(calc(-300px * 6 - 6rem));}}
    @media(max-width:768px){@keyframes autoSlide{0%{transform:translateX(0);}100%{transform:translateX(calc(-250px * 6 - 6rem));}}}
    @media(max-width:480px){@keyframes autoSlide{0%{transform:translateX(0);}100%{transform:translateX(calc(-200px * 6 - 6rem));}}}
    .auto-carousel:hover .auto-carousel-track{animation-play-state:paused;}
    .floating{animation:floating 3s ease-in-out infinite;}
    @keyframes floating{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
    .gold-text{background:linear-gradient(135deg,#c9a227 0%,#ddb94d 50%,#b8941f 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
    .gold-text-static{color:#c9a227;}
    .feature-highlight{background:linear-gradient(45deg,#1e3a5f,#2d5a87);color:white;padding:6px 12px;border-radius:20px;font-size:.8rem;margin:3px;display:inline-block;}
    @media(max-width:640px){.feature-highlight{padding:4px 8px;font-size:.7rem;margin:2px;}}
    
    .prestation-hero{position:relative;min-height:400px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
    .prestation-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(15,23,42,0.85) 0%,rgba(30,58,95,0.75) 100%);}
    .prestation-hero-content{position:relative;z-index:2;text-align:center;color:white;padding:2rem;}
    .prestation-section{padding:4rem 0;}
    @media(max-width:768px){.prestation-hero{min-height:300px;}.prestation-section{padding:2rem 0;}}
    .prestation-card{background:white;border-radius:1rem;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1);transition:all 0.3s ease;}
    .prestation-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,0.1);}
    .prestation-card img{width:100%;height:200px;object-fit:cover;}
    .process-step{position:relative;padding-left:3rem;}
    .process-step::before{content:attr(data-step);position:absolute;left:0;top:0;width:2rem;height:2rem;background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:0.875rem;}
    .process-step::after{content:'';position:absolute;left:1rem;top:2.5rem;bottom:-1rem;width:2px;background:#E5E7EB;}
    .process-step:last-child::after{display:none;}
    .gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;}
    .gallery-item{position:relative;border-radius:0.75rem;overflow:hidden;aspect-ratio:4/3;}
    .gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease;}
    .gallery-item:hover img{transform:scale(1.05);}
    .gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.7) 0%,transparent 50%);display:flex;align-items:flex-end;padding:1rem;opacity:0;transition:opacity 0.3s ease;}
    .gallery-item:hover .gallery-overlay{opacity:1;}
    .benefit-icon{width:60px;height:60px;background:linear-gradient(135deg,#1e3a5f,#2d5a87);border-radius:1rem;display:flex;align-items:center;justify-content:center;color:white;font-size:1.5rem;margin-bottom:1rem;}
    .cta-section{background:linear-gradient(135deg,#1e3a5f 0%,#152a45 100%);color:white;padding:4rem 0;text-align:center;}
    .breadcrumb{display:flex;align-items:center;gap:0.5rem;color:rgba(255,255,255,0.8);font-size:0.875rem;margin-bottom:1rem;}
    .breadcrumb a:hover{color:white;text-decoration:underline;}

    .mobile-nav-bar{display:none;}
    @media(max-width:1023px){
      .mobile-nav-bar{display:flex;align-items:center;justify-content:space-around;padding:4px 2px;background:#ffffff;border-bottom:1px solid #f1f5f9;}
      .mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 4px;border-radius:8px;transition:all 0.2s ease;min-width:48px;-webkit-tap-highlight-color:transparent;color:#94a3b8;text-decoration:none;}
      .mobile-nav-item:active{transform:scale(0.92);background:rgba(30,58,95,0.08);}
      .mobile-nav-item.active-mobile{color:#1e3a5f;background:rgba(30,58,95,0.08);}
      .mobile-nav-item i{font-size:13px;margin-bottom:1px;}
      .mobile-nav-item span{font-size:8px;font-weight:600;letter-spacing:0.2px;line-height:1.1;}
      nav{padding-bottom:0!important;}
      nav .container>.flex{padding-top:6px;padding-bottom:6px;}
      nav .container>.flex img{height:24px!important;}
      nav .container>.flex .text-xl,nav .container>.flex .text-lg{font-size:0.875rem!important;}
    }

    @media(max-width:768px){
      button,.carousel-dot,a{min-height:44px;min-width:44px;}
      input,select,textarea{font-size:16px;}
    }

    .hero-section{position:relative;width:100%;overflow:hidden;min-height:auto;}
    .hero-content-wrapper{width:100%;max-width:100%;padding-left:0.75rem;padding-right:0.75rem;}
    .hero-title{word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;line-height:1.25;}
    .hero-subtitle{line-height:1.5;}
    .hero-buttons{width:100%;}
    .hero-btn{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .hero-carousel-col{width:100%;max-width:100%;overflow:hidden;}
    .hero-carousel{width:100%;max-width:100%;}

    @media(max-width:639px){
      .hero-title{font-size:1.25rem!important;}
      .hero-subtitle{font-size:0.875rem!important;}
      .hero-section{padding-top:1rem!important;padding-bottom:1rem!important;}
      .hero-carousel{height:150px!important;}
      .hero-carousel .carousel-slide{height:150px!important;}
      .hero-carousel .carousel-content i{font-size:1.5rem!important;}
      .hero-carousel .carousel-content h3{font-size:1rem!important;}
      .hero-buttons{flex-direction:column!important;}
      .hero-btn{padding:0.625rem 1rem!important;font-size:0.875rem!important;}
    }
    @media(min-width:640px) and (max-width:767px){
      .hero-title{font-size:1.75rem!important;}
      .hero-subtitle{font-size:1rem!important;}
      .hero-section{padding-top:2rem!important;padding-bottom:2rem!important;}
      .hero-carousel{height:200px!important;}
      .hero-carousel .carousel-slide{height:200px!important;}
      .hero-buttons{flex-direction:row!important;}
      .hero-btn{width:auto!important;}
    }
    @media(min-width:768px) and (max-width:1023px){
      .hero-title{font-size:2.25rem!important;}
      .hero-subtitle{font-size:1.125rem!important;}
      .hero-section{padding-top:3rem!important;padding-bottom:3rem!important;}
      .hero-carousel{height:250px!important;}
      .hero-carousel .carousel-slide{height:250px!important;}
      .hero-buttons{flex-direction:row!important;}
      .hero-btn{width:auto!important;}
    }
    @media(min-width:1024px){
      .hero-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:3rem!important;}
      .hero-text-col{text-align:left!important;}
      .hero-title{font-size:3.5rem!important;}
      .hero-subtitle{font-size:1.5rem!important;}
      .hero-section{padding-top:4rem!important;padding-bottom:4rem!important;}
      .hero-carousel{height:320px!important;}
      .hero-carousel .carousel-slide{height:320px!important;}
      .hero-buttons{flex-direction:row!important;justify-content:flex-start!important;}
      .hero-btn{width:auto!important;}
    }

    .service-detail{background:linear-gradient(135deg,#f8f9ff 0%,#ffffff 100%);border-left:4px solid #1e3a5f;margin:10px 0;padding:15px;border-radius:8px;transition:all .3s ease;}
    @media(max-width:640px){.service-detail{padding:12px;margin:8px 0;}}
    .service-detail:hover{transform:translateX(5px);box-shadow:0 5px 15px rgba(30,58,95,.1);}

    .expertise-item{position:relative;}
    .expertise-bubble{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:90%;max-width:320px;max-height:80vh;background:white;border-radius:16px;padding:20px;box-shadow:0 25px 50px rgba(0,0,0,0.3);opacity:0;visibility:hidden;transition:all 0.3s cubic-bezier(0.68,-0.55,0.265,1.55);z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    .expertise-bubble.active{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible;}
    .expertise-bubble-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:all 0.3s ease;z-index:999;}
    .expertise-bubble-overlay.active{opacity:1;visibility:visible;}
    .expertise-bubble h4{color:#0f172a;font-weight:700;margin-bottom:12px;font-size:1.1rem;display:flex;align-items:center;gap:8px;}
    .expertise-bubble p{color:#64748b;font-size:0.9375rem;line-height:1.6;margin:0;}
    .expertise-bubble .close-bubble{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:#f1f5f9;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;font-size:1rem;transition:all 0.2s ease;}
    .expertise-bubble .close-bubble:hover{background:#e2e8f0;color:#0f172a;}
    .expertise-bubble::after{display:none;}
    @media(min-width:640px){.expertise-bubble{max-width:380px;padding:24px;}}
    @media(min-width:1024px){
      .expertise-bubble{position:absolute;bottom:100%;top:auto;left:50%;transform:translateX(-50%) scale(0);width:280px;max-height:none;margin-bottom:12px;box-shadow:0 10px 40px rgba(0,0,0,0.2);}
      .expertise-bubble.active{transform:translateX(-50%) scale(1);}
      .expertise-bubble::after{display:block;content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:10px solid transparent;border-top-color:white;}
      .expertise-bubble .close-bubble{display:none;}
      .expertise-bubble-overlay{display:none;}
    }
    body.bubble-open{overflow:hidden;position:fixed;width:100%;height:100%;}

    /* ===== ANIMATION LOGO SPLASH ===== */
.logo-splash-overlay {
  position: fixed;
  inset: 0;
  background: linear-gradient(135deg, #1e3a5f 0%, #152a45 50%, #0f172a 100%);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}
.logo-splash-overlay.hidden-splash {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.logo-splash-container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.logo-splash-img {
  width: 180px;
  height: 180px;
  object-fit: contain;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
  animation: splashLogoScale 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards,
             splashLogoPulse 2s ease-in-out 1.2s infinite;
}
@keyframes splashLogoScale {
  0% { transform: scale(0) rotate(-180deg); opacity: 0; }
  50% { transform: scale(1.2) rotate(10deg); }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}
@keyframes splashLogoPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 20px 60px rgba(0,0,0,0.4); }
  50% { transform: scale(1.05); box-shadow: 0 30px 80px rgba(201, 162, 39, 0.3); }
}
.logo-splash-text {
  margin-top: 24px;
  text-align: center;
  animation: splashTextFade 0.8s ease 0.8s forwards;
  opacity: 0;
}
.logo-splash-text h2 {
  color: white;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 2px;
}
.logo-splash-text h2 span {
  color: #c9a227;
}
.logo-splash-text p {
  color: rgba(255,255,255,0.7);
  font-size: 0.875rem;
  margin-top: 8px;
  font-style: italic;
}
.logo-splash-spinner {
  margin-top: 20px;
  width: 40px;
  height: 40px;
  border: 3px solid rgba(255,255,255,0.1);
  border-top-color: #c9a227;
  border-radius: 50%;
  animation: splashSpin 1s linear infinite;
}
@keyframes splashTextFade {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes splashSpin {
  to { transform: rotate(360deg); }
}
/* Barre de progression */
.logo-splash-progress {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  width: 200px;
  height: 3px;
  background: rgba(255,255,255,0.1);
  border-radius: 3px;
  overflow: hidden;
}
.logo-splash-progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #c9a227, #ddb94d);
  border-radius: 3px;
  animation: splashProgress 2s ease-in-out forwards;
}
@keyframes splashProgress {
  0% { width: 0%; }
  100% { width: 100%; }
}
/* Animation de transition entre pages */
.page-transition-overlay {
  position: fixed;
  inset: 0;
  background: linear-gradient(135deg, #1e3a5f 0%, #152a45 100%);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.page-transition-overlay.active {
  opacity: 1;
  visibility: visible;
}
.page-transition-logo {
  width: 120px;
  height: 120px;
  object-fit: contain;
  border-radius: 16px;
  animation: transitionPulse 0.6s ease-in-out infinite;
}
@keyframes transitionPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.1); opacity: 0.8; }
}

    .toast{position:fixed;bottom:2rem;right:2rem;background:white;padding:1rem 1.5rem;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);display:flex;align-items:center;gap:1rem;transform:translateX(400px);transition:transform .3s ease;z-index:1001;}
    .toast.active{transform:translateX(0);}
    .toast.success{border-left:4px solid #10B981;}
    .toast.error{border-left:4px solid #EF4444;}

    button{transition:all .2s ease;position:relative;overflow:hidden;}
    button:active{transform:scale(0.95);}
    button::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s;}
    button:active::after{width:200px;height:200px;}
    button:disabled{cursor:not-allowed;opacity:.7;}

    .line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
    .line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

    html,body{overflow-x:hidden;max-width:100vw;}
    .container{max-width:100%;}

    @media(max-width:359px){
      .hero-title{font-size:1.1rem!important;}
      .hero-subtitle{font-size:0.8rem!important;}
      .hero-carousel{height:130px!important;}
      .hero-carousel .carousel-slide{height:130px!important;}
      .hero-btn{font-size:0.75rem!important;padding:0.5rem 0.75rem!important;}
    }

    .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(5px);z-index:999;display:none;align-items:center;justify-content:center;padding:1rem;}
    .modal-overlay.active{display:flex;}
    .modal-content{background:white;border-radius:1rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px rgba(0,0,0,0.3);}
    .modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;}
    .modal-body{padding:1.5rem;}
    .modal-footer{padding:1.5rem;border-top:1px solid #e5e7eb;display:flex;gap:1rem;justify-content:flex-end;}

    .form-group{margin-bottom:1rem;}
    .form-group label{display:block;font-size:0.875rem;font-weight:500;color:#374151;margin-bottom:0.5rem;}
     .form-group input,.form-group select,.form-group textarea{padding:0.75rem 1rem;border:1px solid #d1d5db;border-radius:0.5rem;font-size:1rem;transition:all 0.2s;}
    .form-group input:not(.flex-1):not([type="checkbox"]):not([type="radio"]),.form-group select:not(.flex-1),.form-group textarea{width:100%;}
    .form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 3px rgba(30,58,95,0.1);}
    .form-group .input-icon{position:relative;}
    .form-group .input-icon i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#9ca3af;}
    .form-group .input-icon input{padding-left:2.5rem;}

    .whatsapp-btn{background:linear-gradient(135deg,#25D366,#128C7E);color:white;}
    .whatsapp-btn:hover{background:linear-gradient(135deg,#128C7E,#075E54);}
    .email-btn{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:white;}
    .email-btn:hover{background:linear-gradient(135deg,#152a45,#1e3a5f);}

    .slogan-banner{background:linear-gradient(135deg,#c9a227,#ddb94d,#b8941f);color:#0f172a;padding:1rem;text-align:center;font-weight:600;font-style:italic;}

    /* Vehicle cards */
    .vehicle-card{background:white;border-radius:1rem;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1);transition:all 0.3s ease;}
    .vehicle-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,0.15);}
    .vehicle-card .vehicle-img{width:100%;height:200px;object-fit:cover;}
    .vehicle-card .vehicle-badge{position:absolute;top:1rem;left:1rem;background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:white;padding:0.25rem 0.75rem;border-radius:9999px;font-size:0.75rem;font-weight:600;}
    .vehicle-card .vehicle-price{position:absolute;top:1rem;right:1rem;background:linear-gradient(135deg,#c9a227,#ddb94d);color:#0f172a;padding:0.25rem 0.75rem;border-radius:9999px;font-size:0.875rem;font-weight:700;}
    .vehicle-specs{display:flex;gap:1rem;flex-wrap:wrap;font-size:0.875rem;color:#6b7280;}
    .vehicle-specs span{display:flex;align-items:center;gap:0.25rem;}
    .vehicle-specs i{color:#1e3a5f;}

    /* Vehicle detail modal */
    .vehicle-detail-modal .modal-content{max-width:900px;}
    .vehicle-detail-img{width:100%;height:300px;object-fit:cover;border-radius:0.5rem;}
    @media(min-width:768px){.vehicle-detail-img{height:400px;}}

    /* Filter tabs */
    .filter-tab{padding:0.5rem 1rem;border-radius:9999px;font-size:0.875rem;font-weight:500;cursor:pointer;transition:all 0.2s;border:2px solid transparent;}
    .filter-tab.active{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:white;}
    .filter-tab:not(.active){background:#f3f4f6;color:#374151;}
    .filter-tab:not(.active):hover{background:#e5e7eb;}

    /* Durée location - champ conditionnel */
.duration-field {
  display: none;
}
.duration-field.active {
  display: block;
}
.duration-inputs {
  display: flex;
  gap: 0.75rem;
  align-items: flex-end;
}
.duration-inputs input {
  flex: 1;
}
.duration-inputs select {
  width: 140px;
  flex-shrink: 0;
}

    /* Fix champ téléphone en flex */
    .form-group .flex{display:flex;gap:0.5rem;align-items:stretch;}
    .form-group .flex select{flex-shrink:0;width:auto;min-width:110px;}
    .form-group .flex input[type="tel"]{flex:1;min-width:0;}
    .form-group .duration-inputs{display:flex;gap:0.75rem;align-items:stretch;}
    .form-group .duration-inputs input{flex:1;min-width:0;}
    .form-group .duration-inputs select{flex-shrink:0;width:auto;min-width:120px;}


    /* Bulles d'information pour véhicules et résidences */
    .info-bubble-trigger{position:relative;cursor:pointer;}
    .info-bubble{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:90%;max-width:380px;max-height:85vh;background:white;border-radius:20px;padding:0;box-shadow:0 25px 50px rgba(0,0,0,0.35);opacity:0;visibility:hidden;transition:all 0.35s cubic-bezier(0.68,-0.55,0.265,1.55);z-index:1001;overflow:hidden;-webkit-overflow-scrolling:touch;}
    .info-bubble.active{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible;}
    .info-bubble-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all 0.3s ease;z-index:1000;}
    .info-bubble-overlay.active{opacity:1;visibility:visible;}
    
    .info-bubble-header{position:relative;height:180px;background-size:cover;background-position:center;}
    .info-bubble-header::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.7) 0%,rgba(0,0,0,0.2) 50%,transparent 100%);}
    .info-bubble-header-content{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;z-index:2;color:white;}
    .info-bubble-header-content h4{font-size:1.25rem;font-weight:700;margin-bottom:0.25rem;}
    .info-bubble-header-content .info-bubble-price{display:inline-block;background:linear-gradient(135deg,#c9a227,#ddb94d);color:#0f172a;padding:0.35rem 1rem;border-radius:9999px;font-size:0.875rem;font-weight:700;}
    
    .info-bubble-body{padding:1.5rem;}
    .info-bubble-body .info-section{margin-bottom:1.25rem;}
    .info-bubble-body .info-section:last-child{margin-bottom:0;}
    .info-bubble-body .info-section h5{font-size:0.875rem;font-weight:600;color:#1e3a5f;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.5rem;}
    .info-bubble-body .info-section p{font-size:0.9375rem;color:#64748b;line-height:1.6;margin:0;}
    .info-bubble-body .info-specs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.75rem;}
    .info-bubble-body .info-spec-item{background:#f8fafc;border-radius:0.5rem;padding:0.75rem;text-align:center;}
    .info-bubble-body .info-spec-item i{color:#1e3a5f;font-size:1.1rem;margin-bottom:0.25rem;}
    .info-bubble-body .info-spec-item .spec-label{font-size:0.7rem;color:#94a3b8;text-transform:uppercase;}
    .info-bubble-body .info-spec-item .spec-value{font-size:0.875rem;font-weight:600;color:#1e3a5f;}
    
    .info-bubble .close-info-bubble{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.9);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1e3a5f;font-size:1rem;transition:all 0.2s ease;z-index:10;}
    .info-bubble .close-info-bubble:hover{background:white;transform:scale(1.1);}
    
    .info-bubble-footer{padding:1rem 1.5rem;border-top:1px solid #e2e8f0;display:flex;gap:0.75rem;}
    .info-bubble-footer button{flex:1;padding:0.75rem;border-radius:0.5rem;font-weight:600;font-size:0.875rem;transition:all 0.2s;}
    .info-bubble-footer .btn-close{background:#f1f5f9;color:#64748b;border:none;}
    .info-bubble-footer .btn-close:hover{background:#e2e8f0;}
    .info-bubble-footer .btn-action{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:white;border:none;}
    .info-bubble-footer .btn-action:hover{background:linear-gradient(135deg,#152a45,#1e3a5f);}

    @media(min-width:640px){.info-bubble{max-width:420px;}.info-bubble-header{height:200px;}}
    @media(min-width:1024px){
      .info-bubble{position:absolute;bottom:100%;top:auto;left:50%;transform:translateX(-50%) scale(0);width:360px;max-height:none;margin-bottom:15px;box-shadow:0 15px 40px rgba(0,0,0,0.2);}
      .info-bubble.active{transform:translateX(-50%) scale(1);}
      .info-bubble::after{display:block;content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:12px solid transparent;border-top-color:white;}
      .info-bubble .close-info-bubble{display:none;}
      .info-bubble-overlay{display:none;}
      .info-bubble-footer .btn-close{display:none;}
    }

    /* ===== LOGO ===== */
    .logo-container {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .site-logo {
      height: 40px;           /* Hauteur fixe - le plus important */
      width: auto;            /* Largeur automatique = pas de déformation */
      max-width: 160px;       /* Empêche un logo trop large */
      object-fit: contain;    /* Garde les proportions, coupe si besoin */
      object-position: center;/* Centre l'image */
      display: block;         /* Évite l'espace blanc sous l'image */
      border-radius: 6px;     /* Optionnel : coins légèrement arrondis */
    }
    
    /* Responsive mobile */
    @media(max-width:1023px){
      .site-logo {
        height: 32px;         /* Plus petit sur mobile */
        max-width: 120px;
      }
    }
    
    @media(max-width:480px){
      .site-logo {
        height: 28px;         /* Encore plus petit sur très petits écrans */
        max-width: 100px;
      }
    }

    /* ===== FOOTER LOGO ===== */
.footer-logo-container {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-logo {
  height: 32px;           /* Hauteur fixe - AUGMENTE si trop petit */
  width: auto;            /* Largeur auto = pas de déformation */
  max-width: 120px;       /* Empêche un logo trop large */
  object-fit: contain;
  object-position: center;
  display: block;
  border-radius: 4px;
}

/* Responsive mobile footer */
@media(max-width:1023px){
  .footer-logo {
    height: 28px;         /* Plus petit sur mobile */
    max-width: 100px;
  }
}

@media(max-width:480px){
  .footer-logo {
    height: 24px;         /* Encore plus petit sur très petits écrans */
    max-width: 80px;
  }
}


/* Modal résidence - taille adaptative */
#residenceDetailModal .modal-content {
  max-width: 95vw;
  width: auto;
  max-height: 90vh;
  overflow-y: auto;
}

@media (min-width: 768px) {
  #residenceDetailModal .modal-content {
    max-width: 800px;
  }
}

@media (min-width: 1024px) {
  #residenceDetailModal .modal-content {
    max-width: 900px;
  }
}

/* Grille d'infos - texte plus lisible sur mobile */
@media (max-width: 640px) {
  #residenceDetailModal .grid > div {
    padding: 0.5rem;
  }
  #residenceDetailModal .grid p.text-xs {
    font-size: 0.65rem;
  }
  #residenceDetailModal .grid p.font-semibold {
    font-size: 0.8rem;
  }
}



/* ===== CAROUSEL RÉSIDENCE - IMAGES EN DIMENSIONS RÉELLES ===== */
.residence-carousel-slide {
  min-width: 100%;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff; /* ⭐ BLANC PUR */
  padding: 10px;
}

.residence-carousel-slide img {
  max-width: 100%;
  max-height: 70vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
}

/* Le carousel s'adapte à la hauteur de l'image */
#residenceCarousel {
  height: auto !important;
}

#residenceCarousel .carousel-container {
  height: auto !important;
}




/* ===== FLÈCHES CAROUSEL RÉSIDENCE ===== */
.residence-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(30, 58, 95, 0.85); /* ⭐ FOND BLEU FONCÉ pour contraster sur blanc */
  border: 2px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: all 0.2s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  backdrop-filter: blur(4px);
}

.residence-carousel-arrow:hover {
  background: #1e3a5f; /* ⭐ BLEU PRIMARY au survol */
  color: #c9a227; /* ⭐ OR au survol */
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

.residence-carousel-arrow:active {
  transform: translateY(-50%) scale(0.95);
}

.residence-carousel-prev {
  left: 12px;
}

.residence-carousel-next {
  right: 12px;
}

/* Responsive mobile */
@media(max-width: 640px) {
  .residence-carousel-arrow {
    width: 36px;
    height: 36px;
    font-size: 0.9rem;
  }
  .residence-carousel-prev {
    left: 8px;
  }
  .residence-carousel-next {
    right: 8px;
  }
}

/* Mobile : marge réduite */
@media (max-width: 640px) {
  .residence-carousel-slide {
    padding: 10px;
  }
  .residence-carousel-slide img {
    max-height: 50vh;
  }
}

/* Desktop : un peu plus d'espace */
@media (min-width: 1024px) {
  .residence-carousel-slide img {
    max-height: 65vh;
  }
}

/* Flèches */
.residence-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(30, 58, 95, 0.8);
  border: none;
  color: #ffffff;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: all 0.2s ease;
}

.residence-carousel-arrow:hover {
  background: #1e3a5f;
  color: #c9a227;
}

.residence-carousel-prev { left: 10px; }
.residence-carousel-next { right: 10px; }

/* Dots */
#residenceCarouselDots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
  background: rgba(0,0,0,0.4);
  padding: 6px 14px;
  border-radius: 20px;
}

#residenceCarouselDots .carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.6);
  cursor: pointer;
  transition: all 0.3s ease;
}

#residenceCarouselDots .carousel-dot.active {
  background: #c9a227;
  transform: scale(1.3);
}


/* Responsive mobile */
@media(max-width: 640px) {
  .residence-carousel-arrow {
    width: 36px;
    height: 36px;
    font-size: 0.9rem;
  }
  .residence-carousel-prev {
    left: 8px;
  }
  .residence-carousel-next {
    right: 8px;
  }
}

/* Lightbox */
#lightboxModal .modal-content {
  background: transparent;
  box-shadow: none;
}
#lightboxModal {
  background: rgba(0,0,0,0.92);
  backdrop-filter: blur(10px);
}
#lightboxModal.active {
  display: flex;
}




/* ===== CAROUSEL PRESTATIONS AUTO-DÉFILANT ===== */
@keyframes prestationScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.auto-carousel-track {
  animation: prestationScroll 20s linear infinite;
  width: max-content; /* Important : permet de dupliquer les slides */
}

.auto-carousel:hover .auto-carousel-track {
  animation-play-state: paused;
}

/* ===== CAROUSEL RÉSIDENCE - WRAPPER ===== */
#residenceCarouselWrapper {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 300px;
  overflow: hidden;
  border-radius: 0.5rem;
  background: #ffffff;
}

/* Images du carousel résidence */
#residenceCarouselWrapper .carousel-slide {
  min-width: 100%;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  padding: 10px;
}

#residenceCarouselWrapper .carousel-slide img {
  max-width: 100%;
  max-height: 60vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
}

/* Le conteneur du carousel */
#residenceCarouselWrapper .carousel-container {
  display: flex;
  transition: transform 0.8s ease-in-out;
  height: auto;
}


/* ============================================
   FIX CAROUSEL RÉSIDENCE - Flèches + Luminosité
   ============================================ */

/* 1. WRAPPER - Position relative pour les flèches */
#residenceCarouselWrapper {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
  border-radius: 0.5rem;
  background: #ffffff;
}

/* 2. SUPPRIMER l'overlay sombre sur les slides résidence */
#residenceCarousel .carousel-slide::before,
#residenceCarousel .residence-carousel-slide::before {
  display: none !important;
}

/* 3. SLIDES - Images en pleine luminosité */
#residenceCarousel .carousel-slide,
#residenceCarousel .residence-carousel-slide {
  min-width: 100%;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  padding: 10px;
  position: relative;
}

#residenceCarousel .carousel-slide img,
#residenceCarousel .residence-carousel-slide img {
  max-width: 100%;
  max-height: 60vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
}

/* 4. CONTENEUR - Hauteur auto */
#residenceCarousel {
  height: auto !important;
}

#residenceCarousel .carousel-container {
  height: auto !important;
  display: flex;
  transition: transform 0.8s ease-in-out;
}

/* 5. FLÈCHES - Bien positionnées sur le wrapper */
.residence-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(30, 58, 95, 0.85);
  border: 2px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  transition: all 0.2s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  backdrop-filter: blur(4px);
}

.residence-carousel-arrow:hover {
  background: #1e3a5f;
  color: #c9a227;
  transform: translateY(-50%) scale(1.1);
}

.residence-carousel-prev { left: 12px; }
.residence-carousel-next { right: 12px; }

/* Responsive flèches */
@media(max-width: 640px) {
  .residence-carousel-arrow {
    width: 36px;
    height: 36px;
    font-size: 0.9rem;
  }
  .residence-carousel-prev { left: 8px; }
  .residence-carousel-next { right: 8px; }
}

/* 6. DOTS - Par-dessus les images */
#residenceCarouselDots {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 100;
  background: rgba(0,0,0,0.4);
  padding: 6px 14px;
  border-radius: 20px;
}

#residenceCarouselDots .carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.6);
  cursor: pointer;
  transition: all 0.3s ease;
}

#residenceCarouselDots .carousel-dot.active {
  background: #c9a227;
  transform: scale(1.3);
}

/* ===== CAROUSEL ÉVÉNEMENTS ===== */
.events-carousel-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 1rem;
  background: #ffffff;
  margin-bottom: 2rem;
}

.events-carousel {
  display: flex;
  transition: transform 0.8s ease-in-out;
  height: 400px;
}

.events-carousel-slide {
  min-width: 100%;
  height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8f9fa;
  position: relative;
  cursor: pointer;
}

.events-carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1rem;
}

/* Flèches navigation */
.events-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(30, 58, 95, 0.85);
  border: 2px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: all 0.2s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.events-carousel-arrow:hover {
  background: #1e3a5f;
  color: #c9a227;
  transform: translateY(-50%) scale(1.1);
}

.events-carousel-prev { left: 12px; }
.events-carousel-next { right: 12px; }

/* Dots */
.events-carousel-dots {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
  background: rgba(0,0,0,0.4);
  padding: 6px 14px;
  border-radius: 20px;
}

.events-carousel-dots .carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.6);
  cursor: pointer;
  transition: all 0.3s ease;
}

.events-carousel-dots .carousel-dot.active {
  background: #c9a227;
  transform: scale(1.3);
}

/* Responsive */
@media(max-width: 768px) {
  .events-carousel, .events-carousel-slide {
    height: 250px;
  }
  .events-carousel-arrow {
    width: 36px;
    height: 36px;
    font-size: 0.9rem;
  }
}
