.osm-pricing-table-flat .osm-plan {
  background-color: #fff !important;
  border-radius: 16px;
  border: 1px solid var(--bleu-pale);
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
  border: 1px solid rgba(0,0,0,0.175) !important;
  .osm-plan-short-description li {padding: 0px 10px !important;}
}
.osm-pricing-table-flat, .osm-pricing-table-flat *, h2.osm-plan-title {
  color: var(--bleu) !important;border: none !important;font-weight: 400 !important;padding-bottom: 0px !important;
}
.osm-plan-price {
  text-align: center !important;
  padding-top: 10px !important;
  p, p sub {color:var(--rouge) !important;text-align: center;font-weight: normal !important;}
  p {font-size: 36px;}
}
.tarifs-abonnements {
  .highlight {color: var(--or) !important;margin-top: 0px;}
  .check {color: var(--rouge-vif) !important;}
}
.com-osmembership.view-profile #sp-main-body {padding-bottom: 30px;}
/* Onglet "Ton avis" (com_osmembership, vue profile) : rendu propre des champs injectes. */

/* Libelles en casse normale (annule les MAJUSCULES imposees par le template) */
.osm-ton-avis .form-control-label,
.osm-ton-avis .form-control-label label {
    text-transform: none !important;
    letter-spacing: normal;
}

/* Libelles longs : repli a la ligne (annule un eventuel nowrap du template) */
.osm-ton-avis .form-control-label,
.osm-ton-avis .form-control-label label {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip;
    overflow-wrap: break-word;
}

/* Empiler le libelle au-dessus du champ, sur toute la largeur (fin de la troncature) */
.osm-ton-avis .row.form-group {
    display: block;
    margin-bottom: 1.25rem;
}

.osm-ton-avis .form-control-label,
.osm-ton-avis .eb-form-control {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
}

.osm-ton-avis .form-control-label {
    margin-bottom: .35rem;
    font-weight: 600;
}

/* Champs texte / zone de texte en pleine largeur */
.osm-ton-avis .eb-form-control input[type="text"],
.osm-ton-avis .eb-form-control input[type="email"],
.osm-ton-avis .eb-form-control textarea {
    width: 100%;
}

.osm-ton-avis .eb-form-control textarea {
    min-height: 120px;
}

/* Cases a cocher / boutons radio resserres */
.osm-ton-avis .eb-form-control .checkbox,
.osm-ton-avis .eb-form-control .radio,
.osm-ton-avis .eb-form-control label.checkbox,
.osm-ton-avis .eb-form-control label.radio {
    display: block;
    margin: .15rem 0;
}

/* Champ "J'autorise la publication" (Radio) : options Oui/Non groupées a gauche.
   Cible les classes definies dans MP : conteneur = autorise-publi-conteneur, input = autorise-publi.
   Le rendu natif imbrique chaque option dans un .row > .col-md-12 (grille Bootstrap) qui
   ecarte les options ; on dissout cette grille avec display:contents pour que les labels
   deviennent des elements directs, alignes a gauche. */
.osm-ton-avis .autorise-publi-conteneur .oms-radio-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: .5rem 1.5rem;
}

.osm-ton-avis .autorise-publi-conteneur .oms-radio-container .row,
.osm-ton-avis .autorise-publi-conteneur .oms-radio-container .row > [class*="col-"] {
    display: contents !important;
}

.osm-ton-avis .autorise-publi-conteneur label.radio {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    width: auto;
    margin: 0;
}

.osm-ton-avis .autorise-publi-conteneur input.autorise-publi {
    position: static;
    margin: 0;
}
/* ------------------------------------------------------------------
   Page Inscription (com_osmembership, vue register) : compacter
   ------------------------------------------------------------------ */

/* 1. Champs compacts : padding 0.6rem -> 0.15rem */
#osm-signup-page-columns-form .form-control,
#osm-signup-page-columns-form .form-select,
#osm-signup-page-columns-form input[type=text],
#osm-signup-page-columns-form input[type=email],
#osm-signup-page-columns-form input[type=password],
#osm-signup-page-columns-form select,
#osm-signup-page-columns-form .input-group .form-control,
#osm-signup-page-columns-form .input-group .input-group-text,
#osm-signup-page-columns-form .osm-addon-container .form-control,
#osm-signup-page-columns-form .osm-addon-container .input-group-text {
    padding-top: .15rem !important;
    padding-bottom: .15rem !important;
    line-height: 1.4 !important;
}

/* 2. Prix / Montant : neutraliser la hauteur explicite des input-group */
#osm-signup-page-columns-form .input-group .form-control,
#osm-signup-page-columns-form .input-group .input-group-text,
#osm-signup-page-columns-form .osm-addon-container .form-control,
#osm-signup-page-columns-form .osm-addon-container .input-group-text {
    height: auto !important;
    min-height: 0 !important;
}

/* 3. Libelle a gauche pour TOUS les champs, colonne de libelles a 33 % */
#osm-signup-page-columns-form .row.form-group > .form-control-label {
    flex: 0 0 33%;
    max-width: 33%;
    padding-right: .75rem;
    padding-top: .25rem;
}
#osm-signup-page-columns-form .row.form-group > .controls,
#osm-signup-page-columns-form .row.form-group > .eb-form-control {
    flex: 0 0 67%;
    max-width: 67%;
}

/* 4. Politique de confidentialite : case a cocher DEVANT le texte, alerte degonflee */
#osm-signup-page-columns-form .osm-privacy-policy .eb-form-control > label {
    display: flex !important;
    align-items: flex-start;
    gap: .5rem;
    margin: 0;
}
#osm-signup-page-columns-form .osm-privacy-policy .form-check-input {
    flex: 0 0 auto;
    margin: .2rem 0 0 0;
}
#osm-signup-page-columns-form .osm-privacy-policy .osm-privacy-policy-message {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: .85rem;
    line-height: 1.35;
    color: inherit;
}
#osm-signup-page-columns-form .osm-terms-and-conditions-container .eb-form-control > label {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
}

/* 5. Mobile : on relache le padding (confort tactile) et on empile les libelles.
      >>> Retirer le second bloc pour garder les libelles a gauche en mobile. <<< */
@media (max-width: 767.98px) {
    #osm-signup-page-columns-form .form-control,
    #osm-signup-page-columns-form .form-select,
    #osm-signup-page-columns-form input[type=text],
    #osm-signup-page-columns-form input[type=email],
    #osm-signup-page-columns-form input[type=password],
    #osm-signup-page-columns-form select,
    #osm-signup-page-columns-form .input-group .form-control,
    #osm-signup-page-columns-form .input-group .input-group-text,
    #osm-signup-page-columns-form .osm-addon-container .form-control,
    #osm-signup-page-columns-form .osm-addon-container .input-group-text {
        padding-top: .4rem !important;
        padding-bottom: .4rem !important;
    }

    #osm-signup-page-columns-form .row.form-group > .form-control-label,
    #osm-signup-page-columns-form .row.form-group > .controls,
    #osm-signup-page-columns-form .row.form-group > .eb-form-control {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* 6. Boutons "afficher le mot de passe" : sans cela, le .btn garde son padding
      d'origine et etire tout l'input-group (43 px au lieu de 29). */
#osm-signup-page-columns-form .input-group .btn,
#osm-signup-page-columns-form .password-group .btn {
    padding-top: .15rem !important;
    padding-bottom: .15rem !important;
    height: auto !important;
    min-height: 0 !important;
    line-height: 1.4 !important;
}

@media (max-width: 767.98px) {
    #osm-signup-page-columns-form .input-group .btn,
    #osm-signup-page-columns-form .password-group .btn {
        padding-top: .4rem !important;
        padding-bottom: .4rem !important;
    }
}