/* Pasivite 2.8.17.2 — Uniformisation publique sûre
   Principe : les cartes restent des cartes, les boutons existants restent des boutons,
   seuls les liens texte ordinaires deviennent des actions modernes.
   Aucun href, aucune route, aucun comportement métier n'est modifié. */

/* Règle visuelle générale : plus de lien public souligné façon ancien site. */
.public-body .main-content a[href] {
  text-decoration: none !important;
  text-underline-offset: 0 !important;
}

/* Les cartes cliquables existantes NE DOIVENT PAS devenir des boutons inline/flex.
   On conserve exactement leur structure (notamment strong + span empilés). */
.public-body .main-content a.info-card,
.public-body .main-content a.assistance-card,
.public-body .main-content a.psv-modern-card {
  position: relative;
  min-width: 0;
  color: inherit;
  text-decoration: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.public-body .main-content a.assistance-card {
  display: grid !important;
  gap: .4rem !important;
  padding-right: 3.2rem !important;
}

.public-body .main-content a.info-card:not(.assistance-card) {
  padding-right: 3.2rem;
}

.public-body .main-content a.info-card > strong,
.public-body .main-content a.assistance-card > strong,
.public-body .main-content a.info-card > span,
.public-body .main-content a.assistance-card > span {
  min-width: 0;
  width: auto;
  max-width: 100%;
  white-space: normal;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

.public-body .main-content a.info-card::after,
.public-body .main-content a.assistance-card::after,
.public-body .main-content a.psv-modern-card::after {
  content: "›";
  position: absolute;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  color: #3a267b;
  background: #f2efff;
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}

.public-body .main-content a.info-card:hover,
.public-body .main-content a.assistance-card:hover,
.public-body .main-content a.psv-modern-card:hover {
  border-color: #8f82d2 !important;
  box-shadow: 0 10px 24px rgba(35, 34, 91, .11);
  transform: translateY(-2px);
}

.public-body .main-content a.info-card:focus-visible,
.public-body .main-content a.assistance-card:focus-visible,
.public-body .main-content a.psv-modern-card:focus-visible {
  outline: 3px solid rgba(0, 192, 186, .38);
  outline-offset: 3px;
}

/* Boutons/actions déjà présents dans Pasivite : on ne change pas leur géométrie. */
.public-body .main-content a.big-button,
.public-body .main-content a.primary-button,
.public-body .main-content a.secondary-button,
.public-body .main-content a.emergency-choice,
.public-body .main-content a.tool-button {
  text-decoration: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

/* Uniquement les ANCIENS liens texte ordinaires deviennent de vrais boutons modernes. */
.public-body .main-content a.psv-action-button {
  --psv-action-bg: #ffffff;
  --psv-action-fg: #34226f;
  --psv-action-border: #bfc9e5;
  --psv-action-shadow: 0 7px 18px rgba(35, 34, 91, .09);

  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 46px;
  max-width: 100%;
  margin: .22rem .12rem .22rem 0;
  padding: .64rem .9rem;
  border: 1.5px solid var(--psv-action-border) !important;
  border-radius: 13px !important;
  background: var(--psv-action-bg) !important;
  color: var(--psv-action-fg) !important;
  box-shadow: var(--psv-action-shadow);
  font: inherit;
  font-weight: 800;
  line-height: 1.22;
  text-align: center;
  text-decoration: none !important;
  white-space: normal;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  vertical-align: middle;
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background-color .14s ease;
  -webkit-tap-highlight-color: transparent;
}

.public-body .main-content a.psv-action-button:hover {
  border-color: #7668bd !important;
  box-shadow: 0 10px 24px rgba(35, 34, 91, .13);
  transform: translateY(-1px);
}

.public-body .main-content a.psv-action-button:active {
  transform: translateY(0);
}

.public-body .main-content a.psv-action-button:focus-visible {
  outline: 3px solid rgba(0, 192, 186, .38);
  outline-offset: 3px;
}

.public-body .main-content a.psv-action-button--primary,
.public-body .main-content a.psv-action-button--service {
  --psv-action-bg: #3a267b;
  --psv-action-fg: #ffffff;
  --psv-action-border: #3a267b;
  --psv-action-shadow: 0 9px 22px rgba(58, 38, 123, .19);
}

.public-body .main-content a.psv-action-button--source {
  --psv-action-bg: #f7f9ff;
  --psv-action-fg: #34226f;
  --psv-action-border: #aebadb;
}

.public-body .main-content a.psv-action-button--back::before {
  content: "←";
  flex: 0 0 auto;
  font-size: 1.08em;
  line-height: 1;
}

.public-body .main-content a.psv-action-button--external::after,
.public-body .main-content a.psv-action-button--source::after {
  content: "↗";
  flex: 0 0 auto;
  font-size: .9em;
  opacity: .7;
}

.public-body .main-content a.psv-action-button--mail::before { content: "✉"; }
.public-body .main-content a.psv-action-button--tel::before { content: "☎"; }

/* Une ligne de source garde son texte descriptif puis présente un vrai bouton. */
.public-body .main-content .source-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .65rem;
}
.public-body .main-content .source-line > a.psv-action-button {
  margin: 0;
}

/* Les paragraphes comportant une action restent lisibles, sans forcer une largeur de colonne. */
.public-body .main-content p > a.psv-action-button,
.public-body .main-content li > a.psv-action-button,
.public-body .main-content dd > a.psv-action-button,
.public-body .main-content small > a.psv-action-button {
  max-width: 100%;
}

@media (max-width: 760px) {
  .public-body .main-content a.psv-action-button {
    min-height: 48px;
    padding: .7rem .82rem;
    border-radius: 14px !important;
  }

  .public-body .main-content a.assistance-card,
  .public-body .main-content a.info-card:not(.assistance-card) {
    padding-right: 3rem !important;
  }

  .public-body .main-content a.info-card::after,
  .public-body .main-content a.assistance-card::after,
  .public-body .main-content a.psv-modern-card::after {
    right: .8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-body .main-content a.psv-action-button,
  .public-body .main-content a.info-card,
  .public-body .main-content a.assistance-card,
  .public-body .main-content a.psv-modern-card {
    transition: none;
  }
}
