/* ── Autres articles — card identique aux packs ── */
.cesa-articles .product-line {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: nowrap;
}

.cesa-articles .product-line__image {
  flex: 0 0 55px;
  width: 55px !important;
  padding: 0 !important;
}

.cesa-articles .product-line__image img {
  width: 55px;
  height: 55px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid #ddd;
}

.cesa-articles .product-line__content {
  flex: 1 1 auto;
  padding: 0 !important;
}

.cesa-articles .product-line__title {
  font-weight: 600;
  font-size: 0.95rem;
  color: #12324a;
  text-decoration: none;
  display: block;
  margin-bottom: 0.2rem;
}

.cesa-articles .product-line__informations {
  flex: 0 0 auto;
  padding: 0 !important;
  text-align: right;
}

.cesa-articles .product-line {
  flex-wrap: wrap;
}

.cesa-articles .product-line__actions {
  flex: 0 0 100%;
  display: flex;
  justify-content: flex-end;
  padding: 0.25rem 0 0 !important;
}

.cesa-articles .remove-from-cart {
  font-size: 0.8rem;
  color: #9ca3af;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
}

.cesa-articles .remove-from-cart:hover {
  color: #ef4444;
  text-decoration: none;
}

.cesa-articles .product-line > div:not([class*="product-line__"]) {
  display: none !important;
}

/* ── Alerte intervention urgence ── */
.cesa-urgent-notice {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  color: #78350f;
  padding: 0.75rem 1rem;
}

/* ── Bouton Renouveler mon créneau ── */
.cesa-renew-btn {
  background: #007c92;
  color: #fff;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 2px solid transparent;
  cursor: pointer;
  padding: 0.3rem 0.65rem;
  transition:
    background 0.18s,
    box-shadow 0.18s,
    transform 0.12s;
}

.cesa-renew-btn:hover {
  background: #005f70;
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 124, 146, 0.35);
  transform: translateY(-1px);
}

.cesa-renew-btn:active {
  transform: translateY(0);
  box-shadow: none;
}

/* ── Cadre autour de chaque article ── */
.cesa-article-line {
  border: 1px solid #e5e7eb !important;
  border-radius: 8px;
  padding: 0.75rem !important;
  margin-bottom: 0.75rem !important;
  background: #fafafa;
}

.cesa-article-line:last-child {
  margin-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* ── Fin autres articles ── */

/* ── Titre de section avec point orange ── */
.cesa-section-title::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #f59e0b;
  margin-right: 0.5rem;
  vertical-align: middle;
  position: relative;
  top: -1px;
  box-shadow: 0 0 0 5px rgba(24, 180, 190, 0.14);
}

.cesa-pack-header {
  margin: 20px 0 10px 0;
  padding: 10px 15px;
  background: #eef4ff;
  border-left: 5px solid #007bff;
  border-radius: 4px;
  font-weight: bold;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cesa-pack-header .badge {
  font-size: 14px;
  padding: 5px 10px;
}

.cesa-remove-pack {
  font-size: 12px;
}

.cesa-pack .card-header {
  font-size: 1.1rem;
}

.cesa-pack {
  border-width: 2px !important;
}

.cesa-pack .cart-detailed-product-line {
  border-bottom: 1px solid #ddd;
  padding-bottom: 12px;
  margin-bottom: 12px;
}

.cesa-pack .cart-detailed-product-line:last-child {
  border-bottom: none;
}

/* ── Info créneau RDV ── */
.cesa-pack-info-card {
  display: inline-flex;
  flex-direction: column;
  gap: 0.35rem;
  background: #f0f9fb;
  border: 1px solid #b2dfe6;
  border-radius: 8px;
  padding: 0.55rem 0.85rem;
  margin-bottom: 0.6rem;
  font-size: 0.88rem;
  color: #12324a;
}

.cesa-pack-info-card--expired {
  background: #fffbeb;
  border-color: #fcd34d;
  color: #78350f;
  position: relative;
  overflow: hidden;
}

.cesa-pack-info-card--expired::after {
  content: "EXPIRÉ";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  font-weight: 900;
  letter-spacing: 0.2em;
  color: #d97706;
  opacity: 0.45;
  pointer-events: none;
  white-space: nowrap;
  user-select: none;
  transform: rotate(-8deg);
}

.cesa-pack-info-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.cesa-pack-info-icon {
  font-size: 1rem;
  flex-shrink: 0;
}

/* ── Alerte hold global ── */
.cesa-cart-hold-alert {
  margin: 0 0 1.25rem;
  padding: 0.95rem 1rem;
  border-radius: 10px;
  border: 1px solid #bfe7ec;
  background: #f1fbfc;
  color: #12324a;
  display: grid;
  gap: 0.2rem;
}

.cesa-cart-hold-alert__title {
  font-size: 0.95rem;
  font-weight: 700;
}

.cesa-cart-hold-alert__text {
  font-size: 0.92rem;
  line-height: 1.45;
}

.cesa-cart-hold-alert__countdown {
  color: #14a2ab;
  font-weight: 800;
}

.cesa-cart-hold-alert--expired {
  border-color: #f1c3c3;
  background: #fff4f4;
  color: #7f1d1d;
}
