/* ============================================
   ACULCO VIVO — TEMA OSCURO
   Fondo negro · letra blanca · acentos rojo puro
   Tipografía: Montserrat (títulos Black 900)
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;900&display=swap');

:root{
  --negro:#0a0a0a;
  --negro-2:#141414;
  --gris:#1f1f1f;
  --blanco:#ffffff;
  --rojo:#ff0000;
  --rojo-suave:#ff3333;
  --gris-texto:#cccccc;
}
*{box-sizing:border-box}
body{
  margin:0;
  background:var(--negro);
  color:var(--blanco);
  font-family:'Montserrat',sans-serif;
  font-weight:400;
  line-height:1.6;
}
h1,h2,h3,h4{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  color:var(--blanco);
  letter-spacing:-0.5px;
}
h1{font-size:2.2rem;margin:0 0 12px}
h1 em,h2 em{color:var(--rojo);font-style:normal}
a{color:var(--rojo);text-decoration:none}
a:hover{color:var(--rojo-suave)}

/* Topbar */
.topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 24px;background:#000;
  border-bottom:2px solid var(--rojo);
  position:sticky;top:0;z-index:999;
}
.brand{color:var(--blanco);text-decoration:none;font-size:1.3rem;font-weight:900}
.brand strong{color:var(--rojo)}
nav a{
  color:var(--gris-texto);margin-left:20px;text-decoration:none;
  font-weight:600;font-size:.95rem;transition:color .2s;
}
nav a:hover{color:var(--rojo)}

/* Layout */
main{max-width:1150px;margin:0 auto;padding:32px 20px}
p{color:var(--gris-texto)}

/* Buscador */
.searchbar{display:flex;gap:10px;margin:24px 0}
.searchbar input{
  flex:1;padding:14px 18px;background:var(--negro-2);
  border:1px solid #333;border-radius:10px;color:var(--blanco);
  font-family:'Montserrat',sans-serif;font-size:1rem;
}
.searchbar input::placeholder{color:#777}
.searchbar input:focus{outline:none;border-color:var(--rojo)}
.searchbar button{
  padding:14px 26px;background:var(--rojo);color:#fff;border:0;
  border-radius:10px;cursor:pointer;font-family:'Montserrat',sans-serif;
  font-weight:700;font-size:1rem;transition:background .2s;
}
.searchbar button:hover{background:var(--rojo-suave)}

/* Mapa */
#map{
  height:70vh;border-radius:14px;border:1px solid #333;
  filter:grayscale(0.3) contrast(1.1);
}

/* Tarjetas */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:24px}
.card{
  background:var(--negro-2);border:1px solid #2a2a2a;border-radius:14px;
  padding:18px;transition:border-color .2s, transform .2s;
}
.card:hover{border-color:var(--rojo);transform:translateY(-3px)}
.card h3{margin:0 0 8px;font-size:1.1rem}
.card p{margin:0 0 10px;font-size:.9rem}
.card a{font-weight:700;font-size:.9rem}

.badge{
  display:inline-block;background:var(--rojo);color:#fff;
  padding:3px 10px;border-radius:20px;font-size:.7rem;
  font-weight:700;font-family:'Montserrat',sans-serif;
  text-transform:uppercase;letter-spacing:.5px;
}

/* Formularios */
form.stack label{
  display:block;margin:14px 0 6px;font-family:'Montserrat',sans-serif;
  font-size:.85rem;font-weight:600;color:var(--gris-texto);
}
form.stack input,form.stack textarea,form.stack select{
  width:100%;padding:12px;background:var(--negro-2);
  border:1px solid #333;border-radius:8px;color:var(--blanco);
  font-family:'Montserrat',sans-serif;font-size:.95rem;
}
form.stack input:focus,form.stack textarea:focus,form.stack select:focus{
  outline:none;border-color:var(--rojo);
}
form.stack input[type=checkbox]{width:auto;margin-right:8px}
.btn{
  display:inline-block;background:var(--rojo);color:#fff;
  padding:13px 26px;border:0;border-radius:8px;cursor:pointer;
  text-decoration:none;font-family:'Montserrat',sans-serif;
  font-weight:700;margin-top:16px;transition:background .2s;
}
.btn:hover{background:var(--rojo-suave)}

/* Footer */
footer{
  padding:32px 20px;text-align:center;font-size:.85rem;
  color:#888;border-top:1px solid #222;margin-top:40px;
}
.ad-slot{max-width:728px;margin:0 auto 16px;min-height:90px}

/* Quesito */
#quesito-btn{
  position:fixed;bottom:22px;right:22px;
  background:var(--rojo);color:#fff;padding:14px 22px;
  border-radius:30px;cursor:pointer;font-family:'Montserrat',sans-serif;
  font-weight:700;box-shadow:0 6px 20px rgba(255,0,0,.35);z-index:1000;
  transition:transform .2s;
}
#quesito-btn:hover{transform:scale(1.05)}
#quesito-panel{
  position:fixed;bottom:90px;right:22px;width:360px;max-width:92vw;
  background:var(--negro-2);border:1px solid #333;border-radius:16px;
  box-shadow:0 12px 40px rgba(0,0,0,.6);display:none;flex-direction:column;
  z-index:1001;overflow:hidden;
}
#quesito-panel.open{display:flex}
.q-head{
  background:var(--rojo);color:#fff;padding:12px 16px;
  display:flex;justify-content:space-between;cursor:pointer;
  font-weight:700;
}
.q-head span{cursor:pointer;font-weight:400}
#q-chat{height:320px;overflow-y:auto;padding:14px;font-size:.9rem}
#q-chat .me{
  background:var(--gris);color:var(--blanco);padding:10px 14px;
  border-radius:12px;margin:8px 0;text-align:right;margin-left:40px;
}
#q-chat .bot{
  background:#1a1a1a;border:1px solid #333;color:var(--gris-texto);
  padding:10px 14px;border-radius:12px;margin:8px 0;margin-right:40px;
}
#q-chat .bot a{color:var(--rojo)}
#q-form{display:flex;border-top:1px solid #333}
#q-input{
  flex:1;border:0;padding:14px;background:var(--negro);
  color:var(--blanco);font-family:'Montserrat',sans-serif;font-size:.95rem;
}
#q-input:focus{outline:none}
#q-form button{
  border:0;background:var(--rojo);color:#fff;padding:0 20px;
  cursor:pointer;font-weight:700;font-family:'Montserrat',sans-serif;
}

/* Responsive */
@media(max-width:640px){
  h1{font-size:1.6rem}
  .topbar{flex-direction:column;gap:10px}
  nav a{margin:0 8px}
  #map{height:55vh}
}
