@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');
:root{--ink:#18392f;--green:#103e33;--green2:#215b47;--gold:#cba96d;--paper:#f7f7f3;--muted:#67726c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:#25352f;background:#fff}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.header{height:86px;padding:0 clamp(20px,5vw,90px);display:flex;align-items:center;justify-content:space-between;background:#fff;position:sticky;top:0;z-index:20;box-shadow:0 1px 15px #0b302411}.brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:800;letter-spacing:2px;color:var(--green)}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:4px;color:#7c8a7f}.brand-mark{display:grid;place-items:center;background:var(--green);color:#e4c68a;width:49px;height:49px;border:1px solid var(--gold);font-size:14px}.header nav{display:flex;gap:30px;font-size:13px;font-weight:700}.header nav a:hover{color:#b5904f}.header-call{border:1px solid var(--green);color:var(--green);padding:13px 18px;font-size:13px;font-weight:800}.hero{height:min(760px,78vw);min-height:540px;position:relative;color:white;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url('/images/phoi-canh-01.jpg') center 55%/cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,34,28,.88),rgba(6,34,28,.53) 48%,rgba(6,34,28,.05))}.hero-content{position:relative;z-index:1;max-width:760px;padding:clamp(90px,11vw,170px) 30px 0 clamp(24px,9vw,150px)}.eyebrow,.kicker{font-size:12px;letter-spacing:3px;font-weight:800;color:#a78651}.eyebrow{color:#e1c58e}.hero h1,.section h2,.modal h2{font-family:'Playfair Display',Georgia,serif;letter-spacing:-1px}.hero h1{font-size:clamp(50px,6vw,88px);line-height:1.11;margin:22px 0}.hero h1 em{color:#f0d7a3;font-weight:600}.hero p{max-width:520px;line-height:1.85;color:#e7eee9}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:33px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;padding:16px 23px;font-weight:800;font-size:12px;letter-spacing:.8px;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:#d5ad68;color:#153c2e}.btn.ghost{border-color:#fff9;color:white;background:transparent}.hero-note{position:absolute;bottom:20px;right:25px;font-size:11px;color:#eee9}.section{padding:95px clamp(22px,7vw,120px)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;background:var(--paper)}.section h2{font-size:clamp(34px,4vw,54px);line-height:1.23;margin:15px 0 0;color:var(--green)}.section h2 span{color:#9c7d4b}.intro p,.section-head p{line-height:1.9;color:var(--muted)}.mini-features{display:flex;flex-wrap:wrap;gap:13px;margin-top:26px}.mini-features span{padding:10px 13px;background:#e9ece6;font-size:12px;color:#3e6151}.section-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:35px}.section-head p{max-width:340px;font-size:14px}.listings{background:#fff}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.product{border:1px solid #e8eae4;background:white;overflow:hidden;box-shadow:0 12px 30px #0e39250b}.product-photo{height:330px;position:relative;overflow:hidden;background:#edf0ec}.product-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.product:hover .product-photo img{transform:scale(1.04)}.tag{position:absolute;top:17px;left:17px;background:#fff;color:#20533f;padding:9px 12px;font-size:11px;font-weight:800}.product-body{padding:23px}.product h3{font-size:20px;margin:3px 0 12px;color:var(--green)}.product .meta{font-size:13px;color:#758078;line-height:1.7}.product-actions{display:flex;gap:9px;margin-top:18px}.product-actions button{flex:1;padding:13px 8px;border:1px solid #174535;background:#174535;color:#fff;font-size:12px;font-weight:800}.product-actions .view{background:#fff;color:#174535}.disclaimer{margin-top:25px;font-size:12px;line-height:1.8;color:#7b857c}.gallery{background:#f4f5f0}.gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}.gallery figure{margin:0;position:relative;height:360px;overflow:hidden}.gallery img{width:100%;height:100%;object-fit:cover}.gallery figcaption{position:absolute;bottom:0;left:0;right:0;color:white;padding:30px 18px 15px;background:linear-gradient(transparent,#112d23ba);font-weight:700}.contact{background:var(--green);color:white;display:flex;align-items:center;justify-content:space-between;gap:25px}.contact h2{color:white}.contact p{color:#c8d9d1;line-height:1.8}.contact .kicker{color:#e5c88f}.contact-actions{display:flex;flex-wrap:wrap;gap:12px}.contact-actions .ghost{border-color:#b8d1c5}footer{display:flex;justify-content:space-between;gap:15px;padding:25px clamp(22px,7vw,120px);font-size:11px;color:#7e8c83;flex-wrap:wrap}.float-links{position:fixed;right:18px;bottom:80px;display:grid;gap:12px;z-index:21}.float-links a{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:white;font-weight:800;box-shadow:0 7px 18px #0003}.float-zalo{background:#1674f3;font-size:14px}.float-phone{background:#25a955;font-size:30px}.modal-backdrop{position:fixed;inset:0;background:#071b16b8;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}.modal-backdrop[hidden]{display:none}.modal{width:min(100%,480px);background:white;border-top:7px solid #d5ad68;padding:32px;position:relative;box-shadow:0 30px 90px #0005}.close{position:absolute;top:14px;right:15px;border:0;background:none;font-size:30px;color:#57695e}.modal h2{font-size:32px;color:var(--green);margin:13px 0}.modal-desc{color:#69766f;font-size:13px;line-height:1.7}.chosen{background:#f3f5f1;padding:12px;font-size:13px}.modal form>label:not(.consent){display:block;margin:16px 0 0;font-size:12px;font-weight:800;color:#315144}.modal input:not([type=checkbox]){display:block;width:100%;border:1px solid #d8e0d9;padding:15px;margin-top:8px;outline-color:#b69b63;border-radius:3px}.consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;color:#5d6d63;margin:19px 0}.consent input{margin-top:3px;accent-color:var(--green)}.full{width:100%}.feedback{min-height:18px;font-size:13px;color:#236a48}.trap{display:none!important}.gallery-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0}.gallery-preview img{height:75px;width:100%;object-fit:cover}.preview-modal{width:min(100%,720px)}.preview-main{width:100%;max-height:60vh;object-fit:contain;background:#f2f3f1}.gallery-preview button{padding:0;border:2px solid transparent;background:none}.gallery-preview button.active{border-color:#cba96d}
@media(max-width:980px){.header nav{display:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{gap:30px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid .wide{grid-column:span 2}}@media(max-width:650px){.header{height:72px;padding:0 16px}.brand{font-size:12px;letter-spacing:1px}.brand-mark{height:40px;width:40px;font-size:11px}.brand small{font-size:7px;letter-spacing:1px}.header-call{font-size:10px;padding:10px}.hero{min-height:610px}.hero-content{padding:110px 24px 0}.hero h1{font-size:52px}.hero-note{font-size:9px;left:24px;right:24px}.section{padding:65px 20px}.intro{grid-template-columns:1fr}.section-head{display:block}.cards{grid-template-columns:1fr}.product-photo{height:340px}.gallery-grid{grid-template-columns:1fr}.gallery-grid .wide{grid-column:auto}.gallery figure{height:300px}.contact{display:block}.contact-actions{margin-top:22px}.modal{padding:25px 20px}.float-links{right:12px;bottom:20px}.float-links a{height:51px;width:51px}}

/* Bản nâng cấp Bắc Sài Gòn */
.filterbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 26px}.filter{border:1px solid #d9e2db;background:white;color:#194534;padding:11px 19px;font-weight:700;border-radius:99px}.filter.active,.filter:hover{background:#174535;color:white}.price-badge{position:absolute;bottom:14px;left:14px;padding:11px 15px;background:#e7c181;color:#173c30;font-size:15px;font-weight:800;box-shadow:0 5px 20px #0003}.price{font-size:24px;font-weight:800;color:#16513a;letter-spacing:-.5px}.installment{font-size:14px;color:#425a4e;margin:6px 0 12px}.installment strong{color:#ae7428}.project-gallery{background:#faf9f4}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-grid img{width:100%;height:310px;object-fit:cover;border-radius:6px}.map-note{max-width:800px;color:#687970;line-height:1.7}.map-wrap{border:1px solid #e1e8e2;border-radius:12px;overflow:hidden;margin-top:20px}.map-wrap iframe{width:100%;height:420px;border:0;display:block}.map-link{display:inline-block;margin-top:16px;color:#175c42;font-weight:800;text-decoration:underline}.contact p strong{color:white}section[id]{scroll-margin-top:90px}@media(max-width:650px){.project-grid{grid-template-columns:1fr}.project-grid img{height:230px}.map-wrap iframe{height:320px}.price{font-size:22px}.filter{padding:10px 14px}}
.product-photo {
  position: relative;
}

.hot-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  background: #e53935;
  color: white;
  padding: 7px 14px;
  border-radius: 8px;
  font-weight: bold;
  font-size: 14px;
  animation: hotPulse 1.8s ease-in-out infinite;
}

@keyframes hotPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hot-badge {
    animation: none;
  }
}

.product-photo {
  position: relative !important;
  border: none !important;
}

.product-photo .hot-badge {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 10 !important;
  display: inline-block !important;
  background: #e53935 !important;
  color: #ffffff !important;
  padding: 7px 12px !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  animation: hotPulse 1.8s ease-in-out infinite;
}
.product-photo {
  position: relative;
  border: none !important;
}

.product-photo .hot-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  left: auto;
  z-index: 10;

  background: #e53935;
  color: white;
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: bold;

  animation: hotPulse 1.8s ease-in-out infinite;
}

@keyframes hotPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
}
.product-photo {
    position: relative !important;
}

.product-photo .hot-badge {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    left: auto !important;
    z-index: 20;
    background: #e53935;
    color: white;
    padding: 7px 12px;
    border-radius: 6px;
    font-weight: bold;
    animation: hotPulse 1.8s ease-in-out infinite;
}

/* Giao diện thẻ sản phẩm và thông báo đăng ký */
.product-photo, .product-photo img { border: 0 !important; outline: 0 !important; box-shadow: none !important; }
.product-photo { position: relative !important; }
.product-photo .hot-badge { position:absolute !important; top:10px !important; right:10px !important; left:auto !important; z-index:20 !important; }
.registration-toast { position:fixed; left:22px; bottom:24px; z-index:45; display:flex; align-items:center; gap:12px; width:min(360px,calc(100vw - 36px)); padding:14px 14px; background:#fff; color:#18392f; border:1px solid #dce7de; border-left:4px solid #1c8c60; border-radius:12px; box-shadow:0 14px 38px #0002; opacity:0; visibility:hidden; transform:translateY(24px); transition:opacity .3s,transform .3s,visibility .3s; pointer-events:none; }
.registration-toast.is-visible { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.registration-toast-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; flex:none; background:#e4f6eb; color:#16834e; font-size:22px; font-weight:800; }
.registration-toast-text { display:grid; gap:4px; flex:1; font-size:13px; line-height:1.35; }
.registration-toast-text small { color:#68776e; font-size:12px; }
.registration-toast-close { border:0; background:transparent; color:#6c7b72; font-size:23px; align-self:flex-start; padding:0 3px; }
@media(max-width:650px) { .registration-toast { left:12px; bottom:84px; width:calc(100vw - 24px); } }
@media(prefers-reduced-motion:reduce) { .registration-toast { transition:none; } }

/* CSS thong bao minh hoa duoc tach thanh file rieng */
@import url('/demo-notification.css');
