/* Forms: decoration is contained by the enquiry card, never by its column. */
.tsf-balcony-landing .tsf-balcony-consultation::before,
.tsf-balcony-landing .tsf-balcony-consultation::after,
.tsf-balcony-landing .tsf-balcony-consultation__grid::before,
.tsf-balcony-landing .tsf-balcony-consultation__grid::after,
.tsf-balcony-landing .tsf-balcony-story::before,
.tsf-balcony-landing .tsf-balcony-story::after,
.tsf-balcony-landing .tsf-balcony-form-stage,
.tsf-balcony-landing .tsf-balcony-form-stage::before,
.tsf-balcony-landing .tsf-balcony-form-stage::after {
  background-image: none !important;
}

.tsf-balcony-landing .tsf-balcony-consultation::before,
.tsf-balcony-landing .tsf-balcony-consultation::after,
.tsf-balcony-landing .tsf-balcony-consultation__grid::before,
.tsf-balcony-landing .tsf-balcony-consultation__grid::after,
.tsf-balcony-landing .tsf-balcony-story::before,
.tsf-balcony-landing .tsf-balcony-story::after,
.tsf-balcony-landing .tsf-balcony-form-stage::before,
.tsf-balcony-landing .tsf-balcony-form-stage::after {
  content: none !important;
}

/* Every enquiry card now uses a single, calm green surface. The decorative
 * bow-tie layer used to be injected by several legacy selectors, so remove
 * the pseudo-element itself rather than only one of its background images. */
.tsf-contact-form.tsf-balcony-form,
.tsf-balcony-form {
  background-image: none !important;
}

.tsf-contact-form.tsf-balcony-form::before,
.tsf-balcony-form::before {
  background-image: none !important;
  content: none !important;
  display: none !important;
}

/* The free note in the last step must not create an empty visual block.
 * It opens at one compact line and each form script expands it only as the
 * visitor writes.  Keep this rule shared so every staged enquiry behaves the
 * same way. */
.tsf-service-multistep textarea[name="mensaje"],
.tsf-packs-form textarea[name="mensaje"],
.tsf-experience-form textarea[name="mensaje"] {
  box-sizing: border-box;
  height: 48px;
  min-height: 48px !important;
  overflow-y: hidden;
  resize: none;
}

/* Submission is the final action, so it receives the brand-red hover state
 * consistently across every multi-step form. */
.tsf-service-multistep .tsf-service-multistep__submit:hover,
.tsf-service-multistep .tsf-service-multistep__submit:focus-visible,
.tsf-packs-form [data-packs-submit]:hover,
.tsf-packs-form [data-packs-submit]:focus-visible,
.tsf-experience-form .tsf-experience-submit[type="submit"]:hover,
.tsf-experience-form .tsf-experience-submit[type="submit"]:focus-visible,
[data-home-multistep] [data-form-submit]:hover,
[data-home-multistep] [data-form-submit]:focus-visible {
  background: var(--red, #c6192e) !important;
  border-color: var(--red, #c6192e) !important;
  color: #fff !important;
  outline: 0;
}

/* Accommodation follows the same compact, staged card as every service form. */
@media (min-width: 681px) {
  .tsf-service-landing--alojamiento .tsf-balcony-form.tsf-service-multistep {
    min-height: 0;
    padding: clamp(24px, 2.35vw, 34px);
  }

  .tsf-service-landing--alojamiento .tsf-service-multistep__progress {
    margin: 17px 0 14px;
  }

  .tsf-service-landing--alojamiento .tsf-service-multistep__step .tsf-form-grid {
    gap: 14px 20px;
    margin-top: 12px;
    padding: 9px 0 7px;
  }

  .tsf-service-landing--alojamiento .tsf-service-multistep__step[data-service-step="1"] .tsf-form-grid > p:nth-child(3),
  .tsf-service-landing--alojamiento .tsf-service-multistep__step[data-service-step="1"] .tsf-form-grid > p:nth-child(4) {
    align-self: end;
  }
}
