/* Plugin-specific booking tweaks; base styles live in theme. */
.josa-booking .josa-panel h3:focus { outline: none; }
.josa-booking .josa-error-summary {
  border: 1px solid rgba(239, 106, 91, 0.55);
  background: #1a1010;
  color: #f7f3ea;
  padding: 0.9rem 1rem;
  margin-bottom: 1rem;
}
.josa-booking .josa-error-summary:focus { outline: 2px solid #f3bc39; outline-offset: 2px; }
.josa-booking fieldset.josa-field {
  border: 1px solid rgba(217, 154, 50, 0.25);
  padding: 0.85rem 1rem;
}
.josa-booking fieldset.josa-field label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  font-weight: 500;
}
.josa-insurance-note {
  margin: 0 0 1rem;
  color: #e8b84a;
  font-size: 0.92rem;
  font-weight: 600;
}
.josa-summary ul { margin: 0; padding-left: 1.1rem; }
.josa-summary li { margin: 0.35rem 0; }
.josa-summary__block { margin: 0 0 1rem; }
.josa-summary__block h4 {
  margin: 0 0 0.25rem;
  color: #e8b84a;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.josa-summary__block p { margin: 0; line-height: 1.45; }
.josa-test-badge {
  display: inline-block;
  margin: 0 0 0.85rem;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(232, 184, 74, 0.45);
  color: #e8b84a;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.josa-booking .josa-booking__steps,
body.josa-concept .josa-booking__steps {
  grid-template-columns: repeat(7, minmax(4.6rem, 1fr));
}
@media (max-width: 720px) {
  .josa-booking .josa-booking__steps,
  body.josa-concept .josa-booking__steps {
    grid-template-columns: repeat(7, minmax(4.4rem, 1fr));
  }
}
/* Respect wizard visibility even when theme button styles set display. */
#josa-booking [hidden] { display: none !important; }
