/*
 * Transfer4U — Estilos del formulario de reserva v2.1
 * Gestionado por T4U Pricing Plugin
 *
 * Colores desde: WP Admin > T4U Pricing > Estilos y Colores
 *
 * IMPORTANTE: Sobreescribe variables de GF StylesPro (--gfsp--*)
 * para que los colores del plugin tengan efecto real.
 */


/* ══════════════════════════════════════════════
   1. SISTEMA DE VARIABLES — compatibilidad total
   Sobreescribe --gfsp--* con nuestros valores
   ══════════════════════════════════════════════ */

:root {
  /* Fuente del sistema (hereda la web) */
  --t4u-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
              'Helvetica Neue', Arial, sans-serif;

  /* Tipografía fluida: min 13px → max 16px entre 320px y 1440px */
  --t4u-fs-xs:   clamp(0.70rem, 0.65rem + 0.25vw, 0.80rem);   /* ~11–13px */
  --t4u-fs-sm:   clamp(0.78rem, 0.72rem + 0.30vw, 0.90rem);   /* ~12–14px */
  --t4u-fs-base: clamp(0.85rem, 0.78rem + 0.35vw, 1.00rem);   /* ~13–16px */
  --t4u-fs-md:   clamp(0.95rem, 0.85rem + 0.50vw, 1.15rem);   /* ~15–18px */
  --t4u-fs-lg:   clamp(1.10rem, 0.95rem + 0.75vw, 1.40rem);   /* ~17–22px */
  --t4u-fs-xl:   clamp(1.30rem, 1.10rem + 1.00vw, 1.75rem);   /* ~21–28px */
  --t4u-fs-2xl:  clamp(1.50rem, 1.25rem + 1.25vw, 2.10rem);   /* ~24–34px */

  /* Aliases de color para compatibilidad con código existente */
  --principal: var(--t4u-principal, #C61217);
  --segundo:   var(--t4u-segundo,   #292826);
}

/* Sobreescribir variables de GF StylesPro con los colores del plugin */
.gf_stylespro_wrapper,
.gform_wrapper.gravity-theme {
  --gfsp--label-bg-color:      var(--t4u-label-bg,      var(--t4u-segundo,   #292826));
  --gfsp--label-color:         var(--t4u-label-text,    #ffffff);
  --gfsp--label-border-color:  var(--t4u-principal,     #C61217);
  --gfsp--accent-color:        var(--t4u-principal,     #C61217);
  --gfsp--choice-bg:           var(--t4u-card-bg,       #F8F9FD);
  --gfsp--choice-checked-bg:   var(--t4u-selected-bg,   #C61217);
  --gfsp--choice-checked-color:var(--t4u-selected-text, #ffffff);
  --gfsp--icon-bg-color:       var(--t4u-icon-bg,       #C61217);
  --gfsp--btn-bg-color:        var(--t4u-btn-bg,        #616477);
  --gfsp--btn-color:           #ffffff;
}


/* ══════════════════════════════════════════════
   2. FUENTE BASE — aplicada a todo el formulario
   ══════════════════════════════════════════════ */

#gform_47,
.gf_stylespro_wrapper,
.gf_stylespro_wrapper *,
.gform_wrapper.gravity-theme,
.gform_wrapper.gravity-theme * {
  font-family: var(--t4u-font) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


/* ══════════════════════════════════════════════
   3. LABELS — sobreescribe gfsp con !important
      donde la especificidad no es suficiente
   ══════════════════════════════════════════════ */

.gf_stylespro_wrapper .gf_stylespro .gfield_label,
.gf_stylespro_wrapper .gf_stylespro legend.gfield_label,
.gf_stylespro_wrapper .gf_stylespro .gfield_label.gfield_label_before_complex,
.gf_stylespro_wrapper .gf_stylespro .nombre-apellido .ginput_complex label {
  font-family:     var(--t4u-font) !important;
  font-size:       var(--t4u-fs-sm) !important;
  font-weight:     700 !important;
  text-transform:  uppercase !important;
  letter-spacing:  0.04em;
  line-height:     1.3;

  background-color: var(--t4u-label-bg, var(--t4u-segundo, #292826)) !important;
  color:            var(--t4u-label-text, #ffffff) !important;
  border-bottom:    2px solid var(--t4u-principal, #C61217) !important;

  display:       block !important;
  width:         100% !important;
  padding:       0.5em 0.75em !important;
  margin-bottom: 0 !important;
  border-radius: 6px 6px 0 0 !important;
}

/* El span interno de los labels en GF reciente */
.gf_stylespro_wrapper .gfield_label .gform-field-label__text {
  color: inherit !important;
}

/* Sub-labels (nombre/apellido) — más pequeños */
.gf_stylespro_wrapper .gf_stylespro .nombre-apellido .ginput_complex label {
  font-size:     var(--t4u-fs-xs) !important;
  border-bottom: none !important;
  border-radius: 4px !important;
  padding:       0.3em 0.6em !important;
}


/* ══════════════════════════════════════════════
   4. ICONO DE CAMPO (gfsp_icon)
   ══════════════════════════════════════════════ */

.gf_stylespro_wrapper.gform_wrapper .gfsp_icon {
  background:    var(--t4u-icon-bg, var(--t4u-principal, #C61217)) !important;
  border-radius: 0 0 0 6px;
  padding:       0 14px;
  height:        50px;
  display:       inline-flex;
  align-items:   center;
  justify-content: center;
  flex-shrink:   0;
}

.gfsp_icn_img {
  filter:     brightness(0) invert(1);
  width:      22px;
  height:     22px;
  object-fit: contain;
}


/* ══════════════════════════════════════════════
   5. SELECTS
   ══════════════════════════════════════════════ */

.ginput_container.has_gfsp_icn.ginput_container_select,
.ginput_container.ginput_container_select {
  display:       flex;
  border-radius: 0 6px 6px 0;
  overflow:      hidden;
  box-shadow:    0 2px 8px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.05);
}

.gf_stylespro_wrapper.gform_wrapper select,
.gfield_select {
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-base) !important;
  border:      0 !important;
  padding:     0 14px !important;
  height:      50px;
  flex:        1;
  background:  #fff;
  cursor:      pointer;
  border-radius: 0 6px 6px 0;
}

.gf_stylespro_wrapper.gform_wrapper select:focus {
  outline:    none;
  box-shadow: inset 0 0 0 2px var(--t4u-principal, #C61217);
}


/* ══════════════════════════════════════════════
   6. INPUTS DE TEXTO — custom-input y fechas
   ══════════════════════════════════════════════ */

.gf_stylespro .custom-input input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="submit"]),
.gf_stylespro input[type="text"].flatpickr-input,
.gf_stylespro input[type="email"],
.gf_stylespro input[type="tel"],
.ginput_container_text input,
.ginput_container_email input,
.ginput_container_phone_with_country_code input,
.textarea {
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-base) !important;
  border:       0 !important;
  border-radius: 0 6px 6px 0;
  padding:      0 14px !important;
  height:       50px;
  width:        100%;
  box-shadow:   0 0 0 1px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06);
  transition:   box-shadow .18s;
  background:   #fff;
}

/* Cuando hay icono, quitar border-radius izquierdo */
.has_gfsp_icn input:not([type="radio"]):not([type="checkbox"]) {
  border-radius: 0 6px 6px 0 !important;
}

.gf_stylespro input:focus,
.gf_stylespro textarea:focus {
  box-shadow: 0 0 0 2px var(--t4u-principal, #C61217) !important;
  outline: none !important;
}

/* Flatpickr readonly — aspecto normal */
.flatpickr-input[readonly] {
  background: #fff !important;
  cursor:     pointer;
}

/* Textarea */
.ginput_container_textarea textarea {
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-base) !important;
  border:       1px solid rgba(0,0,0,.12) !important;
  border-radius: 6px !important;
  padding:      12px 14px !important;
  height:       auto;
  resize:       vertical;
  width:        100%;
}

/* Nombre / apellido — wrapper con icono */
.ginput_container--name {
  display: flex;
  gap:     12px;
}
.ginput_container--name .gform-grid-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ginput_container--name input {
  height:       50px;
  padding:      0 14px !important;
  border:       1px solid rgba(0,0,0,.12) !important;
  border-radius: 0 6px 6px 0 !important;
  font-size:    var(--t4u-fs-base) !important;
}
.ginput_container--name .gfsp_icon {
  border-radius: 0 0 0 6px !important;
}


/* ══════════════════════════════════════════════
   7. SECCIONES / TARJETAS
   ══════════════════════════════════════════════ */

.gform_wrapper.gravity-theme fieldset.tipo-transfer,
.gform_wrapper.gravity-theme fieldset.seleccionar-un-vehiculo,
.gform_wrapper.gravity-theme fieldset.ida-vuelta,
.gform_wrapper.gravity-theme fieldset.tipo-pago,
.gform_wrapper.gravity-theme fieldset.forma-pago,
.gform_wrapper.gravity-theme fieldset.s-parada-extra,
.cupon-t4y {
  background:    var(--t4u-card-bg, #F8F9FD) !important;
  border:        none !important;
  border-radius: 12px !important;
  padding:       20px 16px !important;
  margin-bottom: 0;
}


/* ══════════════════════════════════════════════
   8. RADIOS / CHECKBOXES — base
   ══════════════════════════════════════════════ */

/* Lista (forma-pago, politica) */
.gf_stylespro .gfsp_o_list input[type="radio"]:not(old)+label,
.gf_stylespro .gfsp_o_list input[type="checkbox"]:not(old)+label {
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-base) !important;
  border:       0 !important;
  border-radius: 10px !important;
  padding:      14px !important;
  background:   #fff !important;
  box-shadow:   0 2px 8px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.04) !important;
  transition:   background .18s, color .18s, box-shadow .18s !important;
  cursor:       pointer;
}

/* Frame (tipo-transfer, vehículos, ida-vuelta) */
.gf_stylespro .gfsp_o_frame input[type="radio"]:not(old)+label,
.gf_stylespro .gfsp_o_frame input[type="checkbox"]:not(old)+label {
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-base) !important;
  background:   #fff !important;
  border:       2px solid transparent !important;
  transition:   background .18s, color .18s, border-color .18s !important;
}


/* ══════════════════════════════════════════════
   9. TIPO DE TRANSFER — cards
   ══════════════════════════════════════════════ */

.tipo-transfer .gfsp_label_img {
  border-radius: 8px 8px 0 0;
  width:         100%;
  display:       block;
}

.gf_stylespro .tipo-transfer.gfsp_o_frame input[type="radio"]:not(old)+label {
  padding:      0 !important;
  padding-bottom: 6px !important;
  border-radius: 10px !important;
  overflow:     hidden;
}

.tipo-transfer .o_text {
  font-size:   var(--t4u-fs-sm) !important;
  font-weight: 700 !important;
  text-align:  center;
  padding:     6px 4px;
}

/* Seleccionado / hover */
.gf_stylespro .tipo-transfer.gfield.o-shadowbox .gchoice input:checked+label,
.gf_stylespro .tipo-transfer.gfield.o-shadowbox .gchoice input+label:hover {
  background:   var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
  color:        var(--t4u-selected-text, #ffffff) !important;
  border-color: var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
}

.gf_stylespro .tipo-transfer.gfield.o-shadowbox .gchoice input:checked+label .gfsp_label_img {
  opacity: .85;
  filter:  brightness(1.1);
}


/* ══════════════════════════════════════════════
   10. VEHÍCULOS — tarjetas animadas
   ══════════════════════════════════════════════ */

.gf_stylespro .seleccionar-un-vehiculo.gfsp_o_frame input[type="radio"]:not(old)+label {
  font-size:     var(--t4u-fs-sm) !important;
  font-weight:   600 !important;
  color:         #191E37 !important;
  background:    #E7E8EE !important;
  padding:       6px !important;
  border:        2px solid transparent !important;
  border-radius: 10px !important;
  text-align:    center;
}

.gf_stylespro .seleccionar-un-vehiculo.gfsp_o_frame input[type="radio"]:not(old)+label:hover {
  background:   var(--t4u-vehiculo-hover, var(--t4u-principal, #C61217)) !important;
  color:        #fff !important;
  border-color: var(--t4u-vehiculo-hover, var(--t4u-principal, #C61217)) !important;
}

.gf_stylespro .seleccionar-un-vehiculo.gfield.o-shadowbox input:checked+label,
.gf_stylespro .seleccionar-un-vehiculo.gfield.o-shadowbox input:checked+span+label {
  background:   var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
  border-color: var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
  color:        var(--t4u-selected-text, #ffffff) !important;
}

.seleccionar-un-vehiculo .o_text {
  text-transform: uppercase;
  font-size:      var(--t4u-fs-xs) !important;
}

/* Precio del vehículo */
.precios-trayectos {
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-lg) !important;
  font-weight: 900 !important;
  color:       #111 !important;
  line-height: 1.2;
  display:     block;
}

.gf_stylespro .seleccionar-un-vehiculo.gfield input:checked+label .precios-trayectos,
.gf_stylespro .seleccionar-un-vehiculo.gfield input+label:hover .precios-trayectos {
  color: #fff !important;
}

/* Capacidad (iconos SVG) */
.t4u-capacity {
  display:         flex;
  flex-wrap:       wrap;
  gap:             3px 6px;
  justify-content: center;
  margin-top:      5px;
}

.t4u-cap-item {
  display:     inline-flex;
  align-items: center;
  gap:         3px;
  font-size:   var(--t4u-fs-xs) !important;
  opacity:     .8;
}

.t4u-cap-item svg { flex-shrink: 0; }


/* ══════════════════════════════════════════════
   11. PRECIOS — bloque efectivo / total
   ══════════════════════════════════════════════ */

.precio-transfer {
  padding:       18px 20px !important;
  border-radius: 14px !important;
  color:         var(--t4u-precio-text, #ffffff) !important;
  background:    var(--t4u-precio-bg, var(--t4u-segundo, #292826)) !important;
}

.gf_stylespro_wrapper .gf_stylespro .precio-transfer .gfield_label {
  font-family:   var(--t4u-font) !important;
  font-size:     var(--t4u-fs-xs) !important;
  font-weight:   700 !important;
  color:         var(--t4u-precio-text, #ffffff) !important;
  background:    rgba(0,0,0,.3) !important;
  border-bottom: none !important;
  border-radius: 6px !important;
  padding:       5px 10px !important;
  margin-bottom: 6px !important;
}

.gf_stylespro_wrapper .gf_stylespro .precio-transfer input,
.precio-transfer .ginput_total,
.precio-transfer .ginput_product_price {
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-2xl) !important;
  font-weight: 900 !important;
  color:       var(--t4u-precio-text, #ffffff) !important;
  background:  transparent !important;
  border:      none !important;
  text-align:  right;
  width:       100%;
  box-shadow:  none !important;
  height:      auto !important;
  padding:     4px 0 !important;
}

.precio-transfer .ginput_container_number,
.precio-transfer.efectivo-conductor .ginput_container_number {
  width:      100%;
  text-align: center;
}

.gf_stylespro_wrapper .gf_stylespro .precio-transfer.efectivo-conductor input,
.gf_stylespro_wrapper .gf_stylespro .precio-transfer.pago-parcial input,
.gf_stylespro_wrapper .gf_stylespro .precio-transfer.pago-completo input {
  text-align: center !important;
}


/* ══════════════════════════════════════════════
   12. TIPO DE PAGO (depósito / completo)
   ══════════════════════════════════════════════ */

.tipo-pago label { min-height: 130px; }

.gf_stylespro .tipo-pago.gfsp_o_frame input[type="radio"]:not(old)+label,
.gf_stylespro .tipo-pago.gfsp_o_frame input[type="checkbox"]:not(old)+label {
  font-size:   var(--t4u-fs-base) !important;
  font-weight: 600 !important;
  padding:     12px !important;
}

/* Imagen y texto dentro */
.tipo-pago .o_img_wr img { max-width: 50px; }
.tipo-pago .o_text {
  font-size:  var(--t4u-fs-sm) !important;
  margin-top: 6px;
}

/* Seleccionado */
.gf_stylespro .tipo-pago.o-custom-bg input[type]:checked+label,
.gf_stylespro .forma-pago.o-custom-bg input[type]:checked+label {
  background: var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
  color:      var(--t4u-selected-text, #fff) !important;
}

.gf_stylespro .tipo-pago.o-custom-bg input:checked+label::after,
.gf_stylespro .forma-pago.o-custom-bg input:checked+label::after {
  color: var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
}

.forma-pago.gfsp_o_list input+label::after,
.forma-pago.gfsp_o_list li:not(.gfsp_choice_icn):not(.gfsp_choice_img) input+label::after {
  border-radius: 5px;
}


/* ══════════════════════════════════════════════
   13. IDA / IDA Y VUELTA
   ══════════════════════════════════════════════ */

.gf_stylespro .ida-vuelta.gfsp_o_frame input[type="radio"]:not(old)+label {
  font-size:   var(--t4u-fs-md) !important;
  font-weight: 700 !important;
  padding:     10px !important;
  text-align:  center;
}

.gf_stylespro .ida-vuelta.gfield.o-shadowbox input+label .gfsp_label_img {
  filter: invert(40%) sepia(11%) saturate(631%) hue-rotate(194deg) brightness(93%);
}

.gf_stylespro .ida-vuelta.gfield.o-shadowbox input:checked+label .gfsp_label_img {
  filter: brightness(0) invert(1);
}

.gf_stylespro .ida-vuelta.gfield.o-shadowbox input:checked+label,
.gf_stylespro .ida-vuelta.gfield.o-shadowbox input+label:hover {
  background:   var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
  color:        var(--t4u-selected-text, #fff) !important;
  border-color: var(--t4u-selected-bg, var(--t4u-principal, #C61217)) !important;
}


/* ══════════════════════════════════════════════
   14. CONTINUAR RESERVA (checkbox grande)
   ══════════════════════════════════════════════ */

.gform_wrapper.gravity-theme fieldset.tipo-pago.continuar-reserva {
  padding: 16px 16px 4px !important;
}

.continuar-reserva.tipo-pago label {
  min-height:  60px !important;
  align-items: center;
  display:     flex !important;
}

.gf_stylespro .tipo-pago.continuar-reserva.gfsp_o_frame input[type="checkbox"]:not(old)+label {
  font-size:      clamp(1.1rem, 0.9rem + 1vw, 2rem) !important;
  font-weight:    800 !important;
  text-align:     center;
  justify-content: center;
  letter-spacing: 0.03em;
}

@media (max-width: 768px) {
  .gf_stylespro .tipo-pago.continuar-reserva.gfsp_o_frame input[type="checkbox"]:not(old)+label {
    font-size: var(--t4u-fs-md) !important;
  }
}


/* ══════════════════════════════════════════════
   15. RUTA — campo HTML id:318
   ══════════════════════════════════════════════ */

.gform_wrapper.gravity-theme .gfield.rutas-ciudades {
  padding:            10px !important;
  border-radius:      12px !important;
  background-image:   url(https://transfer4u.es/wp-content/uploads/2022/05/rutas-.jpg);
  background-size:    cover;
  background-position: center;
  border:             0 !important;
  height:             100%;
  min-height:         130px;
  display:            flex;
  align-items:        center;
}

.t4u-ruta-wrap {
  border-radius:    10px;
  background:       rgba(255,255,255,.9);
  backdrop-filter:  blur(6px);
  padding:          12px 14px;
  width:            100%;
}

.t4u-ruta-label {
  font-size:      var(--t4u-fs-xs) !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity:        .65;
}

.t4u-ruta-value {
  font-size:   var(--t4u-fs-md) !important;
  font-weight: 700 !important;
}


/* ══════════════════════════════════════════════
   16. TOOLTIPS NATIVOS (cssToolTip-3)
   ══════════════════════════════════════════════ */

.cssToolTip-3 {
  position:    relative;
  display:     inline-block;
  float:       right;
  margin-top:  -34px;
  margin-right: 8px;
}

.cssToolTip-3 a i { color: var(--t4u-principal, #C61217); }

.cssToolTip-3 span {
  visibility:    hidden;
  background:    var(--t4u-tooltip-bg, var(--t4u-principal, #C61217));
  color:         #fff;
  font-family:   var(--t4u-font) !important;
  font-size:     var(--t4u-fs-xs) !important;
  line-height:   1.55;
  text-align:    left;
  padding:       10px 12px;
  border-radius: 8px;
  width:         230px;
  position:      absolute;
  z-index:       9999;
  top:           50%;
  right:         130%;
  transform:     translateY(-50%) translateX(6px);
  opacity:       0;
  transition:    opacity .2s, transform .2s;
  box-shadow:    0 4px 18px rgba(0,0,0,.22);
  pointer-events: none;
}

.cssToolTip-3 span::after {
  content:       "";
  position:      absolute;
  top:           50%;
  left:          100%;
  margin-top:    -6px;
  border-width:  6px;
  border-style:  solid;
  border-color:  transparent transparent transparent var(--t4u-tooltip-bg, var(--t4u-principal, #C61217));
}

.cssToolTip-3:hover span {
  visibility: visible;
  opacity:    1;
  transform:  translateY(-50%) translateX(0);
  pointer-events: auto;
}

/* Tooltip del plugin (t4u-tooltip-wrap) — override color */
.t4u-tt-text {
  background: var(--t4u-tooltip-bg, var(--t4u-principal, #C61217)) !important;
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-xs) !important;
}
.t4u-tt-text::after {
  border-top-color: var(--t4u-tooltip-bg, var(--t4u-principal, #C61217)) !important;
}
.t4u-tt-icon {
  color: var(--t4u-tooltip-bg, var(--t4u-principal, #C61217)) !important;
}


/* ══════════════════════════════════════════════
   17. CUPONES — botones y mensajes
   ══════════════════════════════════════════════ */

.t4u-coupon-input-row {
  display:     flex;
  gap:         6px;
  align-items: center;
  flex-wrap:   wrap;
  margin-top:  6px;
}

.t4u-coupon-input-row input {
  flex:        1;
  min-width:   100px;
  max-width:   200px;
  height:      40px !important;
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-base) !important;
  padding:     0 10px !important;
  border:      1.5px solid #d1d5db !important;
  border-radius: 6px !important;
  box-shadow:  none !important;
}

.t4u-coupon-btn {
  font-family:   var(--t4u-font) !important;
  font-size:     var(--t4u-fs-sm) !important;
  font-weight:   600 !important;
  height:        40px;
  padding:       0 14px;
  border:        none;
  border-radius: 6px;
  background:    var(--t4u-principal, #C61217);
  color:         #fff;
  cursor:        pointer;
  white-space:   nowrap;
  transition:    background .18s;
}
.t4u-coupon-btn:hover { filter: brightness(1.1); }
.t4u-coupon-apply  { background: #16a34a !important; }
.t4u-coupon-reset  { background: #dc2626 !important; }

.t4u-coupon-msg {
  font-family:   var(--t4u-font) !important;
  font-size:     var(--t4u-fs-sm) !important;
  line-height:   1.5;
  padding:       7px 10px;
  border-radius: 6px;
  margin-top:    4px;
}

.t4u-coupon-ok            { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.t4u-coupon-err           { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.t4u-coupon-warn          { background: #fefce8; color: #713f12; border: 1px solid #fde68a; }
.t4u-coupon-discount-line { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.t4u-coupon-applied-msg   { background: #f0fdf4; color: #14532d; border: 1px solid #86efac; font-weight: 600; }
input.t4u-coupon-applied  { background: #f0fdf4 !important; border-color: #86efac !important; }


/* ══════════════════════════════════════════════
   18. BOTÓN SUBMIT
   ══════════════════════════════════════════════ */

.gform_button,
button.gform_button,
input[type="submit"].gform_button {
  font-family:    var(--t4u-font) !important;
  font-size:      var(--t4u-fs-md) !important;
  font-weight:    800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em;
  width:          100% !important;
  height:         60px !important;
  background:     var(--t4u-btn-bg, #616477) !important;
  color:          #fff !important;
  border:         2px solid var(--t4u-btn-bg, #616477) !important;
  border-radius:  10px !important;
  cursor:         pointer;
  transition:     background .2s, border-color .2s !important;
}

.gform_button:hover,
button.gform_button:hover,
input[type="submit"].gform_button:hover {
  background:    var(--t4u-btn-hover, var(--t4u-principal, #C61217)) !important;
  border-color:  var(--t4u-btn-hover, var(--t4u-principal, #C61217)) !important;
}

/* Deshabilitado */
.gform_button:disabled,
input[type="submit"].disabled,
input[type="submit"]:disabled {
  background:    #E8E8E8 !important;
  border-color:  #E8E8E8 !important;
  color:         #aaa !important;
  cursor:        not-allowed;
}


/* ══════════════════════════════════════════════
   19. POLÍTICA DE PRIVACIDAD
   ══════════════════════════════════════════════ */

.gform_wrapper.gravity-theme fieldset.politica-privacidad {
  background:    #E7E8EE !important;
  border-radius: 10px !important;
  padding:       10px 16px !important;
  display:       flex;
  align-items:   center;
}

.gf_stylespro .politica-privacidad.gfsp_o_list .ginput_container label {
  font-size:     var(--t4u-fs-sm) !important;
  border:        0 !important;
  border-radius: 8px !important;
  box-shadow:    none !important;
  background:    transparent !important;
}

.gf_stylespro .politica-privacidad.o-custom-bg input:checked+label::after {
  color: var(--t4u-principal, #C61217) !important;
}

.gf_stylespro .politica-privacidad.o-custom-bg input[type]:checked+label {
  background: var(--t4u-segundo, #292826) !important;
  color:      #fff !important;
}

.gfield_consent_label,
.gfield_consent_label .gform-field-label__text {
  font-size:   var(--t4u-fs-sm) !important;
  font-weight: 600 !important;
  color:       inherit !important;
}


/* ══════════════════════════════════════════════
   20. LIST-TRANSFER (beneficios)
   ══════════════════════════════════════════════ */

.list-transfer {
  --column-num: 3;
  display:               grid;
  grid-template-columns: repeat(var(--column-num), 1fr);
  list-style:            none;
  padding:               0;
  margin:                0;
  gap:                   8px;
}

.list-transfer li {
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-sm) !important;
  font-weight: 700;
  color:       #383838;
  display:     flex;
  align-items: center;
  gap:         10px;
  padding:     8px 0;
}

.list-transfer li img {
  width:    28px;
  height:   28px;
  flex-shrink: 0;
  filter:   invert(12%) sepia(79%) saturate(6385%) hue-rotate(353deg) brightness(83%) contrast(93%);
}

.list-transfer .cssToolTip-3 {
  display: block;
  float:   none;
  margin:  0;
  padding: 0;
}

@media (max-width: 680px) {
  .list-transfer {
    --column-num: 1;
  }
  .list-transfer li { justify-content: flex-start; }
}


/* ══════════════════════════════════════════════
   21. TELÉFONO / EMAIL (bajo demanda)
   ══════════════════════════════════════════════ */

.telefono-email {
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-base) !important;
  font-weight:  700;
  background:   var(--t4u-segundo, #292826);
  color:        #fff;
  padding:      20px;
  border-radius: 14px;
  text-align:   center;
}

.telefono-email a {
  color:           #fff;
  text-decoration: underline;
  font-size:       var(--t4u-fs-md) !important;
}
.telefono-email a:hover { opacity: .8; }


/* ══════════════════════════════════════════════
   22. FAQs
   ══════════════════════════════════════════════ */

.faq-1 {
  display:      flex;
  align-items:  center;
  justify-content: center;
  min-height:   100px;
  padding:      0 20px;
  background:   #E7E8EE;
  border-radius: 10px;
  text-decoration: none;
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-base) !important;
  font-weight:  700;
  color:        var(--t4u-segundo, #292826) !important;
}


/* ══════════════════════════════════════════════
   23. CÓDIGO CLIENTE / DESCUENTO
   ══════════════════════════════════════════════ */

.codigo-cliente-descuento .gchoice {
  margin-bottom: 5px;
}

.codigo-cliente-descuento .gform-field-label {
  font-size: var(--t4u-fs-sm) !important;
}


/* ══════════════════════════════════════════════
   24. FLATPICKR — override colores
   ══════════════════════════════════════════════ */

.flatpickr-calendar {
  font-family:  var(--t4u-font) !important;
  font-size:    var(--t4u-fs-sm) !important;
  border-radius: 12px !important;
  box-shadow:   0 8px 30px rgba(0,0,0,.18) !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background:   var(--t4u-principal, #C61217) !important;
  border-color: var(--t4u-principal, #C61217) !important;
  color:        #fff !important;
}

.flatpickr-day:hover:not(.selected) {
  background: color-mix(in srgb, var(--t4u-principal, #C61217) 12%, white) !important;
}

.flatpickr-months .flatpickr-month,
.flatpickr-weekdays,
.flatpickr-current-month {
  background: var(--t4u-segundo, #292826) !important;
  color:      #fff !important;
  border-radius: 12px 12px 0 0;
}

.flatpickr-current-month input.cur-year,
.flatpickr-current-month .flatpickr-monthDropdown-months {
  color: #fff !important;
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-sm) !important;
}

.flatpickr-weekday {
  color: rgba(255,255,255,.85) !important;
  font-size: var(--t4u-fs-xs) !important;
}

/* Hora */
.flatpickr-time {
  border-top: 1px solid rgba(0,0,0,.1);
}
.flatpickr-time input,
.flatpickr-time .flatpickr-am-pm {
  font-family: var(--t4u-font) !important;
  font-size:   var(--t4u-fs-base) !important;
  font-weight: 600 !important;
}
.flatpickr-time input:focus,
.flatpickr-time .numInputWrapper:hover {
  background: color-mix(in srgb, var(--t4u-principal, #C61217) 8%, white) !important;
}

.flatpickr-prev-month svg,
.flatpickr-next-month svg {
  fill: #fff !important;
}


/* ══════════════════════════════════════════════
   25. PARADA EXTRA
   ══════════════════════════════════════════════ */

.s-parada-extra legend { font-size: var(--t4u-fs-sm) !important; }
.s-parada-extra label  { min-height: 50px; }


/* ══════════════════════════════════════════════
   26. RESPONSIVE — mobile
   ══════════════════════════════════════════════ */

@media (max-width: 768px) {
  .cssToolTip-3 { float: none; margin-top: -28px; }

  .cssToolTip-3 span {
    left:   0;
    right:  auto;
    top:    130%;
    transform: translateX(0) !important;
  }

  .cssToolTip-3 span::after {
    top:          -12px;
    left:         14px;
    border-color: transparent transparent var(--t4u-tooltip-bg, var(--t4u-principal, #C61217)) transparent;
  }

  .ginput_container--name {
    flex-direction: column;
    gap: 8px;
  }
}

@media (max-width: 650px) {
  .wp-call-button {
    display:      inline-block;
    position:     fixed;
    z-index:      999;
    height:       56px;
    background:   var(--t4u-principal, #C61217);
    color:        #fff !important;
    border-radius: 0;
    width:        76%;
    text-align:   center !important;
    font-family:  var(--t4u-font) !important;
    font-size:    var(--t4u-fs-base) !important;
    font-weight:  700 !important;
    padding:      14px;
    bottom:       0;
    left:         0;
    text-decoration: none !important;
    display:      flex;
    align-items:  center;
    justify-content: center;
  }

  div.gf_stylespro_wrapper.gform_wrapper .gfsp_icon {
    padding: 0 10px;
  }
}


/* ══════════════════════════════════════════════
   27. MISCELÁNEA
   ══════════════════════════════════════════════ */

.gfield_required.gfield_required_custom,
.gform_required_legend { display: none !important; }

.spacer.gfield { display: none !important; }

a:active, a:hover { color: var(--t4u-principal, #C61217); }
p a, label a {
  color:       var(--t4u-principal, #C61217) !important;
  font-weight: 600 !important;
}

.intl-tel-input input { height: auto; }
.intl-tel-input .flag-dropdown {
  top:       50%;
  transform: translateY(-50%);
}

/* Ocultar opciones en selects (heredado) */
.ciud-alc option[value="20"],.ciud-alc option[value="40"],.ciud-alc option[value="60"],.ciud-alc option[value="80"],.ciud-alc option[value="100"],
.ciud-mrc option[value="20"],.ciud-mrc option[value="40"],.ciud-mrc option[value="60"],.ciud-mrc option[value="80"],.ciud-mrc option[value="100"],
.ciud-vlc option[value="20"],.ciud-vlc option[value="40"],.ciud-vlc option[value="60"],.ciud-vlc option[value="80"],.ciud-vlc option[value="100"],.ciud-vlc option[value="10"],.ciud-vlc option[value="11"],
.aer option[value="1"],.aer option[value="2"],.aer option[value="3"],.aer option[value="4"],.aer option[value="5"],.aer option[value="6"],.aer option[value="7"],.aer option[value="8"],.aer option[value="9"],.aer option[value="10"],.aer option[value="11"],
.aer-alc option[value="1"],.aer-alc option[value="2"],.aer-alc option[value="3"],.aer-alc option[value="4"],.aer-alc option[value="5"],.aer-alc option[value="6"],.aer-alc option[value="7"],.aer-alc option[value="8"],.aer-alc option[value="9"],.aer-alc option[value="10"],.aer-alc option[value="11"],.aer-alc option[value="60"],.aer-alc option[value="80"],.aer-alc option[value="100"] {
  display: none !important;
}

.gform_ppcp_custom_card_fields { display: none !important; }
.gform_wrapper.gravity-theme .field_description_above .gfield_description { padding: 0; }
.button-disabled { pointer-events: none; }
