*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { 
  --navy: #16325B; --navy-light: #1e4080; --gold: #F5A623; 
  --gold-dark: #d4891a; --white: #ffffff; --off-white: #f8f6f2; 
  --text-light: #6b7280; --text-dark: #1a1a2e; 
}
html { scroll-behavior: smooth; }
body { font-family: 'Lato', sans-serif; color: var(--text-dark); overflow-x: hidden; background: var(--white); }
h1, h2, h3, h4 { font-family: 'Playfair Display', serif; }

/* ─── BOTONES Y UTILIDADES GLOBALES ─── */
.btn-reserve { background: var(--gold); color: #fff; border: none; padding: 11px 26px; border-radius: 999px; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background 0.2s, transform 0.15s; text-decoration: none; white-space: nowrap; }
.btn-reserve:hover { background: var(--gold-dark); transform: translateY(-1px); }
.wave-container { position: absolute; left: 0; right: 0; line-height: 0; z-index: 3; }
.wave-bottom { bottom: -1px; }
.wave-top { top: -1px; transform: rotate(180deg); }
.wave-svg { display: block; width: 100%; height: 8vw; min-height: 60px; max-height: 120px; }
section { position: relative; }
.section-label { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); font-weight: 700; margin-bottom: 10px; display: block; }
.section-title { font-size: clamp(2rem, 4vw, 2.8rem); color: var(--navy); font-weight: 700; line-height: 1.2; margin-bottom: 16px; }
.section-desc { color: var(--text-light); font-size: 1rem; line-height: 1.7; max-width: 520px; margin: 0 auto; }

/* ─── ANIMACIONES ─── */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

/* ─── FLOTANTE WHATSAPP ─── */
.whatsapp-float { 
    position: fixed; 
    right: 24px; 
    bottom: 24px; 
    width: 65px; 
    height: 65px; 
    background: #25D366; 
    color: white; 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    text-decoration: none;
    line-height: 0; /* Obliga a que no haya espacios de texto invisibles */
    box-shadow: 0 10px 30px rgba(0,0,0,0.25); 
    z-index: 2000; 
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease; 
    animation: whatsappPulse 2s infinite; 
}

.whatsapp-float svg { 
    width: 34px; 
    height: 34px; 
    display: block; 
    margin: 0; 
}

.whatsapp-float:hover { 
    transform: translateY(-4px) scale(1.05); 
    background: #20ba5a; 
    box-shadow: 0 16px 40px rgba(0,0,0,0.3); 
}

@keyframes whatsappPulse { 
    0% { box-shadow: 0 0 0 0 rgba(37,211,102,0.5); } 
    70% { box-shadow: 0 0 0 18px rgba(37,211,102,0); } 
    100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } 
}

/* ─── TARJETAS DE HABITACIONES (Global) ─── */
.room-card { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 8px 30px rgba(22,50,91,0.09); transition: transform 0.3s ease, box-shadow 0.3s ease; text-align: left; display: flex; flex-direction: column; }
.room-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(22,50,91,0.16); }
.room-img { width: 100%; height: 260px; object-fit: cover; display: block; transition: transform 0.5s ease; }
.room-card:hover .room-img { transform: scale(1.04); }
.room-img-wrap { overflow: hidden; }
.room-body { padding: 26px 30px 30px; flex: 1; display: flex; flex-direction: column; }
.room-tag { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--gold); font-weight: 700; margin-bottom: 8px; }
.room-title { font-size: 1.6rem; color: var(--navy); font-weight: 700; margin-bottom: 15px; }
.room-features { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.feat-item { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; color: var(--navy); background: rgba(22,50,91,0.05); padding: 6px 12px; border-radius: 6px; font-weight: 600; }
.room-desc { font-size: 0.95rem; color: var(--text-light); line-height: 1.65; flex: 1; margin-bottom: 25px; }
.room-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; border-top: 1px solid #f0ece5; }
.room-price { font-size: 0.85rem; color: var(--text-light); }
.room-price strong { display: block; font-size: 1.5rem; color: var(--navy); font-family: 'Playfair Display', serif; }
.btn-view { background: var(--gold); color: #fff; border: none; padding: 12px 24px; border-radius: 999px; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background 0.2s, transform 0.15s; text-decoration: none; }
.btn-view:hover { background: var(--gold-dark); transform: translateY(-1px); }