/**
 * SEI Integra — Hero moderno full-screen (imagen realista + tipografía grande)
 */

:root {
	--sei-hero-bg: #050505;
}

/* --------------------------------------------------------------------------
   Full-screen — centrado vertical, alineado a la izquierda
   -------------------------------------------------------------------------- */
.elementor-105 .elementor-element.elementor-element-68084794.sei-hero {
	--flex-direction: row !important;
	--justify-content: flex-start !important;
	--align-items: center !important;
	position: relative;
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	min-height: 100svh !important;
	min-height: 100dvh !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: var(--sei-hero-bg) !important;
	isolation: isolate;
}

/* --------------------------------------------------------------------------
   Fondo cinematográfico
   -------------------------------------------------------------------------- */
.sei-hero .sei-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	background: var(--sei-hero-bg);
	will-change: transform;
}

.sei-hero .sei-hero__fallback {
	position: absolute;
	inset: 0;
	background-color: var(--sei-hero-bg);
	/*
	 * Imagen ultrawide (≈21:9): cover recorta laterales, no techo/suelo.
	 * Así se ven proyector + sofá en viewports anchos de desktop.
	 */
	background-size: cover;
	background-position: right center;
	background-repeat: no-repeat;
	opacity: 1;
	pointer-events: none;
	will-change: transform;
	transform: none;
	animation: sei-hero-kenburns 36s ease-in-out infinite alternate;
}

@keyframes sei-hero-kenburns {
	from {
		transform: scale(1) translate3d(0, 0, 0);
	}
	to {
		transform: scale(1.03) translate3d(-0.5%, 0, 0);
	}
}

.sei-hero .sei-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		radial-gradient(ellipse 50% 45% at 70% 40%, rgba(255, 200, 140, 0.08) 0%, transparent 65%),
		rgba(0, 0, 0, 0.18);
	pointer-events: none;
	animation: sei-hero-ambient 8s ease-in-out infinite alternate;
}

@keyframes sei-hero-ambient {
	from {
		opacity: 0.85;
	}
	to {
		opacity: 1;
	}
}

.sei-hero .sei-hero__glow {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse 28% 22% at 68% 38%, rgba(255, 230, 190, 0.14) 0%, transparent 72%);
	mix-blend-mode: soft-light;
	opacity: 0.65;
	animation: sei-hero-glow 5.5s ease-in-out infinite alternate;
}

@keyframes sei-hero-glow {
	from {
		opacity: 0.45;
		transform: scale(1);
	}
	to {
		opacity: 0.85;
		transform: scale(1.04);
	}
}

.sei-hero .sei-hero__vignette {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.58) 30%, rgba(0, 0, 0, 0.22) 52%, rgba(0, 0, 0, 0.06) 70%, transparent 84%),
		linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, transparent 20%),
		linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, transparent 32%);
}

.sei-hero .sei-hero__grain {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	opacity: 0.04;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.elementor-105 .elementor-element-68084794.sei-hero::before,
.elementor-105 .elementor-element-68084794.sei-hero::after {
	display: none !important;
	content: none !important;
}

.sei-hero .elementor-element-f5dfd8b,
.sei-hero .elementor-element-2e600ee9 {
	position: absolute !important;
	left: -9999px !important;
	top: 0 !important;
	width: 1px !important;
	height: 1px !important;
	max-width: 1px !important;
	max-height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	border: 0 !important;
}

/* --------------------------------------------------------------------------
   Contenido — bloque completo visible sin scroll (bajo el header)
   -------------------------------------------------------------------------- */
.sei-hero .sei-hero__content {
	position: absolute;
	left: 0;
	right: auto;
	top: 0;
	bottom: 0;
	transform: none;
	z-index: 10;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	max-width: min(94%, 52rem);
	padding:
		calc(var(--sei-header-h, 74px) + 1rem)
		clamp(1.5rem, 5vw, 5rem)
		clamp(1.5rem, 4vh, 3rem);
	box-sizing: border-box;
	pointer-events: none;
	margin: 0 !important;
	align-self: auto;
	overflow: hidden;
}

/*
 * Elementor estira widgets con --container-widget-height:100% y provoca
 * solapamiento del subtítulo / párrafo al cambiar el viewport.
 */
.sei-hero .sei-hero__content .e-con,
.sei-hero .sei-hero__content .e-con-inner,
.sei-hero .elementor-element-551c8334,
.sei-hero .elementor-element-16ed3747,
.sei-hero .elementor-element-6cd2d8d5,
.sei-hero .elementor-element-6ff74996 {
	--min-height: 0 !important;
	--padding-top: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
	--padding-right: 0 !important;
	--margin-top: 0 !important;
	--margin-bottom: 0 !important;
	--gap: 0.75rem !important;
	--row-gap: 0.75rem !important;
	--column-gap: 0.75rem !important;
	--container-widget-width: 100% !important;
	--container-widget-height: initial !important;
	--container-widget-flex-grow: 0 !important;
	--container-widget-align-self: flex-start !important;
	--flex-direction: column !important;
	--justify-content: flex-start !important;
	--align-items: flex-start !important;
	position: relative !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	transform: none !important;
	min-height: 0 !important;
	height: auto !important;
	max-height: none !important;
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	align-self: flex-start !important;
	flex: 0 0 auto !important;
}

.sei-hero .elementor-element-551c8334 > .e-con-inner,
.sei-hero .elementor-element-16ed3747 > .e-con-inner,
.sei-hero .elementor-element-6cd2d8d5 > .e-con-inner,
.sei-hero .elementor-element-6ff74996 > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: 0.75rem !important;
	row-gap: 0.75rem !important;
	padding: 0 !important;
	min-height: 0 !important;
	height: auto !important;
}

.sei-hero .elementor-element-6ff74996 > .e-con-inner {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 0.85rem !important;
	margin-top: 0.85rem !important;
}

/* Widgets de texto: flujo normal, sin stretch ni absolute de Elementor */
.sei-hero .elementor-element-256e6d40,
.sei-hero .elementor-element-2e0abd2,
.sei-hero .elementor-element-7ef1c8aa,
.sei-hero .sei-hero__location,
.sei-hero .elementor-element-25505f56 {
	position: relative !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	transform: none !important;
	float: none !important;
	clear: both !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	align-self: flex-start !important;
	flex: 0 0 auto !important;
	--container-widget-width: 100% !important;
	--container-widget-height: initial !important;
	--container-widget-flex-grow: 0 !important;
	--flex-grow: 0 !important;
	--flex-shrink: 0 !important;
}

.sei-hero .sei-hero__actions {
	position: relative !important;
	inset: auto !important;
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.85rem !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	align-self: flex-start !important;
	flex: 0 0 auto !important;
	pointer-events: auto;
}

.sei-hero .elementor-element-256e6d40 .elementor-widget-container,
.sei-hero .elementor-element-2e0abd2 .elementor-widget-container,
.sei-hero .elementor-element-7ef1c8aa .elementor-widget-container {
	margin: 0 !important;
	padding: 0 !important;
	height: auto !important;
	min-height: 0 !important;
}

/* --------------------------------------------------------------------------
   Tipografía — título completo grande
   -------------------------------------------------------------------------- */
.sei-hero .elementor-element-256e6d40,
.sei-hero .elementor-element-2e0abd2,
.sei-hero .elementor-element-7ef1c8aa {
	text-align: left !important;
}

.sei-hero .elementor-element-256e6d40 .elementor-heading-title {
	font-family: var(--sei-font) !important;
	font-size: clamp(1.75rem, 4.4vw, 3.4rem) !important;
	font-weight: 700 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.035em !important;
	text-transform: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: none !important;
	max-width: min(100%, 16ch) !important;
	margin: 0 !important;
	text-shadow: 0 4px 40px rgba(0, 0, 0, 0.65);
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: manual;
}

.sei-hero .sei-hero__accent {
	background: var(--sei-metal);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.sei-hero .sei-hero__location {
	margin: 0 !important;
	padding: 0;
	font-family: var(--sei-font);
	font-size: clamp(0.72rem, 1.1vw, 0.9rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.5;
	color: rgba(220, 220, 220, 0.88);
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
	max-width: min(100%, 42ch);
}

.sei-hero .elementor-element-2e0abd2 .elementor-heading-title {
	font-family: var(--sei-font) !important;
	font-size: clamp(0.98rem, 1.8vw, 1.35rem) !important;
	font-weight: 500 !important;
	letter-spacing: -0.01em !important;
	color: rgba(245, 245, 245, 0.95) !important;
	-webkit-text-fill-color: rgba(245, 245, 245, 0.95) !important;
	line-height: 1.4 !important;
	max-width: min(100%, 36ch);
	margin: 0 !important;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.5);
	overflow-wrap: break-word;
}

.sei-hero .elementor-element-7ef1c8aa {
	font-size: clamp(0.86rem, 1.2vw, 1.02rem) !important;
	font-weight: 300 !important;
	line-height: 1.6 !important;
	color: rgba(200, 200, 200, 0.88) !important;
	max-width: min(100%, 54ch);
	margin: 0 !important;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
}

.sei-hero .elementor-element-7ef1c8aa p {
	margin: 0 !important;
	line-height: inherit !important;
}

.sei-hero .elementor-element-7ef1c8aa strong {
	color: #f2f2f2 !important;
	font-weight: 600 !important;
}

/* --------------------------------------------------------------------------
   CTAs — misma altura y alineación
   -------------------------------------------------------------------------- */
.sei-hero .sei-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
	pointer-events: auto;
}

.sei-hero .sei-hero__actions .elementor-element-25505f56,
.sei-hero .sei-hero__actions .elementor-widget-button,
.sei-hero .sei-hero__actions .elementor-widget-container,
.sei-hero .sei-hero__actions .elementor-button-wrapper {
	width: auto !important;
	max-width: none !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	align-self: center !important;
	line-height: 1 !important;
}

.sei-hero .sei-hero__actions .elementor-button,
.sei-hero .sei-hero__btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	height: 3.25rem !important;
	min-height: 3.25rem !important;
	max-height: 3.25rem !important;
	padding: 0 1.85rem !important;
	margin: 0 !important;
	line-height: 1 !important;
	font-family: var(--sei-font) !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	border-radius: 4px !important;
	border-width: 1px !important;
	border-style: solid !important;
	vertical-align: middle;
	cursor: pointer;
	pointer-events: auto;
	transition: transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease !important;
}

.sei-hero .sei-hero__actions .elementor-button {
	background: linear-gradient(135deg, #f5f5f5 0%, #d4d4d4 40%, #ffffff 55%, #b8b8b8 100%) !important;
	background-size: 200% auto !important;
	color: #0a0a0a !important;
	-webkit-text-fill-color: #0a0a0a !important;
	border-color: rgba(255, 255, 255, 0.55) !important;
	min-width: 0 !important;
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45) !important;
}

.sei-hero .sei-hero__actions .elementor-button .elementor-button-content-wrapper,
.sei-hero .sei-hero__actions .elementor-button .elementor-button-text,
.sei-hero .sei-hero__actions .elementor-button span {
	color: #0a0a0a !important;
	-webkit-text-fill-color: #0a0a0a !important;
	opacity: 1 !important;
	visibility: visible !important;
	line-height: 1 !important;
	display: inline-flex !important;
	align-items: center !important;
}

.sei-hero .sei-hero__actions .elementor-button::before {
	display: none !important;
}

.sei-hero .sei-hero__actions .elementor-button:hover {
	filter: brightness(1.1);
	transform: translateY(-2px);
	box-shadow: 0 16px 44px rgba(0, 0, 0, 0.55) !important;
}

.sei-hero .sei-hero__btn--ghost {
	background: rgba(255, 255, 255, 0.08) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-color: rgba(255, 255, 255, 0.55) !important;
	font-weight: 600 !important;
	backdrop-filter: blur(8px);
}

.sei-hero .sei-hero__btn--ghost:hover {
	background: rgba(255, 255, 255, 0.16) !important;
	border-color: #fff !important;
	color: #fff !important;
}

.sei-hero .sei-hero__btn--ghost:active,
.sei-hero .sei-hero__actions .elementor-button:active {
	transform: scale(0.98);
}

/* --------------------------------------------------------------------------
   Animación reveal
   -------------------------------------------------------------------------- */
@keyframes sei-hero-fade-up {
	0% {
		opacity: 0;
		transform: translateY(24px);
		filter: blur(6px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
		filter: blur(0);
	}
}

.sei-hero .sei-hero__reveal {
	opacity: 0;
	animation: sei-hero-fade-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.sei-hero .sei-hero__reveal[data-sei-hero-delay="0.15"] { animation-delay: 0.15s; }
.sei-hero .sei-hero__reveal[data-sei-hero-delay="0.3"] { animation-delay: 0.3s; }
.sei-hero .sei-hero__reveal[data-sei-hero-delay="0.45"] { animation-delay: 0.45s; }
.sei-hero .sei-hero__reveal[data-sei-hero-delay="0.6"] { animation-delay: 0.6s; }

@media (max-width: 1024px) {
	.elementor-105 .elementor-element.elementor-element-68084794.sei-hero,
	.elementor-105 .elementor-element.elementor-element-68084794 {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: auto !important;
		right: auto !important;
	}

	.sei-hero .sei-hero__content {
		max-width: 100%;
		padding-inline: clamp(1.25rem, 5vw, 1.75rem);
	}

	.sei-hero .elementor-element-551c8334 > .e-con-inner,
	.sei-hero .elementor-element-16ed3747 > .e-con-inner,
	.sei-hero .elementor-element-6cd2d8d5 > .e-con-inner {
		gap: 0.65rem !important;
	}
}

/* --------------------------------------------------------------------------
   Desktop
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
	.sei-hero .sei-hero__content {
		max-width: min(58%, 48rem);
	}

	.sei-hero .elementor-element-256e6d40 .elementor-heading-title {
		font-size: clamp(2.2rem, 3.6vw, 3.4rem) !important;
		max-width: min(100%, 15ch) !important;
	}
}

/* Ventanas bajas / landscape: evita recorte y solapes */
@media (max-height: 720px) {
	.sei-hero .sei-hero__content {
		justify-content: flex-start !important;
		padding-top: calc(var(--sei-header-h, 64px) + 0.75rem) !important;
		padding-bottom: 1rem !important;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.sei-hero .sei-hero__content::-webkit-scrollbar {
		width: 0;
		height: 0;
		display: none;
	}

	.sei-hero .elementor-element-256e6d40 .elementor-heading-title {
		font-size: clamp(1.55rem, 4vw, 2.4rem) !important;
	}

	.sei-hero .elementor-element-2e0abd2 .elementor-heading-title {
		font-size: clamp(0.9rem, 1.6vw, 1.15rem) !important;
	}

	.sei-hero .elementor-element-7ef1c8aa {
		font-size: clamp(0.8rem, 1.1vw, 0.95rem) !important;
		line-height: 1.5 !important;
	}

	.sei-hero .sei-hero__actions .elementor-button,
	.sei-hero .sei-hero__btn {
		height: 2.85rem !important;
		min-height: 2.85rem !important;
		max-height: 2.85rem !important;
	}
}

/* --------------------------------------------------------------------------
   Móvil
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.elementor-105 .elementor-element.elementor-element-68084794.sei-hero {
		min-height: 100svh !important;
		min-height: 100dvh !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.sei-hero .sei-hero__fallback {
		background-position: right center;
		animation: none;
		transform: none;
	}

	.sei-hero .sei-hero__content {
		max-width: 100%;
		transform: none;
		justify-content: flex-end;
		padding:
			calc(var(--sei-header-h, 60px) + 0.75rem)
			clamp(1.25rem, 5vw, 1.75rem)
			clamp(1.75rem, 5vh, 2.5rem);
	}

	.sei-hero .elementor-element-551c8334 > .e-con-inner,
	.sei-hero .elementor-element-16ed3747 > .e-con-inner,
	.sei-hero .elementor-element-6cd2d8d5 > .e-con-inner {
		gap: 0.55rem !important;
	}

	.sei-hero .elementor-element-256e6d40 .elementor-heading-title {
		font-size: clamp(1.7rem, 7.5vw, 2.25rem) !important;
		max-width: 100% !important;
	}

	.sei-hero .elementor-element-2e0abd2 .elementor-heading-title {
		max-width: 100%;
	}

	.sei-hero .elementor-element-7ef1c8aa {
		max-width: 100%;
	}

	.sei-hero .sei-hero__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 100%;
	}

	.sei-hero .sei-hero__actions .elementor-button,
	.sei-hero .sei-hero__btn {
		width: 100%;
		max-width: 100%;
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sei-hero .sei-hero__fallback {
		animation: none;
		transform: none;
		inset: 0;
	}

	.sei-hero .sei-hero__overlay,
	.sei-hero .sei-hero__glow {
		animation: none;
	}

	.sei-hero .sei-hero__reveal {
		opacity: 1 !important;
		animation: none !important;
		filter: none !important;
		transform: none !important;
	}
}
