/* ── Slider ── */
.hero-slider {
  position: relative;
  width: 100%;
  height: calc(100vh - 10rem);
  min-height: 520px;
  overflow: hidden;
}
.cs-empty {
  display: flex; align-items: center; justify-content: center;
  height: 300px; background: rgba(0,0,0,.2);
  color: rgba(255,255,255,.5); font-size: 14px;
}
.slider-track {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  height: 100%;
  transition: transform 0.7s cubic-bezier(0.77,0,0.18,1);
  will-change: transform;
}
.slide {
  position: relative;
  flex: 0 0 100%;
  max-width: 100%;
  height: 100%;
  overflow: hidden;
}
.slide-img {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 8s ease;
}
.slide.is-active .slide-img { transform: scale(1.04); }

.slide-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(23,37,53,0.05) 0%,
    rgba(23,37,53,0)    25%,
    rgba(23,37,53,0.45) 65%,
    rgba(23,37,53,0.88) 100%
  );
}

/* ── Contenu du slide ── */
.slide-content {
  position: absolute;
  bottom: 96px; left: 64px;
  max-width: 580px;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .6s .3s, transform .6s .3s;
}
.slide.is-active .slide-content { opacity: 1; transform: translateY(0); }

.slide-season {
  font-family: var(--sans, sans-serif);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 14px;
}
.slide-title {
  font-family: var(--serif-light, serif);
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 28px;
}

/* Bouton fallback si clusier_btn() indisponible */
.cs-btn-fallback {
  display: inline-block;
  font-family: var(--sans, sans-serif);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  border: 1px solid #fff;
  padding: 12px 28px;
}

/* ── Barre de navigation ── */
.slider-nav {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 56px;
  background: #172535;
  display: flex;
  align-items: stretch;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.cs-nav-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #fff;
  transition: background 0.2s;
  flex: 1;
}
.cs-nav-btn:hover { background: rgba(255,255,255,0.06); }

.cs-nav-prev { justify-content: flex-start; }
.cs-nav-next { justify-content: flex-end; border-left: 1px solid rgba(255,255,255,0.1); }

/* Nœud papillon */
.cs-nav-bowtie {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.cs-nav-bowtie svg {
  width: 32px;
  height: auto;
  display: block;
}
.cs-nav-bowtie svg path,
.cs-nav-bowtie svg polygon {
  fill: #fff;
}

/* Nom du slide */
.cs-nav-name {
  font-family: var(--sans, sans-serif);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 280px;
  transition: opacity 0.3s;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .slide-content { left: 24px; right: 24px; bottom: 72px; }
  .cs-nav-btn { padding: 0 20px; gap: 10px; }
  .cs-nav-name { max-width: 120px; font-size: 10px; }
  .cs-nav-bowtie svg { width: 24px; }
}

/* Drag handle */
.cs-row-head {
  cursor: grab;
}
.cs-row-head:active {
  cursor: grabbing;
}
/* Slide en cours de déplacement */
.ui-sortable-helper {
  box-shadow: 0 4px 16px rgba(0,0,0,.18);
  opacity: .92;
}
/* Placeholder (trou laissé pendant le drag) */
.ui-sortable-placeholder {
  border: 2px dashed #c3c4c7;
  background: #f6f7f7;
  visibility: visible !important;
  height: 60px;
  border-radius: 4px;
  margin-bottom: 12px;
}
