/* ==========================================================================
   Sài Gòn Group — Landing page dự án
   Dùng chung biến màu với sgg-home-2026.css
   ========================================================================== */

/* Lớp phạm vi, đặt trên mọi container của landing.
   Không đặt margin tràn viền ở đây: bản dựng Elementor đã dùng container
   full-width, thêm margin âm sẽ làm mọi khối con rộng bằng cả màn hình. */
.sgg-lp{
  font-family:var(--sgg-font);color:var(--sgg-chu);font-size:16.5px;line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
.sgg-lp *,.sgg-lp *::before,.sgg-lp *::after{box-sizing:border-box}
.sgg-lp img{max-width:100%;height:auto;display:block}
.sgg-lp a{color:inherit;text-decoration:none}
.sgg-lp p{margin:0 0 16px}
.sgg-lp p:last-child{margin-bottom:0}
.sgg-lp :is(h1,h2,h3,h4){margin:0;color:inherit;font-family:inherit}
.sgg-lp :is(ul,ol){margin:0 0 16px;padding-left:22px}
.sgg-lp li{margin-bottom:8px}
.sgg-lp strong{color:var(--sgg-navy);font-weight:700}

.sgg-lp__wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 24px}
.sgg-lp__sec{padding:72px 0;scroll-margin-top:90px}
.sgg-lp__sec--nen{background:var(--sgg-nen)}
.sgg-lp .sgg-lp__eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--sgg-do);margin-bottom:10px;
}
.sgg-lp .sgg-lp__eyebrow::before{content:"";width:18px;height:2px;background:currentColor}
.sgg-lp .sgg-lp__h2{
  font-size:clamp(24px,2.7vw,36px);line-height:1.22;font-weight:800;text-transform:uppercase;
  color:var(--sgg-navy);margin:0 0 18px;letter-spacing:-.01em;
}
.sgg-lp .sgg-lp__h3{font-size:clamp(18px,1.5vw,22px);font-weight:800;color:var(--sgg-navy);margin:26px 0 12px}

/* ---------- HERO ---------- */
.sgg-lp__hero{position:relative;width:100%;min-height:600px;display:flex;align-items:center;background:var(--sgg-navy);overflow:hidden}
.sgg-lp__hero-anh{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sgg-lp__hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(var(--vsp-bong-rgb),.94) 0%,rgba(var(--vsp-bong-rgb),.82) 42%,rgba(var(--vsp-bong-rgb),.45) 75%,rgba(var(--vsp-bong-rgb),.6) 100%);
}
.sgg-lp__hero-in{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:110px 24px 80px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;color:#fff}
.sgg-lp__nhan-f1{
  display:inline-flex;align-items:center;gap:8px;background:var(--sgg-do);color:#fff;
  font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 14px;border-radius:30px;margin-bottom:16px;
}
.sgg-lp .sgg-lp__hero h1{
  font-size:clamp(28px,3.9vw,46px);line-height:1.14;font-weight:800;text-transform:uppercase;
  color:#fff;margin:0 0 14px;text-shadow:0 2px 24px rgba(0,0,0,.4);
}
.sgg-lp__hero-mo-ta{font-size:17px;color:rgba(255,255,255,.9);margin-bottom:22px;max-width:52ch}
.sgg-lp__hero-nut{display:flex;gap:12px;flex-wrap:wrap}
.sgg-lp .sgg-btn{font-family:inherit}

/* Thông số nhanh trong hero */
.sgg-lp__nhanh{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.18);
  border-radius:14px;overflow:hidden;margin-top:26px}
.sgg-lp__nhanh div{background:rgba(9,26,45,.72);padding:14px 16px;backdrop-filter:blur(3px)}
.sgg-lp__nhanh dt{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);margin-bottom:3px}
.sgg-lp__nhanh dd{margin:0;font-size:15.5px;font-weight:700;color:#fff}

/* ---------- FORM ---------- */
.sgg-lp__form{background:#fff;border-radius:18px;padding:26px;box-shadow:0 26px 60px rgba(var(--vsp-bong-rgb),.34);color:var(--sgg-chu)}
.sgg-lp__form .sgg-lp__form-tt{font-size:20px;line-height:1.3;font-weight:800;color:var(--sgg-navy);margin:0 0 4px;text-transform:none}
.sgg-lp__form p{font-size:13.5px;color:var(--sgg-chu-nhat);margin-bottom:16px}
.sgg-lp__form label{display:block;font-size:12.5px;font-weight:700;color:var(--sgg-navy);margin-bottom:5px}
.sgg-lp__form label span{color:var(--sgg-do)}
.sgg-lp__form input,.sgg-lp__form select,.sgg-lp__form button{font-family:var(--sgg-font)}
.sgg-lp__form input,.sgg-lp__form select{
  width:100%;padding:12px 14px;border:1px solid var(--sgg-vien);border-radius:9px;
  font:inherit;font-size:14.5px;margin-bottom:12px;background:#fff;transition:border-color .2s,box-shadow .2s;
}
.sgg-lp__form input:focus,.sgg-lp__form select:focus{outline:none;border-color:var(--sgg-do);box-shadow:0 0 0 3px rgba(var(--vsp-nhan-rgb),.12)}
.sgg-lp__form button{
  width:100%;padding:15px;border:0;border-radius:9px;background:var(--sgg-do);color:#fff;
  font:inherit;font-size:15px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;
  box-shadow:0 10px 24px rgba(var(--vsp-nhan-rgb),.3);transition:background .2s,transform .2s;
}
.sgg-lp__form button:hover{background:var(--sgg-do-dam);transform:translateY(-2px)}
.sgg-lp__form-note{font-size:12px;color:var(--sgg-chu-nhat);text-align:center;margin:10px 0 0}

/* ---------- MỤC LỤC DÍNH ---------- */
.sgg-lp__muc-luc{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--sgg-vien);box-shadow:0 2px 12px rgba(var(--vsp-navy-rgb),.06)}
.sgg-lp__muc-luc ul{display:flex;gap:2px;list-style:none;margin:0 auto;padding:0 24px;max-width:1440px;overflow-x:auto;scrollbar-width:none}
.sgg-lp__muc-luc ul::-webkit-scrollbar{display:none}
.sgg-lp__muc-luc a{display:block;padding:15px 8px;font-size:13px;font-weight:600;color:var(--sgg-chu-nhat);white-space:nowrap;border-bottom:2px solid transparent}
.sgg-lp__muc-luc a:hover,.sgg-lp__muc-luc a.dang-xem{color:var(--sgg-do);border-bottom-color:var(--sgg-do)}

/* ---------- BẢNG GIÁ ---------- */
.sgg-lp__bang{width:100%;border-collapse:collapse;margin:18px 0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--sgg-bong)}
.sgg-lp__bang th{background:var(--sgg-navy);color:#fff;font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:14px 16px;text-align:left}
.sgg-lp__bang td{padding:14px 16px;border-top:1px solid var(--sgg-vien);font-size:15px}
.sgg-lp__bang tr:nth-child(even) td{background:#FAFBFD}
.sgg-lp__bang .gia{color:var(--sgg-do);font-weight:800;white-space:nowrap}
.sgg-lp__ghi-chu{font-size:13.5px;color:var(--sgg-chu-nhat);font-style:italic}

/* ---------- KHỐI CHÍNH SÁCH ---------- */
.sgg-lp__cs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}
.sgg-lp__cs div{background:#fff;border:1px solid var(--sgg-vien);border-left:4px solid var(--sgg-do);border-radius:12px;padding:18px 18px}
.sgg-lp__cs b{display:block;font-size:26px;font-weight:800;color:var(--sgg-do);line-height:1.1;margin-bottom:4px}
.sgg-lp__cs span{font-size:14px;color:var(--sgg-chu-nhat)}

/* ---------- LƯỚI ẢNH / TIỆN ÍCH ---------- */
.sgg-lp__luoi{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}
.sgg-lp__the{background:#fff;border:1px solid var(--sgg-vien);border-radius:14px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.sgg-lp__the:hover{transform:translateY(-5px);box-shadow:var(--sgg-bong-cao)}
.sgg-lp__the img{width:100%;aspect-ratio:4/3;object-fit:cover}
.sgg-lp__the-in{padding:16px 18px 20px}
.sgg-lp__luoi--doi{grid-template-columns:repeat(2,1fr)}
.sgg-lp .sgg-lp__the-in h4{font-size:17.5px;font-weight:800;color:var(--sgg-navy);margin:0 0 8px}
.sgg-lp__video{position:relative;margin-top:14px;border-radius:16px;overflow:hidden;background:var(--sgg-navy-3);aspect-ratio:16/9}
.sgg-lp__video img,.sgg-lp__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.sgg-lp__video::after{content:"";position:absolute;inset:0;background:rgba(var(--vsp-bong-rgb),.28);transition:background .3s}
.sgg-lp__video:hover::after{background:rgba(var(--vsp-bong-rgb),.14)}
.sgg-lp__video noscript a{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;color:#fff;text-decoration:underline}
.sgg-lp .sgg-lp__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
  width:78px;min-width:78px;max-width:78px;height:78px;min-height:78px;padding:0;
  display:flex;align-items:center;justify-content:center;
  border:0;border-radius:50%;background:var(--sgg-do);color:#fff;cursor:pointer;
  font-size:26px;line-height:1;box-shadow:0 12px 34px rgba(var(--vsp-nhan-rgb),.45);
  transition:transform .3s,background .3s;
}
.sgg-lp .sgg-lp__play:hover{background:var(--sgg-do-dam);transform:translate(-50%,-50%) scale(1.08)}
.sgg-lp .sgg-lp__play span{margin-left:5px}
.sgg-lp__hinh{margin:30px 0 0}
.sgg-lp__hinh img{width:100%;border-radius:16px;border:1px solid var(--sgg-vien)}
.sgg-lp__hinh figcaption{margin-top:10px;font-size:14px;font-style:italic;color:var(--sgg-chu-nhat);text-align:center}
.sgg-lp .sgg-lp__the-in h3{font-size:16.5px;font-weight:800;color:var(--sgg-navy);margin:0 0 6px}
.sgg-lp__the-in p{font-size:14.5px;color:var(--sgg-chu-nhat);margin:0}

.sgg-lp__doi{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.sgg-lp__doi img{border-radius:16px;box-shadow:var(--sgg-bong)}

/* ---------- DANH SÁCH TÍCH ---------- */
.sgg-lp__tich{list-style:none;padding:0;margin:0}
.sgg-lp__tich li{position:relative;padding-left:32px;margin-bottom:12px;font-size:16px}
.sgg-lp__tich li::before{
  content:"✓";position:absolute;left:0;top:2px;width:21px;height:21px;border-radius:50%;
  background:rgba(var(--vsp-nhan-rgb),.1);color:var(--sgg-do);font-size:12px;font-weight:800;display:grid;place-items:center;
}

/* ---------- KHỐI CTA GIỮA BÀI ---------- */
.sgg-lp__cta{
  position:relative;overflow:hidden;border-radius:18px;padding:34px 38px;margin:34px 0;color:#fff;
  background:linear-gradient(115deg,var(--sgg-navy),var(--sgg-navy-2) 60%,var(--vsp-navy-sang));
  display:grid;grid-template-columns:1.3fr .7fr;gap:26px;align-items:center;
}
.sgg-lp__cta::after{content:"";position:absolute;right:-6%;top:-40%;width:42%;height:190%;
  background:linear-gradient(180deg,var(--sgg-do),var(--vsp-nhan-toi));transform:skewX(-14deg);opacity:.9}
.sgg-lp__cta>*{position:relative;z-index:1}
.sgg-lp .sgg-lp__cta h3{font-size:clamp(20px,2vw,26px);font-weight:800;color:#fff;margin:0 0 8px;text-transform:uppercase}
.sgg-lp__cta p{color:rgba(255,255,255,.9);font-size:15px;margin:0}
.sgg-lp__cta-nut{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.sgg-lp__cta-nut a{
  display:inline-flex;align-items:center;gap:9px;padding:14px 24px;border-radius:10px;
  font-size:14.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;transition:transform .2s;
}
.sgg-lp__cta-nut a:first-child{background:#fff;color:var(--sgg-navy)}
.sgg-lp__cta-nut a:last-child{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.5)}
.sgg-lp__cta-nut a:hover{transform:translateY(-2px)}

/* ---------- PHÁP LÝ / TIẾN ĐỘ ---------- */
.sgg-lp__moc{display:grid;gap:14px;margin-top:20px}
.sgg-lp__moc div{display:grid;grid-template-columns:120px 1fr;gap:18px;background:#fff;border:1px solid var(--sgg-vien);border-radius:12px;padding:16px 18px}
.sgg-lp__moc b{color:var(--sgg-do);font-weight:800}

/* ---------- FAQ ---------- */
.sgg-lp__faq{display:flex;flex-direction:column;gap:12px;margin-top:22px}
.sgg-lp__faq details{background:#fff;border:1px solid var(--sgg-vien);border-radius:12px;overflow:hidden}
.sgg-lp__faq details[open]{box-shadow:var(--sgg-bong);border-color:rgba(var(--vsp-nhan-rgb),.35)}
.sgg-lp__faq summary{
  list-style:none;cursor:pointer;padding:17px 20px;font-size:16px;font-weight:700;color:var(--sgg-navy);
  display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;
}
.sgg-lp__faq summary::-webkit-details-marker{display:none}
.sgg-lp__faq summary::after{content:"+";flex:none;width:26px;height:26px;border-radius:50%;background:var(--sgg-do);color:#fff;display:grid;place-items:center;font-size:17px;font-weight:700;line-height:1}
.sgg-lp__faq details[open] summary::after{content:"−"}
.sgg-lp__faq-tl{padding:0 20px 18px;color:var(--sgg-chu-nhat);font-size:15.5px}

/* ---------- POPUP ---------- */
.sgg-pop{
  position:fixed;inset:0;z-index:9998;display:none;align-items:center;justify-content:center;padding:20px;
  background:rgba(var(--vsp-bong-rgb),.72);backdrop-filter:blur(4px);
  font-family:var(--sgg-font);color:var(--sgg-chu);line-height:1.7;
}
.sgg-pop *,.sgg-pop *::before,.sgg-pop *::after{box-sizing:border-box}
.sgg-pop p{margin:0 0 16px}
.sgg-pop img{max-width:100%;display:block}
.sgg-pop.mo{display:flex;animation:sgg-pop-in .28s ease}
@keyframes sgg-pop-in{from{opacity:0}to{opacity:1}}
.sgg-pop__hop{
  position:relative;width:min(880px,100%);background:#fff;border-radius:20px;overflow:hidden;
  display:grid;grid-template-columns:.9fr 1.1fr;box-shadow:0 40px 90px rgba(var(--vsp-bong-rgb),.45);
  animation:sgg-pop-up .35s cubic-bezier(.22,.61,.36,1);
}
@keyframes sgg-pop-up{from{transform:translateY(26px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.sgg-pop__anh{position:relative;min-height:320px;background:var(--sgg-nen)}
.sgg-pop__anh img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sgg-pop__anh::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(var(--vsp-navy-rgb),.25),rgba(var(--vsp-navy-rgb),.65))}
.sgg-pop__anh-chu{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:22px;color:#fff}
.sgg-pop__anh-chu b{display:block;font-size:19px;font-weight:800;margin-bottom:4px}
.sgg-pop__anh-chu span{font-size:13.5px;opacity:.9}
.sgg-pop__form{padding:30px}
/* Trong popup, form khong can nen trang va do bong rieng nua */
.sgg-pop .sgg-lp__form{background:transparent;box-shadow:none;padding:0;border-radius:0}
.sgg-pop .sgg-pop__form h3{font-size:22px;font-weight:800;color:var(--sgg-navy);margin:0 0 6px}
.sgg-pop__form p{font-size:14px;color:var(--sgg-chu-nhat);margin:0 0 18px}
/* Astra ep padding/min-width len moi <button>, phai ghi de het de nut tron dung tron */
.sgg-pop .sgg-pop__dong{
  position:absolute;top:12px;right:12px;z-index:3;
  width:38px;min-width:38px;max-width:38px;height:38px;min-height:38px;padding:0;
  display:flex;align-items:center;justify-content:center;
  border:0;border-radius:50%;background:var(--sgg-nen);border:1px solid var(--sgg-vien);color:var(--sgg-navy);
  font-family:inherit;font-size:22px;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(var(--vsp-bong-rgb),.2);
}
.sgg-pop .sgg-pop__dong:hover{background:#fff}

/* ---------- THANH CTA DÍNH ĐÁY (desktop) ---------- */
.sgg-lp__thanh{
  font-family:var(--sgg-font);
  position:fixed;left:0;right:0;bottom:0;z-index:95;background:rgba(255,255,255,.97);
  border-top:1px solid var(--sgg-vien);box-shadow:0 -6px 24px rgba(var(--vsp-navy-rgb),.12);
  transform:translateY(110%);transition:transform .35s cubic-bezier(.22,.61,.36,1);backdrop-filter:blur(6px);
}
.sgg-lp__thanh.hien{transform:none}
.sgg-lp__thanh-in{max-width:1180px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.sgg-lp__thanh b{font-size:15px;color:var(--sgg-navy);font-weight:800}
.sgg-lp__thanh span{font-size:13.5px;color:var(--sgg-chu-nhat)}
.sgg-lp__thanh-nut{display:flex;gap:10px;flex-wrap:wrap}
.sgg-lp__thanh-nut a{text-decoration:none;padding:12px 22px;border-radius:9px;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.sgg-lp__thanh-nut a:first-child{background:var(--sgg-do);color:#fff}
.sgg-lp__thanh-nut a:last-child{background:#fff;color:var(--sgg-navy);border:1px solid var(--sgg-vien)}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media(max-width:1000px){
  .sgg-lp__hero-in{grid-template-columns:1fr;gap:30px;padding:96px 24px 60px}
  .sgg-lp__cs{grid-template-columns:repeat(2,1fr)}
  .sgg-lp__luoi{grid-template-columns:repeat(2,1fr)}
  .sgg-lp__doi{grid-template-columns:1fr;gap:24px}
  .sgg-lp__cta{grid-template-columns:1fr;padding:28px 24px}
  .sgg-lp__cta-nut{justify-content:flex-start}
  .sgg-pop__hop{grid-template-columns:1fr}
  .sgg-pop__anh{min-height:150px}
}
@media(max-width:640px){
  .sgg-lp{font-size:16px}
  .sgg-lp__wrap{padding:0 18px}
  .sgg-lp__sec{padding:52px 0}
  .sgg-lp__hero{min-height:0}
  .sgg-lp__hero-in{padding:86px 18px 48px}
  .sgg-lp__hero-nut a{flex:1 1 100%;justify-content:center}
  .sgg-lp__nhanh{grid-template-columns:1fr 1fr}
  .sgg-lp__cs{grid-template-columns:1fr}
  .sgg-lp__luoi,.sgg-lp__luoi--doi{grid-template-columns:1fr}
  .sgg-lp__bang{display:block;overflow-x:auto;white-space:nowrap}
  .sgg-lp__moc div{grid-template-columns:1fr;gap:4px}
  .sgg-lp__thanh-in{flex-direction:column;align-items:stretch;gap:10px;padding:10px 18px}
  .sgg-lp__thanh-nut a{flex:1;text-align:center}
  .sgg-lp__thanh b,.sgg-lp__thanh span{text-align:center;display:block}
  .sgg-pop__form{padding:22px}
  body{padding-bottom:0}
}
@media (prefers-reduced-motion:reduce){
  .sgg-lp *,.sgg-pop *{animation:none!important;transition:none!important}
}


/* ==========================================================================
   Lớp dùng cho bản dựng trên Elementor
   Elementor bọc mỗi widget trong .elementor-widget-container nên các lớp
   sgg-* đặt ở widget, còn CSS nhắm vào thẻ bên trong.
   ========================================================================== */
.sgg-lp.sgg-s{padding:72px 0;scroll-margin-top:90px}
.sgg-lp.sgg-s--nen{background:var(--sgg-nen)}
.sgg-lp.sgg-s--hep{padding:52px 0}

.sgg-lp .sgg-eyebrow .elementor-heading-title,
.sgg-lp .sgg-eyebrow p{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--sgg-do);margin:0;
}
.sgg-lp .sgg-eyebrow .elementor-heading-title::before,
.sgg-lp .sgg-eyebrow p::before{content:"";width:18px;height:2px;background:currentColor}

.sgg-lp .sgg-h2 .elementor-heading-title{
  font-size:clamp(24px,2.7vw,36px);line-height:1.22;font-weight:800;text-transform:uppercase;
  color:var(--sgg-navy);letter-spacing:-.01em;margin:0;
}
.sgg-lp .sgg-h3 .elementor-heading-title{
  font-size:clamp(18px,1.5vw,22px);line-height:1.35;font-weight:800;color:var(--sgg-navy);margin:0;
}
.sgg-lp .sgg-h2--trang .elementor-heading-title,
.sgg-lp .sgg-h3--trang .elementor-heading-title{color:#fff}

.sgg-lp .sgg-txt{font-size:16.5px;line-height:1.8;color:var(--sgg-chu)}
.sgg-lp .sgg-txt p{margin:0 0 16px}
.sgg-lp .sgg-txt p:last-child{margin-bottom:0}
.sgg-lp .sgg-txt strong{color:var(--sgg-navy);font-weight:700}
.sgg-lp .sgg-txt--trang,.sgg-lp .sgg-txt--trang strong{color:rgba(255,255,255,.92)}
.sgg-lp .sgg-txt table{width:100%;border-collapse:collapse;margin:18px 0;background:#fff;
  border:1px solid var(--sgg-vien);border-radius:14px;overflow:hidden;font-size:15.5px}
.sgg-lp .sgg-txt thead th{background:var(--sgg-navy);color:#fff;font-weight:700;text-align:left;
  padding:13px 16px;font-size:14px;letter-spacing:.02em}
.sgg-lp .sgg-txt tbody td{padding:13px 16px;border-top:1px solid var(--sgg-vien)}
.sgg-lp .sgg-txt tbody tr:nth-child(even){background:#fafbfd}
.sgg-lp .sgg-txt tbody td:last-child:nth-child(n+3){color:var(--sgg-do);font-weight:700;white-space:nowrap}

/* Danh sách có dấu tích */
.sgg-lp .sgg-tick ul{list-style:none;margin:0;padding:0}
.sgg-lp .sgg-tick li{position:relative;padding-left:32px;margin-bottom:12px;line-height:1.75}
.sgg-lp .sgg-tick li::before{
  content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;
  background:rgba(var(--vsp-nhan-rgb),.1);
}
.sgg-lp .sgg-tick li::after{
  content:"";position:absolute;left:7px;top:9px;width:5px;height:9px;
  border:solid var(--sgg-do);border-width:0 2px 2px 0;transform:rotate(45deg);
}

.sgg-lp .sgg-note{font-size:14px;font-style:italic;color:var(--sgg-chu-nhat);line-height:1.7}
.sgg-lp .sgg-note p{margin:0}

.sgg-lp .sgg-img img{border-radius:16px;border:1px solid var(--sgg-vien);width:100%;height:auto;display:block}
.sgg-lp .sgg-img figcaption{margin-top:10px;font-size:14px;font-style:italic;color:var(--sgg-chu-nhat);text-align:center}

/* Thẻ nội dung */
.sgg-lp.sgg-card{background:#fff;border:1px solid var(--sgg-vien);border-radius:14px;
  transition:transform .3s,box-shadow .3s}
.sgg-lp.sgg-card:hover{transform:translateY(-5px);box-shadow:var(--sgg-bong-cao)}
.sgg-lp.sgg-card--so{border:0;border-left:3px solid var(--sgg-do);border-radius:0 12px 12px 0;background:#fff}

/* Hero dựng bằng container Elementor */
.sgg-lp.sgg-hero{position:relative}
.sgg-lp.sgg-hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(100deg,rgba(var(--vsp-bong-rgb),.94) 0%,rgba(var(--vsp-bong-rgb),.82) 42%,rgba(var(--vsp-bong-rgb),.45) 75%,rgba(var(--vsp-bong-rgb),.6) 100%);
}
.sgg-lp.sgg-hero > .e-con-inner,.sgg-lp.sgg-hero > *{position:relative;z-index:1}
.sgg-lp .sgg-nhan-f1 .elementor-heading-title,.sgg-lp .sgg-nhan-f1 p{
  display:inline-flex;align-items:center;background:var(--sgg-do);color:#fff;
  font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 14px;border-radius:30px;margin:0;
}
.sgg-lp .sgg-h1 .elementor-heading-title{
  font-size:clamp(28px,3.9vw,46px);line-height:1.14;font-weight:800;text-transform:uppercase;
  color:#fff;margin:0;text-shadow:0 2px 24px rgba(0,0,0,.4);
}

/* Nút trong Elementor */
.sgg-lp .sgg-nut .elementor-button{
  font-family:var(--sgg-font);font-size:14.5px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;padding:15px 28px;border-radius:10px;background:var(--sgg-do);color:#fff;
  transition:transform .25s,box-shadow .25s,background .25s;
}
.sgg-lp .sgg-nut .elementor-button:hover{background:var(--sgg-do-dam);transform:translateY(-2px);box-shadow:0 12px 28px rgba(var(--vsp-nhan-rgb),.3)}
.sgg-lp .sgg-nut--vien .elementor-button{background:transparent;border:1.5px solid rgba(255,255,255,.55);color:#fff}
.sgg-lp .sgg-nut--vien .elementor-button:hover{background:rgba(255,255,255,.12);border-color:#fff;box-shadow:none}

@media(max-width:1000px){
  .sgg-lp.sgg-s{padding:52px 0}
}
@media(max-width:640px){
  .sgg-lp .sgg-txt table{display:block;overflow-x:auto;white-space:nowrap}
}

/* --------------------------------------------------------------------------
   Bố cục container Elementor
   Các container này đặt content_width = full nên không có .e-con-inner,
   CSS nhắm thẳng vào container là đủ.
   -------------------------------------------------------------------------- */
.sgg-lp.sgg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.sgg-lp.sgg-grid--2{grid-template-columns:repeat(2,1fr)}
.sgg-lp.sgg-grid--4{grid-template-columns:repeat(4,1fr);gap:14px}
.sgg-lp.sgg-doi{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.sgg-lp.sgg-doi--lech{grid-template-columns:1.1fr .9fr}
.sgg-lp.sgg-hero-in{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.sgg-lp.sgg-hang{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.sgg-lp.sgg-grid > .e-con,.sgg-lp.sgg-doi > .e-con,.sgg-lp.sgg-hero-in > .e-con{width:auto;max-width:none;min-width:0}
.sgg-lp.sgg-card{padding:18px 20px 22px}
.sgg-lp.sgg-card--so{padding:16px 20px}

@media(max-width:1000px){
  .sgg-lp.sgg-grid{grid-template-columns:repeat(2,1fr)}
  .sgg-lp.sgg-doi,.sgg-lp.sgg-doi--lech,.sgg-lp.sgg-hero-in{grid-template-columns:1fr;gap:26px}
  .sgg-lp.sgg-grid--4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .sgg-lp.sgg-grid,.sgg-lp.sgg-grid--2,.sgg-lp.sgg-grid--4{grid-template-columns:1fr}
  .sgg-lp.sgg-hang > .elementor-widget{flex:1 1 100%}
}

/* --------------------------------------------------------------------------
   Gỡ khung nội dung của Astra trên trang landing
   Astra bọc nội dung trong .ast-container rộng 1200 và có padding hai bên,
   làm các mục không tràn được hết chiều ngang màn hình.
   -------------------------------------------------------------------------- */
body.sgg-lp-trang .site-content > .ast-container{max-width:100%;padding-left:0;padding-right:0}
body.sgg-lp-trang .site-content .content-area,
body.sgg-lp-trang .site-content .site-main,
body.sgg-lp-trang .site-content .entry-content{width:100%;max-width:100%;padding:0;margin:0;float:none}
body.sgg-lp-trang .site-content .entry-content > .elementor{width:100%}
body.sgg-lp-trang .ast-single-post .entry-header{display:none}

/* --------------------------------------------------------------------------
   Chỉnh sau khi dựng trên Elementor
   -------------------------------------------------------------------------- */
/* Ảnh trong thẻ nội dung để cùng tỉ lệ cho các thẻ bằng nhau */
.sgg-lp.sgg-card .sgg-img img{aspect-ratio:16/10;object-fit:cover}

@media(max-width:640px){
  /* Giao diện đã có sẵn thanh liên hệ dưới đáy trên mobile, bỏ thanh của landing */
  .sgg-lp__thanh{display:none}
  .sgg-lp .sgg-txt{font-size:16px;line-height:1.72}
  .sgg-lp.sgg-s{padding:44px 0}
  .sgg-lp .sgg-tick li{margin-bottom:10px}
}

/* ==========================================================================
   Giao diện tràn viền
   Bất động sản cần ảnh lớn, rõ. Khung nội dung nới rộng, các dải ảnh và
   mặt bằng cho chạy hết chiều ngang màn hình.
   ========================================================================== */
.sgg-lp.sgg-wrap{max-width:1440px}
.sgg-lp.sgg-s{padding:80px 0}

/* Dải chạy hết chiều ngang, không có khung */
.sgg-lp.sgg-tran{padding:0}
.sgg-lp .sgg-anh-tran img{width:100%;height:auto;display:block;border:0;border-radius:0}
.sgg-lp .sgg-anh-tran figcaption{margin:12px auto 0;max-width:1180px;padding:0 24px}

/* Dải ảnh nền tối có chữ đè lên */
.sgg-lp.sgg-band{position:relative;min-height:420px;display:flex;align-items:center;
  background-size:cover;background-position:center}
.sgg-lp.sgg-band::before{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(var(--vsp-bong-rgb),.9) 0%,rgba(var(--vsp-bong-rgb),.72) 45%,rgba(var(--vsp-bong-rgb),.3) 100%)}
.sgg-lp.sgg-band > *{position:relative;z-index:1}

/* Lưới ảnh tiện ích: ảnh lớn, chú thích đè dưới */
.sgg-lp.sgg-anh-luoi{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sgg-lp.sgg-anh-luoi--4{grid-template-columns:repeat(4,1fr);gap:12px}
.sgg-lp .sgg-o{position:relative;overflow:hidden;border-radius:14px}
.sgg-lp .sgg-o img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:0;border-radius:0;
  transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.sgg-lp .sgg-o:hover img{transform:scale(1.06)}
.sgg-lp .sgg-o figcaption{
  position:absolute;left:0;right:0;bottom:0;margin:0;padding:34px 16px 14px;text-align:left;
  background:linear-gradient(transparent,rgba(var(--vsp-bong-rgb),.88));color:#fff;font-size:14.5px;font-weight:600;
  font-style:normal;
}

/* Thẻ số liệu lớn */
.sgg-lp.sgg-card--so .sgg-so .elementor-heading-title{font-size:clamp(26px,3vw,38px);color:var(--sgg-do)}

/* Ba thẻ giá đầu trang */
.sgg-lp.sgg-gia{background:#fff;border:1px solid var(--sgg-vien);border-left:4px solid var(--sgg-do);
  border-radius:0 16px 16px 0;padding:24px 26px;transition:transform .3s,box-shadow .3s}
.sgg-lp.sgg-gia:hover{transform:translateY(-5px);box-shadow:var(--sgg-bong-cao)}
.sgg-lp .sgg-gia-so .elementor-heading-title{font-size:clamp(24px,2.6vw,34px);font-weight:800;color:var(--sgg-do);margin:0}

@media(max-width:1000px){
  .sgg-lp.sgg-anh-luoi,.sgg-lp.sgg-anh-luoi--4{grid-template-columns:repeat(2,1fr)}
  .sgg-lp.sgg-band{min-height:300px}
}
@media(max-width:640px){
  .sgg-lp.sgg-anh-luoi,.sgg-lp.sgg-anh-luoi--4{grid-template-columns:1fr}
  .sgg-lp.sgg-s{padding:44px 0}
  .sgg-lp .sgg-o figcaption{font-size:13.5px;padding:28px 12px 12px}
}

/* ==========================================================================
   Bộ màu dự án Vinhomes Saigon Park — nền tối, tràn viền
   Xanh rêu, xanh ngọc, vàng đồng và kem là bộ nhận diện chủ đầu tư phát hành
   cho dự án này. Các mục xen kẽ sáng tối để mắt không mỏi khi cuộn dài.
   ========================================================================== */
:root{
  /* Màu chính — engine ghi đè theo từng dự án (khóa "mau" trong sgg_lp_du_lieu) */
  --vsp-xanh-dam:#0D2523;
  --vsp-xanh:#02584F;
  --vsp-den:#0A1622;
  --vsp-do:#69060E;
  --vsp-vang:#DD9933;
  --vsp-kem:#F0E5C5;
  --vsp-sang:#F6EFE0;
  /* Bộ ba R,G,B cho các lớp trong suốt: rgba(var(--vsp-kem-rgb),.16) */
  --vsp-kem-rgb:240,229,197;
  --vsp-vang-rgb:221,153,51;
  --vsp-chu-sang-rgb:236,232,222;
  --vsp-phu-toi-rgb:6,25,22;
  --vsp-hong-rgb:249,209,197;
  --vsp-chu-sang:rgba(var(--vsp-chu-sang-rgb),.88);
  /* Màu hành động (nút gửi, dấu hỏi đáp, số giá) và màu chữ đậm trên nền sáng.
     Mặc định bằng màu Sài Gòn Group; chỉ áp trong thân landing, header/footer giữ màu công ty. */
  --vsp-nhan:#D71920;
  --vsp-nhan-dam:#B3141A;
  --vsp-nhan-toi:#9D1016;
  --vsp-nhan-rgb:215,25,32;
  --vsp-navy:#0B2A4A;
  --vsp-navy-2:#123A63;
  --vsp-navy-3:#0A2036;
  --vsp-navy-sang:#17508A;
  --vsp-navy-rgb:11,42,74;
  --vsp-bong-rgb:5,18,34;   /* lớp phủ tối, bóng đổ, nền mờ sau popup */
  /* Sắc đậm nhạt dẫn xuất — engine tự tính nếu dự án không khai */
  --vsp-ngoc-dam:#013F38;
  --vsp-do-dam:#4A050B;
  --vsp-do-sau:#2A0206;
  --vsp-xanh-sang:#046B5F;
  --vsp-vang-dam:#A86C18;
  --vsp-vang-hover:#C4841F;
  --vsp-vang-tong:#B87D1C;
  --vsp-chu-tren-kem:#3B2606;
  --vsp-chu-tren-vang:#2C1B03;
  --vsp-chu-nen-sang:#2B2A26;
  --vsp-gia-nen-1:#FCE7DD;
  --vsp-gia-nen-2:#F2C6B3;
  --vsp-gia-nen-3:#FADFD3;
  --vsp-gia-nen-4:#F0C0AC;
  --vsp-gia-so:#1C2A25;
  --vsp-chu-tren-hong:#3B2A22;
  --vsp-so-noi-bat:#EBCB91;
  --vsp-chu-toi:#1F2A27;
  --vsp-vien-o:#DCE4E1;
  --vsp-chu-mo:#7A8783;
  --vsp-vien-bang:#E7ECEA;
  --vsp-hong-nhat:#F6DCD2;
  --vsp-chu-tong:#2A1B14;
  --vsp-chu-phu:#6B7773;
  --vsp-hong-dam:#E9A98F;
  --vsp-vien-the:#E3E8E6;
}

/* Trong thân landing, popup, thanh CTA: biến màu của site trỏ sang biến dự án */
.sgg-lp,.sgg-pop,.sgg-lp__thanh,.sgg-lp__muc-luc{
  --sgg-do:var(--vsp-nhan);--sgg-do-dam:var(--vsp-nhan-dam);
  --sgg-navy:var(--vsp-navy);--sgg-navy-2:var(--vsp-navy-2);--sgg-navy-3:var(--vsp-navy-3);
  --sgg-bong:0 10px 30px rgba(var(--vsp-navy-rgb),.08);--sgg-bong-cao:0 22px 50px rgba(var(--vsp-navy-rgb),.16);
}

.sgg-lp.sgg-t-xanh{background:var(--vsp-xanh-dam)}
.sgg-lp.sgg-t-ngoc{background:linear-gradient(160deg,var(--vsp-xanh),var(--vsp-ngoc-dam))}
.sgg-lp.sgg-t-den{background:var(--vsp-den)}
.sgg-lp.sgg-t-do{background:linear-gradient(150deg,var(--vsp-do-dam),var(--vsp-do) 55%,var(--vsp-do-sau))}
.sgg-lp.sgg-t-sang{background:var(--vsp-sang)}

/* Chữ trên nền tối */
.sgg-lp.sgg-toi .sgg-h2 .elementor-heading-title,
.sgg-lp.sgg-toi .sgg-h3 .elementor-heading-title{color:var(--vsp-kem)}
.sgg-lp.sgg-toi .sgg-eyebrow .elementor-heading-title{color:var(--vsp-vang)}
.sgg-lp.sgg-toi .sgg-txt{color:var(--vsp-chu-sang)}
.sgg-lp.sgg-toi .sgg-txt strong{color:var(--vsp-kem)}
.sgg-lp.sgg-toi .sgg-note,.sgg-lp.sgg-toi .sgg-note p{color:rgba(var(--vsp-chu-sang-rgb),.6)}
.sgg-lp.sgg-toi .sgg-txt a{color:var(--vsp-vang)}
.sgg-lp.sgg-toi .sgg-tick li::before{background:rgba(var(--vsp-vang-rgb),.18)}
.sgg-lp.sgg-toi .sgg-tick li::after{border-color:var(--vsp-vang)}

/* Thẻ trên nền tối */
.sgg-lp.sgg-toi .sgg-card,
.sgg-toi .sgg-lp.sgg-card{background:rgba(255,255,255,.045);border:1px solid rgba(var(--vsp-kem-rgb),.16);
  backdrop-filter:blur(2px)}
.sgg-toi .sgg-lp.sgg-card:hover{background:rgba(255,255,255,.08);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.sgg-toi .sgg-lp.sgg-card--so{border:0;border-left:3px solid var(--vsp-vang);background:rgba(255,255,255,.05)}
.sgg-lp.sgg-toi .sgg-card--so .sgg-so .elementor-heading-title,
.sgg-toi .sgg-lp .sgg-so .elementor-heading-title{color:var(--vsp-vang)}
.sgg-toi .sgg-lp.sgg-gia{background:rgba(255,255,255,.05);border:1px solid rgba(var(--vsp-kem-rgb),.16);
  border-left:4px solid var(--vsp-vang);border-radius:0 16px 16px 0}
.sgg-lp.sgg-toi .sgg-gia-so .elementor-heading-title{color:var(--vsp-vang)}

/* Bảng trên nền tối */
.sgg-lp.sgg-toi .sgg-txt table{background:rgba(255,255,255,.04);border-color:rgba(var(--vsp-kem-rgb),.18);color:var(--vsp-chu-sang)}
.sgg-lp.sgg-toi .sgg-txt thead th{background:rgba(0,0,0,.35);color:var(--vsp-kem)}
.sgg-lp.sgg-toi .sgg-txt tbody td{border-top-color:rgba(var(--vsp-kem-rgb),.14)}
.sgg-lp.sgg-toi .sgg-txt tbody tr:nth-child(even){background:rgba(255,255,255,.03)}
.sgg-lp.sgg-toi .sgg-txt tbody td:last-child:nth-child(n+3){color:var(--vsp-vang)}

/* Mục lục theo màu dự án */
.sgg-lp__muc-luc{background:var(--vsp-xanh-dam);border-bottom:1px solid rgba(var(--vsp-kem-rgb),.16);box-shadow:none}
.sgg-lp__muc-luc a{color:rgba(var(--vsp-chu-sang-rgb),.72)}
.sgg-lp__muc-luc a:hover,.sgg-lp__muc-luc a.dang-xem{color:var(--vsp-vang);border-bottom-color:var(--vsp-vang)}

/* Dải CTA giữa bài theo màu dự án */
.sgg-lp__cta{background:linear-gradient(115deg,var(--vsp-xanh-dam),var(--vsp-xanh) 70%,var(--vsp-xanh-sang))}
.sgg-lp__cta::after{background:linear-gradient(180deg,var(--vsp-vang),var(--vsp-vang-dam));opacity:.92}
.sgg-lp__cta-nut a:first-child{background:var(--vsp-kem);color:var(--vsp-chu-tren-kem)}
.sgg-lp__cta-nut a:last-child{background:rgba(0,0,0,.25);border-color:rgba(var(--vsp-kem-rgb),.6)}

/* Ô ảnh trong lưới: viền vàng mảnh khi rê chuột */
.sgg-lp .sgg-o{border:1px solid rgba(var(--vsp-kem-rgb),.14)}
.sgg-toi .sgg-lp .sgg-o figcaption{font-weight:600;color:var(--vsp-kem)}

/* Mục có ảnh nền tràn viền */
.sgg-lp.sgg-t-anh{position:relative;background-size:cover;background-position:center;background-attachment:scroll}
.sgg-lp.sgg-t-anh::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(var(--vsp-phu-toi-rgb),.9),rgba(var(--vsp-phu-toi-rgb),.78) 45%,rgba(var(--vsp-phu-toi-rgb),.92))}
.sgg-lp.sgg-t-anh > *{position:relative;z-index:1}

/* Nút trên nền tối */
.sgg-toi .sgg-lp .sgg-nut .elementor-button{background:var(--vsp-vang);color:var(--vsp-chu-tren-vang)}
.sgg-toi .sgg-lp .sgg-nut .elementor-button:hover{background:var(--vsp-vang-hover);box-shadow:0 12px 28px rgba(var(--vsp-vang-rgb),.32)}
.sgg-toi .sgg-lp .sgg-nut--vien .elementor-button{background:transparent;border:1.5px solid rgba(var(--vsp-kem-rgb),.55);color:var(--vsp-kem)}

/* Hero theo bộ màu dự án */
.sgg-lp.sgg-hero::before{background:linear-gradient(100deg,rgba(var(--vsp-phu-toi-rgb),.94) 0%,rgba(var(--vsp-phu-toi-rgb),.8) 44%,rgba(var(--vsp-phu-toi-rgb),.42) 78%,rgba(var(--vsp-phu-toi-rgb),.6) 100%)}
.sgg-lp .sgg-nhan-f1 .elementor-heading-title{background:var(--vsp-vang);color:var(--vsp-chu-tren-vang)}
.sgg-lp .sgg-h1 .elementor-heading-title{color:var(--vsp-kem)}

/* Mục sáng giữ chữ đậm cho dễ đọc */
.sgg-lp.sgg-t-sang .sgg-txt{color:var(--vsp-chu-nen-sang)}
.sgg-lp.sgg-t-sang .sgg-txt table{background:#fff}

/* Hỏi đáp trên nền tối */
.sgg-toi .sgg-lp__faq details{background:rgba(255,255,255,.05);border:1px solid rgba(var(--vsp-kem-rgb),.16)}
.sgg-toi .sgg-lp__faq summary{color:var(--vsp-kem)}
.sgg-toi .sgg-lp__faq summary::after{color:var(--vsp-vang)}
.sgg-toi .sgg-lp__faq-tl{color:var(--vsp-chu-sang)}
.sgg-toi .sgg-lp__faq details[open]{border-color:rgba(var(--vsp-vang-rgb),.45)}

/* ==========================================================================
   Mobile — ưu tiên đọc được và bấm trúng
   ========================================================================== */
@media(max-width:768px){
  .sgg-lp.sgg-s{padding:40px 0}
  .sgg-lp.sgg-wrap{padding-left:18px;padding-right:18px}

  .sgg-lp .sgg-h2 .elementor-heading-title{font-size:23px;line-height:1.28;letter-spacing:0}
  .sgg-lp .sgg-h3 .elementor-heading-title{font-size:18px;line-height:1.35}
  .sgg-lp .sgg-h1 .elementor-heading-title{font-size:27px;line-height:1.2}
  .sgg-lp .sgg-txt{font-size:16px;line-height:1.7}
  .sgg-lp .sgg-txt p{margin-bottom:13px}
  .sgg-lp .sgg-eyebrow .elementor-heading-title{font-size:12px;letter-spacing:.14em}

  /* Bảng: cuộn ngang, có gợi ý vuốt */
  .sgg-lp .sgg-txt{position:relative}
  .sgg-lp .sgg-txt table{display:block;overflow-x:auto;white-space:nowrap;font-size:14.5px;
    -webkit-overflow-scrolling:touch}
  .sgg-lp .sgg-txt thead th,.sgg-lp .sgg-txt tbody td{padding:11px 13px}
  .sgg-lp .sgg-txt table::-webkit-scrollbar{height:4px}
  .sgg-lp .sgg-txt table::-webkit-scrollbar-thumb{background:var(--vsp-vang);border-radius:3px}

  /* Ô ảnh: cao hơn để nhìn rõ phối cảnh */
  .sgg-lp .sgg-o img{aspect-ratio:3/2}
  .sgg-lp .sgg-o figcaption{font-size:14px;padding:26px 14px 13px}

  /* Thẻ */
  .sgg-lp.sgg-card{padding:16px 18px 20px}
  .sgg-lp.sgg-gia{padding:18px 20px;border-radius:0 12px 12px 0}
  .sgg-lp .sgg-gia-so .elementor-heading-title{font-size:26px}
  .sgg-lp .sgg-card--so .sgg-so .elementor-heading-title{font-size:26px}

  /* Vùng bấm đủ lớn */
  .sgg-lp .sgg-nut .elementor-button{padding:16px 24px;font-size:15px;width:100%;justify-content:center}
  .sgg-lp__cta{padding:24px 20px;gap:18px}
  .sgg-lp__cta-nut{width:100%}
  .sgg-lp__cta-nut a{flex:1 1 100%;text-align:center;padding:15px 18px}
  .sgg-lp__form button{padding:16px;font-size:15px}
  .sgg-lp__form input,.sgg-lp__form select{padding:14px 14px;font-size:16px}
  .sgg-lp__muc-luc a{padding:14px 12px;font-size:14px}
  .sgg-lp__faq summary{padding:15px 44px 15px 16px;font-size:15.5px}
  .sgg-lp__faq-tl{padding:0 16px 16px;font-size:15px}

  /* Hero gọn lại */
  .sgg-lp.sgg-hero{min-height:0}
  .sgg-lp.sgg-hero-in{gap:26px}
  .sgg-lp__nhanh{grid-template-columns:1fr 1fr}
  .sgg-lp__nhanh dd{font-size:15px}

  /* Ảnh tràn viền không quá cao trên máy dọc */
  .sgg-lp .sgg-anh-tran img{max-height:58vh;object-fit:cover}
}
@media(max-width:420px){
  .sgg-lp .sgg-h2 .elementor-heading-title{font-size:21px}
  .sgg-lp.sgg-s{padding:34px 0}
  .sgg-lp__nhanh{grid-template-columns:1fr}
}

/* Sửa sau khi xem mobile thật */
@media(max-width:768px){
  /* Nêm vàng chéo cắt ngang nút trên màn hẹp, bỏ đi cho chữ đọc rõ */
  .sgg-lp__cta::after{display:none}
  .sgg-lp__cta{background:linear-gradient(150deg,var(--vsp-xanh-dam),var(--vsp-xanh))}
  .sgg-lp__cta-nut a:last-child{background:rgba(0,0,0,.32);border:1px solid rgba(var(--vsp-kem-rgb),.5);color:var(--vsp-kem)}
}
@media(max-width:420px){
  /* Hai cột thông số vẫn vừa ở 390px, chỉ xuống một cột khi máy thật hẹp */
  .sgg-lp__nhanh{grid-template-columns:1fr 1fr}
}
@media(max-width:340px){
  .sgg-lp__nhanh{grid-template-columns:1fr}
}

/* ==========================================================================
   Bảng tính dòng tiền
   ========================================================================== */
.sgg-tg{background:rgba(255,255,255,.05);border:1px solid rgba(var(--vsp-kem-rgb),.18);border-radius:18px;
  padding:26px;margin-top:22px;font-family:var(--sgg-font)}
.sgg-t-sang .sgg-tg{background:#fff;border-color:var(--sgg-vien);box-shadow:var(--sgg-bong)}
.sgg-tg__nhap{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.sgg-tg__o{position:relative}
.sgg-tg__o label{display:block;font-size:12.5px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--vsp-vang);margin-bottom:6px}
.sgg-t-sang .sgg-tg__o label{color:var(--sgg-navy)}
.sgg-tg__o input,.sgg-tg__o select{
  width:100%;padding:13px 62px 13px 14px;border-radius:10px;font-size:16px;font-family:inherit;
  background:rgba(0,0,0,.25);border:1px solid rgba(var(--vsp-kem-rgb),.28);color:#fff;
}
.sgg-t-sang .sgg-tg__o input,.sgg-t-sang .sgg-tg__o select{background:#fff;border-color:var(--sgg-vien);color:var(--sgg-chu)}
.sgg-tg__o select{padding-right:14px}
.sgg-tg__o input:focus,.sgg-tg__o select:focus{outline:none;border-color:var(--vsp-vang);box-shadow:0 0 0 3px rgba(var(--vsp-vang-rgb),.2)}
.sgg-tg__gt{position:absolute;right:14px;bottom:14px;font-size:13.5px;color:rgba(var(--vsp-kem-rgb),.6);pointer-events:none}
.sgg-t-sang .sgg-tg__gt{color:var(--sgg-chu-nhat)}

.sgg-tg__ket{margin-top:22px;display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;align-items:start}
.sgg-tg__tong{background:linear-gradient(150deg,var(--vsp-vang),var(--vsp-vang-tong));border-radius:14px;padding:22px;color:var(--vsp-chu-tren-vang)}
.sgg-tg__tong span{display:block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.sgg-tg__tong b{display:block;font-size:clamp(26px,3vw,36px);font-weight:800;line-height:1.15;margin:6px 0 4px}
.sgg-tg__tong em{font-size:13.5px;font-style:normal;font-weight:600;opacity:.85}

.sgg-tg__bang{width:100%;border-collapse:collapse;font-size:15px}
.sgg-tg__bang td,.sgg-tg__bang th{padding:10px 12px;border-top:1px solid rgba(var(--vsp-kem-rgb),.14);text-align:left;color:var(--vsp-chu-sang)}
.sgg-t-sang .sgg-tg__bang td,.sgg-t-sang .sgg-tg__bang th{border-top-color:var(--sgg-vien);color:var(--sgg-chu)}
.sgg-tg__bang thead th{background:rgba(0,0,0,.3);color:var(--vsp-kem);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.sgg-t-sang .sgg-tg__bang thead th{background:var(--sgg-navy);color:#fff}
.sgg-tg__bang td:last-child{text-align:right;font-weight:700;white-space:nowrap}
.sgg-tg__tong-hang td{border-top:2px solid var(--vsp-vang)}
.sgg-tg__lich{margin-top:22px}
.sgg-tg__lich h4{font-size:16px;font-weight:800;color:var(--vsp-kem);margin:0 0 10px}
.sgg-t-sang .sgg-tg__lich h4{color:var(--sgg-navy)}
.sgg-tg__ghi{margin:16px 0 0;font-size:13.5px;font-style:italic;color:rgba(var(--vsp-chu-sang-rgb),.6);line-height:1.65}
.sgg-t-sang .sgg-tg__ghi{color:var(--sgg-chu-nhat)}

/* ==========================================================================
   Khối nhận hồ sơ dự án
   ========================================================================== */
.sgg-tl{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(var(--vsp-kem-rgb),.18);
  border-radius:18px;padding:30px;margin-top:20px;font-family:var(--sgg-font)}
.sgg-t-sang .sgg-tl{background:#fff;border-color:var(--sgg-vien)}
.sgg-tl h3{font-size:clamp(20px,2.2vw,27px);font-weight:800;color:var(--vsp-kem);margin:0 0 10px;text-transform:uppercase}
.sgg-t-sang .sgg-tl h3{color:var(--sgg-navy)}
.sgg-tl p{color:var(--vsp-chu-sang);margin:0 0 16px;font-size:15.5px;line-height:1.7}
.sgg-t-sang .sgg-tl p{color:var(--sgg-chu-nhat)}
/* Form trắng trong khối hồ sơ: ghi chú và mô tả không lấy màu chữ sáng của .sgg-tl p (lỗi chữ trắng trên nền trắng, 30/09/2026) */
.sgg-tl .sgg-lp__form > p:not(.sgg-lp__form-tt){color:var(--sgg-chu-nhat)}
.sgg-tl ul{list-style:none;margin:0;padding:0}
.sgg-tl li{position:relative;padding-left:30px;margin-bottom:10px;color:var(--vsp-chu-sang);font-size:15.5px;line-height:1.6}
.sgg-t-sang .sgg-tl li{color:var(--sgg-chu)}
.sgg-tl li::before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;background:rgba(var(--vsp-vang-rgb),.2)}
.sgg-tl li::after{content:"";position:absolute;left:6px;top:9px;width:5px;height:9px;
  border:solid var(--vsp-vang);border-width:0 2px 2px 0;transform:rotate(45deg)}

@media(max-width:900px){
  .sgg-tg__nhap{grid-template-columns:1fr}
  .sgg-tg__ket{grid-template-columns:1fr}
  .sgg-tl{grid-template-columns:1fr;gap:24px;padding:22px}
}
@media(max-width:768px){
  .sgg-tg{padding:18px;border-radius:14px}
  .sgg-tg__bang{font-size:14px}
  .sgg-tg__bang td,.sgg-tg__bang th{padding:9px 8px}
  .sgg-tg__tong b{font-size:26px}
}

/* ==========================================================================
   Hồ sơ pháp lý tải về
   ========================================================================== */
.sgg-hs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}
.sgg-hs__muc{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;
  background:#fff;border:1px solid var(--sgg-vien);text-decoration:none;
  transition:transform .25s,box-shadow .25s,border-color .25s}
.sgg-toi .sgg-hs__muc{background:rgba(255,255,255,.05);border-color:rgba(var(--vsp-kem-rgb),.18)}
.sgg-hs__muc:hover{transform:translateY(-3px);box-shadow:var(--sgg-bong-cao);border-color:var(--vsp-vang)}
.sgg-hs__icon{flex:0 0 auto;width:42px;height:42px;border-radius:9px;background:#B3141A;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;letter-spacing:.04em}
.sgg-hs__chu{flex:1 1 auto;min-width:0}
.sgg-hs__chu b{display:block;font-size:14.5px;font-weight:700;line-height:1.4;color:var(--sgg-navy)}
.sgg-toi .sgg-hs__chu b{color:var(--vsp-kem)}
.sgg-hs__chu em{display:block;margin-top:3px;font-size:12.5px;font-style:normal;color:var(--sgg-chu-nhat)}
.sgg-toi .sgg-hs__chu em{color:rgba(var(--vsp-chu-sang-rgb),.6)}
.sgg-hs__tai{flex:0 0 auto;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--sgg-do)}
.sgg-toi .sgg-hs__tai{color:var(--vsp-vang)}
@media(max-width:900px){.sgg-hs{grid-template-columns:1fr}}
@media(max-width:768px){
  .sgg-hs__muc{padding:13px 14px;gap:12px}
  .sgg-hs__chu b{font-size:14px}
}

/* Chỉnh sau lượt kiểm mobile cuối */
.sgg-hs__chu em{font-size:13px}
@media(max-width:768px){
  /* Bảng trong bảng tính cũng cần cuộn ngang được */
  .sgg-tg__bang{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .sgg-tg__bang::-webkit-scrollbar{height:4px}
  .sgg-tg__bang::-webkit-scrollbar-thumb{background:var(--vsp-vang);border-radius:3px}
  /* Số điện thoại và email trong đoạn văn phải đủ lớn để bấm trúng */
  .sgg-lp .sgg-txt a[href^="tel:"],
  .sgg-lp .sgg-txt a[href^="mailto:"]{
    display:inline-block;padding:9px 2px;font-weight:700;text-decoration:underline;
  }
}

/* Khung nội dung luôn căn giữa. Trước đây chỉ đặt max-width mà không đặt lề tự động,
   bản CSS tối ưu tình cờ có quy tắc khác căn giữa hộ, bản chưa tối ưu thì dính mép trái. */
.sgg-lp.sgg-wrap{width:100%;max-width:1440px;margin-left:auto !important;margin-right:auto !important}
/* Elementor chèn 20px dưới mỗi widget cấp cao nhất, tạo dải trắng dưới mục lục */
.sgg-lp-trang .elementor > .elementor-widget-html{margin-block-end:0 !important;margin-bottom:0 !important}

/* ==========================================================================
   Giao diện theo bản mẫu khách hàng gửi
   - Ảnh mở đầu để sạch, không phủ tối, không đè chữ
   - Tiêu đề mục căn giữa, màu hồng kem trên nền tối, có đường hoa văn bên dưới
   - Cột chữ hẹp khoảng 1.100px giữa nền tràn viền
   - Thẻ giá nền vàng hồng, thẻ giữa nhô lên
   - Số liệu dùng chữ có chân
   ========================================================================== */
:root{
  --vsp-hong:#F9D1C5;
  --vsp-serif:"Cormorant Garamond","Times New Roman",serif;
  --vsp-hoa-van-toi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='14' viewBox='0 0 240 14'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23E9B9A6' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23E9B9A6'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23E9B9A6' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23E9B9A6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 7h108' stroke='url(%23a)'/%3E%3Cpath d='M132 7h108' stroke='url(%23b)'/%3E%3Cpath d='M120 1l2.6 6-2.6 6-2.6-6z' fill='%23F1D2A0'/%3E%3C/svg%3E");
  --vsp-hoa-van-sang:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='14' viewBox='0 0 240 14'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%2302584F' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%2302584F'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%2302584F' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%2302584F'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 7h108' stroke='url(%23a)'/%3E%3Cpath d='M132 7h108' stroke='url(%23b)'/%3E%3Cpath d='M120 1l2.6 6-2.6 6-2.6-6z' fill='%23B8894A'/%3E%3C/svg%3E");
}

/* Cột chữ hẹp như bản mẫu */
.sgg-lp.sgg-wrap{max-width:1150px}

/* Bản mẫu không có dòng nhỏ phía trên tiêu đề.
   Vẫn để trong HTML vì mục lục lấy nhãn ngắn từ dòng này. */
.sgg-lp .sgg-eyebrow{display:none !important}

/* Tiêu đề mục: căn giữa, hoa văn bên dưới */
.sgg-lp .sgg-h2{width:100%;text-align:center}
.sgg-lp .sgg-h2 .elementor-heading-title{text-align:center;font-size:clamp(23px,2.3vw,33px);line-height:1.3;letter-spacing:.005em}
.sgg-lp .sgg-h2::after{content:"";display:block;width:240px;max-width:70%;height:14px;margin:14px auto 8px;
  background:var(--vsp-hoa-van-sang) center/contain no-repeat}
.sgg-lp.sgg-toi .sgg-h2::after{background-image:var(--vsp-hoa-van-toi)}
.sgg-lp.sgg-toi .sgg-h2 .elementor-heading-title{color:var(--vsp-hong)}
.sgg-lp.sgg-t-sang .sgg-h2 .elementor-heading-title{color:var(--vsp-xanh)}
.sgg-lp .sgg-h1m .elementor-heading-title{font-size:clamp(25px,2.7vw,38px);line-height:1.28}

/* Đoạn mở đầu ngay dưới tiêu đề: căn đều hai bên như bản mẫu */
@media(min-width:769px){
  .sgg-lp.sgg-wrap > .e-con-inner > .elementor-widget-text-editor.sgg-txt p{text-align:justify}
}

/* Ảnh mở đầu để sạch */
.sgg-lp .sgg-anh-mo img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}

/* Mục mở đầu */
.sgg-lp.sgg-mo-dau .sgg-nhan-f1{text-align:center}
.sgg-lp.sgg-mo-dau .sgg-doi{margin-top:18px;align-items:start}

/* Thẻ giá vàng hồng */
.sgg-lp.sgg-toi .sgg-lp.sgg-gia,.sgg-lp .sgg-lp.sgg-gia{
  background:linear-gradient(135deg,var(--vsp-gia-nen-1) 0%,var(--vsp-gia-nen-2) 55%,var(--vsp-gia-nen-3) 100%) !important;
  border:1px solid rgba(255,255,255,.65) !important;border-radius:14px !important;
  text-align:center;padding:24px 20px;box-shadow:0 18px 44px rgba(0,0,0,.28);
}
.sgg-lp .sgg-lp.sgg-gia .sgg-gia-so .elementor-heading-title{color:var(--vsp-gia-so) !important;font-family:var(--sgg-font)}
.sgg-lp .sgg-lp.sgg-gia .sgg-txt,.sgg-lp .sgg-lp.sgg-gia .sgg-txt p,.sgg-lp .sgg-lp.sgg-gia .sgg-txt strong{color:var(--vsp-chu-tren-hong) !important;text-align:center}
@media(min-width:641px){
  .sgg-lp.sgg-grid > .sgg-lp.sgg-gia:nth-child(1){order:2;transform:translateY(-10px) scale(1.04);z-index:1}
  .sgg-lp.sgg-grid > .sgg-lp.sgg-gia:nth-child(2){order:1}
  .sgg-lp.sgg-grid > .sgg-lp.sgg-gia:nth-child(3){order:3}
}

/* Số liệu dùng chữ có chân */
.sgg-lp .sgg-so .elementor-heading-title{font-family:var(--vsp-serif) !important;font-weight:700 !important;
  font-size:clamp(30px,3vw,42px) !important;letter-spacing:.01em}
.sgg-lp.sgg-dec .sgg-h2 .elementor-heading-title{font-family:var(--vsp-serif);font-weight:700;
  color:var(--vsp-so-noi-bat) !important;font-size:clamp(32px,3.8vw,54px);letter-spacing:.02em}
.sgg-lp.sgg-dec .sgg-card--so{background:rgba(0,0,0,.18) !important;border-left-color:var(--vsp-so-noi-bat) !important}

/* Bảng trên nền tối nhẹ hơn, đầu bảng hồng */
.sgg-lp.sgg-toi .sgg-txt table{background:rgba(0,0,0,.14)}
.sgg-lp.sgg-toi .sgg-txt thead th{background:rgba(var(--vsp-hong-rgb),.13);color:var(--vsp-hong)}

/* Bảng tính: thẻ trắng, điểm nhấn hồng như bản mẫu */
.sgg-tg,.sgg-toi .sgg-tg,.sgg-t-sang .sgg-tg{background:#fff !important;border:0 !important;
  box-shadow:0 24px 60px rgba(0,0,0,.28);color:var(--vsp-chu-toi)}
.sgg-tg .sgg-tg__o label{color:var(--vsp-xanh) !important}
.sgg-tg .sgg-tg__o input,.sgg-tg .sgg-tg__o select{background:#fff !important;border:1px solid var(--vsp-vien-o) !important;color:var(--vsp-chu-toi) !important}
.sgg-tg .sgg-tg__gt{color:var(--vsp-chu-mo) !important}
.sgg-tg .sgg-tg__bang td,.sgg-tg .sgg-tg__bang th{color:var(--vsp-chu-toi) !important;border-top-color:var(--vsp-vien-bang) !important}
.sgg-tg .sgg-tg__bang thead th{background:var(--vsp-hong-nhat) !important;color:var(--vsp-chu-tren-hong) !important}
.sgg-tg .sgg-tg__tong{background:linear-gradient(135deg,var(--vsp-gia-nen-1),var(--vsp-gia-nen-4)) !important;color:var(--vsp-chu-tong)}
.sgg-tg .sgg-tg__lich h4{color:var(--vsp-xanh) !important}
.sgg-tg .sgg-tg__ghi{color:var(--vsp-chu-phu) !important}
.sgg-tg .sgg-tg__tong-hang td{border-top:2px solid var(--vsp-hong-dam) !important}

@media(max-width:768px){
  .sgg-lp .sgg-h2::after{margin:10px auto 4px}
  /* "auto 16/9": giữ chỗ 16:9 ngay khi chưa tải ảnh (trước đây "auto" xóa tỷ lệ từ width/height → CLS 0,26 trên điện thoại, 01/10/2026) */
  .sgg-lp .sgg-anh-mo img{aspect-ratio:auto 16 / 9}
}

/* Đường hoa văn: vẽ bằng rect thay cho path. Gradient kiểu objectBoundingBox trên
   một đường thẳng cao 0px không được trình duyệt vẽ, nên trước đây mất hai vạch. */
:root{
  --vsp-hoa-van-toi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='14' viewBox='0 0 240 14'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23E9B9A6' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23E9B9A6'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23E9B9A6' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23E9B9A6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='0' y='6.5' width='108' height='1' fill='url%28%23a%29'/%3E%3Crect x='132' y='6.5' width='108' height='1' fill='url%28%23b%29'/%3E%3Cpath d='M120 1l2.6 6-2.6 6-2.6-6z' fill='%23F1D2A0'/%3E%3C/svg%3E");
  --vsp-hoa-van-sang:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='14' viewBox='0 0 240 14'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%2302584F' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%2302584F'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%2302584F' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%2302584F'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='0' y='6.5' width='108' height='1' fill='url%28%23a%29'/%3E%3Crect x='132' y='6.5' width='108' height='1' fill='url%28%23b%29'/%3E%3Cpath d='M120 1l2.6 6-2.6 6-2.6-6z' fill='%23B8894A'/%3E%3C/svg%3E");
}

/* Chỉ tô nhấn cột cuối ở bảng giá. Bảng chữ thường (ghi chú, ý nghĩa, phù hợp với)
   để màu chữ bình thường cho dễ đọc. */
.sgg-lp .sgg-txt table:not(.sgg-bang-gia) tbody td:last-child:nth-child(n+3){color:inherit !important;font-weight:400 !important;white-space:normal !important}
.sgg-lp.sgg-toi .sgg-txt table:not(.sgg-bang-gia) tbody td:last-child:nth-child(n+3){color:var(--vsp-chu-sang) !important}
.sgg-lp .sgg-txt table.sgg-bang-gia tbody td:last-child{color:var(--sgg-do);font-weight:700;white-space:nowrap}
.sgg-lp.sgg-toi .sgg-txt table.sgg-bang-gia tbody td:last-child{color:var(--vsp-vang)}

/* ==========================================================================
   Nội dung kéo ra sát mép, cách lề 40px; ảnh to và nét
   Đoạn giới thiệu ngay dưới tiêu đề vẫn giữ khối giữa 1.280px cho dòng không quá dài.
   ========================================================================== */
.sgg-lp.sgg-wrap{max-width:none !important;padding-left:40px !important;padding-right:40px !important}
.sgg-lp.sgg-wrap > .e-con-inner{max-width:none !important}
.sgg-lp.sgg-wrap > .e-con-inner > .elementor-widget-heading.sgg-h2 + .elementor-widget-text-editor:not(:has(table)){
  max-width:1280px;width:100%;margin-left:auto;margin-right:auto}
.sgg-lp.sgg-doi{gap:48px}
.sgg-lp.sgg-anh-luoi{gap:18px}
.sgg-lp .sgg-img img{width:100%;height:auto}
@media(max-width:1024px){
  .sgg-lp.sgg-wrap{padding-left:24px !important;padding-right:24px !important}
  .sgg-lp.sgg-doi{gap:28px}
}
@media(max-width:768px){
  .sgg-lp.sgg-wrap{padding-left:16px !important;padding-right:16px !important}
  .sgg-lp.sgg-anh-luoi{gap:12px}
}
/* Ảnh bìa video gốc YouTube chỉ 1.280px: không cho khối video rộng hơn để khỏi mờ */
.sgg-lp .sgg-lp__video{max-width:1280px;margin-left:auto;margin-right:auto}
/* Elementor tự thêm đệm 10px cho mọi container, làm lưới và cột chữ lùi vào so với tiêu đề.
   Bỏ đệm ở khung bố cục; thẻ (sgg-card, sgg-gia) giữ đệm riêng. */
.sgg-lp.sgg-grid,.sgg-lp.sgg-doi,.sgg-lp.sgg-hang,.sgg-lp.sgg-anh-luoi,.sgg-lp.sgg-hero-in,
.sgg-lp.sgg-doi > .e-con:not(.sgg-card):not(.sgg-gia),
.sgg-lp.sgg-hero-in > .e-con{padding:0 !important}

/* Màu nền dự phòng cho mục có ảnh nền: trước khi ảnh tải xong chữ kem vẫn đọc được */
.sgg-lp.sgg-t-anh{background-color:var(--vsp-xanh-dam)}
/* Điện thoại: lớp phủ đã tối 80-90%, ảnh nền gần như không thấy, bỏ hẳn cho nhẹ */
@media(max-width:768px){.sgg-lp.sgg-t-anh{background-image:none !important}}

/* ==========================================================================
   Mục lục dính khi cuộn
   Hai thứ làm hỏng sticky trước đây:
   - Theme Astra đặt body{overflow-x:hidden}, biến body thành vùng cuộn riêng.
     Đổi sang clip: vẫn chặn tràn ngang nhưng không tạo vùng cuộn.
   - Mục lục nằm trong khung bọc cao đúng bằng nó nên không có chỗ để dính.
     Chuyển sticky lên khung bọc sgg-ml-boc, cha của nó cao bằng cả trang.
   ========================================================================== */
body.sgg-lp-trang{overflow-x:clip;overflow-y:visible}
.sgg-lp-trang .elementor > .sgg-ml-boc{position:sticky;top:0;z-index:90;margin-bottom:0 !important}
.sgg-lp-trang .sgg-ml-boc .sgg-lp__muc-luc{position:static}
/* Header chuyển sang cố định cao 68px khi cuộn: mục lục dính ngay bên dưới.
   Đây là cách cũ, còn dùng khi landing.js chưa chạy (LiteSpeed hoãn JS tới lần tương tác đầu). */
body.sgg-lp-trang:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:68px}
body.admin-bar.sgg-lp-trang .elementor > .sgg-ml-boc{top:32px}
body.admin-bar.sgg-lp-trang:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:100px}
/* 22/10/2026 (khách): mục lục đã dính thì header chính trượt lên ẩn, mục lục sát mép trên, không hở.
   landing.js (khối 2b) gắn lớp sgg-lp--an-hd lên body khi chỗ gốc của mục lục chạm đáy header,
   bỏ lớp khi cuộn ngược lên qua chỗ đó. Chỉ dùng transform nên không xô nội dung (khối giữ chỗ của header vẫn nguyên).
   Lỗi gốc khách thấy: khi đăng nhập, header cố định ở top 0 nằm dưới thanh quản trị 32px, mục lục lại dính ở 100px
   → hở 31px lộ nội dung. Vì vậy với thanh quản trị, header cũng dịch xuống đúng chiều cao thanh. */
body.sgg-lp-trang .sgg-hd__chinh{transition:box-shadow .25s ease,padding .25s ease,transform .22s ease,visibility 0s linear 0s}
body.sgg-lp-trang.sgg-lp--an-hd .sgg-hd--dinh .sgg-hd__chinh{transform:translateY(-100%);box-shadow:none;visibility:hidden;
  transition:box-shadow .25s ease,padding .25s ease,transform .22s ease,visibility 0s linear .22s}
.sgg-lp-trang .elementor > .sgg-ml-boc{transition:top .22s ease}
body.sgg-lp-trang.sgg-lp--an-hd:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:0}
body.admin-bar.sgg-lp-trang .sgg-hd--dinh .sgg-hd__chinh{top:32px}
body.admin-bar.sgg-lp-trang.sgg-lp--an-hd:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:32px}
@media(max-width:782px){
  body.admin-bar.sgg-lp-trang .sgg-hd--dinh .sgg-hd__chinh{top:46px}
  body.admin-bar.sgg-lp-trang .elementor > .sgg-ml-boc{top:46px}
  body.admin-bar.sgg-lp-trang:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:114px}
  body.admin-bar.sgg-lp-trang.sgg-lp--an-hd:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:46px}
}
/* Dưới 600px thanh quản trị WordPress không dính, cuộn đi cùng trang */
@media(max-width:600px){
  body.admin-bar.sgg-lp-trang .sgg-hd--dinh .sgg-hd__chinh{top:0}
  body.admin-bar.sgg-lp-trang .elementor > .sgg-ml-boc{top:0}
  body.admin-bar.sgg-lp-trang:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:68px}
  body.admin-bar.sgg-lp-trang.sgg-lp--an-hd:has(.sgg-hd--dinh) .elementor > .sgg-ml-boc{top:0}
}
@media(prefers-reduced-motion:reduce){
  body.sgg-lp-trang .sgg-hd__chinh,body.sgg-lp-trang.sgg-lp--an-hd .sgg-hd--dinh .sgg-hd__chinh,
  .sgg-lp-trang .elementor > .sgg-ml-boc{transition:none}
}
/* Bấm mục lục thì tiêu đề không bị mục lục che. Cuộn tới một mục thì mục lục đã dính và header đã ẩn,
   nên chỉ cần chừa chiều cao mục lục (61px PC, 55px điện thoại) cộng khoảng thở. */
.sgg-lp h2[id],.sgg-lp .sgg-neo{scroll-margin-top:96px}
body.admin-bar .sgg-lp h2[id],body.admin-bar .sgg-lp .sgg-neo{scroll-margin-top:128px}

/* ==========================================================================
   Bố cục một cột: chữ trước, ảnh sau, cả hai trải hết khung
   ========================================================================== */
.sgg-lp.sgg-doi{grid-template-columns:1fr !important;gap:30px !important;align-items:start}
.sgg-lp.sgg-doi > .e-con{order:1}
.sgg-lp.sgg-doi > .elementor-widget-image{order:2;text-align:center}
/* Ảnh: rộng hết khung nhưng không phóng quá kích thước thật (tránh mờ),
   ảnh vuông không cao quá 85% màn hình */
.sgg-lp.sgg-doi > .elementor-widget-image img{width:auto !important;max-width:100% !important;max-height:85vh;
  height:auto !important;margin:0 auto;display:block;border-radius:16px}
/* Đoạn chữ dài giữ khối đọc 1.280px ở giữa, không để một dòng dài 230 ký tự */
.sgg-lp.sgg-doi > .e-con:not(:has(form)):not(:has(.sgg-lp__nhanh)){max-width:1280px;width:100%;margin-left:auto;margin-right:auto}

/* Mở đầu: thông số 4 ô trên một hàng, nút căn giữa */
.sgg-lp.sgg-mo-dau .sgg-doi > .e-con:has(.sgg-lp__nhanh){align-items:center;text-align:center}
.sgg-lp.sgg-mo-dau .sgg-lp__nhanh{grid-template-columns:repeat(4,1fr);width:100%;text-align:left}
.sgg-lp.sgg-mo-dau .sgg-hang{justify-content:center}

/* Biểu mẫu nằm ngang trên màn rộng: tên, số điện thoại, nhu cầu, nút trên cùng một hàng */
@media(min-width:1000px){
  .sgg-lp.sgg-doi .sgg-lp__form{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 260px;column-gap:16px;align-items:end;
    grid-template-areas:"tt tt tt tt" "mt mt mt mt" "l1 l2 l3 ." "i1 i2 i3 bt" "nt nt nt nt";
    padding:28px 32px;max-width:none}
  .sgg-lp.sgg-doi .sgg-lp__form .sgg-lp__form-tt{grid-area:tt;text-align:center;font-size:22px}
  .sgg-lp.sgg-doi .sgg-lp__form > p:not(.sgg-lp__form-tt):not(.sgg-lp__form-note):not(.sgg-lp__form-zalo){grid-area:mt;text-align:center}
  .sgg-lp.sgg-doi .sgg-lp__form label[for^="ht-"]{grid-area:l1}
  .sgg-lp.sgg-doi .sgg-lp__form label[for^="dt-"]{grid-area:l2}
  .sgg-lp.sgg-doi .sgg-lp__form label[for^="qt-"]{grid-area:l3}
  .sgg-lp.sgg-doi .sgg-lp__form input[name="ho_ten"]{grid-area:i1}
  .sgg-lp.sgg-doi .sgg-lp__form input[name="dien_thoai"]{grid-area:i2}
  .sgg-lp.sgg-doi .sgg-lp__form select{grid-area:i3}
  .sgg-lp.sgg-doi .sgg-lp__form button{grid-area:bt;height:50px;margin:0}
  .sgg-lp.sgg-doi .sgg-lp__form .sgg-lp__form-note{grid-area:nt;margin-top:12px}
  .sgg-lp.sgg-doi .sgg-lp__form input,.sgg-lp.sgg-doi .sgg-lp__form select{margin-bottom:0;height:50px}
}

/* ==========================================================================
   Bảng trên điện thoại: chuyển thành thẻ, không cuộn ngang
   Mỗi hàng là một thẻ; ô đầu làm tiêu đề thẻ; các ô sau hiện nhãn cột (data-label)
   ========================================================================== */
@media(max-width:768px){
  .sgg-lp .sgg-txt table{display:block !important;overflow:visible !important;white-space:normal !important;
    border:0 !important;background:transparent !important;border-radius:0 !important;box-shadow:none !important}
  .sgg-lp .sgg-txt thead{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sgg-lp .sgg-txt tbody{display:block}
  .sgg-lp .sgg-txt tbody tr{display:block;background:#fff !important;border:1px solid var(--sgg-vien);
    border-radius:12px;padding:12px 14px;margin:0 0 10px}
  .sgg-lp .sgg-txt tbody td{display:grid;grid-template-columns:42% 1fr;gap:10px;align-items:baseline;
    border:0 !important;padding:7px 0 !important;font-size:15px;line-height:1.5;white-space:normal !important;text-align:left !important}
  .sgg-lp .sgg-txt tbody td + td{border-top:1px dashed var(--vsp-vien-the) !important}
  .sgg-lp .sgg-txt tbody td::before{content:attr(data-label);font-size:12.5px;font-weight:700;
    text-transform:uppercase;letter-spacing:.03em;color:var(--vsp-chu-phu)}
  /* Ô đầu là tiêu đề thẻ */
  .sgg-lp .sgg-txt tbody td:first-child{display:block;font-size:16px;font-weight:800;color:var(--sgg-navy) !important;padding-top:0 !important}
  .sgg-lp .sgg-txt tbody td:first-child::before{content:none}
  /* Bảng 2 cột: ô thứ hai là nội dung, không cần nhãn "Thông tin" */
  .sgg-lp .sgg-txt table.sgg-bang-2 tbody td:nth-child(2){display:block}
  .sgg-lp .sgg-txt table.sgg-bang-2 tbody td:nth-child(2)::before{content:none}
  /* Nền tối */
  .sgg-lp.sgg-toi .sgg-txt tbody tr{background:rgba(255,255,255,.06) !important;border-color:rgba(var(--vsp-kem-rgb),.18)}
  .sgg-lp.sgg-toi .sgg-txt tbody td{color:var(--vsp-chu-sang)}
  .sgg-lp.sgg-toi .sgg-txt tbody td + td{border-top-color:rgba(var(--vsp-kem-rgb),.14) !important}
  .sgg-lp.sgg-toi .sgg-txt tbody td::before{color:rgba(var(--vsp-kem-rgb),.6)}
  .sgg-lp.sgg-toi .sgg-txt tbody td:first-child{color:var(--vsp-hong) !important}
  /* Bảng tính: bảng kết quả 2 cột và lịch thanh toán cho xuống dòng, không cuộn */
  .sgg-tg__bang{display:table !important;white-space:normal !important;overflow:visible !important}
  .sgg-tg__bang td,.sgg-tg__bang th{padding:9px 6px !important;font-size:14px}
  .sgg-tg__bang td:last-child{white-space:nowrap}
  /* Mở đầu trên điện thoại: thông số 2 cột */
  .sgg-lp.sgg-mo-dau .sgg-lp__nhanh{grid-template-columns:1fr 1fr}
  /* Mục lục gọn trên điện thoại */
  .sgg-lp__muc-luc a{padding:12px 10px;font-size:14px}
  .sgg-lp h2[id],.sgg-lp .sgg-neo{scroll-margin-top:84px}
  body.admin-bar .sgg-lp h2[id],body.admin-bar .sgg-lp .sgg-neo{scroll-margin-top:130px}
}
@media(max-width:600px){
  body.admin-bar .sgg-lp h2[id],body.admin-bar .sgg-lp .sgg-neo{scroll-margin-top:84px}
}

/* Hai nút cạnh nhau: container Elementor mặc định xếp dọc */
.sgg-lp.sgg-hang{flex-direction:row !important;justify-content:center}

/* Khối tin tức dự án (bài vệ tinh) */
.sgg-tin{margin-top:40px;font-family:var(--sgg-font)}
/* 12/10/2026: in hoa bằng CSS (không gõ hoa vào HTML) để trình đọc màn hình vẫn đọc đúng chữ thường. */
.sgg-tin__tt{font-size:22px;font-weight:800;color:var(--vsp-hong);margin:0 0 18px;text-transform:uppercase;letter-spacing:.02em}
.sgg-tin__luoi{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sgg-tin__the{display:flex;flex-direction:column;gap:8px;text-decoration:none;background:rgba(255,255,255,.05);
  border:1px solid rgba(var(--vsp-kem-rgb),.16);border-radius:14px;overflow:hidden;padding:0 0 18px;transition:transform .3s}
.sgg-tin__the:hover{transform:translateY(-4px)}
.sgg-tin__the img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.sgg-tin__ngay,.sgg-tin__the b,.sgg-tin__the em{padding:0 18px}
.sgg-tin__ngay{font-size:13px;color:var(--vsp-vang)}
.sgg-tin__the b{font-size:17px;line-height:1.4;color:var(--vsp-kem)}
.sgg-tin__the em{font-size:14.5px;font-style:normal;line-height:1.6;color:var(--vsp-chu-sang)}
/* 05/10/2026: danh sách chữ các bài vệ tinh còn lại dưới 6 thẻ ảnh (liên kết nội bộ đủ mọi bài của dự án) */
.sgg-tin__phu{margin:28px 0 8px;font-size:16px;font-weight:700;color:var(--vsp-kem);text-transform:uppercase;letter-spacing:.02em}
.sgg-tin__ds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.sgg-tin__ds li{margin:0;padding:0;min-width:0;border-bottom:1px solid rgba(var(--vsp-chu-sang-rgb),.18)}
.sgg-tin__ds a{display:flex;align-items:center;min-height:44px;padding:8px 0;font-size:15px;line-height:1.45;color:rgba(var(--vsp-chu-sang-rgb),.92);text-decoration:none}
.sgg-tin__ds a:hover,.sgg-tin__ds a:focus-visible{color:var(--vsp-vang);text-decoration:underline}
@media(max-width:768px){.sgg-tin__ds{grid-template-columns:1fr}}
.sgg-tin ul.sgg-tin__ds{padding-left:0 !important;margin-left:0 !important}
@media(max-width:900px){.sgg-tin__luoi{grid-template-columns:1fr}}

/* ==========================================================================
   Sửa theo ghi chú 28/09 — chỉ ba chỗ, phần còn lại giữ nguyên
   ========================================================================== */

/* 1. Khối chữ + ảnh ít chữ (69–163 từ): chia hai cột, chữ trái, ảnh phải.
      Áp cho mọi khối sgg-doi có ảnh: Tổng quan, Vị trí, Tiện ích hiện hữu,
      Tiêu chuẩn bàn giao, Chủ đầu tư. Dưới 1024px vẫn xếp chữ trên, ảnh dưới. */
@media(min-width:1024px){
  .sgg-lp.sgg-doi:has(> .elementor-widget-image){grid-template-columns:1fr 1fr !important;gap:56px !important;align-items:center !important}
  .sgg-lp.sgg-doi:has(> .elementor-widget-image) > .e-con{max-width:none !important;margin:0 !important}
  .sgg-lp.sgg-doi:has(> .elementor-widget-image) > .elementor-widget-image img{width:100% !important;max-height:none !important}
}

/* 2. Lỗi đè ảnh trên điện thoại.
      Trong khung flex dọc của Elementor, Chrome tính sai chiều cao hai loại phần tử:
      khối video (chiều cao chỉ lấy từ aspect-ratio) và dải ảnh tràn viền (ảnh đang chờ
      lazy-load). Khung bọc co còn 0–14px nên khối phía sau trồi lên đè. Chuyển riêng
      hai khung này sang bố cục khối thường, giữ khoảng cách 16px như gap cũ. */
.sgg-lp.sgg-tran{display:block !important}
.sgg-lp.sgg-wrap > .e-con-inner:has(.sgg-lp__video){display:block !important}
.sgg-lp.sgg-wrap > .e-con-inner:has(.sgg-lp__video) > .elementor-widget{display:flow-root}
.sgg-lp.sgg-wrap > .e-con-inner:has(.sgg-lp__video) > * + *{margin-top:16px}
.sgg-lp.sgg-wrap > .e-con-inner:has(.sgg-lp__video) > .sgg-eyebrow + *{margin-top:0}

/* 3. Ba thẻ giá: to hơn, cách nhau rộng hơn.
      Trước đây thẻ giữa phóng 1,04 lần lấn hết khoảng cách 18px nên ba thẻ dính nhau. */
.sgg-lp.sgg-grid:has(> .sgg-gia){gap:36px !important;margin:18px 0 10px}
.sgg-lp .sgg-lp.sgg-gia{padding:40px 34px !important;min-height:190px;display:flex !important;flex-direction:column;justify-content:center}
.sgg-lp .sgg-lp.sgg-gia .sgg-gia-so .elementor-heading-title{font-size:clamp(30px,2.6vw,44px) !important;line-height:1.15}
.sgg-lp .sgg-lp.sgg-gia .sgg-txt,.sgg-lp .sgg-lp.sgg-gia .sgg-txt p{font-size:16.5px !important;line-height:1.65}
@media(min-width:641px){
  .sgg-lp.sgg-grid > .sgg-lp.sgg-gia:nth-child(1){transform:translateY(-12px) scale(1.03) !important}
}
@media(max-width:768px){
  .sgg-lp.sgg-grid:has(> .sgg-gia){gap:16px !important}
  .sgg-lp .sgg-lp.sgg-gia{padding:26px 22px !important;min-height:0}
  .sgg-lp .sgg-lp.sgg-gia .sgg-gia-so .elementor-heading-title{font-size:30px !important}
}

/* Ghi chú 28/09 lần 2: đoạn mở đầu dưới tiêu đề mục thẳng lề trái với bảng và lưới bên dưới,
   thay vì nằm trong khối 1.280px ở giữa */
.sgg-lp.sgg-wrap > .e-con-inner > .elementor-widget-heading.sgg-h2 + .elementor-widget-text-editor:not(:has(table)){
  max-width:none !important;margin-left:0 !important;margin-right:0 !important}

/* ==========================================================================
   Ghi chú 28/09 lần 3: mục Đăng ký chia hai cột cân nhau — chữ trái, biểu mẫu phải.
   Chỉ nhắm mục có ảnh nền (sgg-t-anh), không đụng biểu mẫu nằm ngang ở phần mở đầu.
   ========================================================================== */
@media(min-width:1024px){
  .sgg-lp.sgg-t-anh .sgg-lp.sgg-doi{grid-template-columns:1fr 1fr !important;gap:56px !important;align-items:stretch !important}
  .sgg-lp.sgg-t-anh .sgg-lp.sgg-doi > .e-con{max-width:none !important;margin:0 !important;justify-content:center}
  /* Tiêu đề trong cột trái căn trái cho thẳng hàng với chữ */
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-h2,.sgg-lp.sgg-t-anh .sgg-doi .sgg-h2 .elementor-heading-title{text-align:left}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-h2::after{margin-left:0}
  /* Biểu mẫu trở lại dạng dọc, cao bằng cột chữ */
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form{display:flex !important;flex-direction:column;justify-content:center;
    height:100%;padding:38px 40px !important}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form .sgg-lp__form-tt{text-align:left;font-size:24px}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form > p:not(.sgg-lp__form-tt):not(.sgg-lp__form-note){text-align:left;font-size:14.5px}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form input,.sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form select{height:52px;margin-bottom:16px}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form button{height:56px;margin:6px 0 0}
  /* Khung bọc biểu mẫu kéo giãn hết chiều cao ô lưới */
  .sgg-lp.sgg-t-anh .sgg-doi > .e-con:has(form) > .elementor-widget,
  .sgg-lp.sgg-t-anh .sgg-doi > .e-con:has(form) .elementor-widget-container,
  .sgg-lp.sgg-t-anh .sgg-doi > .e-con:has(form) .elementor-shortcode{height:100%}
}
@media(min-width:1024px){
  /* Kiểu nằm ngang để lại align-items:end, làm nhãn và tiêu đề biểu mẫu dồn sang phải */
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form{align-items:stretch !important;text-align:left}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-lp__form .sgg-lp__form-note{text-align:center}
  /* Hoa văn sát dưới tiêu đề */
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-h2::after{margin:12px 0 2px 0 !important}
}
@media(min-width:1024px){
  /* Trong cột này ::after của widget bị đẩy ra ngoài khung tiêu đề và đè lên đoạn chữ.
     Vẽ hoa văn làm nền dưới chân chữ tiêu đề thay cho ::after. */
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-h2::after{display:none !important}
  .sgg-lp.sgg-t-anh .sgg-doi .sgg-h2 .elementor-heading-title{padding-bottom:28px;
    background:var(--vsp-hoa-van-toi) left bottom/240px 14px no-repeat}
}

/* ==========================================================================
   01/10/2026 — Sắp lại landing theo góp ý khách
   ========================================================================== */

/* Tiêu đề nằm 1 hàng trên mọi màn hình.
   tro-giup.php gắn lớp sgg-dai-<số ký tự> vào mỗi h1–h3; khối mời đăng ký đặt --n trong style.
   Trên điện thoại cỡ chữ = bề rộng khung / (số ký tự × độ rộng trung bình một ký tự),
   không vượt cỡ gốc. Đo thật bằng font Inter đậm: chữ hoa 0,55–0,59 em/ký tự, chữ thường đậm ~0,52. */
.sgg-dai-6{--n:6}.sgg-dai-7{--n:7}.sgg-dai-8{--n:8}.sgg-dai-9{--n:9}.sgg-dai-10{--n:10}.sgg-dai-11{--n:11}.sgg-dai-12{--n:12}.sgg-dai-13{--n:13}.sgg-dai-14{--n:14}.sgg-dai-15{--n:15}.sgg-dai-16{--n:16}.sgg-dai-17{--n:17}.sgg-dai-18{--n:18}.sgg-dai-19{--n:19}.sgg-dai-20{--n:20}.sgg-dai-21{--n:21}.sgg-dai-22{--n:22}.sgg-dai-23{--n:23}.sgg-dai-24{--n:24}.sgg-dai-25{--n:25}.sgg-dai-26{--n:26}.sgg-dai-27{--n:27}.sgg-dai-28{--n:28}.sgg-dai-29{--n:29}.sgg-dai-30{--n:30}.sgg-dai-31{--n:31}.sgg-dai-32{--n:32}.sgg-dai-33{--n:33}.sgg-dai-34{--n:34}.sgg-dai-35{--n:35}.sgg-dai-36{--n:36}.sgg-dai-37{--n:37}.sgg-dai-38{--n:38}.sgg-dai-39{--n:39}.sgg-dai-40{--n:40}.sgg-dai-41{--n:41}.sgg-dai-42{--n:42}.sgg-dai-43{--n:43}.sgg-dai-44{--n:44}.sgg-dai-45{--n:45}.sgg-dai-46{--n:46}.sgg-dai-47{--n:47}.sgg-dai-48{--n:48}.sgg-dai-49{--n:49}.sgg-dai-50{--n:50}.sgg-dai-51{--n:51}.sgg-dai-52{--n:52}.sgg-dai-53{--n:53}.sgg-dai-54{--n:54}.sgg-dai-55{--n:55}.sgg-dai-56{--n:56}.sgg-dai-57{--n:57}.sgg-dai-58{--n:58}.sgg-dai-59{--n:59}.sgg-dai-60{--n:60}
/* Không dùng container-type cho widget tiêu đề Elementor: đã thử, widget bị tính cao 0px và chữ đè đoạn dưới.
   Tính theo 100vw trừ phần lề của từng loại khung, chỉ trên điện thoại (máy tính đủ rộng sẵn). */
@media(max-width:768px){
  .sgg-lp .sgg-h2[class*="sgg-dai-"] .elementor-heading-title{font-size:min(23px,calc((100vw - 36px) / (var(--n) * .62)));line-height:1.25}
  .sgg-lp .sgg-h3[class*="sgg-dai-"] .elementor-heading-title{font-size:min(18px,calc((100vw - 78px) / (var(--n) * .56)))}
  .sgg-lp .sgg-lp__cta h3{font-size:min(20px,calc((100vw - 84px) / (var(--n,22) * .64)))}
  .sgg-lp .sgg-tl h3{font-size:min(20px,calc((100vw - 92px) / (var(--n,24) * .64)))}
  .sgg-lp .sgg-tin .sgg-tin__tt{font-size:min(22px,calc((100vw - 40px) / (var(--n,28) * .56)))}
}

/* Ba ô giá ở phần mở đầu: luôn 3 cột, gọn */
.sgg-lp.sgg-grid.sgg-gia-nho{grid-template-columns:repeat(3,1fr);gap:14px;max-width:960px;width:100%;margin:6px auto 0}
.sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia{padding:18px 12px;text-align:center}
.sgg-lp .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia .sgg-gia-so .elementor-heading-title{font-size:clamp(20px,2.4vw,32px) !important;text-align:center}
.sgg-lp.sgg-gia-nho .sgg-txt p{margin:4px 0 0;font-size:14px}
@media(max-width:640px){
  .sgg-lp.sgg-grid.sgg-gia-nho{grid-template-columns:repeat(3,1fr);gap:8px}
  .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia{padding:12px 2px !important;border-radius:12px;--padding-left:0px;--padding-right:0px;min-width:0}
  .sgg-lp .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia .sgg-gia-so .elementor-heading-title{font-size:min(19px,4.6vw) !important;white-space:nowrap;letter-spacing:-.01em}
  .sgg-lp .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia .sgg-txt p,
  .sgg-lp .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia .sgg-txt strong{font-size:13px !important;line-height:1.25;white-space:normal}
  .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia{overflow:hidden}
}
.sgg-lp.sgg-mo-dau .sgg-lp__video{max-width:960px}
.sgg-lp.sgg-hang.sgg-hang--giua{justify-content:center}

/* Thẻ số liệu: 2 cột trên điện thoại thay vì 1 cột dọc */
@media(max-width:640px){
  .sgg-lp.sgg-grid.sgg-grid--so{grid-template-columns:repeat(2,1fr);gap:10px}
  .sgg-lp.sgg-grid--so .sgg-lp.sgg-card--so{padding:12px 14px}
  .sgg-lp .sgg-grid--so .sgg-card--so .sgg-so .elementor-heading-title{font-size:22px}
  .sgg-lp .sgg-grid--so .sgg-card--so .sgg-note p{font-size:13px}
}

/* Lưới ảnh: 2 cột trên điện thoại; ảnh lẻ cuối cùng trải ngang */
@media(max-width:640px){
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--mb2{grid-template-columns:repeat(2,1fr);gap:8px}
  .sgg-lp.sgg-anh-luoi--mb2 > :last-child:nth-child(odd){grid-column:1 / -1}
  .sgg-lp.sgg-anh-luoi--mb2 .sgg-o figcaption{font-size:13px;line-height:1.3;padding:22px 8px 8px}
  .sgg-lp.sgg-anh-luoi--mb2 .sgg-o img{aspect-ratio:4/3}
}

/* Danh sách 2 cột (tiện ích hiện hữu) — chỉ máy tính bảng; máy tính để 1 cột cho chữ cao ngang ảnh bên cạnh */
@media(min-width:481px) and (max-width:1023px){
  .sgg-lp .sgg-txt ul.sgg-2cot{columns:2;column-gap:28px}
  .sgg-lp .sgg-txt ul.sgg-2cot li{break-inside:avoid}
}

/* Nút "Xem thêm": bảng phụ thu gọn, chữ vẫn nằm trong HTML cho Google */
.sgg-lp details.sgg-them{margin:6px 0 4px}
.sgg-lp details.sgg-them > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  min-height:40px;padding:8px 16px;border-radius:999px;border:1px solid rgba(var(--vsp-nhan-rgb),.45);
  font-weight:700;font-size:14.5px;color:var(--vsp-xanh)}
.sgg-lp details.sgg-them > summary::-webkit-details-marker{display:none}
.sgg-lp details.sgg-them > summary::after{content:"+";font-size:18px;line-height:1}
.sgg-lp details.sgg-them[open] > summary::after{content:"−"}
.sgg-lp details.sgg-them[open] > summary{margin-bottom:14px}
.sgg-lp.sgg-toi details.sgg-them > summary{color:var(--vsp-kem);border-color:rgba(var(--vsp-kem-rgb),.35)}

/* Tiêu đề khối tin tức: đọc rõ trên nền tối */
.sgg-lp.sgg-toi .sgg-tin .sgg-tin__tt{color:var(--vsp-hong) !important}
.sgg-lp .sgg-tin .sgg-tin__tt{text-align:center}
/* 12/10/2026: "Bài viết khác" đổi <p> -> <h2> nên dính màu heading của theme (xám đen rgb(31,41,55)),
   chìm hẳn trên nền tối. Ép lại màu kem như cũ. */
.sgg-lp .sgg-tin .sgg-tin__phu,
.sgg-lp.sgg-toi .sgg-tin .sgg-tin__phu{color:var(--vsp-kem) !important}

/* Nhãn form và bảng tính: tối thiểu 13px theo quy chuẩn (trước là 12,5px) */
.sgg-lp .sgg-lp__form label,.sgg-lp .sgg-lp__form label span,.sgg-lp .sgg-tg__o label{font-size:13px}

/* Link chữ trong đoạn văn: nới vùng bấm lên >= 40px trên điện thoại.
   Đệm dọc của phần tử inline không đẩy dòng, nên bố cục không đổi. */
@media(max-width:768px){
  .sgg-lp .sgg-txt p a,.sgg-lp .sgg-txt li a{padding:11px 0}
}

/* 01/10/2026 (2) — Khách note: video sát ô giá, nút phát chưa đúng biểu tượng YouTube, ô giá thêm vốn 30% */
.sgg-lp.sgg-wrap > .e-con-inner:has(.sgg-lp__video) > .sgg-gia-nho{margin-top:36px}
.sgg-lp.sgg-mo-dau .sgg-von-note{text-align:center;margin-top:14px}
.sgg-lp .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia .sgg-txt p.sgg-von{margin-top:8px;font-weight:800;color:var(--sgg-do) !important}
.sgg-lp .sgg-lp__play,.sgg-lp .sgg-lp__play:hover{width:68px;min-width:68px;max-width:68px;height:48px;min-height:48px;
  border-radius:0;background:transparent;box-shadow:none}
.sgg-lp .sgg-lp__play svg{display:block;width:68px;height:48px;filter:drop-shadow(0 6px 16px rgba(0,0,0,.35))}
.sgg-lp .sgg-lp__play:hover svg path:first-child{fill:#cc0000}
@media(max-width:640px){
  .sgg-lp.sgg-wrap > .e-con-inner:has(.sgg-lp__video) > .sgg-gia-nho{margin-top:24px}
  .sgg-lp .sgg-lp.sgg-gia-nho .sgg-lp.sgg-gia .sgg-txt p.sgg-von{margin-top:6px}
}

/* 01/10/2026 (3) — Vinhomes Saigon Park: nền vân đỏ cho các khối mời đăng ký và mục Đăng ký, theo gợi ý dongtayland.vn.
   Chỉ áp cho trang có body .sgg-lp-saigon-park. */
.sgg-lp-saigon-park .sgg-lp__cta{background:linear-gradient(115deg,rgba(74,8,14,.55),rgba(120,16,24,.25)),url(https://cdn.sggroup.com.vn/2026/10/vinhomes-saigon-park-nen-do-1024x571.jpg) center/cover;
  border:1px solid rgba(var(--vsp-vang-rgb),.35)}
.sgg-lp-saigon-park .sgg-lp.sgg-t-anh::before{background:linear-gradient(90deg,rgba(60,6,12,.72),rgba(60,6,12,.35))}
@media(max-width:768px){
  .sgg-lp-saigon-park .sgg-lp.sgg-t-anh{background:#5e0c14 url(https://cdn.sggroup.com.vn/2026/10/vinhomes-saigon-park-nen-do-1024x571.jpg) center/cover !important}
}

/* 01/10/2026 (4) — Form tư vấn kiểu dongtayland cho Vinhomes Saigon Park (khách duyệt):
   thẻ nền vân đỏ, hoa văn dự án trên tiêu đề, ô nhập gạch chân chữ sáng, nút vàng. Không đụng popup. */
.sgg-lp-saigon-park .e-con .sgg-lp__form{
  background:linear-gradient(160deg,rgba(70,6,12,.82),rgba(110,14,22,.62)),url(https://cdn.sggroup.com.vn/2026/10/vinhomes-saigon-park-nen-do-768x428.jpg) center/cover;
  border:1px solid rgba(var(--vsp-vang-rgb),.45);color:var(--vsp-kem);box-shadow:0 24px 54px rgba(40,4,8,.45)}
.sgg-lp-saigon-park .e-con .sgg-lp__form .sgg-lp__form-tt{color:var(--vsp-vang);font-family:var(--sgg-font-tieu-de,inherit);letter-spacing:.02em}
.sgg-lp-saigon-park .e-con .sgg-lp__form .sgg-lp__form-tt::before{content:"";display:block;width:180px;max-width:60%;height:14px;margin:0 auto 12px;
  background:var(--vsp-hoa-van-toi) center/contain no-repeat}
.sgg-lp-saigon-park .e-con .sgg-lp__form > p,.sgg-lp-saigon-park .e-con .sgg-lp__form .sgg-lp__form-note{color:rgba(var(--vsp-kem-rgb),.82) !important}
.sgg-lp-saigon-park .e-con .sgg-lp__form label{color:var(--vsp-kem)}
.sgg-lp-saigon-park .e-con .sgg-lp__form label span{color:var(--vsp-vang)}
.sgg-lp-saigon-park .e-con .sgg-lp__form input,.sgg-lp-saigon-park .e-con .sgg-lp__form select{
  background:transparent;border:0;border-bottom:1px solid rgba(var(--vsp-kem-rgb),.55);border-radius:0;color:#fff;padding-left:2px}
.sgg-lp-saigon-park .e-con .sgg-lp__form input::placeholder{color:rgba(var(--vsp-kem-rgb),.6)}
.sgg-lp-saigon-park .e-con .sgg-lp__form select option{color:#222}
.sgg-lp-saigon-park .e-con .sgg-lp__form input:focus,.sgg-lp-saigon-park .e-con .sgg-lp__form select:focus{border-bottom-color:var(--vsp-vang);box-shadow:none}
.sgg-lp-saigon-park .e-con .sgg-lp__form button{background:linear-gradient(180deg,#f3d58a,#c99a3c) !important;background-color:#d9ae55 !important;color:#3a0a0e !important;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.sgg-lp-saigon-park .e-con .sgg-lp__form button:hover{background:linear-gradient(180deg,#f7e0a4,#d4a648) !important}
/* Elementor xóa background-image của khối chưa "lazyloaded": giữ màu nền đặc làm dự phòng */
.sgg-lp-saigon-park .e-con .sgg-lp__form{background-color:#5e0c14 !important}

/* Quy ước 01/10/2026: chữ neo (anchor text) trong đoạn văn in đậm như từ khóa */
.sgg-lp .sgg-txt p a,.sgg-lp .sgg-txt li a,.sgg-lp .sgg-lp__faq-tl a{font-weight:700}

/* Ô ảnh giữ nguyên tỷ lệ (02/10/2026, Imperia Sensa Park): poster loại căn, layout, mặt bằng tầng, nhà mẫu, tiện ích.
   Ảnh hiện trọn trên mọi màn hình, không cắt; tỷ lệ thật nằm ở style của <img> nên không xô lệch bố cục.
   Chú thích nằm dưới ảnh thay vì đè lên. Chạm ảnh mở bản lớn. */
.sgg-lp .sgg-o.sgg-o--nguyen{background:#fff;border:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column}
.sgg-lp .sgg-o.sgg-o--nguyen a{display:block;cursor:zoom-in}
.sgg-lp .sgg-o.sgg-o--nguyen img,
.sgg-lp.sgg-anh-luoi--mb2 .sgg-o.sgg-o--nguyen img{height:auto;object-fit:contain}
.sgg-lp .sgg-o.sgg-o--nguyen:hover img{transform:none}
.sgg-lp .sgg-o.sgg-o--nguyen figcaption,
.sgg-lp.sgg-anh-luoi--mb2 .sgg-o.sgg-o--nguyen figcaption{position:static;background:none;color:#1f2a30;
  padding:10px 12px 12px;font-size:14px;line-height:1.35;font-weight:600}
.sgg-lp.sgg-anh-luoi--2{grid-template-columns:repeat(2,1fr)}
.sgg-lp.sgg-anh-luoi:has(.sgg-o--nguyen){align-items:start}
/* Trang Imperia: ảnh tràn viền và ảnh mở đầu cũng hiện trọn */
.sgg-lp-imperia-sensa .sgg-lp .sgg-anh-tran img{max-height:none;object-fit:contain}
.sgg-lp-imperia-sensa .sgg-lp .sgg-anh-mo img{object-fit:contain}
.sgg-lp-imperia-sensa .sgg-tin__the img{object-fit:contain;background:#eef1ee}
@media(max-width:640px){
  .sgg-lp .sgg-o.sgg-o--nguyen figcaption{font-size:13px;padding:8px 8px 10px}
}

/* Lưới ảnh đều (02/10/2026): mỗi lưới một khung cùng tỷ lệ ($ON tham số khung), ảnh nằm trọn trong khung, không cắt.
   Ô cùng hàng cao bằng nhau, chú thích thẳng hàng. Điện thoại: 2 cột, ô lẻ cuối nằm giữa cùng cỡ. */
.sgg-lp.sgg-anh-luoi:has(.sgg-o--nguyen){align-items:stretch}
.sgg-lp.sgg-anh-luoi:has(.sgg-o--nguyen) > *,
.sgg-lp.sgg-anh-luoi:has(.sgg-o--nguyen) .elementor-widget-container{height:100%}
.sgg-lp .sgg-o.sgg-o--nguyen{height:100%;margin:0}
.sgg-lp .sgg-o.sgg-o--nguyen figcaption{flex:1}
.sgg-lp .sgg-o.sgg-o--khung img{width:100%;height:auto;object-fit:contain;background:#fff}
.sgg-lp .sgg-o.sgg-o--nguyen.sgg-o--toi{background:#1E2416;border-color:rgba(255,255,255,.1)}
.sgg-lp .sgg-o.sgg-o--khung.sgg-o--toi img{background:#1E2416}
.sgg-lp .sgg-o.sgg-o--nguyen.sgg-o--toi figcaption,
.sgg-lp.sgg-anh-luoi--mb2 .sgg-o.sgg-o--nguyen.sgg-o--toi figcaption{color:#EFE8CF}
@media(min-width:1001px){
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--4{grid-template-columns:repeat(4,1fr)}
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--5{grid-template-columns:repeat(5,1fr)}
}
@media(min-width:641px) and (max-width:1000px){
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--4,.sgg-lp.sgg-anh-luoi.sgg-anh-luoi--5{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  .sgg-lp.sgg-anh-luoi--mb2:has(.sgg-o--nguyen) > :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 4px)}
}

/* Landing chạy quảng cáo Vinhomes Saigon Park, The Privé (02/10/2026): ảnh hiện trọn, ô đều.
   Ô lưới giữ khung tỷ lệ sẵn có (16/10, 3/2, 4/3 theo màn hình) nhưng ảnh nằm trọn trong khung (contain) trên nền tối;
   chú thích chuyển xuống dưới ảnh để không che ảnh; ô cùng hàng cao bằng nhau; ô lẻ cuối trên điện thoại nằm giữa. */
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi{align-items:stretch}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi > *,
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi .elementor-widget-container{height:100%}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o{display:flex;flex-direction:column;height:100%;margin:0;background:#15191B}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o img{object-fit:contain;background:#15191B}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o:hover img{transform:none}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o figcaption,
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi--mb2 .sgg-o figcaption{position:static;flex:1;background:none;
  color:#F3EFE4;padding:10px 12px 12px;font-size:14px;line-height:1.35}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-card .sgg-img img{object-fit:contain}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-tin__the img{object-fit:contain;background:#EEF1EE}
@media(max-width:640px){
  :is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi--mb2 .sgg-o figcaption{font-size:13px;padding:8px 8px 10px}
  :is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi--mb2 > :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 4px)}
}
/* Khung theo tỷ lệ phổ biến của ảnh trong từng lưới: ô đều mà khoảng nền quanh ảnh mỏng nhất */
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r169 .sgg-o img{aspect-ratio:16 / 9}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r266 .sgg-o img{aspect-ratio:2.66 / 1}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r32 .sgg-o img{aspect-ratio:3 / 2}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r43 .sgg-o img{aspect-ratio:4 / 3}
@media(min-width:1001px){
  .sgg-lp-the-prive .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r266{grid-template-columns:repeat(2,1fr)}
}

/* Con số (02/10/2026, khách: "số khó nhìn"): bỏ kiểu số cổ của Cormorant, dùng font chữ chính đậm, số thẳng hàng — mọi landing */
.sgg-lp .sgg-so .elementor-heading-title,
.sgg-lp .sgg-gia-so .elementor-heading-title{font-family:var(--sgg-font) !important;font-weight:800 !important;
  font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em}

/* Ảnh vừa khung, khung to (02/10/2026) — 3 landing chạy quảng cáo.
   Điện thoại: 1 ảnh 1 hàng rộng hết màn hình, đúng tỷ lệ thật (--tl) → không viền, không cắt.
   Máy tính: ảnh lấp kín khung chung của lưới; ô có ảnh lệch khổ > 20% (JS gắn sgg-o--lech) thu trọn vào khung.
   Poster, layout, mặt bằng của Imperia (sgg-o--khung nền trắng) luôn hiện trọn. */
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o:not(.sgg-o--khung) img,
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o.sgg-o--toi img{object-fit:cover}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp .sgg-o.sgg-o--lech img{object-fit:contain !important}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r34 .sgg-o img{aspect-ratio:3 / 4}
@media(max-width:640px){
  :is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--mb2{grid-template-columns:1fr;gap:14px}
  :is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi--mb2 > :last-child:nth-child(odd){grid-column:auto;justify-self:stretch;width:auto}
  :is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi .sgg-o img[style*="--tl"]{aspect-ratio:var(--tl) !important;object-fit:cover !important}
  :is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-imperia-sensa,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi .sgg-o figcaption{font-size:14px !important;padding:10px 12px 12px !important}
}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r1610 .sgg-o img{aspect-ratio:16 / 10}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r11 .sgg-o img{aspect-ratio:1 / 1}
@media(min-width:1001px){.sgg-lp-the-prive .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r11{max-width:760px;margin-inline:auto}}
/* Ảnh rời đặt bằng khối HTML (figure.sgg-img) không bị cột flex ép co trên điện thoại (02/10/2026, Norton Park) */
.sgg-lp .elementor-widget:has(> .elementor-widget-container > figure.sgg-img){flex-shrink:0}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r23 .sgg-o img{aspect-ratio:2 / 3}
.sgg-lp-norton-park .sgg-lp__nhanh div{background:rgba(28,29,16,.62)}
:is(.sgg-lp-saigon-park,.sgg-lp-the-prive,.sgg-lp-norton-park,.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise) .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--r21 .sgg-o img{aspect-ratio:2 / 1}
.sgg-lp-mont-alp-residences, .sgg-lp-vinhomes-green-paradise .sgg-lp__nhanh div{background:rgba(20,30,33,.62)}

/* ==========================================================================
   Ghi chú 05/10: trên màn rộng chữ, bảng, ghi chú trải 1.840px (màn 1.920px) — dòng quá dài, khó đọc.
   Thu cả cột nội dung về 1.280px ở giữa (bằng giới hạn khối video), để đoạn mở đầu vẫn thẳng lề
   với bảng và lưới bên dưới như ghi chú 28/09. Nền mục vẫn tràn viền; dưới 1.360px không đổi gì.
   ========================================================================== */
@media(min-width:1025px){
  .sgg-lp.sgg-wrap > .e-con-inner{max-width:1280px !important;width:100%;margin-left:auto !important;margin-right:auto !important}
  /* Khối chữ + ảnh: cột hẹp lại nên chữ cao hơn ảnh 200–500px. Ảnh đứng đầu cột và bám theo khi cuộn
     (dưới header 68px + mục lục), không cắt ảnh — bản đồ vị trí vẫn đủ. */
  .sgg-lp.sgg-doi:has(> .elementor-widget-image){align-items:start !important}
  .sgg-lp.sgg-doi:has(> .elementor-widget-image) > .elementor-widget-image{position:sticky;top:150px}
}

/* ==========================================================================
   Ảnh vừa khung (05/10/2026, khách: "nhiều ảnh không vừa với khung hình"). Trước: mỗi lưới một tỷ lệ khung cố định (3:2, 16:10, 1:1)
   cho ảnh nhiều khổ → ảnh thu trọn thì dư viền tối (ga metro Cần Giờ 16:9 trong khung gần vuông, 36%), ảnh lấp kín thì bị cắt
   (bảng giá dọc Palm River mất 56%). Nay mọi landing: lưới chia hàng theo tỷ lệ thật của từng ảnh (--tl do PHP gắn lên figure):
   ảnh cùng hàng cao bằng nhau, lấp kín chiều ngang, không viền, không cắt. Điện thoại: 1 ảnh 1 hàng, đúng tỷ lệ.
   ========================================================================== */
@media(min-width:641px){
  /* Giữ số cột thiết kế của lưới (--n): cỡ chuẩn mỗi ô = bề rộng cột, chiều cao chuẩn = cột / 2 để ảnh ngang tới 2:1
     vẫn đủ --n ảnh một hàng; min-width chặn quá --n ảnh một hàng (poster dọc không bị dồn nhỏ);
     ảnh giãn lấp kín hàng, ảnh lẻ hàng cuối tối đa 1,25 cột (ảnh rất ngang được tới hết hàng). */
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]){display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;
    align-items:flex-start !important;gap:14px;container-type:inline-size;--n:3}
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--2:has(.sgg-o[style*="--tl"]){--n:2}
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--4:has(.sgg-o[style*="--tl"]){--n:4}
  .sgg-lp.sgg-anh-luoi.sgg-anh-luoi--5:has(.sgg-o[style*="--tl"]){--n:5}
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]) > .elementor-element,
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]) > .elementor-element > .elementor-widget-container{display:contents}
  .sgg-lp.sgg-anh-luoi .sgg-o[style*="--tl"]{
    --cot:calc((100cqw - (var(--n) - 1) * 14px) / var(--n)); --h:calc(var(--cot) / 2);
    flex:var(--tl) 1 calc(var(--tl) * var(--h));
    min-width:calc((100cqw - (var(--n) - 1) * 14px) / (var(--n) + 1) + 1px);
    max-width:max(calc(var(--cot) * 1.25), calc(var(--tl) * var(--h) * 1.4));
    width:auto !important;height:auto !important;margin:0}
}
@media(min-width:641px) and (max-width:1000px){
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]){--n:2 !important}
}
.sgg-lp.sgg-anh-luoi .sgg-o[style*="--tl"] img,
.sgg-lp.sgg-anh-luoi.sgg-anh-luoi--mb2 .sgg-o[style*="--tl"] img{aspect-ratio:var(--tl) !important;width:100% !important;height:auto !important;object-fit:cover !important}
@media(max-width:640px){
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]){grid-template-columns:1fr !important;gap:14px !important}
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]) > :last-child:nth-child(odd){grid-column:auto !important;justify-self:stretch !important;width:auto !important}
}
/* Ảnh trong thẻ (phân khu, loại căn): khung theo đúng tỷ lệ ảnh thay vì 16:10 thu trọn có viền hai bên */
.sgg-lp .sgg-img[style*="--tl"] img{aspect-ratio:var(--tl) !important;object-fit:cover !important;height:auto !important}
/* Thẻ tin tức cuối landing (05/10/2026, khách: "cho hình ảnh to lên để vừa khung hình, chứ nó cứ bị thưa thớt"):
   ảnh đại diện lấp kín khung 16:9 của thẻ thay vì thu nhỏ có khoảng trống hai bên */
.sgg-lp-trang .sgg-tin__the img{object-fit:cover !important;background:none !important}
/* Ảnh trong thẻ (widget ảnh sgg-img: phân khu, loại căn): đúng tỷ lệ thật thay vì khung 16:10 thu trọn có viền hai bên.
   Saigon Park: 5 thẻ phân khu dùng chung 4:3 (4/5 ảnh đúng 4:3, Ivy Park cắt khoảng 12% hai mép) để các thẻ cao bằng nhau. */
.sgg-lp.sgg-card .elementor-widget-image.sgg-img img{aspect-ratio:auto !important;height:auto !important;object-fit:cover !important;background:none !important}
.sgg-lp-saigon-park .sgg-lp.sgg-card .elementor-widget-image.sgg-img img{aspect-ratio:4 / 3 !important}

/* ==========================================================================
   Landing gọn một màn hình mỗi mục (05/10/2026, khách: "nội dung trong mỗi section sẽ hiển thị đủ trong màn hình để người đọc
   nhìn được hết nội dung, hình ảnh và CTA hoặc form" → chọn cắt bớt nội dung). Làm thử trên Vinhomes Saigon Park.
   Khối mới dùng chung được cho landing khác: sgg-doi--2 (hai khối cạnh nhau), sgg-grid--1, sgg-grid--5, sgg-faq--2, sgg-muc-tin.
   ========================================================================== */
@media(min-width:1025px){
  .sgg-lp.sgg-doi.sgg-doi--2{grid-template-columns:1fr 1fr !important;gap:40px !important;align-items:start !important}
  .sgg-lp.sgg-doi.sgg-doi--2 > .e-con{max-width:none !important;margin:0 !important;width:auto !important}
  .sgg-lp.sgg-grid.sgg-grid--5{grid-template-columns:repeat(5,1fr) !important;gap:16px}
  .sgg-lp.sgg-grid.sgg-grid--5 .sgg-card{padding:14px 14px 16px !important}
  .sgg-lp.sgg-grid.sgg-grid--5 .sgg-h3 .elementor-heading-title{font-size:17px !important}
  .sgg-lp.sgg-grid.sgg-grid--5 .sgg-txt{font-size:15px;line-height:1.55}
  .sgg-lp__faq.sgg-faq--2{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;align-items:start}
  .sgg-lp__faq.sgg-faq--2 > details{margin:0}
  .sgg-muc-tin .sgg-tin__ds{grid-template-columns:repeat(3,1fr) !important}
  /* Đệm trên dưới mỗi mục 56px thay vì 80px để nội dung vừa màn hình. Đang làm thử: chỉ trang nháp 19768, duyệt xong đổi sang .sgg-lp-saigon-park */
  body.page-id-19768 .sgg-lp.sgg-s{padding:56px 0}
  body.page-id-19768 .sgg-lp.sgg-mo-dau .sgg-doi--2 .sgg-gia-nho{margin:8px 0 0;max-width:none}
  body.page-id-19768 .sgg-lp.sgg-mo-dau .sgg-doi--2 .sgg-hang{justify-content:flex-start}
  body.page-id-19768 .sgg-lp.sgg-mo-dau .sgg-doi--2 .sgg-lp__video{max-width:none;margin:0}
}
.sgg-lp.sgg-grid.sgg-grid--1{grid-template-columns:1fr !important}
@media(min-width:641px) and (max-width:1024px){
  .sgg-lp.sgg-grid.sgg-grid--5{grid-template-columns:repeat(3,1fr) !important}
}
@media(min-width:1025px){
  /* Form nằm trong một nửa khối hai cột: xếp dọc (mặc định form trong sgg-doi nằm ngang 3 ô + nút, nửa cột thì bị bóp) */
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form{display:flex !important;flex-direction:column;padding:24px 28px !important}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form input,.sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form select{height:48px;margin-bottom:12px}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form button{height:52px;margin:4px 0 0}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form .sgg-lp__form-note{margin-top:10px}
  /* Hồ sơ pháp lý trong nửa cột: thẻ gọn, tên văn bản tối đa 2 dòng */
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-hs{gap:8px;margin-top:0}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-hs__muc{padding:9px 12px;gap:10px}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-hs__icon{width:34px;height:34px;font-size:10px}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-hs__chu b{font-size:13.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-hs__chu em{font-size:12.5px;margin-top:1px}
  .sgg-lp.sgg-doi.sgg-doi--2 .sgg-hs__tai{font-size:12px}
}
@media(min-width:1025px){
  /* Khối tin tức riêng: thẻ chỉ ảnh, ngày, tiêu đề (bỏ đoạn trích) để 3 thẻ + danh sách bài vừa một màn hình */
  .sgg-muc-tin .sgg-tin__the em{display:none}
  .sgg-muc-tin .sgg-tin__the{padding-bottom:16px}
  .sgg-muc-tin .sgg-tin__ds li{font-size:14.5px}
}
@media(min-width:1025px){
  .sgg-muc-tin .sgg-tin__the img{aspect-ratio:2 / 1}
  .sgg-muc-tin .sgg-tin__ds a{display:block;min-height:0;padding:6px 0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* Màn máy tính thấp (laptop 1536×864, 1366×768): thu đệm, cỡ tiêu đề mục, ảnh theo chiều cao màn hình — vẫn đủ nội dung.
   Đang làm thử: chỉ trang nháp 19768 */
@media(min-width:1025px) and (max-height:900px){
  body.page-id-19768 .sgg-lp.sgg-s{padding:34px 0}
  body.page-id-19768 .sgg-lp .sgg-h2 .elementor-heading-title{font-size:clamp(22px,2vw,28px)}
  body.page-id-19768 .sgg-lp .sgg-h2::after{margin:8px auto 2px}
  body.page-id-19768 .sgg-lp .sgg-txt{font-size:15.5px;line-height:1.62}
  body.page-id-19768 .sgg-lp.sgg-wrap > .e-con-inner{gap:12px}
  body.page-id-19768 .sgg-lp .sgg-txt table th,body.page-id-19768 .sgg-lp .sgg-txt table td{padding-top:8px !important;padding-bottom:8px !important}
  body.page-id-19768 .sgg-lp.sgg-doi:has(> .elementor-widget-image) > .elementor-widget-image img{max-height:calc(100vh - 230px) !important;width:auto !important;margin:0 auto}
  body.page-id-19768 .sgg-tl{padding:20px 24px;margin-top:6px}
  body.page-id-19768 .sgg-tl li{margin-bottom:6px}
  body.page-id-19768 .sgg-lp .sgg-card{padding-top:16px !important;padding-bottom:16px !important}
  body.page-id-19768 .sgg-lp.sgg-anh-luoi .sgg-o[style*="--tl"]{--h:calc(var(--cot) / 2.4)}
  body.page-id-19768 .sgg-lp__faq summary{padding-top:12px !important;padding-bottom:12px !important}
  body.page-id-19768 .sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form input,body.page-id-19768 .sgg-lp.sgg-doi.sgg-doi--2 .sgg-lp__form select{height:44px;margin-bottom:8px}
  body.page-id-19768 .sgg-muc-tin .sgg-tin__the img{aspect-ratio:5 / 2}
  body.page-id-19768 .sgg-lp .sgg-h3 .elementor-heading-title{font-size:19px}
  body.page-id-19768 .sgg-lp .sgg-tick li{margin-bottom:4px}
}

/* Nút mở hồ sơ PDF trong popup sau khi khách gửi thông tin (05/10/2026) */
.sgg-pop .sgg-pop__mo-hs{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:10px;padding:10px 18px;border-radius:10px;
  background:#B3141A;color:#fff !important;font-weight:800;font-size:15px;text-decoration:none;letter-spacing:.02em}
.sgg-pop .sgg-pop__mo-hs:hover,.sgg-pop .sgg-pop__mo-hs:focus-visible{background:#8f0f14;outline:2px solid #fff;outline-offset:2px}

/* ==========================================================================
   Dải tóm tắt dưới H1 (12/10/2026) — việc P1 phương án tăng chuyển đổi.
   Trả lời ngay trên màn hình đầu: ở đâu, pháp lý gì, bao giờ nhận nhà.
   Đo trước khi làm: điện thoại ở lại 18 giây, thoát 69,3%; giá nằm ở màn 1,4 đến 18.
   ========================================================================== */
.sgg-tomtat{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:18px 0 6px;
  background:rgba(var(--vsp-kem-rgb),.22);border-radius:12px;overflow:hidden}
.sgg-tomtat div{background:rgba(0,0,0,.28);padding:12px 14px;min-width:0}
.sgg-tomtat dt{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(var(--vsp-kem-rgb),.72);margin:0 0 3px}
.sgg-tomtat dd{margin:0;font-size:15.5px;font-weight:700;line-height:1.35;color:var(--vsp-kem)}
.sgg-tomtat__nut{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.sgg-tomtat__nut a{flex:1 1 160px;display:flex;align-items:center;justify-content:center;min-height:48px;
  padding:12px 18px;border-radius:10px;font-size:15px;font-weight:800;letter-spacing:.02em;
  text-decoration:none;text-align:center;transition:transform .2s}
.sgg-tomtat__nut a:hover{transform:translateY(-2px)}
.sgg-tomtat__goi{background:var(--sgg-do,#d32f2f);color:#fff}
.sgg-tomtat__xem{background:var(--vsp-vang,#d9b45b);color:#1a1a1a}
@media (max-width:768px){
  /* Điện thoại: 2 cột cho đọc được, chữ to hơn vì đây là thứ khách cần thấy ngay */
  .sgg-tomtat{grid-template-columns:repeat(2,1fr);margin:14px 0 6px}
  .sgg-tomtat dd{font-size:15px}
  .sgg-tomtat__nut a{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){.sgg-tomtat__nut a{transition:none}.sgg-tomtat__nut a:hover{transform:none}}

/* Lối đi nhẹ hơn ngay dưới nút gửi form (12/10/2026, việc P4).
   Đo: 38 người bắt đầu điền, 3 người gửi — bỏ dở 92%. Nhiều khách ngại đưa số điện thoại. */
.sgg-lp__form-zalo{margin:12px 0 0;font-size:14px;line-height:1.5;text-align:center;color:var(--vsp-chu-phu,rgba(255,255,255,.72))}
/* Nền form luôn trắng nên dùng MÀU CỐ ĐỊNH, không dùng biến màu dự án:
   vàng kim đo được tương phản 1,99 và --sgg-do của Vinhomes Green Paradise lại là xanh ngọc (2,94),
   đều dưới chuẩn tối thiểu 4,5. #B3261E trên nền trắng đạt 6,6. */
.sgg-lp__form-zalo a{display:inline-flex;align-items:center;min-height:44px;padding:4px 2px;margin-left:4px;
  font-weight:800;color:#B3261E;text-decoration:underline;text-underline-offset:3px}

/* ==========================================================================
   Công cụ tính khoản trả hằng tháng khi lãi thả nổi (12/10/2026, việc P3).
   Dùng được ngay, không cần để lại số điện thoại — chỉ mời khi khách muốn giỏ hàng thật.
   ========================================================================== */
.sgg-vay{margin:34px 0;padding:22px;border-radius:16px;background:rgba(0,0,0,.26);
  border:1px solid rgba(var(--vsp-kem-rgb),.2)}
.sgg-vay__tt{margin:0 0 6px;font-size:clamp(19px,2.1vw,24px);font-weight:800;line-height:1.3;color:var(--vsp-kem)}
.sgg-vay__mo{margin:0 0 18px;font-size:15px;line-height:1.6;color:var(--vsp-chu-sang)}
.sgg-vay__nhap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sgg-vay__o{display:flex;flex-direction:column;gap:5px;min-width:0}
.sgg-vay__o label{font-size:13px;font-weight:700;color:rgba(var(--vsp-kem-rgb),.78)}
.sgg-vay__o input{min-height:48px;padding:10px 12px;border-radius:10px;font:inherit;font-size:16px;font-weight:700;
  color:var(--vsp-kem);background:rgba(0,0,0,.3);border:1px solid rgba(var(--vsp-kem-rgb),.3)}
.sgg-vay__o input:focus{outline:2px solid var(--vsp-vang,#d9b45b);outline-offset:1px}
.sgg-vay__o span{font-size:12.5px;color:rgba(var(--vsp-chu-sang-rgb),.7)}
.sgg-vay__vay{margin:16px 0 10px;font-size:15.5px;color:var(--vsp-chu-sang)}
.sgg-vay__vay b{color:var(--vsp-vang);font-size:18px}
.sgg-vay__bang{width:100%;border-collapse:collapse;margin:0 0 14px}
.sgg-vay__cap{caption-side:top;text-align:left;font-size:13px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:rgba(var(--vsp-kem-rgb),.7);padding-bottom:8px}
.sgg-vay__bang th,.sgg-vay__bang td{padding:11px 10px;text-align:right;font-size:15px;
  border-bottom:1px solid rgba(var(--vsp-chu-sang-rgb),.16)}
.sgg-vay__bang thead th{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  color:rgba(var(--vsp-kem-rgb),.72)}
.sgg-vay__bang th[scope="row"]{text-align:left;font-weight:800;color:var(--vsp-vang)}
.sgg-vay__bang td{color:var(--vsp-kem);font-weight:700}
.sgg-vay__ghi{margin:0 0 16px;font-size:13.5px;line-height:1.6;color:rgba(var(--vsp-chu-sang-rgb),.78)}
.sgg-vay__nut{margin:0}
.sgg-vay__nut a{display:flex;align-items:center;justify-content:center;min-height:50px;padding:13px 20px;
  border-radius:11px;background:var(--vsp-vang,#d9b45b);color:#1a1a1a;font-size:15px;font-weight:800;
  text-align:center;text-decoration:none;transition:transform .2s}
.sgg-vay__nut a:hover{transform:translateY(-2px)}
@media (max-width:768px){
  .sgg-vay{padding:18px 14px;margin:26px 0}
  .sgg-vay__nhap{grid-template-columns:1fr}
  /* Bảng 4 cột không vừa màn điện thoại: xếp mỗi dòng thành một thẻ, nhãn đi kèm từng số */
  .sgg-vay__bang thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sgg-vay__bang tr{display:block;margin-bottom:12px;padding:12px;border-radius:12px;background:rgba(0,0,0,.24)}
  .sgg-vay__bang th[scope="row"]{display:block;font-size:16px;margin-bottom:6px;border:0}
  .sgg-vay__bang td{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:0}
  .sgg-vay__bang td::before{content:attr(data-nhan);font-weight:600;color:rgba(var(--vsp-chu-sang-rgb),.72)}
}
@media (prefers-reduced-motion:reduce){.sgg-vay__nut a{transition:none}.sgg-vay__nut a:hover{transform:none}}

/* Ép màu cho công cụ tính vay (12/10/2026).
   Lỗi lặp lại lần hai trong ngày: thẻ <h3>/<strong> trong landing dính màu heading của theme Astra
   rgb(31,41,55) nên chìm hẳn trên nền tối. Kiểm HTML không thấy, chỉ chụp màn hình mới lộ.
   Quy tắc: mọi thẻ h* và strong đặt trên nền tối của landing đều phải ép màu. */
.sgg-lp .sgg-vay__tt,.sgg-vay__tt{color:var(--vsp-kem) !important}
.sgg-lp .sgg-vay__ghi strong,.sgg-vay__ghi strong{color:var(--vsp-kem) !important}
.sgg-lp .sgg-vay__vay b,.sgg-vay__vay b{color:var(--vsp-vang) !important}
@media (max-width:768px){
  /* Bỏ mọi đường kẻ của bảng khi đã xếp thành thẻ, tránh vệt kẻ dọc thừa */
  .sgg-vay__bang,.sgg-vay__bang tr,.sgg-vay__bang th,.sgg-vay__bang td{border:0}
}

/* Sửa lỗi 12/10/2026: dòng "Ngại để lại số? Nhắn Zalo" ĐÈ LÊN dòng mô tả form.
   Form ngang (.sgg-doi) gán mọi <p> không phải tiêu đề/ghi chú vào ô lưới "mt" — chính là ô của dòng mô tả,
   nên hai phần tử chồng nhau. Thêm một hàng "zl" riêng dưới nút gửi và loại <p> này khỏi ô "mt". */
.sgg-lp.sgg-doi .sgg-lp__form{grid-template-areas:"tt tt tt tt" "mt mt mt mt" "l1 l2 l3 ." "i1 i2 i3 bt" "zl zl zl zl" "nt nt nt nt"}
.sgg-lp.sgg-doi .sgg-lp__form > p.sgg-lp__form-zalo{grid-area:zl;margin:12px 0 0;text-align:center}

/* Dải tóm tắt khi chỉ có 3 ô (15/10/2026) — Vinhomes Green Paradise.
   Lưới cố định 4 cột (máy tính) và 2 cột (điện thoại) nên 3 ô để lộ một Ô TRỐNG màu trơn,
   nhìn như lỗi hiển thị. VGP chỉ có 3 ô vì chưa khai giá và bàn giao, còn loại hình dài
   hơn 40 ký tự nên bị hàm sgg_lp_tom_tat_html bỏ qua.
   Đếm đúng số ô thật thay vì ép 4 cột. */
.sgg-lp .sgg-tomtat:has(> :last-child:nth-child(3)){grid-template-columns:repeat(3,1fr)}
.sgg-lp .sgg-tomtat:has(> :last-child:nth-child(2)){grid-template-columns:repeat(2,1fr)}
@media(max-width:640px){
  /* 2 cột: ô lẻ cuối cùng trải hết hàng, không để hở nửa hàng */
  .sgg-lp .sgg-tomtat:has(> :last-child:nth-child(3)){grid-template-columns:repeat(2,1fr)}
  .sgg-lp .sgg-tomtat > :last-child:nth-child(odd){grid-column:1 / -1}
}

/* Lưới ảnh CÙNG KHỔ VUÔNG (15/10/2026) — khối Layout căn hộ Imperia.
   10 ảnh layout đã được đệm nền trắng trong file về khổ vuông (tools/qa/dem-anh-ve-cung-kho.py)
   nên hệ "chia hàng theo tỷ lệ thật" tự chia các hàng đầy đủ thành ô bằng nhau.
   Còn một chỗ: hàng cuối lẻ (10 ảnh / 4 cột = 2 ảnh) bị nới rộng tới 1,25 cột và dồn trái,
   bỏ trống nửa phải. Với lưới toàn ảnh vuông thì không cần nới: giữ đúng 1 cột, canh giữa.
   Chỉ áp khi MỌI ô đều --tl:1, các lưới khác không đổi. */
@media(min-width:641px){
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style="--tl:1"]):not(:has(.sgg-o:not([style="--tl:1"]))){justify-content:center !important}
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style="--tl:1"]):not(:has(.sgg-o:not([style="--tl:1"]))) .sgg-o[style="--tl:1"]{
    max-width:var(--cot) !important}
}

/* Lưới ảnh PHỐI CẢNH: ảnh cùng hàng cao bằng nhau tuyệt đối (15/10/2026).
   Hệ chia hàng theo tỷ lệ thật làm hàng gần đều, nhưng ảnh nào chạm giới hạn bề rộng tối đa
   (1,25 cột) thì thấp hơn cả hàng — đo được 20px ở hàng "Sảnh cư dân" Palm River.
   Với ảnh phối cảnh, cho ô kéo cao bằng hàng và ảnh lấp kín (cắt vài px mép, không nhận ra).
   KHÔNG áp cho lưới ảnh nền trắng (.sgg-o--nguyen: mặt bằng, chứng nhận) — những ảnh đó không được cắt. */
@media(min-width:641px){
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]):not(:has(.sgg-o--nguyen)){align-items:stretch !important}
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]):not(:has(.sgg-o--nguyen)) .sgg-o[style*="--tl"]{display:flex;flex-direction:column}
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]):not(:has(.sgg-o--nguyen)) .sgg-o[style*="--tl"] > a{flex:1 1 auto;display:block;min-height:0}
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]):not(:has(.sgg-o--nguyen)) .sgg-o[style*="--tl"] > img,
  .sgg-lp.sgg-anh-luoi:has(.sgg-o[style*="--tl"]):not(:has(.sgg-o--nguyen)) .sgg-o[style*="--tl"] > a > img{
    flex:1 1 auto;height:100% !important;min-height:0;object-fit:cover !important}
}

/* Dải tóm tắt dưới H1 trên mục mở đầu NỀN SÁNG (15/10/2026, Ivy Central — khách muốn giao diện sáng).
   Bản gốc thiết kế cho nền tối (ô đen mờ, chữ kem) nên trên nền sáng thành ô xám chữ trắng không đọc được.
   Landing khác mở đầu nền tối, không khớp bộ chọn này nên không đổi. */
.sgg-lp.sgg-t-sang .sgg-tomtat{background:rgba(var(--vsp-navy-rgb),.14)}
.sgg-lp.sgg-t-sang .sgg-tomtat div{background:#fff}
.sgg-lp.sgg-t-sang .sgg-tomtat dt{color:var(--vsp-nhan)}
.sgg-lp.sgg-t-sang .sgg-tomtat dd{color:var(--vsp-xanh-dam)}
.sgg-lp.sgg-t-sang .sgg-tomtat__goi,.sgg-lp.sgg-t-sang .sgg-tomtat__goi:visited{color:#fff !important}
/* Nút viền trên nền sáng (15/10/2026, Ivy Central): bản gốc chữ kem cho nền tối → trên nền sáng gần như tàng hình */
.sgg-lp.sgg-t-sang .sgg-nut--vien .elementor-button{color:var(--vsp-xanh-dam) !important;background:#fff !important;
  border:1.5px solid rgba(var(--vsp-navy-rgb),.38) !important}
.sgg-lp.sgg-t-sang .sgg-nut--vien .elementor-button:hover{border-color:var(--vsp-xanh-dam) !important}

/* Long 22/10: bảng không xuống hàng
   Khách gửi ảnh 22/10/2026: bảng "Lịch thanh toán dự kiến", tiêu đề cột "TỶ LỆ" gãy thành "TỶ / LỆ".
   Nguyên nhân: bảng tự co (table-layout:auto) khi tổng bề rộng chữ vượt khung thì ép mọi cột về gần bề rộng
   một từ, cột chữ ngắn (tỷ lệ, số tiền, ngày, nhãn) gãy cùng cột mô tả dài. Đây là chỗ DUY NHẤT xử lý việc này:
   gộp khối Tân viết sáng 22/10 (đã đẩy server, trước nằm giữa file) và phần Long thêm (cột ngắn theo tên cột,
   nhãn thẻ điện thoại 13px). Kiểm lại bằng: node tools/qa/quet-bang-gay-chu.js (11 landing, 8 cỡ màn). */
/* Lịch thanh toán (shortcode sgg_tinh_gia): cột Tỷ lệ và Số tiền chỉ rộng vừa chữ, cột Mốc nhận phần còn lại */
.sgg-tg__lich .sgg-tg__bang th{white-space:nowrap}
.sgg-tg__lich .sgg-tg__bang th:nth-child(n+2),.sgg-tg__lich .sgg-tg__bang td:nth-child(n+2){width:1%;white-space:nowrap}
@media(max-width:768px){.sgg-tg__lich .sgg-tg__bang thead th{letter-spacing:.02em}}
/* Bảng nội dung trên màn rộng: tiêu đề cột một hàng, cột nhãn đầu tiên tối thiểu 11.5em, ô khác 5.5em (tính cả đệm ô).
   769–1024px chật hơn (bảng 4–5 cột có tiêu đề dài): cho tiêu đề xuống hàng, mức tối thiểu nhỏ hơn để không lố khung. */
@media(min-width:1025px){
  .sgg-lp .sgg-txt thead th{white-space:nowrap}
  .sgg-lp .sgg-txt tbody td{min-width:5.5em}
  .sgg-lp .sgg-txt tbody td:first-child{min-width:11.5em}
}
@media(min-width:769px) and (max-width:1024px){
  .sgg-lp .sgg-txt tbody td{min-width:4.5em}
  .sgg-lp .sgg-txt tbody td:first-child{min-width:9.5em}
}
/* Cột giá trị ngắn theo tên cột (data-label do engine gắn từ tiêu đề cột): luôn một hàng, cả ô lẫn tiêu đề.
   Bảng tự co ép những cột này nhỏ hơn chữ ở 820–1024px vì cột mô tả bên cạnh dài hơn nhiều
   ("Khoảng 15%", "20/01/2026 – 02/02/2026" Gladia, "studioMilou (Singapore)" Imperia, tiêu đề "Thông thủy" Palm River).
   Thêm cột mới có giá trị ngắn thì thêm tên vào cả hai danh sách. */
.sgg-lp .sgg-txt tbody td:is([data-label="Tim tường"],[data-label="Thông thủy"],[data-label="Diện tích tim tường"],
  [data-label="Diện tích thông thủy"],[data-label="Tỷ trọng"],[data-label="Tỷ trọng dự kiến"],[data-label="Đơn vị"]),
.sgg-lp .sgg-txt tbody td:first-child:is([data-label="Thời điểm"],[data-label="Ngày"]){white-space:nowrap}
.sgg-lp .sgg-txt table:has(tbody td:nth-child(2):is([data-label="Tim tường"],[data-label="Thông thủy"],[data-label="Tỷ trọng"],[data-label="Đơn vị"])) thead th:nth-child(2),
.sgg-lp .sgg-txt table:has(tbody td:nth-child(3):is([data-label="Tim tường"],[data-label="Thông thủy"],[data-label="Tỷ trọng"],[data-label="Đơn vị"])) thead th:nth-child(3),
.sgg-lp .sgg-txt table:has(tbody td:nth-child(4):is([data-label="Tim tường"],[data-label="Thông thủy"],[data-label="Tỷ trọng"],[data-label="Đơn vị"])) thead th:nth-child(4){white-space:nowrap}
/* Imperia, bảng Phương thức thanh toán: cột cuối là tiến độ đóng tiền dài ~100 ký tự nhưng bị giữ một hàng
   như cột giá, làm bảng lố khung 62–269px ở 820–1024px và ép cột Phương thức thành 4 hàng */
body.sgg-lp-imperia-sensa .sgg-lp .sgg-txt table.sgg-bang-gia:not(:has(th:nth-child(4))) tbody td:last-child{white-space:normal}
/* Thẻ trên điện thoại: cột nhãn tối thiểu 42%, được giãn tới khi cột giá trị còn 46% để nhãn 3–4 chữ không gãy.
   Nhãn 12,5px → 13px theo quy chuẩn chữ ≥ 13px trên điện thoại. */
@media(max-width:768px){
  .sgg-lp .sgg-txt tbody td{grid-template-columns:minmax(42%,max-content) minmax(46%,1fr)}
  .sgg-lp .sgg-txt tbody td::before{letter-spacing:.01em;font-size:13px}
}

/* Long 23/10: tiêu đề khối tin tức — khách note 23/10/2026 (ảnh Ivy Central):
   1) "Tin tức <dự án>" và "Bài viết khác về <dự án>" phải bằng đúng H2 mục (.sgg-h2 .elementor-heading-title):
      cùng font, cỡ clamp(23px,2.3vw,33px), đậm 800, cao dòng 1.3, giãn chữ .005em; điện thoại theo đúng luật H2 mục.
      Trước: 22px Inter (Tin tức) và 16px (Bài viết khác, căn trái).
   2) "Bài viết khác" cách lưới thẻ phía trên 20px (trước 0px: margin 28px cũ bị style h2 của theme ăn mất).
   Màu theo đúng màu H2 mục của section: nền tối = --vsp-hong, nền sáng (sgg-t-sang) = --vsp-xanh, mặc định = --sgg-navy.
   Trước đó "Tin tức" trên nền sáng (Ivy) đang dính màu heading Astra rgb(31,41,55) — bẫy 9h.
   "html body" để thắng luật màu nội tuyến của engine (body .sgg-lp.sgg-t-sang .sgg-tin .sgg-tin__phu, Ivy). */
.sgg-lp .sgg-tin .sgg-tin__tt,
.sgg-lp .sgg-tin .sgg-tin__phu{
  font-family:var(--e-global-typography-primary-font-family,Roboto),Montserrat,sans-serif;
  font-size:clamp(23px,2.3vw,33px);line-height:1.3;font-weight:800;letter-spacing:.005em;
  text-transform:uppercase;text-align:center;
}
.sgg-lp .sgg-tin .sgg-tin__tt{margin:0 0 18px !important}
.sgg-lp .sgg-tin .sgg-tin__phu{margin:20px 0 10px !important}
html body .sgg-lp .sgg-tin :is(.sgg-tin__tt,.sgg-tin__phu){color:var(--sgg-navy) !important}
html body .sgg-lp.sgg-toi .sgg-tin :is(.sgg-tin__tt,.sgg-tin__phu){color:var(--vsp-hong) !important}
html body .sgg-lp.sgg-t-sang .sgg-tin :is(.sgg-tin__tt,.sgg-tin__phu){color:var(--vsp-xanh) !important}
@media(max-width:768px){
  .sgg-lp .sgg-tin .sgg-tin__tt,.sgg-lp .sgg-tin .sgg-tin__phu{font-size:23px;line-height:1.28;letter-spacing:0}
  /* "Tin tức" có --n (engine) như H2 mục có lớp sgg-dai-N: co cho vừa một hàng, tối đa 23px */
  .sgg-lp .sgg-tin .sgg-tin__tt{font-size:min(23px,calc((100vw - 36px) / (var(--n,28) * .62)));line-height:1.25}
}
@media(max-width:420px){
  /* "Bài viết khác" không có --n: theo cỡ H2 mục gốc ở màn nhỏ (21px), tên dài thì xuống hai hàng */
  .sgg-lp .sgg-tin .sgg-tin__phu{font-size:21px}
}
