.booking-prisme-form {
  /* Theme tokens */
  --bp-color-bg: #fafafa;
  --bp-color-border: #dcdcdc;
  --bp-color-text: #1e1e1e;
  --bp-radius: 8px;
  --bp-gap: 10px;
  /* Controls */
  --bp-control-height: 44px;
  --bp-control-padding: 10px 12px;
  --bp-control-bg: #fff;
  --bp-control-border: #c9c9c9;
  --bp-control-focus: #2271b1; /* WP blue */
  /* Buttons */
  --bp-btn-bg: #0073aa;
  --bp-btn-bg-hover: #006799;
  --bp-btn-text: #fff;
  --bp-btn-secondary-bg: #6b7280;
  --bp-btn-secondary-bg-hover: #4b5563;

  max-width: 560px;
  padding: 14px;
  border: 1px solid var(--bp-color-border);
  background: var(--bp-color-bg);
  border-radius: var(--bp-radius);
  color: var(--bp-color-text);
}

/* Field layout helpers */
.booking-prisme-form .bp-field {
  margin: 0 0 var(--bp-gap);
}
.booking-prisme-form .bp-label {
  display: inline-block;
  margin-bottom: 6px;
  font-weight: 500;
}

/* Unified control styling and sizing */
.booking-prisme-form .bp-control,
.booking-prisme-form input[type="text"],
.booking-prisme-form input[type="email"],
.booking-prisme-form input[type="tel"],
.booking-prisme-form input[type="date"],
.booking-prisme-form select,
.booking-prisme-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: var(--bp-control-padding);
  border: 1px solid var(--bp-control-border);
  border-radius: 6px;
  background: var(--bp-control-bg);
  color: inherit;
  outline: none;
}
.booking-prisme-form .bp-control,
.booking-prisme-form input[type="text"],
.booking-prisme-form input[type="email"],
.booking-prisme-form input[type="tel"],
.booking-prisme-form input[type="date"],
.booking-prisme-form select {
  height: var(--bp-control-height);
}
.booking-prisme-form textarea,
.booking-prisme-form textarea.bp-control {
  min-height: 110px;
  resize: vertical;
}
.booking-prisme-form .bp-control:focus,
.booking-prisme-form input:focus,
.booking-prisme-form select:focus,
.booking-prisme-form textarea:focus {
  border-color: var(--bp-control-focus);
  box-shadow: 0 0 0 2px
    color-mix(in oklab, var(--bp-control-focus) 25%, transparent);
}

/* Buttons (reusable classes) */
.booking-prisme-form .bp-button,
.booking-prisme-form button,
.booking-prisme-form .bp-btn-prev,
.booking-prisme-form .bp-btn-next,
.booking-prisme-form .bp-btn-submit {
  background: var(--bp-btn-bg);
  color: var(--bp-btn-text);
  padding: 10px 16px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}
.booking-prisme-form .bp-button:hover,
.booking-prisme-form button:hover,
.booking-prisme-form .bp-btn-prev:hover,
.booking-prisme-form .bp-btn-next:hover,
.booking-prisme-form .bp-btn-submit:hover {
  background: var(--bp-btn-bg-hover);
}
.booking-prisme-form .bp-button--secondary,
.booking-prisme-form .bp-btn-prev {
  background: var(--bp-btn-secondary-bg);
}
.booking-prisme-form .bp-button--secondary:hover,
.booking-prisme-form .bp-btn-prev:hover {
  background: var(--bp-btn-secondary-bg-hover);
}
.booking-prisme-message {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-left: 4px solid;
}
.booking-prisme-message.success {
  background: #f0fdf4;
  border-color: #46b450;
}
.booking-prisme-message.error {
  background: #fff5f5;
  border-color: #dc3232;
}

/* Wizard styles */
.bp-step-header {
  margin: 8px 0 12px;
  font-weight: 600;
}
.bp-step {
  display: none;
}
.bp-step.active {
  display: block;
}
.bp-nav {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
/* Button class selectors kept above; no extra overrides here to avoid empty rulesets */
.bp-btn-prev[disabled],
.bp-btn-next[disabled],
.bp-btn-submit[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}
