/* Lot 142 (sorti de la page au lot 176) : le sélecteur Mensuel / Annuel des prix par élève. */
.tp-bascule { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin: 0 0 1rem; padding: .3rem; border: 1px solid #b9d3c3; border-radius: 16px; background: #f1f7f3; max-width: 560px; }
.tp-btn { appearance: none; border: 0; background: transparent; color: #1E4630; font: inherit; font-weight: 700; padding: .6rem .8rem; border-radius: 12px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; min-height: 48px; text-align: center; transition: background-color .2s ease, color .2s ease; }
.tp-btn[aria-pressed="true"] { background: #2B6441; color: #fff; }
.tp-btn:focus-visible { outline: 3px solid #1E4630; outline-offset: 2px; }
.tp-badge { background: #F6D365; color: #3d2f00; border-radius: 999px; padding: .05rem .55rem; font-size: .75rem; font-weight: 800; }
.tp-eco { font-size: .8rem; font-weight: 600; text-wrap: balance; }
.tp-puce { display: inline-block; background: #F6D365; color: #3d2f00; border-radius: 999px; padding: .05rem .6rem; font-size: .8rem; font-weight: 800; margin-inline-end: .4rem; }
.carte.offre .prix.tarif-eleve { font-size: 1.3rem; line-height: 1.35; }
.tp-eco-montant { margin-top: .25rem; color: #1E4630; }
/* Les lignes de repli ne servent qu'au sélecteur ; sans lui (JavaScript absent), tout est montré une fois. */
.tp-repli { display: none; }
[data-bascule-tarif][data-vue="annuel"] .tp-mensuel { display: none; }
[data-bascule-tarif][data-vue="annuel"] .tp-annuel.tp-repli { display: block; }
[data-bascule-tarif][data-vue="mensuel"] .tp-annuel { display: none; }
[data-bascule-tarif][data-vue="mensuel"] .tp-mensuel.tp-repli { display: block; }
/* Un fondu sobre au basculement : ni clignotement ni mouvement brusque ; rien si la personne l'a demandé. */
@keyframes tp-entree { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
[data-bascule-tarif].tp-anime .tp { animation: tp-entree .28s ease-out; }
@media (prefers-reduced-motion: reduce) {
    [data-bascule-tarif].tp-anime .tp { animation: none; }
    .tp-btn { transition: none; }
}
