
:root{
  --primary:#0f172a; --accent:#c8a14b; --bg:#faf7f0; --text:#111827; --muted:#6b7280; --card:#ffffff; --ring:rgba(0,0,0,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:50;background:#ffffffcc;backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--ring)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{display:flex;align-items:center;gap:12px}
.logo img{height:42px}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:var(--primary);color:#fff;font-size:12px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border-radius:12px;border:1px solid var(--ring);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06);cursor:pointer;font-weight:600}
.btn.primary{background:var(--primary);color:#fff;border-color:transparent}
.btn.secondary{background:#fff;color:#111}
.btn:active{transform:translateY(1px)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;padding:64px 0}
.hero h1{font-size:40px;line-height:1.1;margin:12px 0 6px}
.hero p{color:var(--muted);font-size:18px}
.hero .preview{border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.08);border:1px solid var(--ring)}
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}
.tab{padding:8px 14px;border-radius:999px;border:1px solid var(--ring);background:#fff;cursor:pointer}
.tab.active{background:var(--primary);color:#fff;border-color:transparent}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:16px 0 48px}
.card{background:var(--card);border:1px solid var(--ring);border-radius:18px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.04)}
.card img.card-cover{width:100%;height:180px;object-fit:cover;cursor:pointer}
.card .body{padding:14px}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pill{font-size:12px;border:1px solid var(--ring);background:#f8fafc;border-radius:999px;padding:6px 10px;display:inline-flex;align-items:center;gap:6px}
.section{padding:40px 0}
.amenities{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.amen{display:flex;gap:10px;align-items:center;border:1px solid var(--ring);background:#fff;border-radius:14px;padding:12px}
.map-wrap{background:var(--primary);color:#fff}
.map-inner{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center}
.map-box{border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}
#map{width:100%;min-height:420px;aspect-ratio:16/9}
.map-box img{display:block;width:100%;height:auto}
form input, form select, form textarea{width:100%;border:1px solid var(--ring);background:#fff;border-radius:10px;padding:12px;font-size:14px}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
footer{border-top:1px solid var(--ring);background:#fff;padding:24px 0;margin-top:20px}
.small{font-size:12px;color:var(--muted)}
@media (max-width:980px){ .hero{grid-template-columns:1fr} .grid{grid-template-columns:1fr 1fr} .amenities{grid-template-columns:1fr 1fr} .map-inner{grid-template-columns:1fr} }
@media (max-width:640px){ .grid{grid-template-columns:1fr} .amenities{grid-template-columns:1fr} }
.badge-gold{background:var(--accent);color:#111}
header .note{font-size:12px;color:#475569}

/* Modal genérico */
.modal.hidden{display:none}
.modal{position:fixed;inset:0;z-index:1000}
.modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.modal__panel{
  position:relative;max-width:520px;margin:10vh auto;background:#fff;border:1px solid var(--ring);
  border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.2);padding:18px 18px 16px
}

/* Galería */
.modal .gallery{max-width:980px}
.gallery-main{width:100%;height:auto;border-radius:12px;border:1px solid var(--ring);display:block}
.gallery-thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.gallery-thumbs img{width:120px;height:80px;object-fit:cover;border-radius:10px;border:2px solid transparent;cursor:pointer}
.gallery-thumbs img.active{border-color:var(--accent)}
