/*
 * DriveHub shared form-design bridge for PAVA.
 *
 * eLeads forms are styled exclusively by public-forms.css. This bridge is
 * deliberately scoped to PAVA roots with sufficient selector specificity, preventing late-loaded compatibility
 * rules from overriding per-form eLeads settings such as max width, alignment,
 * padding and button dimensions.
 */

.e-leads-public-form-wrap {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

:is(
  .elct-wrap,
  .elct-wrapper,
  .elct-app,
  .elct-booking,
  .elct-booking-wrap,
  .elct-booking-wrapper,
  .elct-form-wrap,
  .elct-form-wrapper,
  .elct-design-classic,
  .elct-design-modern
) {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  color: var(--ef-text, #18181b);
  font-family: var(--ef-font-family, system-ui, sans-serif);
}

/* PAVA form shell. */
form[id^="elct-"],
form[class^="elct-"],
form[class*=" elct-"],
form[class~="elct-form"],
form[class~="elct-booking-form"],
:is(.elct-design-classic,.elct-design-modern,.elct-wrap,.elct-wrapper,.elct-app) > form,
:is(.elct-design-classic,.elct-design-modern,.elct-wrap,.elct-wrapper,.elct-app) > :is(.elct-form,.elct-booking-form,.elct-form-shell) {
  width: 100%;
  max-width: var(--ef-form-max-width, none);
  box-sizing: border-box;
  margin-left: var(--ef-form-margin-left, 0);
  margin-right: var(--ef-form-margin-right, auto);
  padding: var(--ef-form-pt, 0) var(--ef-form-pr, 0) var(--ef-form-pb, 0) var(--ef-form-pl, 0);
  background: var(--ef-form-bg, transparent);
  border: var(--ef-form-border-width, 0) var(--ef-form-border-style, solid) var(--ef-form-border-color, transparent);
  border-radius: var(--ef-form-radius, 0);
  box-shadow: var(--ef-form-shadow, none);
  color: var(--ef-text, #18181b);
  font-family: var(--ef-font-family, system-ui, sans-serif);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-row,.elct-fields,.elct-field-grid,.elct-form-grid) {
  column-gap: var(--ef-gap-x, 18px);
  row-gap: var(--ef-gap-y, 18px);
}

/* Labels, required markers and support copy. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-field-label,.elct-label,.elct-form-label,label) {
  display: block;
  color: var(--ef-label-color, #18181b);
  font-size: var(--ef-label-size, 14px);
  font-weight: var(--ef-label-weight, 600);
  line-height: var(--ef-label-line-height, 1.4);
  margin-bottom: var(--ef-label-margin-bottom, 6px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.required,.is-required,.elct-required,.elct-asterisk) {
  color: var(--ef-required-color, #ef4444);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-help,.elct-help-text,.elct-description,.elct-field-description,.description) {
  color: var(--ef-help-color, #71717a);
  font-size: var(--ef-help-size, 13px);
}

/* Textual controls. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(
  input[type="text"],input[type="email"],input[type="tel"],input[type="number"],
  input[type="date"],input[type="time"],input[type="url"],input[type="search"],
  input[type="file"],select,textarea
) {
  width: 100%;
  min-height: var(--ef-input-height, 46px);
  box-sizing: border-box;
  padding-left: var(--ef-input-padding-x, 14px);
  padding-right: var(--ef-input-padding-x, 14px);
  background-color: var(--ef-input-bg, #f4f4f5);
  color: var(--ef-input-text, #18181b);
  border: var(--ef-input-border-width, 2px) solid var(--ef-border, #e4e4e7);
  border-radius: var(--ef-radius, 12px);
  box-shadow: var(--ef-input-shadow, none);
  font-family: var(--ef-font-family, system-ui, sans-serif);
  font-size: var(--ef-field-font-size, 15px);
  font-weight: var(--ef-input-font-weight, 400);
  line-height: 1.35;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, color .16s ease;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],input[type="search"],select) {
  height: var(--ef-input-height, 46px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern) select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 38px;
  background-image: var(--ef-select-arrow-image);
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern) textarea {
  min-height: var(--ef-textarea-height, 120px);
  height: auto;
  resize: var(--ef-textarea-resize, vertical);
  padding-top: 11px;
  padding-bottom: 11px;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(input,textarea)::placeholder {
  color: var(--ef-placeholder, #8b8b95);
  font-size: var(--ef-placeholder-size, 15px);
  opacity: 1;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],input[type="search"],input[type="file"],select,textarea):hover:not(:disabled):not([readonly]) {
  background-color: var(--ef-input-hover-bg, #f4f4f5);
  border-color: var(--ef-input-hover-border, #a1a1aa);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],input[type="search"],input[type="file"],select,textarea):focus-visible {
  outline: 0;
  background-color: var(--ef-input-focus-bg, #fff);
  border-color: var(--ef-input-focus-border, #3452ff);
  box-shadow: 0 0 0 var(--ef-focus-ring-width, 3px) rgba(var(--ef-focus-ring-rgb, 52,82,255), .18);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.is-invalid,[aria-invalid="true"],.elct-invalid,.has-error input,.has-error select,.has-error textarea) {
  background-color: var(--ef-invalid-bg, #fff7f7);
  border-color: var(--ef-invalid-border, #dc2626);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-field-error,.elct-error-text,.field-error) {
  color: var(--ef-error-text, #b91c1c);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(input,select,textarea):is(:disabled,[readonly]) {
  background: var(--ef-disabled-bg, #eeeeef);
  color: var(--ef-disabled-text, #8b8b95);
  opacity: var(--ef-disabled-opacity, .7);
  cursor: not-allowed;
}

/* Choice groups and option cards. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-options,.elct-choice-list,.elct-radio-group,.elct-checkbox-group,.elct-treatment-list) {
  display: var(--ef-choice-display, flex);
  flex-direction: var(--ef-choice-direction, column);
  grid-template-columns: var(--ef-choice-columns, none);
  flex-wrap: var(--ef-choice-wrap, nowrap);
  gap: var(--ef-choice-gap, 8px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-option,.elct-choice,.elct-radio-option,.elct-checkbox-option,.elct-treatment-option) {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: var(--ef-choice-py, 11px) var(--ef-choice-px, 14px);
  background: var(--ef-choice-bg, #f4f4f5);
  color: var(--ef-text, #18181b);
  border: var(--ef-input-border-width, 2px) solid var(--ef-choice-border, #e4e4e7);
  border-radius: var(--ef-choice-radius, 12px);
  font-size: var(--ef-choice-text-size, 14px);
  font-weight: var(--ef-choice-text-weight, 500);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-option.is-selected,.elct-choice.is-selected,.elct-radio-option.is-selected,.elct-checkbox-option.is-selected,.elct-treatment-option.is-selected,.elct-option:has(input:checked),.elct-choice:has(input:checked),.elct-radio-option:has(input:checked),.elct-checkbox-option:has(input:checked),.elct-treatment-option:has(input:checked)) {
  background: var(--ef-choice-selected-bg, #eef1ff);
  border-color: var(--ef-choice-selected-border, #3452ff);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(input[type="checkbox"],input[type="radio"]) {
  width: var(--ef-choice-control-size, 18px);
  height: var(--ef-choice-control-size, 18px);
  accent-color: var(--ef-primary, #3452ff);
  flex: 0 0 auto;
}

/* Consent/GDPR cards. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-gdpr,.elct-consent,.elct-privacy-consent,.elct-checkbox-consent) {
  padding: var(--ef-gdpr-py, 13px) var(--ef-gdpr-px, 14px);
  background: var(--ef-gdpr-bg, #f4f4f5);
  border: var(--ef-input-border-width, 2px) solid var(--ef-gdpr-border, #e4e4e7);
  border-radius: var(--ef-gdpr-radius, 12px);
  color: var(--ef-text, #18181b);
  font-size: var(--ef-gdpr-text-size, 14px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-gdpr,.elct-consent,.elct-privacy-consent,.elct-checkbox-consent):has(input:checked) {
  border-color: var(--ef-gdpr-checked-border, #3452ff);
}

/* Primary actions. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-booking-wrap,.elct-booking-wrapper,.elct-form-wrap,.elct-form-wrapper,.elct-design-classic,.elct-design-modern,form[id^="elct-"],form[class^="elct-"],form[class*=" elct-"])
:is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next) {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: var(--ef-button-width, 100%) !important;
  min-height: var(--ef-button-height, 48px) !important;
  height: auto !important;
  max-width: none !important;
  box-sizing: border-box !important;
  padding: 0 var(--ef-button-padding-x, 22px) !important;
  background: var(--ef-primary, #3452ff) !important;
  background-color: var(--ef-primary, #3452ff) !important;
  background-image: none !important;
  border-width: var(--ef-button-border-width, 0) !important;
  border-style: solid !important;
  border-color: var(--ef-button-border-color, #3452ff) !important;
  border-radius: var(--ef-button-radius, 12px) !important;
  box-shadow: var(--ef-button-shadow, none) !important;
  color: var(--ef-primary-fg, #fff) !important;
  -webkit-text-fill-color: var(--ef-primary-fg, #fff) !important;
  font-family: var(--ef-font-family, system-ui, sans-serif) !important;
  font-size: var(--ef-button-font-size, 15px) !important;
  font-weight: var(--ef-button-font-weight, 700) !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  text-shadow: none !important;
  opacity: 1 !important;
  transition: transform .18s cubic-bezier(.2,.8,.2,1), background-color .18s ease, box-shadow .18s ease, color .18s ease !important;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-booking-wrap,.elct-booking-wrapper,.elct-form-wrap,.elct-form-wrapper,.elct-design-classic,.elct-design-modern,form[id^="elct-"],form[class^="elct-"],form[class*=" elct-"])
:is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next)::before,
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-booking-wrap,.elct-booking-wrapper,.elct-form-wrap,.elct-form-wrapper,.elct-design-classic,.elct-design-modern,form[id^="elct-"],form[class^="elct-"],form[class*=" elct-"])
:is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next)::after {
  content: none !important;
  display: none !important;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-booking-wrap,.elct-booking-wrapper,.elct-form-wrap,.elct-form-wrapper,.elct-design-classic,.elct-design-modern,form[id^="elct-"],form[class^="elct-"],form[class*=" elct-"])
:is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next):hover {
  background: var(--ef-button-hover-bg, #001bb5) !important;
  background-color: var(--ef-button-hover-bg, #001bb5) !important;
  background-image: none !important;
  color: var(--ef-button-hover-fg, #fff) !important;
  -webkit-text-fill-color: var(--ef-button-hover-fg, #fff) !important;
  transform: translateY(calc(-1 * var(--ef-button-lift, 3px))) !important;
  box-shadow: var(--ef-button-hover-shadow, 0 8px 18px rgba(52,82,255,.30)) !important;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next):active {
  transform: translateY(0);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(button,input[type="submit"]):disabled {
  opacity: var(--ef-disabled-opacity, .7);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Secondary/back actions. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-back,.elct-prev,.elct-previous,.elct-btn-secondary,.elct-secondary-button) {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--ef-button-height, 48px) !important;
  padding: 0 var(--ef-button-padding-x, 22px) !important;
  background: var(--ef-secondary-bg, #fff) !important;
  background-color: var(--ef-secondary-bg, #fff) !important;
  background-image: none !important;
  color: var(--ef-secondary-text, #18181b) !important;
  -webkit-text-fill-color: var(--ef-secondary-text, #18181b) !important;
  border: 1px solid var(--ef-secondary-border, #d4d4d8) !important;
  border-radius: var(--ef-button-radius, 12px) !important;
  font-size: var(--ef-button-font-size, 15px) !important;
  font-weight: var(--ef-button-font-weight, 700) !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  text-transform: none !important;
  text-shadow: none !important;
  transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease !important;
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-back,.elct-prev,.elct-previous,.elct-btn-secondary,.elct-secondary-button):hover {
  background: var(--ef-secondary-hover-bg, #f4f4f5) !important;
  background-color: var(--ef-secondary-hover-bg, #f4f4f5) !important;
  box-shadow: var(--ef-button-shadow, none) !important;
  transform: translateY(-1px) !important;
}

/* Step indicators exposed by common PAVA layouts. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-stepper,.elct-steps,.elct-progress-steps) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ef-step-gap, 10px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-step,.elct-step-indicator,.elct-progress-step) {
  background: var(--ef-step-bg, #f7f7f8);
  color: var(--ef-step-text, #71717a);
  border: 1px solid var(--ef-step-border, #e4e4e7);
  border-radius: var(--ef-step-radius, 999px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-step.is-active,.elct-step-indicator.is-active,.elct-progress-step.is-active,.elct-step.current,.elct-step-indicator.current) {
  background: var(--ef-step-active-bg, #eef1ff);
  color: var(--ef-step-active-text, #18181b);
  border-color: var(--ef-step-active-border, #3452ff);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-step-number,.elct-step-index) {
  background: var(--ef-step-number-bg, #fff);
  color: var(--ef-step-number-text, #18181b);
}

/* Alerts. */
:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-error,.elct-alert-error,.elct-validation-message) {
  padding: var(--ef-alert-py, 12px) var(--ef-alert-px, 16px);
  background: var(--ef-error-bg, #fff1f2);
  color: var(--ef-error-box-text, #991b1b);
  border: 1px solid var(--ef-error-border, #fecdd3);
  border-radius: var(--ef-alert-radius, 12px);
}

:is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
:is(.elct-success,.elct-alert-success) {
  padding: var(--ef-alert-py, 12px) var(--ef-alert-px, 16px);
  background: var(--ef-success-bg, #ecfdf5);
  color: var(--ef-success-text, #047857);
  border-radius: var(--ef-alert-radius, 12px);
}

/* PAVA modal/dialog variants. */
:is(.elct-modal-overlay,.elct-dialog-overlay,.elct-success-overlay) {
  background: rgba(var(--ef-overlay-rgb, 0,0,0), var(--ef-overlay-opacity, .45));
  -webkit-backdrop-filter: blur(var(--ef-overlay-blur, 4px));
  backdrop-filter: blur(var(--ef-overlay-blur, 4px));
}

:is(.elct-modal,.elct-dialog,.elct-modal-card,.elct-dialog-card,.elct-success-modal) {
  max-width: var(--ef-modal-max-width, 420px);
  padding: var(--ef-modal-padding, 28px);
  background: var(--ef-modal-bg, #fff);
  color: var(--ef-text, #18181b);
  border: 1px solid var(--ef-modal-border, #e4e4e7);
  border-radius: var(--ef-modal-radius, 18px);
  box-shadow: var(--ef-modal-shadow, 0 24px 60px rgba(15,23,42,.22));
}

:is(.elct-modal-icon,.elct-success-icon) {
  background: var(--ef-modal-icon-bg, #eef1ff);
  color: var(--ef-modal-icon-color, #3452ff);
}

@media (max-width: 900px) and (min-width: 683px) {
  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(.elct-row,.elct-fields,.elct-field-grid,.elct-form-grid) {
    column-gap: var(--ef-tablet-gap-x, 14px);
    row-gap: var(--ef-tablet-gap-y, 14px);
  }

  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],input[type="search"],select) {
    min-height: var(--ef-tablet-input-height, 46px);
    height: var(--ef-tablet-input-height, 46px);
  }
}

@media (max-width: 682px) {
  form[id^="elct-"],form[class^="elct-"],form[class*=" elct-"],
  :is(.elct-design-classic,.elct-design-modern,.elct-wrap,.elct-wrapper,.elct-app) > :is(form,.elct-form,.elct-booking-form,.elct-form-shell) {
    padding: var(--ef-mobile-form-padding, 0);
  }

  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(.elct-row,.elct-fields,.elct-field-grid,.elct-form-grid) {
    row-gap: var(--ef-mobile-gap-y, 14px);
  }

  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],input[type="time"],input[type="url"],input[type="search"],select) {
    min-height: var(--ef-mobile-input-height, 46px);
    height: var(--ef-mobile-input-height, 46px);
    font-size: var(--ef-mobile-input-font-size, 16px);
  }

  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next,.elct-back,.elct-prev) {
    min-height: var(--ef-mobile-button-height, 50px) !important;
  }

  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(.elct-options,.elct-choice-list,.elct-radio-group,.elct-checkbox-group,.elct-treatment-list) {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(button,input,select,textarea) {
    transition: none !important;
  }

  :is(.elct-wrap,.elct-wrapper,.elct-app,.elct-booking,.elct-design-classic,.elct-design-modern)
  :is(button[type="submit"],input[type="submit"],.elct-submit,.elct-btn-primary,.elct-primary-button,.elct-next,.elct-back,.elct-prev):hover {
    transform: none !important;
  }
}
