/*
 * Tandem Guru Retro 1.8.0
 * Large, accessible native radio buttons and checkboxes for Event Booking.
 * Loaded after Gantry's compiled CSS to neutralise legacy input sizing rules.
 */

/* The broad input rule in older builds must never size choice controls like text fields. */
.com-eventbooking input[type="radio"],
.com-eventbooking input[type="checkbox"],
.eb-container input[type="radio"],
.eb-container input[type="checkbox"],
.eb-registration-form input[type="radio"],
.eb-registration-form input[type="checkbox"] {
  -webkit-appearance: auto !important;
  appearance: auto !important;
  box-sizing: border-box !important;
  display: inline-block !important;
  position: relative !important;
  inset: auto !important;
  float: none !important;
  flex: 0 0 1.55rem !important;
  width: 1.55rem !important;
  height: 1.55rem !important;
  min-width: 1.55rem !important;
  min-height: 1.55rem !important;
  max-width: 1.55rem !important;
  max-height: 1.55rem !important;
  margin: 0.1rem 0.65rem 0.15rem 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: initial !important;
  background: initial !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  clip: auto !important;
  clip-path: none !important;
  transform: none !important;
  vertical-align: top !important;
  accent-color: #ec2f88;
  cursor: pointer;
}

/* Keyboard focus that is visible without turning the form into a disco alarm. */
.com-eventbooking input[type="radio"]:focus-visible,
.com-eventbooking input[type="checkbox"]:focus-visible,
.eb-container input[type="radio"]:focus-visible,
.eb-container input[type="checkbox"]:focus-visible,
.eb-registration-form input[type="radio"]:focus-visible,
.eb-registration-form input[type="checkbox"]:focus-visible {
  outline: 3px solid rgba(255, 198, 58, 0.95) !important;
  outline-offset: 3px !important;
}

/* Keep text beside the control instead of letting the control collapse into a hairline. */
.com-eventbooking label.radio,
.com-eventbooking label.checkbox,
.com-eventbooking .radio > label,
.com-eventbooking .checkbox > label,
.com-eventbooking .form-check,
.com-eventbooking .form-check-label,
.eb-container label.radio,
.eb-container label.checkbox,
.eb-container .radio > label,
.eb-container .checkbox > label,
.eb-container .form-check,
.eb-container .form-check-label,
.eb-registration-form label.radio,
.eb-registration-form label.checkbox,
.eb-registration-form .radio > label,
.eb-registration-form .checkbox > label,
.eb-registration-form .form-check,
.eb-registration-form .form-check-label {
  line-height: 1.5 !important;
}

.com-eventbooking label.radio,
.com-eventbooking label.checkbox,
.com-eventbooking .radio > label,
.com-eventbooking .checkbox > label,
.eb-container label.radio,
.eb-container label.checkbox,
.eb-container .radio > label,
.eb-container .checkbox > label,
.eb-registration-form label.radio,
.eb-registration-form label.checkbox,
.eb-registration-form .radio > label,
.eb-registration-form .checkbox > label {
  align-items: flex-start;
  min-height: 1.8rem;
  cursor: pointer;
}

/* Joomla/Bootstrap variants often put the input and label next to each other. */
.com-eventbooking .form-check,
.eb-container .form-check,
.eb-registration-form .form-check {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.65rem !important;
}

.com-eventbooking .form-check input[type="radio"],
.com-eventbooking .form-check input[type="checkbox"],
.eb-container .form-check input[type="radio"],
.eb-container .form-check input[type="checkbox"],
.eb-registration-form .form-check input[type="radio"],
.eb-registration-form .form-check input[type="checkbox"] {
  margin-right: 0 !important;
}

.com-eventbooking input[type="radio"]:disabled,
.com-eventbooking input[type="checkbox"]:disabled,
.eb-container input[type="radio"]:disabled,
.eb-container input[type="checkbox"]:disabled,
.eb-registration-form input[type="radio"]:disabled,
.eb-registration-form input[type="checkbox"]:disabled {
  opacity: 0.48 !important;
  cursor: not-allowed;
}

/* Larger tap target on phones. The visual control stays tidy while fingers get more room. */
@media (max-width: 767px) {
  .com-eventbooking input[type="radio"],
  .com-eventbooking input[type="checkbox"],
  .eb-container input[type="radio"],
  .eb-container input[type="checkbox"],
  .eb-registration-form input[type="radio"],
  .eb-registration-form input[type="checkbox"] {
    flex-basis: 1.75rem !important;
    width: 1.75rem !important;
    height: 1.75rem !important;
    min-width: 1.75rem !important;
    min-height: 1.75rem !important;
    max-width: 1.75rem !important;
    max-height: 1.75rem !important;
    margin-top: 0 !important;
  }

  .com-eventbooking label.radio,
  .com-eventbooking label.checkbox,
  .eb-container label.radio,
  .eb-container label.checkbox,
  .eb-registration-form label.radio,
  .eb-registration-form label.checkbox {
    min-height: 2.75rem;
  }
}
