/* ──────────────────────────────────────────────────────────────────────────────
   FICHIER : public-calendar.css
   CHEMIN  : /var/www/cm-platform/frontend/modules/booking/css/public/public-calendar.css
   RÔLE    : calendriers publics Booking Minimal / Pro / Chic et corrections premium
   ────────────────────────────────────────────────────────────────────────────── */

/* ──────────────────────────────────────────────────────────────────────────────
   11. BASE CALENDRIERS
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public .cm-cal-template,
.cm-booking-public .cm-cal-template *{
  box-sizing:border-box;
}

.cm-booking-public .cm-cal-template{
  width:100%;
  max-width:100%;
  margin:0;
}

.cm-booking-public .cm-cal-template button{
  font:inherit;
}

.cm-booking-public .cm-cal-template button:not([data-booking-public-submit]){
  padding:0;
  box-shadow:none;
}

.cm-booking-public .cm-cal-template__monthBar button,
.cm-booking-public .cm-cal-minimal__day,
.cm-booking-public .cm-cal-pro__day,
.cm-booking-public .cm-cal-chic__day{
  border:0;
}

.cm-booking-public [data-booking-public-submit]{
  border:1px solid var(--cm-booking-public-button-color);
  background:var(--cm-booking-public-button-color);
  color:#ffffff;
}


/* ──────────────────────────────────────────────────────────────────────────────
   12. MINIMAL / FREE
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public .cm-cal-template--minimal,
.cm-booking-public .cm-cal-template--minimal *{
  border-radius:0 !important;
}

.cm-booking-public .cm-cal-template--minimal{
  padding:0;
  border:0;
  background:#ffffff;
}

.cm-booking-public .cm-cal-template--minimal .cm-cal-template__monthBar{
  border:1px solid #d7dfea;
  border-bottom:0;
  background:#f5f8fc;
  box-shadow:none;
}

.cm-booking-public .cm-cal-minimal{
  border:1px solid #d7dfea;
  overflow:hidden;
  background:#ffffff;
}

.cm-booking-public .cm-cal-minimal__dow > div{
  background:#f8fafc;
  border-right:1px solid #d7dfea;
  border-bottom:1px solid #d7dfea;
  color:#4b5f7a;
}

.cm-booking-public .cm-cal-minimal__cell{
  border-right:1px solid #d7dfea;
  border-bottom:1px solid #d7dfea;
  background:#ffffff;
}

.cm-booking-public .cm-cal-minimal__cell:nth-child(7n){
  border-right:0;
}

.cm-booking-public .cm-cal-minimal__cell:nth-last-child(-n+7){
  border-bottom:0;
}

.cm-booking-public .cm-cal-minimal__cell.is-empty{
  background:#fbfdff;
}

.cm-booking-public .cm-cal-minimal__day{
  background:transparent;
  color:#132f57;
  box-shadow:none;
}

.cm-booking-public .cm-cal-minimal__cell.is-on .cm-cal-minimal__day,
.cm-booking-public .cm-cal-minimal__cell.is-on.heat-low .cm-cal-minimal__day{
  background:#eaf3ff;
  color:#132f57;
}

.cm-booking-public .cm-cal-minimal__cell.is-on.heat-mid .cm-cal-minimal__day{
  background:#d6e8ff;
  color:#132f57;
}

.cm-booking-public .cm-cal-minimal__cell.is-on.heat-hot .cm-cal-minimal__day{
  background:#bdd7fb;
  color:#132f57;
}

.cm-booking-public .cm-cal-minimal__cell.is-off .cm-cal-minimal__day,
.cm-booking-public .cm-cal-minimal__day.is-disabled,
.cm-booking-public .cm-cal-minimal__day.is-blocked,
.cm-booking-public .cm-cal-minimal__day.is-full,
.cm-booking-public .cm-cal-minimal__day.is-past{
  background:transparent;
  color:#9aa8ba;
  cursor:not-allowed;
}

.cm-booking-public .cm-cal-minimal__cell.is-blocked,
.cm-booking-public .cm-cal-minimal__cell.is-full,
.cm-booking-public .cm-cal-minimal__cell.is-past{
  background:#ffffff;
}

.cm-booking-public .cm-cal-minimal__dot{
  display:none !important;
}


/* ──────────────────────────────────────────────────────────────────────────────
   13. PRO / BASIC
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public .cm-cal-template--pro,
.cm-booking-public .cm-cal-template--pro *{
  border-radius:0 !important;
}

.cm-booking-public .cm-cal-template--pro{
  padding:0;
  border:0;
  background:#ffffff;
}

.cm-booking-public .cm-cal-template--pro .cm-cal-template__monthBar{
  min-height:42px;
  border:1px solid #d7dfea;
  border-bottom:0;
  background:#f5f8fc;
  box-shadow:none;
}

.cm-booking-public .cm-cal-template--pro .cm-cal-template__monthBar button,
.cm-booking-public .cm-cal-template--pro .cm-cal-template__monthBar span{
  height:42px;
  color:#132f57;
  background:transparent;
  border-color:#d7dfea;
  font-size:18px;
}

.cm-booking-public .cm-cal-template--pro .cm-cal-template__monthBar strong{
  font-size:15px;
}

.cm-booking-public .cm-cal-pro{
  border:1px solid #c8d7f0;
  overflow:hidden;
  background:#ffffff;
}

.cm-booking-public .cm-cal-pro__dow{
  background:#f3f7ff;
  border-right:1px solid #c8d7f0;
  border-bottom:1px solid #c8d7f0;
  color:#1f365b;
  padding:9px 0;
  font-size:11px;
}

.cm-booking-public .cm-cal-pro__cell{
  min-height:48px;
  border-right:1px solid #d8e3f3;
  border-bottom:1px solid #d8e3f3;
  background:#ffffff;
}

.cm-booking-public .cm-cal-pro__cell:nth-child(7n){
  border-right:0;
}

.cm-booking-public .cm-cal-pro__cell:nth-last-child(-n+7){
  border-bottom:0;
}

.cm-booking-public .cm-cal-pro__grid > .cm-cal-pro__cell:nth-child(7n+1){
  background:#ffffff;
}

.cm-booking-public .cm-cal-pro__grid > .cm-cal-pro__cell:nth-child(7n+6),
.cm-booking-public .cm-cal-pro__grid > .cm-cal-pro__cell:nth-child(7n){
  background:#eef5ff;
}

.cm-booking-public .cm-cal-pro__day{
  min-height:48px;
  background:transparent;
  color:#132f57;
  box-shadow:none;
  font-size:14px;
}

.cm-booking-public .cm-cal-pro__cell.is-on.heat-low .cm-cal-pro__day{
  background:#dbeafe;
  color:#132f57;
}

.cm-booking-public .cm-cal-pro__cell.is-on.heat-mid .cm-cal-pro__day{
  background:#315f9f;
  color:#ffffff;
}

.cm-booking-public .cm-cal-pro__cell.is-on.heat-hot .cm-cal-pro__day{
  background:#102f63;
  color:#ffffff;
}

.cm-booking-public .cm-cal-pro__cell.is-blocked,
.cm-booking-public .cm-cal-pro__cell.is-full{
  background:#eef5ff;
}

.cm-booking-public .cm-cal-pro__cell.is-blocked .cm-cal-pro__day,
.cm-booking-public .cm-cal-pro__cell.is-full .cm-cal-pro__day,
.cm-booking-public .cm-cal-pro__day.is-blocked,
.cm-booking-public .cm-cal-pro__day.is-full{
  background:#eef5ff;
  color:#6f7f96;
  cursor:not-allowed;
}

.cm-booking-public .cm-cal-pro__cell.is-past .cm-cal-pro__day,
.cm-booking-public .cm-cal-pro__day.is-past,
.cm-booking-public .cm-cal-pro__cell.is-off .cm-cal-pro__day,
.cm-booking-public .cm-cal-pro__day--disabled{
  color:#9aa8ba;
  cursor:not-allowed;
}


/* ──────────────────────────────────────────────────────────────────────────────
   14. CHIC / PREMIUM
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public .cm-cal-template--chic,
.cm-booking-public .cm-cal-template--chic *{
  border-radius:0 !important;
}

.cm-booking-public .cm-cal-template--chic{
  max-width:100%;
  padding:0 !important;
  border:1px solid #cfcfcf !important;
  background:#ffffff !important;
  box-shadow:none !important;
}

.cm-booking-public .cm-cal-template--chic .cm-cal-template__monthBar{
  border:0 !important;
  border-bottom:1px solid #cfcfcf !important;
  background:#071F4D !important;
  box-shadow:none !important;
  margin:0 !important;
  min-height:48px !important;
}

.cm-booking-public .cm-cal-template--chic .cm-cal-template__monthBar button,
.cm-booking-public .cm-cal-template--chic .cm-cal-template__monthBar span{
  height:48px !important;
  color:#ffffff !important;
  background:transparent !important;
  border-color:rgba(255,255,255,.22) !important;
  box-shadow:none !important;
}

.cm-booking-public .cm-cal-template--chic .cm-cal-template__monthBar strong{
  color:#ffffff !important;
  font-size:18px !important;
  font-weight:950 !important;
  letter-spacing:-.02em !important;
}

.cm-booking-public .cm-cal-template--chic .cm-cal-template__monthBar button:hover{
  background:rgba(255,255,255,.12) !important;
  color:#ffffff !important;
}

.cm-booking-public .cm-cal-chic{
  border:0 !important;
  background:#ffffff !important;
  overflow:hidden !important;
}

.cm-booking-public .cm-cal-chic__dow{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:0 !important;
  margin:0 !important;
  background:#ffffff !important;
}

.cm-booking-public .cm-cal-chic__dow > div{
  padding:12px 0 !important;
  text-align:center;
  background:#f5f5f5 !important;
  color:#071F4D !important;
  border-right:1px solid #cfcfcf !important;
  border-bottom:1px solid #cfcfcf !important;
  font-size:12px !important;
  font-weight:1000 !important;
  letter-spacing:.015em !important;
}

.cm-booking-public .cm-cal-chic__dow > div:last-child{
  border-right:0 !important;
}

.cm-booking-public .cm-cal-chic__cells{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:0 !important;
  background:#ffffff !important;
}

.cm-booking-public .cm-cal-chic__cell{
  min-height:58px !important;
  border-right:1px solid #cfcfcf !important;
  border-bottom:1px solid #cfcfcf !important;
  border-top:0 !important;
  border-left:0 !important;
  background:#ffffff !important;
  display:grid;
  place-items:center;
  box-shadow:none !important;
  outline:0 !important;
}

.cm-booking-public .cm-cal-chic__cell:nth-child(7n){
  border-right:0 !important;
}

.cm-booking-public .cm-cal-chic__cell:nth-last-child(-n+7){
  border-bottom:0 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-empty{
  background:#ffffff !important;
  border-top:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}

.cm-booking-public .cm-cal-chic__day{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  min-height:58px !important;
  border:0 !important;
  border-top:0 !important;
  background:transparent !important;
  color:#071F4D !important;
  font-weight:900 !important;
  font-size:15px !important;
  cursor:pointer;
  box-shadow:none !important;
  outline:0 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-off{
  background:#f7f7f7 !important;
  box-shadow:none !important;
  outline:0 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-off .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__day.is-disabled{
  color:#8f98a8 !important;
  font-weight:800 !important;
  cursor:not-allowed;
  box-shadow:none !important;
  outline:0 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-on,
.cm-booking-public .cm-cal-chic__cell.is-on.heat-low,
.cm-booking-public .cm-cal-chic__cell.is-on.heat-mid,
.cm-booking-public .cm-cal-chic__cell.is-on.heat-hot{
  background:#e0a400 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-on .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__cell.is-on.heat-low .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__cell.is-on.heat-mid .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__cell.is-on.heat-hot .cm-cal-chic__day{
  color:#071F4D !important;
  font-weight:1000 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-blocked{
  background:#505050 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-blocked .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__day.is-blocked{
  background:transparent !important;
  color:#ffffff !important;
  font-weight:1000 !important;
  cursor:not-allowed !important;
}

.cm-booking-public .cm-cal-chic__cell.is-full,
.cm-booking-public .cm-cal-chic__cell.is-full.is-blocked,
.cm-booking-public .cm-cal-chic__cell.is-blocked.is-full{
  background:#c00000 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-full .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__cell.is-full.is-blocked .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__cell.is-blocked.is-full .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__day.is-full{
  background:transparent !important;
  color:#ffffff !important;
  font-weight:1000 !important;
  cursor:not-allowed !important;
}

.cm-booking-public .cm-cal-chic__cell.is-past{
  background:#f7f7f7 !important;
}

.cm-booking-public .cm-cal-chic__cell.is-past .cm-cal-chic__day,
.cm-booking-public .cm-cal-chic__day.is-past{
  background:transparent !important;
  color:#9aa3b2 !important;
  font-weight:800 !important;
  cursor:not-allowed !important;
}


/* ──────────────────────────────────────────────────────────────────────────────
   15. PREMIUM / CHIC — FORMULAIRE NORMALISÉ
   IMPORTANT :
   - Le thème Chic garde son design calendrier.
   - Les boutons utilisent la couleur Premium choisie.
   - Le fond du formulaire utilise le fond Premium choisi avec un léger dégradé.
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public--chic .cm-booking-public-right{
  border-color:#e5edf7 !important;
  background:
    linear-gradient(
      135deg,
      var(--cm-booking-public-form-background) 0%,
      rgba(var(--cm-booking-public-ambiance-rgb), .055) 100%
    ) !important;
}

.cm-booking-public--chic .cm-booking-public-owner,
.cm-booking-public--chic .cm-booking-public-selectedDate{
  border-color:#dce6f1 !important;
  background:rgba(255,255,255,.72) !important;
}

.cm-booking-public--chic .cm-booking-public-owner span,
.cm-booking-public--chic .cm-booking-public-selectedDate span,
.cm-booking-public--chic .cm-booking-public-form label span,
.cm-booking-public--chic .cm-booking-public-meta,
.cm-booking-public--chic .cm-booking-public-meta span{
  color:#6a7d97 !important;
}

.cm-booking-public--chic .cm-booking-public-owner strong,
.cm-booking-public--chic .cm-booking-public-selectedDate strong,
.cm-booking-public--chic .cm-booking-public-form label,
.cm-booking-public--chic .cm-booking-public-meta strong{
  color:#132f57 !important;
}

.cm-booking-public--chic .cm-booking-public-form input,
.cm-booking-public--chic .cm-booking-public-form select,
.cm-booking-public--chic .cm-booking-public-form textarea{
  border-color:#dce6f1 !important;
  background:rgba(255,255,255,.88) !important;
  color:#132f57 !important;
}

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

.cm-booking-public--chic .cm-booking-public-submitLine{
  border-top-color:rgba(15,23,42,.08) !important;
}

.cm-booking-public--chic .cm-booking-public-submitLine [data-booking-public-submit],
.cm-booking-public--chic .cm-booking-public-form [data-booking-public-submit],
.cm-booking-public--chic [data-booking-public-submit]{
  border-color:var(--cm-booking-public-button-color) !important;
  background:var(--cm-booking-public-button-color) !important;
  color:#ffffff !important;
}

.cm-booking-public--chic .cm-booking-public-submitLine [data-booking-public-submit]:disabled,
.cm-booking-public--chic .cm-booking-public-form [data-booking-public-submit]:disabled,
.cm-booking-public--chic [data-booking-public-submit]:disabled{
  opacity:.55 !important;
  border-color:var(--cm-booking-public-button-color) !important;
  background:var(--cm-booking-public-button-color) !important;
  color:#ffffff !important;
  cursor:not-allowed !important;
}

.cm-booking-public--chic .cm-booking-public-noteBox{
  border-color:#e5edf7 !important;
  background:
    linear-gradient(
      135deg,
      var(--cm-booking-public-form-background) 0%,
      rgba(var(--cm-booking-public-ambiance-rgb), .04) 100%
    ) !important;
}


/* ──────────────────────────────────────────────────────────────────────────────
   15.1 PREMIUM / CHIC — FOND PERSONNALISÉ UNIQUEMENT FORMULAIRE DIRECT
   IMPORTANT :
   - Garde l’effet de fond coloré uniquement sur le formulaire direct.
   - Retire le fond coloré du calendrier visuel Chic.
   - Ne modifie aucune dimension.
   - Ne touche pas aux boutons, aux créneaux, au shortcode, à l’iframe ou à l’URL.
   ────────────────────────────────────────────────────────────────────────────── */

.cm-booking-public--form-only.cm-booking-public--chic .cm-booking-public-card{
  background:
    linear-gradient(
      135deg,
      var(--cm-booking-public-form-background) 0%,
      rgba(var(--cm-booking-public-ambiance-rgb), .045) 55%,
      rgba(255,255,255,.92) 100%
    ) !important;
}

.cm-booking-public--calendar-mode.cm-booking-public--chic .cm-booking-public-right{
  background:#ffffff !important;
}

.cm-booking-public--calendar-mode.cm-booking-public--chic .cm-booking-public-noteBox{
  background:#ffffff !important;
}

.cm-booking-public--calendar-mode.cm-booking-public--chic .cm-booking-public-card,
.cm-booking-public--calendar-mode.cm-booking-public--chic .cm-booking-public-card--with-calendar{
  background:transparent !important;
}

.cm-booking-public--form-only{
  padding:0 !important;
  background:#ffffff !important;
}

.cm-booking-public--calendar-mode{
  padding:0 !important;
  background:#ffffff !important;
}

.cm-booking-public{
  background:#ffffff !important;
}
