/* Trang phụ gptgroup.vn (bảng giá, công trình) — dùng chung style.css, chỉ thêm phần riêng */
.tp-vet{font-size:13.5px; color:var(--ink-faint); padding-top:18px; padding-bottom:4px}
.tp-vet a{color:var(--ink-soft); text-decoration:none} .tp-vet a:hover{color:var(--cherry)}
.tp-dau{padding:clamp(28px,5vw,56px) 0 clamp(20px,3vw,32px)}
.tp-dau h1{font-size:clamp(30px,4.6vw,50px); font-weight:800; margin-top:14px}
.tp-dau .lead{font-size:clamp(16px,1.9vw,18.5px); color:var(--ink-soft); margin-top:16px; max-width:62ch}
.tp-nut{display:flex; flex-wrap:wrap; gap:12px; margin-top:26px}
.tp-noi{display:flex; gap:8px; align-items:center; color:var(--cherry); font-weight:600; margin-top:12px}
.tp-blk{padding-top:clamp(20px,3vw,36px)}
.tp-h2{font-size:clamp(22px,3vw,30px); font-weight:800; margin:44px 0 10px}
.tp-blk .wrap > .tp-h2:first-child{margin-top:0}
.tp-p{color:var(--ink-soft); max-width:75ch; margin-bottom:18px}
.tp-p.nho{font-size:14px; color:var(--ink-faint)}
.tp-p a{color:var(--cherry); font-weight:600}
.tp-goi{margin-top:30px}
.tp-cta{padding:0 0 clamp(64px,8vw,96px)}

/* bảng */
.tp-bang{overflow-x:auto; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:14px}
.tp-bang table{width:100%; border-collapse:collapse; font-size:15px; min-width:560px}
.tp-bang th{background:var(--cherry); color:#fff; text-align:left; padding:12px 14px; font-weight:700; font-size:14px}
.tp-bang td{padding:12px 14px; border-top:1px solid var(--line-soft); vertical-align:top; color:var(--ink-soft)}
.tp-bang td b{color:var(--ink)}
.tp-bang td.so{font-weight:800; color:var(--cherry); white-space:nowrap}
.tp-bang td small{display:block; font-size:12.5px; font-weight:500; color:var(--ink-faint)}
.tp-bang td.hot{background:var(--gold-bg)}

/* công trình */
.tp-pj-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
.tp-pj-grid.ba{grid-template-columns:repeat(3,1fr)}
.tp-pj{position:relative; display:block; border-radius:16px; overflow:hidden; background:#222; aspect-ratio:16/10; color:#fff; text-decoration:none}
.tp-pj img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.tp-pj:hover img{transform:scale(1.05)}
.tp-pj::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(15,8,7,.88) 0%,rgba(15,8,7,.25) 50%,transparent 70%)}
.tp-pj .pc{position:absolute; left:0; right:0; bottom:0; padding:20px; z-index:1}
.tp-pj .pt{font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-2)}
.tp-pj h2,.tp-pj h3{font-size:clamp(17px,2vw,22px); margin-top:6px}
.tp-pj p{font-size:14px; color:rgba(255,255,255,.8); margin-top:4px}
.tp-pj .cnt{position:absolute; top:14px; right:14px; z-index:1; background:rgba(0,0,0,.55); border-radius:999px; padding:5px 11px; font-size:12.5px; display:flex; gap:6px; align-items:center}
.tp-pj-dau{display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(24px,4vw,48px); align-items:center}
.tp-bia{width:100%; height:auto; max-height:min(74vh,660px); object-fit:cover; border-radius:18px; box-shadow:var(--shadow-lg)}
.tp-anh-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px}
.tp-anh{display:block; border-radius:10px; overflow:hidden; aspect-ratio:1; background:var(--surface-2)}
.tp-anh img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease}
.tp-anh:hover img{transform:scale(1.06)}

@media (max-width:900px){
  .tp-pj-dau{grid-template-columns:1fr}
  .tp-pj-grid.ba{grid-template-columns:1fr 1fr}
  .tp-anh-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:600px){
  .tp-pj-grid,.tp-pj-grid.ba{grid-template-columns:1fr}
  .tp-anh-grid{grid-template-columns:1fr 1fr; gap:8px}
}
