/*!
 * bee-moderne.css — couche de modernisation visuelle.
 * <custom_R pilote UI moderne - 2026-08-01>
 *
 * POURQUOI CE FICHIER
 * Le theme flatty date de l'ere Bootstrap 3 : bordures dures, typographie
 * dense, formulaires bruts. Objectif : ramener le site au niveau visuel du
 * theme Gwangi (WordPress) que Loic preferait — cartes, blancs, angles
 * doux, avatars soignes — sans toucher a la plateforme.
 *
 * REGLES DU JEU
 *  - une COUCHE, pas une refonte : ce fichier se charge apres les feuilles
 *    des jeux (sets) et ne modifie que la forme. Les COULEURS d'accent de
 *    chaque verticale (love/hot/friend/bee) restent celles des sets ;
 *  - loge dans uploads/ : les mises a jour DatingPro n'y touchent pas
 *    (meme survie que uploads/themes-fixed/pleasure) ;
 *  - reversible en retirant une balise <link> dans header.twig.
 *
 * FONDATIONS reprises de Gwangi (lu sur lib.bee.nc, theme gwangi/gwangi-child) :
 * pile Lato/system, rayons 0.25-1rem et pilules (500px), ombres discretes.
 *
 * Perimetre du pilote : recherche + en-tete + composants globaux
 * (boutons, formulaires, badges). Versionner via ?v= dans header.twig.
 */

:root {
    --bee-encre: #241c21;
    --bee-sourdine: #877a81;
    --bee-trait: #ece4e8;
    --bee-fond: #faf7f9;
    --bee-rayon: 16px;
    --bee-rayon-s: 10px;
    --bee-ombre: 0 1px 2px rgba(30, 20, 26, .05), 0 10px 28px -14px rgba(30, 20, 26, .22);
    --bee-ombre-haute: 0 2px 4px rgba(30, 20, 26, .06), 0 18px 40px -16px rgba(30, 20, 26, .28);
}

/* ---------------------------------------------------------- typographie */
body {
    font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI",
        Roboto, "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    color: var(--bee-encre);
}

/* ------------------------------------------------------------- en-tete */
.navbar-flatty {
    box-shadow: 0 1px 0 var(--bee-trait), 0 6px 22px -18px rgba(30, 20, 26, .35);
    border: 0;
}
.navbar-flatty .menu-item > a {
    border-radius: 999px;
    transition: background-color .15s ease;
}
.navbar-flatty .menu-item > a:hover {
    background-color: var(--bee-fond);
}

/* --------------------------------------- cartes de profil (recherche) */
.g-users-gallery__item {
    padding: 9px;
}
.g-users-gallery__content {
    background: #fff;
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease;
}
.g-users-gallery__content:hover {
    transform: translateY(-3px);
    box-shadow: var(--bee-ombre-haute);
}
/* portraits uniformes : le damier de hauteurs inegales fait 2015 */
.g-users-gallery__photo img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.g-pic-border {
    border: 0;
    padding: 0;
}
.g-users-gallery__info {
    padding: 10px 14px 13px;
    margin: 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--bee-sourdine);
}
.g-users-gallery__name {
    font-size: 15px;
    font-weight: 700;
    color: var(--bee-encre);
}
.g-users-gallery__name:hover {
    text-decoration: none;
}

/* badge d'activite : pastille lisible posee sur la photo */
.bee-actif {
    border-radius: 999px;
    padding: 4px 11px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

/* ------------------------------------------------------------- boutons */
.btn {
    border-radius: 999px;
    font-weight: 600;
    letter-spacing: .01em;
    transition: filter .15s ease, transform .1s ease, box-shadow .15s ease;
}
.btn:hover {
    filter: brightness(1.06);
}
.btn:active {
    transform: scale(.97);
}
.btn-default {
    border-color: var(--bee-trait);
    background-color: #fff;
}
.btn-default:hover {
    border-color: var(--bee-sourdine);
    background-color: #fff;
}

/* --------------------------------------------------------- formulaires */
.form-control,
select.form-control,
input.form-control {
    border-radius: var(--bee-rayon-s);
    border-color: var(--bee-trait);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:focus {
    border-color: var(--bee-sourdine);
    box-shadow: 0 0 0 3px rgba(30, 20, 26, .07);
}

/* ------------------------------------------- filtres de recherche */
.f-block {
    background: #fff;
    border: 0;
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    padding: 14px 16px;
    margin-bottom: 14px;
}
.f-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bee-encre);
}

/* ---------------------------------------------------------- pagination */
.search-top-pager .pages a,
.pages a {
    border-radius: 999px;
    transition: background-color .15s ease;
}
.search-top-pager .pages a:hover,
.pages a:hover {
    background-color: var(--bee-fond);
    text-decoration: none;
}

/* --------------------------------- respect des preferences systeme */
@media (prefers-reduced-motion: reduce) {
    .g-users-gallery__content,
    .btn {
        transition: none;
    }
    .g-users-gallery__content:hover {
        transform: none;
    }
}

/* ====================================================================
 * Extension du 01/08 (v20260801b) — PROFIL + MESSAGERIE
 * Pilote recherche valide par Loic. Meme regle : la forme, pas les
 * couleurs d'accent (les fonds de bulles restent ceux des verticales).
 * ==================================================================== */

/* ------------------------------------------------------------- profil */
.section-header {
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bee-encre);
    border: 0;
}
.field-block {
    padding: 9px 0;
    border-bottom: 1px solid var(--bee-trait);
}
.field-block:last-child {
    border-bottom: 0;
}
.field-name {
    color: var(--bee-sourdine);
    font-size: 13px;
}
.field-info {
    color: var(--bee-encre);
    font-size: 14px;
}
.example-fields {
    color: var(--bee-sourdine);
    font-style: italic;
    font-size: 13px;
}
/* vignettes de services (Acces gratuit, Membre vedette...) */
.mag-services__item {
    border-radius: var(--bee-rayon-s);
    transition: background-color .15s ease, transform .15s ease;
}
.mag-services__item:hover {
    background-color: var(--bee-fond);
    transform: translateY(-2px);
}
/* onglets du profil (MUR / PROFIL) */
.magazine-profile__tabs li a {
    border-radius: 999px;
    padding: 4px 12px;
    transition: background-color .15s ease;
}
.magazine-profile__tabs li a:hover {
    background-color: var(--bee-fond);
    text-decoration: none;
}

/* --------------------------------------------------------- messagerie */
.chatbox {
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
}
.chatbox-users__filter {
    border-bottom: 1px solid var(--bee-trait);
}
/* lignes de contacts : survol doux au lieu du gris dur #DDD */
.chatbox-users__user,
.chatbox-users__user:hover,
.chatbox-users__user.active {
    border-top: 1px solid var(--bee-trait);
}
.chatbox-users__user:hover {
    background: var(--bee-fond);
}
.chatbox-users__user.active {
    background: #f5eef3;
}
/* avatars ronds — la signature Gwangi */
.chatbox-users__photo img,
.chatbox-messages__userlogo img {
    border-radius: 999px;
    border: 0;
}
/* bulles : angles genereux, pointe discrete ; le FOND reste celui du set */
.chatbox-messages__bubble {
    box-shadow: 0 1px 2px rgba(30, 20, 26, .07);
    line-height: 1.45;
}
.chatbox-messages__bubble-left {
    border: 0;
    background: #f4eff2;
    border-radius: 18px 18px 18px 5px;
}
.chatbox-messages__bubble-right {
    border-radius: 18px 18px 5px 18px;
}
.chatbox-messages__timing {
    color: var(--bee-sourdine);
}
/* zone de saisie */
.chatbox textarea.form-control,
.chatbox input.form-control {
    border-radius: var(--bee-rayon-s);
}

/* ------------------------------------------------ composants globaux */
.badge {
    border-radius: 999px;
    font-weight: 600;
}
.img-rounded {
    border-radius: 12px;
}
/* fenetres modales : memes angles que les cartes */
.load_content_inner {
    border-radius: var(--bee-rayon);
}

/* ====================================================================
 * Extension du 01/08 (v20260801c) — SITE ENTIER
 * BeeSwipe, groupes, reglages, pied de page, messages systeme.
 * Chargee aussi sur les pages invitees via header_lite.twig.
 * ==================================================================== */

/* ----------------------------------------------------------- BeeSwipe */
.b-likeme__image {
    border: 0;
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre-haute);
    overflow: hidden;
}
.b-likeme__name {
    font-weight: 700;
    background: rgba(255, 255, 255, .94);
}
.b-likeme__actions a,
.b-likeme__actions button {
    border-radius: 999px;
    box-shadow: 0 4px 14px rgba(30, 20, 26, .18);
    transition: transform .12s ease;
}
.b-likeme__actions a:active,
.b-likeme__actions button:active {
    transform: scale(.94);
}

/* bloc « N nouveaux matchs » (messagerie) */
.like_me_count_matches {
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    transition: transform .15s ease, box-shadow .15s ease;
}
.like_me_count_matches:hover {
    transform: translateY(-2px);
    box-shadow: var(--bee-ombre-haute);
}

/* ------------------------------------------------------------ groupes */
.groups-list-item {
    background: #fff;
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease;
}
.groups-list-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--bee-ombre-haute);
}
.groups-list__title {
    font-weight: 700;
    color: var(--bee-encre);
}
.descr-1,
.descr-2 {
    color: var(--bee-sourdine);
}

/* ----------------------------------------------------------- reglages */
.settings-block__menu__item {
    border-radius: var(--bee-rayon-s);
    border-color: var(--bee-trait);
    transition: background-color .15s ease;
}
.settings-block__menu__item:hover {
    background-color: var(--bee-fond);
}

/* ------------------------------------------------------ pied de page */
.footer-menu-list-group-item {
    color: var(--bee-sourdine);
    transition: color .15s ease;
}
.footer-menu-list-group-item:hover {
    color: var(--bee-encre);
}

/* ------------------------------------------------- messages systeme */
#error_block:not(:empty),
#info_block:not(:empty),
#success_block:not(:empty) {
    border-radius: var(--bee-rayon-s);
    padding: 12px 18px;
    margin: 10px auto;
    max-width: 720px;
    box-shadow: var(--bee-ombre);
    font-weight: 600;
}

/* ====================================================================
 * Extension du 01/08 (v20260801d) — selecteur BeeVibes en cartes
 * Loic : « pas fan de la pleine largeur en aplat, des cartes avec
 * ombres pourraient etre pas mal ». Chaque vibe devient une carte
 * blanche ombree, avec sa pastille de couleur de marque.
 * ==================================================================== */
.c-domains h1 {
    font-size: 1.35em;
    font-weight: 700;
    margin-bottom: 18px;
}
.c-domains ul {
    /* flex centre plutot que grille : avec 3 vibes une grille 2x2
       laissait un emplacement beant (signale par Loic le 01/08) */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    list-style: none;
    margin: 0;
    padding: 0 0 6px;
}
.c-domains ul li {
    flex: 1 1 180px;
    max-width: 240px;
    margin: 0;
    font-size: 1.05em;
    text-transform: none;
    position: relative;
    background: #fff;
    border: 1px solid var(--bee-trait);
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    transition: transform .16s ease, box-shadow .16s ease;
}
.c-domains ul li:hover {
    transform: translateY(-3px);
    box-shadow: var(--bee-ombre-haute);
}
.c-domains ul li a {
    display: block;
    padding: 22px 18px 20px 18px;
    font-weight: 700;
    color: var(--bee-encre);
    text-decoration: none;
    text-align: center;
}
/* pastille de la couleur de marque de chaque vibe */
.c-domains ul li a::before {
    content: "";
    display: block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    margin: 0 auto 10px;
    background: var(--bee-sourdine);
}
.c-domains ul li[data-gid="love"] a::before   { background: #c9327a; }
.c-domains ul li[data-gid="hot"] a::before    { background: #D7221E; }
.c-domains ul li[data-gid="friend"] a::before { background: #F69C00; }
/* coche « vibe actuelle » posee sur la carte */
.c-domains ul li .fa-check {
    position: absolute;
    top: 10px;
    right: 12px;
    color: #2e8f57;
}

/* icone du lien BeeVibes dans le menu */
.bee-vibes-icone {
    vertical-align: -6px;
    margin-right: 6px;
}

/* ====================================================================
 * Extension du 01/08 (v20260801e) — PAGES D'ACCUEIL (theme pleasure)
 * Meme logique : cartes, ombres, angles — la structure marketing et
 * les visuels du theme restent intacts.
 * ==================================================================== */

/* les trois blocs « features » deviennent des cartes */
.b-features__item {
    background: #fff;
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    padding: 26px 22px;
    transition: transform .18s ease, box-shadow .18s ease;
}
.b-features__item:hover {
    transform: translateY(-4px);
    box-shadow: var(--bee-ombre-haute);
}
.b-features__title {
    font-weight: 700;
}
.b-features__image img {
    max-width: 100%;
    border-radius: var(--bee-rayon-s);
}

/* panneaux connexion / inscription de la landing */
.sign_in-block,
.registration-block {
    background: #fff;
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre-haute);
    padding: 26px 24px;
}

/* navigation haute de la landing */
.b-header__topnav a {
    border-radius: 999px;
    padding: 6px 14px;
    transition: background-color .15s ease;
}
.b-header__topnav a:hover {
    background-color: rgba(255, 255, 255, .14);
    text-decoration: none;
}

/* choix du type de profil a l'inscription */
.user_types-block {
    border-radius: var(--bee-rayon-s);
}

/* ============================================================
   v20260801f — BeeSwipe en carte, edition de profil, upload
   ============================================================ */

/* --- BeeSwipe : la photo en carte flottante, plus en aplat pleine largeur.
       Scope :has(.like_me-block) = uniquement la page BeeSwipe, pas les
       profils classiques qui partagent le meme gabarit magazine. --- */
@media (min-width: 992px) {
    body:has(.like_me-block) .magazine-profile__media {
        top: 96px;
        right: 32px;
        bottom: 32px;
        width: calc(50% - 64px);
        border-radius: var(--bee-rayon);
        overflow: hidden;
        box-shadow: 0 18px 48px rgba(36, 28, 33, .22);
    }
}

/* --- Edition de profil : les encadres pointilles faisaient brouillon.
       On les remplace par des cartes calmes qui s eclairent au survol. --- */
.magazine-profile__params .owner-actions .field-block {
    border: 1px solid var(--bee-trait);
    border-radius: var(--bee-rayon-s);
    background: #fff;
    padding: 12px 16px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.magazine-profile__params .owner-actions .field-block:hover {
    border-color: var(--bee-sourdine);
    box-shadow: var(--bee-ombre-basse);
}

/* cases a cocher et boutons radio aux couleurs de la marque */
.magazine-profile__params input[type="checkbox"],
.magazine-profile__params input[type="radio"] {
    accent-color: #ED5CA8;
}

/* --- Popup d ajout de photos : zone de depot moderne --- */
.drag-area,
.drag-area.hover {
    border: 2px dashed var(--bee-trait);
    border-radius: var(--bee-rayon-s);
    background: var(--bee-fond);
    color: var(--bee-sourdine);
}
.drag-area.hover {
    border-color: #ED5CA8;
}

/* --- Tuiles du panneau photo (ajouter / galerie) : coins arrondis
       et fond adouci au lieu des blocs carres durs --- */
.magazine-profile__recentmedia {
    right: 20px;
    bottom: 44px;
}
.magazine-profile__recentmedia .media-items .middle,
.magazine-profile__recentmedia a {
    border-radius: var(--bee-rayon-s);
    overflow: hidden;
}
.change-photo-button,
.view-photo-button,
.change-photo-button.owner-change-photo {
    border-radius: var(--bee-rayon-s);
    backdrop-filter: blur(6px);
    background-color: rgba(0, 0, 0, .55);
    letter-spacing: .04em;
}

/* ============================================================
   v20260801g — BeeSwipe : la photo remplit la carte
   ============================================================ */
@media (min-width: 992px) {
    /* La photo etait posee au centre sur fond noir (bandes vides de
       chaque cote). Elle couvre desormais toute la carte. */
    body:has(.like_me-block) .magazine-profile__media img,
    body:has(.like_me-block) .magazine-profile__media .magazine-profile__ava {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    /* Les boutons passer / aimer, centres sous la photo plutot que
       flottants entre les deux colonnes. */
    body:has(.like_me-block) .like_me-block__actions {
        left: auto;
        right: 25%;
        transform: translateX(50%);
    }
}

/* ============================================================
   v20260801i — BeeSwipe « cartes a jouer » (demande de Loic)
   La fiche texte et la photo deviennent deux cartes qui se
   chevauchent avec un leger angle, comme des cartes en main.
   ============================================================ */
@media (min-width: 992px) {
    /* fond uni : suppression du halo gris fonce (flou + voile noir 75 %) */
    body:has(.like_me-block) .magazine-profile__avabg {
        display: none;
    }
    body:has(.like_me-block) .magazine-profile__media {
        background: var(--bee-fond);
        transform: rotate(1.2deg);
    }
    /* la photo couvre toute la carte — la chaine ava > lien > image
       etait centree en boite, d ou les bandes vides */
    body:has(.like_me-block) .magazine-profile__ava,
    body:has(.like_me-block) .magazine-profile__ava a,
    body:has(.like_me-block) .magazine-profile__ava > div {
        width: 100%;
        height: 100%;
    }
    body:has(.like_me-block) .magazine-profile__ava img {
        width: 100%;
        height: 100%;
        max-width: none;
        max-height: none;
        object-fit: cover;
    }
    /* la fiche texte devient la seconde carte de la main, inclinee
       en sens inverse et glissee sur le coin de la photo */
    body:has(.like_me-block) .magazine-profile__text {
        position: relative;
        z-index: 2;
    }
    body:has(.like_me-block) .magazine-profile__text .magazine-profile__content {
        background: #fff;
        border: 1px solid var(--bee-trait);
        border-radius: var(--bee-rayon);
        box-shadow: var(--bee-ombre-haute);
        transform: rotate(-1deg);
        margin: 120px -40px 70px 48px;
        padding: 36px 40px;
    }
}

/* ============================================================
   v20260801j — correction : la carte blanche des panneaux
   connexion/inscription ne doit PAS s appliquer au bloc heros
   des landings — son texte est blanc, concu pour etre pose sur
   la photo. Fond blanc + texte blanc = contenu invisible
   (constate sur bee.nc mobile le 01/08).
   ============================================================ */
.th-set__index_promo_text_main .registration-block,
.th-set__index_promo_text_main .sign_in-block {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

/* ============================================================
   v20260801k — landing : la section BeEvent perd le mockup
   « DatingPro » du theme (telephones avec profils americains,
   hors sujet et date). Le texte prend toute la largeur, centre.
   ============================================================ */
.b-mobile .b-mobile__img,
.b-mobile .col-sm-4 {
    display: none;
}
.b-mobile .col-sm-8 {
    width: 100%;
    float: none;
}
.b-mobile__text {
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
    padding: 34px 16px;
}

/* ============================================================
   v20260801m — chat : ancrage en bas RETIRE (v...l) apres retour
   de Loic (« les conversations commencent en bas, bizarre »).
   La vraie cause du « on atterrit en bas et on ne voit rien »
   etait le focus() de la zone de saisie qui faisait defiler la
   page — corrige dans chatbox.js (custom_R focus sans
   defilement). Les messages reprennent le sens de lecture
   normal, de haut en bas.
   ============================================================ */

/* ============================================================
   v20260801n — filtres de recherche : « Avec photo » et
   « En ligne » (signale par Loic : rendu brouillon)
   ============================================================ */
/* la case a cocher nue devient cliquable et a la couleur de marque */
.fline__item input[type="checkbox"]:not(.hide),
.f-block input[type="checkbox"]:not(.hide) {
    width: 20px;
    height: 20px;
    accent-color: #ED5CA8;
    vertical-align: middle;
    cursor: pointer;
    margin-top: 8px;
}
/* l interrupteur bootstrap-switch en pilule, sans la poignee « ≡ » */
.bootstrap-switch {
    border-radius: 999px !important;
    border-color: var(--bee-trait);
    overflow: hidden;
}
.bootstrap-switch .bootstrap-switch-label {
    background: var(--bee-fond);
    color: var(--bee-fond);        /* masque le glyphe de poignee */
    min-width: 26px;
}
.bootstrap-switch .bootstrap-switch-handle-on,
.bootstrap-switch .bootstrap-switch-handle-off {
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .03em;
}
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {
    background: #fff;
    color: var(--bee-sourdine);
}

/* ============================================================
   v20260801o — landing vendeuse (GO de Loic) + footer redessine
   ============================================================ */
/* --- bande de chiffres vivants (dans le bandeau rose du theme) --- */
.bee-chiffres {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 56px;
    justify-content: center;
    text-align: center;
}
.bee-chiffres__item {
    font-size: 14px;
    letter-spacing: .02em;
}
.bee-chiffres__item strong {
    display: block;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
}
.bee-reassurance {
    text-align: center;
    opacity: .85;
    margin-top: 16px;
    letter-spacing: .03em;
    font-size: 13.5px;
}

/* --- sections landing --- */
.bee-section-titre {
    text-align: center;
    font-weight: 800;
    font-size: 26px;
    margin: 0 0 28px;
    color: var(--bee-encre);
}
.bee-confiance {
    background: #fff;
    padding: 54px 0 30px;
}
.bee-confiance__item {
    background: var(--bee-fond);
    border: 1px solid var(--bee-trait);
    border-radius: var(--bee-rayon);
    padding: 22px 20px;
    margin-bottom: 14px;
    min-height: 148px;
}
.bee-confiance__item h3 {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--bee-encre);
}
.bee-confiance__item p {
    color: var(--bee-sourdine);
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
}
.bee-vibes-landing {
    background: #fff;
    padding: 14px 0 50px;
}
.bee-vibe-carte {
    display: block;
    background: #fff;
    border: 1px solid var(--bee-trait);
    border-radius: var(--bee-rayon);
    box-shadow: var(--bee-ombre);
    padding: 26px 20px 22px;
    text-align: center;
    margin-bottom: 14px;
    color: var(--bee-encre);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease;
}
.bee-vibe-carte:hover {
    transform: translateY(-3px);
    box-shadow: var(--bee-ombre-haute);
    text-decoration: none;
    color: var(--bee-encre);
}
.bee-vibe-carte__pastille {
    display: block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    margin: 0 auto 12px;
}
.bee-vibe-carte__nom {
    display: block;
    font-weight: 800;
    font-size: 18px;
    margin-bottom: 4px;
}
.bee-vibe-carte__base {
    display: block;
    color: var(--bee-sourdine);
    font-size: 13.5px;
}
.bee-cta-final {
    background: var(--bee-fond);
    border-top: 1px solid var(--bee-trait);
    text-align: center;
    padding: 46px 16px 54px;
}
.bee-cta-final h2 {
    font-weight: 800;
    margin: 0 0 6px;
}
.bee-cta-final p {
    color: var(--bee-sourdine);
    margin: 0 0 22px;
}
.bee-cta-final__btn {
    padding: 12px 36px;
    font-size: 16px;
}

/* --- footer du site connecte : blanc, aere, liens vivants --- */
.footer-menu {
    background: #fff;
    border-top: 1px solid var(--bee-trait);
    border-bottom: 0;
    padding: 36px 0 16px;
}
.footer-menu-title-block {
    font-size: 12px;
    letter-spacing: .08em;
    color: var(--bee-sourdine);
}
.footer-menu a {
    color: var(--bee-encre);
    line-height: 2.1;
    transition: color .15s ease;
}
.footer-menu a:hover {
    color: #ED5CA8;
    text-decoration: none;
}
footer {
    background: #fff;
}
.footer-info {
    background: var(--bee-fond);
    border-top: 1px solid var(--bee-trait);
    margin-bottom: 0;
    padding: 16px 0;
}
.footer-info, .copyright, .copyright a {
    color: var(--bee-sourdine);
}
.copyright a:hover {
    color: #ED5CA8;
}

/* ============================================================
   v20260801p — footer : plus de vide au centre/droite
   Les menus n occupaient que la gauche et la colonne « applis
   mobiles » (vide, aucune app configuree) reservait un tiers.
   ============================================================ */
#footer_menu .row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 90px;
}
#footer_menu .row > [class*="col-"] {
    float: none;
    width: auto;
    min-width: 220px;
    flex: 0 1 auto;
}
#footer_menu .mobile_app_links {
    display: none;   /* aucune app configuree : le bloc etait vide */
}

/* ============================================================
   v20260801q — landing : respiration et finitions
   (retour de Loic : « encore vieillot, manque du padding,
   verifier les boutons, changer les images »)
   ============================================================ */
/* cartes features : icone SVG centree dans un souffle genereux */
.b-features {
    padding: 56px 0 30px;
    background: #fff;
}
.b-features__item {
    padding: 34px 26px 30px;
    margin-bottom: 18px;
    min-height: 300px;
}
.b-features__image {
    margin-bottom: 18px;
}
.b-features__image img {
    width: 84px;
    height: 84px;
    border-radius: 0;
    box-shadow: none;
}
.b-features__title {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 10px;
}
.b-features__item p {
    color: var(--bee-sourdine);
    font-size: 14px;
    line-height: 1.6;
}

/* bande sous le hero : plus d air autour des compteurs */
.b-afterheader {
    padding: 34px 0 30px;
}

/* formulaire du hero : champs et bouton a la meme hauteur, bien espaces */
.th-set__index_promo_text_main .form-control,
.th-set__index_promo_text_main .btn,
.sign_in-block .btn,
.registration-block .btn {
    min-height: 48px;
    font-size: 15px;
}
.th-set__index_promo_text_main .btn {
    padding-left: 30px;
    padding-right: 30px;
}

/* titres de sections landing : marges coherentes */
.b-mobile {
    padding: 30px 0 40px;
}
.b-mobile__text h2 {
    font-weight: 800;
}

/* le pied de landing (bandeau sombre) respire */
.b-footer {
    padding: 18px 0;
}
