/*
 * La grille publique des cotisations.
 *
 * La table des tarifs, sa raison de gel, sa légende, son défilement sur
 * écran étroit (includes/front-cotisations.php).
 *
 * Écrans : [cnpr_cotisations] (page « Cotisations et modalités »).
 *
 * Sa place dans la cascade est fixée par cnpr_insc_feuilles_front()
 * (includes/front-tunnel-core.php) : toutes les feuilles du front se
 * chargent partout où l'extension s'affiche, dans cet ordre, avant le thème.
 */

/* --- La grille publique des cotisations ([cnpr_cotisations]) --------------
   Reprise du thème, où elle vivait tant que la grille était tapée à la main.
   Elle ne lit que les jetons du contrat, AVEC UN REPLI LITTÉRAL, la convention
   de cette feuille : le module doit rester lisible sous un thème qui ne les
   définit pas. La vue « résumé » (pastilles de prix, grille repliée) est
   abandonnée — ses règles ne sont pas reprises.
   ---------------------------------------------------------------------- */
.cnpr-tarifs {
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.cnpr-tarifs__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(268px, 1fr));
    gap: 16px;
}

.cnpr-tarifs__group,
.cnpr-tarifs__panel {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px;
    background: var(--cnpr-fond, #ffffff);
    border: 1px solid var(--cnpr-filet, #d3eefb);
    border-radius: var(--cnpr-rayon, 20px);
    box-shadow: var(--cnpr-ombre, 0 8px 18px rgba(16, 32, 53, 0.08));
}

.cnpr-tarifs__group h3,
.cnpr-tarifs__panel h3 {
    margin: 0;
    color: var(--cnpr-couleur-titre, #1e3f94);
}
/* La police sous :where(), spécificité (0,0,1) : elle CÈDE à la règle
   `h3 { font-family }` du thème, chargé après — les deux thèmes du site en
   ont une, et c'est elle que ces titres rendaient. Sans thème, la police de
   titre du contrat. */
:where(.cnpr-tarifs__group, .cnpr-tarifs__panel) h3 {
    font-family: var(--cnpr-police-titre, inherit);
}

.cnpr-tarifs__note {
    margin: 0;
    font-size: .9rem;
}

.cnpr-tarifs__panel ul {
    margin: 0;
    padding-left: 1.1em;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cnpr-tarifs__stamp {
    margin: 0;
    font-size: .9rem;
}

/* Texte secondaire, QUALIFIÉ À TROIS CLASSES À DESSEIN — et c'est une mesure,
   pas un goût. Le thème pose `.page-standard .page-content p, … li { color:
   … }` en (0,2,1), et page.php donne la classe `page-standard` à
   toute page de contenu : une règle à une seule classe sur un <p> est donc
   morte sur les deux seules pages où ce module vit. Constaté avant que ce bloc
   n'existe : le chapô, les notes et l'horodatage calculaient rgb(26,36,51) au
   lieu du texte secondaire. Les <th> du tableau, eux, n'étaient pas touchés — ce qui
   rendait la chose facile à manquer. */
.cnpr-tarifs .cnpr-tarifs__head .cnpr-tarifs__lead,
.cnpr-tarifs .cnpr-tarifs__group .cnpr-tarifs__note,
.cnpr-tarifs .cnpr-tarifs__panel .cnpr-tarifs__stamp {
    color: var(--cnpr-couleur-texte-doux, #4c5f80);
}

/* La raison du gel, énoncée une fois au-dessus de la grille. Elle porte le
   poids d'un panneau plutôt que de traîner comme une phrase isolée. */
.cnpr-tarifs .cnpr-tarifs__attente {
    margin: 0;
    padding: 18px;
    background: var(--cnpr-fond, #ffffff);
    border: 1px solid var(--cnpr-filet, #d3eefb);
    border-radius: var(--cnpr-rayon, 20px);
    box-shadow: var(--cnpr-ombre, 0 8px 18px rgba(16, 32, 53, 0.08));
}

/* Masqué à l'œil, toujours lu à voix haute. Portée au module à dessein : le
   thème ne définit `.screen-reader-text` que sous `.news-list--blog +
   .pagination`, si bien que la classe conventionnelle de WordPress
   s'afficherait ici EN TEXTE VISIBLE. */
.cnpr-tarifs__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Au-dessus de la grille : elle ne doit pas se lire comme une note de table
   de plus. */
.cnpr-tarifs__roles {
    margin: 0;
    font-size: .95rem;
}

/* La table peut avoir à défiler sur un écran étroit ; la page, jamais. */
.cnpr-tarifs__scroll {
    overflow-x: auto;
}

.cnpr-tarifs__table {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.cnpr-tarifs__table th,
.cnpr-tarifs__table td {
    padding: 8px 6px;
    text-align: right;
    border-bottom: 1px solid var(--cnpr-filet, #d3eefb);
}

.cnpr-tarifs__table th[scope="row"] {
    text-align: left;
    font-weight: 600;
    color: var(--cnpr-couleur-texte, #16284f);
}

.cnpr-tarifs__table tbody tr:last-child th,
.cnpr-tarifs__table tbody tr:last-child td {
    border-bottom: none;
}

.cnpr-tarifs__table thead th {
    text-align: right;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .78rem;
    font-weight: 700;
    color: var(--cnpr-couleur-texte-doux, #4c5f80);
    border-bottom: 1px solid var(--cnpr-filet, #d3eefb);
}

.cnpr-tarifs__table thead th:first-child {
    text-align: left;
}

