/* ------------------------------ */
/* Base */
/* ------------------------------ */
*{ box-sizing:border-box; margin:0; padding:0; font-family:'Inter',sans-serif; }

:root{
  --yellow:#f3c306;
  --dark:#2b2b2b;
  --light:#f5f5f5;
  --border:#e6e6e6;
}

/* ------------------------------ */
/* Loader */
/* ------------------------------ */
#loader{
  position:fixed; inset:0;
  background:rgba(255,255,255,.9);
  display:none;
  align-items:center; justify-content:center;
  z-index:9999;
}
#loader-icon{
  width:60px; height:60px;
  animation:spin 2s linear infinite;
}
@keyframes spin{ from{transform:rotate(0)} to{transform:rotate(360deg)} }

/* ------------------------------ */
/* Container */
/* ------------------------------ */
.vehicle-list{
  padding:2rem;
  max-width:930px;
  margin:0 auto;
  background:#fff;
}

.vehicle-list h2{
  margin:4px 0 2rem 0;
  font-size:3.2rem;
  text-align:left;
  position:relative;
  display:inline-block;
}
.vehicle-list h2::after{
  content:"";
  display:block;
  width:100%;
  height:3px;
  border-radius:30px;
  background:var(--yellow);
  margin-top:8px;
}

.empty-global{
  margin:16px 0;
  font-weight:800;
  color:#444;
}

/* ------------------------------ */
/* Toggle voiture / 2 roues */
/* ------------------------------ */
.vehicle-toggle{ width:100%; margin:30px auto; }
.vehicle-toggle-track{
  position:relative;
  width:100%;
  height:38px;
  background:var(--dark);
  border-radius:999px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  padding:4px;
}
.vehicle-toggle-thumb{
  position:absolute;
  top:4px; left:4px;
  width:calc(50% - 4px);
  height:calc(100% - 8px);
  background:#fff;
  border-radius:999px;
  box-shadow:0 6px 14px rgba(0,0,0,.20);
  border:2px solid var(--dark);
  transform:translateX(0);
  transition:transform 360ms cubic-bezier(.2,.8,.2,1);
}
.vehicle-toggle-btn{
  position:relative; z-index:2;
  border:0; background:transparent;
  cursor:pointer;
  height:100%; width:100%;
  font-weight:800;
  letter-spacing:1px;
  font-size:16px;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  transition:color 220ms ease, transform 220ms ease;
}
.vehicle-toggle[data-active="1"] .vehicle-toggle-btn[data-type="1"],
.vehicle-toggle[data-active="2"] .vehicle-toggle-btn[data-type="2"]{ color:#111; }
.vehicle-toggle[data-active="2"] .vehicle-toggle-thumb{ transform:translateX(100%); }
.vehicle-toggle-btn:active{ transform:scale(.98); }

@media (max-width:600px){
  .vehicle-toggle-track{ height:34px; }
  .vehicle-toggle-btn{ font-size:14px; }
}
@media (prefers-reduced-motion: reduce){
  .vehicle-toggle-thumb,.vehicle-toggle-btn{ transition:none; }
}

/* ------------------------------ */
/* Barre tri */
/* ------------------------------ */
.sort-form{
  margin-bottom:1rem;
  display:flex;
  align-items:center;
  gap:10px;
}
.sort-form label{ font-weight:900; }
.sort-form select{
  padding:6px 8px;
  border-radius:8px;
  border:1px solid #ccc;
}

/* ------------------------------ */
/* Bouton recherche avancée */
/* ------------------------------ */
.advanced-search-row{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:18px 0;
}
.advanced-search-btn{
  width:100%;
  padding:16px 18px;
  border-radius:999px;
  border:2px solid var(--dark);
  background:var(--dark);
  color:#fff;
  font-weight:900;
  font-size:18px;
  cursor:pointer;
  transition:transform 180ms ease, background 180ms ease;
}
.advanced-search-btn:hover{ background:#1f1f1f; transform:translateY(-1px); }
.advanced-search-btn:active{ transform:translateY(0); }

.advanced-clear-btn{
  display:inline-block;
  text-align:center;
  padding:10px 12px;
  border-radius:12px;
  background:var(--light);
  border:1px solid #dcdcdc;
  color:#111;
  font-weight:800;
  text-decoration:none;
}
.advanced-clear-btn:hover{ background:#eaeaea; }

/* ------------------------------ */
/* Modal avancé */
/* ------------------------------ */
.advanced-modal{ position:fixed; inset:0; z-index:99999; display:none; }
.advanced-modal.is-open{ display:block; }
.advanced-modal-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.55); }

.advanced-modal-content{
  position:relative;
  width:min(680px, calc(100% - 24px));
  margin:60px auto 0 auto;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  animation:advancedIn 180ms ease-out;
}
@keyframes advancedIn{ from{transform:translateY(10px);opacity:0} to{transform:translateY(0);opacity:1} }

.advanced-modal-header{
  display:grid;
  grid-template-columns:90px 1fr 52px;
  align-items:center;
  padding:14px;
  border-bottom:1px solid #eee;
  background:#fafafa;
}
.advanced-title{
  margin:0;
  text-align:center;
  font-size:16px;
  font-weight:900;
  color:#111;
}
.advanced-close{
  border:none;
  background:transparent;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  color:#111;
}
.advanced-back{
  border:none;
  background:transparent;
  cursor:pointer;
  font-weight:900;
  color:#111;
}
.advanced-modal-body{
  padding:12px;
  max-height:calc(100vh - 160px);
  overflow:auto;
}
.advanced-list{ display:flex; flex-direction:column; gap:10px; }

.advanced-item{
  width:100%;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  padding:12px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition:transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}
.advanced-item:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 18px rgba(0,0,0,.10);
  background:#fcfcfc;
}
.advanced-item-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.advanced-brand-logo{
  width:34px; height:34px;
  object-fit:contain;
  flex-shrink:0;
}
.advanced-item-text{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}
.advanced-item-title{
  font-weight:900;
  color:#111;
  font-size:16px;
  line-height:1.2;
}
.advanced-item-sub{
  margin-top:2px;
  font-size:13px;
  color:#6b6b6b;
  font-weight:700;
}
.advanced-item-right{
  font-size:28px;
  color:#111;
  opacity:.55;
  flex-shrink:0;
}
.advanced-empty{
  padding:18px 12px;
  text-align:center;
  color:#444;
  font-weight:800;
}

@media (max-width:600px){
  .advanced-search-btn{ font-size:16px; padding:14px 16px; }
  .advanced-modal-content{ margin-top:40px; }
}

/* ------------------------------ */
/* Titres rubriques pertinence */
/* ------------------------------ */
.pieces-section-title{
  margin:26px 0 14px 0;
  font-size:1.4rem;
  font-weight:900;
  color:#111;
}

/* ------------------------------ */
/* Grille cards : 2 colonnes desktop */
/* ------------------------------ */
.vehicle-cards{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:2rem;
  margin-bottom:8px;
}
@media (max-width:768px){
  .vehicle-cards{ grid-template-columns:1fr; }
  .vehicle-list h2{ font-size:2.6rem; margin-bottom:1rem; }
}

/* ------------------------------ */
/* Card cliquable + hover photo 2 */
/* ------------------------------ */
.vehicle-card{
  position:relative;
  background:var(--light);
  border-radius:15px;
  overflow:hidden;
  transition:transform .2s ease;
  display:flex;
  flex-direction:column;
}
.vehicle-card:hover{ transform:scale(1.02); }

/* lien overlay */
.card-link{
  position:absolute;
  inset:0;
  z-index:1;
}

/* contenu au-dessus du lien */
.vehicle-image, .vehicle-info{ position:relative; z-index:2; }

.vehicle-image-swap{ position:relative; }
.card-img{
  display:block;
  width:96.2%;
  margin:1rem auto 0 auto;
  height:400px;
  border-radius:15px;
  object-fit:cover;
}
.img-hover{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 200ms ease;
}
.img-main{ transition:opacity 200ms ease; }

/* Hover uniquement desktop */
@media (hover:hover) and (pointer:fine){
  .vehicle-image-swap[data-has-hover="1"]:hover .img-hover{ opacity:1; }
  .vehicle-image-swap[data-has-hover="1"]:hover .img-main{ opacity:0; }
}

/* Sur mobile: pas de swap */
@media (hover:none), (pointer:coarse){
  .img-hover{ display:none !important; }
}

/* ------------------------------ */
/* Infos + actions */
/* ------------------------------ */
.vehicle-info{
  padding:1rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.vehicle-title{
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-logo{
  width:26px; height:26px;
  object-fit:contain;
  flex-shrink:0;
}
.vehicle-info h3{ font-size:1.2rem; margin-bottom:.3rem; }

.actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:1rem;
  flex-wrap:wrap;
}

/* bouton détails */
.details-button{
  display:inline-flex;
  align-items:center;
  background:var(--yellow);
  color:#fff;
  padding:.5rem 1rem;
  border-radius:30px;
  text-decoration:none;
  font-weight:900;
}
.details-button:hover{ background:#000; opacity:.9; }

/* share */
.share-copy{
  background:transparent;
  border:none;
  cursor:pointer;
  padding:0;
}
.share-copy img,
.share-whatsapp img{
  width:28px; height:28px;
  display:block;
}
.copy-confirmation{
  color:green;
  font-weight:900;
  display:none;
}

/* responsive image height */
@media (max-width:768px){
  .card-img{ height:auto; max-height:300px; }
}

/* ------------------------------ */
/* Pagination */
/* ------------------------------ */
.pagination{
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:center;
  margin:28px 0 10px 0;
  flex-wrap:wrap;
}
.page-btn, .page-num{
  padding:10px 14px;
  border-radius:999px;
  border:1px solid #ddd;
  background:var(--light);
  color:#111;
  text-decoration:none;
  font-weight:900;
}
.page-num.is-active{
  background:var(--dark);
  color:#fff;
  border-color:var(--dark);
}
.page-btn.is-disabled{
  opacity:.45;
  pointer-events:none;
}
.page-dots{
  font-weight:900;
  color:#555;
}
