/* ################################# 
GENERAL CLASSES
#################################### */
.flex-column{
	flex-direction: column !important;
}
.w-100{
	width: 100% !important;
}

/* ################################# 
MOBILE FIRST PAGINA PAQUETE
#################################### */
@import url("https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&display=swap");
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: "Source Sans Pro", sans-serif;
}
:root {
	font-size: 16px;
}
html {
	scroll-behavior: smooth;
}
:root {
	font-size: 18px;
}
header#main-header .fab-container {
	bottom: 50px !important;
}
header#main-header .fab {
	box-shadow: 0px 4px 10px rgba(238, 238, 238, 0.3);
}
.main-header > .after{
	/* Este está bien que se deje porque es el color filtro de la foto */
	background: #142e38;
	opacity: 0.55;
}
.fab-icon > img {
	margin: -10px 0 0 -4px;
	width: 55%;
}
.what > img {
	margin: -10px 0 0 0px;
	width: 57%;
}
.contacto-fab {
	position: relative;
}
.botones-compartir {
	display: none;
	position: absolute;
	bottom: 55px;
	right: 4px;
	cursor: pointer;
}
.botones-compartir li {
	width: 50px;
	height: 50px;
	border-radius: 100%;
	margin: 5px 0;
	background-color: var(--colorSecundario);
	transition: all ease-in-out 500ms;
}
#share-whatsapp img,
#share-facebook img{
	width: 61%;
	margin: 9px;
}
#share-copy span{
	font-size: 30px;
    color: #fff;
    margin: 8px 10px;
}
#alerta {
	display: flex;
	flex-direction: column;
	align-content: center;
}
.alerta-modal {
	position: fixed;
	width: 50%;
	bottom: 50%;
	padding: 1.5rem;
	align-self: center;
	z-index: 100;
	/* Este color también porque es genérico del modal */
	background: #003149;
    color: #f2f2f2;
	box-shadow: 0px 3px 6px rgba(29, 33, 41, 0.5);
}
.alerta-modal p {
	text-align: center;
	vertical-align: middle;
	font-size: 1rem;
}
main > section:not(:first-child) {
	margin: 15px 20px;
	max-width: 1460px;
}
.subtitulo{
	color: var(--colorSecundario);
}
h3, .h3, h3.subtitulo{
	font-size: 1.7rem !important;
	margin-bottom: 1.35rem;
}
.main-header {
	margin-top: 59px;
}
.main-content {
	text-align: left;
}
.main-content > h6 {
	font-size: 30px;
	margin: 0 0 20px 0;
	color: var(--colorSecundario);
}
.paquete {
	display: flex;
	flex-direction: row;
}
.preview-paquete {
	vertical-align: middle;
	font-size: 1rem;
	flex: 1;
}
.foto-paquete {
	display: none;
}
.span-importante {
	font-weight: 400;
	vertical-align: middle;
	display: inline-block;
	color: #454545;
	margin-bottom: 15px !important;
}
.importante-icono {
	display: inline-block;
	background-color: var(--colorPrimario);
	width: 20px;
	height: 20px;
	border-radius: 100%;
	margin-right: 0.5rem;
	text-align: center;
	font-weight: bolder;
	color: white;
	font-family: initial;
	line-height: 1.25rem;
}
.importante-palabra {
	color: var(--colorPrimario);
	font-weight: 700;
}
.item {
	margin: 1rem 0;
	color: #454545 !important;
}
.item:hover span, .item:hover img {
    transform: scale(1);
}
.span-importante-secundario {
	color: var(--colorOscuro);
	line-height: 1.25rem;
	font-style: italic;
	font-weight: 400;
}
.span-importante-secundario .importante-icono {
	background-color: transparent;
	border: 2px solid transparent;
	border-color: var(--colorOscuro);
	font-style: normal;
	color: var(--colorOscuro);
	line-height: 1rem;
}
.user-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 1rem;
}
.cta {
	text-align: center;
	border-radius: 4px;
	margin: 0.5rem 0;
}
.user-actions > .cta:focus,
.user-actions > .cta:active{
	outline: none;
    text-decoration: none;
    color: var(--colorPrimario);
    border: 1px solid var(--colorPrimario);
    background: white;
}
.cta-secundario {
	font-size: 0.9rem;
	padding: 0.2rem 0.75rem;
	border-radius: 4px;
	color: white;
	background-color: var(--colorSecundario);
	border: 1px solid transparent;
	transition: all ease-out 350ms;
}
.cta-secundario:hover,
.cta-secundario:focus {
	background-color: transparent;
	border: 1px solid transparent;
	border-color: var(--colorSecundario);
	color: var(--colorSecundario);
	outline: none;
	text-decoration: none;
}
/* ################################
            TABLA HOTELES
#################################### */

.hotel-section thead tr:first-child {
	border-top: 5px solid var(--colorSecundario);
}
thead th:nth-child(2),
thead th:nth-child(3) {
	min-width: 130px;
}
th.th-hotel {
	font-size: 1.25rem;
	line-height: 30px;
	vertical-align: middle !important;
}
.hotel-section tr {
	border-bottom: 1px solid rgba(0, 47, 71, 0.25);
}
.hotel-section td {
	padding: 0.5em;
	vertical-align: middle;
}
.hotel-section p {
	font-size: 0.9rem;
	color: #454545;
}

/* ################################
        BUSCADOR RESERVA
#################################### */

.barra-buscadora{
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	border-top: 5px solid var(--colorSecundario);
	padding: 1rem;
	margin-bottom: 1rem;
	background-color: rgb(251, 251, 251);
}
.barra-buscadora > input{
	width: 85%;
	cursor: pointer;
	margin-top: 0;
	padding: .8em 1em;
	box-sizing: border-box;
}
#fechaDesdeReserva{
	flex: 5;
	width: 91%;
}
.buscador-fecha.desde{
    border: 1px solid #707070;
    align-items: center;
    padding: 0.2rem 1rem;
    border-radius: 4px;
    margin: 0 1rem 0 0;
    justify-content: space-between;
	font-size: 1.15rem;
	transition: background-color ease 200ms;
}
.buscador-fecha.hasta:hover,
.buscador-fecha.desde:hover {
	background: #f3f3f3;
	cursor: pointer;
	transition: background-color ease 200ms;
}
.buscador-fecha span{
	vertical-align: middle;
	color: var(--colorPrimario);
	top: 0;
	line-height: inherit;
}
.buscador-fecha > input{
	border: none;
	outline: none;
	background: transparent;
	cursor: pointer;
}
.buscador-fecha.hasta,
.buscador-fecha label{
	display: none;
}
.cta-buscador{
	margin: 0;
	align-self: inherit;
	width: auto !important;
}
.cta-buscador:hover,
.cta-buscador:focus,
.cta-buscador:active{
	color: var(--colorPrimario);
	outline: none;
    text-decoration: none;
    background-color: white;
    border: 1px solid var(--colorPrimario);
    transition: background-color ease 300ms;
}
#slide-paquetes > .subtitulo{
	position: relative !important;
	z-index: 10 !important;
} 

/* ------------------- 
MOBILE --> TABLA ACORDEON DE BUSQUEDA DE RESERVAS
------------------- */

/********* Tabla entera **********/
#buscador-tabla-reservas-mobile {
	width: 100%;
	display: flex;
	flex-direction: column;
	background-color: #fff;
	border-top: 6px solid var(--colorSecundario);
}

/* ---------------- 
Resultado de hoteles - 1era instancia de resultado 
------------------- */

.reservas-hotel {
	border-bottom: 6px solid #eee;
}
.reserva-hotel-titulo {
	cursor: pointer;
	color: #707070;
	display: flex;
	flex-direction: row;
	align-items: center;
	padding: 0.5rem 0.75rem;
	transition: background-color ease-in-out 150ms;
}
.reserva-hotel-titulo:hover{
	background-color: white;
	transition: background-color ease-in-out 150ms;
}
.reserva-hotel-titulo h5 {
	font-size: 1.25rem;
	font-weight: 700;
}
/* ------------------- 
Resultado de fechas para cada hotel - 2da instancia de resultado
------------------- */
/********** clase del contenedor de TODAS las fechas **********/
.reserva-hotel-fechas {
	color: #707070;
}
/********** clase del contenedor de CADA fecha **********/
.hotel-fecha {
	border: 1px solid #e1e1e1;
}
/* ---- clase del título de CADA fecha ---- */
.hotel-fecha-titulo {
	cursor: pointer;
	background-color: #fff;
	display: flex;
	flex-direction: row;
	padding: 0.5rem;
	align-items: center;
	transition: all ease-in-out 350ms;
}
.div-celda.primera {
	font-weight: 700;
	color: var(--colorOscuro);	
}
.div-celda > div:nth-child(2) {
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-top: 9px solid var(--colorOscuro);
	flex-basis: 25%;
}
.div-celda:nth-child(1) {
	margin-right: 0.75rem;
	flex-basis: 21%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.div-celda:nth-child(2) {
	flex-basis: 24%;
}
.div-celda:nth-child(3) {
	flex-basis: 30%;
}
.div-celda:nth-child(4) {
	flex-basis: 25%;
}
.hotel-fecha-titulo[aria-expanded="true"]{
	background-color: var(--colorOscuro);
	color: #e1e1e1;
	transition: all ease-in-out 350ms;
} 
.hotel-fecha-titulo[aria-expanded="true"] .div-celda.primera > div{
	color: #e1e1e1;
}
.hotel-fecha-titulo[aria-expanded="true"] .div-celda.primera > div:last-child{
	transition: all ease-in-out 350ms;
	transform: rotate(180deg);
	border-top: 8px solid #e1e1e1 !important;
}
 
/*---- clase del contenido de CADA fecha ---- */
.reserva-detalles {
	flex-direction: column;
	padding: 1.25rem 1.25rem 1.75rem 1.25rem;
	line-height: 2rem;
	color: #707070;
	transition: all ease-in-out 350ms;
}
.reserva-detalles[aria-expanded="true"] {
	border: 2px solid var(--colorOscuro);
	transition: all ease-in-out 350ms;
	display: flex;
    align-items: center;
}
.reserva-detalles-lista{
	align-self: flex-end;
}
.reserva-detalles-lista > li {
	text-align: right;
	list-style: none;
	font-size: 16px;
	display: flex;
	flex-direction: column;
}
.reserva-hotel-titulo > span {
	width: 28px;
	height: 28px;
	border-radius: 100%;
	margin-right: 1rem;
	text-align: center;
	font-weight: 700;
	color: var(--colorSecundario);
	line-height: 28px;
	transition: all ease-in-out 350ms;
}
.reserva-hotel-titulo[aria-expanded="true"] > span {
	transform: rotate(180deg);
	transform-origin: revert;
	color: #707070;
	transition: all ease-in-out 350ms;
}

/* ------------------- 
DESKTOP --> TABLA ACORDEON DE BUSQUEDA DE RESERVAS
------------------- */

#buscador-tabla-reservas-desktop, .tabla-reservas-desktop {
	display: none;
}
.table thead th {
	vertical-align: middle !important;
}
#buscador-tabla-reservas-desktop td,
.tabla-reservas-desktop td {
	vertical-align: middle !important;
}
#buscador-tabla-reservas-desktop thead tr:first-child,
.tabla-reservas-desktop thead tr:first-child,
 {
	color: #06435C;
	background-color: rgb(212, 212, 212) !important;
	border-top: 5px solid #06435C;
	vertical-align: middle;
	font-size: 1rem;
}
.table span {
	text-align: left;
}
.table td {
	font-size: 0.95rem;
	text-align: left;
	vertical-align: middle;
}

.table .cta2 {
	font-size: 0.8rem;
	padding: 0.2rem 0.75rem;
	background-color: var(--colorOscuro);
	border: none;
	border-radius: 4px;
	color: white;
	border: 1px solid transparent;
	transition: all ease-out 350ms;
}
.table .cta2:hover {
	background-color: transparent;
	border: 1px solid var(--colorOscuro);
	color: var(--colorOscuro);
}
#buscador-tabla-reservas-desktop td:last-child,
#buscador-tabla-reservas-desktop th:last-child {
	text-align: end;
}
#buscador-tabla-reservas-desktop th:nth-child(5),
#buscador-tabla-reservas-desktop th:nth-child(6),
#buscador-tabla-reservas-desktop td:nth-child(5),
#buscador-tabla-reservas-desktop td:nth-child(6) {
	text-align: center;
}

#buscador-tabla-reservas-desktop td[colspan="9"]:last-child {
	text-align: center;
}

.tabla-reservas-desktop td:last-child,
.tabla-reservas-desktop th:last-child {
	text-align: end;
}
.tabla-reservas-desktop th:nth-child(5),
.tabla-reservas-desktop th:nth-child(6),
.tabla-reservas-desktop td:nth-child(5),
.tabla-reservas-desktop td:nth-child(6) {
	text-align: center;
}

.tabla-reservas-desktop td[colspan="9"]:last-child {
	text-align: center;
}
/* ------------------- 
ESTILOS QUE SE APLICAN MEDIANTE JAVASCRIPT
------------------- */

.backgroundDark {
	background-color: var(--colorOscuro);
	color: #e1e1e1;
}
.borderDark {
	border: 2px solid var(--colorOscuro);
}
.arrow-collapsed {
	transform: rotate(180deg);
	border-top: 8px solid #e1e1e1 !important;
}

/* ################################
	OTROS PAQUETES
#################################### */
.modulo-para-tarjeta{
	min-width: 0 !important;
}
/* .sombra{
	height: 95% !important;
} */

/* ################################
	MEDIAQUERIES
#################################### */

/* Buscador */
@media screen and (max-width: 420px) {
	.barra-buscadora {
		width: 100%;
	}
	.hotel-fecha-titulo {
		width: 100%;
		flex-direction: column;
	}
	.div-celda{
		font-size: 16px;
	}
	.div-celda:nth-child(1){
		margin: 0;
		order: 5;
		margin-top: 1rem;
	}

}
@media screen and (max-width: 650px) {
	body .container-fluid{
		margin: 0 !important;
	}
	.barra-buscadora {
		flex-direction: column;
		padding: 0;
	}
	.buscador-fecha{
		color: #707070;
		text-align: center;
		width: 100%;
	}
	.barra-buscadora > input{
		width: 100%;
		margin: 0;
		border-radius: 0;
	}
	.buscador-fecha span{
		display: none;
	}
	.buscador-fecha.hasta{
		padding:0.5rem 1rem 1rem 1rem;
	}
	.buscador-fecha.desde{
		border: none;
		justify-content: center;
		padding: 1rem 1rem 0.5rem 1rem;
		margin: 0;
	}
	.buscador-fecha.hasta:hover,
	.buscador-fecha.desde:hover {
		border-radius: 0px;
	}
	.buscador-fecha.hasta{
		display: block;
		font-size: 1.15rem;
		color: #707070;
	}
	.buscador-fecha.desde > input,
	.buscador-fecha.hasta > input{
		max-width: 100px;
    	margin-left: 1rem !important;
	}
	.cta-buscador{
		width: 100%;
		align-self: stretch;
		padding: 0.5rem;
	}
	.buscador-fecha label{
		display: inline-block;
		font-weight: 400;
		color: var(--colorSecundario);
		text-align: center;
	}
	#anchor-buscador-reservas{
		margin-bottom: 55px;
	}
	.hotel_group .group_item_content{
		order: 0 !important;
	}
	.hotel_group .group_item_content p{
		padding: 11px 14px !important;
	}
	.main-content .btn.print {
		top: -50px;
		right: -14px;
		font-size: 15px;
	}

	.main-content > h6 {
		margin: 47px 0 20px 0;
	}
}

/* Resto de la pág */
@media screen and (min-width: 650px) {
	#anchor-buscador-reservas{
		padding: 0px !important;
	}
	.buscador-fecha.desde{
		flex: 1;
	}
}
@media screen and (min-width: 768px) {
	
	header#main-header .fab-container{
		bottom: 0 !important;
	}
	.main-header {
		height: 200px;
		margin-top: 0;
		background-size: cover;
		background-position-y: center;
	}
	.fab-container {
		bottom: 0 !important;
	}
	.user-actions {
		align-items: flex-start;
		flex-direction: column;
		margin: 0;
		margin-top: 1rem;
	}
	.user-actions .cta {
		align-self: flex-start;
		text-align: center;
	}
	.user-actions .cta-secundario {
		font-size: 1.125rem;
	}

	.hotel-section p {
		font-size: 1.1rem;
	}

	.buscador-fecha.desde{
		flex: 1;
		display: flex;
	}
	
	.login_usuario{
		width: 75%;
		margin: auto;
	}
	.subtitulo-oa{
		text-align: center;
	}
}
@media screen and (min-width: 850px) {
	#buscador-tabla-reservas-mobile {
		display: none;
	}
	#buscador-tabla-reservas-desktop {
		display: block;
	}
	.tabla-reservas-desktop {
		display: block;
	}
}

main section ul {
	text-indent: 10px;
	list-style-position: inside;
}

@media screen and (min-width: 950px) {
	main > section:not(:first-child) {
		max-width: 1460px;
		margin: auto;
		padding: 1rem !important;
	}
	.main-header > .after{
		opacity: 0.75;
	}
	.foto-paquete {
		display: block;
		flex: 1;
		background-size: cover;
		background-repeat: no-repeat;
		background-position-y: center;
	}
	.user-actions {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
	.preview-paquete {
		margin-right: 2rem;
	}
	.alerta-modal p{
		font-size: 1.35rem;
	}
	
	.login_usuario{
		width: 55%;
		margin: auto;
	}
	
}
@media screen and (min-width: 1460px) {
	.main-content {
		text-align: left;
		padding: 0;
	}
}

td.financiacion {
	color:#ff0000;
}
.hotel-section {
	padding:1em 0em 1em;
}
.hotel_group {
    font-size: .8rem;
    
    border: solid 1px #9191911c;
    margin-bottom: 10px;
}
.hotel_group:last-child {
	border-top: none;
	border-bottom-left-radius: 5px;
	border-bottom-right-radius: 5px;
}


.hotel_group:first-child {
	border-top: none;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}

.hotel_group header {
	cursor: pointer;
	display: grid;
	grid-template-areas: "icon title" "chevron chevron";
	grid-template-columns: 25px 1fr;
	justify-content: center;
	align-items: center;
	gap: 10px;
    background: #06435c;
    padding: 10px 20px;
}

.hotel_group header .icon {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #FFFFFF;
}

.hotel_group header .icon:first-child {
	grid-area: icon;
}


.hotel_group header .icon:last-child {
	grid-area: chevron;
}
.hotel_group header h2 {
	grid-area: title;
	margin: 0;
	padding: 0;
	color: #FFFFFF;
	font-size: 1.7em;
}
.hotel_group header .icon svg {
	width: 25px;
}

.hotel_group header .icon svg path{
	fill: #FFFFFF;
}

.hotel_group header h2 {
	flex: 1;
	margin: 0;
	padding: 0;
	color: #FFFFFF;
	font-size: 1.7em;
}

.hotel_group .group_items .group_item  {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0 0 1em 0;
}

.hotel_group header .glyphicon-chevron-up, .hotel_group header .glyphicon-chevron-down {
	display: none;
}

.hotel_group header[aria-expanded=true] .glyphicon-chevron-up {
   display: inline-flex;
}
.hotel_group header[aria-expanded=false] .glyphicon-chevron-down {
   display: inline-flex;
}

.hotel_group .group_item .group_item_header {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	align-items: stretch;
	color: #fff;
	border: solid 1px hsl(178deg 13% 77%);
}

.hotel_group .group_item p {
	flex: 1 1 100%;
	font-size: 1.1em;
	margin: 0;
	display: flex;
	color: #222;
	padding: .7em 1em;
position:relative;

}

.hotel_group .group_item_header p:nth-child(1) {
	order:0;
}
.hotel_group .group_item_header p:nth-child(2) {
	order:1;
}
.hotel_group .group_item_header p:nth-child(5) {
	order:2;
}
.hotel_group .group_item_header p:nth-child(3),
.hotel_group .group_item_header p:nth-child(4) {
	order:3;
}

.hotel_group .group_item_header p:nth-child(4) span {
    position: absolute;
    background: #FFF;
    padding: 2em;
    left: 0px;
    top: 45px;
    box-shadow: 0 0 3px -1px #000000aa;
    display:none;
}

.hotel_group .group_item_header p:nth-child(4):hover span {
    display:block;
    z-index:9999;
}

@media screen and (min-width: 633px) {
	.hotel_group header {
		grid-template-areas: "icon title chevron" ;
		grid-template-columns: 25px 1fr 160px;
	}

	.hotel_group header .icon:last-child {
		text-align: right;
		justify-content: flex-end;
	}
}
@media screen and (min-width: 1000px) {

	
	
	.hotel_group .group_item_header p:nth-child(5) {
		order:4;
	}
	.hotel_group .group_item p {
		background: #c6e0df;
		flex:1 1 auto;
		justify-content: center;
		align-items: center;
		text-align: center;
		border-left: solid 1px hsl(178deg 13% 77%);
	}
    .hotel_group .group_item p:nth-child(4) span {
        width: 300px;
        left: calc(50% - 150px);
        top: 45px;  
    }
}

.hotel_group .group_item p:first-child {
	background: #c6e0df;
	border-left: 0;
	
}

.hotel_group .group_item p:nth-child(3){
	font-weight: 600;
}

.hotel_group .group_item p:nth-child(4){
	font-weight: 600;
	color:#d81409;
}


.hotel_group .group_item_content p:last-child {
	color: #232323;
	flex: 0 0 100%;
	text-align: left;
	background: #fff;
	align-items: flex-start;
    justify-content: flex-start;
    border-bottom: solid 1px;
    border-left: solid 1px;
    border-right: solid 1px;
    border-color: #abd1d0;
}
.hotel_group .group_item_content{
	order: 4;
    width: 100%;
}
