body{
  font-family:'DM Sans',sans-serif;
  background:var(--warm-bg);
  color:var(--text-primary);
  margin:0;
}

h1,h2,h3{
  font-family:'Playfair Display',serif;
}

/* ---------- HERO ---------- */
.hero-wrap{
  position:relative;
  overflow:hidden;
}

.hero-section{
  position:relative;
  min-height:580px;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.hero-bg-img{
  position:absolute;
  inset:0;
  background:url('https://cdn.pixabay.com/photo/2016/05/05/08/10/aerial-1373406_1280.jpg') center/cover no-repeat;
  animation:heroZoom 20s ease-in-out infinite alternate;
  will-change:transform;
}

@keyframes heroZoom{
  from{transform:scale(1);}
  to{transform:scale(1.07);}
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to right,rgba(8,22,18,.82) 0%,rgba(8,22,18,.48) 55%,rgba(8,22,18,.18) 100%);
}

.hero-overlay-bottom{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(8,22,18,.65) 0%,transparent 55%);
}

.hero-content{
  position:relative;
  z-index:1;
  padding-top:90px;
  padding-bottom:60px;
}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:rgba(201,122,42,.22);
  border:1px solid rgba(201,122,42,.45);
  color:#f5c87a;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:5px 14px;
  border-radius:999px;
  margin-bottom:20px;
  animation:fadeUp .9s ease both;
}

@keyframes fadeUp{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}

.hero-h1{
  font-size:clamp(2.2rem,5vw,3.4rem);
  font-weight:700;
  color:#fff;
  line-height:1.12;
  letter-spacing:-.025em;
  max-width:560px;
  margin-bottom:18px;
  animation:fadeUp .9s .15s ease both;
}

.hero-h1 em{
  font-style:normal;
  color:#6ecfad;
}

.hero-lead{
  color:rgba(255,255,255,.76);
  font-size:1rem;
  line-height:1.72;
  max-width:440px;
  margin-bottom:36px;
  animation:fadeUp .9s .28s ease both;
}

.hero-btns{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  animation:fadeUp .9s .4s ease both;
}

.btn-hero-primary{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--accent);
  color:#fff;
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  font-size:.95rem;
  border:none;
  border-radius:var(--radius-md);
  padding:14px 28px;
  text-decoration:none;
  transition:background .2s,transform .2s;
}

.btn-hero-primary:hover{
  background:var(--accent-dark);
  transform:translateY(-2px);
  color:#fff;
}

.btn-hero-outline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:.95rem;
  border:1.5px solid rgba(255,255,255,.45);
  border-radius:var(--radius-md);
  padding:12px 26px;
  text-decoration:none;
  transition:background .2s,border-color .2s;
}

.btn-hero-outline:hover{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.8);
  color:#fff;
}

.hero-btn-icon{
  width:18px;
  height:18px;
  flex-shrink:0;
}

/* ---------- QUICK-LINKS BAR ---------- */
.quick-bar{
  background:#1a2e28;
}

.quick-inner{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}

.quick-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 28px;
  text-decoration:none;
  color:#fff;
  border-right:1px solid rgba(255,255,255,.07);
  transition:background .2s;
}

.quick-item:last-child{
  border-right:none;
}

.quick-item:hover{
  background:rgba(255,255,255,.06);
}

.quick-icon{
  width:42px;
  height:42px;
  border-radius:10px;
  background:rgba(43,107,90,.4);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.quick-icon svg{
  width:20px;
  height:20px;
  stroke:#6ecfad;
  fill:none;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.quick-label{
  font-size:.93rem;
  font-weight:600;
  color:#fff;
  display:block;
}

.quick-sub{
  font-size:.76rem;
  color:rgba(255,255,255,.46);
  display:block;
  margin-top:1px;
}

@media(max-width:640px){
  .quick-inner{
    grid-template-columns:1fr;
  }

  .quick-item{
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,.07);
  }

  .quick-item:last-child{
    border-bottom:none;
  }
}

/* ---------- TRUST STRIP ---------- */
.trust-strip{
  background:var(--warm-surface);
  border-bottom:1px solid var(--warm-border);
  padding:13px 0;
}

.trust-items{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 36px;
}

.trust-item{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.82rem;
  font-weight:500;
  color:var(--text-secondary);
}

.trust-tick{
  width:18px;
  height:18px;
  background:var(--accent);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.trust-tick svg{
  width:10px;
  height:10px;
  stroke:#fff;
  fill:none;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* ---------- LISTINGS SECTION ---------- */
.home-section{
  padding:44px 0 58px;
  background:var(--warm-bg);
}

.latest-listings-wrap{
  max-width:1200px;
}

.latest-listings-row{
  justify-content:center;
}

.section-hdr{
  display:flex;
  align-items:end;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:28px;
}

.section-title{
  font-size:1.9rem;
  font-weight:700;
  color:var(--text-primary);
  letter-spacing:-.025em;
  margin:0 0 4px;
}

.section-sub{
  color:var(--text-secondary);
  font-size:.92rem;
  margin:0;
}

.btn-view-all{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:84px;
  font-size:.84rem;
  font-weight:600;
  color:var(--accent);
  border:1.5px solid var(--accent);
  padding:8px 16px;
  border-radius:10px;
  text-decoration:none;
  background:transparent;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}

.btn-view-all:hover{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  transform:translateY(-1px);
}

/* Listing cards */
.listing-card{
  background:var(--warm-surface);
  border:1px solid var(--warm-border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .25s ease,box-shadow .25s ease;
  display:flex;
  flex-direction:column;
  height:100%;
}

.listing-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-hover);
}

.listing-card__image-wrap{
  aspect-ratio:16 / 10;
  background:#efe9e1;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

.listing-card__image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}

.listing-card:hover .listing-card__image-wrap img{
  transform:scale(1.045);
}

.listing-card__placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#b3a697;
}

.listing-card__placeholder-icon{
  width:42px;
  height:38px;
  opacity:.55;
}

.listing-card__placeholder-text{
  font-size:.82rem;
  font-weight:500;
}

.listing-card__body{
  padding:20px 20px 22px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.listing-card__price{
  font-size:1.7rem;
  font-weight:800;
  color:var(--accent);
  letter-spacing:-.03em;
  line-height:1.05;
  margin-bottom:8px;
}

.listing-card__title{
  font-family:'Playfair Display',serif;
  font-size:1.08rem;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.35;
  margin:0 0 6px;
  min-height:2.9rem;
}

.listing-card__location{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--amber);
  font-size:.83rem;
  font-weight:600;
  margin:0 0 12px;
}

.loc-dot{
  width:5px;
  height:5px;
  background:var(--amber);
  border-radius:50%;
  flex-shrink:0;
}

.listing-card__desc{
  font-size:.89rem;
  color:var(--text-secondary);
  line-height:1.68;
  margin:0 0 16px;
  flex-grow:1;
}

.listing-card__hr{
  border:none;
  border-top:1px solid var(--warm-border);
  margin:0 0 14px;
}

.btn-card-cta{
  display:block;
  background:var(--accent);
  color:#fff;
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  font-size:.89rem;
  text-align:center;
  border-radius:var(--radius-md);
  padding:12px;
  text-decoration:none;
  transition:background .2s,transform .2s;
}

.btn-card-cta:hover{
  background:var(--accent-dark);
  color:#fff;
  transform:translateY(-1px);
}

.mt-3{
  margin-top:1rem;
}

.empty-state{
  background:var(--warm-surface);
  border:2px dashed var(--warm-border);
  border-radius:var(--radius-lg);
  padding:52px 2rem;
  text-align:center;
}

.empty-state h3{
  font-size:1.1rem;
  margin-bottom:8px;
}

.empty-state p{
  color:var(--text-secondary);
  font-size:.9rem;
  margin-bottom:18px;
}

@media (max-width: 767.98px){
  .home-section{
    padding:38px 0 48px;
  }

  .section-hdr{
    align-items:flex-start;
    margin-bottom:22px;
  }

  .section-title{
    font-size:1.6rem;
  }

  .listing-card__title{
    min-height:auto;
  }
}

/* ---------- WHY SECTION ---------- */
.why-section{
  background:var(--warm-surface);
  border-top:1px solid var(--warm-border);
  border-bottom:1px solid var(--warm-border);
  padding:62px 0;
}

.why-header{
  text-align:center;
  margin-bottom:44px;
}

.why-title{
  font-size:1.75rem;
  font-weight:700;
  color:var(--text-primary);
  letter-spacing:-.02em;
  margin-bottom:6px;
}

.why-sub{
  color:var(--text-secondary);
  font-size:.875rem;
}

.why-card{
  text-align:center;
  padding:28px 20px;
  border-radius:var(--radius-lg);
  border:1px solid var(--warm-border);
  background:var(--warm-surface);
  transition:box-shadow .25s ease,transform .25s ease;
}

.why-card:hover{
  box-shadow:var(--shadow-hover);
  transform:translateY(-3px);
}

.why-icon{
  width:52px;
  height:52px;
  border-radius:14px;
  background:var(--accent-light);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 16px;
}

.why-icon svg{
  width:22px;
  height:22px;
  stroke:var(--accent);
  fill:none;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.why-card-title{
  font-family:'Playfair Display',serif;
  font-size:1.02rem;
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:8px;
}

.why-card-desc{
  font-size:.845rem;
  color:var(--text-secondary);
  line-height:1.65;
}

/* ---------- PHOTO CTA ---------- */
.cta-section{
  position:relative;
  padding:90px 0;
  overflow:hidden;
}

.cta-bg-img{
  position:absolute;
  inset:0;
  background:url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1600&q=80&auto=format&fit=crop') center/cover no-repeat;
}

.cta-overlay{
  position:absolute;
  inset:0;
  background:rgba(8,22,18,.83);
}

.cta-content{
  position:relative;
  z-index:1;
  text-align:center;
  max-width:500px;
  margin:0 auto;
}

.cta-section h2{
  font-size:clamp(1.7rem,4vw,2.2rem);
  font-weight:700;
  color:#fff;
  margin-bottom:12px;
}

.cta-section p{
  color:rgba(255,255,255,.7);
  font-size:.95rem;
  line-height:1.72;
  margin-bottom:28px;
}

/* ---------- FOOTER ---------- */
