/* ═══ Hệ thống bố cục toàn site (v2): MỘT lề chung cho header, nội dung và footer ═══
   Nạp sau mọi stylesheet khác (xem includes/luxuryStyles.php). Chỉnh 3 biến dưới đây là đổi
   toàn bộ bố cục. Xoá file này (hoặc bỏ enqueue) là về lại giao diện trước đó. */

:root {
  --nts-gutter: clamp(18px, 3.6vw, 96px);      /* lề trái/phải dùng chung cho mọi khối */
  --nts-max: max(1760px, 80vw);                  /* nội dung rộng tối đa (rộng dần theo màn hình); nền/hero/header/footer vẫn tràn hết */
  --nts-fs-body: clamp(16px, .5vw + 9px, 21px);
  --nts-fs-small: clamp(14.5px, .36vw + 8.4px, 18px);
  --nts-fs-card-title: clamp(18px, .5vw + 11px, 26px);
  --nts-section-y: clamp(56px, 5.6vw, 112px);    /* khoảng trắng dọc của section */
}

/* ── 1. Một khung duy nhất: header, nội dung, footer cùng mép trái/phải ── */
html body :is(
  .container,
  .water-header .header-inner.container,
  #footer .container,
  .footer-wrapper .container,
  :is(.nts-abouthero-section, .nts-timeline-section, .nts-vm-section, .nts-certs-section) > .container,
  .water-container
) {
  width: 100%;
  max-width: var(--nts-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--nts-gutter);
  padding-right: var(--nts-gutter);
  box-sizing: border-box;
}
html body :is(.row, .row.row-collapse, .row.row-small, .row.row-large) { max-width: none; }
html body .row:not(.container .row) { padding-left: var(--nts-gutter); padding-right: var(--nts-gutter); }
html body .container .container { padding-left: 0; padding-right: 0; }

/* header + mega menu rộng theo màn hình */
@media (min-width: 1025px) {
  html body .water-header .desktop-nav-menu > li.has-mega-menu > .mega-menu-panel {
    width: min(1560px, calc(100vw - 2 * var(--nts-gutter)));
    max-width: none;
  }
}

/* ── 2. Hero: chữ lớn, nhiều khoảng thở, KHÔNG phình cao ── */
html body :is(.ntsx-hero-title, .ntsx-shero-title, .nts-hero-title, .ntsx-maphero-title) {
  font-size: clamp(34px, 4.6vw, 80px);
  line-height: 1.06;
  letter-spacing: -.035em;
  font-weight: 800;
  margin: 16px 0 clamp(16px, 1.8vw, 28px);
}
html body .ntsx-hero-grid { align-items: center; padding: clamp(48px, 6vw, 104px) 0 clamp(40px, 4.5vw, 80px); gap: clamp(32px, 5vw, 96px); }
html body .ntsx-shero-grid { align-items: center; padding: clamp(48px, 6vw, 104px) 0 0; gap: clamp(32px, 5vw, 96px); }
html body .ntsx-shero { padding-bottom: clamp(56px, 6vw, 108px); }
html body .ntsx-hero { padding-bottom: clamp(56px, 7vw, 120px); }
html body .ntsx-shero-frame { aspect-ratio: 16 / 11; max-height: min(62vh, 660px); }
html body .ntsx-shero-frame img { width: 100%; height: 100%; object-fit: cover; }
html body :is(.ntsx-lede, .ntsx-shero-desc) {
  font-size: clamp(16px, 1.25vw, 22px);
  line-height: 1.65;
  max-width: 56ch;
}
html body .ntsx-shero-actions { margin-top: clamp(22px, 2.6vw, 38px); gap: 14px; }
@media (min-width: 1100px) {
  html body .ntsx-btn { padding: 15px 28px; font-size: 15px; }
}
@media (max-width: 1000px) {
  html body :is(.ntsx-hero-grid, .ntsx-shero-grid) { grid-template-columns: 1fr; }
  html body .ntsx-shero-frame { max-height: 56vh; }
}

/* ── 2b. Thang chữ co giãn: nội dung không bị "nhỏ xíu" trong khung rộng ── */
html body :is(.ntsx-prose, .ntsx-prose p, .ntsx-prose li, .ntsx-about2-text, .ntsx-about2-text p, .ntsx-intro2-body, .ntsx-intro2-body p, .ntsx-cinfo-list b, .ntsx-cinfo-list a) { font-size: var(--nts-fs-body); line-height: 1.8; }
html body :is(.ntsx-relcard-body p, .ntsx-svccard-body p, .ntsx-prod-body p, .ntsx-projcard-body p, .ntsx-faq-a-inner, .ntsx-box p, .ntsx-sidecards p, .ntsx-fact-label, .ntsx-relcard-link, .ntsx-svccard-foot-label, .ntsx-projcard-foot-label) { font-size: var(--nts-fs-small); }
html body :is(.ntsx-relcard-body h3, .ntsx-svccard-body h3, .ntsx-prod-body h3, .ntsx-projcard-body h3, .ntsx-box h3, .ntsx-cat h3) { font-size: var(--nts-fs-card-title); }
html body :is(.ntsx-faq-q, .ntsx-fact-value) { font-size: var(--nts-fs-body); }
html body .ntsx-section h2 { font-size: clamp(26px, 2vw + 8px, 46px); letter-spacing: -.025em; line-height: 1.15; }
html body .ntsx-about2 { align-items: center; gap: clamp(32px, 5vw, 96px); }
html body .ntsx-about2-body p { font-size: var(--nts-fs-body); line-height: 1.8; }

html body :is(.ntsx-eyebrow, .ntsx-shero-badge) { font-size: clamp(12px, .25vw + 7.5px, 15px); }
html body .water-header :is(.desktop-nav-menu > li > a) { font-size: clamp(13px, .3vw + 7.5px, 16px); }
html body #footer :is(p, li, a, .wp-block-list) { font-size: var(--nts-fs-small); }
html body #footer :is(h2, h3, h4) { font-size: clamp(17px, .5vw + 9px, 24px); }

/* Hero sản phẩm: ảnh nền trong suốt chạm đáy hero, kích thước co giãn theo màn hình */
html body.single-product .ntsx-shero-grid { align-items: end; }
html body.single-product .ntsx-sg-main { width: clamp(260px, 25vw, 560px); height: clamp(260px, 25vw, 560px); }
html body.single-product .ntsx-sg-sm { width: clamp(70px, 6.5vw, 130px); height: clamp(70px, 6.5vw, 130px); }
html body.single-product .ntsx-sg-md { width: clamp(90px, 8.5vw, 170px); height: clamp(108px, 10.2vw, 204px); }
html body.single-product .ntsx-sg-row { gap: clamp(14px, 1.6vw, 28px); }
html body.single-product .ntsx-hero-anim { padding-bottom: clamp(40px, 4.5vw, 80px); }

/* ── 3. Section: khoảng trắng lớn, tiêu đề lớn ── */
html body .ntsx-section { padding-top: var(--nts-section-y); padding-bottom: var(--nts-section-y); }
html body .ntsx-section.is-generous { padding-top: calc(var(--nts-section-y) * 1.1); padding-bottom: calc(var(--nts-section-y) * 1.1); }
html body :is(.ntsx-shero, .nts-rvhero, .nts-tahero) + .ntsx-section,
html body.single-service .ntsx-factsbar.is-floating + .ntsx-section { padding-top: calc(var(--nts-section-y) * 1.1); }
html body .ntsx-section-head { padding-top: 0; }
html body .ntsx-section-head { margin-bottom: clamp(32px, 4.5vw, 72px); max-width: min(1240px, 100%); margin-left: auto; margin-right: auto; }
html body :is(.ntsx-section-head h2, .ntsx-intro3-head h2) {
  font-size: clamp(28px, 3.5vw, 58px);
  letter-spacing: -.03em;
  line-height: 1.12;
}
html body .ntsx-section-head p { font-size: clamp(15px, 1.2vw, 19px); max-width: 64ch; margin-left: auto; margin-right: auto; }
html body :is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid, .ntsx-prodgrid, .ntsx-catgrid) { gap: clamp(18px, 2vw, 36px); }

/* các cột đọc chữ rộng hơn trên màn lớn, vẫn dễ đọc */
html body .ntsx-descgrid { max-width: none; }
html body .ntsx-steps { max-width: min(1040px, 100%); }
html body :is(.ntsx-diagram, .ntsx-diagram-hotspot) { max-width: min(1240px, 100%); }
html body.single-service .ntsx-factsbar.is-floating { max-width: none; margin-left: var(--nts-gutter); margin-right: var(--nts-gutter); }
html body.single-service .ntsx-factsbar.is-floating > .container { padding-left: 0; padding-right: 0; max-width: none; }

/* ── 4. Thẻ co giãn theo số lượng: 1 ≠ 2 ≠ 3 ≠ 4, luôn chiếm đủ khung, không để lệch ── */
:is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid, .ntsx-prodgrid, .ntsx-catgrid):has(> :nth-child(1):last-child) {
  grid-template-columns: minmax(0, 1fr);
}
:is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid, .ntsx-prodgrid, .ntsx-catgrid):has(> :nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 981px) {
  :is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid, .ntsx-prodgrid, .ntsx-catgrid):has(> :nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  :is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid):has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  :is(.ntsx-prodgrid, .ntsx-catgrid):has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1500px) {
  :is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid):has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  :is(.ntsx-svcgrid, .ntsx-projgrid, .ntsx-relgrid, .ntsx-prodgrid, .ntsx-catgrid) { grid-template-columns: minmax(0, 1fr) !important; }
}
/* nhịp không đơn điệu: với 5 hoặc 8 thẻ, thẻ đầu rộng gấp đôi và dàn NGANG (ảnh trái, chữ phải) để khít hàng mà không phình cao;
   một thẻ duy nhất cũng dàn ngang cùng kiểu */
@media (min-width: 981px) {
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child)) > :first-child { grid-column: span 2; }
}
@media (min-width: 981px) {
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :is(.ntsx-svccard, .ntsx-projcard):first-child {
    flex-direction: row;
    align-items: stretch;
  }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-media, .ntsx-projcard-media) { flex: 0 0 52%; display: flex; }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-frame, .ntsx-projcard-frame) { width: 100%; height: 100%; aspect-ratio: auto; min-height: 320px; }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-body, .ntsx-projcard-body) { justify-content: center; padding: clamp(28px, 3vw, 56px); }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-seal, .ntsx-projcard-seal) { bottom: auto; top: 20px; left: 20px; }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-body, .ntsx-projcard-body) p { flex: none; }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-body, .ntsx-projcard-body) h3 { font-size: clamp(24px, 1.5vw + 10px, 40px); line-height: 1.2; }
  :is(.ntsx-svcgrid, .ntsx-projgrid):is(:has(> :nth-child(5):last-child), :has(> :nth-child(8):last-child), :has(> :only-child)) > :first-child :is(.ntsx-svccard-foot, .ntsx-projcard-foot) { margin-top: 12px; }
}
.ntsx-relgrid:has(> :only-child) > .ntsx-relcard { display: grid; grid-template-columns: 1.1fr 1fr; align-items: stretch; }
@media (max-width: 899px) { .ntsx-relgrid:has(> :only-child) > .ntsx-relcard { display: block; } }
.ntsx-relgrid:has(> :only-child) > .ntsx-relcard .ntsx-relcard-media { aspect-ratio: auto; height: 100%; min-height: 300px; }
.ntsx-relgrid:has(> :only-child) > .ntsx-relcard .ntsx-relcard-body { padding: clamp(28px, 3.5vw, 56px); display: flex; flex-direction: column; justify-content: center; }
/* slider ít thẻ hơn số cột (đi cùng nts-swiper-init.js) */
.nts-swiper[data-count="1"] { max-width: 100%; }

/* ── 5. Tổng quan (Dịch vụ / Lĩnh vực) ── */
.ntsx-intro3-text {
  max-width: min(980px, 100%);
  margin: 0 auto;
  text-align: center;
  font-size: clamp(16px, 1.25vw, 20px);
  line-height: 1.95;
  color: var(--x-body);
}
.ntsx-intro3-text p { margin: 0 0 22px; }
.ntsx-intro3-text p:first-child { font-size: clamp(19px, 1.7vw, 28px); line-height: 1.65; color: var(--x-ink); font-weight: 500; }
.ntsx-intro3-bullets {
  list-style: none;
  margin: clamp(28px, 3.5vw, 52px) auto 0;
  padding: 0;
  max-width: min(1040px, 100%);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.ntsx-intro3-bullets li {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 24px;
  border-radius: 999px;
  background: var(--x-surface);
  border: 1px solid var(--x-line);
  box-shadow: var(--x-shadow-sm);
  color: var(--x-ink);
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
  max-width: 100%;
}
.ntsx-intro3-bullets .tick {
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--x-accent-soft);
  color: var(--x-accent-strong);
  display: grid;
  place-items: center;
}
html body .ntsx-intro3 { max-width: none; }

/* ── 6. Khối nền tối "Đặc điểm & Lợi ích": to, nổi bật, vẫn gọn trên mobile ── */
html body .ntsx-section.is-dark.is-generous .ntsx-section-head h2 { font-size: clamp(30px, 4.2vw, 66px); letter-spacing: -.035em; }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-table { max-width: min(1320px, 100%); gap: 16px; }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-table-head { padding: 0 28px 6px; }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-table-label { font-size: clamp(12px, 1vw, 14px); letter-spacing: .12em; }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-row { grid-template-columns: 1fr clamp(40px, 4vw, 64px) 1fr; border-radius: 22px; padding: 8px; background: rgba(255, 255, 255, .06); }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-cell { padding: clamp(16px, 2vw, 28px) clamp(16px, 2vw, 30px); gap: 16px; }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-text { font-size: clamp(16px, 1.5vw, 26px); font-weight: 700; line-height: 1.35; }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-badge { width: clamp(30px, 2.6vw, 42px); height: clamp(30px, 2.6vw, 42px); }
html body .ntsx-section.is-dark.is-generous .ntsx-fb-arrow svg { width: clamp(18px, 1.8vw, 26px); height: clamp(18px, 1.8vw, 26px); }
@media (max-width: 760px) {
  html body .ntsx-section.is-dark.is-generous .ntsx-fb-row { grid-template-columns: 1fr; padding: 12px; }
}

/* ── 7. Đối tác & khách hàng ── */
.ntsx-pc { display: grid; gap: clamp(36px, 5vw, 64px); }
.ntsx-pc-group h3 { text-align: center; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; color: var(--x-muted); margin: 0 0 clamp(18px, 2.4vw, 28px); font-weight: 800; }
.ntsx-pc-logos { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(12px, 1.6vw, 22px); }
.ntsx-pc-logo {
  display: grid;
  place-items: center;
  width: clamp(130px, 13vw, 220px);
  height: clamp(76px, 7vw, 116px);
  padding: 18px 24px;
  border-radius: 20px;
  background: var(--x-surface);
  border: 1px solid var(--x-line);
  box-shadow: var(--x-shadow-sm);
  transition: transform .3s var(--x-ease), box-shadow .3s var(--x-ease);
}
a.ntsx-pc-logo:hover { transform: translateY(-4px); box-shadow: var(--x-shadow-md); }
.ntsx-pc-logo { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); overflow: hidden; box-sizing: border-box; }
.ntsx-pc-logo img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; margin: 0; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; }
.ntsx-pc-logo:hover img { filter: none; opacity: 1; }
.ntsx-pc-logos[data-count="1"] .ntsx-pc-logo { width: clamp(180px, 20vw, 320px); height: clamp(100px, 10vw, 160px); }
.ntsx-pc-logos[data-count="2"] .ntsx-pc-logo { width: clamp(150px, 16vw, 260px); height: clamp(88px, 8.5vw, 136px); }

/* ── 8. Trang Liên hệ: hero bản đồ ── */
.ntsx-maphero { position: relative; overflow: hidden; isolation: isolate; color: #fff; background: #132445; min-height: clamp(520px, 44vw, 820px); display: flex; align-items: center; }
.ntsx-maphero > .container { position: relative; z-index: 1; }
.ntsx-maphero-map { position: absolute; inset: 0; z-index: -3; }
.ntsx-maphero-map iframe { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; filter: saturate(.75) contrast(1.05); transform: scale(1.04); }
.ntsx-maphero-veil {
  position: absolute; inset: 0; z-index: -2;
  background: linear-gradient(95deg, rgba(14, 28, 56, .95) 0%, rgba(19, 36, 69, .86) 42%, rgba(19, 36, 69, .55) 100%);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.ntsx-maphero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 110px);
  align-items: center;
  padding: clamp(64px, 8vw, 140px) 0;
}
.ntsx-maphero-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; color: #7CE39B; }
html body h1.ntsx-maphero-title { color: #fff; margin: 18px 0 clamp(16px, 2vw, 28px); }
.ntsx-maphero-sub { font-size: clamp(16px, 1.4vw, 23px); line-height: 1.65; color: rgba(255, 255, 255, .82); max-width: 46ch; margin: 0 0 clamp(24px, 3vw, 40px); }
.ntsx-maphero-info {
  display: grid;
  gap: 0;
  border-radius: 28px;
  padding: clamp(8px, 1vw, 14px) clamp(20px, 2.6vw, 44px);
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 40px 90px -40px rgba(0, 0, 0, .6);
}
.ntsx-maphero-item { display: flex; align-items: center; gap: clamp(14px, 1.6vw, 24px); color: #fff; text-decoration: none; min-width: 0; padding: clamp(16px, 1.8vw, 26px) 0; }
.ntsx-maphero-item + .ntsx-maphero-item { border-top: 1px solid rgba(255, 255, 255, .14); }
.ntsx-maphero-item .ico { flex: none; width: clamp(46px, 4vw, 62px); height: clamp(46px, 4vw, 62px); border-radius: 18px; display: grid; place-items: center; background: rgba(124, 227, 155, .14); border: 1px solid rgba(124, 227, 155, .3); color: #7CE39B; transition: background .25s, transform .25s; }
html body a.ntsx-maphero-item:is(:hover, :focus-visible), html body a.ntsx-maphero-item:is(:hover, :focus-visible) b { color: #fff; }
html body a.ntsx-maphero-item:is(:hover, :focus-visible) small { color: #7CE39B; }
html body a.ntsx-maphero-item { transition: background .25s; }
html body a.ntsx-maphero-item:is(:hover, :focus-visible) { background: rgba(255, 255, 255, .06); box-shadow: -14px 0 0 rgba(255, 255, 255, .06), 14px 0 0 rgba(255, 255, 255, .06); }
a.ntsx-maphero-item:hover .ico { background: rgba(124, 227, 155, .26); transform: translateY(-2px); }
.ntsx-maphero-item small { display: block; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .62); margin-bottom: 4px; font-weight: 700; }
.ntsx-maphero-item b { display: block; font-size: clamp(17px, 1.6vw, 26px); font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
@media (max-width: 960px) {
  .ntsx-maphero { min-height: 0; }
  .ntsx-maphero-inner { grid-template-columns: minmax(0, 1fr); padding: 64px 0; }
  .ntsx-maphero-veil { background: linear-gradient(180deg, rgba(14, 28, 56, .94), rgba(19, 36, 69, .8)); }
}

/* ── 9. Chi tiết nhỏ cho mobile ── */
@media (max-width: 760px) {
  html body .ntsx-float-bl { left: 8px; }
  html body .ntsx-float-tr { right: 8px; }
}

/* ── 10. Trang chủ & các khối trang (banner, giới thiệu, lĩnh vực, số liệu, dự án, tin…) ── */
html body .nts-banner-large { padding: clamp(110px, 11vw, 210px) 0 clamp(80px, 8vw, 160px); }
html body .nts-banner .row { align-items: center; }
html body .nts-banner-title { font-size: clamp(36px, 4.4vw, 82px); line-height: 1.1; letter-spacing: -.035em; }
html body .nts-banner-subtitle { font-size: clamp(14px, .6vw + 7px, 20px); }
html body .nts-banner-description { font-size: clamp(16px, 1.15vw, 21px); max-width: 58ch; line-height: 1.7; }
html body .nts-banner-feature { font-size: clamp(13px, .3vw + 7px, 16px); }
html body .nts-banner-button { font-size: clamp(15px, .25vw + 10px, 18px); }
@media (min-width: 1000px) {
  html body .nts-banner .col.large-5 { flex-basis: 46%; max-width: 46%; }
  html body .nts-banner .col.large-7 { flex-basis: 54%; max-width: 54%; }
}
html body .nts-slide-track { height: clamp(280px, 28vw, 560px); }

html body .nts-about-story-heading { font-size: clamp(24px, 1.5vw + 10px, 42px); letter-spacing: -.02em; }
html body :is(.nts-about-story-text, .nts-member-hero-subtitle, .nts-community-subtitle, .nts-blogs-hero-subtitle, .nts-jobcta-desc) { font-size: var(--nts-fs-body); line-height: 1.75; }
html body :is(.nts-linhvuc-title, .nts-counter-title, .nts-blogs-hero-title, .nts-community-title, .nts-jobcta-title, .nts-member-hero-title) { font-size: clamp(30px, 3vw, 58px); letter-spacing: -.03em; line-height: 1.12; }
html body .linhvuc-title { font-size: var(--nts-fs-card-title); }
html body .nts-linhvuc-panel-heading { font-size: clamp(22px, 1.3vw + 9px, 36px); }
html body .counter-title { font-size: clamp(16px, .5vw + 9px, 24px); }
html body .project-title { font-size: var(--nts-fs-card-title); line-height: 1.35; }

/* Lưới thẻ lĩnh vực ở trang chủ: tự chia đều theo số lượng, đủ bề rộng khung */
html body .nts-linhvuc-section .nts-linhvuc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: clamp(16px, 2vw, 32px); width: 100%; }
html body .nts-linhvuc-section .nts-linhvuc-grid > .nts-linhvuc-item { width: auto; min-width: 0; max-width: none; flex: none; margin: 0; }

/* Hero một cột (Về NTS, bài kỹ thuật): rộng vừa đủ để tiêu đề lớn không xuống 3 dòng */
html body :is(.ntsx-shero-grid.is-solo, .nts-tahero-grid.is-solo) { max-width: min(1180px, 100%); }
html body .ntsx-stats4 { max-width: min(1240px, 100%); }

/* Khối Tin tức (blogs) từng cố định lề theo khung 1250px cũ nên bị lệch: bám theo lề chung */
html body .nts-blogs-hero {
  padding-left: max(var(--nts-gutter), calc((100vw - var(--nts-max)) / 2 + var(--nts-gutter)));
  padding-right: max(var(--nts-gutter), calc((100vw - var(--nts-max)) / 2 + var(--nts-gutter)));
}
html body .nts-blogs-slider { max-width: none; padding-left: var(--nts-gutter); padding-right: var(--nts-gutter); }
html body .nts-strengths-card { max-width: none; }
@media (max-width: 760px) {
  html body .nts-blogs-hero { padding-left: 15px; padding-right: 15px; }
}

/* ── Cỡ chữ tối thiểu ── */
html body :is(.ntsx-float-label, .ntsx-svc-slider-label, .ntsx-svccard-fact, .ntsx-relcard-badge, .ntsx-cert) { font-size: max(12.5px, 1em); }
html body .ntsx-float-label, html body .ntsx-svc-slider-label { font-size: 12.5px; }
