/*=============================================
GLOBAL
=============================================*/
*{
	font-family: 'Ubuntu', sans-serif;
}

h1, h2, h3, h4, h5, h6, input, textarea, select, button{
	font-family: 'Open Sans', sans-serif;
	font-weight: 100;
}

ul, ol{
	list-style: none;
}

a:visited, a:link, a:focus, a:hover, a:active{
	list-style: none;
	text-decoration: none;
}


.botones-acceso {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.botones-acceso .btn-webmail {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    width: 150px;
    height: 50px;

    padding: 0 15px;

    font-size: 18px;
    font-weight: 600;

    border-radius: 9px;

    text-decoration: none;
    white-space: nowrap;
}

.botones-acceso .btn-webmail i {
    font-size: 20px;
    margin: 0;
}

/* Modal de registro */
#modalRegistro .modal-dialog {
    max-width: 900px !important;
    width: 90% !important;
}

#modalRegistro .modal-content {
    width: 100%;
}

/*=============================================
MODAL MENU
=============================================*/

.btn-logout{

position:fixed;
top:20px;
right:20px;

display:flex;
align-items:center;
gap:8px;

padding:8px 18px;

font-size:15px;
font-weight:500;

color:#dc3545;

background:rgba(255,255,255,0.35);
backdrop-filter:blur(8px);

border:1px solid rgba(255,255,255,0.6);
border-radius:30px;

box-shadow:0 8px 20px rgba(0,0,0,0.15);

transition:all .3s ease;

text-decoration:none;

}

.btn-logout{

display:flex;
align-items:center;
gap:8px;

padding:8px 18px;

font-size:15px;
font-weight:500;

color:#dc3545;

background:rgba(255,255,255,0.35);
backdrop-filter:blur(8px);

border:1px solid rgba(255,255,255,0.6);
border-radius:30px;

box-shadow:0 8px 20px rgba(0,0,0,0.15);

transition:all .3s ease;

text-decoration:none;

}

.user-panel{

position:fixed;
top:20px;
right:20px;

display:flex;
align-items:center;
gap:12px;

z-index:9999;

}

.user-name{

background:rgba(255,255,255,0.4);
backdrop-filter:blur(8px);

padding:6px 14px;

border-radius:20px;

font-weight:600;

box-shadow:0 4px 12px rgba(0,0,0,0.15);

}

.user-menu{

position:fixed;
top:20px;
right:20px;

z-index:9999;

font-family:Arial;

}

/* botón usuario */

.user-button{

background:rgba(255,255,255,0.45);
backdrop-filter:blur(10px);

padding:8px 16px;

border-radius:30px;

font-weight:600;

cursor:pointer;

display:flex;
align-items:center;
gap:8px;

box-shadow:0 6px 15px rgba(0,0,0,0.15);

transition:.3s;

}

.user-button:hover{

transform:translateY(-2px);
box-shadow:0 10px 20px rgba(0,0,0,0.2);

}

/* dropdown */

.user-dropdown{

display:none;

margin-top:10px;

background:white;

border-radius:10px;

box-shadow:0 10px 25px rgba(0,0,0,0.2);

overflow:hidden;

min-width:180px;

}

.user-dropdown a{

display:block;

padding:10px 15px;

text-decoration:none;

color:#333;

font-size:14px;

transition:.2s;

}

.user-dropdown a:hover{

background:#f2f2f2;

}

.logout{

color:#dc3545;

font-weight:600;

}

/*=============================================
HEADER
=============================================*/

header{
	position:fixed;
	top:0;
	z-index:3;
}

header .grid-container{
	display:grid;
	grid-template-columns: 3fr 5fr 1fr 1fr 1fr 1fr;
}

header .grid-item{
	text-align:center;
}

header .bloqueReservas{
	position:relative;
}


header .bloqueReservas .campana-y-reserva{
	background:#FFFBEE;
	cursor:pointer;
}

header .bloqueReservas .fa-concierge-bell{
	font-size:25px; 
	color:#847059;
}

header .bloqueReservas .fa-caret-down, header .bloqueReservas .fa-caret-up{
	font-size:25px; 
	color:#236AA1;
}

header .formReservas{
	position: absolute;
    top: 52px;
    width: 350px;
    height: auto;
    left:0px;
    z-index: 2;
    background: rgba(0, 83, 147, .8);
}

header .formReservas .input-group-lg input, header .formReservas select{
	font-size:14px;
}

header .formReservas input[type="button"]{
	background:black;
	font-size:16px;
}

header .fa-user{
	font-size:25px; 
	color:#DFDAD4;
	cursor:pointer;
}

header .idiomas span{
	cursor:pointer;
}

header .botonMenu i{
	font-size:30px; 
	color:#B5A99B;
	cursor:pointer;
}

/*=============================================
MENU
=============================================*/
nav.menu{
	position: fixed;
	z-index:10;
	top: 60px;
	background-color: black;
	display:none;
}

nav.menu li > .nav-link{
	transition:.5s all;
}

nav.menu li:hover > .nav-link{
	background:#197DB1;
	transition:.5s all;
}

.menuMovil{
	display:none;
	position:fixed;
	background: rgba(0,0,0,.8);
	width:100%;
	height:90vh;
	z-index:2;
	overflow-x: hidden;  
}

.menuMovil .formReservas input[type="button"]{
	background:black;
	font-size:16px;
}

.menuMovil .formReservas{
	background: rgba(0, 83, 147, .8);
	position: relative;
	top:23px;
}

.menuMovil .nav{
	background-color: black !important;
}

/*=============================================
BANNER
=============================================*/

.banner .fade-slider{
	position:relative;
}

.banner .verMas{
	position:absolute;
	width:60px;
	line-height: 60px;
  	bottom: 5%;
    left: 50%;
    font-size:30px;
    transform: translate(-50%, 0%);
    cursor:pointer;
}

.slide-area li{
    position: relative;
}

.text-banner{
    position: absolute;
    top: 80%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: black;
    text-align: center;
}

.text-banner h3{
    font-size: 40px;
    font-weight: bold;
}



/*=============================================
PLANES
=============================================*/
.planes .grid-container{
	display:grid;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.planes .grid-item{
	position:relative;
	cursor:pointer;
}

.planes .grid-item:nth-child(1){
	grid-column: 1 / span 3;
}

.planes .grid-item:nth-child(2){
	grid-column: 4 / span 3;
	height:320px;
	overflow: hidden;
}

.planes .grid-item:nth-child(3){
	grid-column: 1 / span 2;
}

.planes .grid-item:nth-child(4){
	grid-column: 3 / span 2;
}

.planes .grid-item:nth-child(5){
	grid-column: 5 / span 2;
}

.planes .grid-item figure{
	position:absolute;
	bottom:-16px;
	left:0;
	width:100%;
	height:100%;
	background:rgba(0,0,0,.7);
	color:white;
}

.planes .grid-item figure h1{
	position:absolute;
	top:50%;
	left:50%;
	transform: translate(-50%, -50%);
	font-size:30px !important;
}

.planesMovil li{
	overflow: hidden;
}

.planesMovil img{
	width:200% !important;
}

/*=============================================
HABITACIONES
=============================================*/

.habitaciones .row div[class*="col"] figure{
	position:relative;
	overflow: hidden;
}

.habitaciones .row div[class*="col"] figure img{
	transform: scale(1, 1);
	transition: 1s all;
}

.habitaciones .row div[class*="col"] figure img:hover{
	transform: scale(1.1, 1.1);
	transition: 1s all;
}

.habitaciones .row div[class*="col"] figure h1{
	position:absolute;
	top:45%;
	left:50%;
	transform: translate(-50%, -50%);
	transition:.3s all;
}

.habitaciones .row div[class*="col"] figure h1:hover{
	filter: invert(100%);
	transition:.3s all;
}

.habitaciones .row div[class*="col"] figure p{
	background:black; 
	color:#aaa;
	padding-left:0;
	padding-right:0;
}

.habitaciones .row div[class*="col"] figure h3{
	background:#FFD185;
}

.habitaciones .row div[class*="col"] figure h5{
	color:#777;
}

/*=============================================
RECORRIDO PUEBLO
=============================================*/

.recorridoPueblo .grid-container{
	display:grid;
	grid-template-columns: 1fr 2fr;
}

.recorridoPueblo .grid-item{
	text-align:center;
}


.recorridoPueblo .grid-item:nth-child(1){
	grid-row: 1 / span 1;
}

.recorridoPueblo .grid-item:nth-child(2){
	grid-row: 2 / span 1;
}

.recorridoPueblo .grid-item:nth-child(3){
	grid-row: 1 / span 2;
}

/*=============================================
RESTAURANTE
=============================================*/

.fondoRestaurante{
	position:fixed;
	z-index:-1;
	top:0;
	left:0;
	height:1000px;
	background-color:white;
	background-image: url("../img/Imagen7.jpg");
	background-position: center top;
	background-repeat: repeat-y;
}

.restaurante .grid-container{
	display:grid;
	grid-template-columns: 2fr 1fr;
}

.restaurante .grid-item{
	text-align:center;
	color:white;
}

.restaurante .grid-item:nth-child(2){
	position:relative; 
	z-index:1;
	top:-60px; 
	height:600px;
	background:#847059;
}


.restaurante .carta div[class*="col"]{
	text-align:center;
}

.restaurante .carta img{
	border:3px solid white;
}

.contactenos{
	position:relative;
	margin-top:-80px;
}

/*=============================================
MAPA
=============================================*/

.mapa{
	position:relative;
}

.mapa .info{
	color: #8B7556;
	position:absolute;
	width:400px;
	right:10%; 
	top:10%; 
	background-color: #FFCC29;
	height:370px;
}

.mapa .info h3{

	font-weight: bold;
}

/*=============================================
FOOTER
=============================================*/

footer .grid-container{
	display:grid;
	grid-template-columns: 2fr 4fr 2fr;
}

footer .grid-item{
	background-color: #197DB1;
	text-align:center;
	color:white;
}

.redesMovil{
	visibility: hidden;
	position: fixed;
	bottom:0px;
	z-index:2;
	width:100%;
	background: #197DB1;
}


/* FOTO 3D */

.card3d{

    perspective:1000px;
}

.card3d-inner{

    position:relative;
    transition: transform 0.6s;
    transform-style: preserve-3d;
}

.card3d:hover .card3d-inner{

    transform: rotateY(15deg) rotateX(10deg) scale(1.05);
}

.card3d img{

    border-radius:10px;
    box-shadow:0px 15px 35px rgba(0,0,0,0.3);
}

.card3d-info{

    position:absolute;
    bottom:20px;
    left:0;
    right:0;
    color:white;
    text-align:center;
    text-shadow:0 2px 5px rgba(0,0,0,0.6);
}


.foto-premium{

    perspective:1200px;
}

.premium-wrapper{

    max-width:900px;
    margin:auto;
    transition: transform .2s ease;
}

.premium-img{

    width:100%;
    border-radius:15px;
    box-shadow:0 40px 80px rgba(0,0,0,.6);
    transition: transform .2s ease;
}

.holograma-section{

    background:#020611;
    padding:80px 0;
    color:white;
}

.titulo-holograma{

    margin-bottom:50px;
    font-weight:300;
    letter-spacing:2px;
}

.holograma-container{

    position:relative;
    display:inline-block;
    perspective:1000px;
}

.holograma-img{

    width:100%;
    max-width:850px;
    border-radius:10px;

    filter:
    brightness(1.1)
    contrast(1.1)
    drop-shadow(0 0 15px cyan);

    animation:hologramaGlow 3s infinite alternate;
}

/* brillo holográfico */

@keyframes hologramaGlow{

    0%{
        filter:drop-shadow(0 0 10px #00f7ff);
    }

    100%{
        filter:drop-shadow(0 0 30px #00f7ff);
    }

}

/* línea de escaneo */

.scanline{

    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;

    background:linear-gradient(
        rgba(0,255,255,0) 0%,
        rgba(0,255,255,.4) 50%,
        rgba(0,255,255,0) 100%
    );

    animation:scan 4s linear infinite;

}

@keyframes scan{

    0%{
        transform:translateY(-100%);
    }

    100%{
        transform:translateY(100%);
    }

}

.holograma3d-section{

    background:#010814;
    padding:100px 0;
    color:white;
    perspective:1200px;
}

.titulo-holograma{

    margin-bottom:60px;
    letter-spacing:2px;
}

/* contenedor */

.holograma3d-wrapper{

    display:flex;
    justify-content:center;
    align-items:center;
}

/* tarjeta 3D */

.holograma3d-card{

    width:700px;
    transform-style:preserve-3d;

    animation:
    rotar3d 12s linear infinite,
    flotar 6s ease-in-out infinite;
}

/* imagen */

.holograma3d-img{

    width:100%;
    border-radius:12px;

    filter:
    brightness(1.1)
    contrast(1.1)
    drop-shadow(0 0 25px cyan);

}

/* rotación */

@keyframes rotar3d{

    0%{
        transform:rotateY(0deg);
    }

    100%{
        transform:rotateY(360deg);
    }

}

/* flotación */

@keyframes flotar{

    0%,100%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-20px);
    }

}

/*=============================================
SCROLL UP
=============================================*/
#scrollUp{
	bottom: 20px;
	right: 20px;
	width: 50px;
	height: 50px;
	background: url(../img/flecha.jpg);
}


/*=============================================
TABLET VERTICAL (MD revisamos en 768px hacia abajo)
=============================================*/

@media (max-width:768px){

	header .grid-container{
		grid-template-columns:4fr 1fr;
	}

	.planes .grid-container{	
		grid-template-columns: auto;
	}

	.habitaciones .row div[class*="col"] figure p{
		padding-left:4px;
		padding-right:4px;
	}

	.recorridoPueblo .grid-container{
		grid-template-columns: 1fr;
	}

	.recorridoPueblo .grid-container h1{
		font-size:30px;
	}

	.restaurante .grid-container{
		grid-template-columns: 1fr;
	}

	.restaurante h1{
		font-size:30px;
	}

	.restaurante .grid-item:nth-child(2){
		height:400px;
		background:rgba(81, 69, 55, .9);
	}

	.contactenos input{
		width:100% !important;
		margin:10px 0px !important;
	}

	.mapa .info{
		position:absolute;
		width:90%;
		left:50%; 
		top:100px; 
		transform: translate(-50%, 0%);
		background-color: #FFCC29;
		height:350px;
	}

	footer .grid-container{
		grid-template-columns: 1fr;
	}

	.redesMovil{
		visibility: visible;
	}

}


.planilla-card{
    border:none;
    border-radius:16px;
    overflow:hidden;
	margin-top:80px;
}

.planilla-header{
    background:linear-gradient(135deg,#0d6efd,#0a58ca);
    color:white;
    padding:20px;
}

.planilla-header h4{
    margin:0;
    font-weight:600;
}

.info-box{
    background:#f8f9fa;
    border:1px solid #dee2e6;
    border-radius:10px;
    min-height:48px;
}

.form-label{
    font-weight:600;
    margin-bottom:6px;
}

.form-control,
.form-select{
    border-radius:10px;
}

.btn-regresar{
    background:white;
    color:#0d6efd;
    border:none;
    font-weight:600;
}

.btn-regresar:hover{
    background:#f8f9fa;
}

.section-title{
    font-size:1rem;
    font-weight:700;
    color:#0d6efd;
    border-bottom:2px solid #e9ecef;
    padding-bottom:8px;
    margin-bottom:20px;
}

.btn-historial{
    border-radius:10px;
    font-weight:600;
}

.btn-guardar{
    border-radius:10px;
    font-weight:600;
    min-width:220px;
}

.user-info{
    margin-top:10px;
    padding:12px;
    background:#f8f9fa;
    border-radius:10px;
    border-left:4px solid #0d6efd;
}

.user-name{
    font-size:15px;
    font-weight:600;
    color:#333;
}

.user-role{
    font-size:13px;
    color:#6c757d;
	margin-bottom:20px;
}

.logo-tecnolab {
    width: 450px !important;
    max-width: 100%;
    height: auto;
}

.btn-webmail {
    width: 144px;
    height: 55px;
    background-color: #6ac64f;
    border: none;
    border-radius: 6px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;

    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-webmail i {
    margin-right: 12px !important;
}

.btn-webmail span {
    display: inline-block;
}

.btn-webmail:hover {
    background-color: #55ad3d;
    border-color: #55ad3d;
    color: #ffffff;
}

.icono-usuario i {
    font-size: 32px;
}


