/* ============================================================
   SUNLANDSG PROJECT TEMPLATE
   Sao chép CSS nội dung từ sunlandsg_project_standard_template_complete.html.
   Header/footer của trang lấy từ theme (header.php/footer.php), không dùng
   header/footer riêng của mẫu — nên mọi rule được scope trong .sl-project-content
   để không ảnh hưởng đến giao diện chung của theme.
   Bổ sung: .sl-location-map.has-map hiển thị ảnh bản đồ thật thay placeholder
   vẽ bằng CSS (mẫu ghi chú: tích hợp bản đồ khi đưa vào WordPress), và
   .sl-form-notice cho trạng thái gửi form của backend.
   ============================================================ */

.sl-project-content{
  --sl-brand:#012B2E;
  --sl-brand-dark:#0F4A49;
  --sl-brand-mid:#2F6F6A;
  --sl-accent:#E2AF81;
  --sl-surface:#EAF5F3;
  --sl-white:#fff;
  --sl-black:#050505;
  --sl-text:#111;
  --sl-muted:#cfcfcf;
  --sl-line:rgba(255,255,255,.18);
  background:#fff;
  color:var(--sl-text);
  font-family:"Arial Narrow",var(--sl-font-body);
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

/*
 * Theme cũ cũng từng dùng các class .sl-about, .sl-stats, .sl-amenities và
 * .sl-similar cho trang bất động sản. Các rule đó đặt max-width:1200px và
 * margin:auto, khiến trang dự án mới xuất hiện hai dải trắng hai bên.
 * Reset ngay trong phạm vi template dự án để giữ nguyên CSS của header/footer.
 */
.sl-project-content .sl-stats,
.sl-project-content > .sl-about,
.sl-project-content > .sl-amenities,
.sl-project-content > .sl-similar{
  width:100%;
  max-width:none;
  margin:0;
}
.sl-project-content .sl-stats{padding:0}
.sl-project-content > .sl-about{padding:0}
.sl-project-content > .sl-amenities li::before{content:none}
/*
 * :where() giữ specificity bằng 0 cho phần .sl-project-content, để các rule
 * reset này có đúng "trọng số" như bản gốc (img{}, a{}, button{} không class)
 * — nếu không, chúng sẽ thắng nhầm các rule 1-class như .sl-arrow, .sl-back
 * (ví dụ: .sl-project-content button có specificity cao hơn .sl-arrow, làm
 * mất font-size 68px của nút chuyển ảnh; .sl-project-content a làm mất màu
 * trắng của nút "Quay lại").
 */
:where(.sl-project-content,.sl-project-content *){box-sizing:border-box}
:where(.sl-project-content) img{display:block;max-width:100%}
:where(.sl-project-content) a{color:inherit}
:where(.sl-project-content) button,:where(.sl-project-content) input,:where(.sl-project-content) textarea{font:inherit}

/* HERO GALLERY */
.sl-gallery{
  height:730px;
  background:var(--sl-brand-dark);
  position:relative;
  overflow:hidden;
}
.sl-gallery:before,.sl-gallery:after{
  content:"";
  position:absolute;
  inset:0 0 0 auto;
  width:11%;
  z-index:3;
  background:linear-gradient(90deg,transparent,rgba(0,0,0,.78));
  pointer-events:none;
}
.sl-gallery:before{
  left:0;
  right:auto;
  transform:scaleX(-1);
}
.sl-slide{
  position:absolute;
  inset:0;
  width:78%;
  height:100%;
  margin:auto;
  left:0;
  right:0;
  object-fit:cover;
  object-position:center;
  background:var(--sl-brand-dark);
  opacity:0; /* hero */
  transition:opacity 1.1s ease;
  z-index:1;
}
.sl-slide.is-active{opacity:1}
.sl-gallery #heroSlides picture{display:contents}
.sl-hero-video{object-fit:cover;background:var(--sl-brand-dark)}
.sl-hero-video.has-error{pointer-events:none}
/* Dùng cho cả <button> (mở khung nhúng) và <a> (mở tab mới). Anchor mặc định là
   inline và có gạch chân, nên phải ép về cùng hộp hiển thị với button. */
.sl-immersive-trigger{
  position:absolute;
  z-index:7;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  display:inline-block;
  padding:15px 24px;
  border:1px solid var(--sl-accent);
  background:var(--sl-accent);
  color:var(--sl-brand);
  font:700 12px/1.4 Arial,sans-serif;
  letter-spacing:1.6px;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  transition:.25s;
}
a.sl-immersive-trigger:hover,
a.sl-immersive-trigger:focus{background:#fff;border-color:#fff;color:var(--sl-brand);text-decoration:none}
.sl-immersive-trigger[hidden]{display:none}
.sl-immersive-trigger:hover:not(:disabled){background:#fff;border-color:#fff /* button */}
.sl-immersive-trigger:disabled{
  border-color:rgba(255,255,255,.45); /* button */
  background:rgba(1,43,46,.72);
  color:rgba(255,255,255,.72); /* button */
  cursor:not-allowed;
}
.sl-immersive{
  position:fixed;
  z-index:99999;
  inset:0;
  display:grid;
  grid-template-rows:auto 1fr;
  background:#001c1e;
}
.sl-immersive[hidden]{display:none}
.sl-immersive-toolbar{
  min-height:58px;
  display:flex;
  align-items:center;
  gap:20px;
  padding:10px 18px;
  background:var(--sl-brand);
  color:#fff; /* surface-dark */
}
.sl-immersive-toolbar strong{margin-right:auto;font-size:13px;letter-spacing:1.4px}
.sl-immersive-toolbar a{color:#fff; /* surface-dark */ text-decoration:none;font-size:11px;letter-spacing:1px;border-bottom:1px solid currentColor}
.sl-immersive-toolbar button{width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.sl-immersive iframe{width:100%;height:100%;border:0;background:#001c1e}
.sl-back {
  display: none !important;
}
.sl-arrows{
  position:absolute;
  right:3.2%;
  top:42%;
  z-index:6;
  color:#fff; /* surface-dark */
  display:grid;
  gap:10px;
}
.sl-arrow{
  padding:0;
  border:0;
  background:transparent;
  color:#fff; /* button */
  cursor:pointer;
  font:200 68px/1 Arial;
}

/* SUMMARY */
.sl-summary{
  min-height:300px;
  display:grid;
  grid-template-columns:minmax(280px,32%) 1fr;
  background:var(--sl-brand-dark);
  color:#fff; /* surface-dark */
  position:relative;
}
.sl-title{
  padding:36px 4vw;
  background:var(--sl-brand-dark);
  position:relative;
}
.sl-status{
  color:var(--sl-accent);
  font-size:12px;
  font-weight:600;
  letter-spacing:1.5px;
}
.sl-title h1{
  font:600 clamp(24px,2.2vw,34px)/1.28 Arial;
  margin:14px 0 0;
  text-transform:uppercase;
  color:#fff; /* surface-dark */
}
.sl-title small{
  display:block;
  margin-top:10px;
  color:rgba(255,255,255,.62); /* surface-dark */
  letter-spacing:1.5px;
  line-height:1.5;
}
.sl-info{
  padding:50px 3vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}
.sl-price{
  grid-area:price;
  position:static;
  margin:0;
  padding-top:8px;
  font:300 clamp(28px,3vw,42px)/1.28 Arial;
  color:#fff; /* surface-dark */
  overflow-wrap:anywhere;
}
.sl-stats{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:22px 28px;
  min-width:0;
  width:100%;
}
.sl-stat{
  border-left:1px solid var(--sl-accent);
  padding-left:18px;
  box-sizing:border-box;
  min-width:0;
}
.sl-stat b{
  font:300 clamp(24px,2.5vw,44px)/1.2 Arial;
  display:block;
  margin:0 0 6px;
  white-space:nowrap;
  overflow:visible;
}
.sl-stat span{
  display:block;
  font-size:11px;
  line-height:1.4;
  letter-spacing:0.8px;
  overflow-wrap:break-word;
  word-break:break-word;
}
.sl-gallery-link{
  display:inline-flex;
  margin-top:0;
  color:var(--sl-brand);
  background:var(--sl-accent);
  border:1px solid var(--sl-accent);
  padding:16px 28px;
  text-decoration:none;
  letter-spacing:2px;
  font-size:12px;
  font-weight:600;
  transition:.25s;
}
.sl-gallery-link:hover{
  color:var(--sl-brand);
  background:#fff;
  border-color:#fff; /* button */
}
.sl-title-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.sl-title-actions .sl-gallery-link{margin:0;padding:13px 18px}
.sl-title-actions .sl-gallery-link--secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.72)}
.sl-title-actions .sl-gallery-link--secondary:hover{background:#fff;color:var(--sl-brand)}

/* ABOUT */
.sl-about{
  display:grid;
  grid-template-columns:61% 39%;
  min-height:900px;
  background:var(--sl-brand-dark);
}
.sl-about-photo{
  grid-column:2;
  position:relative;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  min-height:900px;
  background-color:var(--sl-brand-dark);
}
.sl-about-photo img{display:block;width:100%;height:100%;min-height:inherit;object-fit:cover}
.sl-about--text-only{display:block;min-height:0}
.sl-about--text-only .sl-copy{border-radius:0;max-width:none}
.sl-about-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  padding:30px 5%;
  background:var(--sl-brand-dark);
}
.sl-about-actions a{
  min-width:180px;
  padding:17px 22px;
  border:1px solid var(--sl-accent);
  background:var(--sl-accent);
  color:var(--sl-brand);
  text-decoration:none;
  text-align:center;
  font:700 13px Arial;
  letter-spacing:1px;
  transition:.25s;
}
.sl-about-actions a:hover{
  background:#fff;
  border-color:#fff; /* button */
  color:var(--sl-brand);
}
.sl-copy{
  grid-column:1;
  grid-row:1;
  padding:80px 7vw 100px 10vw;
  background:var(--sl-brand);
  border-radius:0 180px 0 0;
  color:#ddd;
}
.sl-kicker{
  font-size:12px;
  letter-spacing:4px;
  text-transform:uppercase;
}
.sl-copy h2,.sl-amenities h2,.sl-model-home h2,.sl-contact h2,.sl-similar h2{
  font:500 clamp(36px,4vw,61px)/1.22 Georgia;
  color:inherit;
  text-transform:uppercase;
  margin:28px 0 42px;
}
.sl-copy p{
  font-family:Arial,sans-serif;
  font-size:16px;
  line-height:1.9;
  color:#d6dfdd;
  white-space:pre-line;
}

/* PHOTO GRID */
.sl-photo-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  height:clamp(620px,62vw,900px);
  gap:7px;
  background:var(--sl-brand-dark);
  padding:7px;
}
.sl-photo-grid img{
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  object-fit:cover;
  object-position:center;
  background:var(--sl-brand-dark);
}
.sl-photo-stack{
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:7px;
}

/* AMENITIES */
.sl-amenities{
  min-height:760px;
  padding:100px 8vw 90px;
  color:#fff; /* surface-dark */
  background-color:var(--sl-brand-dark);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  position:relative;
  isolation:isolate;
}
.sl-amenities::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(1,43,46,.96) 0%,rgba(1,43,46,.84) 54%,rgba(1,43,46,.64) 100%);
}
.sl-amenities-media{position:absolute;inset:0;z-index:-2}
.sl-amenities-media img{display:block;width:100%;height:100%;object-fit:cover}
.sl-amenities-content{position:relative;z-index:1}
.sl-amenities ul{
  list-style:none;
  padding:0;
  columns:3;
  column-gap:70px;
}
.sl-amenities li{
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
  font:14px Arial;
  break-inside:avoid;
}

/* SIMILAR */
.sl-similar{
  padding:110px 5vw 95px;
  background:#fff;
}
.sl-similar-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.sl-card{text-decoration:none}
.sl-card img{
  width:100%;
  aspect-ratio:16/10;
  height:auto;
  object-fit:cover;
  object-position:center;
  background:var(--sl-surface);
}
.sl-card h3{
  font:400 23px Georgia;
  color:#111;
  margin:18px 0 8px;
}
.sl-card p{
  font:13px Arial;
  color:#555;
}

/* FIX 2026-07: .sl-contact chỉ có 2 dòng padding responsive (L481,692 cũ) —
   không background, không color, #leadForm không có display:grid, và các
   input/textarea/button trong form không có class nên hiện theo mặc định
   trình duyệt. Kết quả: .sl-contact-body/.sl-lead-select vốn viết sẵn cho nền
   tối (chữ gần trắng) lại nằm trên nền trắng mặc định → gần như không đọc
   được; và khung form vỡ layout, viền mảnh không đồng bộ theme. */
.sl-project-content .sl-contact {
  padding: 90px 5vw 100px;
  background: var(--sl-brand-dark, #00332f);
  color: #fff; /* surface-dark */
  text-align: center;
}

.sl-project-content .sl-contact-header {
  max-width: 680px;
  margin: 0 auto 36px;
}

.sl-project-content .sl-contact .sl-kicker {
  color: var(--sl-accent, #e2af81);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}

.sl-project-content .sl-contact h2 {
  color: #fff !important; /* surface-dark */
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 700;
  line-height: 1.28;
  margin: 0 0 16px;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}

.sl-project-content .sl-contact-body {
  color: rgba(255, 255, 255, 0.85) !important; /* surface-dark */
  font-family: var(--font-body, Arial, sans-serif);
  font-size: 15px;
  line-height: 1.65;
  margin: 0 auto;
}

.sl-project-content #leadForm {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 18px;
  max-width: 720px;
  margin: 0 auto;
  text-align: left;
}

.sl-project-content #leadForm .full-width,
.sl-project-content .sl-lead-options {
  grid-column: 1 / -1;
}

.sl-project-content .sl-form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sl-project-content #leadForm label,
.sl-project-content .sl-lead-select span {
  display: block;
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sl-accent, #e2af81) !important; /* surface-dark */
}

.sl-project-content #leadForm label .required {
  color: #f87171;
  margin-left: 2px;
}

.sl-project-content #leadForm input,
.sl-project-content #leadForm textarea,
.sl-project-content #leadForm select,
.sl-project-content .sl-lead-select select {
  width: 100%;
  padding: 14px 18px;
  border: 1px solid rgba(226, 175, 129, 0.35);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07) !important;
  color: #ffffff !important; /* surface-dark */
  font-family: var(--font-body, Arial, sans-serif);
  font-size: 14px;
  line-height: 1.4;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  transition: all 0.2s ease;
}

.sl-project-content #leadForm select,
.sl-project-content .sl-lead-select select {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23e2af81' d='M6 8 0 0h12z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 12px 8px !important;
  padding-right: 40px !important;
}

.sl-project-content #leadForm input::placeholder,
.sl-project-content #leadForm textarea::placeholder {
  color: rgba(255, 255, 255, 0.55) !important; /* surface-dark */
}

.sl-project-content #leadForm select option,
.sl-project-content .sl-lead-select select option {
  background: #ffffff !important;
  color: #111111 !important;
}

.sl-project-content #leadForm textarea {
  min-height: 110px;
  resize: vertical;
}

.sl-project-content #leadForm input:focus,
.sl-project-content #leadForm textarea:focus,
.sl-project-content #leadForm select:focus,
.sl-project-content .sl-lead-select select:focus {
  outline: none;
  border-color: var(--sl-accent, #e2af81) !important;
  box-shadow: 0 0 0 3px rgba(226, 175, 129, 0.25);
  background: rgba(255, 255, 255, 0.12) !important; /* surface-dark */
}

.sl-project-content #leadForm button#submitLabel {
  grid-column: 1 / -1;
  margin-top: 12px;
  padding: 18px 28px;
  border: 1px solid var(--sl-accent, #e2af81);
  border-radius: 6px;
  background: var(--sl-accent, #e2af81);
  color: var(--sl-brand-dark, #00332f) !important;
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
  transition: all 0.25s ease;
}

.sl-project-content #leadForm button#submitLabel:hover {
  background: #ffffff; /* button */
  border-color: #ffffff; /* button */
  color: var(--sl-brand-dark, #00332f) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.3);
}

.sl-project-content .sl-form-notice {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 14px;
}
.sl-project-content .sl-form-notice.is-success { color: #6ee7b7; }
.sl-project-content .sl-form-notice.is-error { color: #fca5a5; }

@media(max-width:1120px){
  .sl-summary{grid-template-columns:1fr}
  .sl-info{
    padding-top:24px;
  }
  .sl-about{grid-template-columns:1fr}
  .sl-about-photo{
    grid-column:1;
    grid-row:1;
    min-height:560px;
  }
  .sl-copy{
    grid-column:1;
    grid-row:2;
    border-radius:0;
  }
  .sl-model-home{grid-template-columns:1fr}
  .sl-model-image{min-height:520px}
}

@media(max-width:800px){
  .sl-gallery{height:520px}
  .sl-slide{width:100%}
  .sl-back{top:130px;font-size:11px}
  .sl-immersive-trigger{bottom:18px;width:calc(100% - 48px);max-width:420px}
  .sl-immersive-toolbar{gap:10px;padding:8px 12px}
  .sl-immersive-toolbar strong{font-size:11px}
  .sl-immersive-toolbar a{display:inline-flex;align-items:center;padding:6px 10px;font-size:10px;white-space:nowrap;background:var(--sl-accent);color:var(--sl-brand);border-radius:3px;text-decoration:none}
  .sl-summary{min-height:0}
  .sl-title,.sl-info,.sl-copy{padding:48px 28px}
  .sl-info{
    gap:28px;
  }
  .sl-stats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:18px 22px}
  .sl-stat{padding:10px 0 10px 18px}
  .sl-about-photo{min-height:520px}
  .sl-about-actions{
    flex-direction:column;
    padding:22px;
  }
  .sl-about-actions a{width:100%;max-width:520px}
  .sl-photo-grid{
    height:auto;
    grid-template-columns:1fr;
    gap:7px;
  }
  .sl-photo-grid>img{height:360px}
  .sl-photo-stack{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:none;
    gap:7px;
  }
  .sl-photo-stack img{height:240px}
  .sl-amenities{padding:75px 28px}
  .sl-amenities ul{columns:1}
  .sl-model-copy{padding:70px 28px}
  .sl-contact{padding:80px 24px}
  .sl-contact form,.sl-similar-grid{grid-template-columns:1fr}
  .sl-contact textarea,.sl-contact button{grid-column:1}
  .sl-similar{padding:80px 24px}
  .sl-card img{height:auto}
}


/* SUNLANDSG THEME ALIGNMENT & REUSABLE PROJECT SECTIONS */
:root{
  --font-heading:var(--sl-font-heading);
  --font-body:var(--sl-font-body);
  --sl-line-light:#D4E3E1;
  --sl-text-body:#334B4B;
  --sl-muted-body:#667B7B;
  --sl-section-space:clamp(56px,6vw,96px);
  --sl-container:1320px;
}
.sl-project-content{font-family:var(--font-body)}
.sl-title h1,.sl-copy h2,.sl-amenities h2,.sl-model-home h2,.sl-contact h2,.sl-similar h2,.sl-card h3{
  font-family:var(--font-heading);
}
.sl-title h1{font-weight:700}
.sl-price,.sl-stat b{font-family:var(--font-heading)}
.sl-kicker,.sl-status,.sl-stat span{font-family:var(--font-body);font-weight:600}

/* Tighter hierarchy without changing the original summary layout */
.sl-summary{min-height:250px}
.sl-title{padding:42px 4.8vw;display:flex;flex-direction:column;justify-content:center}
.sl-info{padding:42px 4vw 34px;justify-content:center}
.sl-price{padding-top:3px;font-weight:500}
.sl-stat{min-height:86px;padding-left:22px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:12px;align-content:center}
.sl-stat-icon{grid-row:1/3;width:28px;height:28px;color:var(--sl-accent);align-self:center}
.sl-stat b{grid-column:2;margin-bottom:7px}
.sl-stat span{grid-column:2}
.sl-about-actions{padding:22px 5%;border-top:1px solid rgba(255,255,255,.1)}
.sl-about-actions a,.sl-gallery-link,.sl-model-button{display:inline-flex;align-items:center;justify-content:center;gap:12px}
.sl-about-actions a::after,.sl-gallery-link::after,.sl-model-button::after{content:"→";font-size:17px;line-height:1}
.sl-about-actions a[hidden],.sl-gallery-link[hidden],.sl-model-button[hidden]{display:none!important}
.sl-model-button.is-disabled,.sl-about-actions a.is-disabled{background:rgba(0,0,0,.4);border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.45);pointer-events:none;cursor:not-allowed}
.sl-about-actions{flex-wrap:wrap}
.sl-gallery-link{margin-top:2px}

.sl-content-section{padding:var(--sl-section-space) 0}
.sl-section-inner{width:min(var(--sl-container),calc(100% - 10vw));margin:auto}
.sl-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,500px);gap:clamp(40px,7vw,110px);align-items:end;margin-bottom:52px}
.sl-section-heading h2,.sl-location h2{
  margin:20px 0 0;
  color:var(--sl-brand);
  font:700 clamp(34px,4.4vw,62px)/1.22 var(--font-heading);
  letter-spacing:-.035em;
  text-transform:uppercase;
}
.sl-section-heading p,.sl-location-copy>p{margin:0;color:var(--sl-muted-body);font-size:17px;line-height:1.75}
.sl-icon{width:25px;height:25px;display:inline-flex;flex:0 0 auto;color:inherit}
.sl-icon svg{width:100%;height:100%;display:block}

/* USP */
.sl-usp{background:var(--sl-surface)}
.sl-usp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--sl-line-light);border-left:1px solid var(--sl-line-light)}
.sl-usp-card{min-height:310px;padding:34px 28px;background:#fff;border-right:1px solid var(--sl-line-light);border-bottom:1px solid var(--sl-line-light);display:flex;flex-direction:column}
.sl-usp-number{color:var(--sl-accent);font:700 13px/1 var(--font-heading);letter-spacing:.14em}
.sl-usp-icon{width:44px;height:44px;margin:34px 0 28px;color:var(--sl-brand-mid)}
.sl-usp-card h3{margin:0 0 14px;color:var(--sl-brand);font:700 20px/1.32 var(--font-heading)}
.sl-usp-card p{margin:0;color:var(--sl-muted-body);font-size:15px;line-height:1.7}

/* Lifestyle heading, original photo grid remains unchanged */
.sl-lifestyle{padding-bottom:50px;background:#fff}
.sl-lifestyle-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.sl-lifestyle-tag{display:inline-flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid var(--sl-line-light);color:var(--sl-brand);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.sl-lifestyle-tag .sl-icon{width:18px;height:18px;color:var(--sl-brand-mid)}
.sl-photo-grid{padding-top:7px}

/* Location */
.sl-location{display:grid;grid-template-columns:50% 50%;padding:0;background:#fff;min-height:680px;align-items:center}
.sl-location-map{min-height:680px;position:relative;display:grid;place-items:center;padding:0;background:
  linear-gradient(rgba(1,43,46,.08) 1px,transparent 1px),
  linear-gradient(90deg,rgba(1,43,46,.08) 1px,transparent 1px),
  radial-gradient(circle at 50% 45%,rgba(226,175,129,.28),transparent 28%),
  var(--sl-surface);
  background-size:56px 56px,56px 56px,auto,auto;
  color:var(--sl-brand);text-align:center
}
.sl-location-map.has-map{padding:0;background:var(--sl-surface)}
.sl-location-map.has-map::before,.sl-location-map.has-map::after{display:none}
.sl-location-map.has-map img{width:100%;height:100%;object-fit:cover;object-position:center}
.sl-location-copy{padding:70px 5vw 70px 60px;display:flex;flex-direction:column;justify-content:center;min-width:0}

/* FIX 2026-07: #connectionGrid render bằng JS (<article class="sl-connection">
   icon+h3+p) nhưng chưa từng có CSS base — hiện theo mặc định trình duyệt
   (margin h3/p rời rạc, icon 25px dính sát chữ, không có cột) → layout xô lệch. */
.sl-project-content .sl-connection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px;margin-top:32px}
.sl-project-content .sl-connection{display:flex;flex-direction:column;gap:10px}
.sl-project-content .sl-connection .sl-icon{color:var(--sl-brand-mid)}
.sl-project-content .sl-connection h3{margin:0;color:var(--sl-brand);font:700 16px/1.45 var(--font-heading,var(--sl-font-heading));letter-spacing:.01em;text-transform:uppercase}
.sl-project-content .sl-connection p{margin:0;color:var(--sl-muted-body,#5b6b6a);font-size:14px;line-height:1.6}

/* Products & layout */
.sl-products{background:#fff}
.sl-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.sl-product-card{min-height:350px;border:1px solid var(--sl-line-light);display:flex;flex-direction:column;background:#fff;transition:.25s;text-decoration:none;overflow:hidden}
.sl-product-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(1,43,46,.1)}
.sl-product-card:not(.is-linked):hover{transform:none;box-shadow:none}
.sl-product-image{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--sl-surface)}
.sl-product-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.sl-product-card.is-linked:hover .sl-product-image img{transform:scale(1.035)}
.sl-product-content{display:flex;flex:1;flex-direction:column;padding:28px 32px 30px}
.sl-product-card .sl-icon{width:36px;height:36px;color:var(--sl-brand-mid);margin-bottom:24px}
.sl-product-card h3{margin:0;color:var(--sl-brand);font:700 22px/1.32 var(--font-heading)}
.sl-product-meta{display:block;margin:12px 0 18px;color:var(--sl-accent);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.sl-product-card p{margin:0;color:var(--sl-muted-body);line-height:1.7}
.sl-product-action{display:block;margin-top:auto;padding-top:24px;color:var(--sl-brand-mid);font-size:12px;font-weight:700;letter-spacing:.1em}
.sl-product-action.is-disabled{color:#98a9a7}
.sl-data-note{margin:26px 0 0;padding-left:18px;border-left:3px solid var(--sl-accent);color:var(--sl-muted-body);font-size:13px}

/* ============================================================
   REDESIGN: .sl-model-home (Trải nghiệm Không gian sống / Nhà mẫu)
   ============================================================ */
.sl-project-content .sl-model-home {
  display: grid;
  grid-template-columns: 52% 48%;
  background: var(--sl-brand-dark, #00332f);
  color: #fff; /* surface-dark */
  min-height: 640px;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.sl-project-content .sl-model-image {
  min-height: 640px;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}
.sl-project-content .sl-model-image img{display:block;width:100%;height:100%;object-fit:cover}

.sl-project-content .sl-model-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 51, 47, 0.4) 0%, transparent 60%);
  pointer-events: none;
}

.sl-project-content .sl-model-copy {
  padding: 80px 6vw 80px 5vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

.sl-project-content .sl-model-copy .sl-kicker {
  color: var(--sl-accent, #e2af81);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.sl-project-content .sl-model-copy h2 {
  color: #fff !important; /* surface-dark */
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: clamp(30px, 3.8vw, 50px);
  font-weight: 700;
  line-height: 1.28;
  margin: 0 0 20px;
  text-transform: uppercase;
  letter-spacing: -0.02em;
}

.sl-project-content .sl-model-copy p {
  color: rgba(255, 255, 255, 0.88) !important; /* surface-dark */
  font-family: var(--font-body, Arial, sans-serif);
  font-size: 15.5px;
  line-height: 1.7;
  margin: 0 0 24px;
  max-width: 620px;
}

.sl-project-content .sl-model-secondary {
  color: rgba(255, 255, 255, 0.75) !important; /* surface-dark */
  font-size: 14.5px;
  line-height: 1.6;
  margin-top: -12px;
  margin-bottom: 28px;
}

.sl-project-content .sl-model-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  margin-top: 10px;
  margin-bottom: 32px;
}

.sl-project-content .sl-model-feature {
  padding: 20px 22px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(226, 175, 129, 0.3);
  border-radius: 8px;
  min-height: 110px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.sl-project-content .sl-model-feature:hover {
  transform: translateY(-3px);
  border-color: var(--sl-accent, #e2af81);
  background: rgba(255, 255, 255, 0.1);
}

.sl-project-content .sl-model-feature .sl-icon {
  width: 26px;
  height: 26px;
  color: var(--sl-accent, #e2af81) !important;
  margin-bottom: 12px;
  display: block;
}

.sl-project-content .sl-model-feature strong {
  display: block;
  margin-bottom: 6px;
  color: #fff !important; /* surface-dark */
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.35;
}

.sl-project-content .sl-model-feature span {
  display: block;
  color: rgba(255, 255, 255, 0.85) !important; /* surface-dark */
  font-size: 12.5px;
  line-height: 1.5;
}

.sl-project-content .sl-model-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 10px;
}

.sl-project-content .sl-model-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 28px;
  border-radius: 6px;
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: all 0.25s ease;
  cursor: pointer;
}

.sl-project-content .sl-model-button#modelHomeButton {
  background: var(--sl-accent, #e2af81);
  border: 1px solid var(--sl-accent, #e2af81);
  color: var(--sl-brand-dark, #00332f) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
}

.sl-project-content .sl-model-button#modelHomeButton:hover {
  background: #fff; /* button */
  border-color: #fff; /* button */
  color: var(--sl-brand-dark, #00332f) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.3);
}

.sl-project-content .sl-model-button#modelHomeDetailButton {
  background: transparent;
  border: 1px solid rgba(226, 175, 129, 0.5);
  color: #fff !important; /* surface-dark */
}

.sl-project-content .sl-model-button#modelHomeDetailButton:hover {
  background: rgba(226, 175, 129, 0.15);
  border-color: var(--sl-accent, #e2af81);
  color: var(--sl-accent, #e2af81) !important;
  transform: translateY(-2px);
}

.sl-project-content .sl-model-button.is-disabled {
  opacity: 0.4; /* disabled */
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.2) !important; /* surface-dark */
  color: rgba(255, 255, 255, 0.4) !important; /* surface-dark */
  pointer-events: none;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

@media(max-width:1120px){
  .sl-project-content .sl-model-home{grid-template-columns:1fr;min-height:0}
  .sl-project-content .sl-model-image{min-height:360px;height:360px}
  .sl-project-content .sl-model-copy{padding:50px 6vw}
  .sl-project-content .sl-model-features{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sl-project-content .sl-model-actions{flex-direction:column}
  .sl-project-content .sl-model-actions .sl-model-button{width:100%}
  /* .sl-location (50%/50%) nằm SAU khối @media(max-width:1120px) đầu file
     (~L583) trong source order, nên rule gốc luôn thắng override cũ dù cùng
     độ đặc hiệu — đặt lại fix ở đây, sau rule gốc (L714), để thắng cascade
     đúng cách. */
  .sl-location{grid-template-columns:1fr;min-height:0}
}

/* ===== MOBILE DENSITY PASS (template chuẩn, chỉ ảnh hưởng <=800px; desktop giữ nguyên) ===== */
@media(max-width:800px){
  .sl-project-content{--sl-section-space:44px}

  /* Hero + summary: gọn khoảng trắng */
  .sl-gallery{height:min(118vw,470px)}
  .sl-title{padding:30px 20px 22px}
  .sl-title h1{font-size:clamp(28px,8.5vw,38px);line-height:1.28}
  .sl-info{padding:22px 20px 30px;gap:20px}

  /* Số liệu: 2 cột nén, mục lẻ cuối trải hết hàng */
  .sl-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px;width:100%}
  .sl-stat{min-height:0;padding:10px 8px 10px 12px;grid-template-columns:24px 1fr;column-gap:8px}
  .sl-stat:last-child:nth-child(odd){grid-column:1/-1}
  .sl-stat-icon{width:20px;height:20px}
  .sl-stat b{font-size:clamp(24px,7.5vw,32px);margin-bottom:4px;white-space:normal}
  .sl-stat span{font-size:9px;line-height:1.35;letter-spacing:1px}

  /* Hàng 3 nút CTA: sát nhau, cao vừa đủ */
  .sl-about-actions{padding:14px 16px;gap:8px}
  .sl-about-actions a{width:100%;max-width:520px;min-height:46px;padding:12px 14px}

  /* Tổng quan */
  .sl-about-photo{min-height:300px}
  .sl-copy{padding:38px 22px 44px}
  .sl-copy h2{margin:16px 0 20px;font-size:clamp(27px,8vw,38px)}
  .sl-copy p{font-size:15px;line-height:1.65}

  /* USP: bỏ chiều cao chết, nén padding */
  .sl-content-section{padding:46px 0}
  .sl-section-inner{width:calc(100% - 36px)}
  .sl-usp-grid{grid-template-columns:1fr}
  .sl-usp-card{min-height:0;padding:20px 18px}
  .sl-usp-icon{width:34px;height:34px;margin:14px 0 12px}
  .sl-usp-card h3{margin:0 0 8px;font-size:18px}
  .sl-usp-card p{font-size:14px;line-height:1.6}

  /* Sản phẩm: 1 cột dưới 800px */
  .sl-product-grid{grid-template-columns:1fr}

  /* Photo grid */
  .sl-photo-grid>img{height:250px}
  .sl-photo-stack img{height:150px}

  /* Vị trí */
  .sl-location-map{min-height:300px}
  .sl-location-map.has-map{min-height:260px}
  .sl-location-copy{padding:44px 22px}
  .sl-connection-grid{grid-template-columns:1fr;margin-top:24px}
  .sl-connection-grid>div,.sl-connection-item,.sl-connection{min-height:0}

  /* Tiện ích: thẻ thấp, khít */
  .sl-amenities{padding:48px 20px 44px}
  .sl-amenities-description{margin:-8px 0 24px;font-size:15px;line-height:1.6}
  .sl-amenities li{min-height:0;padding:13px 14px;margin:0 0 8px;gap:11px}
  .sl-amenity-copy strong{margin-bottom:4px;font-size:13px}
  .sl-amenity-copy span{font-size:11.5px;line-height:1.45}

  /* Nhà mẫu mobile: 1 cột xếp chồng chiều dọc */
  .sl-project-content .sl-model-home{grid-template-columns:1fr;min-height:0}
  .sl-project-content .sl-model-image{min-height:260px;height:260px}
  .sl-project-content .sl-model-copy{padding:36px 20px}
  .sl-project-content .sl-model-features{grid-template-columns:1fr;gap:12px;margin-top:20px}
  .sl-project-content .sl-model-feature{min-height:0;padding:16px 14px}
  .sl-project-content .sl-model-feature .sl-icon{margin-bottom:8px}
  .sl-project-content .sl-model-actions{flex-direction:column;width:100%;gap:10px;margin-top:20px}
  .sl-project-content .sl-model-actions .sl-model-button{width:100%;min-height:46px;padding:12px 14px}

  /* Liên hệ / dự án tương tự */
  .sl-contact{padding:48px 20px}
  .sl-similar{padding:48px 20px}
}

/* ===== FIX 2026-07: reset min-height cứng của desktop trên mobile =====
   MOB-PROJ-006 (.sl-about 900px), MOB-PROJ-007 (.sl-amenities 760px),
   MOB-PROJ-008 (.sl-back top:175px + writing-mode dọc). */
@media(max-width:800px){
  .sl-project-content .sl-about{min-height:0}
  .sl-project-content .sl-amenities{min-height:0}
  .sl-project-content .sl-back{
    top:84px;
    left:0;
    writing-mode:horizontal-tb;
    transform:none;
    padding:9px 14px;
    font-size:12px;
    letter-spacing:1px;
    white-space:nowrap;
  }
  /* Mũi tên trước chữ "Quay lại...": không có icon riêng trong markup (JS chỉ
     set textContent thuần) nên nếu không có gì báo hiệu, nút hiện như một mảng
     màu vô nghĩa. Chỉ thêm ở dải ngang chữ (mobile) để tránh mũi tên bị xoay
     lệch theo writing-mode:vertical-rl của bản desktop. */
  .sl-project-content .sl-back::before{content:"←";flex:none;font-size:1.15em;line-height:1}
  /* .sl-section-heading ép cột phải tối thiểu 300px (L526) không có override
     mobile — dưới ~530px cột trái bị bóp gần 0 và chữ h2 tràn đè lên đoạn văn
     bên cạnh (Quy hoạch, Sản phẩm & Nhà mẫu, Điểm nổi bật, Chính sách, Tiến độ,
     Thư viện...). Thu về 1 cột, tiêu đề trước rồi đến đoạn văn. */
  .sl-section-heading{grid-template-columns:1fr;gap:14px;align-items:start;margin-bottom:36px}
}

/* ============================================================
   BỔ SUNG 2026-07: Quy hoạch/Phân khu, Chính sách, Tiến độ,
   Thư viện, Tài liệu, FAQ, form qualification.
   Toàn bộ scope trong .sl-project-content.
   ============================================================ */

/* Vị trí — thời gian di chuyển */
.sl-project-content .sl-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}
.sl-project-content .sl-time{border:1px solid var(--sl-line-light,rgba(1,43,46,.14));padding:18px 20px;background:#fff}
.sl-project-content .sl-time b{display:block;color:var(--sl-brand);font:700 26px/1.28 var(--font-heading,var(--sl-font-heading))}
.sl-project-content .sl-time span{display:block;margin-top:6px;color:var(--sl-muted-body,#5b6b6a);font-size:14px}

/* Quy hoạch — Masterplan & phân khu */
.sl-project-content .sl-masterplan{background:var(--sl-surface)}
.sl-project-content .sl-masterplan-figure{margin:36px 0 0}
.sl-project-content .sl-masterplan-figure img{width:100%;height:auto;border:1px solid rgba(1,43,46,.12)}
.sl-project-content .sl-subzones{margin-top:56px}
.sl-project-content .sl-subzones h3{margin:0 0 24px;color:var(--sl-brand);font:700 26px/1.32 var(--font-heading,var(--sl-font-heading));text-transform:uppercase}
.sl-project-content .sl-subzone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.sl-project-content .sl-subzone-card{border:1px solid rgba(1,43,46,.12);background:#fff;display:flex;flex-direction:column}
.sl-project-content .sl-subzone-image{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--sl-surface)}
.sl-project-content .sl-subzone-image img{width:100%;height:100%;object-fit:cover}
.sl-project-content .sl-subzone-badge{display:inline-block;padding:5px 12px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.sl-project-content .sl-subzone-badge.is-open{background:var(--sl-brand);color:#fff}
.sl-project-content .sl-subzone-badge.is-sold{background:#8a8a8a;color:#fff}
.sl-project-content .sl-subzone-image .sl-subzone-badge{position:absolute;top:12px;left:12px}
.sl-project-content .sl-subzone-badge-row{display:block;padding:14px 22px 0}
.sl-project-content .sl-subzone-copy{padding:22px 24px 26px}
.sl-project-content .sl-subzone-copy h4{margin:0;color:var(--sl-brand);font:700 20px/1.32 var(--font-heading,var(--sl-font-heading))}
.sl-project-content .sl-subzone-position{display:block;margin-top:8px;color:var(--sl-accent);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.sl-project-content .sl-subzone-products{display:block;margin-top:8px;color:var(--sl-brand-mid);font-size:13px;font-weight:600}
.sl-project-content .sl-subzone-copy p{margin:12px 0 0;color:var(--sl-muted-body,#5b6b6a);line-height:1.7;font-size:14px}

/* Sản phẩm — spec + trạng thái */
.sl-project-content .sl-product-spec{display:block;color:var(--sl-muted-body,#5b6b6a);font-size:14px;line-height:1.6;margin-top:6px}
.sl-project-content .sl-product-image{position:relative}
.sl-project-content .sl-product-image .sl-subzone-badge{position:absolute;top:12px;left:12px}
.sl-project-content .sl-product-action{margin-top:auto;padding-top:24px;color:var(--sl-brand-mid);font-size:12px;font-weight:700;letter-spacing:.1em;text-decoration:none;display:block}
.sl-project-content .sl-product-action:hover{color:var(--sl-brand)}
.sl-project-content .sl-product-action.is-disabled{pointer-events:none;color:#6f7d7c}

/* Mặt bằng — repeater động, không giới hạn số thẻ. */
.sl-project-content .sl-floorplans{background:#fff}
.sl-project-content .sl-floorplan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.sl-project-content .sl-floorplan-item{margin:0;border:1px solid rgba(1,43,46,.12);background:var(--sl-surface)}
.sl-project-content .sl-floorplan-item img{display:block;width:100%;aspect-ratio:16/10;object-fit:contain;background:#fff}
.sl-project-content .sl-floorplan-item figcaption{display:flex;flex-direction:column;gap:7px;padding:18px 20px;color:var(--sl-muted-body,#5b6b6a)}
.sl-project-content .sl-floorplan-item figcaption strong{color:var(--sl-brand);font:700 17px/1.42 var(--font-heading,var(--sl-font-heading))}
.sl-project-content .sl-floorplan-item figcaption span{font-size:13px;line-height:1.5}

/* Chính sách bán hàng */
.sl-project-content .sl-policy{background:#fff}
.sl-project-content .sl-policy-updated{margin:10px 0 0;color:var(--sl-accent);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sl-project-content .sl-policy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));grid-auto-rows:1fr;gap:20px;margin-top:36px}
.sl-project-content .sl-policy-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;border:1px solid rgba(1,43,46,.12);padding:26px 24px;background:var(--sl-surface)}
.sl-project-content .sl-policy-card b{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--sl-brand);font:700 32px/1.26 var(--font-heading)}
.sl-project-content .sl-policy-card span{display:block;margin-top:10px;color:var(--sl-brand-mid);font-size:14px;font-weight:600}
.sl-project-content .sl-policy-card p{margin:8px 0 0;color:var(--sl-muted-body,#5b6b6a);font-size:13px;line-height:1.6}
.sl-project-content .sl-policy-actions{margin-top:28px}
.sl-project-content .sl-policy-cta{display:inline-block;padding:16px 34px;background:var(--sl-brand);color:#fff;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.sl-project-content .sl-policy-cta:hover{background:var(--sl-brand-dark)}

/* Tiến độ / pháp lý / bàn giao */
.sl-project-content .sl-progress{background:var(--sl-surface)}
.sl-project-content .sl-progress-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:36px}
.sl-project-content .sl-info-card{border:1px solid rgba(1,43,46,.12);background:#fff;padding:30px 28px}
.sl-project-content .sl-info-card .sl-icon{width:34px;height:34px;color:var(--sl-brand-mid);margin-bottom:18px;display:inline-block}
.sl-project-content .sl-info-card h3{margin:0;color:var(--sl-brand);font:700 20px/1.38 var(--font-heading,var(--sl-font-heading));text-transform:uppercase}
.sl-project-content .sl-info-card p{margin:14px 0 0;color:var(--sl-muted-body,#5b6b6a);line-height:1.75;white-space:pre-line}
.sl-project-content .sl-info-updated{display:block;margin-top:6px;color:var(--sl-accent);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.sl-project-content .sl-progress-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.sl-project-content .sl-progress-item{margin:0}
.sl-project-content .sl-progress-item img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid rgba(1,43,46,.12)}
.sl-project-content .sl-progress-item figcaption{margin-top:10px;font-size:13px;color:var(--sl-muted-body,#5b6b6a)}
.sl-project-content .sl-progress-item figcaption b{color:var(--sl-brand)}

/* Thư viện ảnh & video */
.sl-project-content .sl-library{background:#fff}
.sl-project-content .sl-library-filters{display:flex;flex-wrap:wrap;gap:10px;margin:32px 0 8px}
.sl-project-content .sl-library-filters button{border:1px solid rgba(1,43,46,.25);background:#fff;color:var(--sl-brand);padding:10px 20px;font-size:12px;font-weight:700;letter-spacing:.08em;cursor:pointer}
.sl-project-content .sl-library-filters button.is-active{background:var(--sl-brand);color:#fff;border-color:var(--sl-brand)}
.sl-project-content .sl-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.sl-project-content .sl-library-item{margin:0}
.sl-project-content .sl-library-item img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.sl-project-content .sl-library-item figcaption{margin-top:12px;padding-inline:2px;font-size:16px;line-height:1.45;color:var(--sl-muted-body,#5b6b6a)}
.sl-project-content .sl-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.sl-project-content .sl-video-card{min-width:0;border:1px solid rgba(1,43,46,.12);padding:0 0 18px;background:var(--sl-surface)}
.sl-project-content .sl-video-card video,.sl-project-content .sl-video-poster{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--sl-brand-dark)}
.sl-project-content .sl-video-card b,.sl-project-content .sl-video-card p{display:block;margin:14px 18px 0}
.sl-project-content .sl-video-card b{color:var(--sl-brand)}
.sl-project-content .sl-video-card p{color:var(--sl-muted-body,#5b6b6a);font-size:13px;line-height:1.55}
.sl-project-content .sl-video-poster{position:relative;background-position:center;background-size:cover}
.sl-project-content .sl-video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--sl-accent);color:var(--sl-brand)}

.sl-project-content .sl-lifestyle-media{margin:0 0 38px}
.sl-project-content .sl-lifestyle-media img{display:block;width:100%;max-height:720px;object-fit:cover}
.sl-project-content .sl-location--text-only{grid-template-columns:1fr}
.sl-project-content .sl-location--text-only .sl-location-copy{max-width:var(--sl-container);margin:0 auto;width:100%;box-sizing:border-box}
/* Documents / Tài liệu tải về */
.sl-project-content .sl-documents {
  background: var(--sl-surface, #eaf5f3);
}

.sl-project-content .sl-document-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 36px;
}

.sl-project-content .sl-document-card {
  border: 1px solid rgba(1, 43, 46, 0.12);
  border-top: 3px solid var(--sl-accent, #e2af81);
  background: #ffffff;
  border-radius: 8px;
  padding: 30px 26px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 16px rgba(1, 43, 46, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.sl-project-content .sl-document-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(1, 43, 46, 0.12);
  border-color: rgba(226, 175, 129, 0.6);
}

.sl-project-content .sl-document-card .sl-icon {
  width: 44px;
  height: 44px;
  padding: 10px;
  box-sizing: border-box;
  border-radius: 8px;
  background: rgba(1, 43, 46, 0.06);
  color: var(--sl-brand, #012b2e);
  margin-bottom: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.sl-project-content .sl-document-card h3 {
  margin: 0 0 10px;
  color: var(--sl-brand, #012b2e);
  font: 700 18px/1.3 var(--font-heading, var(--sl-font-heading));
}

.sl-project-content .sl-document-card p {
  margin: 0 0 24px;
  color: var(--sl-muted-body, #5b6b6a);
  font-size: 13.5px;
  line-height: 1.6;
}

.sl-project-content .sl-document-action {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 20px;
  border: 1px solid var(--sl-brand, #012b2e);
  border-radius: 6px;
  background: #ffffff;
  color: var(--sl-brand, #012b2e);
  font-family: var(--font-heading, var(--sl-font-heading));
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: all 0.25s ease;
}

.sl-project-content .sl-document-action:hover {
  background: var(--sl-brand, #012b2e);
  color: #fff !important; /* surface-dark */
  border-color: var(--sl-brand, #012b2e);
}

/* FAQ accordion */
.sl-project-content .sl-faq{background:#fff}
.sl-project-content .sl-faq-list{margin-top:32px;border-top:1px solid rgba(1,43,46,.12)}
.sl-project-content .sl-faq-item{border-bottom:1px solid rgba(1,43,46,.12)}
.sl-project-content .sl-faq-question{margin:0}
.sl-project-content .sl-faq-question button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:22px 4px;background:none;border:0;text-align:left;cursor:pointer;color:var(--sl-brand);font:600 17px/1.4 var(--font-heading,var(--sl-font-heading))}
.sl-project-content .sl-faq-question button:focus-visible{outline:2px solid var(--sl-brand-mid);outline-offset:2px}
.sl-project-content .sl-faq-marker{flex:none;width:14px;height:14px;position:relative}
.sl-project-content .sl-faq-marker::before,.sl-project-content .sl-faq-marker::after{content:"";position:absolute;background:var(--sl-brand-mid);inset:6px 0;transition:transform .2s}
.sl-project-content .sl-faq-marker::after{transform:rotate(90deg)}
.sl-project-content .sl-faq-question button[aria-expanded="true"] .sl-faq-marker::after{transform:rotate(0)}
.sl-project-content .sl-faq-answer p{margin:0;padding:0 4px 24px;color:var(--sl-muted-body,#5b6b6a);line-height:1.75}

/* Form qualification */
/* .sl-honeypot dùng ở single-sunland_project.php nhưng chưa có CSS ẩn — field
   chống spam "Website" đang hiện công khai trong form, gây rối UX và có thể
   khiến bot điền vào (mất tác dụng chống spam). */
.sl-project-content .sl-honeypot{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
.sl-project-content .sl-contact-body{max-width:640px;margin:14px auto 0;color:rgba(255,255,255,.8);text-align:center}
.sl-project-content .sl-lead-options{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:4px}
.sl-project-content .sl-lead-select span{display:block;margin-bottom:6px;font-size:11px;font-weight:700;letter-spacing:.1em;color:rgba(255,255,255,.75)}
.sl-project-content .sl-lead-select select{width:100%;padding:14px 16px;background:rgba(255,255,255,.06);border:1px solid var(--sl-line);color:#fff;font:inherit}
.sl-project-content .sl-lead-select select option{color:#111}

/* Responsive */
@media(max-width:1120px){
  .sl-project-content .sl-subzone-grid,.sl-project-content .sl-floorplan-grid,.sl-project-content .sl-library-grid,.sl-project-content .sl-progress-timeline,.sl-project-content .sl-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sl-project-content .sl-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .sl-project-content .sl-time-grid{grid-template-columns:1fr}
  .sl-project-content .sl-subzone-grid,.sl-project-content .sl-floorplan-grid,.sl-project-content .sl-library-grid,.sl-project-content .sl-progress-timeline,.sl-project-content .sl-document-grid,.sl-project-content .sl-video-grid{grid-template-columns:1fr}
  .sl-project-content .sl-policy-grid{grid-template-columns:1fr 1fr}
  .sl-project-content .sl-lead-options{grid-template-columns:1fr}
}
@media(max-width:480px){
  .sl-project-content .sl-policy-grid{grid-template-columns:1fr;grid-auto-rows:auto}
}

/* ==== THANH ĐIỀU HƯỚNG NỘI DUNG DỰ ÁN (sticky, 5 nhóm) ==== */
.sl-project-content .sl-projectnav{
  position:sticky;
  top:0; /* JS ghi đè bằng offset admin bar + header */
  z-index:900;
  background:var(--sl-brand-dark);
  border-top:1px solid rgba(255,255,255,.10);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.sl-project-content .sl-projectnav-inner{
  max-width:var(--sl-container);
  margin:0 auto;
  display:flex;
  align-items:stretch;
  padding:0 clamp(12px,3vw,32px);
}
.sl-project-content .sl-pn-group{
  position:relative;
  flex:1 1 0;
  min-width:0;
  display:flex;
}
.sl-project-content .sl-pn-btn{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:16px 14px;
  background:transparent;
  border:0;
  border-bottom:2px solid transparent;
  cursor:pointer;
  color:#EAF5F3;
  font-family:var(--font-heading,inherit);
  font-size:13px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:.03em;
  text-align:center;
  transition:background .2s,color .2s,border-color .2s;
}
.sl-project-content .sl-pn-btn:hover{background:rgba(255,255,255,.06)}
.sl-project-content .sl-pn-btn:focus-visible{outline:2px solid var(--sl-accent);outline-offset:-2px}
.sl-project-content .sl-pn-group.is-open .sl-pn-btn{background:rgba(255,255,255,.09)}
.sl-project-content .sl-pn-group.is-active .sl-pn-btn{color:var(--sl-accent);border-bottom-color:var(--sl-accent)}
.sl-project-content .sl-pn-caret{
  flex:none;
  width:7px;height:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transition:transform .2s;
}
.sl-project-content .sl-pn-group.is-open .sl-pn-caret{transform:translateY(1px) rotate(-135deg)}
.sl-project-content .sl-pn-panel{
  position:absolute;
  left:0;top:100%;
  min-width:230px;
  max-width:min(320px,80vw);
  background:#fff;
  border:1px solid var(--sl-line-light);
  box-shadow:0 20px 44px rgba(1,43,46,.22);
  display:flex;
  flex-direction:column;
  padding:6px 0;
}
.sl-project-content .sl-pn-panel[hidden]{display:none}
.sl-project-content .sl-pn-item{
  padding:11px 22px;
  color:var(--sl-text-body);
  text-decoration:none;
  font-family:var(--font-body,Arial,sans-serif);
  font-size:13px;
  font-weight:500;
  line-height:1.4;
  white-space:nowrap;
  transition:background .15s,color .15s;
}
.sl-project-content .sl-pn-item:hover,
.sl-project-content .sl-pn-item:focus-visible{background:var(--sl-brand-soft,#EAF5F3);color:var(--sl-brand);outline:0}

@media(max-width:860px){
  .sl-project-content .sl-projectnav-inner{
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    padding:0 8px;
    scrollbar-width:none;
  }
  .sl-project-content .sl-projectnav-inner::-webkit-scrollbar{display:none}
  .sl-project-content .sl-pn-group{flex:0 0 auto}
  .sl-project-content .sl-pn-btn{white-space:nowrap;padding:14px 15px;font-size:12px}
  .sl-project-content .sl-pn-panel{
    position:fixed;
    z-index:902;
    width:min(300px,calc(100vw - 24px));
    max-width:none;
    max-height:min(60vh,420px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}

/* Trình phát video trong section Video của trang dự án.
   .sl-video-frame giữ khung 16:9 với iframe position:absolute, nên link dự
   phòng phải nằm ngoài khung đó, không thì bị iframe che.
   RULE-UI-001: chữ đậm màu tối trên nền sáng, không dùng chữ mờ. */
.sl-video-player .sl-video-frame { position: relative; aspect-ratio: 16 / 9; background: #f2f2f2; }
.sl-video-player .sl-video-frame iframe,
.sl-video-player .sl-video-frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sl-video-player .sl-video-fallback { margin: 10px 0 0; color: #4a4a4a; font-size: 14px; }
.sl-video-player .sl-video-fallback a { color: #1d5c33; font-weight: 600; text-decoration: underline; }

/* Thẻ điều khiển video dạng link (host không nhúng được). Anchor mặc định là
   inline và có gạch chân, ép về cùng hộp hiển thị với biến thể <button>. */
a.sl-video-poster{display:block;text-decoration:none}

/* modern-css-extracted:start */
/* Project detail heading rules. */
/* Task 1.3: Single Project Hero Heading (-10% font size) */
.sunland-project-hero h1,
.ip-nd-title,
.sunlandsg-project-hero-title,
body.single-sunland_project .ip-nd-heading {
    font-size: clamp(28px, 4vw, 43px) !important; /* Reduced 10% from ~48px */
}

/* Task 1.3: Bất động sản cao cấp Heading Standardization */
.sunlandsg-properties-list-row .sunlandsg-properties-item-content-address,
.sunlandsg-properties-list-row .rbs-listing__info--street {
    font-size: clamp(16px, 1.4vw, 20px) !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.01em !important;
}


/* ============================================================
   FIX 2026-08 — TYPOGRAPHY TIẾNG VIỆT (Be Vietnam Pro + Inter)
   Dấu thanh của Be Vietnam Pro cao hơn font cũ (Arial/Georgia), nên các
   line-height <=1.2 ở tiêu đề in hoa làm dấu dòng dưới chạm chân chữ dòng trên
   ("dính chữ"). Chuẩn tối thiểu áp dụng cho toàn theme:
     - tiêu đề in hoa cỡ lớn: >= 1.22
     - tiêu đề thẻ (h3/h4 16-26px): >= 1.30
     - nhãn nhỏ in hoa có letter-spacing: >= 1.40
   ============================================================ */

/* Vị trí — địa chỉ dự án chưa từng có CSS riêng (thẻ <strong> mặc định:
   line-height kế thừa, không có khoảng cách với h2 phía trên). */
.sl-project-content .sl-location-address{
  display:block;
  margin:14px 0 6px;
  color:var(--sl-brand);
  font-family:var(--font-heading,var(--sl-font-heading));
  font-size:clamp(16px,1.5vw,20px);
  font-weight:700;
  line-height:1.45;
}

/* Sản phẩm — các dòng spec xếp chồng, cần giãn dòng cho chữ có dấu. */
.sl-project-content .sl-product-spec{line-height:1.6;margin-top:8px}
.sl-project-content .sl-product-meta{line-height:1.5}
.sl-project-content .sl-kicker{line-height:1.5}
