/* =========================================================================
 * LBYLCL Grille — Ligne : styles du shadow root.
 *
 * Aucun token n'est DÉCLARÉ ici. La géométrie et les couleurs viennent du
 * `:host` de la grille, l'épaisseur de filet (`--lcl-pg-rule-w`) de la racine
 * de la section ; tous arrivent par héritage à travers l'arbre aplati (§ 5), et
 * chaque var() porte un repli littéral.
 *
 * Rien n'est animé ici : pas de bloc `prefers-reduced-motion`.
 * ========================================================================= */

/* Aucune largeur : c'est la section qui place la ligne (§ 6.5). */
:host {
  display: block;
  min-width: 0;
  font-family: var(--lcl-font-body, Inter, sans-serif);
}

/*
 * La grille partagée : colonne des libellés, puis zone des valeurs. Mêmes
 * valeurs que les panneaux de la section et que l'en-tête des offres — c'est
 * cette identité, et rien d'autre, qui aligne les colonnes d'un shadow root à
 * l'autre.
 *
 * `align-items: stretch` et non `center` : le libellé et la zone des cellules
 * doivent faire toute la hauteur de la ligne, sans quoi leurs deux filets ne
 * tomberaient pas à la même hauteur. Le centrage vertical se fait À
 * L'INTÉRIEUR de chacun.
 */
.maJOElO6tz7y7N0_uhkt {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: var(--lcl-pg-label-w, minmax(11rem, 31%)) minmax(0, 1fr);
  column-gap: var(--lcl-pg-gap, 12px);
  align-items: stretch;
  min-width: 0;
  min-height: var(--lcl-pg-row-min-h, 4.25rem);
  color: var(--lcl-pg-ink, #2a2240);
  /* `text-align` est hérité : une section Webflow centrée centrerait le
     libellé. La ligne impose le sien. */
  text-align: start;
}

.maJOElO6tz7y7N0_uhkt *,
.maJOElO6tz7y7N0_uhkt *::before,
.maJOElO6tz7y7N0_uhkt *::after {
  box-sizing: border-box;
}

/*
 * Deux filets et non un : un sous le libellé, un sous la zone des cellules.
 * Un filet unique traverserait l'écart entre les deux panneaux. La section
 * rogne celui de sa dernière ligne (voir PricingGridSection.module.css).
 */
.yIIjLYvytW57dFrT8YsX,
.C5prfRgKOTrjX1WzYR65 {
  min-width: 0;
  border-bottom: var(--lcl-pg-rule-w, 0px) solid var(--lcl-pg-divider, rgba(42, 34, 64, 0.12));
}

/*
 * Libellé simple : un nœud texte, item flex anonyme centré. Libellé enrichi :
 * le `div.w-richtext` slotté, centré de la même façon.
 */
.yIIjLYvytW57dFrT8YsX {
  display: flex;
  align-items: center;
  padding: 0.75rem var(--lcl-pg-pad-x, 0.75rem);
  font-family: var(--lcl-font-body, Inter, sans-serif);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.35;
  color: var(--lcl-pg-ink, #2a2240);
  text-align: start;
  overflow-wrap: break-word;
}

/*
 * Libellé enrichi : son contenu arrive SLOTTÉ, donc `.label p` ne matche rien
 * (§ 6.3). Corps, graisse et encre lui parviennent par héritage depuis `.label`
 * ; l'écart entre ses paragraphes — un paragraphe par libellé quand une ligne
 * en porte plusieurs — passe par une grille sur le nœud slotté, seul mécanisme
 * hors de portée des marges du site et de son « Line Height Trim » (§ 6.6).
 */
/* Une ligne pleine (`1lh`) : le trim du site retire un demi-interlignage en
   haut et en bas de chaque `<p>`, un petit écart les collerait. */
.yIIjLYvytW57dFrT8YsX > slot::slotted(*) {
  display: grid !important;
  row-gap: 1.35em !important;
  row-gap: 1lh !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/*
 * ═══ LE WRAPPER DE WEBFLOW EST STYLÉ, PAS NEUTRALISÉ ═══
 *
 * Même technique que `.panelInner` de NavEntry (§ 3.2) : le wrapper est le seul
 * nœud que `::slotted()` peut viser, il devient donc la grille des cellules,
 * une colonne par offre. `--lcl-pg-offers` est posé par la grille sur sa
 * racine et arrive par héritage.
 *
 * `.cells` n'est lui-même qu'une grille à une cellule : c'est ce qui étire le
 * wrapper sur toute la hauteur de la ligne, donc chaque cellule aussi — le
 * centrage vertical de la valeur appartient à la cellule.
 *
 * Le wrapper appartient à l'arbre du document, d'où les `!important` (§ 6.5).
 */
.C5prfRgKOTrjX1WzYR65 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.C5prfRgKOTrjX1WzYR65 > slot {
  display: contents;
}

.C5prfRgKOTrjX1WzYR65 > slot::slotted(*) {
  display: grid !important;
  grid-template-columns: repeat(var(--lcl-pg-offers, 1), minmax(0, 1fr)) !important;
  column-gap: var(--lcl-pg-gap, 12px) !important;
  align-items: stretch !important;
  align-self: stretch !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/* Le harnais Vite n'a ni shadow root ni `<slot>` : la règle ci-dessus y est
   inerte. Sans ce doublon, la mise en page n'y serait pas testable. Les deux ne
   s'appliquent jamais ensemble. */
.C5prfRgKOTrjX1WzYR65:not(:has(> slot)) {
  grid-template-columns: repeat(var(--lcl-pg-offers, 1), minmax(0, 1fr));
  column-gap: var(--lcl-pg-gap, 12px);
  align-items: stretch;
}

/* ─────────────────────────────── Mobile ─────────────────────────────── */
/*
 * < 768px : plus de colonne de libellés. Le libellé passe pleine largeur
 * au-dessus des cellules, qui gardent une colonne par offre.
 *
 * Le filet ne reste que sous les cellules : sous le libellé, il couperait la
 * ligne en deux.
 */
@media (max-width: 767px) {
  .maJOElO6tz7y7N0_uhkt {
    grid-template-columns: minmax(0, 1fr);
  }

  .yIIjLYvytW57dFrT8YsX {
    padding-bottom: 0;
    border-bottom: 0;
  }
}

