/* ========================================
   Gravity Forms + Avada
   Estilos globales reutilizables
======================================== */


/* ========================================
   1. Variables Gravity Forms / Avada
======================================== */

.gform_wrapper.gform-theme,
.gform_confirmation_wrapper.gform-theme {
	--gf-color-primary: var(--primary_color) !important;
	--gf-color-in-ctrl-primary: var(--primary_color) !important;
	--gf-color-primary-darker: var(--primary_color) !important;
	--gf-color-primary-lighter: var(--primary_color) !important;
}

.gform_wrapper.gform-theme--framework {
	--gf-form-gap-y: 12px;
	--gf-field-gap-y: 6px;
	--gf-label-space-y-primary: 8px;
	--gf-label-space-y-secondary: 4px;
	--gf-ctrl-size: 42px;
}


/* ========================================
   2. Base tipografía y colores
======================================== */

.gform_wrapper,
.gform_wrapper input,
.gform_wrapper textarea,
.gform_wrapper select,
.gform_wrapper label,
.gform_wrapper .gfield_description {
	font-family: var(--body_typography-font-family, inherit);
	font-size: var(--body_typography-font-size, inherit);
	font-weight: var(--body_typography-font-weight, inherit);
	font-style: var(--body_typography-font-style, normal);
	letter-spacing: var(--body_typography-letter-spacing, normal);
	line-height: var(--body_typography-line-height, normal);
	color: var(--body_typography-color, inherit);
}


/* ========================================
   3. Labels
======================================== */

.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label {
	font-family: var(--body_typography-font-family, inherit);
	font-size: var(--body_typography-font-size) !important;
	font-weight: 500 !important;
	color: var(--body_typography-color, inherit);
	margin-bottom: 8px !important;
}

/* Sublabels internos: Nombre / Apellidos / etc. */
.gform_wrapper .ginput_complex label,
.gform_wrapper .name_first label,
.gform_wrapper .name_last label {
	font-weight: normal !important;
	margin-top: 4px !important;
}

/* Label del checkbox sin negrita */
.gform_wrapper .gfield_consent_label,
.gform_wrapper .gfield_checkbox label {
	font-weight: normal !important;
}


/* ========================================
   4. Campos formulario
======================================== */

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper textarea,
.gform_wrapper select {
	font-family: var(--body_typography-font-family, inherit);
	font-size: var(--body_typography-font-size, inherit);
	font-weight: var(--body_typography-font-weight, inherit);
	line-height: var(--body_typography-line-height, normal);
	color: var(--body_typography-color, inherit);
	border-style: solid;
	box-sizing: border-box;
	transition:
		border-color .2s ease,
		box-shadow .2s ease,
		background-color .2s ease;
}

/* Campos algo más bajos */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper select {
	min-height: 42px !important;
	height: 42px !important;
	padding-top: 8px !important;
	padding-bottom: 8px !important;
}

/* Textarea */
.gform_wrapper textarea {
	min-height: 100px !important;
	padding-top: 10px !important;
	padding-bottom: 10px !important;
}

/* Focus campos */
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
	border-color: var(--primary_color) !important;
	box-shadow: 0 0 0 1px var(--primary_color) !important;
	outline: none;
}


/* ========================================
   5. Placeholder
======================================== */

.gform_wrapper ::placeholder,
.gform_wrapper.gform-theme input::placeholder,
.gform_wrapper.gform-theme textarea::placeholder {
	color: rgba(0, 0, 0, 0.35) !important;
	opacity: 1 !important;
}

.gform_wrapper.gform-theme input::-webkit-input-placeholder,
.gform_wrapper.gform-theme textarea::-webkit-input-placeholder {
	color: rgba(0, 0, 0, 0.35) !important;
}

.gform_wrapper.gform-theme input::-moz-placeholder,
.gform_wrapper.gform-theme textarea::-moz-placeholder {
	color: rgba(0, 0, 0, 0.35) !important;
	opacity: 1 !important;
}


/* ========================================
   6. Checkbox y radios
======================================== */

.gform_wrapper input[type="checkbox"],
.gform_wrapper input[type="radio"] {
	accent-color: var(--primary_color) !important;
}


/* ========================================
   7. Selects
======================================== */

/* Mejora contraste flecha selects */
.gform_wrapper .gravity-select-parent .select-arrow {
	color: var(--body_typography-color) !important;
	opacity: 1 !important;
}

/* Corrige flecha mal posicionada dentro de modales Avada */
.awb-off-canvas .gform_wrapper .gravity-select-parent,
.fusion-modal .gform_wrapper .gravity-select-parent {
	position: relative;
}

.awb-off-canvas .gform_wrapper .gravity-select-parent select,
.fusion-modal .gform_wrapper .gravity-select-parent select {
	width: 100%;
	padding-right: 48px;
}

.awb-off-canvas .gform_wrapper .gravity-select-parent .select-arrow,
.fusion-modal .gform_wrapper .gravity-select-parent .select-arrow {
	position: absolute !important;
	top: 0;
	right: 0;
	left: auto !important;
	height: 100% !important;
	width: 48px !important;
	line-height: 48px !important;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}


/* ========================================
   8. Botones
   Hereda variables globales de Avada
   con estado normal/hover invertido
======================================== */

.gform_wrapper form,
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
	width: 100% !important;
}

.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
	margin-top: 20px !important;
	padding-top: 0 !important;
}

.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"],
.gform_wrapper button[type="submit"] {
	background: var(--button_gradient_top_color_hover) !important;
	color: var(--button_accent_hover_color) !important;
	border-color: var(--button_border_hover_color) !important;

	border-style: solid !important;
	border-width:
		var(--button_border_width-top)
		var(--button_border_width-right)
		var(--button_border_width-bottom)
		var(--button_border_width-left) !important;

	border-radius:
		var(--button-border-radius-top-left)
		var(--button-border-radius-top-right)
		var(--button-border-radius-bottom-right)
		var(--button-border-radius-bottom-left) !important;

	padding-top: var(--button_padding-top) !important;
	padding-right: var(--button_padding-right) !important;
	padding-bottom: var(--button_padding-bottom) !important;
	padding-left: var(--button_padding-left) !important;

	font-family: var(--button_typography-font-family) !important;
	font-size: var(--button_font_size) !important;
	font-weight: var(--button_typography-font-weight) !important;
	font-style: var(--button_typography-font-style, normal) !important;
	letter-spacing: var(--button_typography-letter-spacing) !important;
	line-height: var(--button_line_height) !important;
	text-transform: var(--button_text_transform) !important;

	display: flex !important;
	justify-content: center !important;
	align-items: center;

	width: 100% !important;
	max-width: none !important;

	cursor: pointer;
	box-sizing: border-box;
	text-decoration: none;

	transition:
		color .2s,
		background-color .2s,
		border-color .2s,
		border-radius .2s,
		box-shadow .2s,
		opacity .2s;
}

/* Hover botones */
.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover,
.gform_wrapper button[type="submit"]:hover {
	background: var(--button_gradient_top_color) !important;
	color: var(--button_accent_color) !important;
	border-color: var(--button_border_color) !important;
}

/* Eliminar outline azul navegador */
.gform_wrapper .gform_button:focus,
.gform_wrapper input[type="submit"]:focus,
.gform_wrapper button[type="submit"]:focus {
	outline: none;
}


/* ========================================
   9. Espaciado general
======================================== */

.gform_wrapper .gfield {
	margin-bottom: 12px !important;
}


/* ========================================
   10. Errores y leyendas
======================================== */

/* Ocultar resumen general de errores porque ya mostramos errores por campo */
.gform_wrapper .gform_validation_errors {
	display: none !important;
}

/* Ocultar leyenda de campos obligatorios */
.gform_wrapper .gform_required_legend {
	display: none !important;
}


/* ========================================
   11. Texto legal / consentimiento
======================================== */

.gform_wrapper .gfield_consent_description {
	font-size: calc(var(--body_typography-font-size) - 4px) !important;
	line-height: 1.5;
	border-radius: 3px;
}

/* Enlaces subrayados en consentimiento */
.gform_wrapper .gfield_consent_label a,
.gform_wrapper .gfield_checkbox label a {
	text-decoration: underline;
}


/* ========================================
   12. Enlaces
======================================== */

.gform_wrapper a:hover {
	color: var(--primary_color) !important;
}


/* ========================================
   13. Mensaje de confirmación
======================================== */

.gform_confirmation_wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	min-height: 300px;
}

.gform_confirmation_message {
	text-align: center;
	max-width: 700px;
	margin: 0 auto;
}

/* ========================================
   Ajustes para Gravity Forms 3 (21/10/2026)
   Recuperan el aspecto que tenían con la 2.10
======================================== */

/* Textos de ejemplo al tamaño del texto general de la web */
.gform_wrapper ::placeholder,
.gform_wrapper.gform-theme input::placeholder,
.gform_wrapper.gform-theme textarea::placeholder {
  font-size: var(--body_typography-font-size, 16px) !important;
}

/* Asterisco de la casilla de consentimiento pegado al texto.
   GF 3 separa el asterisco con padding-inline-end en el texto de la etiqueta. */
.gform_wrapper .gfield_consent_label {
  --gf-label-req-gap: 0;
}

.gform_wrapper .gfield_consent_label .gform-field-label__text {
  padding-inline-end: 0 !important;
  padding-right: 0 !important;
}