/* Hero Section Styles */
.hero {
	position: relative;
	height: 100vh;
	overflow: hidden;
	margin-top: 0;
	width: 100%;
}

/* Aumentar altura solo en computadoras */
@media (min-width: 769px) {
	.hero {
		height: 120vh; /* 20% más alto en desktop */
	}
}



.hero-background-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	overflow: hidden;
	display: block;
}

/* Ajustar video para la nueva altura en computadoras */
@media (min-width: 769px) {
	.hero-background-video {
		height: 120vh; /* 20% más alto en desktop */
	}
}

.hero-background-video::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.4);
	z-index: 2;
}

/* Ajustar overlay para la nueva altura en computadoras */
@media (min-width: 769px) {
	.hero-background-video::before {
		height: 120vh; /* 20% más alto en desktop */
	}
}

.hero-background-video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	/* Optimizaciones para mejor rendimiento */
	will-change: transform;
	backface-visibility: hidden;
	transform: translateZ(0);
}

/* Mantener posición original en móviles */
@media (max-width: 768px) {
	.hero-background-video video {
		object-position: center center;
	}
}

/* Solo ajustar posición del video para computadoras - sin agrandar */
@media (min-width: 769px) {
	.hero-background-video video {
		object-position: center 70%; /* Mover video más abajo */
	}
}

@media (min-width: 1024px) {
	.hero-background-video video {
		object-position: center 75%; /* Mover video más abajo */
	}
}

@media (min-width: 1440px) {
	.hero-background-video video {
		object-position: center 80%; /* Mover video más abajo */
	}
}

@media (min-width: 1920px) {
	.hero-background-video video {
		object-position: center 85%; /* Mover video más abajo */
	}
}

.hero-content {
	position: relative;
	z-index: 3;
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 2rem;
	max-width: 1200px;
	margin: 0 auto;
}

/* Ajustar contenido para la nueva altura en computadoras */
@media (min-width: 769px) {
	.hero-content {
		height: 120vh; /* 20% más alto en desktop */
	}
}

.hero-text-container {
	max-width: 800px !important;
	color: #fff !important;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.5) !important;
	text-align: center !important;
	margin: 0 auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 1.5rem !important;
	padding: 1.5rem !important;
}

.hero-titulo-elegante {
	font-family: 'Playfair Display', serif !important;
	font-size: clamp(2.5rem, 5.5vw, 4.5rem) !important;
	line-height: 1.2 !important;
	margin: 0 !important;
	font-weight: 700 !important;
	text-align: center !important;
}

/* Ajustar tamaños de texto solo en computadoras */
@media (min-width: 769px) {
	.hero-titulo-elegante {
		font-size: clamp(2.2rem, 5vw, 4rem) !important; /* Título mucho más grande */
	}
	
	.hero-subtitulo {
		font-size: clamp(0.7rem, 1.8vw, 1rem) !important; /* Subtítulo mucho más pequeño */
	}
}

.hero-titulo-linea {
	display: block;
	opacity: 0;
	transform: translateY(20px);
	animation: fadeInUp 0.8s forwards;
}

.hero-titulo-linea:nth-child(1) { animation-delay: 0.2s; }
.hero-titulo-linea:nth-child(2) { animation-delay: 0.4s; }
.hero-titulo-linea:nth-child(3) { animation-delay: 0.6s; }
.hero-titulo-linea:nth-child(4) { animation-delay: 0.8s; }

.hero-subtitulo {
	font-size: clamp(0.8rem, 2vw, 1.2rem) !important;
	margin: 0 !important;
	opacity: 0.95 !important;
	max-width: 600px !important;
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	line-height: 1.6 !important;
}

.hero-buttons {
	display: flex !important;
	gap: 1rem !important;
	margin: 0 !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	max-width: 800px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 1rem !important;
}

/* Estilos para botones del hero */
.btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    padding: 0.7rem 1.5rem !important;
    text-decoration: none !important;
    border-radius: 50px !important;
    font-weight: 600 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    transition: all 0.3s ease !important;
    border: 2px solid transparent !important;
    cursor: pointer !important;
    min-width: 160px !important;
    justify-content: center !important;
}

.btn-dorado {
    background: linear-gradient(135deg, #FFD700, #FFA500);
    color: #000;
    box-shadow: 0 4px 15px rgba(255, 215, 0, 0.3);
}

.btn-dorado:hover {
    background: linear-gradient(135deg, #FFA500, #FFD700);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 215, 0, 0.4);
}

.btn-outline {
    background: transparent;
    color: #fff;
    border-color: #fff;
    backdrop-filter: blur(10px);
}

.btn-outline:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 255, 255, 0.2);
}

/* Estilos para las características del hero */
.hero-features {
    display: flex !important;
    gap: 1.5rem !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    margin-top: 1.5rem !important;
}

.feature {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    color: #fff !important;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
}

.feature i {
    color: #FFD700 !important;
    font-size: 1rem !important;
}

/* Animaciones */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive para botones */
@media (max-width: 768px) {
    .hero-buttons {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        width: 100%;
        max-width: 300px;
    }
    
    .btn {
        width: 100%;
        min-width: auto;
        padding: 1rem 1.5rem;
        font-size: 0.85rem;
        justify-content: center;
        text-align: center;
    }
    
    .hero-features {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }
}

/* ===== RESPONSIVE DESIGN MEJORADO ===== */

/* Dispositivos grandes (Desktop) */
@media (min-width: 1200px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		padding: 0 40px;
	}
	
	.hero-text-container {
		max-width: 900px;
		gap: 2.5rem;
	}
}

/* Tablets grandes */
@media (max-width: 1199px) and (min-width: 769px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		padding: 0 30px;
	}
	
	.hero-text-container {
		max-width: 700px;
		gap: 2rem;
	}
	
	.hero-buttons {
		gap: 1.25rem;
	}
}

/* Tablets */
@media (max-width: 768px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 20px;
	}
	
	.hero-text-container {
		max-width: 600px;
		gap: 1.75rem;
		padding: 1.5rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(1.5rem, 3.5vw, 2.2rem);
	}
	
	.hero-subtitulo {
		font-size: clamp(0.95rem, 2.3vw, 1.3rem);
	}
	
	.hero-buttons {
		flex-direction: row;
		gap: 1rem;
		padding: 0;
	}
	
	.btn {
		font-size: clamp(0.8rem, 1.8vw, 0.9rem);
		padding: 0.75rem 1.25rem;
		min-width: 130px;
	}
	
	/* Estilos específicos para móviles muy pequeños */
	@media (max-width: 360px) {
		.hero-buttons {
			max-width: 280px;
			padding: 0 0.25rem;
		}
		
		.btn {
			padding: 0.9rem 1rem;
			font-size: 0.8rem;
		}
	}
	
	.hero-features {
		flex-direction: row;
		gap: 1.5rem;
		flex-wrap: wrap;
		justify-content: center;
	}
	
	.feature {
		font-size: clamp(0.8rem, 1.8vw, 1rem);
	}
	
	/* Optimizaciones específicas para video en tablets */
	.hero-background-video video {
		object-position: center center;
	}
	
	.hero-background-video::before {
		background: rgba(0, 0, 0, 0.5);
	}
}

/* Tablets pequeñas */
@media (max-width: 767px) and (min-width: 481px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 15px;
	}
	
	.hero-text-container {
		gap: 1.5rem;
		padding: 1.25rem;
	}
	
	.hero-buttons {
		gap: 0.75rem;
	}
	
	.btn {
		min-width: 120px;
		padding: 0.7rem 1rem;
	}
}

/* Smartphones */
@media (max-width: 480px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 15px;
	}
	
	.hero-text-container {
		max-width: 100%;
		gap: 1.5rem;
		padding: 1rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(1.3rem, 3.2vw, 1.8rem);
		line-height: 1.3;
	}
	
	.hero-subtitulo {
		font-size: clamp(0.9rem, 2.2vw, 1.1rem);
		line-height: 1.5;
	}
	
	.hero-buttons {
		flex-direction: column;
		gap: 1rem;
		width: 100%;
		max-width: 320px;
		padding: 0 0.5rem;
	}
	
	.btn {
		width: 100%;
		font-size: clamp(0.85rem, 2.2vw, 0.95rem);
		padding: 1rem 1.25rem;
		min-width: auto;
		justify-content: center;
		text-align: center;
		border-radius: 25px;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	}
	
	.hero-features {
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}
	
	.feature {
		width: 100%;
		justify-content: center;
		font-size: clamp(0.8rem, 2vw, 0.95rem);
	}
	
	/* Optimizaciones para smartphones */
	.hero-background-video::before {
		background: rgba(0, 0, 0, 0.6);
	}
}

/* Móviles pequeños */
@media (max-width: 360px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 10px;
	}
	
	.hero-text-container {
		gap: 1.25rem;
		padding: 0.75rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(1.4rem, 3.8vw, 1.8rem);
	}
	
	.hero-subtitulo {
		font-size: clamp(0.8rem, 2vw, 0.95rem);
	}
	
	.hero-buttons {
		max-width: 260px;
	}
	
	.btn {
		font-size: clamp(0.75rem, 1.8vw, 0.85rem);
		padding: 0.7rem 0.9rem;
	}
	
	.feature {
		font-size: clamp(0.75rem, 1.8vw, 0.85rem);
	}
	
	.hero-background-video::before {
		background: rgba(0, 0, 0, 0.7);
	}
}

/* Orientación horizontal en móviles */
@media (max-width: 768px) and (orientation: landscape) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 20px;
	}
	
	.hero-text-container {
		gap: 1rem;
		padding: 1rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(1.5rem, 3vw, 1.8rem);
		margin: 0;
	}
	
	.hero-subtitulo {
		font-size: clamp(0.8rem, 1.5vw, 1rem);
	}
	
	.hero-buttons {
		gap: 0.75rem;
		flex-direction: row;
		max-width: 600px;
	}
	
	.btn {
		font-size: clamp(0.75rem, 1.5vw, 0.85rem);
		padding: 0.6rem 1rem;
		min-width: 110px;
	}
	
	.hero-features {
		flex-direction: row;
		gap: 1rem;
		flex-wrap: wrap;
		justify-content: center;
	}
	
	.feature {
		font-size: clamp(0.75rem, 1.5vw, 0.85rem);
	}
}

/* Orientación horizontal en smartphones */
@media (max-width: 480px) and (orientation: landscape) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 15px;
	}
	
	.hero-text-container {
		gap: 0.75rem;
		padding: 0.75rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(1.3rem, 2.8vw, 1.6rem);
	}
	
	.hero-subtitulo {
		font-size: clamp(0.75rem, 1.8vw, 0.9rem);
	}
	
	.hero-buttons {
		gap: 0.5rem;
		max-width: 500px;
	}
	
	.btn {
		font-size: clamp(0.7rem, 1.5vw, 0.8rem);
		padding: 0.5rem 0.8rem;
		min-width: 100px;
	}
	
	.hero-features {
		gap: 0.75rem;
	}
	
	.feature {
		font-size: clamp(0.7rem, 1.5vw, 0.8rem);
	}
}

/* Optimizaciones para dispositivos con pantallas de alta densidad */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.hero-background-video video {
		image-rendering: -webkit-optimize-contrast;
		image-rendering: crisp-edges;
	}
}

/* Reducir animaciones en dispositivos que prefieren menos movimiento */
@media (prefers-reduced-motion: reduce) {
	.hero-background-video video {
		animation: none;
	}
	
	.hero-titulo-linea {
		animation: none;
		opacity: 1;
		transform: translateY(0);
	}
}

/* Optimizaciones específicas para iOS */
@supports (-webkit-touch-callout: none) {
	.hero-background-video video {
		object-fit: cover;
		object-position: center center;
		/* Mejorar rendimiento en iOS */
		-webkit-transform: translateZ(0);
		transform: translateZ(0);
	}
	
	.hero {
		-webkit-overflow-scrolling: touch;
	}
}

/* Optimizaciones para Android */
@media screen and (max-width: 480px) and (-webkit-min-device-pixel-ratio: 1) {
	.hero-background-video video {
		object-fit: cover;
		object-position: center center;
	}
}

/* Optimizaciones para dispositivos con conexión lenta */
@media (max-width: 768px) {
	.hero-background-video video {
		/* Mejorar contraste en móviles */
		filter: brightness(1.05) contrast(1.05);
	}
}

/* Optimizaciones para dispositivos con poca memoria */
@media (max-width: 768px) {
	.hero-background-video {
		backface-visibility: hidden;
		perspective: 1000px;
		transform: translateZ(0);
	}
	
	.hero-background-video video {
		backface-visibility: hidden;
		transform: translateZ(0);
	}
}

/* Soporte para dispositivos con pantallas muy pequeñas */
@media (max-width: 320px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		height: 100vh;
		padding: 0 8px;
	}
	
	.hero-text-container {
		gap: 1rem;
		padding: 0.5rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(1.2rem, 3.5vw, 1.5rem);
	}
	
	.hero-subtitulo {
		font-size: clamp(0.75rem, 1.8vw, 0.85rem);
	}
	
	.hero-buttons {
		max-width: 240px;
	}
	
	.btn {
		font-size: clamp(0.7rem, 1.6vw, 0.8rem);
		padding: 0.6rem 0.8rem;
	}
	
	.feature {
		font-size: clamp(0.7rem, 1.6vw, 0.8rem);
	}
}

/* Soporte para dispositivos con pantallas muy grandes */
@media (min-width: 1600px) {
	.hero {
		height: 100vh;
	}
	
	.hero-content {
		padding: 0 60px;
	}
	
	.hero-text-container {
		max-width: 1000px;
		gap: 3rem;
	}
	
	.hero-titulo-elegante {
		font-size: clamp(2.5rem, 4vw, 5rem);
	}
	
	.hero-subtitulo {
		font-size: clamp(1.2rem, 2vw, 1.8rem);
	}
} 