/*
 * Mimethys Sessions — Styles du carrousel de sessions
 * Unités : rem / em / % / clamp() — px uniquement pour bordures et ombres
 * Compatible Elementor, responsive mobile-first
 */

/* ─── Wrapper ─────────────────────────────────────────────────── */
.mimethys-sessions-wrapper {
  --ms-color-bg:        #ffffff;
  --ms-color-text:      #1a1a2e;
  --ms-color-text-muted:#6b7280;
  --ms-color-accent:    #2e6db4;   /* bleu Mimethys */
  --ms-color-urgent:    #c45c00;
  --ms-color-complet:   #b22222;
  --ms-color-border:    #e5e7eb;
  --ms-color-places-bg: #f0f7ff;
  --ms-radius:          0.75rem;
  --ms-shadow:          0 2px 8px rgba(0,0,0,.08), 0 0 1px rgba(0,0,0,.06);
  --ms-shadow-hover:    0 6px 24px rgba(0,0,0,.12), 0 0 1px rgba(0,0,0,.08);
  --ms-transition:      0.22s ease;

  position: relative;
  padding-block: 0.5rem 2.5rem; /* espace pour la pagination */
  overflow: hidden;
}

/* ─── Swiper overrides ────────────────────────────────────────── */
.mimethys-swiper {
  overflow: visible;
  padding-inline: 0.25rem; /* évite que les ombres soient rognées */
}

.mimethys-swiper .swiper-wrapper {
  align-items: stretch;
}

.mimethys-swiper .swiper-slide {
  height: auto !important; /* pour que les cartes puissent définir la hauteur */
  overflow: visible;
}

/* Navigation */
.mimethys-btn-prev,
.mimethys-btn-next {
  color: var(--ms-color-accent);
  top: 50%;
  width: 2.25rem;
  height: 2.25rem;
}

.mimethys-btn-prev::after,
.mimethys-btn-next::after {
  font-size: 1rem;
  font-weight: 700;
}

/* Pagination */
.mimethys-pagination {
  bottom: -30px !important;
}

.mimethys-pagination .swiper-pagination-bullet-active {
  background: var(--ms-color-accent);
}

/* ─── Carte ───────────────────────────────────────────────────── */
.mimethys-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--ms-color-bg);
  border: 1px solid var(--ms-color-border);
  border-radius: var(--ms-radius);
  box-shadow: var(--ms-shadow);
  overflow: hidden;
  transition: box-shadow var(--ms-transition), transform var(--ms-transition);
}

.mimethys-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
  display: flex;
  flex-flow: column nowrap;
  height: 100%;
}

.mimethys-card__link:hover,
.mimethys-card__link:focus-visible {
  outline: none;
}

.mimethys-card:hover {
  box-shadow: var(--ms-shadow-hover);
  transform: translateY(-2px);
}

.mimethys-card--urgent .mimethys-card__footer .mimethys-card__places {
  color: var(--ms-color-urgent);
}

.mimethys-card--urgent .mimethys-card__footer .mimethys-card__meta-icon {
  font-size: 1.2rem;
}

/* ─── Badge urgence ───────────────────────────────────────────── */
.mimethys-card__badge {
  display: inline-block;
  background: var(--ms-color-urgent);
  color: #ffffff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.25em 0.75em;
  border-radius: 0 0 var(--ms-radius) 0;
  position: absolute;
  top: 0;
  left: 0;
}

/* ─── Corps de la carte ───────────────────────────────────────── */
.mimethys-card__body {
  flex: 1;
  padding: clamp(1rem, 3vw, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* Décalage du titre quand le badge est présent */
.mimethys-card--urgent .mimethys-card__body {
  padding-top: clamp(2rem, 4vw, 2.5rem);
}

/* ─── Titre ───────────────────────────────────────────────────── */
.mimethys-card__title {
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  font-weight: 700;
  color: var(--ms-color-text);
  line-height: 1.35;
  margin: 0;
  /* Limite à 3 lignes avec ellipsis */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ─── Méta-données ────────────────────────────────────────────── */
.mimethys-card__meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.mimethys-card__meta-item {
  display: flex;
  align-items: baseline;
  gap: 0.5em;
  font-size: 0.875rem;
  color: var(--ms-color-text-muted);
  line-height: 1.4;
}

.mimethys-card__meta-item--date {
  color: var(--ms-color-text);
  font-weight: 600;
}

.mimethys-card__meta-icon {
  flex-shrink: 0;
  font-size: 0.85em;
  line-height: 1;
  /* Alignement visuel de l'emoji */
  position: relative;
  top: 0.05em;
}

/* ─── Pied de carte ───────────────────────────────────────────── */
.mimethys-card__footer {
  padding: 0.625rem clamp(1rem, 3vw, 1.5rem);
  background: var(--ms-color-places-bg);
  border-top: 1px solid var(--ms-color-border);
  font-size: 0.8rem;
  font-weight: 600;
}

.mimethys-card__places {
  color: var(--ms-color-accent);
}

.mimethys-card__places--complet {
  color: var(--ms-color-complet);
}

/* ─── États vides / erreurs ───────────────────────────────────── */
.mimethys-empty,
.mimethys-error {
  font-size: 0.9rem;
  padding: 1rem;
  border-radius: var(--ms-radius);
  border: 1px solid var(--ms-color-border);
}

.mimethys-error {
  color: var(--ms-color-complet);
  border-color: var(--ms-color-complet);
  background: #fdecea;
}

/* ─── Responsive ──────────────────────────────────────────────── */

/* Mobile : 1 carte visible */
.mimethys-swiper {
  --swiper-slides-per-view: 1;
}

/* Tablette : 2 cartes */
@media (min-width: 40em) {
  .mimethys-btn-prev { left: -1rem; }
  .mimethys-btn-next { right: -1rem; }
}

/* Desktop : les slides-per-view sont gérés côté JS (3 cartes) */
@media (min-width: 64em) {
  .mimethys-btn-prev { left: -1.5rem; }
  .mimethys-btn-next { right: -1.5rem; }
}

/* ─── Respect préférence reduced-motion ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .mimethys-card {
    transition: none;
  }
  .mimethys-card:hover {
    transform: none;
  }
}
