/* ============================================================
   SAMAY HOSPEDAJE — CSS Principal v2
   samayhospedaje.com
   ============================================================ */

/* ============ RESET & BASE ============ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'DM Sans',sans-serif;
  background:var(--bg); color:var(--text);
  overflow-x:hidden; transition:background .3s,color .3s;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
button { cursor:pointer; font-family:'DM Sans',sans-serif; border:none; }
input,textarea,select { font-family:'DM Sans',sans-serif; }
ul { list-style:none; }

/* ============ VARIABLES ============ */
:root {
  --nav:#1a4a5a; --nav2:#143d4a;
  --gold:#c9a84c; --gold2:#a8862e;
  --bg:#f5f0e8; --bg2:#ede7dc;
  --surface:#ffffff; --text:#1a1a1a;
  --text2:#4a4a4a; --text3:#909090;
  --footer:#1a2a32;
  --avail:#1f9e6a; --occ:#d94040; --mant:#d97e40;
  --sh:0 20px 60px rgba(0,0,0,.14);
  --sh2:0 4px 20px rgba(0,0,0,.09);
  --radius:8px;
  --gold-l:rgba(201,168,76,.10);
  --gold-b:rgba(201,168,76,.22);
  --brd:rgba(0,0,0,.08);
}

/* Modo oscuro desactivado */

/* ============ TIPOGRAFIA ============ */
h1,h2,h3,h4 { font-family:'Playfair Display',serif; line-height:1.1; }
h1 { font-size:clamp(26px,6.5vw,58px); font-weight:900; }
h2 { font-size:clamp(22px,5vw,38px); font-weight:700; }
h3 { font-size:clamp(18px,4vw,30px); font-weight:700; }
em { font-style:italic; color:var(--gold); }

/* ============ COOKIE BANNER ============ */
.cookie-banner {
  position:fixed; bottom:0; left:0; right:0; z-index:8000;
  background:var(--nav); color:#fff;
  padding:10px 16px;
  display:flex; align-items:center; justify-content:center;
  gap:12px; flex-wrap:wrap;
}
.cookie-banner p { font-size:11px; opacity:.85; }
.cookie-banner button {
  background:var(--gold); color:#fff;
  padding:6px 16px; border-radius:3px;
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}

/* ============ POPUP ============ */
.popup-overlay {
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,0,0,.6); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:16px;
}
.popup-box {
  background:var(--surface); border-radius:10px;
  padding:28px 22px; max-width:400px; width:100%;
  position:relative; box-shadow:var(--sh); border-top:3px solid var(--gold);
}
.popup-cerrar {
  position:absolute; top:10px; right:10px;
  width:26px; height:26px; border-radius:50%;
  background:var(--nav);
  display:flex; align-items:center; justify-content:center;
}
.popup-box h3 { font-size:20px; color:var(--text); margin-bottom:8px; }
.popup-box p { font-size:12px; color:var(--text2); line-height:1.6; }

/* ============================================================
   NAV — MOBILE FIRST
   ============================================================ */
.nav {
  background:var(--nav);
  height:58px; padding:0 12px;
  display:flex; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:500;
  box-shadow:0 2px 16px rgba(0,0,0,.25);
}
.nav-scrolled { box-shadow:0 4px 28px rgba(0,0,0,.35) !important; }

/* Logo */
.logo-link { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.logo-ico {
  width:34px; height:34px; border-radius:5px; background:var(--gold);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.logo-txt { line-height:1.1; }
.logo-nombre {
  display:block; font-size:13px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:#fff;
}
.logo-sub {
  display:block; font-size:7px; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.4); margin-top:1px;
}

/* Links desktop — ocultos en mobile */
.nav-links { display:none; }

/* Acciones nav — en mobile solo el boton hamburguesa */
.nav-actions { display:flex; align-items:center; gap:6px; position:relative; }

/* Ocultar en mobile todos los botones excepto hamburguesa */
.btn-lang,
.btn-paleta,
.btn-modo,
.btn-nav-ghost,
.btn-nav-gold { display:none; }

/* Boton hamburguesa — siempre visible en mobile */
.btn-menu-movil {
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  color:#fff; padding:7px; border-radius:5px;
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px;
}

/* ============ MENU MOVIL ============ */
.menu-movil {
  position:fixed; top:58px; left:0; right:0; z-index:490;
  background:var(--nav2);
  transform:translateY(-110%); visibility:hidden;
  transition:transform .3s ease, visibility .3s;
  border-bottom:2px solid var(--gold);
  box-shadow:0 8px 28px rgba(0,0,0,.3);
  max-height:calc(100vh - 58px); overflow-y:auto;
}
.menu-movil.abierto { transform:translateY(0); visibility:visible; }

/* Links del menu */
.menu-movil ul { padding:6px 0 12px; }
.menu-movil li a {
  display:block; padding:12px 20px;
  font-size:13px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(255,255,255,.05);
  transition:color .2s, background .2s;
}
.menu-movil li a:hover { color:#fff; background:rgba(255,255,255,.06); }

/* Separador dentro del menu */
.menu-movil .menu-sep {
  height:1px; background:rgba(255,255,255,.1); margin:6px 16px;
}

/* Botones dentro del menu movil */
.menu-movil .menu-acciones {
  padding:10px 16px 6px;
  display:flex; flex-direction:column; gap:8px;
}
.menu-movil .menu-acciones a,
.menu-movil .menu-acciones button {
  display:block; padding:11px 16px; border-radius:5px;
  font-size:12px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; text-align:center; width:100%;
  transition:opacity .2s;
}
.btn-movil-ghost {
  background:transparent; border:1px solid rgba(255,255,255,.25);
  color:rgba(255,255,255,.85);
}
.btn-movil-gold {
  background:var(--gold); color:#fff; border:none;
}
.btn-movil-gold:hover, .btn-movil-ghost:hover { opacity:.85; }

/* Fila de utilidades en menu: idioma / paleta / modo */
.menu-utils {
  display:flex; gap:8px; padding:6px 16px 12px; flex-wrap:wrap;
}
.menu-utils button,
.menu-utils a {
  flex:1; min-width:80px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.8); padding:8px 10px; border-radius:4px;
  font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  text-align:center; display:flex; align-items:center; justify-content:center; gap:5px;
}

/* Paleta dropdown dentro del menu */
.menu-paletas { padding:0 16px 10px; display:flex; gap:8px; }
.menu-paletas a {
  flex:1; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  border-radius:5px; padding:9px 10px;
  display:flex; align-items:center; gap:7px;
  font-size:11px; color:rgba(255,255,255,.75); font-weight:500;
  transition:background .2s;
}
.menu-paletas a:hover { background:rgba(255,255,255,.14); }
.menu-paletas a.active { border-color:var(--gold); color:var(--gold); }
.paleta-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position:relative;
  height:75vw; min-height:340px; max-height:680px;
  overflow:hidden; background:#1a2030;
}
.hero-img {
  position:absolute; inset:0; width:100%; height:115%;
  /* background se aplica desde PHP segun extension */
  will-change:transform;
}
.hero-ov {
  position:absolute; inset:0;
  background:linear-gradient(
    to bottom,
    rgba(20,40,50,.15) 0%,
    rgba(20,40,50,.5) 38%,
    rgba(20,40,50,.78) 62%,
    var(--bg) 100%
  );
}
.hero-acento { position:absolute; top:0; right:0; width:60px; height:3px; background:var(--gold); }

.hero-body {
  position:absolute; bottom:0; left:0; right:0;
  padding:0 14px 20px;
}
.hero-tag { display:inline-flex; align-items:center; gap:8px; margin-bottom:10px; }
.hero-tag-linea { display:block; width:20px; height:1px; background:var(--gold); }
.hero-tag-txt {
  font-size:8px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold);
}
.hero-titulo { color:#fff; margin-bottom:8px; text-shadow:0 2px 16px rgba(0,0,0,.4); }
.hero-sub {
  font-size:clamp(11px,2.5vw,13px); color:rgba(255,255,255,.65);
  font-weight:300; line-height:1.55; margin-bottom:16px; max-width:480px;
}

/* Search box — compacto en mobile */
.search-box {
  background:#fff; border-radius:6px;
  border-top:3px solid var(--gold);
  overflow:hidden; box-shadow:var(--sh);
}
.search-row { display:flex; flex-direction:column; }
.search-field {
  padding:10px 14px; border-bottom:1px solid rgba(0,0,0,.07);
  display:flex; align-items:center; gap:10px;
}
.search-field:last-of-type { border-bottom:none; }
.sf-lbl {
  font-size:8px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold); white-space:nowrap; min-width:64px;
}
.sf-input {
  border:none; outline:none; font-size:12px; color:#444;
  background:transparent; flex:1; min-width:0;
}
.sf-contador { display:flex; align-items:center; gap:8px; flex:1; }
.sf-contador button {
  background:var(--gold-l); border:1px solid var(--gold-b);
  border-radius:3px; width:22px; height:22px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.sf-contador span {
  font-size:13px; font-weight:700; color:var(--text);
  min-width:18px; text-align:center;
}
.btn-buscar {
  width:100%; background:var(--gold); color:#fff; border:none;
  padding:13px; font-size:12px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; justify-content:center; gap:7px;
  transition:background .2s;
}
.btn-buscar:hover { background:var(--gold2); }

/* ============ STATS ============ */
.stats-bar {
  display:grid; grid-template-columns:repeat(2,1fr);
  background:var(--nav);
}
.stat-item {
  padding:18px 10px; text-align:center;
  border-right:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.stat-item:nth-child(2n) { border-right:none; }
.stat-item:nth-child(3),.stat-item:nth-child(4) { border-bottom:none; }
.stat-num {
  font-family:'Playfair Display',serif;
  font-size:clamp(28px,7vw,44px); font-weight:700;
  color:var(--gold); line-height:1; margin-bottom:4px;
}
.stat-lbl {
  font-size:8px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(255,255,255,.5);
}

/* ============ SECCIONES ============ */
.sec { padding:40px 14px; background:var(--bg); }
.sec.alt { background:var(--bg2); }
.sec-head { margin-bottom:24px; }
.sec-pre { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.sec-linea { display:block; width:18px; height:1px; background:var(--gold); flex-shrink:0; }
.sec-pretxt {
  font-size:8px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold);
}
.sec-titulo { color:var(--text); margin-bottom:8px; }
.sec-desc {
  font-size:12px; color:var(--text3); font-weight:300;
  line-height:1.6; max-width:420px;
}
.sec-ver-mas { text-align:center; margin-top:24px; }
.btn-ver-todos {
  display:inline-block; border:1px solid var(--gold-b);
  color:var(--gold); padding:10px 24px; border-radius:4px;
  font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  transition:all .2s;
}
.btn-ver-todos:hover { background:var(--gold); color:#fff; }
.sin-deptos {
  font-size:13px; color:var(--text3); text-align:center; padding:32px 0;
}

/* ============ TARJETAS DEPARTAMENTOS ============ */
.deptos-grid { display:flex; flex-direction:column; gap:16px; }
.dcard {
  background:var(--surface); border:1px solid var(--brd);
  border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--sh2); border-top:3px solid var(--gold);
  transition:transform .3s,box-shadow .3s;
}
.dcard:hover { transform:translateY(-3px); box-shadow:var(--sh); }
.dcard-img {
  height:190px; position:relative;
  background:var(--nav) center/cover no-repeat;
}
.dcard-img::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.28) 0%,transparent 55%);
}
.badge-avail,.badge-occ,.badge-mant {
  position:absolute; top:10px; left:10px;
  padding:4px 10px; border-radius:2px;
  font-size:8px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:#fff;
  display:flex; align-items:center; gap:4px;
}
.badge-avail { background:var(--avail); }
.badge-occ   { background:var(--occ); }
.badge-mant  { background:var(--mant); }
.btn-fav {
  position:absolute; top:10px; right:10px;
  width:30px; height:30px; border-radius:50%;
  background:rgba(0,0,0,.35); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.btn-fav:hover { background:rgba(0,0,0,.55); }
.btn-fav.activo { background:rgba(201,168,76,.2); }
.dcard-body { padding:16px; }
.dcard-tipo {
  font-size:8px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:6px; display:flex; align-items:center; gap:5px;
}
.dcard-tipo::before { content:''; display:block; width:12px; height:1px; background:var(--gold); }
.dcard-nombre {
  font-size:19px; font-weight:700; color:var(--text);
  margin-bottom:9px; line-height:1.15;
}
.dcard-ams { display:flex; flex-wrap:wrap; gap:5px 12px; margin-bottom:11px; }
.am { display:flex; align-items:center; gap:4px; font-size:10px; color:var(--text3); }
.dcard-sep { height:1px; background:var(--brd); margin-bottom:11px; }
.dcard-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.precio-bs { font-size:18px; font-weight:700; color:var(--text); letter-spacing:-.01em; }
.precio-bs span { font-size:11px; font-weight:400; color:var(--text3); }
.precio-usd { font-size:11px; color:var(--gold); font-weight:600; margin-top:2px; }
.btn-reservar {
  background:var(--gold); color:#fff;
  padding:10px 16px; border-radius:3px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  flex-shrink:0; transition:background .2s; white-space:nowrap;
}
.btn-reservar:hover { background:var(--gold2); }
.btn-ver-detalles {
  background:var(--text3); color:#fff;
  padding:10px 16px; border-radius:3px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  flex-shrink:0; white-space:nowrap;
}

/* ============ GALERIA ============ */
.galeria-strip { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; }
.gal-item { height:110px; overflow:hidden; position:relative; cursor:pointer; }
.gal-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.gal-item:hover img { transform:scale(1.06); }
.gal-item::after {
  content:''; position:absolute; inset:0;
  background:rgba(0,0,0,0); transition:background .3s;
}
.gal-item:hover::after { background:rgba(0,0,0,.15); }

/* ============ SERVICIOS ============ */
.servicios-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.srv-item {
  background:var(--surface); border:1px solid var(--brd);
  border-radius:6px; padding:16px 8px;
  display:flex; flex-direction:column; align-items:center; gap:7px;
  text-align:center; position:relative; overflow:hidden; transition:border-color .25s;
}
.srv-item::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:var(--gold); transform:scaleX(0);
  transition:transform .25s; transform-origin:center;
}
.srv-item:hover { border-color:var(--gold-b); }
.srv-item:hover::after { transform:scaleX(1); }
.srv-ico {
  width:40px; height:40px; background:var(--gold-l);
  border:1px solid var(--gold-b); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.srv-lbl {
  font-size:9px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--text2);
}

/* ============ PROMO ============ */
.promo-band {
  background:var(--gold); padding:24px 14px;
  position:relative; overflow:hidden;
}
.promo-band::before {
  content:''; position:absolute; top:-40px; right:-20px;
  width:140px; height:140px; border-radius:50%; background:rgba(255,255,255,.06);
}
.promo-inner { position:relative; z-index:1; display:flex; flex-direction:column; gap:14px; }
.promo-ey {
  font-size:8px; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(255,255,255,.65); margin-bottom:4px;
}
.promo-titulo {
  font-family:'Playfair Display',serif;
  font-size:clamp(20px,5vw,30px); font-weight:700;
  color:#fff; line-height:1.15;
}
.promo-timer { display:flex; gap:6px; }
.t-unit {
  flex:1; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  border-radius:4px; padding:8px 4px; text-align:center;
}
.t-num {
  display:block; font-size:clamp(18px,5vw,26px);
  font-weight:700; color:#fff; line-height:1;
}
.t-lbl {
  display:block; font-size:7px; color:rgba(255,255,255,.6);
  letter-spacing:.1em; text-transform:uppercase; margin-top:2px;
}
.promo-btns { display:flex; gap:7px; }
.btn-pw {
  flex:1; background:#fff; color:var(--gold); border:none;
  padding:11px; border-radius:3px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-align:center;
}
.btn-po {
  flex:1; background:transparent; border:1px solid rgba(255,255,255,.38); color:#fff;
  padding:11px; border-radius:3px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-align:center;
}

/* ============ RESENAS ============ */
.resenas-grid { display:flex; flex-direction:column; gap:11px; margin-top:20px; }
.rcard {
  background:var(--surface); border:1px solid var(--brd);
  border-radius:6px; padding:16px; border-left:3px solid var(--gold);
}
.rcard-stars { display:flex; gap:2px; margin-bottom:8px; }
.rcard-q {
  font-size:12px; color:var(--text2); font-style:italic;
  font-weight:300; line-height:1.6; margin-bottom:11px;
}
.rcard-q::before {
  content:'\201C'; font-size:17px;
  font-family:'Playfair Display',serif;
  color:var(--gold); opacity:.5; margin-right:2px;
}
.rcard-autor { display:flex; align-items:center; gap:8px; }
.rcard-av {
  width:30px; height:30px; border-radius:50%;
  background:var(--gold-l); border:1px solid var(--gold-b);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.rcard-nombre { font-size:11px; font-weight:700; color:var(--text); }
.rcard-fecha { font-size:9px; color:var(--text3); margin-top:1px; }

/* Formulario resena */
.nueva-resena { margin-top:24px; padding-top:20px; border-top:1px solid var(--brd); }
.nueva-resena h4 { font-size:15px; color:var(--text); margin-bottom:12px; }
.form-resena { display:flex; flex-direction:column; gap:9px; }
.form-select,.form-input,.form-textarea {
  border:1px solid var(--brd); border-radius:5px;
  padding:10px 13px; font-size:12px; color:var(--text);
  background:var(--surface); outline:none; transition:border-color .2s;
  width:100%;
}
.form-select:focus,.form-input:focus,.form-textarea:focus { border-color:var(--gold); }
.form-stars { display:flex; gap:5px; padding:3px 0; }
.star-sel { cursor:pointer; transition:transform .15s; }
.star-sel:hover { transform:scale(1.15); }
.btn-enviar-resena,.btn-enviar {
  background:var(--gold); color:#fff; border:none;
  padding:12px; border-radius:4px;
  font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  transition:background .2s; width:100%;
}
.btn-enviar-resena:hover,.btn-enviar:hover { background:var(--gold2); }

/* ============ ABOUT ============ */
.about-strip {
  background:var(--nav); padding:32px 14px;
  position:relative; overflow:hidden;
}
.about-strip::before {
  content:'SAMAY'; position:absolute; right:-8px; top:50%; transform:translateY(-50%);
  font-family:'Playfair Display',serif; font-size:70px; font-weight:900;
  color:rgba(255,255,255,.03); letter-spacing:.1em; white-space:nowrap; pointer-events:none;
}
.about-inner { position:relative; z-index:1; }
.about-titulo { color:#fff; margin-bottom:9px; line-height:1.15; }
.about-txt {
  font-size:12px; color:rgba(255,255,255,.55);
  font-weight:300; line-height:1.7; margin-bottom:16px;
}
.btn-about {
  display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold); border:1px solid var(--gold-b); padding:9px 16px; border-radius:3px;
  transition:background .2s;
}
.btn-about:hover { background:var(--gold-l); }

/* ============ FAQ ============ */
.faq-lista { display:flex; flex-direction:column; gap:7px; margin-top:20px; }
.faq-item {
  background:var(--surface); border:1px solid var(--brd);
  border-radius:6px; overflow:hidden; transition:border-color .2s;
}
.faq-item.abierto { border-color:var(--gold-b); }
.faq-preg {
  width:100%; background:none; border:none;
  padding:13px 15px; text-align:left;
  font-size:13px; font-weight:600; color:var(--text);
  display:flex; align-items:center; justify-content:space-between; gap:9px;
}
.faq-ico { flex-shrink:0; transition:transform .25s; }
.faq-item.abierto .faq-ico { transform:rotate(45deg); }
.faq-resp { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-item.abierto .faq-resp { max-height:300px; }
.faq-resp p {
  padding:0 15px 13px; font-size:12px;
  color:var(--text2); font-weight:300; line-height:1.65;
}

/* ============ CONTACTO ============ */
.contacto-grid { display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.c-item {
  background:var(--surface); border:1px solid var(--brd);
  border-radius:6px; padding:13px 15px;
  display:flex; align-items:center; gap:11px;
}
.c-ico {
  width:38px; height:38px; background:var(--gold-l);
  border:1px solid var(--gold-b); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.c-lbl {
  font-size:8px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gold); margin-bottom:2px;
}
.c-val { font-size:13px; font-weight:500; color:var(--text); }
.mapa-wrap { margin-top:14px; border-radius:8px; overflow:hidden; }
.mapa-ph {
  height:160px; background:var(--surface); border:1px solid var(--brd);
  border-radius:6px; margin-top:14px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
}
.mapa-ph p { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.form-contacto-wrap { margin-top:20px; padding-top:18px; border-top:1px solid var(--brd); }
.form-contacto-wrap h4 { font-size:15px; color:var(--text); margin-bottom:12px; }
.form-contacto { display:flex; flex-direction:column; gap:9px; }

/* ============ FOOTER ============ */
.footer {
  background:var(--footer);
  border-top:3px solid var(--gold);
  padding:32px 14px 22px;
}
.footer-inner { margin-bottom:20px; }
.footer-brand { margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.07); }
.footer-logo { display:flex; align-items:center; gap:8px; margin-bottom:5px; }
.footer-nombre { font-size:14px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#fff; }
.footer-sub { display:block; font-size:8px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.3); margin-bottom:9px; }
.footer-desc { font-size:11px; color:rgba(255,255,255,.38); font-weight:300; line-height:1.65; margin-bottom:13px; max-width:240px; }
.footer-soc { display:flex; gap:7px; }
.soc-btn {
  width:32px; height:32px; border-radius:4px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center; transition:background .2s;
}
.soc-btn:hover { background:rgba(255,255,255,.14); }
.footer-cols { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.footer-col h4 { font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-bottom:10px; }
.footer-col ul { display:flex; flex-direction:column; gap:7px; }
.footer-col li a { font-size:11px; color:rgba(255,255,255,.3); transition:color .2s; }
.footer-col li a:hover { color:var(--gold); }
.footer-bot {
  border-top:1px solid rgba(255,255,255,.06); padding-top:14px;
  display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center;
}
.footer-bot span { font-size:10px; color:rgba(255,255,255,.22); }
.footer-links { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.footer-links a { font-size:10px; color:rgba(255,255,255,.28); transition:color .2s; }
.footer-links a:hover { color:var(--gold); }

/* ============ FLOTANTES ============ */
.flotantes {
  position:fixed; bottom:18px; right:12px;
  display:flex; flex-direction:column; gap:7px; z-index:400;
}
.flt-btn {
  width:44px; height:44px; border-radius:50%; border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(0,0,0,.3); transition:transform .2s;
}
.flt-btn:hover { transform:scale(1.1); }
.flt-wa { background:#25D366; }
.flt-tg { background:#2AABEE; }
.flt-ig { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }

/* ============ ANIMACIONES ============ */
.anim-entrada { opacity:0; transform:translateY(18px); transition:opacity .5s,transform .5s; }
.anim-entrada.visible { opacity:1; transform:translateY(0); }

/* ============================================================
   TABLET 600px+
   ============================================================ */
@media(min-width:600px){
  /* Nav: mostrar algunos botones */
  .btn-lang,.btn-paleta,.btn-modo { display:flex; }
  .btn-menu-movil { display:flex; }

  .nav { padding:0 20px; }
  .hero-body { padding:0 20px 28px; }
  .sec { padding:52px 20px; }
  .about-strip { padding:40px 20px; }
  .footer { padding:40px 20px 26px; }

  /* Search horizontal */
  .search-row { flex-direction:row; }
  .search-field { flex:1; border-bottom:none; border-right:1px solid rgba(0,0,0,.07); }
  .search-field:last-of-type { border-right:none; }
  .btn-buscar { width:auto; padding:0 22px; flex-shrink:0; }

  /* Stats 4 col */
  .stats-bar { grid-template-columns:repeat(4,1fr); }
  .stat-item:nth-child(2n) { border-right:1px solid rgba(255,255,255,.07); }
  .stat-item:nth-child(3),.stat-item:nth-child(4) { border-bottom:none; }

  /* Deptos 2 col */
  .deptos-grid { display:grid; grid-template-columns:repeat(2,1fr); }

  /* Servicios 6 col */
  .servicios-grid { grid-template-columns:repeat(6,1fr); }

  /* Promo horizontal */
  .promo-inner { flex-direction:row; align-items:center; flex-wrap:wrap; }
  .promo-titulo { margin-bottom:0; }
  .promo-btns { flex-direction:column; min-width:120px; }

  /* Resenas 2 col */
  .resenas-grid { display:grid; grid-template-columns:repeat(2,1fr); }

  /* Contacto 3 col */
  .contacto-grid { display:grid; grid-template-columns:repeat(3,1fr); }

  /* Galeria 4 col */
  .galeria-strip { grid-template-columns:repeat(4,1fr); }
  .gal-item { height:130px; }

  /* Footer */
  .footer-inner { display:flex; gap:28px; align-items:flex-start; }
  .footer-brand { margin-bottom:0; padding-bottom:0; border-bottom:none; flex-shrink:0; }
  .footer-cols { grid-template-columns:repeat(3,1fr); flex:1; }
  .footer-bot { flex-direction:row; justify-content:space-between; text-align:left; }
}

/* ============================================================
   DESKTOP 860px+
   ============================================================ */
@media(min-width:860px){
  /* Nav completo */
  .nav-links { display:flex; gap:0; }
  .nav-links li a {
    display:block; height:58px; line-height:58px;
    padding:0 13px; font-size:11px; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase;
    color:rgba(255,255,255,.72);
    border-bottom:2px solid transparent;
    transition:color .2s,border-color .2s;
  }
  .nav-links li a:hover,.nav-links li a.act { color:#fff; border-bottom-color:var(--gold); }

  /* Mostrar botones de accion en desktop */
  .btn-nav-ghost,.btn-nav-gold { display:inline-flex; }
  /* Ocultar hamburguesa en desktop */
  .btn-menu-movil { display:none; }

  .nav { padding:0 40px; height:64px; }
  .nav-links li a { height:64px; line-height:64px; }
  .hero-body { padding:0 40px 44px; }
  .sec { padding:64px 40px; }
  .about-strip { padding:48px 40px; }
  .footer { padding:48px 40px 30px; }

  /* Deptos 3 col */
  .deptos-grid { grid-template-columns:repeat(3,1fr); }

  /* Resenas 3 col */
  .resenas-grid { grid-template-columns:repeat(3,1fr); }

  /* Promo sin wrap */
  .promo-inner { flex-wrap:nowrap; }
  .promo-btns { flex-direction:row; }

  /* Galeria */
  .gal-item { height:180px; }
  .search-box { max-width:700px; }
}

/* ============================================================
   DESKTOP GRANDE 1200px+
   ============================================================ */
@media(min-width:1200px){
  .nav { padding:0 64px; }
  .hero-body { padding:0 64px 52px; }
  .sec { padding:76px 64px; }
  .about-strip { padding:56px 64px; }
  .footer { padding:56px 64px 34px; }
}

/* ============ ESTILOS EXTRA ============ */
.btn-lang {
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.85); padding:6px 9px; border-radius:3px;
  font-size:9px; font-weight:700; letter-spacing:.1em; align-items:center;
}
.btn-paleta-toggle {
  width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  cursor:pointer; transition:background .2s; flex-shrink:0;
}
.btn-paleta-toggle:hover { background:rgba(255,255,255,.22); }
.btn-paleta { display:none; }
.btn-modo { display:none !important; }
.btn-nav-ghost {
  background:transparent; border:1px solid rgba(255,255,255,.28);
  color:rgba(255,255,255,.85); padding:7px 12px; border-radius:3px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  align-items:center; transition:all .2s;
}
.btn-nav-ghost:hover { background:rgba(255,255,255,.1); }
.btn-nav-gold {
  background:var(--gold); border:1px solid var(--gold);
  color:#fff; padding:8px 14px; border-radius:3px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  align-items:center; transition:background .2s;
}
.btn-nav-gold:hover { background:var(--gold2); }

/* Paleta dropdown desktop */
.paleta-menu {
  display:none; position:absolute; top:calc(100% + 8px); right:0;
  background:var(--surface); border:1px solid var(--brd);
  border-radius:6px; overflow:hidden;
  box-shadow:var(--sh2); min-width:155px; z-index:600;
}
.paleta-menu.visible { display:block; }
.paleta-op {
  display:flex; align-items:center; gap:8px;
  padding:10px 13px; font-size:12px; font-weight:500;
  color:var(--text2); transition:background .15s;
}
.paleta-op:hover { background:var(--bg2); }
.paleta-op.active { color:var(--gold); font-weight:700; }

/* Badge pulso */
.badge-avail::before {
  content:''; display:inline-block;
  width:6px; height:6px; border-radius:50%; background:#fff; margin-right:4px;
  animation:pulso 1.5s infinite;
}
@keyframes pulso {
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(1.4)}
}

/* Alertas */
.alerta {
  position:fixed; bottom:72px; left:50%; transform:translateX(-50%) translateY(16px);
  background:var(--nav); color:#fff; padding:11px 22px; border-radius:5px;
  font-size:13px; font-weight:600; z-index:9999;
  box-shadow:0 4px 18px rgba(0,0,0,.22);
  opacity:0; transition:opacity .3s,transform .3s;
  white-space:nowrap; max-width:90vw; text-align:center;
}
.alerta.visible { opacity:1; transform:translateX(-50%) translateY(0); }
.alerta-ok { background:#1f9e6a; }
.alerta-error { background:#d94040; }
.alerta-info { background:var(--nav); border-left:3px solid var(--gold); }

/* Lightbox */
.lightbox {
  position:fixed; inset:0; z-index:9000;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .3s;
}
.lightbox.visible { opacity:1; }
.lb-overlay { position:absolute; inset:0; background:rgba(0,0,0,.88); }
.lb-box { position:relative; z-index:1; max-width:90vw; max-height:90vh; }
.lb-img { max-width:90vw; max-height:85vh; border-radius:6px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lb-cerrar {
  position:absolute; top:-14px; right:-14px;
  width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}

/* Input error */
.input-error { border-color:#d94040 !important; }

/* Scroll top */
#btn-top {
  position:fixed; bottom:76px; left:14px; z-index:400;
  width:36px; height:36px; border-radius:50%;
  background:var(--nav); border:1px solid var(--gold-b);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .3s;
}
#btn-top.visible { opacity:1; pointer-events:auto; }

/* Carrusel */
.car-foto { display:none; }
.car-foto.activa { display:block; }
.car-dot { cursor:pointer; transition:background .2s; }
.car-dot.activo { background:var(--gold) !important; }
