/* INSPIRE STUDIOS – 03-calendar.css — MONTHS, DATE NUMBERS, STATUS SYMBOLS AND TIMES */
.csb-page .csb-calendar-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.csb-page .csb-calendar{padding:20px 16px 17px}
.csb-page .csb-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:16px}
.csb-page .csb-calendar-head h3{font-size:30px}
.csb-page .csb-cal-nav{border:0;background:transparent;color:#842238;font-size:27px;line-height:1;padding:0 4px}
.csb-page .csb-days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.csb-page .csb-weekday{text-align:center;font-family:'Montserrat',Arial,sans-serif;font-size:11px;color:#645b56;font-weight:700;padding:5px 0 11px}

/* Seven dates per row, numbers in Montserrat rather than Cormorant. */
.csb-page .csb-day{min-height:58px;width:100%;border:1px solid #eee5db;background:#fffcf7;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#443b37;padding:2px;position:relative}
.csb-page .csb-day .csb-num{font-family:'Montserrat',Arial,sans-serif;font-size:21px;font-weight:600;letter-spacing:-.6px;line-height:1.2}

/* Noticeably bigger indicators: green dot, X, amber dot and grey event mark. */
.csb-page .csb-day .csb-dot{width:10px;height:10px;background:#527d5f;border-radius:50%;margin-top:2px}
.csb-page .csb-day .csb-symbol{font-family:'Montserrat',Arial,sans-serif;font-size:22px;font-weight:700;line-height:.9;min-height:20px}
.csb-page .csb-day.booked .csb-symbol{font-size:24px;color:#a33445}
.csb-page .csb-day.blocked .csb-symbol{font-size:21px;color:#737371}
.csb-page .csb-day.limited .csb-symbol{font-size:24px;color:#ae7d2a}
.csb-page .csb-day.available:hover{border-color:#718e70;background:#f1f7ee}
.csb-page .csb-day.booked{background:#fae8e6;color:#963d48;border-color:#f1d8d5;cursor:not-allowed}
.csb-page .csb-day.blocked{background:#eae9e6;color:#7a7672;border-color:#e2ded7;cursor:not-allowed}
.csb-page .csb-day.limited{background:#fff4d9;border-color:#ecd29c}
.csb-page .csb-day.disabled{opacity:.48;background:#f2efe9;cursor:not-allowed}
.csb-page .csb-day.selected{background:#7b182b;color:white;border-color:#7b182b}
.csb-page .csb-day.selected .csb-dot{background:#fff}
.csb-page .csb-day.selected .csb-symbol{color:#fff}
.csb-page .csb-day.blank{background:#f4eee6;opacity:.48;border-color:transparent;cursor:default}
.csb-page .csb-legend{display:flex;flex-wrap:wrap;gap:14px;padding:15px;background:#f6efe5;border-radius:8px;margin:18px 0 5px;font-size:11px;color:#635a54}
.csb-page .csb-legend span{display:flex;align-items:center;gap:6px}
.csb-page .csb-legend b{font-size:19px;line-height:.9}

/* The time selector uses the existing booking rules. */
.csb-page .csb-date-time{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.85fr);gap:17px}
.csb-page .csb-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:17px}
.csb-page .csb-time{border:1px solid #e0cbae;border-radius:8px;background:#fffdfa;padding:12px 6px;color:#473d37;font-size:13px;font-weight:600;min-height:45px}
.csb-page .csb-time.selected{background:#7a1a2e;color:white;border-color:#7a1a2e}
.csb-page .csb-time:disabled{background:#e9e7e3;color:#a7a09b;border-color:#e8e5e0;cursor:not-allowed;text-decoration:line-through}
.csb-page .csb-time-panel{margin-top:17px}
.csb-page .csb-time-panel .csb-times{margin-bottom:18px}
.csb-page .csb-time-caption{display:block;font-size:9px;font-weight:400;margin-top:4px}
.csb-page .csb-subheading{font-size:27px;margin:20px 0 8px}



/* CALENDAR LEGEND - LARGER AND SPACED */

.csb-page .csb-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 24px;
  padding: 18px 21px;
  margin: 18px 0 5px;
  background: #f6efe5;
  border-radius: 8px;
  overflow-x: auto;
  white-space: nowrap;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  color: #635a54;
}

.csb-page .csb-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.csb-page .csb-legend-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}

.csb-page .csb-legend-marker.available,
.csb-page .csb-legend-marker.limited {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  border-radius: 50%;
  font-size: 0;
}

.csb-page .csb-legend-marker.available {
  background: #4d855a;
}

.csb-page .csb-legend-marker.limited {
  background: #bd8935;
}

.csb-page .csb-legend-marker.booked {
  color: #aa3548;
  font-size: 32px;
}

.csb-page .csb-legend-marker.blocked {
  color: #77746f;
  font-size: 28px;
}

.csb-page .csb-legend-marker.unavailable {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  border: 2px solid #77746f;
  border-radius: 50%;
  font-size: 0;
}




/* =========================================
   STEP 2 - DATE AND TIME
   ========================================= */

/* SELECTED DATE TITLE */

.csb-page .csb-time-panel h2.csb-time-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 35px;
  font-weight: 600;
  line-height: 1.3;
  color: #681220;
  margin-bottom: 15px;
}

/* SELECTED DATE NUMBER */

.csb-page .csb-selected-day-number {
  font-family: 'Bodoni Moda', Georgia, serif;
  font-size: 34px;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: lining-nums;
  color: #681220;
}

/* SESSIONS BOOKED AND REMAINING */

.csb-page .csb-times-availability {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.75;
  color: #625b57;
  margin: 0 0 20px;
}

.csb-page .csb-availability-number {
  font-family: 'Bodoni Moda', Georgia, serif;
  font-size: 16px;
  font-weight: 600;
  color: #681220;
}

/* =========================================
   AVAILABLE TIME SLOTS
   ========================================= */

.csb-page .csb-time-panel .csb-times {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  margin-top: 20px;
  margin-bottom: 22px;
}

/* TIME SLOT BUTTONS */

.csb-page .csb-time-panel .csb-time {
  min-height: 82px;
  padding: 14px 8px;
  border: 1px solid #e0cbae;
  border-radius: 8px;
  background: #fffdfa;
  text-align: center;
  transition: background 0.15s, border-color 0.15s;
}

/* TIME NUMBERS */

.csb-page .csb-time-hour {
  display: block;
  font-family: 'Bodoni Moda', Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
}

/* AVAILABLE / ALREADY BOOKED TEXT */

.csb-page .csb-time-panel .csb-time-caption {
  display: block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  margin-top: 7px;
  white-space: normal;
}

/* SELECTED TIME SLOT */

.csb-page .csb-time-panel .csb-time.selected {
  background: #7a1a2e;
  border-color: #7a1a2e;
  color: #ffffff;
}

/* UNAVAILABLE TIME SLOT */

.csb-page .csb-time-panel .csb-time:disabled {
  background: #e9e7e3;
  border-color: #e8e5e0;
  color: #a7a09b;
  cursor: not-allowed;
}

/* TIME SLOT FOOTER INFORMATION */

.csb-page .csb-time-note {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.8;
  color: #796f68;
  margin-top: 10px;
}

/* =========================================
   STEP 2 - BACK AND NEXT BUTTONS
   ========================================= */

.csb-page .csb-calendar-wrap ~ .csb-buttons .csb-btn,
.csb-page .csb-calendar-wrap ~ .csb-buttons .csb-ghost {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.2px;
}

/* =========================================
   MOBILE
   ========================================= */

@media (max-width: 660px) {

  .csb-page .csb-time-panel h2.csb-time-heading {
    font-size: 29px;
    line-height: 1.4;
  }

  .csb-page .csb-selected-day-number {
    font-size: 29px;
  }

  .csb-page .csb-time-panel .csb-times {
    gap: 7px;
  }

  .csb-page .csb-time-panel .csb-time {
    min-height: 83px;
    padding: 12px 5px;
  }

  .csb-page .csb-time-hour {
    font-size: 18px;
  }

  .csb-page .csb-time-panel .csb-time-caption {
    font-size: 12px;
  }

}





/* TEMPORARILY HELD TIME SLOT */

.csb-page .csb-time-panel .csb-time.csb-time-held,
.csb-page .csb-time-panel .csb-time.csb-time-held:disabled {
  background: #fff0cb;
  border: 1px solid #d79a36;
  color: #764b0b;
  opacity: 1;
  cursor: not-allowed;
  text-decoration: none;
}

.csb-page .csb-time-panel .csb-time.csb-time-held
.csb-time-hour {
  color: #764b0b;
  text-decoration: none;
}

.csb-page .csb-time-panel .csb-time.csb-time-held
.csb-time-caption {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
  color: #8b580e;
  text-decoration: none;
}

/* FIVE-MINUTE TIMER */

.csb-page .csb-hold-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 5px;
  padding: 14px 17px;
  background: #fff4d9;
  border: 1px solid #dfba78;
  border-radius: 8px;
}

.csb-page .csb-hold-banner span {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  color: #795019;
}

.csb-page .csb-hold-banner strong {
  font-family: 'Bodoni Moda', Georgia, serif;
  font-size: 25px;
  font-weight: 600;
  color: #8c5311;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 660px) {
  .csb-page .csb-hold-banner {
    padding: 12px;
    gap: 10px;
  }

  .csb-page .csb-hold-banner span {
    font-size: 11.5px;
  }

  .csb-page .csb-hold-banner strong {
    font-size: 23px;
  }
}





/* =========================================
   VINTAGE CALENDAR - NOVEMBER & DECEMBER
   ========================================= */

.csb-page .csb-calendar-vintage {
  padding: 19px 13px 17px;
  background: #faf3e9;
  border: 1px solid #c9a77b;
  border-radius: 8px;
  box-shadow: none;
}

/* MONTH HEADINGS */

.csb-page .csb-calendar-vintage .csb-calendar-head {
  justify-content: center;
  gap: 12px;
  margin-bottom: 16px;
}

.csb-page .csb-calendar-vintage .csb-calendar-head h3 {
  font-family: 'Cinzel', Georgia, serif;
  font-size: 20px;
  letter-spacing: 0.4px;
  color: #681e29;
  text-align: center;
}

.csb-page .csb-calendar-vintage .csb-calendar-head > span {
  color: #ab8557;
  font-size: 16px;
}

/* CALENDAR GRID */

.csb-page .csb-calendar-vintage .csb-days-grid {
  gap: 0;
  border-left: 1px solid #d2b99a;
  border-top: 1px solid #d2b99a;
}

.csb-page .csb-calendar-vintage .csb-weekday {
  padding: 6px 0 9px;
  border-right: 1px solid #d2b99a;
  border-bottom: 1px solid #d2b99a;
  background: #f5eadd;
  font-size: 10px;
  font-weight: 600;
}

/* EACH DATE BOX */

.csb-page .csb-calendar-vintage .csb-day {
  min-height: 87px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  padding: 25px 2px 5px;
  border: 0;
  border-right: 1px solid #d2b99a;
  border-bottom: 1px solid #d2b99a;
  border-radius: 0;
  background: #fffaf3;
  color: #5a302b;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s;
}

/* DATE NUMBER - TOP RIGHT */

.csb-page .csb-calendar-vintage .csb-day .csb-num {
  position: absolute;
  top: 5px;
  right: 6px;
  font-family: 'Bodoni Moda', Georgia, serif;
  font-size: 14px;
  line-height: 1;
  font-weight: 600;
  color: #6b2530;
  letter-spacing: 0;
}

/* HOURS INSIDE DATE BOXES */

.csb-page .csb-calendar-vintage .csb-cal-slot-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.csb-page .csb-calendar-vintage .csb-cal-slot {
  display: block;
  padding: 2px 0;
  border-radius: 3px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
  color: #244b3d;
  white-space: nowrap;
}

/* SOMEONE IS INTERESTED - AMBER */

.csb-page .csb-calendar-vintage .csb-cal-slot.held {
  background: #ffdf94;
  color: #76500b;
  font-weight: 700;
}

/* CURRENT CUSTOMER'S HELD TIME */

.csb-page .csb-calendar-vintage .csb-cal-slot.own {
  background: #234e3f;
  color: #fff7e7;
}

/* DAYS THAT CAN BE OPENED */

.csb-page .csb-calendar-vintage .csb-day.csb-cal-date-open {
  opacity: 1;
  background: #fffaf3;
  cursor: pointer;
}

.csb-page .csb-calendar-vintage .csb-day.csb-cal-date-open:hover {
  background: #f5ebdb;
}

/* SELECTED DATE */

.csb-page .csb-calendar-vintage .csb-day.csb-cal-date-open.selected {
  background: #f1e1c8;
  box-shadow: inset 0 0 0 2px #81273b;
}

.csb-page .csb-calendar-vintage .csb-day.csb-cal-date-open.selected .csb-num {
  color: #6b2530;
}

/* DAYS WITHOUT AVAILABLE HOURS */

.csb-page .csb-calendar-vintage .csb-day:disabled,
.csb-page .csb-calendar-vintage .csb-day.blank {
  opacity: 1;
  background: #eee6da;
  cursor: not-allowed;
}

.csb-page .csb-calendar-vintage .csb-day.blank .csb-num {
  display: none;
}

.csb-page .csb-calendar-vintage .csb-day:disabled .csb-num {
  color: #a49688;
}

/* TABLET */

@media (max-width: 1190px) {
  .csb-page .csb-calendar-vintage {
    padding: 13px 8px;
  }

  .csb-page .csb-calendar-vintage .csb-calendar-head h3 {
    font-size: 18px;
  }

  .csb-page .csb-calendar-vintage .csb-day {
    min-height: 80px;
    padding: 23px 1px 4px;
  }

  .csb-page .csb-calendar-vintage .csb-cal-slot {
    font-size: 9px;
  }
}

/* MOBILE */

@media (max-width: 660px) {
  .csb-page .csb-calendar-vintage .csb-day {
    min-height: 78px;
  }

  .csb-page .csb-calendar-vintage .csb-day .csb-num {
    font-size: 13px;
  }

  .csb-page .csb-calendar-vintage .csb-cal-slot {
    font-size: 9px;
  }
}





/* OTHER MONTH - VISIBLE PREVIEW, NOT SELECTABLE */

.csb-page .csb-calendar-vintage
.csb-day.csb-preview-month:disabled {
  opacity: 1;
  background: #fffaf3;
  cursor: not-allowed;
}

.csb-page .csb-calendar-vintage
.csb-day.csb-preview-month:disabled
.csb-cal-slot {
  opacity: 0.7;
}

