/* =============================================================================
   Lot 72b — Presets visuels stricts Entity Card
   Cible : front client + aperçus fidèles admin Type / Catégorie / Service

   Principe : le preset visuel définit le gabarit. L'entité ne fournit que les
   données (titre, description, bloc infos, action). Les cartes de gestion admin
   restent compactes, mais les aperçus fidèles et le front partagent les mêmes
   slots visuels.
   ============================================================================= */

/* ── 1. Contrat de slots commun : titre > séparateur > description > infos > action ── */
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card .card-content,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card .card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card .card-title { order: 1; }
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card .consultation-card-divider { order: 2; }
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card .card-description { order: 3; }
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card .consultation-card-feature { order: 4; }
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card .consultation-card-action { order: 5; }

/* ── 2. Preset strict : Carte avec image / image_soft ───────────────────────
   Le token image_soft correspond aujourd'hui à : background + compact +
   spiritual_centered. On cible les data-* plutôt que le type d'entité. */
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"],
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] {
  min-height: 360px;
  border-radius: 24px;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-content,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-content {
  flex: 1 1 auto;
  justify-content: center;
  gap: .68rem;
  padding: clamp(1.2rem, 3vw, 1.75rem) clamp(1.05rem, 3vw, 1.65rem);
  text-align: center;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-icon,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-icon {
  flex: 0 0 auto;
  margin: 0 auto .1rem;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-title,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-title {
  max-width: min(16ch, 100%);
  margin-inline: auto;
  font-size: clamp(1.55rem, 2.7vw, 2.25rem);
  line-height: 1.04;
  text-wrap: balance;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-description,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-description {
  max-width: min(28ch, 100%);
  margin: 0 auto;
  font-size: clamp(.86rem, 1.45vw, .98rem);
  line-height: 1.36;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature {
  width: min(100%, 260px);
  margin: .05rem auto 0;
  padding: .7rem .85rem;
  border-radius: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem .45rem;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-badge-style="glass_panel"] .consultation-card-feature,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card--badge-glass-panel .consultation-card-feature {
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 14px 35px rgba(40, 15, 70, .10);
  backdrop-filter: blur(10px);
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-action,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-action {
  width: min(100%, 260px);
  margin: .25rem auto 0;
}

/* ── 3. Les différences d'entité restent des données, pas un gabarit différent. */
:where(#step-service, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-entity-kind="service-item"] .public-entity-card__price,
:where(#step-service, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-entity-kind="service-item"] .service-duration-badge,
:where(#step-service, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-entity-kind="service-category"] .consultation-card-badge,
:where(#step-service, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-entity-kind="consultation-type"] .consultation-card-help {
  white-space: normal;
}

/* ── 4. Manager admin : même gabarit logique, mais version compacte. */
body[data-page="settings"] .entity-card-grid .entity-card-manager-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-content,
body[data-page="settings"] .entity-card-grid .consultation-preview-card--interactive[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .card-content {
  justify-content: center;
  text-align: center;
}

body[data-page="settings"] .entity-card-grid .entity-card-manager-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature,
body[data-page="settings"] .entity-card-grid .consultation-preview-card--interactive[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature {
  width: min(100%, 230px);
  margin-inline: auto;
}


/* ── Lot 72e : vue globale Aperçu client — mêmes slots que le front/slide ── */
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card .card-content,
body[data-page="settings"] .entity-card-grid--client-preview-mode .consultation-type-card .card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card .card-title { order: 1; }
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card .consultation-card-divider { order: 2; }
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card .card-description { order: 3; }
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card .consultation-card-feature { order: 4; }
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card .consultation-card-action { order: 5; }

body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature,
body[data-page="settings"] .entity-card-grid--client-preview-mode .consultation-type-card[data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature {
  width: min(100%, 260px);
  margin: .05rem auto 0;
  padding: .7rem .85rem;
  border-radius: 18px;
  display: flex !important;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem .45rem;
}

body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card[data-card-visual-badge-style="glass_panel"] .consultation-card-feature,
body[data-page="settings"] .entity-card-grid--client-preview-mode .consultation-type-card--badge-glass-panel .consultation-card-feature {
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 14px 35px rgba(40, 15, 70, .10);
  backdrop-filter: blur(10px);
}

body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card[data-entity-kind="service-item"] .public-entity-card__price,
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card[data-entity-kind="service-item"] .service-duration-badge,
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card[data-entity-kind="service-item"] .service-feature,
body[data-page="settings"] .entity-card-grid--client-preview-mode .public-entity-card[data-entity-kind="service-item"] .availability-badge {
  white-space: normal;
}

/* ── Lot 72g : front service — description non coupée dans le rendu client ──
   Les cartes services utilisent le même gabarit que les types/catégories, mais
   une prestation porte souvent une description métier plus longue. Le front ne
   doit pas afficher une coupure brutale avec points de suspension quand la carte
   a la place de grandir naturellement. */
#step-service .public-entity-card[data-entity-kind="service-item"] .card-description,
#step-service .public-entity-card[data-entity-kind="service-item"] .public-entity-card__description {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  overflow: visible !important;
  text-overflow: clip !important;
  max-height: none !important;
  max-width: min(34ch, 100%) !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-density="compact"] .card-description,
#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-density="compact"] .public-entity-card__description {
  line-height: 1.38 !important;
}

/* ── Lot 72h : front services — ne pas tronquer la description métier ────── */
#step-service .public-entity-card[data-entity-kind="service-item"] .card-description,
#step-service .public-entity-card[data-entity-kind="service-item"] .public-entity-card__description {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  overflow: visible !important;
  text-overflow: clip !important;
  max-height: none !important;
}

/* ── Lot 134 : service media hardening — rendu client final image/fallback ──
   Le moteur de carte reçoit maintenant un payload média BDD-first. Ces règles
   gardent un rendu lisible si l'image charge, si elle échoue, et sur mobile. */
.public-entity-card__media-probe {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
}

.public-entity-card[data-media-state="failed"] > .public-entity-card__media,
.public-entity-card[data-media-state="failed"] > .consultation-card-media,
.public-entity-card[data-media-state="failed"] > .consultation-preview-card__media {
  display: none !important;
  background-image: none !important;
}

.public-entity-card[data-media-state="failed"],
#step-service .public-entity-card[data-media-state="failed"] {
  background: var(--consultation-card-admin-background, var(--category-card-background, linear-gradient(135deg, #f7efff, #ede4f8))) !important;
  color: #332144 !important;
}

.public-entity-card[data-media-state="failed"] .card-title,
.public-entity-card[data-media-state="failed"] .card-description,
.public-entity-card[data-media-state="failed"] .consultation-card-help,
.public-entity-card[data-media-state="failed"] .consultation-card-badge,
#step-service .public-entity-card[data-media-state="failed"] .card-title,
#step-service .public-entity-card[data-media-state="failed"] .card-description,
#step-service .public-entity-card[data-media-state="failed"] .consultation-card-help,
#step-service .public-entity-card[data-media-state="failed"] .consultation-card-badge {
  color: #32134f !important;
  -webkit-text-fill-color: #32134f !important;
  text-shadow: none !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"][data-has-admin-image="true"],
#step-service .public-entity-card[data-entity-kind="service-category"][data-has-admin-image="true"] {
  isolation: isolate !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"] > .public-entity-card__media,
#step-service .public-entity-card[data-entity-kind="service-category"] > .public-entity-card__media {
  background-position: var(--consultation-card-image-position, center center) !important;
}

@media (max-width: 700px) {
  #step-service .service-grid--services.consultation-front-preview,
  #step-service .service-grid--categories.consultation-front-preview {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  #step-service .public-entity-card[data-entity-kind="service-item"],
  #step-service .public-entity-card[data-entity-kind="service-category"] {
    min-height: 230px !important;
    padding: 18px 16px 18px !important;
    border-radius: 20px !important;
  }

  #step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-density="hero"],
  #step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-density="hero"] {
    min-height: 260px !important;
  }

  #step-service .public-entity-card[data-has-admin-image="true"] > .consultation-card-media,
  #step-service .public-entity-card[data-has-admin-image="true"] > .consultation-preview-card__media,
  #step-service .public-entity-card[data-has-admin-image="true"] > .public-entity-card__media {
    background-image: var(--consultation-card-image-overlay), var(--consultation-card-mobile-image, var(--consultation-card-image)) !important;
  }
}

/* ── Lot 137 : parité réelle front/admin pour cartes services ───────────────
   Le slide admin promet un aperçu client fidèle. Le front #step-service ne doit
   donc jamais retomber sur l'ancien rendu "image en bandeau au-dessus du texte"
   quand une carte service/catégorie est configurée en mode background. */
#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"],
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  min-height: 390px !important;
  padding: 28px 24px 26px !important;
  background: transparent !important;
  box-shadow: 0 18px 44px rgba(49, 32, 67, .12) !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] > .consultation-card-media,
#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] > .consultation-preview-card__media,
#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__media,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] > .consultation-card-media,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] > .consultation-preview-card__media,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__media {
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: inherit !important;
  background-image: var(--consultation-card-image-overlay), var(--consultation-card-image) !important;
  background-size: cover !important;
  background-position: var(--consultation-card-image-position, center center) !important;
  background-repeat: no-repeat !important;
  box-shadow: none !important;
  transform: none !important;
  pointer-events: none !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] > .card-icon,
#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] > .card-content,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] > .card-icon,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] > .card-content {
  position: relative !important;
  z-index: 1 !important;
}

#step-service .public-entity-card[data-card-visual-mode="background"][data-card-visual-layout="centered"] > .card-content,
#step-service .public-entity-card[data-card-visual-mode="background"][data-card-visual-layout="spiritual_centered"] > .card-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 12px !important;
  width: 100% !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-feature {
  width: min(100%, 260px) !important;
  margin: .05rem auto 0 !important;
  padding: .7rem .85rem !important;
  border-radius: 18px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: .35rem .45rem !important;
}

#step-service .public-entity-card[data-card-visual-mode="background"][data-card-visual-badge-style="glass_panel"] .consultation-card-feature {
  background: rgba(255,255,255,.76) !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  box-shadow: 0 14px 35px rgba(40, 15, 70, .10) !important;
  backdrop-filter: blur(10px) !important;
}

#step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-action,
#step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-card-visual-density="compact"][data-card-visual-layout="spiritual_centered"] .consultation-card-action {
  width: min(100%, 260px) !important;
  margin: .25rem auto 0 !important;
}

@media (max-width: 700px) {
  #step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"],
  #step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] {
    min-height: 340px !important;
    padding: 24px 20px 22px !important;
  }

  #step-service .public-entity-card[data-has-admin-image="true"] > .consultation-card-media,
  #step-service .public-entity-card[data-has-admin-image="true"] > .consultation-preview-card__media,
  #step-service .public-entity-card[data-has-admin-image="true"] > .public-entity-card__media {
    background-image: var(--consultation-card-image-overlay), var(--consultation-card-mobile-image, var(--consultation-card-image)) !important;
  }
}

/* ── Lot 138 : contrat runtime anti-bandeau legacy ──────────────────────────
   Certains wrappers ou caches peuvent encore exposer l'ancien DOM avec
   `.service-card-header` en bandeau haut. Dès qu'une carte publique est
   déclarée en mode background + image admin, ce header est forcé en calque de
   fond afin que le rendu reste identique à l'aperçu fidèle admin. */
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .service-card-header,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__legacy-media-layer {
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  pointer-events: none !important;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .service-card-header::before,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__legacy-media-layer::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: block !important;
  background: var(--consultation-card-image-overlay, var(--consultation-preview-overlay, linear-gradient(180deg, rgba(255,255,255,.84), rgba(250,245,255,.72)))) !important;
  pointer-events: none !important;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .service-card-header .service-card-media,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .service-card-header .service-card-media-picture,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__legacy-media-layer .service-card-media,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__legacy-media-layer .service-card-media-picture {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: inherit !important;
  object-fit: cover !important;
  object-position: var(--consultation-card-image-position, var(--service-media-position, center center)) !important;
  background-image: var(--consultation-card-image) !important;
  background-size: cover !important;
  background-position: var(--consultation-card-image-position, center center) !important;
  background-repeat: no-repeat !important;
  box-shadow: none !important;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .service-card-header > :not(.service-card-media):not(.service-card-media-picture),
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-visual-mode="background"][data-has-admin-image="true"] > .public-entity-card__legacy-media-layer > :not(.service-card-media):not(.service-card-media-picture) {
  display: none !important;
}

:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-renderer="entity-card-engine"] > .card-icon,
:where(#step-service, #step-consultation-type, .consultation-front-preview--client-fidelity)
  .public-entity-card[data-card-renderer="entity-card-engine"] > .card-content {
  position: relative !important;
  z-index: 1 !important;
}

/* ── Lot 139 : densité de visibilité front-office ───────────────────────────
   Objectif : privilégier la lecture au-dessus de la ligne de flottaison.
   Les aperçus admin restent fidèles au moteur, mais le front impose une densité
   plus basse pour les étapes de choix afin d'éviter les cartes monumentales. */
html body #step-consultation-type.active .content-header,
html body #step-service.active .content-header {
  padding-top: 20px !important;
  padding-bottom: 12px !important;
}

html body #step-consultation-type.active .content-body,
html body #step-service.active .content-body {
  padding-top: 12px !important;
}

html body #step-consultation-type .location-options {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)) !important;
  gap: 14px !important;
  align-items: start !important;
}

@media (min-width: 1000px) {
  html body #step-consultation-type .location-options {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

html body #step-service .service-grid.consultation-front-preview,
html body #step-service .service-grid--categories.consultation-front-preview,
html body #step-service .service-grid--services.consultation-front-preview {
  gap: 14px !important;
  align-items: start !important;
}

html body #step-service .service-grid--categories.consultation-front-preview {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 205px), 1fr)) !important;
}

html body #step-service .service-grid--services.consultation-front-preview {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)) !important;
}

@media (min-width: 1000px) {
  html body #step-service .service-grid--categories.consultation-front-preview {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

html body #step-consultation-type .consultation-type-card.consultation-type-card--visual-background,
html body #step-consultation-type .consultation-type-card[data-card-visual-mode="background"] {
  min-height: 232px !important;
  padding: 16px 14px 15px !important;
  border-radius: 20px !important;
}

html body #step-consultation-type .consultation-type-card[data-card-visual-density="standard"],
html body #step-consultation-type .consultation-type-card.consultation-type-card--density-standard,
html body #step-consultation-type .consultation-type-card[data-card-visual-density="hero"],
html body #step-consultation-type .consultation-type-card.consultation-type-card--density-hero {
  min-height: 248px !important;
  padding: 17px 15px 16px !important;
}

html body #step-consultation-type .consultation-type-card > .card-icon.consultation-icon,
html body #step-consultation-type .consultation-type-card[data-card-visual-icon-style="medallion"] > .card-icon.consultation-icon {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  margin: 0 auto 4px !important;
  font-size: 1.15rem !important;
}

html body #step-consultation-type .consultation-type-card .card-content {
  gap: 6px !important;
  justify-content: center !important;
}

html body #step-consultation-type .consultation-type-card .card-title {
  max-width: 14ch !important;
  font-size: clamp(1.05rem, 1.42vw, 1.42rem) !important;
  line-height: 1.05 !important;
  margin-bottom: 0 !important;
}

html body #step-consultation-type .consultation-type-card .consultation-card-divider {
  width: min(120px, 58%) !important;
  height: 12px !important;
  margin: 0 auto !important;
}

html body #step-consultation-type .consultation-type-card .card-description,
html body #step-consultation-type .consultation-type-card .consultation-card-help {
  font-size: .78rem !important;
  line-height: 1.25 !important;
}

html body #step-consultation-type .consultation-type-card .consultation-card-feature {
  width: min(100%, 210px) !important;
  padding: 7px 9px !important;
  border-radius: 16px !important;
}

html body #step-consultation-type .consultation-type-card .consultation-card-action {
  width: min(100%, 205px) !important;
  min-height: 34px !important;
  padding: 0 12px !important;
  font-size: .78rem !important;
}

html body #step-service .public-entity-card.consultation-type-card {
  border-radius: 20px !important;
  padding: 15px 14px 14px !important;
}

html body #step-service .public-entity-card[data-entity-kind="service-category"],
html body #step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"] {
  min-height: 210px !important;
  padding: 14px 14px 13px !important;
}

html body #step-service .public-entity-card[data-entity-kind="service-item"],
html body #step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] {
  min-height: 238px !important;
  padding: 16px 15px 14px !important;
}

html body #step-service .public-entity-card[data-card-visual-density="hero"],
html body #step-service .public-entity-card[data-card-visual-density="hero"][data-has-admin-image="true"] {
  min-height: 258px !important;
}

html body #step-service .public-entity-card .card-content {
  gap: 7px !important;
  justify-content: center !important;
}

html body #step-service .public-entity-card .card-icon {
  transform: scale(.78) !important;
  margin-bottom: .08rem !important;
}

html body #step-service .public-entity-card .card-title {
  font-size: clamp(1.08rem, 1.38vw, 1.52rem) !important;
  line-height: 1.05 !important;
  margin-bottom: .08rem !important;
  -webkit-line-clamp: 3 !important;
}

html body #step-service .public-entity-card[data-entity-kind="service-item"] .card-title {
  font-size: clamp(1.18rem, 1.52vw, 1.66rem) !important;
}

html body #step-service .public-entity-card .consultation-card-divider {
  width: min(132px, 56%) !important;
  height: 12px !important;
  margin: 0 auto .04rem !important;
}

html body #step-service .public-entity-card .card-description,
html body #step-service .public-entity-card .consultation-card-help {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  font-size: .8rem !important;
  line-height: 1.28 !important;
  margin: 0 !important;
}

html body #step-service .public-entity-card .consultation-card-feature,
html body #step-service .public-entity-card .public-entity-card__feature {
  width: min(100%, 220px) !important;
  margin: .08rem auto .12rem !important;
  padding: 7px 9px !important;
  border-radius: 15px !important;
  gap: 4px !important;
}

html body #step-service .public-entity-card .public-entity-card__meta,
html body #step-service .public-entity-card .service-feature,
html body #step-service .public-entity-card .availability-badge {
  padding: 3px 8px !important;
  font-size: .66rem !important;
}

html body #step-service .public-entity-card .consultation-card-action,
html body #step-service .public-entity-card .public-entity-card__action {
  width: min(100%, 220px) !important;
  min-height: 34px !important;
  padding: 0 13px !important;
  font-size: .78rem !important;
  margin-top: .18rem !important;
}

@media (max-width: 900px) {
  html body #step-consultation-type .location-options,
  html body #step-service .service-grid--categories.consultation-front-preview,
  html body #step-service .service-grid--services.consultation-front-preview {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) !important;
  }
}

@media (max-width: 640px) {
  html body #step-consultation-type .location-options,
  html body #step-service .service-grid--categories.consultation-front-preview,
  html body #step-service .service-grid--services.consultation-front-preview {
    grid-template-columns: 1fr !important;
  }

  html body #step-consultation-type .consultation-type-card.consultation-type-card--visual-background,
  html body #step-consultation-type .consultation-type-card[data-card-visual-mode="background"],
  html body #step-service .public-entity-card[data-entity-kind="service-category"],
  html body #step-service .public-entity-card[data-entity-kind="service-item"] {
    min-height: 190px !important;
  }
}


/* ── Lot 139B : densité lisible — 2 cartes par ligne + descriptions complètes ──
   Correctif du lot 139 : la grille 4 colonnes compressait les cartes, les textes
   et les CTA. Le tunnel garde une densité raisonnable, mais privilégie la
   lisibilité et la compréhension du choix. */
html body #step-consultation-type.active .content-header,
html body #step-service.active .content-header {
  padding-top: 22px !important;
  padding-bottom: 14px !important;
}

html body #step-consultation-type.active .content-body,
html body #step-service.active .content-body {
  padding-top: 14px !important;
}

html body #step-consultation-type .location-options,
html body #step-service .service-grid--categories.consultation-front-preview,
html body #step-service .service-grid--services.consultation-front-preview {
  grid-template-columns: 1fr !important;
  gap: 18px !important;
  align-items: stretch !important;
}

@media (min-width: 780px) {
  html body #step-consultation-type .location-options,
  html body #step-service .service-grid--categories.consultation-front-preview,
  html body #step-service .service-grid--services.consultation-front-preview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 1180px) {
  html body #step-consultation-type .location-options,
  html body #step-service .service-grid--categories.consultation-front-preview,
  html body #step-service .service-grid--services.consultation-front-preview {
    max-width: 760px !important;
  }
}

html body #step-consultation-type .consultation-type-card.consultation-type-card--visual-background,
html body #step-consultation-type .consultation-type-card[data-card-visual-mode="background"],
html body #step-service .public-entity-card[data-entity-kind="service-category"],
html body #step-service .public-entity-card[data-entity-kind="service-category"][data-card-visual-mode="background"][data-has-admin-image="true"],
html body #step-service .public-entity-card[data-entity-kind="service-item"],
html body #step-service .public-entity-card[data-entity-kind="service-item"][data-card-visual-mode="background"][data-has-admin-image="true"] {
  min-height: 320px !important;
  padding: 22px 20px 20px !important;
  border-radius: 23px !important;
}

html body #step-consultation-type .consultation-type-card[data-card-visual-density="hero"],
html body #step-consultation-type .consultation-type-card.consultation-type-card--density-hero,
html body #step-service .public-entity-card[data-card-visual-density="hero"],
html body #step-service .public-entity-card[data-card-visual-density="hero"][data-has-admin-image="true"] {
  min-height: 340px !important;
}

html body #step-consultation-type .consultation-type-card > .card-icon.consultation-icon,
html body #step-consultation-type .consultation-type-card[data-card-visual-icon-style="medallion"] > .card-icon.consultation-icon,
html body #step-service .public-entity-card .card-icon {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  transform: none !important;
  margin: 0 auto 6px !important;
  font-size: 1.18rem !important;
}

html body #step-consultation-type .consultation-type-card .card-content,
html body #step-service .public-entity-card .card-content {
  gap: 8px !important;
  justify-content: center !important;
}

html body #step-consultation-type .consultation-type-card .card-title,
html body #step-service .public-entity-card .card-title,
html body #step-service .public-entity-card[data-entity-kind="service-item"] .card-title {
  max-width: min(18ch, 100%) !important;
  font-size: clamp(1.42rem, 2.05vw, 2rem) !important;
  line-height: 1.08 !important;
  margin-bottom: .06rem !important;
  overflow: visible !important;
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  text-wrap: balance !important;
}

html body #step-consultation-type .consultation-type-card .consultation-card-divider,
html body #step-service .public-entity-card .consultation-card-divider {
  width: min(160px, 62%) !important;
  height: 14px !important;
  margin: 0 auto .05rem !important;
}

html body #step-consultation-type .consultation-type-card .card-description,
html body #step-consultation-type .consultation-type-card .consultation-card-help,
html body #step-service .public-entity-card .card-description,
html body #step-service .public-entity-card .consultation-card-help,
html body #step-service .public-entity-card .public-entity-card__description {
  display: block !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  overflow: visible !important;
  max-width: min(32ch, 100%) !important;
  font-size: .9rem !important;
  line-height: 1.36 !important;
  margin: 0 auto !important;
}

html body #step-consultation-type .consultation-type-card .consultation-card-feature,
html body #step-service .public-entity-card .consultation-card-feature,
html body #step-service .public-entity-card .public-entity-card__feature {
  width: min(100%, 270px) !important;
  margin: .12rem auto .18rem !important;
  padding: 10px 13px !important;
  border-radius: 17px !important;
  gap: 6px !important;
}

html body #step-service .public-entity-card .public-entity-card__meta,
html body #step-service .public-entity-card .service-feature,
html body #step-service .public-entity-card .availability-badge {
  padding: 4px 10px !important;
  font-size: .73rem !important;
}

html body #step-consultation-type .consultation-type-card .consultation-card-action,
html body #step-service .public-entity-card .consultation-card-action,
html body #step-service .public-entity-card .public-entity-card__action {
  width: min(100%, 270px) !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  font-size: .86rem !important;
  margin-top: .2rem !important;
  white-space: normal !important;
}

@media (max-width: 640px) {
  html body #step-consultation-type .consultation-type-card.consultation-type-card--visual-background,
  html body #step-consultation-type .consultation-type-card[data-card-visual-mode="background"],
  html body #step-service .public-entity-card[data-entity-kind="service-category"],
  html body #step-service .public-entity-card[data-entity-kind="service-item"] {
    min-height: 300px !important;
    padding: 20px 18px 18px !important;
  }
}

/* Lot247E : densité publique centralisée dans js/entity-card-engine.js. */
