.rfh-promo-appointment-form .js-form-item,
.rfh-promo-appointment-form .form-item {
  margin: 0;
  padding: 0;
}

.rfh-promo-appointment-form label.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rfh-promo-appointment-form .row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -10px;
}

.rfh-promo-appointment-form .row>[class*="col-"] {
  padding: 0 10px;
}

.rfh-promo-appointment-form .submit-btn:hover {
  opacity: 0.92;
}

/* Inline field-error slot.
   Default state: takes ZERO layout space (no min-height, no margin).
   Only when the AJAX response adds the .error class does it show as a
   styled red message. The PHP / JS toggles the class on/off so the
   slot collapses back to nothing as soon as the user starts typing. */
.rfh-promo-appointment-form .promo-error-slot {
  margin: 0;
  padding: 0;
  min-height: 0;
  line-height: 0;
  font-size: 0;
}

.rfh-promo-appointment-form .promo-error-slot.error {
  font-size: 12px;
  line-height: 1.4;
  margin-top: 3px;
  min-height: 14px;
}

/* Banner overlay form — text on dark banner, white control surface. */
.rs-banner.banner-home-style2 .promo-appointment-form .from-control,
.rs-banner.banner-home-style2 .promo-appointment-form .form-text {
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 5px;
  padding: 8px 12px;
  width: 100%;
  color: #454545;
}

/* Thank-you message bubble. */
.promo-thankyou-msg {
  display: none;
}

.promo-thankyou-msg.is-visible {
  display: block;
  background: #e6f4ea;
  border: 1px solid #b7e0c0;
  color: #1e7036;
  padding: 12px 16px;
  border-radius: 4px;
  margin-bottom: 16px;
  font-size: 14px;
}

.rs-banner.banner-home-style2 .rs-contact .contact-wrap .from-control {
  margin-top: 0;
  font-size: 15px;
}

.rs-banner.banner-home-style2 .rs-contact .contact-wrap .content-part .title {
  width: 85%;
  margin-right: auto;
  margin-left: auto;
  font-family: 'Roboto Condensed', sans-serif;
}

.rs-banner.banner-home-style2 .rs-contact .contact-wrap .from-control::placeholder,
.rs-banner.banner-home-style2 .rs-contact .contact-wrap .from-control::-webkit-input-placeholder,
.rs-banner.banner-home-style2 .rs-contact .contact-wrap .from-control:-ms-input-placeholder,
.rs-banner.banner-home-style2 .rs-contact .contact-wrap .from-control::-ms-input-placeholder {
  color: #454545 !important;
}

.home-paste-color {
  background-color: #fff;
}

.promo-appointment-form .captcha__title,
.promo-appointment-form .captcha-type-challenge--image .captcha__element>.form-item>label,
.promo-appointment-form .description,
.copyright a:before {
  display: none;
}

.promo-appointment-form .description.error {
  display: block;
}

.banner-form-wrap .promo-appointment-form .description.error,
.banner-form-wrap .rfh-promo-appointment-form .promo-error-slot.error {
  color: #fff;
}

.promo-appointment-form .captcha__image-wrapper {
  display: flex;
  align-items: center;
  gap: 5px;
}

.rs-banner.banner-home-style2 .promo-appointment-form .form-text {
  margin: 0;
}

.promo-appointment-form .captcha-type-challenge--image .captcha__element>.form-item {
  min-width: 0;
  max-width: 50%;
}

.promo-appointment-form .captcha__image-wrapper img {
  display: block;
  width: 80%;
  max-width: 120px;
  border: none;
  padding: 0;
  border-radius: 8px;
  margin: 0;
}

/* .request-appointment-promotional-form-bottom .captcha-type-challenge--image {
  width: 50%;
} */

.request-appointment-promotional-form-bottom .captcha-type-challenge--image .form-item-captcha-response input,
.request-appointment-promotional-form-top-mobile .captcha-type-challenge--image .form-item-captcha-response input {
  display: block;
  width: 100%;
  padding: .375rem .75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: .25rem;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.rs-patter-section h2,
.rs-services h2 {
  font-family: 'Roboto Condensed', sans-serif;
  font-size: 2rem;
}

.care-center-container {
  margin-top: 20px !important;
}

.rs-services .sec-title3 {
  margin-top: 30px !important;
}

.copyright a {
  padding: 0 !important;
  margin: 0 !important;
}

.youtube-para {
  font-size: 15px;
}

.card-body .discount-badge,
.card-body a,
.service-title,
.service-sub {
  font-family: 'Roboto Condensed', sans-serif;
}

.promo-appointment-form .captcha__element {
  display: block;
  margin: 0 0 12px;
}

.promo-appointment-form .captcha__image-wrapper {
  justify-content: center;
}

.contact-wrap input::placeholder {
  opacity: 1 !important;
}

.book-apointment-description a {
  font-size: 15px;
}

.title-blue {
  color: #2c3b47;
}

.social-container a {
  color: inherit;
}

.rs-footer .copyright {
  padding-top: 0;
  padding-bottom: 0;
}

#testimonialModal .modal-dialog {
  max-width: 900px;
  width: 95%;
  top: 0;
}

.youtube-video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 ratio */
  height: 0;
}

.youtube-video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.modal-open-custom {
  overflow: hidden;
}

@media (min-width: 576px) {
  .request-appointment-promotional-form-bottom .captcha-type-challenge--image {
    width: 50%;
  }

  .promo-appointment-form .captcha__element {
    display: flex;
    justify-content: space-between;
  }

}
