/* ==========================
   UX POLISH
========================== */

body {
  -webkit-font-smoothing: antialiased;
}

/* ==============================
   GLOBAL CONTAINER
================================ */

@media (min-width: 1200px) {
  .container,
  .container-lg,
  .container-xl {
    max-width: 1600px;
    padding-left: 32px;
    padding-right: 32px;
  }
}

@media (max-width: 768px) {
  .container,
  .container-lg,
  .container-xl {
    padding-left: 24px;
    padding-right: 24px;
  }

  /* Nb of results */
  #modern-result-string {
    font-size: 12px !important;
    text-align: center;
  }
}

/* Nb of results */
#modern-result-string {
  font-size: 17px;
  font-weight: 500;
  margin-top: 20px;
  letter-spacing: 0.01em;
  color: #0b203fed;
  font-family: 'Poppins', sans-serif;
}

.service-list-wrapper.service-tour.row {
  margin-top: -20px;
}

.owner-info {
  display: none !important;
}

.stt-attr-housing-type {
  display: none !important;
}

/* ==========================
   CARDS
========================== */

.item-service {
  border-radius: 18px;
  transform: scale(1);
  transition: transform .35s ease;
}

.item-service:hover {
  transform: scale(1.04);
}

/* =============== BS CARD SLIDER (TO MOVE) =============== */

/* === CONTENEUR IMAGE CARD === */
.featured-image {
  position: relative !important;
  width: 100%;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #f2f4f7dd;
  border-radius: 18px;
}

.featured-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #f2f4f7;
  z-index: 0;
  pointer-events: none;
  animation: fadeOut 0.3s ease forwards;
  animation-delay: 600ms;
}

@keyframes fadeOut {
  to { opacity: 0; }
}

.item-service:hover .bs-card-slider {
  will-change: transform;
}

.item-service .featured-image a {
  pointer-events: none;
}

.services-item .featured-image > a {
  display: block;
  width: 100%;
  height: 100%;
}

.featured-image > * {
  position: absolute !important;
  inset: 0;
  width: 100%;
  height: 100%;
}

.featured-image,
.featured-image * {
  max-height: none !important;
  min-height: 0 !important;
}

.bs-card-slider,
.bs-card-slider .swiper-wrapper,
.bs-card-slider .swiper-slide,
.bs-card-slider img {
  width: 100%;
  height: 100%;
}

/* === SWIPER BASE === */ 
.bs-card-slider {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 2;
  pointer-events: auto;
}

/* === STRUCTURE SWIPER === */
.bs-card-slider .swiper-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
}

.bs-card-slider .swiper-slide {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
}

/* === IMAGE === */
.bs-card-slider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  background: #f2f4f7;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}

.service-add-wishlist {
  position: absolute !important;
  top: 12px;
  right: 12px;
  left: auto !important;
  bottom: auto !important;
  width: 36px;
  height: 36px;
  z-index: 10;
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-add-wishlist i {
  position: static !important;
}

/* =====================================================
   NAVIGATION
   ===================================================== */

.bs-prev,
.bs-next {
  position: absolute;
  top: 50%;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #10254e;
  border: none;
  cursor: pointer;
  z-index: 30;
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  transition: opacity 500ms ease;
}

.bs-prev:hover,
.bs-next:hover {
  transform: scale(1.02);
}

.bs-prev {
  left: 15px;
  background-image: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310254e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\<polyline points='15 18 9 12 15 6'/>\</svg>");
}

.bs-next {
  right: 15px; 
  background-image: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310254e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\<polyline points='9 18 15 12 9 6'/>\</svg>");
}

.bs-prev,
.bs-next {
  background-color: rgba(255,255,255,.92);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
}

/* Affiche les flèches quand on hover la card */
.item-service:hover .bs-prev,
.item-service:hover .bs-next {
  opacity: 1;
}

/* =====================================================
   SÉCURITÉ UX
   ===================================================== */

.bs-card-slider,
.bs-card-slider * {
  user-select: none;
  -webkit-user-drag: none;
}

/* =====================================================
   🔧 FIX HOVER CONFLICT – TRAVELER x SWIPER
   ===================================================== */

/* Neutralise TOUS les effets hover hérités de Traveler */
.item-service .featured-image img {
  transform: none !important;
  transition: none !important;
}

/* Empêche tout scale ou déplacement au hover */
.item-service .featured-image:hover img {
  transform: none !important;
}

/* Supprime tout effet parasite au hover */
.bs-card-slider:hover {
  transform: none !important;
}

/* =====================================================
   PAGINATION DOTS – CARD GALLERY
===================================================== */
.bs-pagination {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 1px;
  z-index: 6;
  opacity: 0.8;
  justify-content: center;
  align-items: center;
  transition: opacity 0.25s ease;
  pointer-events: auto;
}

/* Desktop : un peu plus visible au hover */
.item-service:hover .bs-pagination {
  opacity: 1;
}

/* Dots */
.bs-pagination .swiper-pagination-bullet {
  width: 5px;
  height: 5px;
  opacity: 1;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  box-shadow: none !important;
  outline: none !important;
  border: none !important;
  transition: transform 0.2s ease, background 0.2s ease;
}

/* Dot actif */
.bs-pagination .swiper-pagination-bullet-active {
  background: #ffffff;
  transform: scale(1.1);
}

/* Mobile : légèrement plus visibles */
@media (max-width: 768px) {
  .bs-pagination {
    opacity: 0.9;
  }

  .bs-pagination .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
  }
}

/* === FIX STRUCTURE LINK === */
.bs-card-image-link {
  position: absolute;
  inset: 0;
  display: block;
}

/* ===============================
   STAGGER CARD APPEAR
================================ */

.item-service.bs-animate {
  opacity: 0;
  transform: translateY(24px);
}

.item-service.bs-animate.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.6s cubic-bezier(.22,.61,.36,1),
    transform 0.6s cubic-bezier(.22,.61,.36,1);
}

/* ===============================
   PREMIUM HOVER FEEL
================================ */

.item-service:hover {
  transform: translateY(-6px);
}

/* Image micro zoom */
.item-service:hover .bs-card-slider img {
  transform: scale(1.03);
  transition: transform 0.6s ease;
}

/* Texte léger focus */
.item-service:hover h3,
.item-service:hover h4 {
  color: #10254e;
}