/* =================================================================
 * RestauVert · UTILITIES (classes pour remplacer les inline styles)
 * Construites sur les tokens theme.css canoniques.
 * Chargé après urgent-fixes.css.
 * ================================================================= */

/* ───── TEXTE ───── */
.rv-text-body          { color: var(--rv-text-800, #2E4338); line-height: 1.7; }
.rv-text-loose         { color: var(--rv-text-800, #2E4338); line-height: 1.85; }
.rv-text-loose-indent  { color: var(--rv-text-800, #2E4338); line-height: 1.85; padding-left: 1.4rem; }
.rv-text-soft-92       { color: var(--rv-text-800, #2E4338); font-size: 0.92rem; }
.rv-text-emerald       { color: var(--rv-green-600, #1a4e30); }
.rv-text-emerald-bold  { color: var(--rv-green-600, #1a4e30); font-weight: 600; }
.rv-text-emerald-mid   { color: var(--rv-text-mid, #2E4338); line-height: 1.8; margin-bottom: 1.5rem; }
.rv-center             { text-align: center; }

/* ───── HEADINGS FRAUNCES ───── */
.rv-h3-fraunces {
  font-family: var(--rv-font-display, 'Fraunces', Georgia, serif);
  color: var(--rv-green-600, #1a4e30);
  font-size: 1.4rem;
  margin: 2rem 0 1rem;
  line-height: 1.3;
}
.rv-h3-fraunces-sm {
  font-family: var(--rv-font-display, 'Fraunces', Georgia, serif);
  color: var(--rv-green-600, #1a4e30);
  font-size: 1.2rem;
  margin: 0 0 0.6rem;
  line-height: 1.3;
}

/* ───── BADGES & LABELS ───── */
.rv-badge-gold-soft {
  display: inline-block;
  padding: 8px 14px;
  background: rgba(201, 162, 78, 0.18);
  color: var(--rv-gold-600, #8B6F1F);
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.85rem;
}

/* ───── TABLE CELLS ───── */
.rv-cell-light {
  padding: 0.8rem;
  border: 1px solid var(--rv-light, #E8E2D2);
  background: #fff;
}
.rv-cell-cream {
  padding: 0.8rem;
  border: 1px solid var(--rv-light, #E8E2D2);
  background: var(--rv-cream-100, #FAF7EE);
}
.rv-cell-right {
  padding: 0.8rem;
  text-align: right;
}
.rv-cell-emerald-border {
  padding: 0.8rem;
  text-align: left;
  border: 1px solid var(--rv-green-600, #1a4e30);
}

/* ───── ICONES 3D ───── */
.rv-icon-emerald-3d {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 11px;
  background: linear-gradient(145deg, var(--rv-green-500, #2D7A52), var(--rv-green-600, #1a4e30));
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.18),
              inset 1px 1px 2px rgba(255, 255, 255, 0.15);
}
.rv-icon-gold-text {
  font-size: 28px;
  background: linear-gradient(to bottom,
              var(--rv-gold-200, #fde047) 0%,
              var(--rv-gold-500, #c9a24e) 45%,
              var(--rv-gold-700, #6B5217) 80%,
              #5c4705 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  filter: drop-shadow(0px 2px 1.5px rgba(0, 0, 0, 0.6));
}

/* ───── LAYOUT HELPERS ───── */
.rv-mt-3   { margin-top: 12px; }
.rv-mt-12  { margin-top: 3rem; }
.rv-w-0    { width: 0; }

/* =================================================================
 * ───── ICÔNES FONT AWESOME (alignement & cohérence) ─────
 * Garantit l'alignement vertical des <i class="fa-solid ...">
 * dans tous les contextes : boutons, badges, liens, listes.
 * Ajouté 2026-05-31.
 * ================================================================= */

/* Icône inline avec texte : marge à droite, alignement baseline */
.btn i.fa-solid,
.btn i.fa-regular,
.btn i.fa-brands,
a i.fa-solid,
a i.fa-regular,
a i.fa-brands,
.rv-badge-gold-soft i,
.service-badge i,
.lead-mockup-badge i,
.rh-card-meta i {
  display: inline-block;
  margin-right: 0.4em;
  vertical-align: -0.08em;
  color: currentColor;
}

/* Icônes en début de paragraphe (messages succès/erreur) */
p > i.fa-solid:first-child,
strong > i.fa-solid:first-child {
  margin-right: 0.45em;
  vertical-align: -0.08em;
}

/* Icônes dans les <i class="ico"> (personas) */
i.fa-solid.ico {
  margin-right: 0.5em;
  vertical-align: -0.05em;
}

/* Icônes FA dans les conteneurs .rv-typo-icon (cards de typologies) */
.rv-typos-grid .rv-typo-icon i.fa-solid,
.rv-typo-card .rv-typo-icon i.fa-solid,
span.rv-typo-icon > i.fa-solid {
  display: inline-block !important;
  font-size: 1.6rem !important;
  line-height: 1 !important;
  color: #fde047 !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

/* État focus visible cohérent sur tous les boutons icônes */
button:focus-visible i.fa-solid,
a:focus-visible i.fa-solid {
  outline: none; /* l'outline est sur le parent */
}

/* === FIX : Égalisation hauteur cards .step (section processus 4 temps) === */
.steps {
  display: flex !important;
  align-items: stretch !important;
  flex-wrap: wrap;
}
.steps > .step {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  height: auto;
}
.steps > .step > p {
  flex-grow: 1; /* le paragraphe absorbe l'espace restant */
}
@media (max-width: 768px) {
  .steps > .step {
    flex-direction: column;
  }
  .steps > .step > p {
    flex-grow: 0;
  }
}

/* === A11Y : Screen Reader Only =================================== */
.rv-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
