/* ==========================================================================
   HEC Sección de Suscripción — Home
   Paleta: primario #D90429 · ámbar #f59e0b · navy #06091a → #192038
   v1.0.0
   ========================================================================== */

/* ── Variables locales ── */
.hec-subscribe {
	--hs-red:    #D90429;
	--hs-red-dk: #9f0218;
	--hs-amber:  #f59e0b;
	--hs-navy:   #06091a;
	--hs-mid:    #111827;
	--hs-end:    #192038;
	--hs-text:   rgba(255,255,255,.62);
	--hs-text-h: rgba(255,255,255,.92);
	--hs-border: rgba(255,255,255,.09);
}

/* ── 1. SECCIÓN RAÍZ ── */
.hec-subscribe {
	position:   relative;
	overflow:   hidden;
	padding:    88px 0;
	background:
		radial-gradient(ellipse 70% 60% at 8%   50%,  rgba(217,4,41,.13)   0%, transparent 60%),
		radial-gradient(ellipse 55% 40% at 92%  55%,  rgba(245,158,11,.1)  0%, transparent 58%),
		radial-gradient(ellipse 80% 40% at 50%  100%, rgba(217,4,41,.06)   0%, transparent 55%),
		linear-gradient(158deg,
			#060918  0%,
			#0d1525 28%,
			#111827 55%,
			#192038 80%,
			#1c2245 100%
		);
}

/* ── Borde superior animado (idéntico al footer) ── */
.hec-subscribe__top-border {
	position:        absolute;
	top:             0; left: 0; right: 0;
	height:          4px;
	background:      linear-gradient(90deg, #6e0114 0%, #D90429 20%, #f59e0b 50%, #D90429 80%, #6e0114 100%);
	background-size: 200% 100%;
	animation:       hs-border-move 5s linear infinite;
	box-shadow:      0 2px 12px rgba(217,4,41,.4);
}
.hec-subscribe__bottom-border {
	position:        absolute;
	bottom:          0; left: 0; right: 0;
	height:          2px;
	background:      linear-gradient(90deg, transparent 0%, rgba(245,158,11,.3) 40%, rgba(217,4,41,.3) 70%, transparent 100%);
}
@keyframes hs-border-move {
	0%   { background-position: 0%   100%; }
	100% { background-position: 200% 100%; }
}

/* ── Decoraciones de fondo ── */
.hec-subscribe__deco {
	position:       absolute;
	border-radius:  50%;
	pointer-events: none;
	z-index:        0;
}
.hec-subscribe__deco--left {
	top:        -160px;
	left:       -130px;
	width:      500px;
	height:     500px;
	background: radial-gradient(circle, rgba(217,4,41,.14) 0%, transparent 65%);
}
.hec-subscribe__deco--right {
	bottom:     -170px;
	right:      -100px;
	width:      520px;
	height:     520px;
	background: radial-gradient(circle, rgba(245,158,11,.11) 0%, transparent 65%);
}
.hec-subscribe__deco--gear {
	top:      50%;
	right:    42%;
	width:    320px;
	height:   320px;
	transform: translateY(-50%);
	background: radial-gradient(circle, rgba(255,255,255,.015) 0%, transparent 60%);
}

/* ── 2. CONTAINER GRID ── */
.hec-subscribe__container {
	position:              relative;
	z-index:               1;
	max-width:             1400px;
	margin:                0 auto;
	padding:               0 28px;
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   72px;
	align-items:           center;
}

/* ── 3. COLUMNA IZQUIERDA ── */
.hec-subscribe__content { max-width: 560px; }

/* Badge */
.hec-subscribe__badge {
	display:         inline-flex;
	align-items:     center;
	gap:             7px;
	background:      rgba(217,4,41,.14);
	border:          1px solid rgba(217,4,41,.32);
	color:           #f87171;
	font-size:       11px;
	font-weight:     700;
	letter-spacing:  1.7px;
	text-transform:  uppercase;
	padding:         6px 16px;
	border-radius:   20px;
	margin-bottom:   24px;
}

/* Título */
.hec-subscribe__title {
	font-size:      clamp(30px, 4vw, 50px);
	font-weight:    900;
	line-height:    1.08;
	color:          var(--hs-text-h);
	margin:         0 0 20px;
	letter-spacing: -.6px;
}
.hec-subscribe__title-highlight {
	display:                   block;
	background:                linear-gradient(100deg, #D90429 0%, #f59e0b 70%);
	-webkit-background-clip:   text;
	background-clip:           text;
	-webkit-text-fill-color:   transparent;
}

/* Descripción */
.hec-subscribe__desc {
	font-size:    15px;
	line-height:  1.7;
	color:        var(--hs-text);
	margin:       0 0 34px;
	max-width:    480px;
}

/* ── Lista de beneficios ── */
.hec-subscribe__benefits {
	list-style:    none;
	margin:        0 0 36px;
	padding:       0;
	display:       flex;
	flex-direction: column;
	gap:           18px;
}
.hec-subscribe__benefit {
	display:     flex;
	align-items: flex-start;
	gap:         14px;
}
.hec-subscribe__benefit-icon {
	flex-shrink:     0;
	width:           36px;
	height:          36px;
	border-radius:   9px;
	background:      rgba(217,4,41,.13);
	border:          1px solid rgba(217,4,41,.22);
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           #f87171;
	margin-top:      1px;
	transition:      background .2s, border-color .2s;
}
.hec-subscribe__benefit-icon--amber {
	background:   rgba(245,158,11,.11);
	border-color: rgba(245,158,11,.24);
	color:        #fbbf24;
}
.hec-subscribe__benefit:hover .hec-subscribe__benefit-icon {
	background:   rgba(217,4,41,.22);
	border-color: rgba(217,4,41,.4);
}
.hec-subscribe__benefit:hover .hec-subscribe__benefit-icon--amber {
	background:   rgba(245,158,11,.2);
	border-color: rgba(245,158,11,.42);
}
.hec-subscribe__benefit div {
	display:        flex;
	flex-direction: column;
	gap:            3px;
}
.hec-subscribe__benefit strong {
	font-size:   14px;
	font-weight: 700;
	color:       var(--hs-text-h);
	line-height: 1.3;
}
.hec-subscribe__benefit span {
	font-size:  13px;
	color:      var(--hs-text);
	line-height: 1.45;
}

/* ── Sello de confianza ── */
.hec-subscribe__trust {
	display:     flex;
	align-items: center;
	gap:         14px;
}
.hec-subscribe__trust-avatars {
	display:  flex;
	flex-direction: row-reverse;
}
.hec-subscribe__trust-avatar {
	width:         34px;
	height:        34px;
	border-radius: 50%;
	border:        2px solid rgba(10,15,40,.8);
	font-size:     13px;
	font-weight:   800;
	color:         #fff;
	display:       flex;
	align-items:   center;
	justify-content: center;
	margin-left:   -10px;
}
.hec-subscribe__trust-avatars .hec-subscribe__trust-avatar:last-child { margin-left: 0; }
.hec-subscribe__trust p {
	font-size:  13px;
	color:      var(--hs-text);
	margin:     0;
	line-height: 1.45;
}
.hec-subscribe__trust strong {
	color:       var(--hs-text-h);
	font-weight: 700;
}

/* ── 4. COLUMNA DERECHA: Tarjeta formulario ── */
.hec-subscribe__form-card {
	background:    rgba(255,255,255,.04);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border:        1px solid var(--hs-border);
	border-radius: 22px;
	padding:       42px;
	box-shadow:
		0 28px 90px rgba(0,0,0,.38),
		inset 0 1px 0 rgba(255,255,255,.08),
		inset 0 -1px 0 rgba(0,0,0,.25);
}

.hec-subscribe__form-card-header {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	margin-bottom:   28px;
	padding-bottom:  22px;
	border-bottom:   1px solid var(--hs-border);
}
.hec-subscribe__form-card-title {
	display:     flex;
	align-items: center;
	gap:         9px;
	font-size:   11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color:       rgba(255,255,255,.4);
}
.hec-subscribe__form-card-dot {
	width:         8px;
	height:        8px;
	border-radius: 50%;
	background:    var(--hs-red);
	box-shadow:    0 0 8px rgba(217,4,41,.7);
	animation:     hs-dot-pulse 2s ease-in-out infinite;
	flex-shrink:   0;
}
@keyframes hs-dot-pulse {
	0%, 100% { box-shadow: 0 0 6px rgba(217,4,41,.6); }
	50%       { box-shadow: 0 0 14px rgba(217,4,41,.9); }
}
.hec-subscribe__form-card-stat { text-align: right; }
.hec-subscribe__form-card-stat strong {
	display:     block;
	font-size:   22px;
	font-weight: 900;
	color:       #fbbf24;
	line-height: 1;
}
.hec-subscribe__form-card-stat span {
	font-size:  11px;
	color:      rgba(255,255,255,.38);
	line-height: 1.5;
}

/* ── Formulario ── */
.hec-subscribe__form {
	display:        flex;
	flex-direction: column;
	gap:            16px;
}

.hec-subscribe__field { display: flex; flex-direction: column; gap: 7px; }

.hec-subscribe__field-label {
	font-size:      12px;
	font-weight:    600;
	letter-spacing: .5px;
	color:          rgba(255,255,255,.5);
}
.hec-subscribe__required { color: var(--hs-red); }

.hec-subscribe__field-inner { position: relative; }

.hec-subscribe__field-icon {
	position:  absolute;
	left:      15px;
	top:       50%;
	transform: translateY(-50%);
	color:     rgba(255,255,255,.3);
	pointer-events: none;
	display:   flex;
	transition: color .2s;
}
.hec-subscribe__field-inner:focus-within .hec-subscribe__field-icon {
	color: rgba(217,4,41,.7);
}

.hec-subscribe__field input {
	width:       100%;
	height:      50px;
	background:  rgba(255,255,255,.055);
	border:      1.5px solid rgba(255,255,255,.1);
	border-radius: 11px;
	color:       rgba(255,255,255,.9);
	font-size:   14px;
	padding:     0 16px 0 44px;
	outline:     none;
	transition:  border-color .2s, background .2s, box-shadow .2s;
	box-sizing:  border-box;
}
.hec-subscribe__field input::placeholder { color: rgba(255,255,255,.25); }
.hec-subscribe__field input:focus {
	border-color: rgba(217,4,41,.55);
	background:   rgba(255,255,255,.075);
	box-shadow:   0 0 0 3px rgba(217,4,41,.14);
}
.hec-subscribe__field input.is-invalid {
	border-color: rgba(217,4,41,.7);
	box-shadow:   0 0 0 3px rgba(217,4,41,.18);
}

.hec-subscribe__field-error {
	font-size: 12px;
	color:     #f87171;
	margin:    0;
}

/* ── Botón de envío ── */
.hec-subscribe__btn {
	position:        relative;
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             10px;
	width:           100%;
	height:          54px;
	background:      linear-gradient(135deg, #D90429 0%, var(--hs-red-dk) 100%);
	border:          none;
	border-radius:   11px;
	color:           #fff;
	font-size:       15px;
	font-weight:     700;
	letter-spacing:  .3px;
	cursor:          pointer;
	transition:      transform .2s, box-shadow .2s;
	box-shadow:      0 6px 22px rgba(217,4,41,.38);
	overflow:        hidden;
	margin-top:      4px;
}
.hec-subscribe__btn::before {
	content:    '';
	position:   absolute;
	inset:      0;
	background: linear-gradient(135deg, #f0042d 0%, #D90429 100%);
	opacity:    0;
	transition: opacity .2s;
}
.hec-subscribe__btn:hover:not(:disabled) {
	transform:  translateY(-2px);
	box-shadow: 0 12px 30px rgba(217,4,41,.48);
}
.hec-subscribe__btn:hover:not(:disabled)::before { opacity: 1; }
.hec-subscribe__btn:active:not(:disabled) { transform: translateY(0); }

.hec-subscribe__btn-text,
.hec-subscribe__btn-arrow {
	position:   relative;
	z-index:    1;
	transition: opacity .15s;
}
.hec-subscribe__btn-arrow { transition: transform .2s, opacity .15s; }
.hec-subscribe__btn:hover .hec-subscribe__btn-arrow { transform: translateX(4px); }

.hec-subscribe__btn-spinner {
	display:       none;
	position:      absolute;
	width:         20px;
	height:        20px;
	border:        2.5px solid rgba(255,255,255,.25);
	border-top-color: #fff;
	border-radius: 50%;
	animation:     hs-spin .7s linear infinite;
}
@keyframes hs-spin { to { transform: rotate(360deg); } }

.hec-subscribe__btn.is-loading .hec-subscribe__btn-text,
.hec-subscribe__btn.is-loading .hec-subscribe__btn-arrow  { opacity: 0; }
.hec-subscribe__btn.is-loading .hec-subscribe__btn-spinner { display: block; }
.hec-subscribe__btn:disabled { cursor: not-allowed; opacity: .75; }

/* Texto privacidad */
.hec-subscribe__privacy {
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             6px;
	font-size:       12px;
	color:           rgba(255,255,255,.32);
	margin:          2px 0 0;
	line-height:     1.4;
}

/* ── 5. ESTADO ÉXITO ── */
.hec-subscribe__success {
	text-align: center;
	padding:    10px 0 4px;
}
.hec-subscribe__success-icon {
	width:         70px;
	height:        70px;
	border-radius: 50%;
	background:    rgba(34,197,94,.13);
	border:        2px solid rgba(34,197,94,.28);
	display:       flex;
	align-items:   center;
	justify-content: center;
	margin:        0 auto 20px;
	color:         #4ade80;
	animation:     hs-pop .45s cubic-bezier(.34,1.56,.64,1) forwards;
}
@keyframes hs-pop {
	from { transform: scale(.4); opacity: 0; }
	to   { transform: scale(1);  opacity: 1; }
}
.hec-subscribe__success-title {
	font-size:   22px;
	font-weight: 800;
	color:       rgba(255,255,255,.95);
	margin:      0 0 10px;
}
.hec-subscribe__success-desc {
	font-size:   14px;
	color:       var(--hs-text);
	line-height: 1.65;
	margin:      0 0 22px;
}
.hec-subscribe__success-link {
	display:         inline-flex;
	align-items:     center;
	gap:             7px;
	background:      rgba(217,4,41,.15);
	border:          1px solid rgba(217,4,41,.3);
	color:           #f87171;
	font-size:       13px;
	font-weight:     700;
	padding:         9px 20px;
	border-radius:   8px;
	text-decoration: none;
	transition:      background .2s, border-color .2s;
}
.hec-subscribe__success-link:hover {
	background:   rgba(217,4,41,.25);
	border-color: rgba(217,4,41,.5);
	color:        #f87171;
	text-decoration: none;
}

/* ── 6. ESTADO YA SUSCRITO ── */
.hec-subscribe__already {
	display:     flex;
	align-items: center;
	gap:         14px;
	background:  rgba(245,158,11,.08);
	border:      1px solid rgba(245,158,11,.22);
	border-radius: 12px;
	padding:     18px 20px;
}
.hec-subscribe__already-icon { color: #fbbf24; flex-shrink: 0; }
.hec-subscribe__already p {
	font-size:   14px;
	color:       rgba(255,255,255,.7);
	margin:      0;
	line-height: 1.5;
}

/* ── 7. ELEMENTOR PRO FORM — override visual para fondo oscuro ── */

/* Quitar padding extra que Elementor añade al template embed */
.hec-subscribe__elementor-form .elementor { padding: 0 !important; }
.hec-subscribe__elementor-form .elementor-section,
.hec-subscribe__elementor-form .e-con { padding: 0 !important; margin: 0 !important; }
.hec-subscribe__elementor-form .elementor-widget-wrap { padding: 0 !important; }

/* Labels */
.hec-subscribe__form-card .elementor-field-label,
.hec-subscribe__form-card label {
	font-size:      12px !important;
	font-weight:    600 !important;
	letter-spacing: .5px !important;
	color:          rgba(255,255,255,.5) !important;
	margin-bottom:  7px !important;
}

/* Inputs y textarea */
.hec-subscribe__form-card .elementor-field-textual,
.hec-subscribe__form-card .elementor-field-type-email input,
.hec-subscribe__form-card .elementor-field-type-text  input,
.hec-subscribe__form-card input[type="email"],
.hec-subscribe__form-card input[type="text"] {
	height:        50px !important;
	background:    rgba(255,255,255,.055) !important;
	border:        1.5px solid rgba(255,255,255,.1) !important;
	border-radius: 11px !important;
	color:         rgba(255,255,255,.9) !important;
	font-size:     14px !important;
	padding:       0 16px !important;
	outline:       none !important;
	box-shadow:    none !important;
	transition:    border-color .2s, background .2s, box-shadow .2s !important;
}
.hec-subscribe__form-card .elementor-field-textual::placeholder,
.hec-subscribe__form-card input::placeholder {
	color: rgba(255,255,255,.25) !important;
}
.hec-subscribe__form-card .elementor-field-textual:focus,
.hec-subscribe__form-card input:focus {
	border-color: rgba(217,4,41,.55) !important;
	background:   rgba(255,255,255,.08) !important;
	box-shadow:   0 0 0 3px rgba(217,4,41,.14) !important;
}

/* Grupo de campo */
.hec-subscribe__form-card .elementor-field-group {
	margin-bottom: 16px !important;
}

/* Botón submit */
.hec-subscribe__form-card .elementor-button-wrapper { width: 100% !important; }
.hec-subscribe__form-card .elementor-button,
.hec-subscribe__form-card .elementor-button[type="submit"] {
	width:           100% !important;
	height:          54px !important;
	background:      linear-gradient(135deg, #D90429 0%, #9f0218 100%) !important;
	border:          none !important;
	border-radius:   11px !important;
	color:           #fff !important;
	font-size:       15px !important;
	font-weight:     700 !important;
	letter-spacing:  .3px !important;
	cursor:          pointer !important;
	box-shadow:      0 6px 22px rgba(217,4,41,.38) !important;
	transition:      transform .2s, box-shadow .2s !important;
}
.hec-subscribe__form-card .elementor-button:hover {
	transform:  translateY(-2px) !important;
	box-shadow: 0 12px 30px rgba(217,4,41,.48) !important;
}

/* Mensaje de éxito / error de Elementor */
.hec-subscribe__form-card .elementor-message {
	border-radius: 10px !important;
	font-size:     13px !important;
	padding:       12px 16px !important;
}
.hec-subscribe__form-card .elementor-message-success {
	background: rgba(34,197,94,.12) !important;
	border:     1px solid rgba(34,197,94,.28) !important;
	color:      #4ade80 !important;
}
.hec-subscribe__form-card .elementor-message-danger,
.hec-subscribe__form-card .elementor-message-error {
	background: rgba(217,4,41,.12) !important;
	border:     1px solid rgba(217,4,41,.28) !important;
	color:      #f87171 !important;
}

/* ── 8. ANIMACIONES DE ENTRADA ── */
[data-hec-animate] {
	opacity:    0;
	transition: opacity .55s ease, transform .55s ease;
}
[data-hec-animate="fade-right"] { transform: translateX(-30px); }
[data-hec-animate="fade-left"]  { transform: translateX(30px);  }
[data-hec-animate].is-visible {
	opacity:   1;
	transform: translateX(0);
}

/* ── 8. RESPONSIVE ── */
@media (max-width: 1024px) {
	.hec-subscribe__container {
		gap: 48px;
	}
	.hec-subscribe__form-card {
		padding: 34px 30px;
	}
}

@media (max-width: 820px) {
	.hec-subscribe {
		padding: 70px 0;
	}
	.hec-subscribe__container {
		grid-template-columns: 1fr;
		gap:                   44px;
	}
	.hec-subscribe__content {
		max-width:   100%;
		text-align:  center;
	}
	.hec-subscribe__title-highlight {
		display: inline;
	}
	.hec-subscribe__desc {
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	.hec-subscribe__benefits {
		text-align: left;
		max-width:  480px;
		margin-left: auto;
		margin-right: auto;
	}
	.hec-subscribe__trust {
		justify-content: center;
	}
	.hec-subscribe__badge {
		display: inline-flex;
	}
	[data-hec-animate="fade-right"],
	[data-hec-animate="fade-left"] { transform: translateY(20px); }
}

@media (max-width: 480px) {
	.hec-subscribe { padding: 56px 0; }
	.hec-subscribe__container { padding: 0 18px; }
	.hec-subscribe__form-card {
		padding:       26px 18px;
		border-radius: 16px;
	}
	.hec-subscribe__btn { height: 50px; font-size: 14px; }
}
