/* ******************************* */
/** HERO */
/* ******************************* */
.hero {
	width: 100dvw;
	height: 603px;
	box-shadow: inset 0 5rem 5rem -2rem var(--negro),
		inset 0 -5rem 5rem -2rem var(--negro);
	position: relative;

	.textoHero {
		width: 40dvw;
		position: absolute;
		top: 25dvh;
		left: 10%;

		& h1 {
			font-size: 3.5rem;
			color: var(--blanco);
			font-weight: bold;
			line-height: 3.5rem;
			text-wrap: balance;
			text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8),
						 0 0 10px rgba(0, 0, 0, 0.6),
						 0 0 20px rgba(0, 0, 0, 0.4);

			@media screen and (max-width: 800px) {
				font-size: 2.5rem;
				line-height: 2.5rem;
			}
		}

		@media screen and (max-width: 800px) {
			width: 70%;
			top: 35dvh;
			left: 10dvw;
		}
	}

	header {
		width: 100dvw;
		position: sticky;
		top: 0;
		background-color: transparent;
		z-index: 1;
		transition: background-color 0.5s;
		padding: 0.2rem 0;
		color: var(--blanco);

		.contenido {
			width: 80dvw;
			height: 3.5rem;
			margin: 0 auto;
			display: flex;
			justify-content: space-between;
			align-items: center;

			@media screen and (max-width: 800px) {
				width: 90dvw;
			}

			.logo {
				width: 6rem;
				height: auto;
				cursor: pointer;

				@media screen and (max-width: 800px) {
					width: 5rem;
				}

				@media screen and (max-width: 450px) {
					display: none;
				}
			}

			.banderas {
				width: 100%;
				height: auto;
				padding: 0.5rem;
				display: flex;
				justify-content: flex-end;
				align-items: center;
				gap: 0.6rem;
				cursor: pointer;

				& a {
					min-width: 38px;
					min-height: 38px;
					display: flex;
					align-items: center;
					justify-content: center;
				}

				.bandera {
					width: 2.2rem;
					height: 2.2rem;
				}

				.bi {
					font-size: 1.2rem;
					padding: 0.5rem;
					border: 2px solid;
					border-radius: 50%;
				}
			}
		}
	}

	.scrolled {
		background-color: var(--blanco);
		color: var(--secundario);
		transition: 0.3s all ease-in;
	}
}

/* ******************************* */
/** CROSS-FADE HERO */
/* ******************************* */
#cross-fade {
	background: #000;
	display: flex;
	align-items: center;
	height: 603px;
	margin-top: -64px;
	overflow: hidden;
	position: relative;
	z-index: -1;

	& img {
		position: absolute;
		min-width: 100%;
		min-height: 100%;
		height: auto;
		object-fit: cover;
		background: #000;
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		-moz-backface-visibility: hidden;
		will-change: transform, opacity;
		transform: scale(1.2) translateY(-15px) translateZ(0);
		-webkit-transform: scale(1.2) translateY(-15px) translateZ(0);
		opacity: 0;
		animation: cross-fade 24s infinite;
		-webkit-animation: cross-fade 24s infinite;

		&:nth-child(1) {
			animation-delay: 0s;
		}
		&:nth-child(2) {
			animation-delay: 3s;
		}
		&:nth-child(3) {
			animation-delay: 6s;
		}
		&:nth-child(4) {
			animation-delay: 9s;
		}
		&:nth-child(5) {
			animation-delay: 12s;
		}
		&:nth-child(6) {
			animation-delay: 15s;
		}
		&:nth-child(7) {
			animation-delay: 18s;
		}
		&:nth-child(8) {
			animation-delay: 21s;
		}
	}
}

#img-producto {
	position: absolute;
	top: 0;
	width: 100%;
	height: 603px;
	overflow: hidden;
	z-index: -1;

	& img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		animation: fadeIn ease 2s;
	}
}

.ocultar {
	display: none;
}

/* ******************************* */
/** KEYFRAMES */
/* ******************************* */
@keyframes cross-fade {
	25% {
		opacity: 1;
		transform: scale(1) translateY(0) translateZ(0);
		transform-origin: 50% 16%;
	}
	40% {
		opacity: 0;
		transform: scale(1.25) translateY(-15px) translateZ(0);
		transform-origin: top;
	}
}

@-webkit-keyframes cross-fade {
	25% {
		opacity: 1;
		transform: scale(1) translateY(0) translateZ(0);
		transform-origin: 50% 16%;
	}
	40% {
		opacity: 0;
		transform: scale(1.25) translateY(-15px) translateZ(0);
		transform-origin: top;
	}
}

@-moz-keyframes cross-fade {
	25% {
		opacity: 1;
		transform: scale(1) translateY(0) translateZ(0);
	}
	40% {
		opacity: 0;
		transform: scale(1.25) translateY(-15px) translateZ(0);
	}
}

@-o-keyframes cross-fade {
	25% {
		opacity: 1;
		transform: scale(1) translateY(0) translateZ(0);
		transform-origin: 50% 16%;
	}
	40% {
		opacity: 0;
		transform: scale(1.25) translateY(-15px) translateZ(0);
		transform-origin: top;
	}
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* ******************************* */
/** NAV MENU */
/* ******************************* */
.menu-container {
	display: flex;
	align-items: center;
	position: sticky;
	top: 0;
	right: 0;
	width: 100%;
	height: 3.5rem;
	margin: -3.5rem auto 0;
	padding: 0 10%;
	z-index: 2;
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;

	& nav {
		display: flex;
		align-items: center;

		& a {
			display: flex;
			justify-content: center;
			align-items: center;
			width: auto;
			height: 3.5rem;
			padding: 0.7rem 4rem;
			border-top-right-radius: 1rem;
			border-top-left-radius: 1rem;
			color: var(--blanco);
			font-size: 1.5rem;
			font-weight: bold;
			text-align: center;
			cursor: pointer;
			transition: all 0.3s ease-in;

			@media screen and (max-width: 800px) {
				flex-direction: column;
				font-size: 1.1rem;
				padding: 1.2rem;
			}

			& img {
				width: 1.5rem;
				cursor: pointer;

				@media screen and (min-width: 800px) {
					width: 2.5rem;
					margin-right: 0.5rem;
				}
			}
		}

		& i {
			font-size: 1.7rem;
			font-weight: bold;
			margin-right: 0.5rem;

			@media screen and (max-width: 800px) {
				margin-right: 0;
				font-size: 1.1rem;
			}
		}

		.clicked {
			background-color: var(--blanco);
			color: var(--secundario);
		}

		& .menu-title {
			font-size: inherit;
			font-weight: inherit;
			color: inherit;
		}
	}
}

.nav-scrolled {
	background-color: var(--secundario);
	transition: all 0.3s ease-in;
}

/* ******************************* */
/** TEXTOS PREMIER & DISCOVER */
/* ******************************* */
.premier {
	width: 80%;
	margin: 1rem auto;
	text-align: center;
	text-wrap: balance;
	padding-top: 1rem;

	& h2 {
		font-size: 2.5rem;
		color: var(--primario);
		font-weight: bold;

		@media screen and (max-width: 875px) {
			font-size: 1.5rem;
		}
	}

	.naranja {
		font-size: 2.5rem;
		font-weight: bold;
		color: var(--secundario);

		@media screen and (max-width: 875px) {
			font-size: 1.5rem;
		}
	}
}

/* ******************************* */
/** MAIN - PRODUCTOS */
/* ******************************* */
main {
	width: 80%;
	margin: 1rem auto;
	padding: 2rem;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
	gap: 1.5rem;
	justify-content: space-between;
	align-items: stretch;
	border-radius: 1rem;
	box-shadow: var(--sombra);

	@media screen and (max-width: 875px) {
		width: 95%;
		padding: 1rem 0;
		display: flex;
		overflow-x: auto;
		white-space: nowrap;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		box-shadow: none;
	}

	& article {
		flex: 0 0 auto;
		width: 100%;
		height: 100%;
		border: 1px solid lightgray;
		border-radius: 1rem;
		box-shadow: var(--sombra);
		display: flex;
		flex-direction: column;
		animation: fadeIn ease 2s;

		@media screen and (max-width: 875px) {
			width: 70dvw;
		}

		.img {
			position: relative;
			width: 100%;
			height: 100%;
			border-top-right-radius: 1rem;
			border-top-left-radius: 1rem;
			overflow: hidden;
			cursor: pointer;

			@media screen and (max-width: 875px) {
				max-height: 15rem;
			}

			& img {
				max-width: 100%;
				height: 15rem;
				border-top-right-radius: 1rem;
				border-top-left-radius: 1rem;
				transition: all 0.5s ease-in-out;

				&:hover {
					transform: scale(1.3);
					filter: brightness(1.4);
				}
			}
		}
	}
}

/* ******************************* */
/** CARDS DE PRODUCTOS */
/* ******************************* */
.banderita-producto {
	position: absolute;
	top: 0.5rem;
	left: 1rem;
	display: inline-flex;
	align-items: center;
	padding: 3px 8px;
	color: var(--blanco);
	background-color: var(--secundario);
	border-radius: 1rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.125rem;
	z-index: 1;
}

.descripcion {
	width: 100%;
	height: 100%;
	padding: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	cursor: pointer;
	white-space: wrap;

	& h3,
	& .product-title {
		font-size: 1.1rem;
		font-weight: bold;
		color: var(--primario);
	}

	.precio {
		font-weight: bold;
		color: var(--primario);
	}

	.card-footer {
		width: 100%;
		display: flex;
		gap: 1rem;

		.bi-star-fill,
		.bi-star-half {
			color: #ffd837;
			font-size: 1.1rem;
			margin: 0;
		}

		.reviews {
			display: flex;
			align-items: center;

			& img {
				display: inline-block;
				width: 7rem;
			}

			& b {
				font-weight: bold;
				margin: 0.2rem;
			}

			& p {
				font-size: 0.7rem;
			}
		}
	}

	.bi-arrow-up-right-circle-fill {
		font-size: 2.7rem;
		color: var(--secundario);
		transition: all 0.3s ease-in-out;
		display: block;
		cursor: pointer;

		&:hover {
			transform: scale(1.2);
		}
	}
}

.botones {
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;

	& button {
		width: 100%;
		font-size: 1rem;
		font-weight: 700;
		padding: 0.5rem;
		margin-top: 1rem;
		border-radius: 1rem;
		cursor: pointer;
	}

	.boton1 {
		background-color: var(--blanco);
		color: var(--secundario);
		border: 2px solid var(--secundario);
	}

	.boton2 {
		background-color: var(--secundario);
		border: 2px solid var(--secundario);
		color: var(--blanco);
	}
}

/* ******************************* */
/** VIDEO */
/* ******************************* */
.sec-video {
	width: 80%;
	margin: 2rem auto 1rem;
	padding: 1rem 0 3rem;
	border-radius: 1rem;
	box-shadow: var(--sombra);

	@media screen and (max-width: 875px) {
		width: 95%;
		padding: 1rem 0 1.5rem;
	}

	.discover {
		text-align: center;
		margin-bottom: 1rem;

		& h2 {
			font-size: 2.5rem;
			color: var(--primario);
			font-weight: bold;

			@media screen and (max-width: 875px) {
				font-size: 1.5rem;
				text-wrap: balance;
			}
		}

		.naranja {
			font-size: 2.5rem;
			font-weight: bold;
			color: var(--secundario);

			@media screen and (max-width: 875px) {
				font-size: 1.5rem;
			}
		}
	}

	.cont-video {
		width: 90%;
		max-width: 50rem;
		margin: 0 auto;
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 1rem;
		box-shadow: var(--sombra);

		@media screen and (max-width: 875px) {
			width: 95%;
		}

		.video {
			position: relative;
			overflow: hidden;
			width: 100%;
			padding-bottom: 56.25%;
			border-radius: 1rem;
			box-shadow: var(--sombra);

			& iframe {
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
			}
		}
	}
}

/* ******************************* */
/** FAQ */
/* ******************************* */
.faq-h2 {
	text-align: center;
	font-size: 2.5rem;
	color: var(--secundario);
	font-weight: bold;
	margin: 2rem 0 1rem;

	@media screen and (max-width: 875px) {
		font-size: 1.5rem;
	}
}

.faq {
	display: flex;
	gap: 1rem;
	width: 80%;
	margin: 0 auto;
	white-space: pre-line;

	@media screen and (max-width: 875px) {
		width: 95%;
		flex-direction: column;
	}
}

.faq-bloque {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	margin-bottom: 2rem;
	padding: 1rem 0;
	border-radius: 1rem;
	background-color: var(--blanco);
	box-shadow: var(--sombra);

	& h3 {
		font-size: 1.5rem;
		color: var(--primario);
		font-weight: bold;
		margin-bottom: 0.5rem;

		@media screen and (max-width: 875px) {
			font-size: 1.2rem;
		}
	}

	.accordion {
		width: 95%;
		padding: 1rem;
		margin: 0.5rem 0;
		border-radius: 1rem;
		color: var(--primario);
		background-color: var(--blanco);
		box-shadow: var(--sombra);
		text-align: left;
		outline: none;
		transition: all 0.4s ease;
		font-size: 1rem;
		font-weight: 600;
		cursor: pointer;
	}

	.panel {
		width: 90%;
		padding: 0 1rem;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.2s ease-out;
		font-size: 1rem;

		& p {
			margin: 0.5rem 0;
			color: var(--primario);
		}
	}
}

/* ******************************* */
/** FOOTER */
/* ******************************* */
.footer-cont {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 80%;
	margin: 0 auto 3rem;
	padding: 1rem 0;
	border-radius: 1rem;
	background-color: var(--blanco);
	box-shadow: var(--sombra);

	@media screen and (max-width: 875px) {
		width: 95%;
	}

	& img {
		width: 5rem;
		margin-bottom: 1rem;
	}

	& h2 {
		font-size: 1.2rem;
		color: var(--primario);
		font-weight: bold;
		margin: 1rem;
	}

	.redes {
		display: flex;
		gap: 1rem;

		& a {
			min-width: 48px;
			min-height: 48px;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		& i {
			font-size: 2rem;
			color: var(--secundario);
			cursor: pointer;
		}

		& img {
			width: 2.5rem;
			cursor: pointer;
		}
	}

	.politicas {
		display: flex;
		padding: 2rem 0;

		& a {
			font-size: 0.8rem;
			font-weight: 600;
			color: var(--secundario);
			text-align: center;
			margin: 0 0.5rem;
			cursor: pointer;

			@media screen and (max-width: 875px) {
				font-size: 0.6rem;
			}

			&:hover {
				text-decoration: underline;
			}
		}
	}

	& p {
		font-size: 0.8rem;
		text-align: center;

		.anio {
			font-size: 0.8rem;
		}

		& i {
			color: red;
		}

		& a {
			color: var(--secundario);
			font-size: 0.8rem;
			font-weight: 600;
		}
	}
}

/* ******************************* */
/** LIGHTBOX POLITICAS */
/* ******************************* */
.light-politicas {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(10px);
	z-index: 5;
	display: none;
	white-space: pre-line;
	animation: fadeIn 2s;

	.cerrar {
		position: absolute;
		top: 1rem;
		right: 1rem;
		background-color: transparent;
		cursor: pointer;
		transition: var(--transition);
		animation: fadeIn 3s;

		&:hover {
			transform: scale(1.1);
		}

		& i {
			font-size: 2rem;
			color: var(--blanco);
		}
	}

	.textos-politicas {
		background-color: #e9e9e9;
		width: 90vw;
		height: 80vh;
		margin: 3rem auto;
		overflow-y: scroll;
		padding: 2rem;
		border-radius: var(--border-radius);
		box-shadow: 0 0 4rem rgba(0, 0, 0, 1), 1rem 1rem 3rem #111111,
			-1rem -1rem 3rem #e9e9e9;
	}
}

#light-form {
	z-index: 4;
}

.qr-denuncias {
	width: 8rem;
	margin: 2rem auto;
}

.lightbox-activo {
	display: block;
	transition: var(--transition);
}

/* ******************************* */
/** TOOLTIPS */
/* ******************************* */
[data-tooltip] {
	position: relative;

	&::after {
		content: attr(data-tooltip);
		font-size: 0.7rem;
		position: absolute;
		top: 100%;
		left: 50%;
		transform: translateX(-50%);
		background-color: var(--blanco);
		color: var(--negro);
		padding: 0.1rem 0.2rem;
		margin-top: 0.2rem;
		border: 1px solid var(--negro);
		border-radius: 0.5rem;
		opacity: 0;
		transition: opacity 0.3s ease;
		pointer-events: none;
		white-space: nowrap;
		visibility: hidden;
	}

	&:hover::after {
		opacity: 1;
		visibility: visible;
	}
}

@media (hover: none) {
	[data-tooltip]::after {
		display: none;
	}
}

/* ******************************* */
/** FORMULARIO DE CONTACTO */
/* ******************************* */
.container {
	color: var(--blanco);
	background-color: transparent;
	width: 60vw;
	height: 80vh;
	margin: 3rem auto;
	overflow-y: scroll;
	padding: 2rem;
	border-radius: var(--border-radius);
	box-shadow: 0 0 4rem rgba(0, 0, 0, 1), 1rem 1rem 3rem #111111,
		-1rem -1rem 3rem #e9e9e9;

	@media screen and (max-width: 875px) {
		width: 95%;
	}
}

.sec_reservas {
	width: 100%;
	flex-basis: 180%;
	margin-right: 30px;
}

.formulario {
	margin-top: 20px;
}

#requerimientos {
	resize: none;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
	width: 100%;
	padding: 6px;
	margin-top: 6px;
	margin-bottom: 6px;
	border-radius: 4px;
	box-sizing: border-box;
}

textarea {
	min-width: 100%;
	resize: vertical;
}

input[type="date"],
select {
	margin-top: 6px;
	margin-bottom: 6px;
	padding: 3px;
	color: #555555;
}

.cont_captcha {
	margin: -2rem auto;
}

.submit_button {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0 auto;
	padding: 0.5rem;
	color: var(--blanco);
	cursor: pointer;
	font-size: 1.2rem;
	font-weight: bold;
	background-color: var(--secundario);
	border: 1px solid white;
	border-radius: var(--border-radius);

	&:hover {
		color: var(--secundario);
		background-color: var(--blanco);
		transition: all 0.5s ease;
		border: 1px solid var(--secundario);
	}
}

#legal_form {
	font-size: 8px;
	text-align: left;
	padding: 0;
}

.naranja {
	color: var(--secundario);
}

.naranja2 {
	color: var(--secundario);
	font-size: 0.75rem;
}

/* ******************************* */
/** BANER DE POLÍTICA DE COOKIES */
/* ******************************* */
#cookieNotice {
	background-color: #eeeaea;
	color: #333333;
	display: block;
	box-sizing: border-box;
	position: fixed;
	padding: 30px;
	border-radius: 10px;
	box-shadow: 0 6px 6px rgb(0 0 0 / 25%);
	font-family: inherit;
	z-index: 2;

	&.display-left {
		left: 20px;
		bottom: 90px;
		width: 370px;
		max-width: 80vw;
	}
}

#saber {
	color: #333333;
	font-size: 15px;
	font-weight: 200;
	text-decoration: underline;
	padding-top: 20px;
}

.btn-primary {
	background-color: #5880e1;
	color: white;
	border: none;
	width: 100%;
	padding: 8px;
	font-size: 16px;
	margin: 20px 0 0;
	cursor: pointer;
}

/* ******************************* */
/** BOTÓN FLOTANTE WHATSAPP (SOLO MÓVIL) */
/* ******************************* */
.whatsapp-float {
	display: none;

	@media screen and (max-width: 800px) {
		display: flex;
		position: fixed;
		bottom: 20px;
		right: 20px;
		width: 50px;
		height: 50px;
		background-color: #25d366;
		color: white;
		border-radius: 50%;
		justify-content: center;
		align-items: center;
		font-size: 1.6rem;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
		z-index: 1000;
		transition: all 0.3s ease;
		text-decoration: none;

		&:hover {
			background-color: #20ba5a;
			transform: scale(1.1);
			box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
		}

		&:active {
			transform: scale(0.95);
		}

		& i {
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 1.8rem;
		}
	}
}
