/* =========================================================
   HOTEL VYC
   ESTILO.CSS
   Diseño general unificado para todas las páginas
   ========================================================= */


/* =========================================================
   1. VARIABLES
   ========================================================= */

:root {
    --negro: #080a0c;
    --negro-suave: #111315;

    --dorado: #d4af37;
    --dorado-claro: #e8c85a;
    --dorado-oscuro: #a98512;

    --crema: #f7f1e3;
    --crema-claro: #fffaf0;

    --blanco: #ffffff;

    --texto: #333333;
    --gris: #666666;
    --gris-claro: #eeeeee;

    --borde: #ded5bd;

    --rojo: #b42318;
    --verde: #187a35;

    --sombra: 0 6px 20px rgba(0, 0, 0, .10);
    --sombra-fuerte: 0 8px 25px rgba(0, 0, 0, .18);

    --radio: 12px;
}


/* =========================================================
   2. RESET
   ========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
}

body {
    font-family: Arial, Helvetica, sans-serif;
    background: var(--crema);
    color: var(--texto);
    line-height: 1.6;
    min-height: 100vh;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
}

button,
input,
select,
textarea {
    font-family: inherit;
}

button {
    cursor: pointer;
}

ul {
    list-style: none;
}

input,
select,
textarea {
    outline: none;
}


/* =========================================================
   3. MARCA DE AGUA
   ========================================================= */

body::before {
    content: "";

    position: fixed;
    top: 50%;
    left: 50%;

    width: 330px;
    height: 330px;

    transform: translate(-50%, -50%);

    background-image: url("../img/logo.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    opacity: .035;

    pointer-events: none;
    z-index: -1;
}


/* =========================================================
   4. CINTA SUPERIOR
   ========================================================= */

.barra-superior {
    width: 100%;

    background: var(--negro-suave);
    color: var(--blanco);

    border-bottom: 1px solid rgba(212, 175, 55, .25);
}

.barra-superior-contenido {
    width: min(94%, 1250px);
    min-height: 36px;

    margin: auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;
}

.informacion-superior {
    display: flex;
    align-items: center;

    gap: 18px;

    font-size: .78rem;
}

.informacion-superior span {
    display: flex;
    align-items: center;
    gap: 6px;
}

.informacion-superior i {
    color: var(--dorado);
}

.redes-superiores {
    display: flex;
    align-items: center;
    gap: 12px;
}

.redes-superiores a {
    color: var(--blanco) !important;
    font-size: .85rem;

    transition: color .25s ease;
}

.redes-superiores a:hover {
    color: var(--dorado) !important;
}



/* =========================================================
   5. ENCABEZADO - HOTEL VYC
   ========================================================= */

header {
    width: 100%;
    background: #080808;
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 3px solid #d8b52b;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .25);
}

.navbar,
.encabezado-contenido {
    width: min(94%, 1350px);
    min-height: 100px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

/* =========================================================
   6. LOGO - TAMAÑO UNIFICADO
   ========================================================= */

.logo {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

.logo a {
    display: flex;
    align-items: center;
    gap: 14px;
}

.logo img {
    display: block;
    width: 72px !important;
    height: 72px !important;
    min-width: 72px;
    min-height: 72px;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain;
    border-radius: 50%;
    border: 2px solid #d8b52b;
    flex-shrink: 0;
}

.logo h1,
.logo-texto h1,
.logo-texto strong {
    color: #ffffff;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 1px;
    font-weight: 700;
    margin: 0;
}

.logo span,
.logo-texto span {
    color: #d8b52b;
    font-size: 14px;
    letter-spacing: 2px;
    margin-top: 3px;
}

/* Ajuste para celulares */
@media (max-width: 480px) {
    .logo img {
        width: 60px !important;
        height: 60px !important;
        min-width: 60px;
        min-height: 60px;
    }

    .logo h1,
    .logo-texto h1,
    .logo-texto strong {
        font-size: 23px;
    }
}

/* =========================================================
   7. MENÚ
   ========================================================= */

.menu,
.menu-principal {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 17px;
}

.menu li,
.menu-principal li {
    display: flex;
    align-items: center;
}

.menu li a,
.menu-principal li a,
.menu-principal a {
    color: var(--blanco) !important;

    font-size: .9rem;

    font-weight: bold;

    display: flex;
    align-items: center;

    gap: 6px;

    padding: 10px 6px;

    transition:
        color .25s ease,
        transform .25s ease;
}

.menu li a:hover,
.menu-principal li a:hover,
.menu-principal a:hover {
    color: var(--dorado) !important;

    transform: translateY(-1px);
}

.menu li a.activo,
.menu-principal li a.activo,
.menu-principal a.activo {
    color: var(--dorado) !important;

    border-bottom: 2px solid var(--dorado);
}

/* =========================================================
   8. BOTÓN RESERVAR DEL MENÚ
========================================================= */

.btn-menu-reservar {
    display: inline-block;

    background: var(--dorado);

    color: #111111 !important;

    padding: 10px 16px !important;

    border-radius: 7px;

    border: 1px solid var(--dorado);

    font-size: 14px;

    font-weight: 700;

    line-height: 1.2;

    text-decoration: none;

    cursor: pointer;

    transition:
        background 0.25s ease,
        color 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


/* =========================================================
   EFECTO AL PASAR EL MOUSE
========================================================= */

.btn-menu-reservar:hover {
    background: var(--dorado-claro);

    color: #000000 !important;

    transform: translateY(-2px);

    box-shadow:
        0 5px 12px
        rgba(0, 0, 0, 0.20);
}


/* =========================================================
   EFECTO AL HACER CLIC
========================================================= */

.btn-menu-reservar:active {
    transform: translateY(0);

    box-shadow: none;
}


/* =========================================================
   BOTÓN RESERVAR ACTIVO
========================================================= */

.btn-menu-reservar.activo {
    background: var(--dorado);

    color: #111111 !important;
}


/* =========================================================
   CELULAR
========================================================= */

@media (max-width: 750px) {

    .btn-menu-reservar {
        padding: 8px 12px !important;

        font-size: 12px;

        border-radius: 6px;
    }

}

/* =========================================================
   9. BOTÓN MENÚ MÓVIL
   ========================================================= */

.menu-btn {
    display: none;

    width: 40px;
    height: 40px;

    border: 1px solid var(--dorado);

    border-radius: 7px;

    background: transparent;

    color: var(--dorado);

    align-items: center;
    justify-content: center;

    font-size: 18px;
}

.menu-btn:hover {
    background: var(--dorado);
    color: #111111;
}

/* =========================================================
   11. CONTENEDOR GENERAL
   ========================================================= */

.contenedor {
    width: min(92%, 1200px);

    margin: auto;
}


/* =========================================================
   12. TÍTULOS DE SECCIÓN
   ========================================================= */

.titulo-seccion {
    max-width: 850px;

    margin: 0 auto 35px;

    text-align: center;
}

.titulo-seccion > span,
.etiqueta-seccion,
.etiqueta-hero {
    display: inline-block;

    color: var(--dorado);

    font-weight: bold;

    letter-spacing: 2px;

    font-size: .8rem;

    margin-bottom: 7px;
}

.titulo-seccion h2 {
    color: #111111;

    font-size: 2.15rem;

    line-height: 1.2;

    margin-bottom: 10px;
}

.titulo-seccion h2::after {
    content: "";

    display: block;

    width: 65px;
    height: 3px;

    background: var(--dorado);

    margin: 12px auto 0;
}

.titulo-seccion p {
    color: var(--gris);

    font-size: .94rem;
}


/* =========================================================
   13. SECCIONES
   ========================================================= */

section {
    padding: 60px 0;
}


/* =========================================================
   14. HERO PRINCIPAL
   ========================================================= */

.hero {
    position: relative;

    width: 100%;

    height: 600px;

    overflow: hidden;
}

.hero > img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.hero::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, .72),
            rgba(0, 0, 0, .35),
            rgba(0, 0, 0, .12)
        );
}

.hero-texto {
    position: absolute;

    z-index: 2;

    top: 50%;
    left: 9%;

    transform: translateY(-50%);

    max-width: 650px;

    color: var(--blanco);
}

.hero-texto h2 {
    color: var(--blanco);

    font-size: 3.6rem;

    line-height: 1.05;

    margin-bottom: 18px;
}

.hero-texto h2::after {
    content: "";

    display: block;

    width: 80px;
    height: 4px;

    background: var(--dorado);

    margin: 16px 0;
}

.hero-texto p {
    font-size: 1.05rem;

    margin-bottom: 25px;
}


/* =========================================================
   15. HERO DE PÁGINAS INTERNAS
   ========================================================= */

.hero-pagina {
    min-height: 260px;

    display: flex;

    align-items: center;

    justify-content: center;

    background:
        linear-gradient(
            rgba(8, 10, 12, .84),
            rgba(8, 10, 12, .84)
        );

    color: var(--blanco);

    text-align: center;
}

.hero-pagina .contenedor {
    padding: 45px 0;
}

.hero-pagina h1 {
    color: var(--blanco);

    font-size: 2.55rem;

    line-height: 1.15;

    margin-bottom: 12px;
}

.hero-pagina p {
    max-width: 700px;

    margin: auto;

    color: #eeeeee;

    font-size: .95rem;
}


/* =========================================================
   16. BOTONES GENERALES
   ========================================================= */

.btn,
.btn-principal,
.btn-pago,
.btn-reserva {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 8px;

    background: var(--dorado);

    color: #111111 !important;

    border: none;

    border-radius: 7px;

    font-weight: bold;

    cursor: pointer;

    transition:
        background .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}

.btn {
    padding: 12px 23px;

    font-size: .92rem;
}

.btn-principal,
.btn-pago,
.btn-reserva {
    padding: 11px 18px;

    font-size: .88rem;
}

.btn:hover,
.btn-principal:hover,
.btn-pago:hover,
.btn-reserva:hover {
    background: var(--dorado-claro);

    color: #000000 !important;

    transform: translateY(-2px);

    box-shadow:
        0 5px 14px rgba(0, 0, 0, .15);
}


/* =========================================================
   17. NOSOTROS
   ========================================================= */

.nosotros {
    background: var(--crema);
}

.nosotros p {
    max-width: 900px;

    margin: auto;

    text-align: center;

    font-size: .98rem;
}


/* =========================================================
   18. HABITACIONES
   ========================================================= */

.habitaciones {
    background: var(--crema-claro);
}

.contenedor-habitaciones {
    width: min(94%, 1150px);

    margin: 30px auto 0;

    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(270px, 1fr)
        );

    gap: 24px;
}


/* =========================================================
   19. TARJETAS
   ========================================================= */

.card {
    background: var(--blanco);

    border-radius: var(--radio);

    overflow: hidden;

    border: 1px solid #e4dcc8;

    box-shadow: var(--sombra);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.card:hover {
    transform: translateY(-4px);

    box-shadow: var(--sombra-fuerte);
}

.card img {
    width: 100%;

    height: 215px;

    object-fit: cover;
}

.card h3 {
    color: #111111;

    text-align: center;

    font-size: 1.18rem;

    margin: 15px 15px 7px;
}

.card p {
    padding: 0 18px;

    margin-bottom: 13px;

    color: #555555;

    font-size: .9rem;
}

.card .btn {
    display: flex;

    width: 80%;

    margin: 16px auto 21px;
}


/* =========================================================
   20. SERVICIOS
   ========================================================= */

.servicios {
    background: var(--crema);
}

.servicios > h2,
.nosotros > h2 {
    text-align: center;

    color: #111111;

    font-size: 2.1rem;

    margin-bottom: 30px;
}

.servicios > h2::after,
.nosotros > h2::after {
    content: "";

    display: block;

    width: 65px;
    height: 3px;

    background: var(--dorado);

    margin: 12px auto 0;
}

.contenedor-servicios {
    width: min(94%, 1200px);

    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(260px, 1fr)
        );

    gap: 24px;

    margin: auto;
}

.servicio {
    background: var(--blanco);

    border-radius: var(--radio);

    overflow: hidden;

    border: 1px solid #e4dcc8;

    box-shadow: var(--sombra);

    text-align: center;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.servicio:hover {
    transform: translateY(-4px);

    box-shadow: var(--sombra-fuerte);
}

.servicio img {
    width: 100%;

    height: 195px;

    object-fit: cover;
}

.servicio h3 {
    color: #111111;

    margin: 16px 10px 7px;

    font-size: 1.12rem;
}

.servicio p {
    padding: 0 18px 20px;

    color: #555555;

    font-size: .9rem;
}
/* =========================================================
   AJUSTE SERVICIOS.HTML
   SIN CINTA GRIS
   ========================================================= */

/* Fondo blanco para el contenido principal */

body.pagina-servicios {
    background: #ffffff;
}

body.pagina-servicios main {
    background: #ffffff;
    margin-top: 0;
}


/* Las secciones de servicios permanecen blancas */

body.pagina-servicios .servicios-seccion {
    background: #ffffff;
}

body.pagina-servicios .informacion-servicios {
    background: #ffffff;
}

body.pagina-servicios .llamada-servicios {
    background: #ffffff;
}

/* =========================================================
   FOOTER NEGRO - SERVICIOS
   MISMO TAMAÑO QUE RESERVAS.HTML
   ========================================================= */

body.pagina-servicios .footer {
    width: 50%;
    margin: 0 auto;

    background: #08090a;

    color: #ffffff;

    border-top: 2px solid var(--dorado);

    padding: 35px 35px 0;

    box-sizing: border-box;
}


