/* ============================================================
 *  RU ACCRÉDITATIONS - CSS de la modale de Rabais
 * ============================================================
 *  Fichier    : assets/css/rabais.css
 *  Version    : 1.0 (2026-06-11)
 *  Plugin     : RU Accréditations (MU-plugin)
 *  Chargé par : includes/assets.php (wp_enqueue_style)
 *  Site       : reseauunderground.com · Réseau Underground
 * ============================================================
 *
 *  v2.0 (2026-09-02) : refonte CLAIRE. En-tete blanc + logo RU, or
 *  vif en accent (fini le noir et le brun), police Arial. Meme langue
 *  que les autres modales du plugin.
 * ============================================================ */

/* -- OVERLAY -- */
#mhh-rabais-modal-bg{display:none;position:fixed;inset:0;z-index:1000001;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:16px;}
#mhh-rabais-modal-bg.open{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;}

/* -- MODALE -- */
#mhh-rabais-modal{background:#fff;border:1px solid #e5e7eb;border-radius:20px;width:100%;max-width:560px;max-height:88vh;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;display:flex!important;flex-direction:column!important;overflow:hidden;box-shadow:0 4px 6px rgba(0,0,0,.05),0 20px 50px rgba(0,0,0,.18);animation:mhhRabaisIn .22s cubic-bezier(.22,1,.36,1);}
@keyframes mhhRabaisIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}

/* -- HEADER -- */
#mhh-rabais-header{flex-shrink:0;padding:20px 22px 16px;background:#fff;border-bottom:2px solid #FFD000;position:relative;}
.mhh-rabais-top-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:15px;padding-right:36px;}
.mhh-rabais-top-left{flex:1;min-width:0;}
.mhh-rabais-eyebrow{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#17171B;margin-bottom:7px;padding-right:42px;}
.mhh-rabais-title{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:26px;font-weight:800;letter-spacing:.01em;color:#17171B;line-height:1;white-space:nowrap;}
.mhh-rabais-title em{color:#FFD941;font-style:normal;text-shadow:-1px -1px 0 #111214,1px -1px 0 #111214,-1px 1px 0 #111214,1px 1px 0 #111214;}
.mhh-rabais-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.mhh-rabais-inscrire-btn{display:inline-flex;align-items:center;padding:7px 12px;background:#FFD600;color:#111;border:1.5px solid #111214;border-radius:8px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;}
.mhh-rabais-inscrire-btn:hover{background:#f5cc00;transform:translateY(-1px);}
.mhh-rabais-close{position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius:50%;border:1px solid #E9EAEC;background:#fff;cursor:pointer;color:#6B6B73;font-size:17px;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.mhh-rabais-close:hover{background:#F2F3F5;border-color:#E9EAEC;color:#17171B;}
.mhh-rabais-search-wrap{position:relative;}
.mhh-rabais-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.4;pointer-events:none;}
#mhh-rabais-search{width:100%;background:#F6F7F8;border:1px solid #E9EAEC;border-radius:9px;padding:10px 13px 10px 38px;font-size:13px;color:#17171B;outline:none;transition:border-color .15s;box-sizing:border-box;font-family:inherit;}
#mhh-rabais-search:focus{border-color:#FFD000;}
#mhh-rabais-search::placeholder{color:#9A9AA1;}

/* -- COMPTEUR / LOADING -- */
#mhh-rabais-count{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#3A3A40;padding:10px 20px 0;background:#fff;}
#mhh-rabais-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:50px 22px;flex:1;background:#fff;}
.mhh-rabais-spin{width:20px;height:20px;border:2px solid #e5e7eb;border-top-color:#111;border-radius:50%;animation:mhhRabaisSpin .7s linear infinite;}
@keyframes mhhRabaisSpin{to{transform:rotate(360deg)}}
.mhh-rabais-loading-txt{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:11px;color:#9ca3af;}

/* -- LISTE -- */
#mhh-rabais-list{flex:1;overflow-y:auto;padding:12px 16px 20px;display:flex;flex-direction:column;gap:10px;background:#f9fafb;}
#mhh-rabais-list::-webkit-scrollbar{width:4px;}
#mhh-rabais-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px;}

/* -- CARTE -- */
.mhh-rabais-card{background:#fff;border-radius:12px;overflow:hidden;cursor:pointer;box-shadow:0 3px 13px rgba(0,0,0,.13);transition:box-shadow .15s,transform .12s;}
.mhh-rabais-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.16);transform:translateY(-1px);}
.mhh-rabais-card.has-rabais{border-left:3px solid #FFD000;}
.mhh-rabais-card.no-rabais{opacity:.6;cursor:default;}
.mhh-rabais-card-top{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;}
.mhh-rabais-logo-wrap{width:46px;height:46px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#f3f4f6;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center;}
.mhh-rabais-logo-wrap img{width:100%;height:100%;object-fit:contain;display:block;padding:4px;}
.mhh-rabais-logo-emoji{font-size:22px;line-height:1;}
.mhh-rabais-card-info{flex:1;min-width:0;}
.mhh-rabais-card-nom{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:17px;letter-spacing:.05em;color:#111;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mhh-rabais-card-loc{font-size:10px;color:#4B4B52;margin-top:2px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;}
.mhh-rabais-pct-badge{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:58px;height:58px;border-radius:12px;}
.mhh-rabais-pct-badge.has-pct{background:#fff;border:1.5px solid #FFD000;}
.mhh-rabais-pct-badge.no-pct{background:#f3f4f6;border:1px solid #e5e7eb;}
.mhh-rabais-pct-number{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:24px;letter-spacing:.02em;line-height:1;}
.mhh-rabais-pct-badge.has-pct .mhh-rabais-pct-number{color:#17171B;}
.mhh-rabais-pct-badge.no-pct .mhh-rabais-pct-number{color:#9ca3af;font-size:18px;}
.mhh-rabais-pct-label{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:7.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1;margin-top:2px;}
.mhh-rabais-pct-badge.has-pct .mhh-rabais-pct-label{color:#FFD941;text-shadow:-1px -1px 0 #111214,1px -1px 0 #111214,-1px 1px 0 #111214,1px 1px 0 #111214;}
.mhh-rabais-pct-badge.no-pct .mhh-rabais-pct-label{color:#d1d5db;}
.mhh-rabais-card-desc{padding:10px 16px 12px;font-size:12px;color:#1a1a1a;line-height:1.6;border-top:1px solid #f3f4f6;}
.mhh-rabais-card-footer{padding:0 16px 12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.mhh-rabais-tag-pour-toi{display:inline-flex;align-items:center;padding:4px 10px;background:rgba(255,208,0,.14);border:1px solid #FFD000;border-radius:7px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#17171B;}
.mhh-rabais-tag-global{display:inline-flex;align-items:center;padding:4px 10px;background:rgba(255,208,0,.14);border:1px solid #FFD000;border-radius:7px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#17171B;}
.mhh-rabais-tag-promo{display:inline-flex;align-items:center;padding:4px 10px;background:#fff;border:1px solid #111;border-radius:7px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#111;}
.mhh-rabais-tag-nip{display:inline-flex;align-items:center;padding:4px 10px;background:#fff;border:1px solid #d1d5db;border-radius:7px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#374151;}
.mhh-rabais-tag-exp{display:inline-flex;align-items:center;padding:4px 10px;background:#fff;border:1px solid #e5e7eb;border-radius:7px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#9ca3af;}
.mhh-rabais-card-hint{display:flex;align-items:center;justify-content:flex-end;padding:0 16px 10px;gap:5px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;color:#9ca3af;letter-spacing:.08em;}

/* -- v2.6 DÉCOUVERTE : puces de catégorie + badges vedette/nouveau -- */
.mhh-rabais-cats{display:flex;flex-wrap:wrap;gap:7px;padding:2px 16px 12px;}
.mhh-rabais-cat-chip{appearance:none;cursor:pointer;padding:6px 13px;border:1px solid #D5D6DA;background:#fff;border-radius:20px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:11px;font-weight:700;letter-spacing:.02em;color:#3A3A40;transition:background .12s,border-color .12s,color .12s;}
.mhh-rabais-cat-chip:hover{border-color:#111214;color:#111214;}
.mhh-rabais-cat-chip.active{background:#111214;border-color:#111214;color:#FFD941;text-shadow:-1px -1px 0 #111214,1px -1px 0 #111214,-1px 1px 0 #111214,1px 1px 0 #111214;}
.mhh-rabais-card{position:relative;}
.mhh-rabais-card.est-vedette{border-left:3px solid #FFD941;}
.mhh-rabais-badges{position:absolute;top:9px;right:9px;z-index:2;display:flex;gap:5px;}
.mhh-rabais-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.mhh-rabais-badge.vedette{background:#FFD941;border:1px solid #111214;color:#111214;}
.mhh-rabais-badge.nouveau{background:#1E9E57;border:1px solid #17643a;color:#fff;}

/* -- ÉTAT VIDE -- */
#mhh-rabais-empty{padding:16px;background:#f9fafb;flex:1;}
.mhh-empty-search{padding:30px 20px;text-align:center;}
.mhh-empty-search-icon{font-size:30px;margin-bottom:10px;}
.mhh-empty-search-txt{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:11px;color:#6b7280;line-height:1.8;}

/* -- SOUS-VUE QR -- */
#mhh-rabais-qr-view{flex:1;display:none;flex-direction:column;overflow-y:auto;padding:18px 20px 22px;background:#f9fafb;}
#mhh-rabais-qr-view.active{display:flex;}
.mhh-qr-back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;margin-bottom:16px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .15s;align-self:flex-start;}
.mhh-qr-back-btn:hover{border-color:#111;color:#111;}
/* QR gros et centré, boîte blanche à contour noir */
.mhh-qr-box{width:170px;height:170px;margin:4px auto 16px;background:#fff;border:1px solid #E9EAEC;border-radius:16px;padding:11px;box-shadow:0 6px 20px -8px rgba(12,12,16,.14);}
.mhh-qr-box img{width:100%;height:100%;display:block;object-fit:contain;}
/* Pourcentage collé au nom du partenaire, centrés sous le QR, en noir lisible */
.mhh-qr-head{text-align:center;margin-bottom:16px;}
.mhh-qr-pct-val{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:34px;font-weight:900;color:#111;line-height:1;}
.mhh-qr-part-nom{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:22px;letter-spacing:.04em;text-transform:uppercase;color:#111;line-height:1.1;margin-top:5px;}
.mhh-qr-part-desc{font-size:12px;color:#333;line-height:1.45;margin-top:7px;}

/* v3.1 - Code promo dans la sous-vue QR */
.mhh-qr-code-promo-block{background:transparent;border:none;border-radius:0;padding:0;width:170px;margin:0 auto 12px;text-align:center;}
.mhh-qr-code-promo-eyebrow{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#3A3A40;margin-bottom:8px;}
.mhh-qr-code-promo-value{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:16px;font-weight:700;color:#17171B;letter-spacing:.08em;background:#F6F7F8;border:1px solid #E9EAEC;border-radius:10px;padding:12px 10px;display:block;width:100%;box-sizing:border-box;cursor:pointer;transition:background .15s;user-select:all;}
.mhh-qr-code-promo-value:hover,.mhh-qr-code-promo-value:active{background:#EEF0F2;}
.mhh-qr-code-promo-hint{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;color:#3A3A40;letter-spacing:.06em;margin-top:8px;}
.mhh-qr-code-promo-copied{font-size:8.5px;color:#16a34a;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;display:none;margin-top:3px;}

/* v3.1 - Indication validation en magasin (compact v3.7) */
.mhh-qr-magasin-block{flex-direction:column;align-items:center;gap:4px;width:170px;margin:0 auto 12px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:11px 13px;text-align:center;}
.mhh-qr-magasin-icon{font-size:18px;flex-shrink:0;margin-top:1px;}
.mhh-qr-magasin-title{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#111;margin-bottom:3px;}
.mhh-qr-magasin-desc{font-size:11px;color:#333;line-height:1.5;text-align:center;}

/* Indice et URL sous la vue détail (le QR vit maintenant dans le bloc compact) */
.mhh-qr-hint{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#444;text-align:center;margin-top:2px;}
.mhh-qr-url-tiny{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:7.5px;color:#888;word-break:break-all;text-align:center;margin-top:4px;}

/* FOOTER */
#mhh-rabais-footer{flex-shrink:0;padding:10px 20px 12px;border-top:1px solid #f3f4f6;background:#fff;display:flex;align-items:center;justify-content:space-between;}
.mhh-rabais-footer-txt{font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:8.5px;color:#d1d5db;letter-spacing:.08em;text-transform:uppercase;}
.mhh-rabais-footer-txt strong{color:#9ca3af;}

/* ==========================================================
   MODALE FORMULAIRE - v1.5 - 2026-05-21
   - Labels AU-DESSUS de la card (jamais dedans)
   - Police système/Arial (lisible, accueillante, pas dactylo)
   - Compact : formulaire ne déborde pas, respire mais reste léger
   ========================================================== */

#mhh-form-overlay{
  display:none;position:fixed;inset:0;z-index:1000002;
  background:rgba(0,0,0,.65);backdrop-filter:blur(8px);
  align-items:center;justify-content:center;padding:14px;
}
#mhh-form-overlay.open{display:flex!important;}

#mhh-form-modal{
  background:#fff;
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;
  border-radius:14px;
  width:100%;
  max-width:460px;
  max-height:90vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  animation:mhhRabaisIn .22s cubic-bezier(.22,1,.36,1);
}

/* -- HEADER -- */
.mhh-form-modal-head{
  flex-shrink:0;
  background:#fff;
  padding:14px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:2px solid #FFD000;
}
.mhh-form-modal-head-left{flex:1;min-width:0;}
.mhh-form-modal-eyebrow{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;
  font-size:7.5px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#FFD941;
  margin-bottom:2px;
}
.mhh-form-modal-title{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;
  font-size:20px;
  font-weight:800;
  letter-spacing:.02em;
  color:#17171B;
  line-height:1;
}
.mhh-form-modal-title em{
  color:#FFD941;
  font-style:normal;
  text-shadow:-1px -1px 0 #111214,1px -1px 0 #111214,-1px 1px 0 #111214,1px 1px 0 #111214;
  border-bottom:2px solid #FFD000;
}
.mhh-form-modal-close{
  width:30px;height:30px;
  border-radius:50%;
  border:1px solid #E9EAEC;
  background:#fff;
  cursor:pointer;
  color:#6B6B73;
  font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;
  flex-shrink:0;
}
.mhh-form-modal-close:hover{background:#F2F3F5;border-color:#E9EAEC;color:#17171B;}

/* -- BODY -- */
.mhh-form-modal-body{
  flex:1;
  overflow-y:auto;
  padding:14px 16px 18px;
  background:#fff;
}
.mhh-form-modal-body::-webkit-scrollbar{width:5px;}
.mhh-form-modal-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px;}

/* ==========================================================
   FLUENT FORMS - STYLES INTERNES
   ========================================================== */

/* Reset wrapper */
.mhh-form-modal-body .fluentform,
.mhh-form-modal-body .frm-fluent-form,
.mhh-form-modal-body .ff-default,
.mhh-form-modal-body form{
  background:transparent!important;
  padding:0!important;
  margin:0!important;
  box-shadow:none!important;
  border:none!important;
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
}

/* Section break = "Je veux participer..." - bandeau jaune compact */
.mhh-form-modal-body .ff-el-section-break,
.mhh-form-modal-body .ff_section_heading{
  background:#F6F7F8!important;
  border:none!important;
  border-left:3px solid #FFD000!important;
  border-radius:6px!important;
  padding:8px 11px!important;
  margin:0 0 10px!important;
  box-shadow:none!important;
}
.mhh-form-modal-body .ff-el-section-break-title,
.mhh-form-modal-body .ff_section_heading h3,
.mhh-form-modal-body .ff_section_heading > *{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:12.5px!important;
  font-weight:600!important;
  letter-spacing:0!important;
  color:#111!important;
  margin:0!important;
  line-height:1.3!important;
  text-transform:none!important;
}

/* Conteneur du champ - PAS de bordure, PAS de fond.
   La card visuelle, c'est juste l'input lui-même. */
.mhh-form-modal-body .ff-el-group{
  background:transparent!important;
  border:none!important;
  border-radius:0!important;
  padding:0!important;
  margin-bottom:11px!important;
  box-shadow:none!important;
}

/* LABEL - au-dessus, Arial, petit mais lisible */
.mhh-form-modal-body .ff-el-input--label,
.mhh-form-modal-body .ff-el-input--label label,
.mhh-form-modal-body label.ff-el-input--label,
.mhh-form-modal-body .ff-el-group > label{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:12px!important;
  font-weight:600!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#374151!important;
  margin:0 0 4px 2px!important;
  padding:0!important;
  display:block!important;
  line-height:1.3!important;
}

/* -- ASTÉRISQUE REQUIS - couvre tous les patterns Fluent Forms --
   1. Si FF injecte <span class="ff_required_asterisk"> → on le style.
   2. Si FF met juste la classe .ff-el-is-required sur le wrapper → on génère
      un astérisque via CSS ::after sur le label.
   3. Fallback ultime : si l'input HTML a l'attribut [required], on ajoute
      l'astérisque automatiquement (ça marche TOUJOURS, peu importe la config). */

/* 1. Astérisque injecté par Fluent Forms */
.mhh-form-modal-body .ff_required_asterisk,
.mhh-form-modal-body .ff-el-is-required-mark,
.mhh-form-modal-body label .required,
.mhh-form-modal-body .ff-el-input--label .required{
  color:#dc2626!important;
  font-weight:700!important;
  font-size:14px!important;
  margin-left:3px!important;
  display:inline!important;
  line-height:1!important;
}

/* 2. Génération via CSS quand FF marque le wrapper .ff-el-is-required */
.mhh-form-modal-body .ff-el-is-required > .ff-el-input--label label:after,
.mhh-form-modal-body .ff-el-is-required .ff-el-input--label:after,
.mhh-form-modal-body .ff-el-is-required > label:after,
.mhh-form-modal-body .ff-el-group.ff-el-is-required > .ff-el-input--label label:after{
  content:" *"!important;
  color:#dc2626!important;
  font-weight:700!important;
  font-size:14px!important;
  margin-left:2px!important;
  display:inline!important;
}

/* 3. FALLBACK GARANTI - basé sur l'attribut HTML natif [required].
   Fluent Forms ajoute toujours required="" sur l'input quand le champ
   est obligatoire. On utilise :has() pour remonter au label associé. */
.mhh-form-modal-body .ff-el-group:has(input[required]) > .ff-el-input--label label:after,
.mhh-form-modal-body .ff-el-group:has(textarea[required]) > .ff-el-input--label label:after,
.mhh-form-modal-body .ff-el-group:has(select[required]) > .ff-el-input--label label:after,
.mhh-form-modal-body .ff-el-group:has(input[aria-required="true"]) > .ff-el-input--label label:after,
.mhh-form-modal-body .ff-el-group:has(textarea[aria-required="true"]) > .ff-el-input--label label:after,
.mhh-form-modal-body .ff-el-group:has(select[aria-required="true"]) > .ff-el-input--label label:after{
  content:" *"!important;
  color:#dc2626!important;
  font-weight:700!important;
  font-size:14px!important;
  margin-left:2px!important;
  display:inline!important;
}

/* INPUT = la card.
   Bordure noire 1.5px en tout temps. */
.mhh-form-modal-body .ff-el-form-control,
.mhh-form-modal-body input[type=text],
.mhh-form-modal-body input[type=email],
.mhh-form-modal-body input[type=tel],
.mhh-form-modal-body input[type=number],
.mhh-form-modal-body input[type=url],
.mhh-form-modal-body input[type=date],
.mhh-form-modal-body input[type=password],
.mhh-form-modal-body textarea,
.mhh-form-modal-body select{
  width:100%!important;
  background:#fff!important;
  border:1.5px solid #111!important;
  border-radius:8px!important;
  padding:8px 11px!important;
  font-size:13.5px!important;
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-weight:400!important;
  color:#111!important;
  box-shadow:none!important;
  transition:box-shadow .15s!important;
  box-sizing:border-box!important;
  line-height:1.4!important;
  height:auto!important;
  min-height:auto!important;
  outline:none!important;
}

/* Textarea */
.mhh-form-modal-body textarea{
  min-height:70px!important;
  resize:vertical!important;
  line-height:1.45!important;
  padding:8px 11px!important;
}

/* Select - flèche custom */
.mhh-form-modal-body select{
  appearance:none!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 11px center!important;
  background-size:11px!important;
  padding-right:30px!important;
  cursor:pointer!important;
}

/* Focus - halo jaune subtil, bordure reste noire */
.mhh-form-modal-body input:focus,
.mhh-form-modal-body textarea:focus,
.mhh-form-modal-body select:focus{
  border-color:#111!important;
  box-shadow:0 0 0 3px rgba(255,214,0,.3)!important;
}

/* Placeholder */
.mhh-form-modal-body input::placeholder,
.mhh-form-modal-body textarea::placeholder{
  color:#9ca3af!important;
  font-weight:400!important;
  opacity:1!important;
}

/* Radio + Checkbox - cards cliquables compactes */
.mhh-form-modal-body .ff-el-form-check,
.mhh-form-modal-body .ff-el-form-check-inline{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:7px 10px!important;
  background:#fff!important;
  border:1.5px solid #111!important;
  border-radius:8px!important;
  margin-bottom:5px!important;
  cursor:pointer!important;
  transition:background .15s!important;
}
.mhh-form-modal-body .ff-el-form-check:hover{
  background:#F6F7F8!important;
}
.mhh-form-modal-body .ff-el-form-check input[type=radio],
.mhh-form-modal-body .ff-el-form-check input[type=checkbox]{
  width:15px!important;height:15px!important;
  margin:0!important;
  accent-color:#111!important;
  cursor:pointer!important;
  flex-shrink:0!important;
  border:none!important;
}
.mhh-form-modal-body .ff-el-form-check-label,
.mhh-form-modal-body .ff-el-form-check label{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:13px!important;
  font-weight:400!important;
  color:#111!important;
  letter-spacing:0!important;
  text-transform:none!important;
  cursor:pointer!important;
  margin:0!important;
  flex:1!important;
}

/* Wrapper bouton submit */
.mhh-form-modal-body .ff-el-group.ff_submit_btn_wrapper,
.mhh-form-modal-body .ff_submit_btn_wrapper,
.mhh-form-modal-body .ff-el-group:has(button[type=submit]),
.mhh-form-modal-body .ff-el-group:has(.ff-btn-submit){
  background:transparent!important;
  border:none!important;
  padding:0!important;
  margin:14px 0 0!important;
  box-shadow:none!important;
}

/* BOUTON SUBMIT - jaune RU, compact */
.mhh-form-modal-body button[type=submit],
.mhh-form-modal-body .ff-btn-submit,
.mhh-form-modal-body input[type=submit],
.mhh-form-modal-body .ff-btn.ff-btn-submit,
.mhh-form-modal-body .ff-btn{
  width:100%!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  background:#FFD600!important;
  color:#111!important;
  border:1.5px solid #111!important;
  border-radius:8px!important;
  padding:10px 18px!important;
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:13.5px!important;
  font-weight:700!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
  cursor:pointer!important;
  transition:all .15s!important;
  box-shadow:0 2px 8px rgba(255,214,0,.3)!important;
  line-height:1.2!important;
  min-height:auto!important;
  text-shadow:none!important;
}
.mhh-form-modal-body button[type=submit]:hover,
.mhh-form-modal-body .ff-btn-submit:hover,
.mhh-form-modal-body .ff-btn:hover{
  background:#111!important;
  color:#FFD600!important;
  transform:translateY(-1px)!important;
  box-shadow:0 4px 12px rgba(0,0,0,.25)!important;
}
.mhh-form-modal-body button[type=submit]:active{transform:translateY(0)!important;}

/* Erreurs */
.mhh-form-modal-body .error,
.mhh-form-modal-body .ff-el-is-error .text-danger,
.mhh-form-modal-body .ff_submit_error,
.mhh-form-modal-body .ff-el-form-control + .error{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:11.5px!important;
  font-weight:500!important;
  color:#dc2626!important;
  margin-top:4px!important;
  display:block!important;
  background:transparent!important;
  border:none!important;
  padding:0 0 0 2px!important;
}
.mhh-form-modal-body .ff-el-is-error input,
.mhh-form-modal-body .ff-el-is-error textarea,
.mhh-form-modal-body .ff-el-is-error select{
  border-color:#dc2626!important;
}

/* Succès */
.mhh-form-modal-body .ff-message-success,
.mhh-form-modal-body .ff_submit_success,
.mhh-form-modal-body .ff-message-success-body{
  background:#f0fdf4!important;
  border:1.5px solid #86efac!important;
  border-left:3px solid #16a34a!important;
  border-radius:8px!important;
  padding:12px 14px!important;
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:13px!important;
  color:#166534!important;
  line-height:1.5!important;
  margin:0!important;
}

/* Help text */
.mhh-form-modal-body .ff-el-help-message,
.mhh-form-modal-body .ff-help-message{
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif!important;
  font-size:11px!important;
  color:#9ca3af!important;
  margin-top:4px!important;
  letter-spacing:0!important;
  line-height:1.4!important;
  padding-left:2px!important;
}

/* Loader bouton */
.mhh-form-modal-body .ff_submit_btn_spinner,
.mhh-form-modal-body .ff-circle-loader{
  border-top-color:#111!important;
}

@media(max-width:600px){
    #mhh-rabais-modal{max-height:80vh;border-radius:18px;}
    .mhh-qr-box{width:150px;height:150px;}
    .mhh-qr-pct-val{font-size:30px;}
    .mhh-qr-part-nom{font-size:20px;}
    .mhh-qr-magasin-block,.mhh-qr-code-promo-block{width:150px;}
    .mhh-qr-code-promo-value{font-size:15px;}
    .mhh-rabais-top-row{flex-direction:column;align-items:stretch;gap:11px;padding-right:0;}
    .mhh-rabais-title{font-size:26px;padding-right:34px;}
    .mhh-rabais-eyebrow{padding-right:34px;}
    #mhh-rabais-footer{padding-bottom:max(12px,env(safe-area-inset-bottom));}
    .mhh-rabais-inscrire-btn{font-size:9.5px;padding:7px 12px;align-self:flex-end;}
    #mhh-form-modal{max-height:92vh;border-radius:12px;max-width:100%;}
    .mhh-form-modal-head{padding:12px 14px;}
    .mhh-form-modal-eyebrow{display:none;}
    .mhh-form-modal-title{font-size:18px;}
    .mhh-form-modal-body{padding:12px 13px 16px;}
    .mhh-form-modal-body input,
    .mhh-form-modal-body textarea,
    .mhh-form-modal-body select{font-size:16px!important;}  /* anti-zoom iOS */
}

/* -- Logos Réseau Underground dans les en-têtes (refonte claire v2.0) -- */
.mhh-rabais-logo{height:32px;width:auto;display:block;margin-bottom:12px;}
.mhh-form-modal-logo{height:26px;width:auto;flex-shrink:0;margin-right:2px;}

/* -- Boite blanche unique autour du contenu du rabais (vue QR) v2.1 -- */
.mhh-qr-panel{background:#fff;border:1px solid #E1E2E5;border-radius:16px;padding:18px 16px 16px;box-shadow:0 6px 20px -10px rgba(12,12,16,.14);}
.mhh-qr-panel .mhh-qr-box{margin-top:0;border:1px solid #E9EAEC;box-shadow:none;}
