.th-modal-content{
	border:1px solid var(--th-border-glass);
	border-radius:32px;
	background:
		radial-gradient(circle at top left, var(--th-radial-primary), transparent 34%),
		radial-gradient(circle at bottom right, var(--th-radial-secondary), transparent 40%),
		var(--th-card-bg);
	box-shadow:0 32px 100px var(--th-shadow-card);
	backdrop-filter:blur(18px);
	-webkit-backdrop-filter:blur(18px);
	overflow:hidden;
	color:var(--th-color-text-main);
}

.th-modal-content::before{
	content:'';

	position:absolute;

	top:0;
	left:0;

	width:100%;
	height:1px;

	background:
		var(--th-gradient-line);

	opacity:.42;

	z-index:2;
}

.th-modal-content::after{
	content:'';

	position:absolute;

	top:-38%;
	left:-95%;

	width:62%;
	height:220%;

	background:
		linear-gradient(
			118deg,
			transparent 0%,
			rgba(255,255,255,0.00) 18%,
			rgba(255,255,255,0.38) 36%,
			rgba(255,255,255,0.90) 50%,
			rgba(255,255,255,0.44) 64%,
			rgba(255,255,255,0.00) 84%,
			transparent 100%
		);

	mix-blend-mode:screen;

	transform:rotate(16deg);

	animation:
		thModalFlash 4.4s cubic-bezier(.22,.61,.36,1) infinite;

	pointer-events:none;

	z-index:1;

	filter:blur(1px);
}

[data-theme="dark"] .th-modal-content::after{

	background:
		linear-gradient(
			118deg,
			transparent 0%,
			rgba(34,211,238,0.00) 18%,
			rgba(34,211,238,0.16) 36%,
			rgba(255,255,255,0.22) 50%,
			rgba(34,211,238,0.12) 64%,
			rgba(34,211,238,0.00) 84%,
			transparent 100%
		);

	filter:blur(1.2px);
}

.th-modal-header{
	position:relative;

	padding:
		30px 90px 24px 34px;

	border-bottom:
		1px solid var(--th-border-base);
}

.th-modal-badge{
	display:inline-flex;
	align-items:center;
	gap:8px;
	margin-bottom:12px;
	padding:8px 13px;
	border-radius:999px;
	background:var(--th-badge-bg);
	border:1px solid var(--th-badge-border);
	color:var(--th-badge-text);
	font-size:.82rem;
	font-weight:900;
}

.th-modal-title{
	margin:0;
	color:var(--th-color-text-main);
	font-size:1.65rem;
	font-weight:900;
	letter-spacing:-.04em;
}

.th-modal-subtitle{
	margin:8px 0 0;
	max-width:620px;
	color:var(--th-color-text-soft);
	font-size:.96rem;
	line-height:1.6;
}

.th-modal-close{
	position:absolute;

	top:24px;
	right:24px;

	width:44px;
	height:44px;

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

	border:none;
	border-radius:16px;

	background:var(--th-icon-soft-bg);

	color:var(--th-color-text-main);

	transition:
		transform .22s ease,
		background .22s ease,
		color .22s ease,
		box-shadow .22s ease;

	z-index:5;
}

.th-modal-close:hover{
	transform:
		translateY(-2px)
		scale(1.04);

	background:
		rgba(239,68,68,.12);

	color:
		#dc2626;

	box-shadow:
		0 10px 24px rgba(239,68,68,.18);
}

.th-modal-body{
	padding:32px 34px;
}

.th-modal-footer{
	padding:22px 34px 30px;
	border-top:1px solid var(--th-border-base);
	gap:12px;
}

.th-modal-section-title{
	display:flex;
	align-items:center;
	gap:10px;
	margin:0 0 18px;
	color:var(--th-color-text-main);
	font-size:1rem;
	font-weight:900;
}

.th-modal-section-title i{
	width:34px;
	height:34px;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:13px;
	background:var(--th-gradient-cta);
	color:var(--th-color-white);
	box-shadow:0 12px 28px var(--th-glow-indigo);
}

.th-modal-divider{
	height:1px;
	margin:28px 0;
	background:var(--th-gradient-line);
	opacity:.45;
}

.th-modal-header,
.th-modal-body,
.th-modal-footer{
	position:relative;
	z-index:3;
}

@media (max-width: 768px){

	.th-modal-header{
		padding:
			26px 74px 22px 24px;
	}

	.th-modal-body{
		padding:24px;
	}

	.th-modal-footer{
		padding:20px 24px 26px;
	}

	.th-modal-title{
		font-size:1.38rem;
	}

	.th-modal-close{
		top:18px;
		right:18px;
		width:40px;
		height:40px;
		border-radius:14px;
	}
}

@keyframes thModalFlash{

	0%{
		left:-95%;
		opacity:0;
	}

	10%{
		opacity:1;
	}

	42%{
		left:138%;
		opacity:1;
	}

	100%{
		left:138%;
		opacity:0;
	}
}

/* =========================================================
	TALENTHUB MODALS - RESPONSIVE FIX
========================================================= */

.th-modal .modal-dialog{
	width:calc(100% - 32px);
	max-width:1180px;
	margin:16px auto;
}

.th-modal .modal-dialog-scrollable{
	height:auto;
	max-height:calc(100dvh - 32px);
}

.th-modal .modal-dialog-scrollable .modal-content{
	max-height:calc(100dvh - 32px);
}

.th-modal-content{
	position:relative;
	display:flex;
	flex-direction:column;
	max-height:calc(100dvh - 32px);
}

.th-modal-header{
	flex:0 0 auto;
}

.th-modal-body{
	flex:1 1 auto;
	overflow-y:auto;
	overflow-x:hidden;
	-webkit-overflow-scrolling:touch;
}

.th-modal-footer{
	flex:0 0 auto;
	display:flex;
	justify-content:flex-end;
	align-items:center;
	flex-wrap:wrap;
}

@media (max-width: 992px){

	.th-modal .modal-dialog{
		width:calc(100% - 24px);
		margin:12px auto;
	}

	.th-modal-content{
		border-radius:26px;
		max-height:calc(100dvh - 24px);
	}

	.th-modal .modal-dialog-scrollable .modal-content{
		max-height:calc(100dvh - 24px);
	}
}

@media (max-width: 576px) and (orientation: portrait){

	body.modal-open{
		padding-right:0 !important;
	}

	.th-modal .modal-dialog{
		width:calc(100% - 20px);
		max-width:100%;
		margin:10px auto;
		min-height:auto;
	}

	.th-modal .modal-dialog-scrollable{
		max-height:calc(100dvh - 20px);
	}

	.th-modal .modal-dialog-scrollable .modal-content,
	.th-modal-content{
		max-height:calc(100dvh - 20px);
		min-height:auto;
		border-radius:24px;
		border-left:1px solid var(--th-border-glass);
		border-right:1px solid var(--th-border-glass);
	}

	.th-modal-header{
		padding:20px 62px 16px 20px;
	}

	.th-modal-badge{
		margin-bottom:8px;
		padding:6px 11px;
		font-size:.76rem;
	}

	.th-modal-title{
		font-size:1.22rem;
		line-height:1.18;
	}

	.th-modal-subtitle{
		margin-top:5px;
		font-size:.84rem;
		line-height:1.4;
	}

	.th-modal-body{
		padding:18px 20px;
	}

	.th-modal-footer{
		padding:16px 20px 18px;
		flex-direction:column-reverse;
		align-items:stretch;
		gap:10px;
	}

	.th-modal-footer .th-btn{
		width:100%;
		min-height:44px;
		padding:11px 18px;
		border-radius:16px;
		font-size:.9rem;
		justify-content:center;
	}

	.th-modal-close{
		top:16px;
		right:16px;
		width:36px;
		height:36px;
		border-radius:13px;
	}
}

@media (max-width: 390px) and (orientation: portrait){

	.th-modal .modal-dialog{
		width:100%;
		margin:0;
	}

	.th-modal .modal-dialog-scrollable,
	.th-modal .modal-dialog-scrollable .modal-content,
	.th-modal-content{
		max-height:100dvh;
		min-height:100dvh;
		border-radius:0;
	}
}

@media (max-width: 380px){

	.th-modal-header{
		padding:20px 58px 16px 16px;
	}

	.th-modal-body{
		padding:20px 16px;
	}

	.th-modal-footer{
		padding:16px;
	}

	.th-modal-title{
		font-size:1.18rem;
	}

	.th-modal-badge{
		font-size:.76rem;
		padding:7px 11px;
	}
}

/* =========================================================
	MODAL EN CELULAR HORIZONTAL / PANTALLAS BAJAS
========================================================= */

@media (max-height: 520px) and (orientation: landscape){

	.th-modal .modal-dialog{
		width:calc(100% - 20px);
		max-width:100%;
		margin:10px auto;
	}

	.th-modal-content,
	.th-modal .modal-dialog-scrollable .modal-content{
		max-height:calc(100dvh - 20px);
		border-radius:22px;
	}

	.th-modal-header{
		padding:14px 58px 12px 20px;
	}

	.th-modal-badge{
		margin-bottom:6px;
		padding:5px 10px;
		font-size:.72rem;
	}

	.th-modal-title{
		font-size:1.12rem;
		line-height:1.15;
		letter-spacing:-.03em;
	}

	.th-modal-subtitle{
		margin-top:4px;
		font-size:.78rem;
		line-height:1.35;
	}

	.th-modal-close{
		top:12px;
		right:14px;
		width:34px;
		height:34px;
		border-radius:12px;
	}

	.th-modal-body{
		padding:14px 20px;
	}

	.th-modal-footer{
		padding:12px 20px 14px;
		gap:10px;
		flex-direction:row;
		justify-content:flex-end;
	}

	.th-modal-footer .th-btn{
		width:auto;
		min-height:40px;
		padding:10px 18px;
		border-radius:16px;
		font-size:.86rem;
	}

	.th-modal-footer .th-btn i{
		font-size:.95rem;
	}

	.th-label{
		margin-bottom:6px;
		font-size:.8rem;
	}

	.th-input{
		min-height:42px;
		padding-top:9px;
		padding-bottom:9px;
		font-size:.86rem;
		border-radius:14px;
	}

	.th-input-icon{
		font-size:.95rem;
	}
}