@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Raleway:wght@600;700;800&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css');

:root {
  --background-color: #ffffff;
  --default-color: #394757;
  --heading-color: #183152;
  --accent-color: #c33948;
  --accent-hover: #a82d3b;
  --surface-color: #ffffff;
  --contrast-color: #ffffff;
  --light-background: #f7f9fc;
  --border-color: #e7ebf0;
  --text-muted: #7a8798;
  --shadow-sm: 0 8px 24px rgba(24, 49, 82, 0.08);
  --shadow-md: 0 16px 36px rgba(24, 49, 82, 0.12);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --transition: all 0.3s ease;
  --max-width: 1200px;
}

*{margin:0;padding:0;box-sizing:border-box;}

body{
  font-family:'Poppins',sans-serif;
  background:var(--background-color);
  color:var(--default-color);
  line-height:1.7;
}

h1,h2,h3,h4,h5,h6{
  font-family:'Raleway',sans-serif;
  color:var(--heading-color);
  font-weight:700;
  letter-spacing:-0.02em;
}

a{color:inherit;text-decoration:none;transition:var(--transition);}

img{display:block;max-width:100%;}

.loading-state{padding:4rem 1rem;text-align:center;color:var(--text-muted);}
.loading-state i{font-size:2.6rem;color:var(--accent-color);margin-bottom:1rem;}

.top-bar{
  background:var(--heading-color);
  color:rgba(255,255,255,0.86);
  font-size:0.82rem;
  padding:0.5rem 1.5rem;
}
.top-bar-inner{
  max-width:var(--max-width);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:0.75rem;
  flex-wrap:wrap;
}
.top-bar-contact{display:flex;gap:1rem;flex-wrap:wrap;}
.top-bar-contact span{display:flex;align-items:center;gap:0.4rem;}

header{
  background:rgba(255,255,255,0.96);
  border-bottom:1px solid rgba(24,49,82,0.08);
  position:sticky;top:0;z-index:999;
  backdrop-filter:blur(12px);
  box-shadow:0 2px 16px rgba(24,49,82,0.05);
}
.nav-container{
  max-width:var(--max-width);
  margin:0 auto;
  padding:1rem 1.5rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}
.logo img{height:56px;width:auto;}
nav ul{display:flex;align-items:center;gap:1.2rem;list-style:none;}
nav a{font-weight:600;color:var(--default-color);font-size:0.95rem;}
nav a:hover,nav a.active{color:var(--accent-color);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:0.5rem;
  padding:0.78rem 1.25rem;
  border-radius:999px;
  font-weight:700;
  border:1px solid transparent;
  cursor:pointer;
  transition:var(--transition);
  font-family:'Poppins',sans-serif;
}
.btn-primary{background:var(--accent-color);color:var(--contrast-color);box-shadow:0 10px 24px rgba(195,57,72,0.18);} 
.btn-primary:hover{background:var(--accent-hover);transform:translateY(-2px);} 
.btn-outline{background:transparent;border-color:rgba(255,255,255,0.7);color:#fff;} 
.btn-outline:hover{background:rgba(255,255,255,0.14);color:#fff;} 
.btn-accent{background:var(--accent-color);color:#fff;} 
.btn-accent:hover{background:var(--accent-hover);} 
.btn-block{width:100%;}

.hero{
  position:relative;
  padding:5.5rem 1.5rem 5rem;
  background:
    linear-gradient(135deg, rgba(24,49,82,0.95) 0%, rgba(27,73,126,0.88) 40%, rgba(195,57,72,0.86) 100%);
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.hero::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(circle at 85% 20%, rgba(255,255,255,0.16) 0%, transparent 34%);
  pointer-events:none;
}
.hero-content{
  position:relative;z-index:2;
  max-width:var(--max-width);
  margin:0 auto;
  text-align:left;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:0.6rem;
  background:rgba(255,255,255,0.12);
  color:#fff;
  border:1px solid rgba(255,255,255,0.2);
  border-radius:999px;
  padding:0.55rem 0.95rem;
  font-size:0.9rem;
  margin-bottom:1.2rem;
}
.hero h1{
  font-size:clamp(2.2rem, 4vw, 3.4rem);
  line-height:1.08;
  color:#fff;
  margin-bottom:1rem;
  max-width:760px;
}
.hero h1 span{color:#ffd8dc;}
.hero p{font-size:1.05rem;color:rgba(255,255,255,0.9);max-width:720px;margin-bottom:1.4rem;}
.hero-stats{display:flex;flex-wrap:wrap;gap:1rem;margin:1.4rem 0 1.8rem;}
.hero-stat{
  min-width:150px;
  background:rgba(255,255,255,0.12);
  color:#fff;
  border:1px solid rgba(255,255,255,0.16);
  border-radius:var(--radius-md);
  padding:1rem 1.1rem;
  backdrop-filter:blur(10px);
}
.hero-stat strong{display:block;font-size:1.1rem;margin-bottom:0.2rem;color:#fff;}
.hero-stat span{font-size:0.85rem;color:rgba(255,255,255,0.8);} 
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;}
.hero-actions .btn{min-width:180px;}

.search-container{
  background:var(--surface-color);
  border-radius:var(--radius-lg);
  padding:1.35rem;
  box-shadow:var(--shadow-md);
  border-top:4px solid var(--accent-color);
}
.search-tabs{display:flex;gap:0.6rem;flex-wrap:wrap;margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:0.9rem;}
.tab-btn{border:none;background:none;color:var(--default-color);font-weight:600;padding:0.55rem 1rem;border-radius:999px;cursor:pointer;transition:var(--transition);} 
.tab-btn:hover{background:rgba(195,57,72,0.08);color:var(--accent-color);} 
.tab-btn.active{background:var(--accent-color);color:#fff;box-shadow:0 10px 22px rgba(195,57,72,0.16);} 
.search-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;align-items:end;}
.filter-group{display:flex;flex-direction:column;gap:0.4rem;}
.filter-group label{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.filter-group input,.filter-group select{
  width:100%;padding:0.8rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;font:inherit;color:var(--default-color);outline:none;transition:var(--transition);
}
.filter-group input:focus,.filter-group select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(195,57,72,0.12);} 
.search-btn-wrapper{display:flex;gap:0.6rem;}

.listings-section{max-width:var(--max-width);margin:0 auto;padding:4.5rem 1.5rem 4rem;}
.section-header{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2rem;flex-wrap:wrap;}
.section-title h2{font-size:1.95rem;margin-bottom:0.3rem;} 
.section-title h2 span{color:var(--accent-color);} 
.section-title p{color:var(--text-muted);} 
.results-count{font-weight:600;color:var(--text-muted);font-size:0.95rem;}

.properties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.6rem;}
.property-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition);display:flex;flex-direction:column;position:relative;} 
.property-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(195,57,72,0.2);} 
.card-image-wrapper{position:relative;aspect-ratio:16/10;overflow:hidden;background:#edf2f7;} 
.card-image{width:100%;height:100%;object-fit:cover;transition:var(--transition);} 
.property-card:hover .card-image{transform:scale(1.03);} 
.card-badge{position:absolute;top:1rem;left:1rem;padding:0.42rem 0.8rem;border-radius:999px;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:#fff;z-index:2;} 
.badge-sale{background:var(--accent-color);} 
.badge-rent{background:#2b6cb0;} 
.card-type{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.95);color:var(--heading-color);padding:0.4rem 0.8rem;border-radius:999px;font-size:0.75rem;font-weight:700;box-shadow:0 8px 22px rgba(24,49,82,0.08);} 
.card-body{padding:1.35rem;display:flex;flex-direction:column;gap:0.7rem;flex-grow:1;}
.card-price{font-size:1.3rem;color:var(--accent-color);font-weight:800;} 
.card-title{font-size:1.05rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;} 
.card-address{display:flex;align-items:center;gap:0.4rem;font-size:0.9rem;color:var(--text-muted);} 
.card-address i{color:var(--accent-color);} 
.card-specs{display:flex;justify-content:space-between;gap:0.6rem;border-top:1px solid var(--border-color);padding-top:0.9rem;margin-top:auto;flex-wrap:wrap;} 
.spec-item{display:flex;align-items:center;gap:0.35rem;font-size:0.84rem;color:var(--default-color);font-weight:600;} 
.spec-item i{color:var(--accent-color);} 
.card-body .btn-outline{background:var(--accent-color);border-color:var(--accent-color);color:#fff;box-shadow:0 10px 24px rgba(195,57,72,0.18);} 
.card-body .btn-outline:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;transform:translateY(-2px);} 

.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem;background:#fff;border:1px dashed var(--border-color);border-radius:var(--radius-md);} 
.empty-state i{font-size:3rem;color:var(--accent-color);margin-bottom:1rem;} 
.empty-state h3{margin-bottom:0.4rem;} 
.empty-state p{color:var(--text-muted);} 

.partners-slider-section{max-width:var(--max-width);margin:0 auto 4rem;padding:0 1.5rem;} 
.partners-header{margin-bottom:1.4rem;} 
.partners-header h2{font-size:1.9rem;margin-bottom:0.36rem;} 
.partners-header p{color:var(--text-muted);} 

.details-container{max-width:var(--max-width);margin:2.2rem auto 5rem;padding:0 1.5rem;} 
.back-link{display:inline-flex;align-items:center;gap:0.5rem;color:var(--text-muted);font-weight:600;margin-bottom:1.6rem;} 
.back-link:hover{color:var(--accent-color);transform:translateX(-4px);} 
.details-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start;}
.property-gallery-container{display:flex;flex-direction:column;gap:0.8rem;margin-bottom:1.8rem;} 
.property-gallery{background:#eef2f7;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/9;box-shadow:var(--shadow-sm);} 
.gallery-main-img{width:100%;height:100%;object-fit:cover;} 
.gallery-thumbnails{display:flex;gap:0.75rem;overflow-x:auto;padding:0.2rem 0.2rem 0.4rem;} 
.thumbnail-wrapper{flex:0 0 100px;aspect-ratio:16/10;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent;cursor:pointer;background:#eef2f7;transition:var(--transition);} 
.thumbnail-wrapper:hover{transform:translateY(-2px);} 
.thumbnail-wrapper.active{border-color:var(--accent-color);box-shadow:0 0 0 2px rgba(195,57,72,0.18);} 
.thumbnail-img{width:100%;height:100%;object-fit:cover;} 
.property-info-card,.contact-sidebar-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);} 
.property-info-card{padding:1.7rem;} 
.property-header{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap;padding-bottom:1.2rem;margin-bottom:1.2rem;border-bottom:1px solid var(--border-color);} 
.property-header-title h1{font-size:2rem;margin-bottom:0.5rem;} 
.badges-row{display:flex;gap:0.6rem;margin-bottom:0.7rem;flex-wrap:wrap;} 
.badges-row .card-badge{position:relative;top:auto;left:auto;} 
.price-tag{font-size:2rem;font-weight:800;color:var(--accent-color);white-space:nowrap;} 
.details-specs{display:flex;flex-wrap:wrap;gap:1.5rem;padding:1.15rem 1.3rem;border-radius:var(--radius-md);background:#f8f9fb;border-left:4px solid var(--accent-color);margin-bottom:1.5rem;} 
.details-spec-item{display:flex;flex-direction:column;gap:0.25rem;} 
.details-spec-item .spec-label{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em;} 
.details-spec-item .spec-val{font-size:1.05rem;font-weight:700;color:var(--heading-color);} 
.property-description h3{font-size:1.2rem;margin-bottom:0.6rem;} 
.property-description p{color:var(--text-muted);white-space:pre-wrap;} 
.contact-sidebar-card{padding:1.7rem;position:sticky;top:100px;border-top:4px solid var(--accent-color);} 
.contact-sidebar-card h3{font-size:1.25rem;margin-bottom:0.5rem;} 
.contact-sidebar-card p{color:var(--text-muted);margin-bottom:1.4rem;} 
.agent-profile{display:flex;align-items:center;gap:0.9rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--border-color);} 
.agent-avatar{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fdf0f2;color:var(--accent-color);font-size:1.35rem;} 
.agent-info h4{font-size:1rem;} 
.agent-info span{font-size:0.8rem;color:var(--text-muted);} 
.contact-form{display:flex;flex-direction:column;gap:0.9rem;} 
.form-group{display:flex;flex-direction:column;gap:0.35rem;} 
.form-group label{font-size:0.82rem;color:var(--text-muted);font-weight:700;} 
.form-group input,.form-group textarea{width:100%;padding:0.75rem 0.9rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font:inherit;color:var(--default-color);outline:none;transition:var(--transition);} 
.form-group input:focus,.form-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(195,57,72,0.12);} 

footer{background:linear-gradient(140deg,var(--heading-color) 0%,#233b58 100%);color:#fff;padding:4rem 1.5rem 2.2rem;border-top:4px solid var(--accent-color);} 
.footer-container{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem;border-bottom:1px solid rgba(255,255,255,0.12);padding-bottom:2rem;margin-bottom:1.6rem;} 
.footer-logo img{height:48px;width:auto;filter:brightness(0) invert(1);} 
.footer-logo-text{margin-top:0.8rem;color:rgba(255,255,255,0.74);font-size:0.95rem;} 
.footer-col h3{color:#fff;margin-bottom:1rem;} 
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:0.75rem;}
.footer-col a,.footer-col li,.footer-col p{color:rgba(255,255,255,0.76);font-size:0.95rem;} 
.footer-col a:hover{color:#fff;transform:translateX(3px);} 
.footer-whatsapp-link{display:inline-flex;align-items:center;gap:.45rem;background:#1f9d55;color:#fff !important;padding:.5rem .85rem;border-radius:999px;font-weight:700;}
.footer-whatsapp-link:hover{background:#1a8648 !important;transform:none !important;}
.footer-col li i{color:#ffd8dc;width:16px;flex-shrink:0;} 
.footer-bottom{max-width:var(--max-width);margin:0 auto;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:rgba(255,255,255,0.62);font-size:0.85rem;} 
.footer-bottom span{color:#ffd8dc;} 

@media (max-width: 968px){
  .details-grid{grid-template-columns:1fr;} 
  .contact-sidebar-card{position:static;margin-top:1rem;} 
}
@media (max-width: 760px){
  .nav-container{flex-direction:column;align-items:flex-start;} 
  nav ul{flex-wrap:wrap;} 
  .hero{padding-top:4rem;padding-bottom:4rem;} 
  .hero-stats{flex-direction:column;} 
  .search-grid{grid-template-columns:1fr;} 
  .search-btn-wrapper{flex-direction:column;} 
  .properties-grid{grid-template-columns:1fr;} 
  .section-header{align-items:flex-start;} 
}
