/* NGOC PROPERTY V5.8.247 — Vietnamese typography system.
   Scope: dedicated Vinhomes Global Gate Ha Long landing only.
   Loaded after V246. Primary goal: correct Vietnamese grapheme rendering in
   Coc Coc/Chromium and make typography hierarchy consistent across all sections. */

body.np-dedicated-landing-shell{
  --np247-gold:#f3cf73;
  --np247-white:#f7fbfa;
  --np247-copy:#e7f0ed;
  --np247-muted:#c8dad5;
  --np247-font:"Segoe UI",Tahoma,Arial,sans-serif;
  font-family:var(--np247-font)!important;
}

/* Never let balancing/tracking split Vietnamese grapheme clusters. */
body.np-dedicated-landing-shell :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--np247-font)!important;
  font-kerning:normal!important;
  font-variant-ligatures:normal!important;
  font-feature-settings:"kern" 1!important;
  text-rendering:auto!important;
  letter-spacing:0!important;
  word-spacing:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-wrap:wrap!important;
  white-space:normal!important;
}

/* Section eyebrow remains the only tracked typography. */
body.np-dedicated-landing-shell :is(
  .np-v236-heading>span,
  .np-v242-overview-head>span,
  .np-v243-location-head>span,
  .np-v241-eyebrow
){
  font-family:var(--np247-font)!important;
  font-size:12px!important;
  line-height:1.35!important;
  letter-spacing:.18em!important;
  font-weight:800!important;
  color:var(--np247-gold)!important;
  text-transform:uppercase;
}

/* Shared centered heading rhythm. */
body.np-dedicated-landing-shell :is(
  .np-v236-heading.center,
  .np-v242-overview-head,
  .np-v243-location-head,
  .np-v241-tour-copy
){
  width:min(100%,1040px)!important;
  max-width:1040px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}

body.np-dedicated-landing-shell :is(
  .np-v236-heading h2,
  .np-v242-overview-head h2,
  .np-v243-location-head h2,
  .np-v241-tour-copy h2,
  .np-v236-intro h2,
  .np-v236-developer h2
){
  width:min(100%,980px)!important;
  max-width:980px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  font-family:var(--np247-font)!important;
  font-size:clamp(40px,3.25vw,48px)!important;
  line-height:1.14!important;
  font-weight:800!important;
  letter-spacing:0!important;
  color:var(--np247-gold)!important;
  text-wrap:wrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}

/* Location title gets deterministic lines instead of browser text balancing. */
body.np-dedicated-landing-shell .np-v243-location-head h2{
  max-width:960px!important;
  margin-top:10px!important;
  margin-bottom:0!important;
}
body.np-dedicated-landing-shell .np-landing-title-line{
  display:block!important;
  width:100%!important;
  white-space:nowrap!important;
  letter-spacing:0!important;
  word-spacing:normal!important;
}

/* Overview title/subtitle: same hierarchy, not oversized. */
body.np-dedicated-landing-shell .np-v242-overview-head h2{
  margin-top:8px!important;
  margin-bottom:5px!important;
}
body.np-dedicated-landing-shell .np-v242-overview-head h3{
  width:min(100%,900px)!important;
  margin:7px auto 0!important;
  text-align:center!important;
  font-family:var(--np247-font)!important;
  font-size:clamp(23px,1.8vw,28px)!important;
  line-height:1.28!important;
  font-weight:650!important;
  color:var(--np247-white)!important;
}

/* Opening descriptions share one readable width and scale. */
body.np-dedicated-landing-shell :is(
  .np-v236-heading p,
  .np-v242-overview-head p,
  .np-v243-location-head p,
  .np-v241-tour-copy>p,
  .np-v236-intro p,
  .np-v236-developer p
){
  width:min(100%,900px)!important;
  max-width:900px!important;
  margin:14px auto 0!important;
  text-align:center!important;
  font-family:var(--np247-font)!important;
  font-size:16.5px!important;
  line-height:1.68!important;
  font-weight:450!important;
  color:var(--np247-copy)!important;
  letter-spacing:0!important;
  word-spacing:normal!important;
  text-wrap:wrap!important;
}

/* Card and content hierarchy across the whole landing. */
body.np-dedicated-landing-shell :is(
  .np-v242-fact-grid b,
  .np-v243-location-copy h3,
  .np-v236-product-grid h3,
  .np-v236-amenity-grid h3,
  .np-v236-policy-grid h3,
  .np-v236-adv-grid h3,
  .np-v240-news-grid h3,
  .np-v236-price-card h3
){
  font-family:var(--np247-font)!important;
  font-size:18px!important;
  line-height:1.38!important;
  font-weight:700!important;
  letter-spacing:0!important;
}
body.np-dedicated-landing-shell :is(
  .np-v243-location-copy p,
  .np-v236-product-grid p,
  .np-v236-amenity-grid li,
  .np-v236-policy-grid p,
  .np-v236-adv-grid p,
  .np-v240-news-grid p,
  .np-v236-price-card p
){
  font-family:var(--np247-font)!important;
  font-size:15.5px!important;
  line-height:1.65!important;
  letter-spacing:0!important;
  word-spacing:normal!important;
}

/* Keep numeric/stat typography strong without changing data. */
body.np-dedicated-landing-shell .np-v242-stat-strip b,
body.np-dedicated-landing-shell .np-v243-location-stats b{
  font-family:var(--np247-font)!important;
  font-weight:800!important;
  letter-spacing:0!important;
}

/* Laptop tuning matching the user's 1366-ish viewport. */
@media(min-width:900px) and (max-width:1440px){
  body.np-dedicated-landing-shell :is(
    .np-v236-heading h2,
    .np-v242-overview-head h2,
    .np-v243-location-head h2,
    .np-v241-tour-copy h2,
    .np-v236-intro h2,
    .np-v236-developer h2
  ){
    font-size:clamp(36px,3vw,43px)!important;
    line-height:1.16!important;
    max-width:900px!important;
  }
  body.np-dedicated-landing-shell .np-v242-overview-head h3{
    font-size:24px!important;
  }
  body.np-dedicated-landing-shell :is(
    .np-v236-heading p,
    .np-v242-overview-head p,
    .np-v243-location-head p,
    .np-v241-tour-copy>p,
    .np-v236-intro p,
    .np-v236-developer p
  ){
    font-size:16px!important;
    max-width:850px!important;
  }
}

/* Tablet/mobile: allow controlled wrapping, never split a Vietnamese word. */
@media(max-width:760px){
  body.np-dedicated-landing-shell :is(
    .np-v236-heading h2,
    .np-v242-overview-head h2,
    .np-v243-location-head h2,
    .np-v241-tour-copy h2,
    .np-v236-intro h2,
    .np-v236-developer h2
  ){
    font-size:30px!important;
    line-height:1.18!important;
    max-width:100%!important;
  }
  body.np-dedicated-landing-shell .np-landing-title-line{
    white-space:normal!important;
  }
  body.np-dedicated-landing-shell .np-v242-overview-head h3{
    font-size:21px!important;
  }
  body.np-dedicated-landing-shell :is(
    .np-v236-heading p,
    .np-v242-overview-head p,
    .np-v243-location-head p,
    .np-v241-tour-copy>p,
    .np-v236-intro p,
    .np-v236-developer p
  ){
    font-size:15px!important;
    line-height:1.62!important;
    max-width:100%!important;
  }
  body.np-dedicated-landing-shell :is(
    .np-v243-location-copy h3,
    .np-v236-product-grid h3,
    .np-v236-amenity-grid h3,
    .np-v236-policy-grid h3,
    .np-v236-adv-grid h3,
    .np-v240-news-grid h3
  ){font-size:16px!important}
  body.np-dedicated-landing-shell :is(
    .np-v243-location-copy p,
    .np-v236-product-grid p,
    .np-v236-amenity-grid li,
    .np-v236-policy-grid p,
    .np-v236-adv-grid p,
    .np-v240-news-grid p
  ){font-size:14px!important;line-height:1.62!important}
}

@media(max-width:430px){
  body.np-dedicated-landing-shell :is(
    .np-v236-heading h2,
    .np-v242-overview-head h2,
    .np-v243-location-head h2,
    .np-v241-tour-copy h2,
    .np-v236-intro h2,
    .np-v236-developer h2
  ){font-size:28px!important}
  body.np-dedicated-landing-shell .np-v242-overview-head h3{font-size:20px!important}
}
