:root {
  --leela-form-error-color: #c0392b;
  --leela-form-error-font-size: 1rem;
}

/* Inline #rfq: hide empty error wrappers only; required text is promoted after .iti by JS. */
#rfq .webform-submission-form .form-type-webform-telephone .form-item--error-message:empty,
#rfq .webform-submission-form .js-form-type-webform-telephone .form-item--error-message:empty,
#rfq .webform-submission-form .js-form-type-tel .form-item--error-message:empty {
  display: none !important;
  visibility: hidden !important;
}

#rfq .webform-submission-form .js-form-type-tel .form-item--error-message:not(:has(strong)):not(:has(label)) {
  display: none !important;
  visibility: hidden !important;
}

.overlayPopup .webform-submission-form .form-type-webform-telephone .form-item--error-message strong.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .form-item--error-message strong.error {
  display: none !important;
}

/* Hidden by leela-form-errors dedupe / idle phone cleanup. */
.webform-submission-form .leela-error-hidden,
.leela-booking-form .leela-error-hidden {
  display: none !important;
  visibility: hidden !important;
}

/* Hide top error/warning summary when inline field errors are present. */
.webform-submission-form.leela-has-field-errors > [data-drupal-messages],
.leela-booking-form.leela-has-field-errors > [data-drupal-messages],
.webform-submission-form [data-drupal-messages].leela-form-error-summary-hidden,
.leela-booking-form [data-drupal-messages].leela-form-error-summary-hidden,
.overlayPopup.leela-has-field-errors .webform-submission-form [data-drupal-messages],
.overlayPopup .webform-submission-form [data-drupal-messages].leela-form-error-summary-hidden,
#rfq.leela-has-field-errors .webform-submission-form [data-drupal-messages],
.section--feedback-form .webform-submission-form.leela-has-field-errors [data-drupal-messages] {
  display: none !important;
  visibility: hidden !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* Inline error text only — never force display on hidden placeholders. */
.webform-submission-form .form-item--error .form-item--error-message,
.leela-booking-form .form-item--error .form-item--error-message,
.webform-submission-form input.error ~ .form-item--error-message,
.webform-submission-form input.error ~ strong.error,
.webform-submission-form .form-item--error-message strong.error,
.leela-booking-form input.error ~ .form-item--error-message,
.leela-booking-form input.error ~ strong.error,
.leela-booking-form .form-item--error-message strong.error,
.webform-submission-form label.error,
.webform-submission-form strong.error:not([style*="display: none"]):not([style*="display:none"]),
.webform-submission-form div.error,
.leela-booking-form label.error,
.leela-booking-form strong.error:not([style*="display: none"]):not([style*="display:none"]),
.leela-booking-form div.error,
#meetingPopup .webform-submission-form label.error,
#celebPopup .webform-submission-form label.error,
#meetingPopup .webform-submission-form .form-item--error .form-item--error-message,
#celebPopup .webform-submission-form .form-item--error .form-item--error-message,
#meetingPopup .webform-submission-form .form-item--error-message,
#celebPopup .webform-submission-form .form-item--error-message,
#meetingPopup .webform-submission-form input.error ~ .form-item--error-message,
#celebPopup .webform-submission-form input.error ~ .form-item--error-message,
#meetingPopup .webform-submission-form strong.error,
#celebPopup .webform-submission-form strong.error,
#meetingPopup .webform-submission-form div.error,
#celebPopup .webform-submission-form div.error {
  color: var(--leela-form-error-color);
  font-size: var(--leela-form-error-font-size);
  font-weight: normal !important;
  margin-top: 0.25rem;
  line-height: 1.3;
  border: none !important;
  background: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Override inline CMS / theme rules with higher-specificity popup selectors. */
#meetingPopup .popupCont .col-md-6 label.error,
#celebPopup .popupCont .col-md-6 label.error,
#meetingPopup .popupCont .col-md-6 strong.error,
#celebPopup .popupCont .col-md-6 strong.error,
#meetingPopup .popupCont .col-md-6 div.error,
#celebPopup .popupCont .col-md-6 div.error,
#meetingPopup .popupCont .col-md-6 .form-item--error-message,
#celebPopup .popupCont .col-md-6 .form-item--error-message,
.enquire-tab-wrp .subscribe-chk label.error,
.enquire-tab-wrp .subscribe-chk .form-item--error-message {
  color: var(--leela-form-error-color) !important;
  font-size: var(--leela-form-error-font-size) !important;
  font-weight: normal !important;
  margin-bottom: 0 !important;
}

/* IFE wrap uses <strong> without .error class inside the wrapper div. */
.webform-submission-form .form-item--error-message strong,
.webform-submission-form input.error ~ .form-item--error-message strong,
.leela-booking-form .form-item--error-message strong,
.leela-booking-form input.error ~ .form-item--error-message strong,
.overlayPopup .webform-submission-form .form-item--error-message strong,
#rfq .webform-submission-form .form-item--error-message strong,
.section--feedback-form .webform-submission-form .form-item--error-message strong,
.enquiry-webform-mount .webform-submission-form .form-item--error-message strong {
  font-weight: normal !important;
}

/* Override theme rule that hides all inline error messages. */
.section--feedback-form .webform-submission-form .form-item--error .form-item--error-message,
.section--feedback-form .webform-submission-form input.error ~ .form-item--error-message,
.section--feedback-form .webform-submission-form input.error ~ strong.error,
.section--feedback-form .webform-submission-form label.error {
  display: block !important;
}

.webform-submission-form .form-item--error .form-item--error-message::before,
.leela-booking-form .form-item--error .form-item--error-message::before,
.webform-submission-form .form-item--error-message::before,
.webform-submission-form input.error ~ .form-item--error-message::before,
.webform-submission-form select.error ~ .form-item--error-message::before,
.webform-submission-form textarea.error ~ .form-item--error-message::before,
.webform-submission-form label.error::before,
.webform-submission-form strong.error::before,
.webform-submission-form div.error::before,
.webform-submission-form .form-item--error-message:empty::before,
.webform-submission-form .leela-error-hidden::before,
.leela-booking-form label.error::before,
.leela-booking-form strong.error::before,
.leela-booking-form div.error::before,
#rfq .webform-submission-form .form-item--error .form-item--error-message::before,
#rfq .webform-submission-form .form-item--error-message::before,
#rfq .webform-submission-form input.error ~ .form-item--error-message::before,
#rfq .webform-submission-form select.error ~ .form-item--error-message::before,
#rfq .webform-submission-form textarea.error ~ .form-item--error-message::before,
#rfq .webform-submission-form label.error::before,
#rfq .webform-submission-form strong.error::before,
#rfq .webform-submission-form div.error::before,
.section--feedback-form .webform-submission-form .form-item--error .form-item--error-message::before,
.section--feedback-form .webform-submission-form .form-item--error-message::before,
.section--feedback-form .webform-submission-form input.error ~ .form-item--error-message::before,
.section--feedback-form .webform-submission-form select.error ~ .form-item--error-message::before,
.section--feedback-form .webform-submission-form textarea.error ~ .form-item--error-message::before,
.section--feedback-form .webform-submission-form label.error::before,
.section--feedback-form .webform-submission-form strong.error::before,
.section--feedback-form .webform-submission-form div.error::before,
.overlayPopup .webform-submission-form .form-item--error .form-item--error-message::before,
.overlayPopup .webform-submission-form .form-item--error-message::before,
.overlayPopup .webform-submission-form input.error ~ .form-item--error-message::before,
.overlayPopup .webform-submission-form select.error ~ .form-item--error-message::before,
.overlayPopup .webform-submission-form textarea.error ~ .form-item--error-message::before,
.overlayPopup .webform-submission-form label.error::before,
.overlayPopup .webform-submission-form strong.error::before,
.enquiry-webform-mount .webform-submission-form .form-item--error .form-item--error-message::before,
.enquiry-webform-mount .webform-submission-form .form-item--error-message::before,
.enquiry-webform-mount .webform-submission-form input.error ~ .form-item--error-message::before,
.enquiry-webform-mount .webform-submission-form select.error ~ .form-item--error-message::before,
.enquiry-webform-mount .webform-submission-form textarea.error ~ .form-item--error-message::before,
.enquiry-webform-mount .webform-submission-form label.error::before,
.enquiry-webform-mount .webform-submission-form strong.error::before {
  display: none !important;
  content: none !important;
  background: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* Drupal wraps substituted values in <em class="placeholder">; Bootstrap skeleton
   .placeholder styles must not apply inside form error text. */
.webform-submission-form .form-item--error-message em.placeholder,
.webform-submission-form label.error em.placeholder,
.webform-submission-form strong.error em.placeholder,
.webform-submission-form div.error em.placeholder,
.leela-booking-form .form-item--error-message em.placeholder,
.leela-booking-form label.error em.placeholder {
  display: inline !important;
  min-height: 0 !important;
  vertical-align: baseline !important;
  cursor: inherit !important;
  background: none !important;
  background-color: transparent !important;
  opacity: 1 !important;
  color: inherit !important;
  font-style: normal !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

.overlayPopup .subscribe-chk .form-item--error .form-item--error-message,
#rfq .subscribe-chk .form-item--error .form-item--error-message {
  position: static !important;
  margin-top: 0.35rem;
}

/* Subscribe checkbox: error below label text, not beside it. */
.webform-submission-form .subscribe-chk,
.overlayPopup .webform-submission-form .subscribe-chk,
#rfq .webform-submission-form .subscribe-chk,
.enquire-tab-wrp .subscribe-chk {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
}

.webform-submission-form .subscribe-chk input.form-checkbox,
.overlayPopup .webform-submission-form .subscribe-chk input.form-checkbox,
#rfq .webform-submission-form .subscribe-chk input.form-checkbox,
.enquire-tab-wrp .subscribe-chk input.form-checkbox {
  order: 1;
  flex: 0 0 auto;
  width: 25px !important;
  max-width: 25px !important;
  float: none !important;
  margin-top: 0.15rem;
}

.webform-submission-form .subscribe-chk .description,
.overlayPopup .webform-submission-form .subscribe-chk .description,
#rfq .webform-submission-form .subscribe-chk .description,
.enquire-tab-wrp .subscribe-chk .description {
  order: 2;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 10px !important;
  width: auto !important;
  line-height: 1.35;
}

.webform-submission-form .subscribe-chk label.error,
.webform-submission-form .subscribe-chk .form-item--error-message,
.overlayPopup .webform-submission-form .subscribe-chk label.error,
.overlayPopup .webform-submission-form .subscribe-chk .form-item--error-message,
#rfq .webform-submission-form .subscribe-chk label.error,
#rfq .webform-submission-form .subscribe-chk .form-item--error-message,
.enquire-tab-wrp .subscribe-chk label.error,
.enquire-tab-wrp .subscribe-chk .form-item--error-message {
  order: 3;
  flex: 0 0 100%;
  width: 100% !important;
  position: static !important;
  bottom: auto !important;
  left: auto !important;
  margin-top: 0.35rem;
  padding-left: 0 !important;
}

/* Remove red borders from errored inputs in lazy booking mounts only. */
.leela-booking-form .form-item--error input,
.leela-booking-form .form-item--error select,
.leela-booking-form .form-item--error textarea,
.leela-booking-form .form-item input.error,
.leela-booking-form .form-item select.error,
.leela-booking-form .form-item textarea.error,
.leela-booking-form .form-checkbox.error {
  border: none !important;
  box-shadow: none !important;
}

/* Popup enquiry forms: red border on invalid inputs (matches anonymous/GHA). */
.overlayPopup .webform-submission-form .form-item--error input,
.overlayPopup .webform-submission-form .form-item--error select,
.overlayPopup .webform-submission-form .form-item--error textarea,
.overlayPopup .webform-submission-form .form-item input.error,
.overlayPopup .webform-submission-form .form-item select.error,
.overlayPopup .webform-submission-form .form-item textarea.error,
.overlayPopup .webform-submission-form input.error,
.overlayPopup .webform-submission-form select.error,
.overlayPopup .webform-submission-form textarea.error,
.overlayPopup .webform-submission-form input.form-control.error,
.enquiry-webform-mount .webform-submission-form .form-item--error input,
.enquiry-webform-mount .webform-submission-form .form-item--error select,
.enquiry-webform-mount .webform-submission-form .form-item--error textarea,
.enquiry-webform-mount .webform-submission-form .form-item input.error,
.enquiry-webform-mount .webform-submission-form .form-item select.error,
.enquiry-webform-mount .webform-submission-form .form-item textarea.error,
.enquiry-webform-mount .webform-submission-form input.error,
.enquiry-webform-mount .webform-submission-form select.error,
.enquiry-webform-mount .webform-submission-form textarea.error,
.enquiry-webform-mount .webform-submission-form input.form-control.error,
#meetingPopup .webform-submission-form .form-item--error input,
#meetingPopup .webform-submission-form .form-item--error select,
#meetingPopup .webform-submission-form .form-item--error textarea,
#meetingPopup .webform-submission-form .form-item input.error,
#meetingPopup .webform-submission-form .form-item select.error,
#meetingPopup .webform-submission-form .form-item textarea.error,
#meetingPopup .webform-submission-form input.error,
#meetingPopup .webform-submission-form select.error,
#meetingPopup .webform-submission-form textarea.error,
#meetingPopup .webform-submission-form input.form-control.error,
#celebPopup .webform-submission-form .form-item--error input,
#celebPopup .webform-submission-form .form-item--error select,
#celebPopup .webform-submission-form .form-item--error textarea,
#celebPopup .webform-submission-form .form-item input.error,
#celebPopup .webform-submission-form .form-item select.error,
#celebPopup .webform-submission-form .form-item textarea.error,
#celebPopup .webform-submission-form input.error,
#celebPopup .webform-submission-form select.error,
#celebPopup .webform-submission-form textarea.error,
#celebPopup .webform-submission-form input.form-control.error,
#meetingPopup .popupCont .col-md-6 .form-item--error input,
#meetingPopup .popupCont .col-md-6 .form-item--error select,
#meetingPopup .popupCont .col-md-6 .form-item--error textarea,
#meetingPopup .popupCont .col-md-6 .form-item input.error,
#meetingPopup .popupCont .col-md-6 .form-item select.error,
#meetingPopup .popupCont .col-md-6 .form-item textarea.error,
#meetingPopup .popupCont .col-md-6 input.error,
#meetingPopup .popupCont .col-md-6 select.error,
#meetingPopup .popupCont .col-md-6 textarea.error,
#celebPopup .popupCont .col-md-6 .form-item--error input,
#celebPopup .popupCont .col-md-6 .form-item--error select,
#celebPopup .popupCont .col-md-6 .form-item--error textarea,
#celebPopup .popupCont .col-md-6 .form-item input.error,
#celebPopup .popupCont .col-md-6 .form-item select.error,
#celebPopup .popupCont .col-md-6 .form-item textarea.error,
#celebPopup .popupCont .col-md-6 input.error,
#celebPopup .popupCont .col-md-6 select.error,
#celebPopup .popupCont .col-md-6 textarea.error {
  border-color: var(--leela-form-error-color) !important;
  border-width: 1px !important;
  border-style: solid !important;
}

.overlayPopup #ui-datepicker-div,
.overlayPopup .ui-datepicker {
  top: auto !important;
  left: auto !important;
}

.page-node-type-destinations #ui-datepicker-div,
.page-node-type-destinations .ui-datepicker {
  top: auto !important;
  left: auto !important;
}

/* Correct flag sprites after vendor CSS bundle breaks relative paths. */
#rfq .iti__flag,
#rfq .iti__flag-box,
.overlayPopup .iti__flag,
.overlayPopup .iti__flag-box,
.enquiry-webform-mount .iti__flag,
.enquiry-webform-mount .iti__flag-box,
.section--feedback-form .iti__flag,
.section--feedback-form .iti__flag-box {
  background-image: url("/libraries/country-number/img/flags.png") !important;
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  #rfq .iti__flag,
  #rfq .iti__flag-box,
  .overlayPopup .iti__flag,
  .overlayPopup .iti__flag-box,
  .enquiry-webform-mount .iti__flag,
  .enquiry-webform-mount .iti__flag-box,
  .section--feedback-form .iti__flag,
  .section--feedback-form .iti__flag-box {
    background-image: url("/libraries/country-number/img/flags@2x.png") !important;
  }
}

/* Popup + inline enquiry phone field layout. */
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown,
#rfq .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown {
  width: 100%;
  position: relative;
  display: flex;
  flex-wrap: nowrap !important;
  align-items: stretch;
  min-height: 42px;
  max-height: 42px;
  overflow: visible;
}

.overlayPopup .webform-submission-form .form-type-webform-telephone .iti__flag-container,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti__flag-container,
#rfq .webform-submission-form .form-type-webform-telephone .iti__flag-container,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti__flag-container,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti__flag-container,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti__flag-container {
  left: 0;
  top: 0;
  bottom: auto;
  height: 42px !important;
  max-height: 42px !important;
}

/* Keep flag + separate dial code vertically centered, including error state. */
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti__selected-flag,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti__selected-flag,
#rfq .webform-submission-form .form-type-webform-telephone .iti__selected-flag,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti__selected-flag,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti__selected-flag,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti__selected-flag,
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-flag,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-flag,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-flag {
  height: 42px !important;
  max-height: 42px !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box;
}

.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-dial-code,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-dial-code,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-dial-code,
#rfq .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-dial-code,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-dial-code,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--separate-dial-code .iti__selected-dial-code {
  display: inline-block;
  vertical-align: middle;
  margin-left: 6px;
}

/* GHA profile mobile ITI: center flag + separate dial code. */
.gha-form .iti__flag-container,
.gha-form .iti__selected-flag {
  display: flex;
  align-items: center;
  height: 100%;
}

.gha-form .iti__flag-box,
.gha-form .iti--separate-dial-code .iti__selected-dial-code {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}

.gha-form .form-type-textfield .iti {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.gha-form .form-type-textfield .iti input[type="tel"],
.gha-form .form-type-textfield .iti input[name="mobile_number"],
.gha-form .form-type-textfield .iti input#edit-mobile-number {
  flex: 1 1 auto;
}

/* Phone error border: draw on ITI wrapper so flag/dial stay aligned (mixin uses 2px on input.error). */
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(input.error),
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(input.error),
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(input.error),
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(input.error),
#rfq .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(input.error),
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(input.error),
#meetingPopup .form-type-webform-telephone .form-item--error .iti--allow-dropdown,
#celebPopup .form-type-webform-telephone .form-item--error .iti--allow-dropdown,
.overlayPopup .form-type-webform-telephone .form-item--error .iti--allow-dropdown,
.enquiry-webform-mount .form-type-webform-telephone .form-item--error .iti--allow-dropdown,
#rfq .form-type-webform-telephone .form-item--error .iti--allow-dropdown {
  border: 1px solid var(--leela-form-error-color) !important;
  box-sizing: border-box !important;
}

#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown input.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown input.error,
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown input.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown input.error,
#rfq .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown input.error,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown input.error,
#meetingPopup .form-type-webform-telephone .form-item--error .iti input,
#celebPopup .form-type-webform-telephone .form-item--error .iti input {
  border: none !important;
  box-shadow: none !important;
}

/* Phone errors live as siblings after .iti — never inside the input row. */
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti + label.error,
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti + .form-item--error-message,
.overlayPopup .webform-submission-form .form-type-webform-telephone .leela-phone-error-outside,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti + label.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti + .form-item--error-message,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .leela-phone-error-outside,
#rfq .webform-submission-form .form-type-webform-telephone .iti + label.error,
#rfq .webform-submission-form .form-type-webform-telephone .iti + .form-item--error-message,
#rfq .webform-submission-form .form-type-webform-telephone .leela-phone-error-outside,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti + label.error,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti + .form-item--error-message,
#meetingPopup .webform-submission-form .form-type-webform-telephone .leela-phone-error-outside,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti + label.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti + .form-item--error-message,
#celebPopup .webform-submission-form .form-type-webform-telephone .leela-phone-error-outside,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti + label.error,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti + .form-item--error-message,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .leela-phone-error-outside,
.gha-form .form-type-textfield .iti + label.error,
.gha-form .form-type-textfield .iti + .form-item--error-message,
.gha-form .form-type-textfield .leela-phone-error-outside {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  order: unset !important;
  position: static !important;
  margin-top: 0.25rem;
  white-space: normal;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Legacy: CV may still briefly inject inside .iti before JS relocate runs. */
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti label.error,
.overlayPopup .webform-submission-form .form-type-webform-telephone .form-item--error-message,
.overlayPopup .webform-submission-form .form-type-webform-telephone label.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti label.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .form-item--error-message,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone label.error,
#rfq .webform-submission-form .form-type-webform-telephone .iti label.error,
#rfq .webform-submission-form .form-type-webform-telephone .form-item--error-message,
#rfq .webform-submission-form .form-type-webform-telephone label.error,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti label.error,
#meetingPopup .webform-submission-form .form-type-webform-telephone .form-item--error-message,
#meetingPopup .webform-submission-form .form-type-webform-telephone label.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti label.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .form-item--error-message,
#celebPopup .webform-submission-form .form-type-webform-telephone label.error,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti label.error,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .form-item--error-message,
.section--feedback-form .webform-submission-form .form-type-webform-telephone label.error,
.gha-form .form-type-textfield .iti label.error,
.gha-form .form-type-textfield .form-item--error-message {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  order: 99;
  display: block !important;
  position: static !important;
  margin-top: 0.25rem;
  white-space: normal;
}

/* Keep Webform ITI idle placeholder hidden (CV/server errors use label.error). */
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti > strong.error.form-item--error-message,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti > strong.error.form-item--error-message,
#rfq .webform-submission-form .form-type-webform-telephone .iti > strong.error.form-item--error-message,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti > strong.error.form-item--error-message,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti > strong.error.form-item--error-message,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti > strong.error.form-item--error-message {
  display: none !important;
}

/* Border on input row only when error label is inside .iti (not around error text). */
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error),
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error),
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error),
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error),
#rfq .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error),
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error),
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(strong.error:not(.leela-error-hidden)),
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(strong.error:not(.leela-error-hidden)),
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(strong.error:not(.leela-error-hidden)),
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(strong.error:not(.leela-error-hidden)),
#rfq .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(strong.error:not(.leela-error-hidden)),
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(strong.error:not(.leela-error-hidden)) {
  border: none !important;
  box-shadow: none !important;
}

#meetingPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error) input.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error) input.error,
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error) input.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error) input.error,
#rfq .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error) input.error,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti--allow-dropdown:has(label.error) input.error {
  border: 1px solid var(--leela-form-error-color) !important;
  box-sizing: border-box !important;
}

/* Phone error border: force 1px so mixin 2px does not shift the flag.
   mixin.css uses: #meetingPopup .form-item input.error { border: 2px solid red !important }
   Match that shape with an extra class so we always win on specificity. */
#meetingPopup .form-item.form-type-webform-telephone input.error,
#meetingPopup .form-item.js-form-type-webform-telephone input.error,
#celebPopup .form-item.form-type-webform-telephone input.error,
#celebPopup .form-item.js-form-type-webform-telephone input.error,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti input.error,
#meetingPopup .webform-submission-form .form-type-webform-telephone .iti input.form-control.error,
#meetingPopup .popupCont .col-md-6 .form-type-webform-telephone .iti input.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti input.error,
#celebPopup .webform-submission-form .form-type-webform-telephone .iti input.form-control.error,
#celebPopup .popupCont .col-md-6 .form-type-webform-telephone .iti input.error,
.overlayPopup .webform-submission-form .form-type-webform-telephone .iti input.error,
.enquiry-webform-mount .webform-submission-form .form-type-webform-telephone .iti input.error,
#rfq .webform-submission-form .form-type-webform-telephone .iti input.error,
.section--feedback-form .webform-submission-form .form-type-webform-telephone .iti input.error {
  border: 1px solid var(--leela-form-error-color) !important;
  box-sizing: border-box !important;
}

/* Kill theme wrapper caret — it uses top:50% and shifts when errors appear. */
#rfq .webform-submission-form .form-type-select::after,
.overlayPopup .webform-submission-form .form-type-select::after,
.enquiry-webform-mount .webform-submission-form .form-type-select::after,
.section--feedback-form .webform-submission-form .form-type-select::after {
  display: none !important;
  content: none !important;
}

/* Stable chevron on the select control itself. */
#rfq .webform-submission-form select.form-select,
.overlayPopup .webform-submission-form select.form-select,
.enquiry-webform-mount .webform-submission-form select.form-select,
.section--feedback-form .webform-submission-form select.form-select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("/themes/custom/leela/app/images/icons/down-arrow.svg");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px auto;
  padding-right: 32px;
}

/* Errors flow below field; do not affect arrow positioning. */
.overlayPopup .webform-submission-form .form-type-select label.error,
.enquiry-webform-mount .webform-submission-form .form-type-select label.error,
#rfq .webform-submission-form .form-type-select label.error,
.overlayPopup .webform-submission-form .form-type-select .form-item--error-message,
.enquiry-webform-mount .webform-submission-form .form-type-select .form-item--error-message,
#rfq .webform-submission-form .form-type-select .form-item--error-message {
  position: static !important;
  display: block !important;
  width: 100% !important;
  margin-top: 0.25rem;
}

/* Stable row spacing when errors appear. */
.overlayPopup .webform-submission-form .row > [class*="col-"],
.enquiry-webform-mount .webform-submission-form .row > [class*="col-"],
#rfq .webform-submission-form .row > [class*="col-"] {
  margin-bottom: 1.25rem;
}
