/* ===== VARIABLES ===== */
:root {
  --gold:    #C8A96E;
  --gold-dk: #A8893E;
}

/* ===== TYPOGRAPHY ===== */
body { font-family: 'Inter', sans-serif; }
.logo-text { font-size: 18px; font-weight: 800; letter-spacing: .05em; }
.letter-spacing { letter-spacing: .1em; }
.hero-italic { font-family: 'Playfair Display', serif; font-style: italic; }
.fw-black { font-weight: 800; }

/* ===== COLORS ===== */
.text-gold  { color: var(--gold) !important; }
.bg-gold    { background-color: var(--gold) !important; }
.text-white-75 { color: rgba(255,255,255,.78); }

/* ===== BUTTONS ===== */
.btn-gold {
  background-color: var(--gold);
  color: #fff;
  border: none;
}
.btn-gold:hover {
  background-color: var(--gold-dk);
  color: #fff;
}

/* ===== NAVBAR ===== */
.navbar {
  min-height: 64px;
  transition: box-shadow .3s, background-color .3s;
}
.navbar-logo {
  height: 36px;
  width: auto;
  object-fit: contain;
  transition: height .3s;
}

.navbar--scrolled {
  box-shadow: 0 2px 20px rgba(0,0,0,.10) !important;
  background-color: rgba(255,255,255,.94) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom-color: transparent !important;
}
.navbar--scrolled .navbar-logo { height: 30px; }

@media (max-width: 991px) {
  .navbar-actions-hide { display: none !important; }
  /* El menú flota sobre el contenido para evitar scroll jump */
  .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 6px 16px rgba(0,0,0,.08);
    z-index: 99;
    padding: 0 1rem .75rem;
  }
  .navbar-collapse .d-flex {
    flex-direction: column;
    align-items: flex-start !important;
    padding-bottom: .25rem;
  }
  .navbar-collapse .btn { width: 100%; text-align: left; }
}

/* ===== HERO ===== */
.hero-section {
  position: relative;
  min-height: 620px;
  display: flex;
  align-items: center;
  background: url('/imagen/fondo.png') center center / cover no-repeat;
  overflow: hidden;
}
/* Círculo decorativo fondo */
.hero-section::before {
  content: '';
  position: absolute;
  width: 700px; height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,169,110,.13) 0%, transparent 70%);
  right: -120px; top: -180px;
  pointer-events: none;
}
/* El overlay ya no oscurece, es solo decorativo */
.hero-overlay { display: none; }

.py-lg-6 { padding-top: 5rem !important; padding-bottom: 5rem !important; }

/* ---- Badges flotantes ---- */
.hero-badge {
  position: absolute;
  background: #fff;
  border-radius: 14px;
  padding: 9px 14px;
  box-shadow: 0 6px 24px rgba(0,0,0,.10);
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #1a1a2e;
  z-index: 3;
  white-space: nowrap;
}
.hero-badge i { font-size: 18px; }
.hero-badge--1 { top: 22%;  right: 42%; animation: hbFloat 3.2s ease-in-out infinite; }
.hero-badge--2 { top:  10%; right: 20%; animation: hbFloat 3.8s ease-in-out infinite .4s; }
.hero-badge--3 { top: 16%;  right:  3%; animation: hbFloat 4.1s ease-in-out infinite .9s; }
.hero-badge--4 { top: 55%;  right: 38%; animation: hbFloat 3.5s ease-in-out infinite .2s; }
@keyframes hbFloat {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-9px); }
}
/* Líneas punteadas entre badges (decorativas) */
.hero-dots {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
}
.hero-dots svg { width: 100%; height: 100%; }


/* ---- Onda inferior ---- */
.hero-wave {
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  line-height: 0;
  pointer-events: none;
}

/* ---- Responsive ---- */
@media (max-width: 1199px) {
  .hero-badge { display: none; }
}
@media (max-width: 991px) {
  .hero-mockup-col { display: none !important; }
  .hero-section { min-height: auto; }
  .hero-section .display-5 { font-size: 1.8rem; }
}
@media (max-width: 767px) {
  .hero-section .display-5 { font-size: 1.6rem; }
  .hero-section .container { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
  .hero-btns { flex-wrap: nowrap; }
  .hero-btns .btn { font-size: 11px; white-space: nowrap; flex: 1; text-align: center; padding-left: .5rem; padding-right: .5rem; }
}

/* ===== SEARCH BOX ===== */
.search-box { max-width: 100%; }
.tab-btn {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 12px 22px;
  font-size: 14px;
  font-weight: 500;
  color: #6b7280;
  cursor: pointer;
  margin-bottom: -1px;
  transition: all .18s;
}
.tab-btn.active  { color: var(--gold); border-bottom-color: var(--gold); font-weight: 700; }
.tab-btn:hover   { color: #1a1a2e; }

.search-label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6b7280;
  margin-bottom: 2px;
}
.search-field .form-select {
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  box-shadow: none !important;
}

@media (max-width: 767px) {
  .search-box__form-inner {
    flex-direction: column !important;
    padding: 0 !important;
    gap: 0 !important;
  }
  .search-field {
    width: 100% !important;
    flex: none !important;
    border-bottom: 1px solid #e5e7eb;
    padding: 12px 16px !important;
  }
  .search-submit {
    width: 100%;
    border-radius: 0 !important;
    padding: 12px !important;
  }
}

/* ===== CHECK ICON ===== */
.check-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gold);
  color: #fff;
  font-size: 12px;
  flex-shrink: 0;
}

/* ===== DASHBOARD ===== */
.dashboard-card { font-size: 13px; }
.chart-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6b7280;
}
.bar-chart-bar {
  flex: 1;
  background: linear-gradient(to top, var(--gold), #e8c98e);
  border-radius: 3px 3px 0 0;
  min-height: 6px;
}
.recent-thumb {
  width: 40px;
  height: 34px;
  border-radius: 6px;
  flex-shrink: 0;
}
.stat-card { border-radius: 10px; }

/* ===== PROPERTY CARDS ===== */
.prop-card { transition: transform .2s, box-shadow .2s; }
.prop-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.12) !important; }
.prop-img {
  height: 200px;
  background-size: cover;
  background-position: center;
}
.badge-gold {
  background-color: var(--gold);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
}
.btn-fav {
  background: rgba(255,255,255,.92);
  border: none;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 15px;
  transition: background .18s;
}
.btn-fav:hover { background: #fff; color: var(--gold); }
.agency-dot {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  flex-shrink: 0;
}
.bg-gold { background-color: var(--gold); }

/* ===== AGENCY CARDS ===== */
.agency-card { transition: transform .2s, box-shadow .2s; }
.agency-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.1) !important; }
.agency-icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== TIPOS DE BÚSQUEDA ===== */
.search-type-card {
  position: relative;
  height: 260px;
  border-radius: 14px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  transition: transform .25s, box-shadow .25s;
}
.search-type-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.18); }
.search-type-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15,15,30,.82) 0%, rgba(15,15,30,.2) 60%, transparent 100%);
}
.search-type-body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 20px;
  color: #fff;
}
.search-type-icon {
  font-size: 22px;
  color: var(--gold);
  margin-bottom: 6px;
}
.search-type-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 4px;
}
.search-type-count {
  font-size: 13px;
  color: rgba(255,255,255,.75);
}

/* ===== ZONAS MÁS BUSCADAS ===== */
.zone-card {
  display: block;
  position: relative;
  height: 180px;
  border-radius: 12px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  transition: transform .22s, box-shadow .22s;
}
.zone-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.zone-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15,15,30,.78) 0%, rgba(15,15,30,.1) 70%);
}
.zone-body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 14px;
  color: #fff;
}
.zone-name  { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.zone-price { font-size: 12px; font-weight: 500; opacity: .85; }

/* ===== ENLACES CATEGORÍAS ===== */
.links-col-title {
  font-size: 17px;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--gold);
  display: inline-block;
}
.links-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.links-list a {
  font-size: 14px;
  color: #374151;
  text-decoration: none;
  transition: color .15s;
}
.links-list a:hover { color: var(--gold); }
.links-list a::before {
  content: '›';
  margin-right: 6px;
  color: var(--gold);
  font-weight: 700;
}

/* ===== NOTICIAS ===== */
.news-card {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--border, #e5e7eb);
  transition: box-shadow .2s, transform .2s;
}
.news-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-3px); }
.news-img {
  height: 180px;
  background-size: cover;
  background-position: center;
  position: relative;
}
.news-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--gold);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
}
.news-body { padding: 16px; }
.news-date { font-size: 11px; color: #9ca3af; margin-bottom: 8px; }
.news-title { font-size: 14px; font-weight: 700; color: #1a1a2e; line-height: 1.4; margin-bottom: 8px; }
.news-excerpt { font-size: 13px; color: #6b7280; line-height: 1.5; margin: 0; }

/* ===== MODAL LOGIN ===== */
.login-dialog { max-width: 420px; }

@media (max-width: 767px) {
  .modal-dialog-top-mobile {
    align-items: flex-start !important;
  }
  .login-dialog {
    max-width: 100%;
    margin: 12px 0 0 0 !important;
  }
  .login-modal {
    border-radius: 0 0 16px 16px !important;
  }
}

.login-modal { border-radius: 16px !important; box-shadow: 0 24px 60px rgba(0,0,0,.18); }

.login-header-bar {
  height: 5px;
  background: linear-gradient(90deg, var(--gold) 0%, #e8c98e 100%);
}

.login-logo {
  height: 36px;
  width: auto;
  object-fit: contain;
}

.login-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
}

.login-input-group {
  border: 1.5px solid #e5e7eb;
  border-radius: 10px !important;
  overflow: hidden;
  transition: border-color .2s;
}
.login-input-group:focus-within { border-color: var(--gold); }

.login-input-icon {
  background: #fafafa;
  border: none;
  color: var(--gold);
  font-size: 15px;
  padding: 0 12px;
}

.login-input {
  border: none;
  font-size: 14px;
  padding: 10px 12px;
  box-shadow: none !important;
  background: #fafafa;
}
.login-input:focus { background: #fff; }

.login-pwd-toggle {
  background: #fafafa;
  border: none;
  color: #9ca3af;
  padding: 0 12px;
  font-size: 15px;
}
.login-pwd-toggle:hover { color: var(--gold); }

.login-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #9ca3af;
  font-size: 12px;
}
.login-divider::before,
.login-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e5e7eb;
}

.login-social {
  border-radius: 10px !important;
  font-size: 14px;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .18s;
}
.login-social:hover { background: #f5f4f0; }

/* ===== FEATURES ===== */
.feature-icon {
  width: 56px;
  height: 56px;
  background: #f5f4f0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== CTA FINAL ===== */
.cta-final {
  background: linear-gradient(135deg, #0f0f1e 0%, #1a1228 50%, #0f1a18 100%);
  position: relative;
  overflow: hidden;
}
.cta-final::before {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,169,110,.12) 0%, transparent 70%);
  top: -150px; left: -100px;
  pointer-events: none;
}
.cta-final::after {
  content: '';
  position: absolute;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,169,110,.08) 0%, transparent 70%);
  bottom: -100px; right: -80px;
  pointer-events: none;
}
.cta-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 20px;
  padding: 40px 32px;
  text-align: center;
  color: #fff;
  transition: transform .3s ease, background .3s ease, border-color .3s ease;
}
.cta-card:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(200,169,110,.4);
  transform: translateY(-5px);
}
.cta-card p { opacity: .75; font-size: .95rem; }
.cta-card__icon {
  width: 68px; height: 68px;
  border-radius: 50%;
  background: rgba(200,169,110,.18);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
  font-size: 28px;
  color: var(--gold);
}
.cta-card__icon--agency {
  background: rgba(255,255,255,.10);
  color: #fff;
}
