.elementor-46 .elementor-element.elementor-element-98059f9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-46 .elementor-element.elementor-element-e2d024d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-46 .elementor-element.elementor-element-c456fdb > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-46 .elementor-element.elementor-element-401dbb4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-46 .elementor-element.elementor-element-6e03419{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-46 .elementor-element.elementor-element-7d445e7{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-46 .elementor-element.elementor-element-7d445e7.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-46 .elementor-element.elementor-element-6d681ef{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-46 .elementor-element.elementor-element-6d681ef.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-46 .elementor-element.elementor-element-f3f1b2e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-46 .elementor-element.elementor-element-f3f1b2e.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-46 .elementor-element.elementor-element-f1feb03{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-46 .elementor-element.elementor-element-0f2f1e2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-46 .elementor-element.elementor-element-df209be{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-46 .elementor-element.elementor-element-e0f066d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}@media(min-width:768px){.elementor-46 .elementor-element.elementor-element-7d445e7{--width:80.864%;}.elementor-46 .elementor-element.elementor-element-6d681ef{--width:45.521%;}.elementor-46 .elementor-element.elementor-element-f3f1b2e{--width:58.396%;}}/* Start custom CSS for shortcode, class: .elementor-element-7ddc86e *//* ════════════════════════════════════════
   PERSONALIZED SONG FORM — Elementor Advanced CSS
   YourHeartory · rosa/dorado · Montserrat
   Pega en: widget del form → Avanzado → CSS personalizado
   El .elementor-46 .elementor-element.elementor-element-7ddc86e .elementor-element apunta solo a ESTE widget
   ════════════════════════════════════════ */

.elementor-element, .elementor-element * {
  font-family: 'Montserrat', sans-serif !important;
}

/* ── Contenedor general del form ── */
.elementor-element .fluentform {
  max-width: 100%;
  margin: 0 auto;
}

/* ── Labels ── */
.elementor-element .ff-el-input--label label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1a1225 !important;
  margin-bottom: 8px !important;
  letter-spacing: -0.01em;
}

.elementor-element .ff-el-is-required .ff-el-input--label label:after {
  content: "*";
  color: #c0566a !important;
  margin-left: 3px;
}

/* ── Inputs y textareas ── */
.elementor-element .ff-el-form-control {
  width: 100%;
  padding: 14px 18px !important;
  border: 1.5px solid #f0e2dc !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #1a1225 !important;
  background-color: #faf7f3 !important;
  transition: all 0.25s ease !important;
}

.elementor-element .ff-el-form-control:focus {
  border-color: #c0566a !important;
  outline: none !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 4px rgba(192,86,106,0.12) !important;
}

.elementor-element textarea.ff-el-form-control {
  min-height: 130px !important;
  resize: vertical;
}

/* ── Placeholder ── */
.elementor-element .ff-el-form-control::placeholder {
  color: #b8a8a0 !important;
  font-weight: 500 !important;
}

/* ── Selects ── */
.elementor-element select.ff-el-form-control {
  cursor: pointer;
}

/* ── Errores ── */
.elementor-element .ff-el-is-error .ff-el-form-control {
  border-color: #e0566a !important;
  background-color: #fceef1 !important;
}
.elementor-element .ff-errors-in-stack,
.elementor-element .error {
  margin-top: 6px !important;
  color: #c0566a !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
}

/* ── Mensaje de éxito ── */
.elementor-element .ff-message-success {
  background: linear-gradient(135deg, #fceef1, #fbf3e0) !important;
  color: #8a3a50 !important;
  padding: 20px !important;
  border-radius: 16px !important;
  margin-top: 24px !important;
  text-align: center !important;
  font-weight: 600 !important;
  border: 1.5px solid #f0c9d4 !important;
}

/* ── Cards visuales (genre, voice, etc) ── */
.elementor-element .ff_list_buttons,
.elementor-element .visual-card-container {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-top: 10px !important;
}

.elementor-element .visual-card,
.elementor-element .ff-el-image-holder {
  flex: 1 1 calc(33% - 12px) !important;
  padding: 16px !important;
  border: 1.5px solid #f0e2dc !important;
  border-radius: 16px !important;
  text-align: center !important;
  cursor: pointer !important;
  background: #ffffff !important;
  transition: all 0.25s ease !important;
  box-sizing: border-box !important;
}

.elementor-element .visual-card:hover,
.elementor-element .ff-el-image-holder:hover {
  border-color: #d9a98a !important;
  background: #fff8f0 !important;
  transform: translateY(-2px);
}

.elementor-element .visual-card.selected,
.elementor-element .ff_item_selected {
  background: #fceef1 !important;
  border-color: #c0566a !important;
  box-shadow: 0 6px 18px rgba(192,86,106,0.16) !important;
}

.elementor-element .visual-card i {
  font-size: 26px !important;
  margin-bottom: 10px !important;
  display: block !important;
  color: #c0566a !important;
}

/* ── Radio / checkbox circulares de imagen (voz, género) ── */
.elementor-element label.ff-el-image-input-src {
  height: 56px !important;
  width: 56px !important;
  min-height: 56px !important;
  min-width: 56px !important;
  border-radius: 50% !important;
  background-size: cover !important;
  background-position: center !important;
  border: 2px solid #f0e2dc !important;
  display: block !important;
  margin: 0 auto 8px !important;
  transition: all 0.25s ease !important;
}

.elementor-element .ff_item_selected label.ff-el-image-input-src {
  border-color: #c0566a !important;
  border-width: 3px !important;
  box-shadow: 0 0 0 4px rgba(192,86,106,0.14) !important;
}

.elementor-element .ff-el-form-check-label span {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #1a1225 !important;
}

.elementor-element .ff_item_selected .ff-el-form-check-label span {
  color: #ffffff !important;
  background: #c0566a !important;
  padding: 3px 12px !important;
  border-radius: 999px !important;
  display: inline-block;
}

/* ── Upload de archivos ── */
.elementor-element .ff_file_upload_holder span.ff_upload_btn {
  background: linear-gradient(135deg, #c9a84c, #c0566a) !important;
  color: #ffffff !important;
  padding: 12px 22px !important;
  border-radius: 99px !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  transition: all 0.25s ease !important;
  display: inline-block !important;
}

.elementor-element .ff_file_upload_holder span.ff_upload_btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(192,86,106,0.3) !important;
}

/* ── Range slider ── */
.elementor-element .rangeslider {
  background: #f0e2dc !important;
  border-radius: 99px !important;
  height: 6px !important;
}
.elementor-element .rangeslider__fill {
  background: linear-gradient(90deg, #c9a84c, #c0566a) !important;
  border-radius: 99px !important;
  height: 6px !important;
}

/* ── Step navigation (si usas multi-step) ── */
.elementor-element .step-nav,
.elementor-element .ff-btn-step {
  background: linear-gradient(135deg, #c9a84c, #c0566a) !important;
  color: #ffffff !important;
  padding: 13px 28px !important;
  border-radius: 99px !important;
  border: none !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  transition: all 0.25s ease !important;
}
.elementor-element .step-nav:hover,
.elementor-element .ff-btn-step:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(192,86,106,0.32) !important;
}

/* ── Submit button del form padre ── */
.elementor-element .ff-btn-submit.wpf_has_custom_css {
  background: linear-gradient(135deg, #c9a84c, #c0566a) !important;
  color: #ffffff !important;
  padding: 16px 0 !important;
  border-radius: 99px !important;
  border: none !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  width: 100% !important;
  transition: all 0.25s ease !important;
  box-shadow: 0 12px 32px rgba(192,86,106,0.32) !important;
}

.elementor-element .ff-btn-submit.wpf_has_custom_css:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(192,86,106,0.42) !important;
}

/* ── Voice icons (clase voice-field en Container Class) ── */
.elementor-element .voice-field .ff_list_buttons label.ff-image-input-src {
  height: 56px !important;
  width: 56px !important;
  border-radius: 50% !important;
  background-size: cover !important;
}

/* ── Step wrapper spacing ── */
.elementor-element .ff_form_step_wrapper {
  margin-bottom: 24px !important;
}

/* ── Section breaks ── */
.elementor-element .ff-el-section-title {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: #1a1225 !important;
  margin-bottom: 6px !important;
}
.elementor-element .ff-el-section-break p {
  font-size: 13.5px !important;
  color: #7a7068 !important;
  font-weight: 500 !important;
}

/* ── Responsive ── */
@media (max-width: 600px) {
  .elementor-element .visual-card,
  .elementor-element .ff-el-image-holder {
    flex: 1 1 calc(50% - 12px) !important;
  }
}
@media (max-width: 400px) {
  .elementor-element .visual-card,
  .elementor-element .ff-el-image-holder {
    flex: 1 1 100% !important;
  }
}
/* ── BLINDAR Stripe y PayPal (resetear herencia verde/pequeña) ── */
.elementor-element .ff-el-group:has(.__PrivateStripeElement),
.elementor-element .ff-el-group:has(iframe[name*="stripe"]),
.elementor-element .ff-el-group:has(iframe[title*="Stripe"]),
.elementor-element .ff-el-group:has([id*="paypal"]),
.elementor-element .ff-el-group:has([class*="paypal"]),
.elementor-element .ff-el-group:has([name="payment_method"]) {
  display: block !important;
  width: 100% !important;
  margin-bottom: 16px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  flex-direction: initial !important;
}

.elementor-element .ff-el-group:has(.__PrivateStripeElement) *,
.elementor-element .ff-el-group:has(iframe[name*="stripe"]) *,
.elementor-element .ff-el-group:has(iframe[title*="Stripe"]) *,
.elementor-element .ff-el-group:has([id*="paypal"]) *,
.elementor-element .ff-el-group:has([class*="paypal"]) *,
.elementor-element .ff-el-group:has([name="payment_method"]) * {
  color: initial !important;
  font-size: initial !important;
  font-weight: initial !important;
  line-height: normal !important;
}/* End custom CSS */