/* ====== VARIABLES (el color principal lo define config.js vía JS) ====== */
:root{
  --color: #c0392b;
  --color-osc: #911e11;
  --tinta: #1a1a1a;
  --gris: #5b6168;
  --gris-claro: #f4f5f7;
  --blanco: #ffffff;
  --borde: #e6e8eb;
  --sombra: 0 10px 30px rgba(0,0,0,.08);
  --radio: 16px;
  --ancho: 1140px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family:'Plus Jakarta Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color:var(--tinta); line-height:1.6; background:var(--blanco);
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.contenedor{ width:90%; max-width:var(--ancho); margin:0 auto; }
.centro{ text-align:center; }
.seccion{ padding:84px 0; }
.seccion-alt{ background:var(--gris-claro); }
.seccion-angosta{ max-width:760px; }
h1{ font-size:clamp(2.1rem, 5vw, 3.6rem); font-weight:800; line-height:1.1; }
h2{ font-size:clamp(1.6rem, 3.5vw, 2.4rem); font-weight:800; margin-bottom:14px; }
.texto-grande{ font-size:1.15rem; color:var(--gris); }
.centro h2{ margin-bottom:36px; }

/* ====== BOTONES ====== */
.btn{
  display:inline-block; background:var(--color); color:#fff; font-weight:700;
  padding:13px 26px; border-radius:999px; transition:.2s; cursor:pointer; border:none;
}
.btn:hover{ background:var(--color-osc); transform:translateY(-2px); }
.btn-grande{ padding:16px 36px; font-size:1.1rem; }
.btn-claro{ background:#fff; color:var(--color); }
.btn-claro:hover{ background:#f0f0f0; }

/* ====== NAVBAR ====== */
#navbar{
  position:fixed; top:0; left:0; right:0; z-index:50;
  padding:18px 0; transition:.3s;
}
#navbar.scrolled{ background:#fff; box-shadow:0 2px 14px rgba(0,0,0,.08); padding:12px 0; }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; }
.logo{ font-weight:800; font-size:1.4rem; color:#fff; transition:.3s; }
.logo img{ height:40px; }
#navbar.scrolled .logo{ color:var(--tinta); }
.nav-links{ display:flex; gap:30px; }
.nav-links a{ color:#fff; font-weight:600; transition:.2s; }
.nav-links a:hover{ color:var(--color); }
#navbar.scrolled .nav-links a{ color:var(--tinta); }
#navbar.scrolled .nav-links a:hover{ color:var(--color); }
.btn-nav{ padding:9px 22px; }
.menu-toggle{ display:none; background:none; border:none; font-size:1.6rem; color:#fff; cursor:pointer; }
#navbar.scrolled .menu-toggle{ color:var(--tinta); }

/* ====== HERO ====== */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  background-size:cover; background-position:center; color:#fff;
}
.hero-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.65)); }
.hero-contenido{ position:relative; max-width:720px; }
.hero-rubro{ text-transform:uppercase; letter-spacing:3px; font-weight:700; font-size:.85rem; margin-bottom:14px; opacity:.9; }
.hero h1{ margin-bottom:18px; }
.hero-sub{ font-size:1.25rem; margin-bottom:32px; opacity:.95; }

/* ====== SERVICIOS ====== */
.grid-servicios{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:26px; }
.tarjeta{
  background:#fff; border:1px solid var(--borde); border-radius:var(--radio);
  padding:30px 26px; transition:.25s;
}
.tarjeta:hover{ transform:translateY(-6px); box-shadow:var(--sombra); }
.tarjeta .icono{ font-size:2.4rem; margin-bottom:14px; }
.tarjeta h3{ font-size:1.2rem; margin-bottom:8px; }
.tarjeta p{ color:var(--gris); }

/* ====== GALERÍA ====== */
.grid-galeria{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.grid-galeria img{
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:12px; transition:.3s; cursor:pointer;
}
.grid-galeria img:hover{ transform:scale(1.03); }

/* ====== RESEÑAS ====== */
.grid-resenas{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; }
.resena{ background:#fff; border-radius:var(--radio); padding:28px; box-shadow:var(--sombra); }
.resena .estrellas{ color:#f5a623; margin-bottom:10px; }
.resena p{ font-style:italic; margin-bottom:14px; }
.resena .autor{ font-weight:700; color:var(--color); }

/* ====== CTA ====== */
.cta{ background:var(--color); color:#fff; padding:72px 0; }
.cta h2{ color:#fff; }
.cta .texto-grande{ color:rgba(255,255,255,.92); margin-bottom:28px; }

/* ====== CONTACTO ====== */
.grid-contacto{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.lista-contacto{ list-style:none; margin:18px 0; }
.lista-contacto li{ padding:8px 0; color:var(--gris); font-size:1.05rem; }
.redes{ display:flex; gap:14px; margin-top:10px; }
.redes a{
  width:44px; height:44px; border-radius:50%; background:var(--color); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; transition:.2s;
}
.redes a:hover{ background:var(--color-osc); }
.contacto-mapa iframe{ width:100%; height:340px; border:0; border-radius:var(--radio); }

/* ====== PIE ====== */
footer{ background:var(--tinta); color:#cfd2d6; padding:26px 0; }
.pie-inner{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.9rem; }
.pie-inner a{ color:#fff; font-weight:600; }

/* ====== WHATSAPP FLOTANTE ====== */
.wa-flotante{
  position:fixed; bottom:22px; right:22px; z-index:60;
  width:60px; height:60px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(37,211,102,.5); transition:.2s;
}
.wa-flotante:hover{ transform:scale(1.08); }

/* ====== ANIMACIÓN REVELADO ====== */
.reveal{ opacity:0; transform:translateY(28px); transition:.7s ease; }
.reveal.visible{ opacity:1; transform:none; }

/* ====== RESPONSIVE (celular) ====== */
@media (max-width:820px){
  .nav-links{
    position:fixed; top:0; right:-100%; height:100vh; width:74%;
    background:#fff; flex-direction:column; justify-content:center; align-items:center;
    gap:30px; transition:.3s; box-shadow:-6px 0 30px rgba(0,0,0,.12);
  }
  .nav-links.abierto{ right:0; }
  .nav-links a{ color:var(--tinta); font-size:1.2rem; }
  .menu-toggle{ display:block; z-index:70; }
  .btn-nav{ display:none; }
  .grid-contacto{ grid-template-columns:1fr; }
  .seccion{ padding:60px 0; }
}
