/* Final accessibility safeguards loaded after page-specific styles. */

:where(a, button, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--focus-ring, #9a8874) !important;
  outline-offset: 2px !important;
}

:where(input, select, textarea):focus-visible {
  border-color: var(--field-border, #cfcfcf) !important;
  background-color: var(--field-focus-bg, #faf8f5) !important;
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

:where(.form-field--floating) > :where(input, select, textarea):focus-visible {
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Final motion and focus normalization. This file loads after page styles. */
.tc-ui-standard :is(input, select, textarea),
.tc-ui-standard :is(input, select, textarea):hover,
.tc-ui-standard :is(input, select, textarea):focus,
.tc-ui-standard :is(input, select, textarea):focus-visible,
.tc-ui-standard .form-field--floating,
.tc-ui-standard .form-field--floating > label {
  transition: none !important;
  animation: none !important;
}

.tc-ui-standard :is(input, select, textarea):focus,
.tc-ui-standard :is(input, select, textarea):focus-visible,
.tc-ui-standard .form-field--floating:focus-within {
  border-color: var(--field-border, #cfcfcf) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Pointer focus never changes control geometry or border color. Keyboard focus
   remains visible through the separate :focus-visible outline rules above. */
.tc-ui-standard :is(button, [role="button"], .btn):focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

.tc-ui-standard :is(.btn-primary, .primary-button, button[type="submit"]):focus:not(:focus-visible) {
  border-color: transparent !important;
}

.tc-ui-standard :is(.btn-secondary, .secondary-button, .btn-ghost):focus:not(:focus-visible) {
  border-color: #e2ddd6 !important;
}

.tc-ui-standard .form-field--floating:focus-within {
  background: var(--field-focus-bg, #faf8f5) !important;
}

.tc-ui-standard :is(
  .standard-overlay,
  .waitlist-popup-overlay,
  .login-popup-overlay,
  .signup-popup-overlay,
  .verification-overlay,
  .request-edit-overlay,
  .delete-account-overlay,
  .payment-method-overlay,
  .master-choice-overlay,
  .blackout-modal-overlay,
  .calendar-overlay,
  .bookings-calendar-overlay,
  .image-modal,
  .lightbox
),
.tc-ui-standard :is(
  .standard-modal,
  .waitlist-popup,
  .login-popup,
  .signup-popup,
  .verification-dialog,
  .request-edit-dialog,
  .delete-account-dialog,
  .payment-method-dialog,
  .master-choice-dialog,
  .blackout-modal,
  .calendar-container,
  .bookings-calendar-container,
  .image-modal-content,
  .lightbox-content
) {
  transition: none !important;
  animation: none !important;
}

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid Highlight !important;
    outline-color: Highlight !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
  }
}
