/* ---------- append to landing/css/gisec.css ---------- */
/* Your existing .card / .day / .slot / .field / .btn / .confirm rules all still
   apply. These only cover what CF7's own markup adds. */

/* The real slot field is validated server-side but never shown. */
#book .slot-key-field select {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}

span.wpcf7-form-control-wrap {
    display: none;
}

/* CF7 wraps every control in a span — keep the grid layout intact. */
#book .field .wpcf7-form-control-wrap {
  display: block;
}

/* Field-level validation messages. */
#book .wpcf7-not-valid-tip {
  display: block;
  margin-top: 5px;
  font-size: 12.5px;
  color: #B3261E;
  font-weight: 600;
}

#book .slot-key-field .wpcf7-not-valid-tip {
  position: static;
  clip: auto;
  width: auto;
  height: auto;
  margin: 0 0 10px;
}

#book .field input.wpcf7-not-valid,
#book .field select.wpcf7-not-valid {
  border-color: #B3261E;
}

/* CF7's own response banner — #confirmView replaces the success state, but
   keep the validation banner visible so failures are not silent. */
#book .wpcf7-response-output {
  margin: 14px 0 0;
  padding: 11px 13px;
  border: 1px solid #B3261E;
  border-radius: 8px;
  font-size: 13.5px;
  color: #B3261E;
  background: #FDF4F3;
}

#book form.sent .wpcf7-response-output {
  display: none;
}

#book .wpcf7-spinner {
  vertical-align: middle;
  margin-left: 10px;
}

/* Empty / loading states rendered by the JS. */
#book .slots-empty,
#book .days-loading {
  grid-column: 1 / -1;
  font-size: 14px;
  color: var(--card-mute);
}

/* Fully booked day tab. */
#book .day:disabled {
  color: #B5C0B9;
  background: #F4F7F5;
  border-color: #E6ECE8;
  cursor: not-allowed;
}

#book .day:disabled small {
  color: #B5C0B9;
}