/**
 * Se Choisir™ — widget de réservation. Feuille de style autonome
 * (indépendante du thème actif), toutes les règles préfixées .cscb-.
 */
.cscb-widget{
  --cscb-cream:      #FBF3EA;
  --cscb-white:      #FFFFFF;
  --cscb-ink:        #3A2E2C;
  --cscb-ink-soft:   #6B5C58;
  --cscb-pink:       #E8637F;
  --cscb-pink-dark:  #C9445F;
  --cscb-blush:      #F5DCE3;
  --cscb-sage:       #7FAF9C;
  --cscb-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --cscb-font-body:    'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --cscb-radius-lg:   28px;
  --cscb-radius-pill: 999px;
  --cscb-shadow:      0 18px 40px -18px rgba(58, 46, 44, 0.25);

  max-width:640px;
  margin:0 auto;
  font-family:var(--cscb-font-body);
  color:var(--cscb-ink);
  -webkit-font-smoothing:antialiased;
}
.cscb-widget *{ box-sizing:border-box; }
.cscb-widget h1, .cscb-widget h2, .cscb-widget h3{
  font-family:var(--cscb-font-display);
  color:var(--cscb-ink);
  line-height:1.2;
  margin:0 0 .5em;
  text-align:center;
}
.cscb-widget p{ margin:0 0 1em; line-height:1.6; }

.cscb-card{
  background:var(--cscb-white);
  border-radius:var(--cscb-radius-lg);
  box-shadow:var(--cscb-shadow);
  padding:2.4rem 2.2rem;
}

.cscb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  width:100%;
  padding:.9em 2em;
  border-radius:var(--cscb-radius-pill);
  background:var(--cscb-pink);
  color:#fff !important;
  font-family:var(--cscb-font-body);
  font-weight:600;
  font-size:.95rem;
  border:2px solid var(--cscb-pink);
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
  box-shadow:var(--cscb-shadow);
}
.cscb-btn:hover{ transform:translateY(-2px); background:var(--cscb-pink-dark); border-color:var(--cscb-pink-dark); }
.cscb-btn:disabled{ opacity:.6; cursor:default; transform:none; }
.cscb-btn.cscb-outline{ background:transparent; color:var(--cscb-pink-dark) !important; border-color:var(--cscb-pink-dark); box-shadow:none; }
.cscb-btn.cscb-outline:hover{ background:var(--cscb-blush); }

.cscb-stepbar{ text-align:center; margin-bottom:.6rem; }
.cscb-stepbar-service{ display:inline-block; padding:.3em 1em; border-radius:var(--cscb-radius-pill); background:var(--cscb-blush); color:var(--cscb-pink-dark); font-size:.8rem; font-weight:700; }

.cscb-back{
  display:block; margin:1.6rem auto 0;
  background:none; border:1.5px solid rgba(58,46,44,.15); border-radius:var(--cscb-radius-pill);
  padding:.6em 1.2em; font-size:.85rem; font-weight:600; cursor:pointer; color:var(--cscb-ink-soft);
  font-family:inherit;
}

/* étape service */
.cscb-services{ display:grid; gap:.9rem; }
.cscb-service-card{
  display:flex; flex-direction:column; gap:.2rem;
  text-align:left; padding:1.1em 1.3em; border-radius:16px;
  border:1.5px solid rgba(58,46,44,.15); background:var(--cscb-white);
  cursor:pointer; font-family:inherit; transition:border-color .15s, background .15s;
}
.cscb-service-card:hover{ border-color:var(--cscb-pink); background:var(--cscb-cream); }
.cscb-service-nom{ font-weight:700; font-size:1.05rem; color:var(--cscb-ink); }
.cscb-service-duree{ font-size:.85rem; color:var(--cscb-pink-dark); font-weight:600; }
.cscb-service-desc{ font-size:.85rem; color:var(--cscb-ink-soft); }
.cscb-service-acompte{
  align-self:flex-start; margin-top:.3rem; font-size:.78rem; font-weight:700;
  color:var(--cscb-pink-dark); background:var(--cscb-blush);
  padding:.25em .8em; border-radius:var(--cscb-radius-pill);
}

/* étape calendrier */
.cscb-cal-nav{ display:flex; align-items:center; justify-content:center; gap:1.2rem; margin-bottom:1.4rem; }
.cscb-cal-arrow{ background:none; border:1.5px solid rgba(58,46,44,.15); border-radius:var(--cscb-radius-pill); width:34px; height:34px; cursor:pointer; font-size:1rem; color:var(--cscb-ink); }
.cscb-cal-arrow:hover{ border-color:var(--cscb-pink); color:var(--cscb-pink-dark); }
.cscb-cal-label{ font-weight:700; min-width:160px; text-align:center; }
.cscb-cal-grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:.4rem; }
.cscb-cal-dow{ text-align:center; font-size:.75rem; font-weight:700; color:var(--cscb-ink-soft); padding-bottom:.3rem; }
.cscb-cal-empty{ }
.cscb-cal-day{
  aspect-ratio:1; border-radius:10px; border:1.5px solid rgba(58,46,44,.1); background:var(--cscb-white);
  font-family:inherit; font-weight:600; font-size:.9rem; color:var(--cscb-ink); cursor:pointer;
}
.cscb-cal-day:hover:not(.is-disabled){ border-color:var(--cscb-pink); background:var(--cscb-blush); }
.cscb-cal-day.is-selected{ background:var(--cscb-pink); border-color:var(--cscb-pink); color:#fff; }
.cscb-cal-day.is-disabled{ opacity:.25; cursor:default; }

/* étape heure */
.cscb-slots{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:.7rem; margin-bottom:.4rem; }
.cscb-slot{
  padding:.8em .5em; border-radius:12px; border:1.5px solid rgba(58,46,44,.15); background:var(--cscb-white);
  font-family:inherit; font-weight:600; font-size:.9rem; color:var(--cscb-ink); cursor:pointer;
}
.cscb-slot:hover{ border-color:var(--cscb-pink); background:var(--cscb-blush); }
.cscb-loading, .cscb-empty{ grid-column:1 / -1; text-align:center; color:var(--cscb-ink-soft); }
@media (max-width:480px){ .cscb-slots{ grid-template-columns:1fr 1fr; } }

/* étape coordonnées */
.cscb-card form{ display:grid; gap:1rem; margin-top:1rem; }
.cscb-card form label{ font-weight:600; font-size:.9rem; display:block; margin-bottom:.35em; }
.cscb-card form input, .cscb-card form textarea{
  width:100%; padding:.85em 1em; border-radius:14px; border:1.5px solid rgba(58,46,44,.15);
  background:var(--cscb-white); font-family:var(--cscb-font-body); font-size:.95rem; resize:vertical;
}
.cscb-card form input:focus, .cscb-card form textarea:focus{ outline:none; border-color:var(--cscb-pink); }
.cscb-hp-field{ position:absolute !important; left:-9999px !important; opacity:0; height:0; overflow:hidden; }
.cscb-error{ color:var(--cscb-pink-dark); font-weight:600; font-size:.9rem; }
.cscb-note-acompte{
  background:var(--cscb-cream); border-radius:14px; padding:.9em 1.1em;
  font-size:.85rem; color:var(--cscb-ink-soft); margin:0;
}

/* confirmation */
.cscb-confirmation{ text-align:center; }
.cscb-confirm-emoji{ font-size:2.6rem; margin-bottom:.4rem; }
.cscb-note{ color:var(--cscb-ink-soft); font-size:.9rem; }

@media (max-width:560px){ .cscb-card{ padding:1.8rem 1.4rem; } }

/* choix du lieu du rendez-vous */
.cscb-lieu-choix{ display:flex; flex-direction:column; gap:.5em; margin-top:.4em; }
.cscb-lieu-option{ display:flex; align-items:center; gap:.5em; font-weight:400; cursor:pointer; }
.cscb-lieu-option input[type=radio]{ accent-color:var(--cscb-couleur-principale, var(--cscb-pink-dark)); width:1.1em; height:1.1em; margin:0; }
