/* ROOT: two rows layout */
.cf7fpi-layout-root { display:flex; flex-direction:column; gap:14px; width:100%; max-width:980px; }

/* ROW 1: calendar left + slots right (side-by-side on wide screens) */
.cf7fpi-row-1 { display:flex; gap:20px; align-items:flex-start; }
@media (max-width:900px) { .cf7fpi-row-1 { flex-direction:column; } }

/* calendar column */
.cf7fpi-cal-col { flex:0 0 420px; }
@media (max-width:767px) { .cf7fpi-cal-col { flex: none; } }
.cf7fpi-calendar .flatpickr-calendar { box-shadow:0 8px 22px rgba(0,0,0,0.08); border-radius:10px; border:1px solid #eaeaea; padding:10px; }

/* slots column */
.cf7fpi-slots-col { flex:1 1 auto; display:flex; flex-direction:column; gap:12px; }

/* inputs inline (kept near slots but not in summary) */
.cf7fpi-inputs-inline { display:flex; gap:10px; margin-bottom:6px; }
.cf7fpi-inputs-inline #book_date,
.cf7fpi-inputs-inline #book_time { flex:1; padding:.5rem; border-radius:6px; border:1px solid #eaeaea; background:#fff; font-weight:600; }

/* slot group */
.cf7fpi-slot-group-wrap { display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.cf7fpi-slot-group-title { /*font-weight:700; color:#333;*/ }

/* grid of buttons */
.cf7fpi-slot-grid { display:flex; flex-wrap:wrap; gap:.5rem; }
.cf7fpi-slot-btn {
  background:#33333360; color:#fff; border:0; padding:.45rem .8rem; border-radius:8px; cursor:pointer; font-weight:700; box-shadow:0 2px 8px rgba(11,102,51,0.14);
  white-space:nowrap;
}
.cf7fpi-slot-btn:hover { transform:translateY(-1px); transition:transform .12s; }
.cf7fpi-slot-active { outline:3px solid rgba(11,102,51,0.12); box-shadow:0 6px 18px rgba(11,102,51,0.08);background:#333; }
.cf7fpi-slot-disabled { background:#ddd; color:#666; cursor:not-allowed; box-shadow:none; }

/* ROW 2: summary row (two cols) */
.cf7fpi-row-2 { display:flex; gap:20px; align-items:center; border-top:1px dashed #eee; padding-top:12px; }
@media (max-width:600px) { .cf7fpi-row-2 { flex-direction:column; align-items:stretch; } }

.cf7fpi-summary-col { flex:1; display:flex; flex-direction:column; gap:6px; }
.cf7fpi-summary-label { font-size:0.9rem; }
.cf7fpi-summary-value { font-weight:700; color:#000; font-size:1rem; }

/* minor utilities */
.cf7fpi-loading { color:#666; font-style:italic; }
.cf7fpi-no-slots { color:#666; font-style:italic; }


.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay
{ background: #333; color: #fff; border-color: #333; }