/* ──────────────────────────────────────────────────────────────────────────────
   FICHIER : public.css
   CHEMIN  : /var/www/cm-platform/frontend/modules/booking/css/public/public.css
   RÔLE    : structure publique Booking, layout, formulaire, boutons et messages
   ────────────────────────────────────────────────────────────────────────────── */

/* ──────────────────────────────────────────────────────────────────────────────
   FICHIER : booking-public.css
   CHEMIN  : /var/www/cm-platform/frontend/modules/booking/booking-public.css
   RÔLE    : styles publics du formulaire de réservation CoursMarketing

   CORRECTION DEMANDÉE :
   - Suppression de la bande blanche sous le calendrier visuel intégré.
   - Suppression de l’étirement vertical inutile du layout public.
   - Alignement du bas du bloc Message avec le bas du formulaire droit.
   - Application identique shortcode / URL publique / HTML iframe.
   - Application identique Minimal / Pro / Chic.
   - Réactivation des couleurs Premium :
     - couleur des boutons via --cm-booking-public-button-color
     - fond léger du formulaire via --cm-booking-public-form-background
     - ambiance légère via --cm-booking-public-ambiance-rgb
   - Aucun changement API.
   - Aucun changement backend.
   - Aucun changement structure / logique RDV.
   ────────────────────────────────────────────────────────────────────────────── */


/* ──────────────────────────────────────────────────────────────────────────────
   1. RESET PUBLIC
   ────────────────────────────────────────────────────────────────────────────── */

*{
  box-sizing:border-box;
}

html,
body{
  margin:0;
  padding:0 !important;
  min-height:100%;
  background:#ffffff !important;
  color:#132f57;
  font-family:Arial, Helvetica, sans-serif;
}


/* ──────────────────────────────────────────────────────────────────────────────
   2. ROOT PUBLIC SANS CARTE
   ────────────────────────────────────────────────────────────────────────────── */

#cm-booking-public-root,
.cm-booking-public-root,
.cm-booking-public-wrapper,
.cm-booking-public-embed{
  width:100%;
  max-width:100%;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#ffffff !important;
  box-shadow:none !important;
}

#cm-booking-public-root::before,
#cm-booking-public-root::after,
.cm-booking-public-root::before,
.cm-booking-public-root::after,
.cm-booking-public-wrapper::before,
.cm-booking-public-wrapper::after,
.cm-booking-public-embed::before,
.cm-booking-public-embed::after{
  display:none !important;
  content:none !important;
}


/* ──────────────────────────────────────────────────────────────────────────────
   3. CHARGEMENT / ERREUR
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-loading,
.cm-booking-public-error{
  width:100%;
  max-width:1030px;
  margin:36px auto;
  border:1px solid #dce6f1;
  border-radius:18px;
  background:#ffffff;
  padding:18px;
  color:#6a7d97;
}

.cm-booking-public-error{
  display:flex;
  flex-direction:column;
  gap:6px;
  color:#b91c1c;
  background:#fff7f7;
  border-color:#fecaca;
}

.cm-booking-public-error strong{
  display:block;
  margin-bottom:4px;
  font-weight:900;
}

.cm-booking-public-error span{
  display:block;
  line-height:1.45;
}


/* ──────────────────────────────────────────────────────────────────────────────
   4. STRUCTURE PRINCIPALE SANS FOND / SANS CARTE
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public{
  width:100%;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#ffffff !important;
  box-shadow:none !important;

  --cm-booking-public-button-color:#204a9d;
  --cm-booking-public-form-background:#ffffff;
  --cm-booking-public-ambiance-color:#ffffff;
  --cm-booking-public-ambiance-rgb:32,74,157;
}

.cm-booking-public--form-only{
  max-width:740px !important;
}

.cm-booking-public--calendar-mode{
  max-width:1030px !important;
}

/* ──────────────────────────────────────────────────────────────────────────────
   4.1 ESPACEMENT VERTICAL URL PUBLIQUE FORMULAIRE SEUL
   RÔLE : descendre le formulaire public sans modifier son design interne.
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public.cm-booking-public--form-only{
  margin:clamp(42px, 7vh, 86px) auto 0 !important;
}

.cm-booking-public::before,
.cm-booking-public::after{
  display:none !important;
  content:none !important;
}


/* ──────────────────────────────────────────────────────────────────────────────
   5. HEADER PUBLIC SANS CARTE
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-head{
  width:100%;
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#ffffff !important;
  box-shadow:none !important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.cm-booking-public-headContent{
  min-width:0;
}

.cm-booking-public-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:6px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(var(--cm-booking-public-ambiance-rgb), .10);
  color:#153a83;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.cm-booking-public-head h1{
  margin:0;
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.045em;
  color:#132f57;
}

.cm-booking-public-head p{
  margin:6px 0 0;
  color:#6a7d97;
  font-size:13px;
  line-height:1.45;
}

.cm-booking-public-headLogo{
  flex:0 0 auto;
}

.cm-booking-public-logoWrap{
  display:flex;
  align-items:center;
  justify-content:center;
}

.cm-booking-public-logo{
  display:block;
  max-width:82px;
  max-height:62px;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:13px;
  background:#ffffff;
  box-shadow:0 14px 34px rgba(16,35,66,.10);
}


/* ──────────────────────────────────────────────────────────────────────────────
   6. CONTENEUR CALENDRIER + FORMULAIRE
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-card,
.cm-booking-public-card--with-calendar{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#ffffff !important;
  box-shadow:none !important;
}

.cm-booking-public-layout{
  display:grid;
  grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);
  gap:20px;
  align-items:stretch;
  width:100%;
  max-width:100%;
}

.cm-booking-public-left,
.cm-booking-public-right{
  min-width:0;
  width:100%;
}


/* ──────────────────────────────────────────────────────────────────────────────
   7. COLONNE GAUCHE — CALENDRIER + MESSAGE
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-left{
  display:flex;
  flex-direction:column;
  min-height:100%;
}

.cm-booking-public-left .cm-cal-template{
  flex:0 0 auto;
}

.cm-booking-public-noteBox{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  margin-top:12px;
  border:1px solid #e5edf7;
  background:
    linear-gradient(
      135deg,
      var(--cm-booking-public-form-background) 0%,
      rgba(var(--cm-booking-public-ambiance-rgb), .04) 100%
    );
  border-radius:8px;
  padding:11px;
}

.cm-booking-public-noteBox label{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  margin-bottom:0;
}

.cm-booking-public-noteBox textarea{
  flex:1 1 auto;
  min-height:104px;
}

.cm-booking-public-noteBox textarea::placeholder,
.cm-booking-public-form textarea::placeholder{
  color:#6a7d97 !important;
  font-weight:700 !important;
  opacity:1 !important;
}


/* ──────────────────────────────────────────────────────────────────────────────
   8. FORMULAIRE DROIT / FORMULAIRE DIRECT
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-right{
  display:flex;
  flex-direction:column;
  border:1px solid #e5edf7;
  background:
    linear-gradient(
      135deg,
      var(--cm-booking-public-form-background) 0%,
      rgba(var(--cm-booking-public-ambiance-rgb), .045) 100%
    );
  border-radius:18px;
  padding:16px;
}

.cm-booking-public-form{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.cm-booking-public-form--with-calendar{
  display:block;
}

.cm-booking-public-owner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
  padding:10px 12px;
  border:1px solid #dce6f1;
  border-radius:13px;
  background:rgba(255,255,255,.72);
}

.cm-booking-public-owner span{
  color:#6a7d97;
  font-size:12px;
  font-weight:800;
}

.cm-booking-public-owner strong{
  color:#132f57;
  font-size:14px;
  font-weight:900;
}

.cm-booking-public-selectedDate{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:8px;
  padding:9px 12px;
  border:1px solid #dce6f1;
  border-radius:13px;
  background:rgba(255,255,255,.72);
}

.cm-booking-public-selectedDate strong{
  color:#132f57;
  font-size:12px;
  font-weight:900;
}

.cm-booking-public-selectedDate span{
  color:#6a7d97;
  font-size:11px;
  font-weight:800;
}

.cm-booking-public-two{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.cm-booking-public-form label{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:8px;
  font-size:12px;
  font-weight:900;
  color:#132f57;
}

.cm-booking-public-form label span{
  color:#6a7d97;
  font-size:10.5px;
  font-weight:700;
}

.cm-booking-public-form input,
.cm-booking-public-form select,
.cm-booking-public-form textarea{
  width:100%;
  min-width:0;
  min-height:44px;
  border:1px solid #dce6f1;
  border-radius:12px;
  background:rgba(255,255,255,.88);
  padding:10px 12px;
  color:#132f57;
  outline:none;
  font:inherit;
  font-size:12px;
}

.cm-booking-public-form select{
  cursor:pointer;
}

.cm-booking-public-form textarea{
  resize:vertical;
}

.cm-booking-public--form-only .cm-booking-public-form textarea{
  min-height:108px;
  max-height:138px;
}

.cm-booking-public-form input:focus,
.cm-booking-public-form select:focus,
.cm-booking-public-form textarea:focus{
  border-color:#b9cfef;
  box-shadow:0 0 0 3px rgba(var(--cm-booking-public-ambiance-rgb), .10);
}


/* ──────────────────────────────────────────────────────────────────────────────
   9. BOUTON CONFIRMATION
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-form [data-booking-public-submit],
.cm-booking-public-submitLine [data-booking-public-submit],
.cm-booking-public [data-booking-public-submit]{
  min-height:52px;
  border:1px solid var(--cm-booking-public-button-color) !important;
  background:var(--cm-booking-public-button-color) !important;
  color:#ffffff !important;
  border-radius:13px;
  padding:12px 14px;
  cursor:pointer;
  font-weight:900;
  font:inherit;
}

.cm-booking-public-form [data-booking-public-submit]:disabled,
.cm-booking-public-submitLine [data-booking-public-submit]:disabled,
.cm-booking-public [data-booking-public-submit]:disabled{
  opacity:.55;
  cursor:not-allowed;
}

.cm-booking-public-submitLine{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-top:6px;
  padding-top:11px;
  border-top:1px solid rgba(15,23,42,.08);
}

.cm-booking-public-submitLine [data-booking-public-submit]{
  width:auto;
  min-width:200px;
}

.cm-booking-public--form-only .cm-booking-public-form [data-booking-public-submit]{
  width:100%;
  margin-top:4px;
}

.cm-booking-public-meta{
  color:#6a7d97;
  font-size:11.5px;
  line-height:1.45;
  text-align:right;
}

.cm-booking-public-meta strong{
  color:#132f57;
}


/* ──────────────────────────────────────────────────────────────────────────────
   10. MESSAGES
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public-message{
  margin-top:12px;
  border-radius:14px;
  padding:12px 14px;
  font-size:13px;
  font-weight:800;
  line-height:1.45;
}

.cm-booking-public-message.is-success{
  border:1px solid rgba(34,197,94,.24);
  background:rgba(34,197,94,.10);
  color:#15803d;
}

.cm-booking-public-message.is-error{
  border:1px solid rgba(239,68,68,.24);
  background:rgba(239,68,68,.10);
  color:#b91c1c;
}