@charset "utf-8";

/* ==========================================================================
   HEADER MICROSITE - Header para microsites de hoteles
   ========================================================================== */

/* ----------------------------------------------------------------------------
   HEADER MICROSITE - Estilos base
   ---------------------------------------------------------------------------- */

#header.header-microsite {
	top: 0;
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
	padding: 0 30px;
}

/* ----------------------------------------------------------------------------
   MINI HEADER CORPORATIVO - Franja superior para microsite (desktop)
   ---------------------------------------------------------------------------- */

#header.header-microsite .microsite-corporate-mini {
	display: none;
}

#header.header-microsite .microsite-corporate-mini__logo {
	width: 77px;
	flex-shrink: 0;
}

#header.header-microsite .microsite-corporate-mini__logo a {
	display: block;
}

#header.header-microsite .microsite-corporate-mini__logo img {
	display: block;
	width: 100%;
	height: auto;
	filter: brightness(0) invert(1);
}

#header.header-microsite .microsite-corporate-mini__menu {
	display: flex;
	align-items: center;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

#header.header-microsite .microsite-corporate-mini__menu > li {
	padding: 0;
}

#header.header-microsite .microsite-corporate-mini__menu > li > a {
	position: relative;
	display: block;
	font-size: 0.8125rem;
	color: var(--text-white);
	font-weight: 400;
	line-height: 1.25rem;
	text-decoration: none;
	transition: all .5s ease;
}

#header.header-microsite .microsite-corporate-mini__menu > li > a:hover,
#header.header-microsite .microsite-corporate-mini__menu > li.current > a {
	color: var(--text-white);
}

#header.header-microsite .microsite-corporate-mini__menu:hover > li > a {
	opacity: 0.48;
}

#header.header-microsite .microsite-corporate-mini__menu:hover > li.current > a,
#header.header-microsite .microsite-corporate-mini__menu:hover > li > a:hover {
	opacity: 1;
}

#header.header-microsite .microsite-corporate-mini__menu > li > a:after {
	content: none;
	display: none;
}

#header.header-microsite .microsite-corporate-mini__menu > li > a.has-opacity {
	color: rgb(250 250 250 / 48%);
}

/* Padding del menú hamburguesa */
#header.header-microsite .leftNav .hamburger nav {
	padding-top: 80px;
}

/* Transición base del filtro del logo (se usa al cerrar el menú, sin delay) */
#header.header-microsite .logo img {
	transition: filter 0.2s ease;
}

/* Con el menú hamburguesa abierto, el logo muestra su color original (azul).
   El delay de 0.35s sincroniza con la apertura del menú antes de cambiar el color. */
#header.header-microsite:has(#nav-btn:checked) .logo img {
	filter: none;
	transition: filter 0.2s ease 0.35s;
}

@keyframes microsite-header-delayed-reveal {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@media screen and (min-width: 1181px) {
	#header.header-microsite {
		display: grid;
		grid-template-columns: auto auto 1fr auto;
		grid-template-rows: 40px auto;
		align-items: center;
	}

	#header.header-microsite .microsite-corporate-mini {
		display: flex;
		grid-column: 1 / -1;
		grid-row: 1;
		align-items: center;
		justify-content: space-between;
		height: 40px;
		margin: 0 -30px;
		padding: 0 38px 0 30px;
		background-color: var(--color-base-blue);
		border-bottom: 1px solid rgb(250 250 250 / 16%);
	}

	#header.header-microsite .hamburger-toggle {
		position: relative;
		top: auto;
		left: auto;
		transform: none;
		grid-row: 2;
		grid-column: 1;
	}

	#header.header-microsite .logo {
		grid-row: 2;
		grid-column: 2;
		margin: 0 20px 0 20px;
	}

	#header.header-microsite .leftNav {
		grid-row: 2;
		grid-column: 3;
	}

	#header.header-microsite .rightNav {
		grid-row: 2;
		grid-column: 4;
	}

	#header.header-microsite .hamburger-toggle,
	#header.header-microsite .logo {
		opacity: 1;
		transition: none;
	}

	#header.header-microsite:has(#nav-btn:checked) .hamburger-toggle,
	#header.header-microsite:has(#nav-btn:checked) .logo {
		transform: translateY(-40px);
		opacity: 0;
		animation: microsite-header-delayed-reveal .2s ease 1.5s forwards;
	}
}

/* ----------------------------------------------------------------------------
   SEPARADOR DE MENÚS - Para hamburguesa
   ---------------------------------------------------------------------------- */

.menu-separator {
	width: 100%;
	height: 1px;
	background-color: rgba(88, 82, 74, 0.1);
}

/* ----------------------------------------------------------------------------
   TÍTULO DE MENÚ CORPORATIVO - Para hamburguesa
   ---------------------------------------------------------------------------- */

.corporate-menu-title {
	display: block;
	margin: 0;
	padding: 20px 16px 0px 32px;
	color: var(--color-base-blue);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.8;
	transition: opacity 0.3s ease;
}

/* Menú corporativo: reducir espacio superior después del título */
.corporate-menu-title + .menu {
	padding-top: 8px;
}

/* ----------------------------------------------------------------------------
   Tablet y Móvil (<992px)
   ---------------------------------------------------------------------------- */

@media screen and (max-width: 1180px) {
	#header.header-microsite {
		padding-top: 0;
	}

	#header.header-microsite .microsite-corporate-mini {
		display: none;
	}

	#header.header-microsite .leftNav .hamburger nav {
		padding-top: 80px;
	}
}

@media screen and (max-width: 991px) {
	/* Ajuste del header microsite en móvil */
	#header.header-microsite {
		top: 0;
		padding: 15px 20px;
	}

	#header.header-microsite .microsite-corporate-mini {
		display: none;
	}

	#header.header-microsite .leftNav .hamburger nav {
		padding-top: 80px;
	}

	/* Icono hamburguesa del microsite en móvil: usar posición estática en el flujo flex */
	#header.header-microsite .hamburger-toggle {
		position: static;
		transform: none;
		order: -1; /* Colocarlo primero en el flex */
	}

	/* Logo del hotel alineado a la derecha */
	#header.header-microsite .logo {
		margin-left: auto;
		margin-right: 0;
	}

	/* Ocultar elementos no necesarios en móvil */
	#header.header-microsite .leftNav ul.mainMenu,
	#header.header-microsite .rightNav {
		display: none;
	}

	/* Separador con menor margen en móvil */
	.menu-separator {
		margin: 15px 0;
	}

	/* Ajuste padding del título corporativo en tablet/móvil */
	.corporate-menu-title {
		padding: 18px 16px 5px;
		font-size: 0.75rem;
		letter-spacing: 0.1em;
	}
}

/* ----------------------------------------------------------------------------
   Móvil pequeño (<576px)
   ---------------------------------------------------------------------------- */

@media screen and (min-width: 1181px) and (max-width: 1320px) {
	#header.header-microsite .microsite-corporate-mini {
		margin: 0 -20px;
		padding: 0 20px;
	}

	#header.header-microsite .microsite-corporate-mini__logo {
		width: 86px;
	}

	#header.header-microsite .microsite-corporate-mini__menu {
		gap: 16px;
	}

	#header.header-microsite .microsite-corporate-mini__menu > li > a {
		font-size: 0.75rem;
	}
}
@media screen and (max-width: 575px) {
	#header.header-microsite {
		top: 0;
	}

	.menu-separator {
		margin: 12px 0;
	}

	/* Ajuste para pantallas muy pequeñas */
	.corporate-menu-title {
		padding: 16px 16px 5px;
		font-size: 0.6875rem;
		letter-spacing: 0.1em;
	}
}

/* ----------------------------------------------------------------------------
   SLIDER MICROSITE - Ajustes de altura para móvil
   El slider debe ocupar toda la pantalla visible hasta el botón de reservar
   ---------------------------------------------------------------------------- */

@media screen and (max-width: 991px) {
	/* Slider a pantalla completa en microsites móvil */
	/* 100dvh - botón reservar(60px) */
	body.hotel-home #innerBanner,
	body.hotel-home #innerBanner .inner-slider,
	body.hotel-home #slider,
	body.hotel-home #slider .inner-slider-video {
		height: calc(100dvh - 60px);
	}

	body.hotel-home #innerBanner .inner-slider .swiper-slide picture,
	body.hotel-home #innerBanner .inner-slider .swiper-slide picture img {
		height: 100%;
		object-fit: cover;
	}
}
