/* =====================================================================
   site.css — Gaya dikongsi untuk SEMUA microsite kawasan /ejen-hartanah/*
   Sumber asal reka bentuk: /pencapaian/ (jangan ubah warna/fon di sini
   tanpa kemas kini fail /pencapaian/index.html juga, supaya kekal konsisten)
   ===================================================================== */
:root{
  --hijau:#232323;        /* gelap utama (header/footer) */
  --hijau-tua:#161616;    /* gelap lebih pekat */
  --emas:#f0812f;         /* oren aksen jenama */
  --emas-muda:#fde3cc;    /* oren muda */
  --bg:#f2f2f2;
  --putih:#ffffff;
  --teks:#333333;
  --teks-muda:#6b6b6b;
  --radius:14px;
  --bayang:0 4px 18px rgba(0,0,0,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--emas);color:#fff;padding:12px 20px;border-radius:0 0 10px 0;z-index:200;font-weight:600;text-decoration:none}
.skip-link:focus{left:0}
/* Naikkan saiz teks asas ~6% (16px->17px) supaya lebih senang dibaca untuk
   pengunjung yang rabun dekat/presbiopia. Guna unit rem, jadi zoom teks
   pelayar (Ctrl/Cmd +) turut berfungsi normal di seluruh laman. */
html{scroll-behavior:smooth;font-size:106%}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--teks);line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit}

/* ===== Header ===== */
header{position:sticky;top:0;z-index:50;background:var(--hijau);color:#fff;box-shadow:var(--bayang)}
.nav{max-width:1180px;margin:auto;display:flex;align-items:center;gap:16px;padding:10px 20px;position:relative}
.nav img{height:56px;width:auto;object-fit:contain}
.nav .tagline{border-left:1px solid rgba(255,255,255,.22);padding-left:14px;font-size:.78rem;line-height:1.45;color:#b9b9b9;letter-spacing:.2px}
.nav .tagline b{display:block;color:#fff;font-size:.85rem;letter-spacing:.4px}
.nav nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.nav nav a{padding:8px 14px;border-radius:8px;font-size:.9rem;text-decoration:none;color:#dedede}
.nav nav a:hover,.nav nav a.aktif{background:var(--emas);color:#fff}
.menu-btn{display:none;margin-left:auto;background:none;border:1.5px solid rgba(255,255,255,.35);color:#fff;font-size:1.25rem;line-height:1;padding:8px 13px;border-radius:8px;cursor:pointer;min-width:44px;min-height:44px;align-items:center;justify-content:center}
.menu-btn:hover{background:rgba(255,255,255,.12)}
@media(max-width:900px){.nav .tagline{display:none}}
@media(max-width:760px){
  .menu-btn{display:flex}
  .nav nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--hijau);flex-direction:column;gap:2px;padding:10px 16px 16px;box-shadow:var(--bayang)}
  .nav nav.buka{display:flex}
  .nav nav a{padding:13px 14px;font-size:1rem}
}

/* ===== Hero ===== */
.hero{background:linear-gradient(160deg,#10487b 0%,#0b3157 100%);color:#fff;padding:0 20px;text-align:center;overflow:hidden}
.hero-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.35fr .9fr;gap:44px;text-align:left}
.hero-teks{align-self:center;padding:56px 0}
.hero h1{font-size:clamp(1.7rem,4vw,2.6rem);margin-bottom:12px}
.hero h1 span{color:var(--emas)}
.hero p{max-width:640px;margin:0 0 28px;color:#d9d9d9;font-size:1.02rem}
.hero .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px}
.hero .stat{width:auto;padding:18px 16px}
.hero .stat b{font-size:2.3rem}
.hero .stat small{font-size:.8rem}
.hero-potret{position:relative;align-self:stretch;display:flex;align-items:flex-end;justify-content:center;min-height:440px}
.hero-potret img{position:relative;display:block;width:min(100%,450px);height:auto;max-height:620px;object-fit:cover;object-position:top;animation:zumMasuk .7s ease}
.potret-lencana{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);background:rgba(255,255,255,.97);color:var(--teks);padding:14px 30px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.35);text-align:center;white-space:nowrap;animation:naikMasuk .7s ease .3s backwards}
.potret-lencana b{display:block;color:#10487b;font-size:1.1rem}
.potret-lencana span{font-size:.82rem;color:var(--teks-muda);letter-spacing:.3px}
.hero-teks .cta-baris{justify-content:flex-start}
@media(max-width:1100px){.hero .stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:0;text-align:center}
  .hero-teks{padding:40px 0 8px}
  .hero p{margin:0 auto 28px}
  .hero-teks .cta-baris{justify-content:center}
  .hero-potret{margin-top:30px;min-height:0;width:100%}
  .hero-potret img{width:min(100%,380px)}
  .potret-lencana{padding:10px 22px}
  .potret-lencana b{font-size:.95rem}
}
.stats{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:32px}
.stat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);padding:18px 26px;width:215px}
@media(max-width:560px){.stats{flex-direction:column;align-items:center}.stat{width:min(320px,100%)}}
.stat b{display:block;font-size:1.9rem;color:var(--emas)}
.stat small{color:#cfcfcf;font-size:.82rem}
.cta-baris{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:999px;font-weight:600;text-decoration:none;font-size:.95rem;border:none;cursor:pointer;transition:.2s}
.btn-emas{background:var(--emas);color:#2b1a0c}
.btn-emas:hover{background:#d96c1a;transform:translateY(-2px)}
.btn-wa{background:#25d366;color:#0b2e18}
.btn-wa:hover{background:#1da851;transform:translateY(-2px)}
.wa-ikon{width:1.2em;height:1.2em;fill:currentColor;flex-shrink:0}
.btn-garis{border:1.5px solid rgba(255,255,255,.5);color:#fff}
.btn-garis:hover{background:rgba(255,255,255,.1)}
.tel-pautan{color:#fff;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.tel-pautan:hover{border-bottom-color:var(--emas)}

/* ===== Menu pantas (lompat terus ke bahagian halaman) ===== */
.lompat-cepat{max-width:1180px;margin:0 auto;padding:16px 20px 0;display:flex;justify-content:center;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.lompat-cepat::-webkit-scrollbar{display:none}
.lompat-cepat a{flex:0 0 auto;padding:9px 16px;border-radius:999px;background:var(--putih);color:var(--hijau);box-shadow:var(--bayang);font-size:.85rem;font-weight:600;text-decoration:none;white-space:nowrap}
.lompat-cepat a:hover{background:var(--emas);color:#fff}

/* ===== Seksyen umum ===== */
section{max-width:1180px;margin:auto;padding:56px 20px}
@media(max-width:640px){section{padding:38px 18px}.kepala{margin-bottom:26px}}
.kepala{text-align:center;margin-bottom:34px}
.kepala h2{font-size:clamp(1.4rem,3vw,1.9rem);color:var(--hijau)}
.kepala .garis{width:56px;height:4px;background:var(--emas);border-radius:2px;margin:12px auto 10px}
.kepala p{color:var(--teks-muda);max-width:600px;margin:auto;font-size:1rem}

/* Fakta pantas (ringkasan untuk pembaca yang tak nak baca semua perenggan) */
.fakta-pantas{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;max-width:820px;margin:0 auto 30px}
.fakta-pantas .fakta{background:var(--putih);border-radius:var(--radius);box-shadow:var(--bayang);padding:16px 18px;display:flex;align-items:center;gap:12px;text-align:left}
.fakta-pantas .fakta .ikon{font-size:1.5rem;flex-shrink:0}
.fakta-pantas .fakta p{font-size:.95rem;color:var(--teks);margin:0;line-height:1.45}

/* ===== Pengenalan kawasan (teks prosa) ===== */
.kandungan-teks{max-width:700px;margin:auto;display:flex;flex-direction:column;gap:18px}
.kandungan-teks p{color:var(--teks);font-size:1.02rem;line-height:1.75}
.kawasan-terkait{max-width:700px;margin:22px auto 0;text-align:center;font-size:.9rem;color:var(--teks-muda)}
.kawasan-terkait a{color:#9a4b0d;font-weight:600;text-decoration:none}
.kawasan-terkait a:hover{text-decoration:underline}

/* Cip kawasan popular (senarai pantas, ganti nama kawasan yang dulu tertanam dalam ayat) */
.kawasan-chip{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:700px;margin:22px auto 0}
.kawasan-chip span{background:var(--putih);color:var(--hijau);padding:8px 16px;border-radius:999px;font-size:.85rem;font-weight:600;box-shadow:var(--bayang)}

/* ===== Kad bukti sosial (pencapaian & rumah terjual) ===== */
.bukti-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.bukti-kad{background:var(--putih);border-radius:var(--radius);overflow:hidden;box-shadow:var(--bayang);transition:transform .2s ease,box-shadow .2s ease}
.bukti-kad:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(14,59,54,.16)}
.bukti-kad .bingkai{aspect-ratio:4/3;overflow:hidden;background:#e8e4da}
.bukti-kad .bingkai img{width:100%;height:100%;object-fit:cover}
.bukti-kad .label{padding:10px 12px}
.bukti-kad .label b{display:block;font-size:.85rem;color:var(--hijau);line-height:1.3}
.bukti-kad .label small{color:var(--teks-muda);font-size:.78rem}
.bukti-kad .tag{display:inline-block;background:#e9f7ee;color:#1a7a3d;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:6px;margin-top:6px;text-transform:uppercase;letter-spacing:.4px}
.pusat-atas{text-align:center;margin-top:22px}
.btn-garis-gelap{border:1.5px solid #d8d2c2;color:var(--hijau);background:transparent}
.btn-garis-gelap:hover{background:#f2ede2}

/* Leret sisi (swipe) untuk kad di skrin kecil, kurangkan skrol menegak panjang */
@media(max-width:760px){
  .bukti-grid,.ulasan-grid{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:14px;
    padding-bottom:8px;
    margin-bottom:20px;
    scrollbar-width:none;
  }
  .bukti-grid::-webkit-scrollbar,.ulasan-grid::-webkit-scrollbar{display:none}
  .bukti-grid .bukti-kad{flex:0 0 76%;scroll-snap-align:start}
  .ulasan-grid .ulasan-kad{flex:0 0 82%;scroll-snap-align:start}
}

/* ===== Grid servis ===== */
.servis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.servis-kad{background:var(--putih);border-radius:var(--radius);box-shadow:var(--bayang);padding:26px 22px;text-align:left;transition:transform .2s ease,box-shadow .2s ease}
.servis-kad:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(14,59,54,.16)}
.servis-kad .ikon{font-size:1.8rem;margin-bottom:12px}
.servis-kad b{display:block;font-size:1.02rem;color:var(--hijau);margin-bottom:8px}
.servis-kad p{color:var(--teks-muda);font-size:1rem}

/* ===== Ulasan Google ===== */
.ulasan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-bottom:28px}
.ulasan-kad{background:var(--putih);border-radius:var(--radius);box-shadow:var(--bayang);padding:24px;display:flex;flex-direction:column;gap:12px}
.ulasan-kad .bintang{color:#fbbc04;font-size:1.05rem;letter-spacing:2px}
.ulasan-kad p{color:var(--teks);font-size:.98rem;flex:1}
.ulasan-kad .nama{display:flex;align-items:center;gap:10px}
.ulasan-kad .nama .avatar{width:38px;height:38px;border-radius:50%;background:var(--emas-muda);color:#7c4708;display:flex;align-items:center;justify-content:center;font-weight:700}
.ulasan-kad .nama b{display:block;font-size:.9rem;color:var(--hijau)}
.ulasan-kad .nama small{color:var(--teks-muda);font-size:.76rem}
.ulasan-google{text-align:center;background:var(--putih);border-radius:var(--radius);box-shadow:var(--bayang);padding:34px 24px;max-width:560px;margin:auto}
.ulasan-google .g-logo{width:42px;height:42px;margin:0 auto 12px}
.ulasan-google .bintang{color:#fbbc04;font-size:1.5rem;letter-spacing:4px;margin-bottom:6px}
.ulasan-google h3{color:var(--hijau);font-size:1.15rem;margin-bottom:6px}
.ulasan-google p{color:var(--teks-muda);font-size:1rem;margin-bottom:18px}
.btn-google{background:#1a73e8;color:#fff}
.btn-google:hover{background:#1557b0;transform:translateY(-2px)}

/* ===== Soalan Lazim ===== */
.soalan{max-width:860px;margin:auto}
details.sl{background:var(--putih);border-radius:var(--radius);box-shadow:var(--bayang);margin-bottom:12px}
details.sl summary{cursor:pointer;padding:18px 22px;font-weight:600;color:var(--hijau);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px}
details.sl summary::-webkit-details-marker{display:none}
details.sl summary::after{content:'+';font-size:1.5rem;line-height:1;color:var(--emas);transition:transform .2s;flex-shrink:0}
details.sl[open] summary::after{transform:rotate(45deg)}
details.sl .jwb{padding:0 22px 20px;color:var(--teks);font-size:.95rem}
details.sl .jwb a{color:#9a4b0d;font-weight:600}

/* ===== CTA bawah ===== */
.cta-akhir{background:linear-gradient(160deg,var(--hijau),var(--hijau-tua));border-radius:var(--radius);color:#fff;text-align:center;padding:48px 24px}
.cta-akhir h2{font-size:clamp(1.3rem,3vw,1.8rem);margin-bottom:10px}
.cta-akhir p{color:#d9d9d9;max-width:560px;margin:0 auto 24px;font-size:.95rem}

/* ===== Footer ===== */
footer{background:var(--hijau-tua);color:#c9c9c9;margin-top:56px;padding:44px 20px 28px}
.footer-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;font-size:.88rem}
.footer-grid h3{color:#fff;margin-bottom:10px;font-size:.95rem}
.footer-grid a{color:var(--emas-muda);text-decoration:none}
.hakcipta{text-align:center;margin-top:32px;font-size:.78rem;color:#8a8a8a}

section,.hero{scroll-margin-top:84px}

/* ===== Utiliti kecil (elak style sebaris demi CSP ketat) ===== */
.teks-kecil{font-size:.8rem}
.ikon-apung{width:28px;height:28px}
.hub-hero .hero-grid{grid-template-columns:1fr}
.hub-hero .hero-teks{padding:44px 0}

/* ===== Halaman hub /ejen-hartanah/ ===== */
.daerah-blok{margin-bottom:30px}
.daerah-blok h3{color:var(--hijau);font-size:1.05rem;margin-bottom:12px;border-left:4px solid var(--emas);padding-left:10px}
.senarai-bandar{display:flex;flex-wrap:wrap;gap:8px}
.senarai-bandar a,.senarai-bandar span{padding:8px 14px;border-radius:999px;font-size:.85rem;text-decoration:none}
.senarai-bandar a{background:var(--putih);color:var(--hijau);box-shadow:var(--bayang)}
.senarai-bandar a:hover{background:var(--emas);color:#fff}
.senarai-bandar span{background:#e8e4da;color:#54514a}

/* ===== Butang terapung ===== */
.ke-atas{position:fixed;right:18px;bottom:86px;z-index:60;width:46px;height:46px;border-radius:50%;border:none;background:rgba(35,35,35,.88);color:#fff;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.25);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s,visibility .3s,background .2s}
.ke-atas.nampak{opacity:1;visibility:visible;transform:none}
.ke-atas:hover{background:var(--emas)}
@media(max-width:560px){.ke-atas{width:52px;height:52px;bottom:88px;font-size:1.35rem}}
.wa-apung{position:fixed;right:18px;bottom:18px;z-index:60;background:#25d366;color:#0b2e18;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.25);text-decoration:none;font-size:1.6rem;transition:.2s}
.wa-apung:hover{transform:scale(1.08)}

.tersembunyi{display:none!important}

/* ===== Motion & Interaksi ===== */
@keyframes naikMasuk{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes zumMasuk{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes muncul{from{opacity:0}to{opacity:1}}
@keyframes gelombang{to{transform:scale(2.6);opacity:0}}
@keyframes apungNafas{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.reveal.nampak{opacity:1;transform:none}

.btn:active,.menu-btn:active{transform:scale(.96)}
.btn,.menu-btn{position:relative;overflow:hidden}
.riak{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:gelombang .6s ease-out forwards;pointer-events:none}

.nav nav.buka{animation:naikMasuk .3s ease}
.wa-apung{animation:apungNafas 3s ease-in-out infinite}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
