* { box-sizing: border-box; }
body { margin:0; font-family:'Poppins',sans-serif; color:#1f2937; background:#fff; }

/* NAV */
nav {
  position:sticky; top:0; z-index:100;
  background:#eaf2fb;
  padding:14px 24px;
  display:flex; justify-content:space-between; align-items:center;
}
.nav-left img { height:44px; }
.nav-right .nav-link {
  margin-left:22px; text-decoration:none; font-weight:500; color:#1e3a5f;
}
.nav-right .nav-cta-btn {
  margin-left:22px; text-decoration:none; font-weight:700; color:white; 
  background: linear-gradient(135deg, #f59e0b, #ef6c00); 
  padding:8px 20px; border-radius:25px; box-shadow:0 4px 15px rgba(245,158,11,0.4);
  transition:all 0.3s ease;
}
.nav-right .nav-cta-btn:hover {
  transform:translateY(-2px); box-shadow:0 6px 20px rgba(245,158,11,0.5);
}
.mobile-menu .mobile-cta {
  display:block; margin-top:20px; padding:12px; background:#f59e0b; color:white; 
  text-align:center; border-radius:12px; font-weight:700; text-decoration:none;
}


/* HEADER */
header {
  min-height:90vh;
  background:linear-gradient(rgba(15,23,42,.35),rgba(15,23,42,.35)),
  url('https://images.unsplash.com/photo-1600585154084-4e5fe7c39198') center/cover no-repeat;
  color:#fff;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding:40px 20px;
}
header img { max-width:120px; margin-bottom:25px; }
header h1 { font-size:3rem; margin-bottom:20px; }
header p { max-width:700px; font-size:1.2rem; margin-bottom:30px; }

.btn { background:#f59e0b; color:#111827; padding:14px 28px; border-radius:999px; text-decoration:none; font-weight:600; }

section { padding:50px 20px; max-width:1200px; margin:0 auto; }
#propiedades, #testimonios, #experiencia { max-width:100%; padding:80px 20px; margin:0 !important; }
#propiedades > *, #testimonios > *, #experiencia > * { max-width:1200px; margin:0 auto; }


section h2 { text-align:center; font-size:2.3rem; margin-bottom:50px; color:#0f172a; }

.grid, .bancos-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:30px; }
.bancos-grid .card { transition: transform 0.3s ease; }
.bancos-grid .card:hover { transform: translateY(-5px); }
.card { background:#fff; border-radius:20px; box-shadow:0 15px 40px rgba(0,0,0,.08); overflow:hidden; }
.card img { width:100%; height:220px; object-fit:cover; }
.card-content { padding:25px; }

/* CONTACTO */
form { background:#f8fafc; padding:40px; border-radius:20px; }
input,textarea { width:100%; padding:14px; margin-bottom:18px; border-radius:10px; border:1px solid #cbd5f5; }

footer { background:#1e3a5f; color:#fff; text-align:center; padding:40px 20px; }

/* TESTIMONIOS */
.testimonial-wrapper {
  overflow: hidden;
  position: relative;
}
.testimonial-track {
  display: flex;
  gap: 30px;
}
.testimonial-card {
  min-width: 260px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(0,0,0,.08);
  padding: 20px;
  text-align: center;
}
.testimonial-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 14px;
  margin-bottom: 15px;
}

/* Desktop: rotación automática */
@media (min-width: 769px) {
  .testimonial-track {
    animation: scrollTestimonials 40s linear infinite;
  }
  @keyframes scrollTestimonials {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
}

/* Mobile: swipe horizontal */
@media (max-width: 768px) {
  .testimonial-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .testimonial-track {
    animation: none;
    padding-bottom: 10px;
  }
  .testimonial-wrapper::-webkit-scrollbar {
    display: none;
  }
}

/* MOBILE NAV HAMBURGUESA */
.hamburger {
  display: none;
  font-size: 28px;
  cursor: pointer;
  color: #1e3a5f;
}
.mobile-menu {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  width: 260px;
  height: 100vh;
  background: #ffffff;
  box-shadow: -10px 0 30px rgba(0,0,0,.15);
  padding: 40px 25px;
  z-index: 999;
}
.mobile-menu .close {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 28px;
  cursor: pointer;
  color: #1e3a5f;
}
.mobile-menu a {
  display: block;
  margin-bottom: 22px;
  color: #1e3a5f;
  text-decoration: none;
  font-weight: 600;
  font-size: 1.2rem;
  line-height: 1.4;
}

/* MOBILE */
@media (max-width: 768px) {
  .nav-right { display: none; }
  .hamburger { display: block; }
  .nav-right a { margin:0 10px; }
  header h1 { font-size:2.2rem; }
}
