/* ==========================================================================
   Hùng Nhân Estate — main stylesheet
   Design system: light background, deep-teal + copper accents, serif
   headings (Fraunces) over Inter body text. Independent from the old
   "Hùng Nhân BĐS Landing" theme's navy/gold system.
   ========================================================================== */

:root {
    --hne-teal: #0d6e6e;
    --hne-teal-dark: #0a5253;
    --hne-teal-light: #e6f2f1;
    --hne-copper: #c1783f;
    --hne-copper-dark: #9c5f2f;
    --hne-ink: #12262b;
    --hne-heading: #0e2a2c;
    --hne-text: #52636a;
    --hne-text-light: #7c8b91;
    --hne-bg: #f5f7f6;
    --hne-bg-alt: #eef3f2;
    --hne-card: #ffffff;
    --hne-border: #e2e9e7;
    --hne-shadow: 0 10px 30px rgba(15, 42, 44, 0.07);
    --hne-shadow-lg: 0 20px 50px rgba(15, 42, 44, 0.12);
    --hne-radius-sm: 8px;
    --hne-radius: 14px;
    --hne-radius-lg: 22px;
    --font-heading: 'Fraunces', Georgia, serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--hne-text);
    background: var(--hne-bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--font-heading); color: var(--hne-heading); margin: 0 0 .5em; line-height: 1.25; font-weight: 600; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 15px; }

.hne-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.hne-skip-link { position: absolute; left: -9999px; top: 0; background: var(--hne-teal); color: #fff; padding: 12px 20px; z-index: 999; }
.hne-skip-link:focus { left: 16px; top: 16px; }

/* ---------- Buttons ---------- */
.hne-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 13px 24px; border-radius: 999px; font-weight: 600; font-size: 14.5px;
    border: 1.5px solid transparent; transition: all .2s ease; white-space: nowrap;
}
.hne-btn-primary { background: var(--hne-teal); color: #fff; }
.hne-btn-primary:hover { background: var(--hne-teal-dark); transform: translateY(-1px); }
.hne-btn-secondary { background: var(--hne-copper); color: #fff; }
.hne-btn-secondary:hover { background: var(--hne-copper-dark); transform: translateY(-1px); }
.hne-btn-ghost { background: transparent; border-color: var(--hne-border); color: var(--hne-heading); }
.hne-btn-ghost:hover { border-color: var(--hne-teal); color: var(--hne-teal); }
.hne-btn-light { background: #fff; color: var(--hne-teal-dark); }
.hne-btn-light:hover { background: var(--hne-teal-light); }
.hne-link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--hne-teal); }
.hne-link-arrow:hover { color: var(--hne-teal-dark); }

/* ---------- Section shells ---------- */
.hne-section { padding: 72px 0; }
.hne-section-alt { background: var(--hne-bg-alt); }
.hne-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; flex-wrap: wrap; }
.hne-section-head h2 { font-size: clamp(24px, 3vw, 32px); }
.hne-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hne-copper); margin-bottom: 10px; }

/* ==========================================================================
   Top utility bar + header
   ========================================================================== */
.hne-topbar { background: var(--hne-ink); color: rgba(255,255,255,.85); font-size: 13.5px; }
.hne-topbar-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 24px; gap: 16px; }
.hne-topbar-contact { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.hne-topbar-contact a, .hne-topbar-contact span { display: inline-flex; align-items: center; gap: 7px; color: inherit; }
.hne-topbar-contact a:hover { color: #fff; }
.hne-topbar-social { display: flex; align-items: center; gap: 14px; }
.hne-topbar-social a { width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.12); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.hne-topbar-social a:hover { background: var(--hne-teal); }

.hne-header { background: #fff; border-bottom: 1px solid var(--hne-border); position: sticky; top: 0; z-index: 500; }
.hne-header-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; gap: 24px; }

.hne-logo { display: flex; align-items: center; gap: 12px; }
.hne-logo-mark { width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, var(--hne-teal), var(--hne-teal-dark)); color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 20px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hne-logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.hne-logo-text strong { font-family: var(--font-heading); font-size: 18px; color: var(--hne-heading); }
.hne-logo-text small { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--hne-copper); font-weight: 600; }
.hne-logo--light .hne-logo-text strong { color: #fff; }

.hne-nav-list { display: flex; align-items: center; gap: 32px; }
.hne-nav-list a { font-weight: 600; font-size: 15px; color: var(--hne-heading); position: relative; padding: 4px 0; }
.hne-nav-list a:hover { color: var(--hne-teal); }

.hne-header-actions { display: flex; align-items: center; gap: 12px; }
.hne-header-phone { display: none; }
.hne-nav-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 40px; height: 40px; background: transparent; border: 1px solid var(--hne-border); border-radius: 8px; }
.hne-nav-toggle span { display: block; height: 2px; width: 18px; background: var(--hne-heading); margin: 0 auto; transition: all .2s ease; }
.hne-nav-toggle.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hne-nav-toggle.is-active span:nth-child(2) { opacity: 0; }
.hne-nav-toggle.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Footer
   ========================================================================== */
.hne-footer { background: var(--hne-ink); color: rgba(255,255,255,.72); padding-top: 64px; }
.hne-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; }
.hne-footer-brand p { color: rgba(255,255,255,.6); margin: 16px 0 20px; font-size: 14.5px; }
.hne-footer-social { display: flex; gap: 10px; }
.hne-footer-social a { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; }
.hne-footer-social a:hover { background: var(--hne-teal); }
.hne-footer-col h4 { color: #fff; font-family: var(--font-body); font-size: 15px; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 18px; }
.hne-footer-col ul li { margin-bottom: 11px; }
.hne-footer-col ul a { color: rgba(255,255,255,.65); font-size: 14.5px; }
.hne-footer-col ul a:hover { color: var(--hne-copper); }
.hne-footer-contact li { display: flex; align-items: flex-start; gap: 9px; color: rgba(255,255,255,.65); font-size: 14.5px; }
.hne-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 20px 0; }
.hne-footer-bottom-row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 13px; color: rgba(255,255,255,.5); }

.hne-float-cta { position: fixed; right: 22px; bottom: 22px; display: flex; flex-direction: column; gap: 12px; z-index: 400; }
.hne-float-btn { width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 21px; box-shadow: var(--hne-shadow-lg); }
.hne-float-btn--call { background: var(--hne-teal); }
.hne-float-btn--zalo { background: var(--hne-copper); }
.hne-float-btn:hover { transform: scale(1.07); }

/* ==========================================================================
   Homepage hero
   ========================================================================== */
.hne-hero { position: relative; background: linear-gradient(180deg, var(--hne-teal-light) 0%, var(--hne-bg) 65%); padding: 64px 0 0; overflow: hidden; }
.hne-hero--has-image { background-size: cover; background-position: center; }
.hne-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,42,44,.78) 0%, rgba(14,42,44,.55) 55%, var(--hne-bg) 100%); }
.hne-hero-inner { position: relative; z-index: 1; text-align: center; max-width: 760px; margin: 0 auto; }
.hne-hero .hne-eyebrow { color: var(--hne-teal); }
.hne-hero--has-image .hne-eyebrow { color: #f2d9c2; }
.hne-hero--has-image .hne-hero-title, .hne-hero--has-image .hne-hero-desc { color: #fff; }
.hne-hero--has-image .hne-hero-stats strong { color: #fff; }
.hne-hero--has-image .hne-hero-stats span { color: rgba(255,255,255,.75); }
.hne-hero > .hne-container:last-child { position: relative; z-index: 1; }

.hne-trust-strip { background: var(--hne-ink); }
.hne-trust-strip-inner { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 36px; padding: 16px 24px; }
.hne-trust-item { display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,.82); font-size: 13.5px; font-weight: 600; }
.hne-trust-item i { color: var(--hne-copper); font-size: 14px; }
.hne-hero-title { font-size: clamp(32px, 5vw, 50px); }
.hne-hero-desc { font-size: 17px; max-width: 600px; margin: 0 auto 8px; }
.hne-hero-stats { display: flex; justify-content: center; gap: 56px; margin: 36px 0 44px; }
.hne-hero-stats div { text-align: center; }
.hne-hero-stats strong { display: block; font-family: var(--font-heading); font-size: 34px; color: var(--hne-teal-dark); }
.hne-hero-stats span { font-size: 13.5px; color: var(--hne-text-light); }

.hne-search-card {
    background: var(--hne-card); border-radius: var(--hne-radius-lg); box-shadow: var(--hne-shadow-lg);
    padding: 22px; display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 14px; align-items: end;
    transform: translateY(38px); margin-bottom: -38px; border: 1px solid var(--hne-border);
}
.hne-search-field { display: flex; flex-direction: column; gap: 6px; text-align: left; }
.hne-search-field label { font-size: 12.5px; font-weight: 600; color: var(--hne-text-light); text-transform: uppercase; letter-spacing: .04em; }
.hne-search-field select { padding: 12px 14px; border-radius: var(--hne-radius-sm); border: 1.5px solid var(--hne-border); background: var(--hne-bg); color: var(--hne-heading); }
.hne-search-submit { height: 46px; padding-left: 26px; padding-right: 26px; }

/* ---------- Category grid ---------- */
.hne-categories { padding-top: 96px; }
.hne-category-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.hne-category-tile { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 26px 16px; text-align: center; transition: all .2s ease; }
.hne-category-tile:hover { border-color: var(--hne-teal); box-shadow: var(--hne-shadow); transform: translateY(-3px); }
.hne-category-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--hne-teal-light); color: var(--hne-teal); font-size: 20px; margin-bottom: 14px; }
.hne-category-name { display: block; font-weight: 700; color: var(--hne-heading); font-size: 14.5px; }
.hne-category-count { display: block; font-size: 12.5px; color: var(--hne-text-light); margin-top: 4px; }

/* ---------- Service areas ---------- */
.hne-area-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.hne-area-tile { position: relative; display: flex; align-items: center; gap: 16px; background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 22px; transition: all .2s ease; overflow: hidden; }
.hne-area-tile:hover { border-color: var(--hne-teal); box-shadow: var(--hne-shadow); transform: translateY(-3px); }
.hne-area-icon { width: 50px; height: 50px; border-radius: 50%; background: var(--hne-copper); color: #fff; font-size: 19px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hne-area-name { display: block; font-weight: 700; color: var(--hne-heading); font-size: 15.5px; }
.hne-area-count { display: block; font-size: 12.5px; color: var(--hne-text-light); margin-top: 2px; }
.hne-area-arrow { margin-left: auto; color: var(--hne-text-light); transition: all .2s ease; }
.hne-area-tile:hover .hne-area-arrow { color: var(--hne-teal); transform: translateX(3px); }

/* ---------- About (image + list) ---------- */
.hne-about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: center; }
.hne-about-media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--hne-radius-lg); box-shadow: var(--hne-shadow-lg); }
.hne-about-media-placeholder { width: 100%; aspect-ratio: 4/5; border-radius: var(--hne-radius-lg); background: linear-gradient(150deg, var(--hne-teal), var(--hne-teal-dark)); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; box-shadow: var(--hne-shadow-lg); }
.hne-agent-avatar--lg { width: 90px; height: 90px; font-size: 36px; background: rgba(255,255,255,.15); }
.hne-about-media-placeholder strong { color: #fff; font-family: var(--font-heading); font-size: 20px; }
.hne-about-media-placeholder span { color: rgba(255,255,255,.75); font-size: 13.5px; }
.hne-about-content h2 { font-size: clamp(22px, 3vw, 28px); }
.hne-about-list { display: flex; flex-direction: column; gap: 20px; margin-top: 22px; }
.hne-about-item { display: flex; gap: 16px; }
.hne-about-item h3 { font-size: 16px; margin-bottom: 4px; }
.hne-about-item p { font-size: 14px; margin: 0; }

/* ---------- Insights / tips ---------- */
.hne-insight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.hne-insight-card { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 26px; }
.hne-insight-icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: var(--hne-copper); color: #fff; font-size: 18px; margin-bottom: 16px; }
.hne-insight-card h3 { font-size: 16px; }
.hne-insight-card p { font-size: 13.5px; margin: 0; }

/* ==========================================================================
   Listing cards (shared: homepage, archive, related)
   ========================================================================== */
.hne-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.hne-card {
    background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius);
    overflow: hidden; transition: all .22s ease; display: flex; flex-direction: column;
}
.hne-card:hover { box-shadow: var(--hne-shadow-lg); transform: translateY(-4px); border-color: transparent; }
.hne-card-media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--hne-bg-alt); }
.hne-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.hne-card:hover .hne-card-media img { transform: scale(1.06); }
.hne-card-flag { position: absolute; top: 12px; left: 12px; background: var(--hne-teal); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 999px; }
.hne-card-flag--cho-thue { background: var(--hne-copper); }
.hne-card-flag--sang-nhuong { background: var(--hne-ink); }
.hne-card-type { position: absolute; top: 12px; right: 12px; background: rgba(18,38,43,.72); color: #fff; font-size: 11.5px; font-weight: 600; padding: 5px 11px; border-radius: 999px; backdrop-filter: blur(4px); }
.hne-card-body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.hne-card-price { font-family: var(--font-heading); font-size: 20px; font-weight: 700; color: var(--hne-copper-dark); }
.hne-card-title { font-size: 16.5px; margin: 0; }
.hne-card-title a:hover { color: var(--hne-teal); }
.hne-card-location { font-size: 13.5px; color: var(--hne-text-light); display: flex; align-items: center; gap: 6px; }
.hne-card-meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; color: var(--hne-text); margin-top: auto; padding-top: 8px; border-top: 1px dashed var(--hne-border); }
.hne-card-meta span { display: inline-flex; align-items: center; gap: 6px; }
.hne-card-meta i { color: var(--hne-teal); }

/* ---------- Feature / process grids (About / Quy trình) ---------- */
.hne-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.hne-feature-card { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 28px 22px; }
.hne-feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 14px; background: var(--hne-teal-light); color: var(--hne-teal); font-size: 20px; margin-bottom: 16px; }
.hne-feature-card h3 { font-size: 17px; }
.hne-feature-card p { font-size: 14px; margin: 0; }

.hne-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.hne-process-step { position: relative; padding: 8px 0 0 0; }
.hne-process-num { font-family: var(--font-heading); font-size: 40px; font-weight: 700; color: var(--hne-teal-light); -webkit-text-stroke: 1.5px var(--hne-teal); display: block; margin-bottom: 6px; }
.hne-process-step h3 { font-size: 16.5px; }
.hne-process-step p { font-size: 14px; }

.hne-cta-banner { background: linear-gradient(120deg, var(--hne-teal), var(--hne-teal-dark)); padding: 52px 0; }
.hne-cta-banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.hne-cta-banner h2 { color: #fff; font-size: 26px; }
.hne-cta-banner p { color: rgba(255,255,255,.85); margin: 0; }

/* ---------- Contact / lead form (homepage) ---------- */
.hne-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.hne-contact-info h2 { font-size: 28px; }
.hne-contact-list { margin-top: 22px; display: flex; flex-direction: column; gap: 14px; }
.hne-contact-list li { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.hne-contact-list i { width: 36px; height: 36px; border-radius: 50%; background: var(--hne-teal-light); color: var(--hne-teal); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hne-lead-form { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius-lg); padding: 30px; box-shadow: var(--hne-shadow); }
.hne-lead-message { margin-top: 14px; font-size: 14px; }
.hne-lead-message.is-success { color: var(--hne-teal-dark); }
.hne-lead-message.is-error { color: #b3452f; }

/* ==========================================================================
   Generic field styling (shared: lead form, posting form)
   ========================================================================== */
.hne-field { margin-bottom: 18px; text-align: left; }
.hne-field label { display: block; font-size: 13.5px; font-weight: 600; color: var(--hne-heading); margin-bottom: 7px; }
.hne-field label em { color: var(--hne-copper); font-style: normal; }
.hne-field input, .hne-field select, .hne-field textarea {
    width: 100%; padding: 12px 14px; border-radius: var(--hne-radius-sm); border: 1.5px solid var(--hne-border);
    background: var(--hne-bg); color: var(--hne-heading); transition: border-color .2s ease;
}
.hne-field input:focus, .hne-field select:focus, .hne-field textarea:focus { outline: none; border-color: var(--hne-teal); background: #fff; }
.hne-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }

/* ==========================================================================
   Page hero (archive + posting page)
   ========================================================================== */
.hne-page-hero { position: relative; background: var(--hne-ink); padding: 56px 0 40px; overflow: hidden; }
.hne-page-hero--has-image { background-size: cover; background-position: center; }
.hne-page-hero--has-image .hne-hero-overlay { background: linear-gradient(120deg, rgba(14,42,44,.92) 0%, rgba(14,42,44,.72) 100%); }
.hne-page-hero > .hne-container { position: relative; z-index: 1; }
.hne-page-hero .hne-breadcrumbs { color: rgba(255,255,255,.5); font-size: 13.5px; margin-bottom: 14px; display: flex; gap: 8px; }
.hne-page-hero .hne-breadcrumbs a { color: rgba(255,255,255,.75); }
.hne-page-hero .hne-breadcrumbs a:hover { color: var(--hne-copper); }
.hne-page-hero h1 { color: #fff; font-size: clamp(26px, 3.4vw, 36px); margin-bottom: 10px; }
.hne-page-hero p { color: rgba(255,255,255,.65); max-width: 640px; margin: 0; }
.hne-page-hero-stats { display: flex; gap: 36px; margin-top: 26px; flex-wrap: wrap; }
.hne-page-hero-stats div { display: flex; align-items: baseline; gap: 8px; }
.hne-page-hero-stats strong { font-family: var(--font-heading); font-size: 22px; color: var(--hne-copper); }
.hne-page-hero-stats span { font-size: 13px; color: rgba(255,255,255,.6); }

/* ==========================================================================
   Archive / Kho Bất Động Sản
   ========================================================================== */
.hne-archive-section { padding-top: 40px; }
.hne-filter-bar { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 20px; box-shadow: var(--hne-shadow); margin-bottom: 28px; }
.hne-filter-bar-row { display: grid; grid-template-columns: repeat(4, 1fr) auto auto; gap: 14px; align-items: end; }
.hne-filter-field { display: flex; flex-direction: column; gap: 6px; }
.hne-filter-field label { font-size: 12.5px; font-weight: 600; color: var(--hne-text-light); text-transform: uppercase; letter-spacing: .03em; }
.hne-filter-field select { padding: 11px 13px; border-radius: var(--hne-radius-sm); border: 1.5px solid var(--hne-border); background: var(--hne-bg); }

.hne-results-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.hne-results-count { font-weight: 600; color: var(--hne-heading); }
.hne-sort-form { display: flex; align-items: center; gap: 10px; }
.hne-sort-form label { font-size: 13.5px; color: var(--hne-text-light); }
.hne-sort-form select { padding: 9px 12px; border-radius: var(--hne-radius-sm); border: 1.5px solid var(--hne-border); background: var(--hne-card); }

.hne-card-grid--archive { grid-template-columns: repeat(3, 1fr); }
.hne-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.hne-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 8px; border-radius: var(--hne-radius-sm); border: 1.5px solid var(--hne-border); background: var(--hne-card); color: var(--hne-heading); font-weight: 600; font-size: 14px; }
.hne-pagination .page-numbers.current { background: var(--hne-teal); border-color: var(--hne-teal); color: #fff; }
.hne-pagination .page-numbers:hover:not(.current) { border-color: var(--hne-teal); color: var(--hne-teal); }

.hne-empty-state { text-align: center; padding: 70px 20px; background: var(--hne-card); border: 1px dashed var(--hne-border); border-radius: var(--hne-radius); }
.hne-empty-state i { font-size: 40px; color: var(--hne-text-light); margin-bottom: 18px; }
.hne-empty-state h3 { font-size: 19px; }
.hne-empty-state p { max-width: 420px; margin: 0 auto 22px; }

/* ==========================================================================
   Single listing page
   ========================================================================== */
.hne-single-listing .hne-topbar.hne-topbar,
.hne-single-listing > .hne-container.hne-topbar { background: transparent; color: inherit; padding: 22px 0 0; }
.hne-single-listing .hne-breadcrumbs { display: flex; gap: 8px; font-size: 13.5px; color: var(--hne-text-light); }
.hne-single-listing .hne-breadcrumbs a { color: var(--hne-text); }
.hne-single-listing .hne-breadcrumbs a:hover { color: var(--hne-teal); }
.hne-topbar-row-flex { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.hne-share-row { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--hne-text-light); }
.hne-share-row a, .hne-copy-link { width: 32px; height: 32px; border-radius: 50%; background: var(--hne-card); border: 1px solid var(--hne-border); display: flex; align-items: center; justify-content: center; color: var(--hne-heading); font-size: 13px; }
.hne-share-row a:hover, .hne-copy-link:hover { background: var(--hne-teal); border-color: var(--hne-teal); color: #fff; }

.hne-headline { padding: 14px 0 24px; }
.hne-headline-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.hne-badge { display: inline-block; background: var(--hne-teal); color: #fff; font-size: 12.5px; font-weight: 700; padding: 5px 14px; border-radius: 999px; margin-bottom: 0; }
.hne-badge--outline { background: transparent; border: 1.5px solid var(--hne-border); color: var(--hne-text); display: inline-flex; align-items: center; gap: 6px; }
.hne-badge--outline i { color: var(--hne-teal); font-size: 11px; }
.hne-headline h1 { font-size: clamp(24px, 3vw, 32px); margin-bottom: 8px; }
.hne-headline-location { display: flex; align-items: center; gap: 8px; color: var(--hne-text-light); margin: 0; }
.hne-headline-location i { color: var(--hne-copper); }

.hne-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; border-radius: var(--hne-radius-lg); overflow: hidden; margin-bottom: 22px; }
.hne-gallery-main { position: relative; aspect-ratio: 16/11; background: var(--hne-bg-alt); cursor: zoom-in; }
.hne-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.hne-gallery-expand { position: absolute; right: 14px; bottom: 14px; background: rgba(18,38,43,.75); color: #fff; border: none; padding: 9px 16px; border-radius: 999px; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.hne-gallery-thumbs { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); gap: 10px; height: 100%; }
.hne-gallery-thumb { position: relative; padding: 0; border: none; overflow: hidden; cursor: pointer; background: var(--hne-bg-alt); min-height: 0; }
.hne-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hne-gallery-more { position: absolute; inset: 0; background: rgba(18,38,43,.6); color: #fff; font-size: 20px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

.hne-stats-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 22px; margin-bottom: 30px; box-shadow: var(--hne-shadow); }
.hne-stat { display: flex; align-items: center; gap: 14px; }
.hne-stat i { width: 44px; height: 44px; border-radius: 12px; background: var(--hne-teal-light); color: var(--hne-teal); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.hne-stat span { display: block; font-size: 12.5px; color: var(--hne-text-light); }
.hne-stat strong { display: block; font-family: var(--font-heading); font-size: 16.5px; color: var(--hne-heading); }

.hne-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 28px; align-items: start; padding-bottom: 56px; }
.hne-main-col { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.hne-card.hne-specs-card, .hne-card.hne-content-card, .hne-card.hne-amenities-card, .hne-card.hne-map-card, .hne-card.hne-video-card {
    background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 26px; box-shadow: none;
}
.hne-card.hne-specs-card h2, .hne-card.hne-content-card h2, .hne-card.hne-amenities-card h2, .hne-card.hne-map-card h2, .hne-card.hne-video-card h2 { font-size: 19px; margin-bottom: 18px; }

.hne-specs-table { width: 100%; border-collapse: collapse; }
.hne-specs-table tr { border-bottom: 1px solid var(--hne-border); }
.hne-specs-table tr:last-child { border-bottom: none; }
.hne-specs-table th, .hne-specs-table td { text-align: left; padding: 12px 8px; font-size: 14.5px; }
.hne-specs-table th { color: var(--hne-text-light); font-weight: 500; width: 40%; }
.hne-specs-table td { color: var(--hne-heading); font-weight: 600; }

.hne-content-body { font-size: 15px; color: var(--hne-text); white-space: pre-line; }
.hne-amenity-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.hne-amenity-item { display: flex; align-items: center; gap: 9px; font-size: 14.5px; color: var(--hne-heading); }
.hne-amenity-item i { color: var(--hne-teal); }
.hne-map-embed iframe, .hne-video-embed iframe { width: 100%; aspect-ratio: 16/9; border: none; border-radius: var(--hne-radius-sm); }

.hne-safety-note { display: flex; gap: 16px; background: var(--hne-teal-light); border-radius: var(--hne-radius); padding: 22px; }
.hne-safety-note i { font-size: 22px; color: var(--hne-teal-dark); flex-shrink: 0; }
.hne-safety-note h4 { font-size: 15.5px; margin-bottom: 6px; }
.hne-safety-note p { font-size: 13.5px; margin: 0; color: var(--hne-teal-dark); }

.hne-sidebar-col { position: sticky; top: 96px; }
.hne-agent-card { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 26px; box-shadow: var(--hne-shadow); }
.hne-agent-top { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.hne-agent-avatar { width: 54px; height: 54px; border-radius: 50%; background: linear-gradient(135deg, var(--hne-teal), var(--hne-teal-dark)); color: #fff; font-family: var(--font-heading); font-size: 22px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hne-agent-top strong { display: block; font-size: 16px; color: var(--hne-heading); }
.hne-agent-top span { font-size: 13px; color: var(--hne-text-light); }
.hne-agent-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.hne-agent-actions .hne-btn { width: 100%; }
.hne-agent-meta { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--hne-border); padding-top: 18px; }
.hne-agent-meta li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--hne-text); }
.hne-agent-meta i { color: var(--hne-teal); width: 18px; text-align: center; }

.hne-related { padding-bottom: 60px; }
.hne-related .hne-section-head { margin-bottom: 26px; }

/* ---------- Lightbox ---------- */
.hne-lightbox { position: fixed; inset: 0; background: rgba(10,20,22,.94); z-index: 1000; display: none; align-items: center; justify-content: center; }
.hne-lightbox.is-open { display: flex; }
.hne-lightbox img { max-width: 88vw; max-height: 84vh; object-fit: contain; border-radius: 6px; }
.hne-lightbox-close, .hne-lightbox-prev, .hne-lightbox-next { position: absolute; background: rgba(255,255,255,.1); border: none; color: #fff; width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.hne-lightbox-close:hover, .hne-lightbox-prev:hover, .hne-lightbox-next:hover { background: rgba(255,255,255,.22); }
.hne-lightbox-close { top: 24px; right: 24px; }
.hne-lightbox-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.hne-lightbox-next { right: 24px; top: 50%; transform: translateY(-50%); }
.hne-lightbox-count { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.7); font-size: 13.5px; }

/* ==========================================================================
   Posting form page (Đăng Tin)
   ========================================================================== */
.hne-posting-section { padding-top: 44px; }
.hne-posting-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 28px; align-items: start; }
.hne-stepper { display: flex; background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 6px; margin-bottom: 20px; overflow-x: auto; }
.hne-stepper-item { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: var(--hne-radius-sm); font-size: 13px; font-weight: 600; color: var(--hne-text-light); white-space: nowrap; flex: 1; justify-content: center; }
.hne-stepper-item:hover { color: var(--hne-teal); background: var(--hne-teal-light); }
.hne-stepper-num { width: 22px; height: 22px; border-radius: 50%; background: var(--hne-bg-alt); color: var(--hne-text-light); font-size: 11.5px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hne-stepper-item:hover .hne-stepper-num { background: var(--hne-teal); color: #fff; }

.hne-panel { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius-lg); padding: 32px; box-shadow: var(--hne-shadow); }
.hne-panel-head { margin-bottom: 26px; }
.hne-panel-head h2 { font-size: 21px; }
.hne-panel-head p { margin: 0; }

.hne-form-section { padding: 24px 0; border-top: 1px solid var(--hne-border); }
.hne-form-section:first-of-type { border-top: none; padding-top: 0; }
.hne-form-section-head { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.hne-form-section-icon { width: 32px; height: 32px; border-radius: 50%; background: var(--hne-teal); color: #fff; font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hne-form-section-head h4 { font-size: 16px; margin: 0; }
.hne-form-section-head p { margin: 2px 0 0; font-size: 13px; }

.hne-check-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.hne-check-item { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--hne-heading); background: var(--hne-bg); border: 1.5px solid var(--hne-border); border-radius: var(--hne-radius-sm); padding: 11px 14px; cursor: pointer; }
.hne-check-item input { accent-color: var(--hne-teal); }

.hne-upload-zone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; border: 2px dashed var(--hne-border); border-radius: var(--hne-radius); padding: 40px 20px; cursor: pointer; background: var(--hne-bg); transition: all .2s ease; }
.hne-upload-zone:hover, .hne-upload-zone.is-dragover { border-color: var(--hne-teal); background: var(--hne-teal-light); }
.hne-upload-zone i { font-size: 30px; color: var(--hne-teal); }
.hne-upload-zone span { font-weight: 600; color: var(--hne-heading); }
.hne-upload-zone small { color: var(--hne-text-light); font-size: 12.5px; }
.hne-image-preview-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: 14px; }
.hne-image-preview-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--hne-radius-sm); border: 1px solid var(--hne-border); }

.hne-submit-btn { width: 100%; padding: 15px; font-size: 15.5px; margin-top: 8px; }

.hne-form-message { padding: 15px 18px; border-radius: var(--hne-radius-sm); font-size: 14.5px; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }
.hne-form-message--success { background: var(--hne-teal-light); color: var(--hne-teal-dark); }
.hne-form-message--error { background: #fbe9e4; color: #a2402a; }

.hne-posting-sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 96px; }
.hne-benefit-list { background: var(--hne-card); border: 1px solid var(--hne-border); border-radius: var(--hne-radius); padding: 24px; display: flex; flex-direction: column; gap: 18px; }
.hne-benefit-item { display: flex; gap: 14px; }
.hne-benefit-item i { font-size: 18px; color: var(--hne-teal); margin-top: 3px; }
.hne-benefit-item strong { display: block; font-size: 14.5px; color: var(--hne-heading); margin-bottom: 3px; }
.hne-benefit-item p { font-size: 13px; margin: 0; }

/* ---------- Generic page content (page.php / index.php fallback) ---------- */
.hne-page-content { max-width: 820px; margin: 0 auto; font-size: 15.5px; }
.hne-page-content h1, .hne-page-content h2, .hne-page-content h3 { margin-top: 1.3em; }
.hne-page-content p { margin-bottom: 1.2em; }
.hne-page-content ul, .hne-page-content ol { margin: 0 0 1.2em; padding-left: 22px; list-style: initial; }
.hne-page-content img { border-radius: var(--hne-radius-sm); margin: 1em 0; }
.hne-page-content a { color: var(--hne-teal); text-decoration: underline; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
    .hne-category-grid { grid-template-columns: repeat(3, 1fr); }
    .hne-card-grid, .hne-card-grid--archive { grid-template-columns: repeat(2, 1fr); }
    .hne-feature-grid, .hne-process-grid { grid-template-columns: repeat(2, 1fr); }
    .hne-footer-grid { grid-template-columns: 1fr 1fr; }
    .hne-layout, .hne-posting-layout { grid-template-columns: 1fr; }
    .hne-sidebar-col, .hne-posting-sidebar { position: static; }
    .hne-contact-grid { grid-template-columns: 1fr; gap: 32px; }
    .hne-search-card { grid-template-columns: repeat(2, 1fr); }
    .hne-area-grid { grid-template-columns: repeat(2, 1fr); }
    .hne-about-grid { grid-template-columns: 1fr; gap: 32px; }
    .hne-about-media img, .hne-about-media-placeholder { aspect-ratio: 16/9; }
    .hne-insight-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .hne-topbar-contact span:last-child { display: none; }
    .hne-nav { position: fixed; top: 0; right: -100%; width: 82%; max-width: 320px; height: 100vh; background: #fff; padding: 90px 28px 28px; transition: right .25s ease; box-shadow: -8px 0 30px rgba(0,0,0,.12); z-index: 600; }
    .hne-nav.is-open { right: 0; }
    .hne-nav-list { flex-direction: column; align-items: flex-start; gap: 22px; }
    .hne-nav-toggle { display: flex; }
    .hne-header-phone { display: none !important; }
    .hne-hero-stats { gap: 28px; }
    .hne-search-card { grid-template-columns: 1fr; transform: none; margin-bottom: 32px; }
    .hne-categories { padding-top: 48px; }
    .hne-category-grid { grid-template-columns: repeat(2, 1fr); }
    .hne-card-grid, .hne-card-grid--archive { grid-template-columns: 1fr; }
    .hne-feature-grid, .hne-process-grid { grid-template-columns: 1fr; }
    .hne-footer-grid { grid-template-columns: 1fr; gap: 30px; }
    .hne-filter-bar-row { grid-template-columns: 1fr 1fr; }
    .hne-gallery { grid-template-columns: 1fr; }
    .hne-gallery-thumbs { grid-template-rows: unset; grid-template-columns: repeat(4, 1fr); }
    .hne-stats-bar { grid-template-columns: repeat(2, 1fr); }
    .hne-area-grid { grid-template-columns: 1fr; }
    .hne-insight-grid { grid-template-columns: 1fr; }
    .hne-trust-strip-inner { justify-content: flex-start; gap: 10px 22px; }
    .hne-page-hero-stats { gap: 22px; }
    .hne-stepper-item span:last-child { display: none; }
    .hne-topbar-row-flex { justify-content: space-between; }
    .hne-field-grid, .hne-check-grid { grid-template-columns: 1fr; }
    .hne-image-preview-grid { grid-template-columns: repeat(4, 1fr); }
    .hne-section { padding: 48px 0; }
}
