:root {
    --bg-color: #F9F7F2;     /* Crema papel */
    --primary: #5E6C5B;      /* Verde Oliva */
    --accent: #C18C5D;       /* Terracotta */
    --text: #4A4A4A;         /* Gris oscuro suave */
    --white: #FFFFFF;
    --font-serif: 'Merriweather', serif;
    --font-sans: 'Raleway', sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--font-serif); background-color: var(--bg-color); color: var(--text); line-height: 1.8; }
a { text-decoration: none; color: inherit; transition: 0.3s; }
img { max-width: 100%; display: block; }

/* TOP BAR */
.top-bar {
    background-color: var(--primary); color: var(--white);
    text-align: center; padding: 8px 0; font-family: var(--font-sans); font-size: 0.85rem; letter-spacing: 1px;
}
.top-bar span { margin: 0 15px; }

/* NAV */
.rustic-nav {
    display: flex; justify-content: space-between; align-items: center;
    padding: 30px 5%; max-width: 1300px; margin: 0 auto;
}
.nav-links { display: flex; gap: 30px; font-family: var(--font-sans); font-weight: 600; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 2px; }
.nav-links a:hover { color: var(--accent); }

.logo-center { text-align: center; display: flex; flex-direction: column; color: var(--primary); }
.logo-center .est { font-family: var(--font-sans); font-size: 0.7rem; letter-spacing: 3px; margin-bottom: 5px; }
.logo-center .logo-text { font-size: 1.8rem; font-weight: 700; letter-spacing: 1px; border-top: 1px solid var(--primary); border-bottom: 1px solid var(--primary); padding: 5px 0; }

.btn-book { background: var(--accent); color: var(--white); padding: 10px 25px; border-radius: 2px; }
.btn-book:hover { background: var(--primary); }
.hamburger { display: none; font-size: 1.5rem; cursor: pointer; color: var(--primary); }
.mobile-menu { display: none; background: var(--bg-color); padding: 20px; text-align: center; border-bottom: 1px solid #ddd; }
.mobile-menu a { display: block; margin: 10px 0; font-family: var(--font-sans); font-weight: 600; }

/* HERO FRAME */
.hero-frame { position: relative; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.hero-img { width: 100%; height: 70vh; overflow: hidden; position: relative; }
.hero-img img { width: 100%; height: 100%; object-fit: cover; }

.hero-text-box {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, 0.95); padding: 40px 60px; text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); max-width: 90%;
}
.hero-text-box h1 { font-size: 2.5rem; color: var(--primary); margin-bottom: 10px; font-style: italic; }
.hero-text-box p { font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 2px; font-size: 0.8rem; margin-bottom: 20px; }
.leaf-icon { width: 40px; margin: 0 auto; opacity: 0.6; }

/* SECCIONES GENERALES */
.section { padding: 100px 20px; }
.container { max-width: 1100px; margin: 0 auto; }
.bg-cream { background-color: #F1EFE9; } /* Un poco más oscuro que el fondo body */

/* INTRODUCCIÓN */
.intro-layout { display: flex; align-items: center; gap: 60px; }
.intro-content { flex: 1; }
.intro-imgs { flex: 1; display: flex; gap: 20px; align-items: center; }
.sub-title { font-family: var(--font-sans); color: var(--accent); font-weight: 700; letter-spacing: 2px; font-size: 0.8rem; display: block; margin-bottom: 15px; }
.intro-content h2 { font-size: 2.2rem; color: var(--primary); margin-bottom: 20px; }
.intro-content p { margin-bottom: 20px; font-size: 1rem; color: #666; }

.img-tall { width: 45%; height: 300px; object-fit: cover; margin-top: -30px; }
.img-wide { width: 55%; height: 250px; object-fit: cover; }

/* SEPARADOR */
.separator-img {
    height: 300px;
    background: url('https://images.unsplash.com/photo-1506126613408-eca07ce68773?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=80') center/cover fixed;
}

/* HABITACIONES */
.section-title { text-align: center; margin-bottom: 60px; }
.section-title h2 { font-size: 2rem; color: var(--primary); }
.divider-line { width: 60px; height: 2px; background: var(--accent); margin: 15px auto; }
.center-text { font-family: var(--font-sans); }

.rooms-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; }
.room-card { background: var(--white); transition: 0.3s; box-shadow: 0 5px 15px rgba(0,0,0,0.03); }
.room-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.08); }
.img-container { height: 220px; overflow: hidden; }
.img-container img { width: 100%; height: 100%; object-fit: cover; transition: 0.5s; }
.room-card:hover img { transform: scale(1.05); }

.room-info { padding: 30px; text-align: center; }
.room-info h3 { font-size: 1.4rem; color: var(--primary); margin-bottom: 10px; }
.room-info p { font-family: var(--font-sans); font-size: 0.9rem; margin-bottom: 20px; color: #777; }
.feature { display: inline-block; margin: 0 10px; font-size: 0.8rem; font-family: var(--font-sans); color: var(--accent); }
.feature i { margin-right: 5px; }

/* ENTORNO */
.surroundings-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; text-align: center; margin-top: 40px; }
.s-item i { font-size: 2rem; color: var(--primary); margin-bottom: 20px; border: 1px solid var(--primary); padding: 20px; border-radius: 50%; }
.s-item h4 { font-family: var(--font-sans); text-transform: uppercase; margin-bottom: 10px; letter-spacing: 1px; }

/* FOOTER */
.rustic-footer { background: var(--primary); color: var(--white); padding: 60px 0 20px; text-align: center; }
.footer-content { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-bottom: 40px; }
.footer-block h3 { font-family: var(--font-serif); font-style: italic; font-size: 1.5rem; margin-bottom: 10px; }
.footer-block h4 { font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 20px; font-size: 0.9rem; }
.footer-block p { margin-bottom: 8px; opacity: 0.8; font-family: var(--font-sans); }
.socials a { color: var(--white); margin: 0 10px; font-size: 1.2rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.2); padding-top: 20px; font-family: var(--font-sans); font-size: 0.8rem; opacity: 0.6; }

/* RESPONSIVE */
@media (max-width: 900px) {
    .nav-links, .logo-center { display: none; }
    .rustic-nav { justify-content: center; }
    .logo-center { display: flex; } /* Solo logo en móvil */
    .hamburger { display: block; position: absolute; left: 20px; }
    .intro-layout { flex-direction: column; }
    .img-tall { display: none; }
    .img-wide { width: 100%; }
    .surroundings-grid, .footer-content { grid-template-columns: 1fr; }
}