.account-layout {
    display: flex;
    flex-direction: row-reverse;
}

.account-sidebar{
    flex: 3;
}



.account-content{
flex: 7;
}

@media (max-width: 768px) {

  .prospeos-form{
        grid-template-columns: repeat(1, minmax(280px, 1fr))!important;
}

button.info-send{
width:100%!important;
}

  .account-layout {
    flex-direction: column;
  }

  .account-sidebar,
  .account-content {
    flex: 0 0 100%!important;
    width: 100%;
  }

nav.account-sidebar {
  margin-top: -24px!important;
  margin-bottom: 16px!important;
  margin-right: -32px!important;
  margin-left: -32px!important;
  background: #F7F7F7;
  padding-top: 24px!important;
  padding-bottom: 24px!important;
  border-radius: 16px 16px 0 0 !important;
width:auto!important;
}

  /* button.info-send passe en width:100% ci-dessus : la barre space-between
     se disloquerait, on empile les deux commandes. */
  .profile-form-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-form-actions a.profile-view-link {
    width: 100%;
  }

}


ul.sidebar-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

ul.sidebar-menu li {
  padding: 14px 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.26);
    font-family: 'Yantramanav';
    font-size: 16px;
}

ul.sidebar-menu li:first-child {
  border-top: 1px solid rgba(0, 0, 0, 0.26);
}

ul.sidebar-menu li:nth-child(even) {
  background-color: #FBFBFB;
}



ul.sidebar-menu li a {
    display: flex;
    align-content: center;
    align-items: center;
    gap: 8px;
    color: #474747!important;
}

ul.sidebar-menu {
    list-style: none !important;
    padding: 0px;
    margin: 0px;
}

nav.account-sidebar {
    margin-top: -24px;
    margin-bottom: -24px;
    margin-right: -32px;
    background: #F7F7F7;
    padding-top: 24px;
    padding-bottom: 24px;
border-radius: 0px 16px 16px 0px;
}

p.sidebar-title {
    font-family: 'Yantramanav';
    font-size: 20px;
    color: #474747;
    padding-bottom: 24px;
    padding-right: 24px;
    padding-left: 24px;

}


.custom-dashboard {
    text-align: center;
    margin: 0 auto;
}

.entry-message{
    padding-bottom:16px;
    font-family: 'Yantramanav';
    font-size: 20px !important;
    color: #474747;
}

.custom-dashboard p {
    font-size: 16px;
    text-align:left;
    margin: 0px!important;
}

.dashboard-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
    width: 100%;
}

.dashboard-card {
    background: #FBFBFB;
    border-radius: 12px;
    padding: 20px 25px;
    flex: 0 0 180px;
    text-decoration: none;
    color: #474747;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.2s ease;
}

.dashboard-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}

.dashboard-card .icon {
    font-size: 28px;
}

.dashboard-card .label {
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    font-family: 'Yantramanav';
    color: #474747;

}

.woocommerce-account .woocommerce-MyAccount-content{
    width:100%!important;
}

a.dashboard-card {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: center;
    justify-content: center;
}



.prospeos-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.form-field label {
    font-family: 'Imprima';
    color: #474747;
    margin-bottom: 8px;
}

.form-field input {
    border: solid 2px #E5C1B5!important;
    border-radius: 8px!important;
}

.form-field input:focus {
    outline:none!important;
}


p.info-title {
    font-family: 'Yantramanav';
    color: #474747;
    font-size: 23px;
    margin-bottom:16px!important;
}

p.info-title-password{
    font-family: 'Yantramanav';
    color: #474747;
    font-size: 23px;
    margin-top:30px;
}

.woocommerce-MyAccount-content-wrapper h3 {
    font-family: 'Yantramanav';
    color: #474747!important;
    font-size: 23px;
    margin-bottom:16px!important;;
}

.woocommerce-MyAccount-content-wrapper p {
    font-family: 'Imprima';
    color: #474747 !important;
}

a.wallet-add-method {
    width: fit-content ;
    background: #E5C1B5;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

a.wallet-add-method:hover {
    background: #DA9591;
    color: #474747!important;
}


button.info-send {
    width: fit-content ;
    background: #E5C1B5!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

button.info-send:hover {
    background: #DA9591;
    color: #474747;
}


button#save-services:hover {
    background: #DA9591;
    color: #474747;
}

button#save-services {
    width: fit-content ;
    background: #E5C1B5!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
}


.woocommerce-error, .woocommerce-info, .woocommerce-message{
    background-color: #fbfbfb;
    margin-bottom: 16px;
    padding: 16px;
    color: #474747;
    text-align: center;
    font-family: 'Imprima';
border:none!important;
}

.woocommerce-error::before, .woocommerce-info::before, .woocommerce-message::before{
display:none!important;
}

.wallet-notice {
    background-color: #fbfbfb;
    margin-bottom: 16px;
    padding: 16px;
    color: #474747;
    text-align: center;
    font-family: 'Imprima';
}


.notice.success {
    background-color: #fbfbfb;
    margin-bottom: 16px;
    padding: 16px;
    color: #474747;
    text-align: center;
    font-family: 'Imprima';
}

.notice.error {
    background-color: #fbfbfb;
    margin-bottom: 16px;
    padding: 16px;
    color: #7d0909;
    text-align: center;
    font-family: 'Imprima';
}

.account-content {
    padding-right: 24px;
}





.profile-grid {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 32px;
}

/* L'aperçu de l'avatar est défini plus bas, avec sa pastille d'édition. */

.availability-row {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 12px;
}

/* Responsive */
@media (max-width: 768px) {
    .profile-grid {
        grid-template-columns: 1fr;
    }
}

.profile-content {
    gap: 16px;
    display: flex;
    flex-direction: column;
}

.availability-row select:focus{
outline:none!important;
}

.availability-row select:focus{
outline:none!important;
}

.availability-row select{

    border: solid 2px #E5C1B5!important;
    border-radius: 8px!important;
}

.profile-photo {
    display: flex;
    flex-direction: column;
    gap: 8px;
}



/* =========================================================
   WALLET – GLOBAL
========================================================= */

.wallet-title,
.wallet-section-title,
.info-title {
    font-family: 'Yantramanav', sans-serif;
    font-weight: 600;
    color: #474747;
}

.wallet-sub,
.wallet-note,
.wallet-payment-methods,
.wallet-history,
.wallet-stats-placeholder,
.wallet-box p {
    font-family: 'Imprima', sans-serif;
    color: #474747;
}

.wallet-amount {
    font-family: 'Yantramanav', sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #474747;
}

/* =========================================================
   WALLET – TOP BLOCK
========================================================= */

.wallet-top {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    margin-bottom: 40px;
}

.wallet-balance-box,
.wallet-stats-box {
    background: #ffffff;
    padding: 26px;
    border-radius: 14px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.04);
}

.wallet-balance-box.pending {
    background: #fff6e5;
}

.wallet-title {
    margin-bottom: 10px;
}

.wallet-sub {
    display: block;
    margin-top: 6px;
    font-size: 14px;
    opacity: 0.8;
}

/* =========================================================
   STATS PLACEHOLDER
========================================================= */

.wallet-stats-box {
    background: #e0e0e0;
    text-align: center;
}

.wallet-stats-placeholder {
    margin-top: 20px;
    font-size: 14px;
    opacity: 0.6;
}

/* =========================================================
   STRIPE STATUS BOX
========================================================= */

.wallet-box {
    margin-bottom: 0px;
    padding: 0px;
    border-radius: 12px;
}

.wallet-warning {
    background: #fff6e5;
    border: 1px solid #f0c36d;
}

.wallet-success {
    background: #eaf7ee;
    border: 1px solid #8fd19e;
}

.wallet-box p {
    margin-bottom: 12px;
}

/* =========================================================
   PAYMENT METHODS
========================================================= */

.wallet-payment-methods {
    margin-top: 40px;
}

.wallet-section-title {
    margin-bottom: 16px;
}

.wallet-add-method {
    display: inline-block;
    margin-top: 18px;
    padding: 10px 20px;
    border-radius: 8px;
    border: 1px solid #e57373;
    color: #e57373;
    text-decoration: none;
    font-family: 'Yantramanav', sans-serif;
    font-weight: 500;
    transition: all 0.2s ease;
}

.wallet-add-method:hover {
    background: #e57373;
    color: #ffffff;
}

/* =========================================================
   WOOCOMMERCE PAYMENT TABLE CLEAN
========================================================= */

.woocommerce-PaymentMethods {
    margin: 0;
}

.woocommerce-PaymentMethods li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: #ffffff;
    border-radius: 10px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.03);
}

.woocommerce-PaymentMethods li:last-child {
    margin-bottom: 0;
}

.woocommerce-PaymentMethods .payment-method-title {
    font-family: 'Imprima', sans-serif;
    color: #474747;
}

.woocommerce-PaymentMethods .button  {
    width: fit-content ;
    background: #E5C1B5!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.woocommerce-PaymentMethods .button:hover {
    background: #e57373;
    color: #ffffff;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 768px) {
    .wallet-top {
        grid-template-columns: 1fr;
    }

    .wallet-amount {
        font-size: 28px;
    }
}






/* === SERVICES === */

.services-wrapper {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
}

.service-card {
    background: #fff;
    border-radius: 14px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.service-body h3 {
    font-family: 'Yantramanav', sans-serif;
    font-size: 18px;
    margin: 0 0 8px;
    color: #474747;
}

.service-body p {
    font-family: 'Imprima', sans-serif;
    font-size: 14px;
    line-height: 1.4;
    color: #6b6b6b;
    margin: 0;
}

.service-footer {
    margin-top: 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 4px 10px;
}

/*
 * Équivalent en devise étrangère : strictement indicatif. Discret, et
 * visuellement distinct du champ de saisie, qui est toujours en euros.
 */
.service-price-eq {
    flex-basis: 100%;
    text-align: right;
    font-size: 13px;
    color: #6B7280;
    font-variant-numeric: tabular-nums;
}

.service-price-eq[hidden] {
    display: none;
}

#min-price-info .service-price-eq {
    flex-basis: auto;
    display: inline;
}

.service-footer label {
    font-family: 'Imprima', sans-serif;
    font-size: 14px;
    color: #474747;
    display: flex;
    align-items: center;
    gap: 8px;
}

.service-footer input {
    width: 70px;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid #e3e3e3;
    text-align: center;
}

.service-footer .currency {
    font-weight: 600;
}

/* === ACTIONS === */

.services-actions {
    display: flex;
    justify-content: flex-end;
}

.btn-primary {
    background: #e28b8b;
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 10px 22px;
    font-family: 'Yantramanav', sans-serif;
    font-size: 15px;
    cursor: pointer;
}

.btn-primary:hover {
    opacity: 0.9;
}

.service-footer input {
    max-width: 130px;
    border: solid 2px #E5C1B5!important;
    border-radius: 8px!important;

}

.service-card{
background-color:#FBFBFB!important;
}

/* Input désactivé par quota */
input.disabled-by-quota {
    background-color: #f3f3f3;
    cursor: not-allowed;
    opacity: 0.6;
}





/* ===============================
   RESERVATIONS GRID
=============================== */

.reservations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
    margin-top: 24px;
}

/* ===============================
   RESERVATION CARD
=============================== */

.reservation-card {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow .2s ease, transform .15s ease;
}

.reservation-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
    transform: translateY(-2px);
}

/* ===============================
   HEADER
=============================== */

.reservation-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
}

.reservation-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #222;
    margin-bottom: 0px !important;
}

/* ===============================
   STATUS BADGE
=============================== */

.reservation-badge {
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

/* Statuts */
.reservation-card.status-0 .reservation-badge {
    background: #f8d7da;
    color: #842029;
}

.reservation-card.status-1 .reservation-badge {
    background: #ffe8b3;
    color: #8a6d1d;
}

.reservation-card.status-2 .reservation-badge {
    background: #d1e7dd;
    color: #0f5132;
}

/* ===============================
   BODY
=============================== */

.reservation-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.reservation-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
}

.reservation-row strong {
    color: #555;
    font-weight: 600;
}

.reservation-row span {
    color: #333;
}

/* ===============================
   DATES
=============================== */

.reservation-dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    font-size: 13px;
    color: #444;
}

.reservation-dates strong {
    font-size: 12px;
    text-transform: uppercase;
    color: #777;
}

/* ===============================
   PRICE
=============================== */

.reservation-price {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    margin-top: 6px;
}

.reservation-price strong {
    color: #444;
}

.reservation-price span {
    font-weight: 700;
    font-size: 18px;
    color: #111;
}

/* ===============================
   ACTIONS
=============================== */

.reservation-actions {
    padding: 14px 16px;
    border-top: 1px solid #eee;
}

.reservation-actions .button {
    width: 100%;
    /*
     * Centrage indispensable : les actions sont tantôt des <button>, tantôt
     * des <a class="button"> (« Noter la prestation »). La règle
     * button.button.button-primary ne vise que l'élément <button>, le lien
     * restait donc collé à gauche.
     */
    display: inline-block;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none;
    background: #E5C1B5!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.reservation-actions .button:hover {
    background: #DA9591;
    color: #474747;

}




/* ===============================
   RESPONSIVE
=============================== */

@media (max-width: 480px) {
    .reservation-dates {
        grid-template-columns: 1fr;
    }
}


.reservation-validation-code {
    display: flex;
    flex-direction: row;
    align-content: center;
    justify-content: space-between;
    align-items: center;
}
.validation-code-box {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
    background: #fff;
    border-radius: 6px;
    display: inline-block;
}


.wallet-box.wallet-success.logged {
    padding: 8px;
    margin-bottom: 16px;
}

.bottom-wallet-btn-lot {
    display: flex;
    flex-direction: column;
    gap: 16px;
}


button.button.button-secondary {
    width: 100%;
    background: #955252!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

button.button.button-secondary:hover {
    background: #7b4040!important;
    color: #474747;

}

.bottom-wallet-btn-lot a {
width:100%;
text-align:center;
    background: #E5C1B5!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.bottom-wallet-btn-lot a:hover {
	background: #DA9591!important;
	color: #4747471!important;
}

button.button.button-primary {
width:100%;
text-align:center;
    background: #E5C1B5!important;
    border: none !important;
    color: white!important;
    font-family: 'Yantramanav';
    font-weight: 400 !important;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.bottom-wallet-btn-lot a:hover {
	background: #DA9591!important;
	color: #4747471!important;
}

.wallet-box.wallet-warning {
    padding: 16px;
    gap: 8px !important;
    display: flex;
    align-content: center;
    align-items: center;
}

select#currency-select {
    max-width: 110px;
}

/* Les sélecteurs de devise des autres écrans partagent la même contrainte. */
select.grimba-devise-select {
    max-width: 110px;
}

.heading-section-services {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

/*
 * Rappel affiché dès qu'une devise autre que l'euro est choisie. Masqué par
 * l'attribut hidden au chargement, révélé par assets/js/currency-display.js.
 */
.grimba-devise-rappel {
    display: block;
    margin: 0 0 24px;
    padding: 8px 12px;
    border-left: 3px solid #F59E0B;
    background: #FFF7E6;
    font-size: 13px;
    color: #6B7280;
}

.grimba-devise-rappel[hidden] {
    display: none;
}

/*
 * Un élément inline qui suit un message se colle à lui : la marge basse du
 * message ne suffit pas à le décoller visuellement. C'est le cas du tarif
 * minimum sur « Tarifs & prestations », rendu dans un <small>.
 */
#min-price-info {
    display: block;
    margin-bottom: 16px;
}

/* Montant euro de référence sous un montant converti. */
.wallet-manual-eur {
    display: block;
    margin-top: 4px;
    color: #6B7280;
}



.availability-table td {
    height: 32px;
    padding: 0;
}

/*
 * Grille des disponibilités.
 *
 * ⚠️ La classe .active signifie « créneau BLOQUÉ » (valeur 1 en base), pas
 * « disponible ». Le nom est trompeur mais la convention est celle du modèle
 * de données ; voir includes/reservation/availability.php. Seules les couleurs
 * changent ici : rien n'est inversé côté données.
 */
.availability-slot {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 32px;
    justify-content: center;
    align-items: center;
    background-color: #10B981;   /* Succès — créneau ouvert */
    color: #FFFFFF;
    cursor: pointer;
    transition: background-color .15s ease;
}

.availability-slot:hover {
    background-color: #0F766E;
}

.availability-slot.active {
    background-color: #EF4444;   /* Erreur — créneau bloqué */
    color: #FFFFFF;
}

.availability-slot.active:hover {
    background-color: #DC2626;
}

/* Légende de la grille */
.availability-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin: 4px 0 14px;
    font-size: 14px;
    color: #6B7280;
}

.availability-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.availability-legend__key {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    flex-shrink: 0;
}

.availability-legend__key.is-open    { background-color: #10B981; }
.availability-legend__key.is-blocked { background-color: #EF4444; }

.availability-hint {
    margin: 8px 0 18px;
    font-size: 14px;
    color: #6B7280;
}

/*
 * Respiration entre le bloc « Je suis disponible » et la grille hebdomadaire.
 * L'écart est posé sur le formulaire, pas sur .availability-row : la légende
 * et l'aide s'intercalent entre l'interrupteur et le tableau, l'espace
 * tomberait au mauvais endroit. flow-root rend la marge déterministe quel que
 * soit le conteneur Elementor qui enveloppe la vue.
 */
.prospeos-availability-form {
    display: flow-root;
    margin-bottom: 32px;
}

.grimba-availability {
    margin-top: 8px;
}

td.availability-cell {
    margin: 0px !important;
    padding: 0px !important;
}

.availability-table th,
.availability-table td {
    padding:6px!important;
}

span.slot-hour {
    text-align: center;
}

.availability-table {
    user-select: none;
}

textarea#profil_desc {
    border: solid 2px #E5C1B5 !important;
    border-radius: 8px !important;
}


div#wp-profil_desc-editor-container{
    border-radius: 8px !important;
}

div#mceu_1 {
    display: none;
}

div#mceu_7 {
    display: none;
}

/* ================================
   WALLET — ACTIONS CARTE
================================ */

.wallet-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.wallet-card-actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    line-height: 1.2;
    text-align: center;
}


/* ================================
   WALLET — POPUPS
================================ */

.wallet-popup {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.wallet-popup.is-open {
    display: flex;
}

.wallet-popup-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.55);
    cursor: pointer;
}

.wallet-popup-content {
    position: relative;
    z-index: 2;
    width: min(760px, 100%);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 28px;
    margin: 0;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.22);
}

.wallet-popup-title {
    margin: 0 48px 14px 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
}


/* ================================
   WALLET — BOUTON FERMETURE POPUP
================================ */

.wallet-popup-close,
.wallet-popup-close[type="button"] {
    position: absolute;
    top: 14px;
    right: 16px;
    z-index: 5;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    outline: none;
    border-radius: 999px;

    background: rgba(0, 0, 0, 0.06) !important;
    color: #111 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-align: center;
    text-decoration: none !important;

    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;

    box-shadow: none !important;
    transform: none !important;
}

.wallet-popup-close:hover,
.wallet-popup-close:focus,
.wallet-popup-close[type="button"]:hover,
.wallet-popup-close[type="button"]:focus {
    background: rgba(0, 0, 0, 0.12) !important;
    color: #000 !important;
    border: 0 !important;
    outline: none;
    box-shadow: none !important;
}

.wallet-popup-close:active {
    transform: scale(0.96) !important;
}


/* ================================
   WALLET — TABLE HISTORIQUE
================================ */

.wallet-popup-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.wallet-popup-table {
    width: 100%;
    border-collapse: collapse;
}

.wallet-popup-table th,
.wallet-popup-table td {
    padding: 10px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    text-align: left;
    vertical-align: top;
}

.wallet-popup-table th {
    font-weight: 700;
    opacity: 0.85;
}

.wallet-popup-table small {
    opacity: 0.7;
}


/* ================================
   WALLET — RÉSUMÉ RETRAIT MANUEL
================================ */

.wallet-manual-summary {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 18px 0;
    padding: 16px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.04);
}

.wallet-manual-summary span {
    opacity: 0.75;
}

.wallet-manual-summary strong {
    font-size: 26px;
    line-height: 1.2;
}

.wallet-manual-summary small {
    opacity: 0.7;
}


/* ================================
   WALLET — ONGLETS RETRAIT MANUEL
================================ */

.wallet-manual-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0;
}

.wallet-manual-tab,
.wallet-manual-tab[type="button"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 40px;
    padding: 10px 14px;

    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    border-radius: 10px;

    background: #fff !important;
    color: #111 !important;

    font: inherit;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;

    cursor: pointer;
    box-shadow: none !important;
    appearance: none;
    -webkit-appearance: none;
}

.wallet-manual-tab:hover,
.wallet-manual-tab:focus,
.wallet-manual-tab[type="button"]:hover,
.wallet-manual-tab[type="button"]:focus {
    border-color: rgba(0, 0, 0, 0.35) !important;
    background: rgba(0, 0, 0, 0.03) !important;
    color: #000 !important;
    outline: none;
    box-shadow: none !important;
}

.wallet-manual-tab.is-active,
.wallet-manual-tab[type="button"].is-active {
    font-weight: 700;
    border-color: rgba(0, 0, 0, 0.65) !important;
    background: rgba(0, 0, 0, 0.06) !important;
}


/* ================================
   WALLET — PANELS
================================ */

.wallet-manual-panel {
    display: none;
}

.wallet-manual-panel.is-active {
    display: block;
}


/* ================================
   WALLET — FORMULAIRES POPUP
================================ */

.wallet-step-title {
    margin: 18px 0 14px;
    font-weight: 700;
}

.wallet-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}

.wallet-field label {
    font-weight: 500;
}

.wallet-field input,
.wallet-field select,
.wallet-field textarea {
    width: 100%;
    max-width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid rgba(0, 0, 0, 0.16);
    border-radius: 10px;
    background: #fff;
    color: #111;
    font: inherit;
    box-shadow: none;
}

.wallet-field textarea {
    min-height: 110px;
    resize: vertical;
}

.wallet-field input:focus,
.wallet-field select:focus,
.wallet-field textarea:focus {
    border-color: rgba(0, 0, 0, 0.55);
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}

.wallet-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 16px;
    cursor: pointer;
}

.wallet-checkbox input {
    margin: 0;
}

.wallet-form-help {
    margin-top: 10px;
    opacity: 0.7;
    font-size: 14px;
}

.wallet-empty {
    opacity: 0.75;
}


/* ================================
   WALLET — ÉTAT BODY POPUP OUVERTE
================================ */

body.wallet-popup-opened {
    overflow: hidden;
}


/* ================================
   WALLET — RESPONSIVE
================================ */

@media (max-width: 767px) {
    .wallet-popup {
        align-items: flex-start;
        padding: 10px;
    }

    .wallet-popup-content {
        width: 100%;
        max-height: calc(100vh - 20px);
        padding: 20px;
        margin-top: 10px;
        border-radius: 14px;
    }

    .wallet-popup-title {
        margin-right: 44px;
        font-size: 20px;
    }

    .wallet-popup-close,
    .wallet-popup-close[type="button"] {
        top: 12px;
        right: 12px;
        width: 34px;
        height: 34px;
        min-width: 34px;
        min-height: 34px;
        font-size: 26px !important;
    }

    .wallet-card-actions {
        flex-direction: column;
    }

    .wallet-card-actions .button {
        width: 100%;
        text-align: center;
    }

    .wallet-manual-tabs {
        flex-direction: column;
    }

    .wallet-manual-tab,
    .wallet-manual-tab[type="button"] {
        width: 100%;
    }

    .wallet-popup-table th,
    .wallet-popup-table td {
        padding: 9px 8px;
        font-size: 14px;
    }
}

/* ================================
   WALLET — LOGOS DANS CARTE RETRAIT MANUEL
================================ */

.wallet-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.wallet-title-row .wallet-title {
    margin: 0;
}

.wallet-manual-method-logos {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
    max-width: 130px;
}

.wallet-manual-method-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;
    min-width: 28px;
    min-height: 28px;
    max-width: 40px;
    max-height: 40px;

    margin-left: -6px;

    border-radius: 999px;
    border: 2px solid #fff;
    background: #fff;
    overflow: hidden;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.wallet-manual-method-logo:first-child {
    margin-left: 0;
}

.wallet-manual-method-logo img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain;
    padding: 4px;
    border: 0;
}


/* ================================
   WALLET — LOGOS DANS POPUP HISTORIQUE
================================ */

.wallet-method-display {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 180px;
}

.wallet-method-display-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.wallet-method-display-text strong {
    line-height: 1.2;
}

.wallet-method-display-text small {
    opacity: 0.7;
    line-height: 1.25;
}


/* ================================
   WALLET — LOGOS GÉNÉRIQUES DES MOYENS
   Utilisé dans historique + cartes radio
================================ */

.wallet-method-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;

    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    max-width: 42px;
    max-height: 42px;

    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.10);
    overflow: hidden;
}

.wallet-method-logo img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain;
    padding: 6px;
    border: 0;
}

.wallet-method-logo-fallback {
    background: rgba(0, 0, 0, 0.05);
    font-weight: 700;
    font-size: 16px;
    color: #111;
}


/* ================================
   WALLET — CARTES RADIO DES MOYENS
================================ */

.wallet-method-radio-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 10px 0 16px;
}

.wallet-method-radio-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.wallet-method-radio-card:hover {
    border-color: rgba(0, 0, 0, 0.35);
    background: rgba(0, 0, 0, 0.02);
}

.wallet-method-radio-card input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.wallet-method-radio-card:has(input[type="radio"]:checked) {
    border-color: rgba(0, 0, 0, 0.7);
    background: rgba(0, 0, 0, 0.04);
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}

.wallet-method-radio-content {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.wallet-method-radio-content strong {
    line-height: 1.2;
}

.wallet-method-radio-content small {
    opacity: 0.7;
    line-height: 1.25;
}


/* ================================
   WALLET — RESPONSIVE LOGOS
================================ */

@media (min-width: 768px) {
    .wallet-method-radio-list-new {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .wallet-title-row {
        align-items: flex-start;
    }

    .wallet-manual-method-logos {
        max-width: 110px;
    }

    .wallet-manual-method-logo {
        width: 26px;
        height: 26px;
        min-width: 26px;
        min-height: 26px;
        max-width: 26px;
        max-height: 26px;
    }

    .wallet-method-logo {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        min-width: 38px;
        min-height: 38px;
        max-width: 38px;
        max-height: 38px;
    }

    .wallet-method-radio-card {
        align-items: flex-start;
        padding: 12px;
    }
}
/* ------------------------------------------------------------------
   Lien vers le profil public depuis la liste des réservations
   ------------------------------------------------------------------ */
/*
 * Le lien doit se fondre dans le texte, pas apparaître en bleu de navigateur.
 * On force la déclaration : sur le site réel, le kit global d'Elementor pose
 * une couleur de lien qui l'emportait, et c'est l'idiome du reste de cette
 * feuille. Le repère visuel est le trait sous le nom, pas la couleur.
 */
a.grimba-profile-link,
a.grimba-profile-link:visited {
    color: #1F2230 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(13, 92, 99, .35);
    transition: color .15s ease, border-color .15s ease;
}

a.grimba-profile-link:hover,
a.grimba-profile-link:focus-visible {
    color: #0D5C63 !important;
    text-decoration: none !important;
    border-bottom-color: #0D5C63;
}

/* Réservation prise pour un tiers */
.grimba-guest-toggle label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.grimba-guest-toggle input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.grimba-guest-fields[hidden] {
    display: none;
}

/* ------------------------------------------------------------------
   Photo de profil : aperçu cliquable + pastille d'édition
   ------------------------------------------------------------------ */
.profile-photo-label {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
}

.profile-photo-wrapper {
    position: relative;
    display: inline-block;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    overflow: visible;
    cursor: pointer;
}

.profile-photo-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
    background-color: #E5E7EB;
}

.profile-photo-edit {
    position: absolute;
    right: 2px;
    bottom: 2px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background-color: #F4A7A0;
    color: #1F2230;
    border: 3px solid #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color .15s ease;
}

.profile-photo-wrapper:hover .profile-photo-edit {
    background-color: #F08E85;
}

/* Le champ fichier reste focusable au clavier mais n'est pas affiché. */
.profile-photo-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/*
 * L'anneau de focus se pose sur l'avatar : le champ est masqué et la zone de
 * nom de fichier est vide tant que rien n'est choisi.
 */
.profile-photo-wrapper:focus-within {
    outline: 2px solid #0D5C63;
    outline-offset: 3px;
    border-radius: 50%;
}

.profile-photo-input:focus-visible + .profile-photo-filename:not(:empty) {
    outline: 2px solid #0D5C63;
    outline-offset: 2px;
}

.profile-photo-filename {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    color: #6B7280;
    max-width: 200px;
    overflow-wrap: anywhere;
}

/* Vide, la zone ne doit consommer ni gap ni marge. */
.profile-photo-filename:empty {
    display: none;
}

/*
 * Barre d'actions du profil public : action secondaire à une extrémité,
 * action principale à l'autre.
 */
.profile-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 24px;
}

/*
 * Bouton fantôme. Sélecteur a.profile-view-link et !important sur le fond :
 * WooCommerce applique .woocommerce a.button (spécificité 0,2,1, les :where()
 * de sa feuille comptant pour zéro) à tous les liens de l'espace client. Il
 * l'emportait sur l'ancien bloc et rendait le texte blanc sur gris clair.
 */
a.profile-view-link,
a.profile-view-link:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 8px 16px;
    border: 1px solid #0D5C63;
    border-radius: 4px;
    background-color: transparent !important;
    color: #0D5C63 !important;
    font-family: 'Yantramanav', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.4;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

a.profile-view-link:hover,
a.profile-view-link:focus-visible {
    background-color: #0D5C63 !important;
    border-color: #0B4F55;
    color: #FFFFFF !important;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ------------------------------------------------------------------
   Formulaire de notation d'une prestation
   ------------------------------------------------------------------ */
.grimba-review-card {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 28px;
    align-items: start;
    background: #FFFFFF;
    border-radius: 16px;
    padding: 22px;
    max-width: 720px;
}

.grimba-review-person {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.grimba-review-photo {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 12px;
    background: #E5E7EB;
    margin-bottom: 10px;
}

.grimba-review-name {
    font-size: 17px;
    color: #1F2230;
}

.grimba-review-locality {
    font-size: 14px;
    color: #6B7280;
}

.grimba-review-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.grimba-review-intro {
    margin: 0;
    color: #1F2230;
    line-height: 1.5;
}

/* Étoiles */
.grimba-stars {
    display: flex;
    gap: 6px;
    color: #0D5C63;
}

.grimba-star {
    display: inline-flex;
    cursor: pointer;
    color: #0D5C63;
    opacity: .55;
    transition: opacity .12s ease, transform .12s ease;
}

.grimba-star.is-on {
    opacity: 1;
}

.grimba-star.is-on svg path {
    fill: currentColor;
}

.grimba-star:hover {
    transform: scale(1.06);
}

.grimba-star input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.grimba-star input[type="radio"]:focus-visible + svg {
    outline: 2px solid #0D5C63;
    outline-offset: 3px;
    border-radius: 4px;
}

.grimba-stars.is-readonly .grimba-star {
    cursor: default;
}

.grimba-stars.is-readonly .grimba-star:hover {
    transform: none;
}

/* Zone de texte + bouton */
.grimba-review-card textarea {
    width: 100%;
    border: 1px solid #0D5C63;
    border-radius: 10px;
    padding: 12px 14px;
    font: inherit;
    color: #1F2230;
    resize: vertical;
}

.grimba-review-card textarea:focus {
    outline: 2px solid #0D5C63;
    outline-offset: 1px;
}

.grimba-review-submit {
    width: 100%;
    padding: 12px 18px;
    border: none;
    border-radius: 10px;
    background: #0D5C63;
    color: #FFFFFF;
    font-size: 16px;
    cursor: pointer;
    transition: background-color .15s ease;
}

.grimba-review-submit:hover,
.grimba-review-submit:focus-visible {
    background: #0B4F55;
}

/* Récapitulatif d'un avis déjà déposé */
.grimba-review-recap {
    margin: 16px 0;
}

.grimba-review-recap blockquote {
    margin: 12px 0 0;
    padding-left: 14px;
    border-left: 3px solid #E5E7EB;
    color: #6B7280;
}

/* Mention dans la liste des réservations */
.reservation-reviewed {
    font-size: 14px;
    color: #0F766E;
}

@media (max-width: 640px) {
    .grimba-review-card {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .grimba-review-photo {
        max-width: 180px;
    }
}

/* Date limite d'annulation sous les boutons d'action */
.reservation-cancel-limit {
    display: block;
    width: 100%;
    margin-top: 6px;
    font-size: 13px;
    color: #6B7280;
}

/* ------------------------------------------------------------------
   Vérification d'identité
   ------------------------------------------------------------------ */
.grimba-id-state {
    padding: 16px 18px;
    border-radius: 10px;
    background: #F0FAF9;
    border: 1px solid #E5E7EB;
    margin-bottom: 20px;
}

.grimba-id-state p { margin: 6px 0 0; }

.grimba-id-state.is-verified {
    background: #E6F4F1;
    border-color: #0F766E;
}

.grimba-id-state.is-pending {
    background: #FFF7E6;
    border-color: #F59E0B;
}

.grimba-id-state.is-blocked {
    background: #FDECEC;
    border-color: #EF4444;
}

.grimba-id-form { max-width: 520px; }

.grimba-id-form input[type="file"] {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 10px;
    border: 1px dashed #E5E7EB;
    border-radius: 8px;
    background: #FBFBFB;
}

.grimba-id-form small {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #6B7280;
}

.grimba-id-privacy {
    font-size: 13px;
    color: #6B7280;
    margin: 14px 0 18px;
}
