/* ============================================================
   InmoSuite – Custom CSS (supplements Tailwind)
   ============================================================ */

/* Swiper hero override */
.hero-swiper .swiper-button-prev::after,
.hero-swiper .swiper-button-next::after { font-size: 14px !important; font-weight: 900; }

.hero-swiper .swiper-pagination-bullet {
  background: rgba(255,255,255,0.5);
  width: 8px; height: 8px;
  opacity: 1;
  transition: all 0.3s;
}
.hero-swiper .swiper-pagination-bullet-active {
  background: #E8A020;
  width: 24px;
  border-radius: 4px;
}

/* Property cards – image zoom */
.property-card img { will-change: transform; }

/* Line clamp utility */
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* Stat cards */
.stat-card { animation: fadeInUp 0.6s ease both; }
.stat-card:nth-child(2) { animation-delay: 0.1s; }
.stat-card:nth-child(3) { animation-delay: 0.2s; }
.stat-card:nth-child(4) { animation-delay: 0.3s; }

/* Property grid animations */
.property-card {
  animation: fadeInUp 0.5s ease both;
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Slide content animation */
.swiper-slide-active .slide-content h1,
.swiper-slide-active .slide-content p,
.swiper-slide-active .slide-content a {
  animation: slideIn 0.8s ease both;
}
.swiper-slide-active .slide-content p   { animation-delay: 0.15s; }
.swiper-slide-active .slide-content a   { animation-delay: 0.3s; }

@keyframes slideIn {
  from { opacity: 0; transform: translateX(-30px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Search dropdown entries */
.search-result-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  transition: background 0.15s;
  border-bottom: 1px solid #f3f4f6;
}
.search-result-item:hover { background: #F0F4FF; }
.search-result-item img   { width: 52px; height: 40px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }

/* Admin sidebar */
.admin-nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b7280;
  transition: all 0.2s;
}
.admin-nav-link:hover,
.admin-nav-link.active {
  background: #EFF3FF;
  color: #1B3A6B;
}
.admin-nav-link.active { font-weight: 600; }

/* CRM Status badges */
.badge-nuevo       { background:#DBEAFE; color:#1D4ED8; }
.badge-contactado  { background:#FEF3C7; color:#B45309; }
.badge-calificado  { background:#D1FAE5; color:#065F46; }
.badge-cerrado     { background:#DCFCE7; color:#166534; }
.badge-perdido     { background:#FEE2E2; color:#991B1B; }

/* Scrollbar thin */
::-webkit-scrollbar      { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Focus visible for accessibility */
*:focus-visible { outline: 2px solid #E8A020; outline-offset: 2px; }

/* Gallery thumb active highlight */
#propertyThumbs .swiper-slide-thumb-active img {
  border-color: #1B3A6B !important;
  box-shadow: 0 0 0 1px #1B3A6B;
}

/* Admin upload preview thumbnails */
.upload-preview-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.upload-preview-grid img {
  width: 80px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid #e5e7eb;
  transition: border-color 0.2s;
}
.upload-preview-grid img:hover {
  border-color: #1B3A6B;
}
