  :root{
    /* Brand primary — River Gateway */
    --brand:#338295;
    --brand-500:#3FA0B3;
    --brand-600:#2C7385;
    --brand-700:#245F6E;
    --brand-ink:#1A4652;
    --primary:#338295;
    --ink:#123640;
    --paper:#FFFFFF;
    --gold:#D8A53A;
    --gold-deep:#C0902B;
    --teal:#338295;
    --teal-500:#3FA0B3;
    --teal-600:#2C7385;
    --teal-700:#245F6E;
    --teal-ink:#1A4652;
    --emerald:#338295;
    --green:#6DAE45;
    --mist:#F5FAFA;
    --mist-2:#EDF8F8;
    --surface-0:#FFFFFF;
    --surface-1:#F5FAFA;
    --surface-2:#EDF8F8;
    --surface-3:#E3F3F2;
    --border:rgba(18,54,64,0.10);
    --border-strong:rgba(18,54,64,0.18);
    --text-primary:#123640;
    --text-muted:rgba(26,70,82,0.78);
    --text-dim:rgba(26,70,82,0.55);
    --gold-glow:rgba(216,165,58,0.28);
    --emerald-glow:rgba(51,130,149,0.22);
    --teal-glow:rgba(51,130,149,0.22);
    --brand-glow:rgba(51,130,149,0.22);
    --ease:cubic-bezier(.16,1,.3,1);
    /* Font families */
    --font-sans:'FS Montblanc', 'Fz Rubik', sans-serif;
    --font-display:'FS Montblanc', 'Fz Rubik', sans-serif;
    --font-body:'FS Montblanc', 'Fz Rubik', sans-serif;
    --font-script:'DFVN Indulge Script', cursive;
    --font-lifestyle-serif:'DFVN BigBang', Georgia, serif;
    --font-lifestyle-sans:'Elle Futura', 'FS Montblanc', sans-serif;
    /* Type scale — body = 1rem; titles/labels derived */
    --fs-2xs:0.625rem;
    --fs-tiny:0.65rem;
    --fs-micro:0.68rem;
    --fs-caption:0.72rem;
    --fs-label:0.74rem;
    --fs-xs:0.75rem;
    --fs-sm:0.875rem;
    --fs-ui:0.85rem;
    --fs-body:1rem;
    --fs-sub:1.125rem;
    --fs-md:1.2rem;
    --fs-lead:1.25rem;
    --fs-h3:1.375rem;
    --fs-lg:1.4rem;
    --fs-xl:1.5rem;
    --fs-h2:clamp(1.5rem, 2.4vw, 2rem);
    --fs-h1:clamp(1.75rem, 3vw, 2.5rem);
    --fs-display:clamp(2rem, 4vw, 3rem);
    --fs-section-title:clamp(1.65rem, 3.6vw, 2.75rem);
    --fs-quote:clamp(1.35rem, 2.6vw, 2.1rem);
    --fs-script-title:clamp(1.3rem, 2.25vw, 1.95rem);
    --fs-stat:clamp(1.65rem, 2.6vw, 2.15rem);
    --fs-hero-num:clamp(3.5rem, 5.8vw, 5rem);
    --fs-count:clamp(2.5rem, 5vw, 3.5rem);
    --fs-hotline:1.75rem;
    --fs-small:0.78rem;
    --fs-connect-title:clamp(1.55rem, 2.8vw, 2.05rem);
    --fs-connect-body:clamp(1rem, 1.25vw, 1.12rem);
    --fs-connect-stat:clamp(1.65rem, 2.6vw, 2.15rem);
    --fs-connect-eyebrow:clamp(0.8rem, 1.1vw, 0.92rem);
    --fs-connect-pin:clamp(1.02rem, 1.3vw, 1.15rem);
    --fs-connect-unit:clamp(0.68rem, 0.85vw, 0.78rem);
    --connect-title-ink:#1c3d5e;
    --font-connect-sans:'Montserrat', var(--font-sans), sans-serif;
    --font-connect-serif:'Playfair Display', var(--font-lifestyle-serif), Georgia, serif;
    --fs-intro-headline:clamp(1rem, 1.85vw, 1.5rem);
    --fs-reasons-title:clamp(1.2rem, 2.8vw, 1.85rem);
    --fs-reasons-num:clamp(2.85rem, 5.5vw, 4.1rem);
    --fs-reasons-text:clamp(0.88rem, 1.12vw, 1rem);
    --fs-card-label:clamp(0.72rem, 1.1vw, 0.85rem);
    --fs-excerpt:clamp(1rem, 1.15vw, 1.125rem);
    --fs-hero-headline:clamp(2rem, 3.35vw, 3.35rem);
    --fs-hero-sub:clamp(1.5rem, 2.4vw, 2.35rem);
    --fs-tab:clamp(0.68rem, 1vw, 0.78rem);
  }
  *{ box-sizing:border-box; }
  html{
    font-size:16px;
  }
  html,body{
    background:var(--surface-0); color:var(--text-primary);
    overscroll-behavior:none;
    height:100%;
    overflow:hidden;
  }
  body{
    font-family:var(--font-body);
    font-size:var(--fs-body);
    font-weight:300;
    line-height:1.65;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    position:relative;
  }
  button, input, textarea, select, label{
    font-family:inherit;
    font-size:inherit;
  }
  section[id]{
    font-family:var(--font-sans);
    font-size:var(--fs-body);
  }
  body::before{
    content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    background:
      radial-gradient(ellipse 90% 55% at 50% -15%, rgba(51,130,149,0.06), transparent 55%),
      radial-gradient(ellipse 55% 45% at 100% 40%, rgba(216,165,58,0.04), transparent 50%),
      radial-gradient(ellipse 45% 40% at 0% 80%, rgba(109,174,69,0.04), transparent 45%);
  }
  ::selection{ background:var(--gold); color:#fff; }

  h1,h2,h3,h4,h5,h6,.font-display{
    font-family:var(--font-display);
    font-weight:600;
    letter-spacing:-0.015em;
    color:var(--text-primary);
  }
  h1{ font-size:var(--fs-h1); line-height:1.2; }
  h2{ font-size:var(--fs-h2); line-height:1.25; }
  h3{ font-size:var(--fs-h3); line-height:1.3; }
  .font-script{ font-family:var(--font-script); font-style:normal; font-weight:400; line-height:1.35; }
  p, li, .font-body{
    font-family:var(--font-body);
    font-size:var(--fs-body);
    font-weight:300;
    line-height:1.65;
    color:var(--text-muted);
  }
  .text-muted{ color:var(--text-muted); }
  .text-dim{ color:var(--text-dim); }

  .tracked{ letter-spacing:0.14em; }
  .tracked-lg{ letter-spacing:0.22em; }

  /* premium outline button */
  .btn-line{
    border:1px solid var(--teal);
    background:var(--teal);
    padding:1.05rem 2.5rem;
    letter-spacing:0.22em;
    color:#fff;
    border-radius:999px;
    transition:all .45s var(--ease);
    box-shadow:0 12px 30px rgba(51,130,149,0.22);
  }
  .btn-line:hover{
    border-color:var(--teal-600);
    background:var(--teal-600);
    box-shadow:0 16px 40px rgba(51,130,149,0.32);
    color:#fff;
    transform:translateY(-2px);
  }
  .btn-line-dark{
    border:1px solid var(--border-strong);
    color:var(--ink);
    background:#fff;
  }
  .btn-line-dark:hover{
    border-color:var(--teal);
    color:var(--teal);
    background:var(--mist-2);
    box-shadow:0 12px 36px var(--teal-glow);
  }

  /* nav — transparent, original logo, white controls */
  #nav{
    position:fixed;
    top:0; left:0; right:0;
    z-index:80;
    isolation:isolate;
    border-bottom:none;
    background:transparent !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:none !important;
    transition:padding .55s var(--ease);
  }
  #nav a{ transition:color .35s ease, opacity .35s ease, transform .35s var(--ease); }
  #nav a:hover{ color:var(--gold); }
  #nav .nav-link{
    color:#FFFFFF;
    text-shadow:0 1px 8px rgba(0,0,0,0.35);
  }
  #nav .nav-link:hover{ color:var(--gold); }
  #nav .logo-img{
    height:calc(2.95rem + 3px);
    filter:brightness(0) invert(1);
    transition:opacity .35s ease, filter .35s ease;
  }
  #nav.on-logo-original .logo-img{
    filter:none;
  }
  #nav.on-controls-teal .nav-hotline-text{
    color:var(--teal);
    text-shadow:none;
  }
  #nav.on-controls-teal .nav-lang{
    color:var(--teal);
    text-shadow:none;
  }
  #nav.on-controls-teal .nav-ctrl-icon{
    border-color:var(--teal);
    color:var(--teal);
  }
  #nav.on-controls-teal .nav-burger{
    border-color:var(--teal);
  }
  #nav.on-controls-teal .nav-burger span,
  #nav.on-controls-teal #menu-toggle span{
    background:var(--teal) !important;
    box-shadow:none;
  }
  #nav.on-controls-teal .nav-hotline:hover .nav-ctrl-icon{
    background:var(--teal);
    border-color:var(--teal);
    color:#fff;
  }
  #nav.on-controls-teal .nav-form-btn{
    border-color:var(--teal);
    color:var(--teal);
    text-shadow:none;
  }
  #nav.on-controls-teal .nav-form-btn:hover{
    background:var(--teal);
    border-color:var(--teal);
    color:#fff;
  }
  #nav.on-controls-teal .nav-lang:hover{
    color:var(--teal-600);
  }
  #nav.on-controls-teal .nav-burger:hover{
    border-color:var(--teal-600);
  }
  #nav.on-controls-teal .nav-burger:hover span,
  #nav.on-controls-teal #menu-toggle:hover span{
    background:var(--teal-600) !important;
  }
  @media (min-width:768px){
    #nav .logo-img{ height:calc(3.7rem + 3px); }
  }
  #nav #menu-toggle span{
    background:#FFFFFF !important;
    box-shadow:0 1px 4px rgba(0,0,0,0.35);
  }
  .hotline-btn{
    background:transparent;
    box-shadow:none;
    transition:all .4s var(--ease);
  }
  .hotline-btn:hover{
    box-shadow:0 0 28px var(--gold-glow);
    transform:translateY(-1px);
  }

  .chapter-num{
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    color:var(--teal);
    letter-spacing:0.22em;
    font-weight:600;
    text-shadow:none;
  }
  #lifestyle{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    overflow:hidden !important;
    padding:0 !important;
    height:100dvh;
    max-height:100dvh;
    background:#307e92;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  #lifestyle::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }
  #lifestyle::before{ display:none; }
  .lifestyle-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    overflow:hidden;
    background:
      radial-gradient(ellipse 95% 75% at 50% -5%, rgba(255,255,255,0.14) 0%, transparent 58%),
      radial-gradient(ellipse 70% 55% at 88% 95%, rgba(18,54,64,0.22) 0%, transparent 52%),
      linear-gradient(180deg, #3a8ea2 0%, #307e92 52%, #286d7f 100%);
  }
  .lifestyle-bg::before,
  .lifestyle-bg::after{
    content:'';
    position:absolute;
    border:1px solid rgba(255,255,255,0.07);
    border-radius:50%;
    pointer-events:none;
  }
  .lifestyle-bg::before{
    width:min(120vw, 980px);
    height:min(70vw, 520px);
    top:-18%;
    left:-22%;
    transform:rotate(-8deg);
  }
  .lifestyle-bg::after{
    width:min(90vw, 760px);
    height:min(55vw, 420px);
    bottom:-22%;
    right:-18%;
    transform:rotate(12deg);
  }
  .lifestyle-inner{
    position:relative;
    z-index:1;
    width:min(72rem, 96vw);
    margin-inline:auto;
    padding:clamp(4.25rem, 7.5dvh, 5.75rem) 1.5rem clamp(0.75rem, 1.25dvh, 1.25rem);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:clamp(0.65rem, 1.4vh, 1.1rem);
    max-height:100%;
    box-sizing:border-box;
    overflow:visible;
  }
  .lifestyle-headline{
    margin:0;
    width:100%;
    max-width:100%;
    flex-shrink:0;
    font-weight:inherit;
    font-size:unset;
    line-height:unset;
    letter-spacing:normal;
    color:inherit;
  }
  #lifestyle h2.lifestyle-headline .lifestyle-quote-block{
    text-align:center;
    max-width:min(880px, 96vw);
    margin-inline:auto;
    padding:20px;
    color:#fff;
  }
  #lifestyle h2.lifestyle-headline .lifestyle-quote-line{
    display:flex;
    justify-content:center;
    align-items:baseline;
    flex-wrap:nowrap;
    gap:10px;
  }
  #lifestyle h2.lifestyle-headline .lifestyle-quote-line + .lifestyle-quote-line{
    margin-top:0;
  }
  #lifestyle h2.lifestyle-headline .lifestyle-quote-sans{
    font-family:var(--font-connect-sans);
    font-weight:500;
    font-size:22px;
    letter-spacing:0;
    text-transform:uppercase;
    color:#fff;
    white-space:nowrap;
  }
  #lifestyle h2.lifestyle-headline .lifestyle-quote-serif{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:52px;
    color:#fff;
    line-height:1;
    white-space:nowrap;
  }
  .lifestyle-grid{
    display:grid;
    grid-template-columns:minmax(0, 1.48fr) minmax(0, 1fr);
    gap:clamp(10px, 1.1vw, 14px);
    width:100%;
    flex:0 0 auto;
    height:clamp(280px, 48dvh, 480px);
    min-height:clamp(280px, 48dvh, 480px);
    max-height:clamp(280px, 48dvh, 480px);
    align-items:stretch;
  }
  .lifestyle-grid-stack{
    display:flex;
    flex-direction:column;
    gap:clamp(10px, 1.1vw, 14px);
    min-height:0;
    height:100%;
  }
  .lifestyle-card{
    position:relative;
    margin:0;
    overflow:hidden;
    border-radius:20px;
    background:rgba(0,0,0,0.18);
    min-height:8rem;
    height:100%;
  }
  .lifestyle-card--hero{
    grid-column:1;
    grid-row:1;
  }
  .lifestyle-grid-stack .lifestyle-card{
    flex:1 1 0;
  }
  .lifestyle-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  /* Architecture — master plan in container */
  #architecture{
    padding:0 !important;
    overflow:hidden;
    background:#31818b;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  #architecture > .arch-wrap{
    position:relative;
    z-index:1;
    width:100%;
    max-width:120rem;
    margin:0 auto;
    padding:5.25rem 4.25rem 2rem;
    box-sizing:border-box;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  @media (min-width:1025px){
    .arch-wrap{
      padding:5.25rem 3rem 1.75rem 4.5rem;
      max-width:114rem;
    }
  }
  .arch-map-stage{
    position:relative;
    width:100%;
    max-width:100%;
    aspect-ratio:4098 / 2036;
    max-height:calc(100dvh - 7.25rem);
    margin:0 auto;
    overflow:hidden;
  }
  .arch-map-stage img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    user-select:none;
  }
  .arch-map-stage--static{
    aspect-ratio:auto;
    height:auto;
    max-height:calc(100dvh - 7.25rem);
  }
  .arch-map-stage--static img{
    width:100%;
    height:auto;
    max-height:calc(100dvh - 7.25rem);
    object-fit:contain;
  }
  .arch-map-svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:2;
    pointer-events:none;
    overflow:visible;
  }
  .arch-point{
    fill:rgba(138,213,152,0.18);
    stroke:#8ad598;
    stroke-width:5;
    cursor:pointer;
    pointer-events:all;
    transform-box:fill-box;
    transform-origin:center;
    animation:arch-point-pulse 1.6s ease-in-out infinite;
    transition:fill .2s var(--ease), stroke .2s var(--ease), stroke-width .2s var(--ease), transform .2s var(--ease);
  }
  @keyframes arch-point-pulse{
    0%, 100%{
      fill:rgba(138,213,152,0.12);
      stroke:#8ad598;
      stroke-width:4;
      transform:scale(1);
    }
    50%{
      fill:rgba(138,213,152,0.72);
      stroke:#8ad598;
      stroke-width:7;
      transform:scale(1.12);
    }
  }
  .arch-point:hover,
  .arch-point.is-active{
    animation:none;
    fill:#2e7e91;
    stroke:rgba(255,255,255,0.95);
    stroke-width:6;
    transform:scale(1.08);
  }
  @media (prefers-reduced-motion: reduce){
    .arch-point{
      animation:none;
      fill:rgba(138,213,152,0.35);
      stroke:#8ad598;
      stroke-width:5;
    }
  }
  .arch-tooltip{
    position:absolute;
    left:0;
    top:0;
    z-index:90;
    min-width:min(20rem, calc(100vw - 2rem));
    max-width:min(26rem, calc(100vw - 2rem));
    padding:1.15rem 1.35rem 1.25rem;
    background:#fff;
    border-radius:0.65rem;
    box-shadow:0 16px 48px rgba(18,54,64,0.18);
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transform:translateY(6px);
    transition:opacity .25s var(--ease), visibility .25s var(--ease), transform .25s var(--ease);
  }
  .arch-tooltip.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  .arch-tooltip__head{
    display:flex;
    align-items:center;
    gap:0.85rem;
    margin:0 0 0.55rem;
  }
  .arch-tooltip__title{
    margin:0;
    font-family:var(--font-display);
    font-size:clamp(0.95rem, 1.1vw, 1.05rem);
    font-weight:700;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--ink);
    line-height:1.3;
    white-space:nowrap;
  }
  .arch-tooltip__rule{
    flex:1;
    position:relative;
    height:1px;
    min-width:2.5rem;
    background:rgba(18,54,64,0.22);
  }
  .arch-tooltip__rule::after{
    content:'';
    position:absolute;
    right:-1px;
    top:50%;
    width:0;
    height:0;
    border-top:4px solid transparent;
    border-bottom:4px solid transparent;
    border-left:7px solid rgba(18,54,64,0.38);
    transform:translateY(-50%);
  }
  .arch-tooltip__subtitle{
    margin:0;
    font-family:var(--font-body);
    font-size:var(--fs-small);
    font-weight:300;
    line-height:1.55;
    color:rgba(18,54,64,0.62);
  }
  .arch-zoom-trigger{
    display:none;
  }
  /* Architecture zoom modal — mobile / tablet */
  #arch-zoom-modal{
    position:fixed;
    inset:0;
    z-index:125;
    display:flex;
    flex-direction:column;
    background:
      radial-gradient(130% 95% at 50% -15%, rgba(42,167,166,0.38), transparent 58%),
      linear-gradient(160deg, var(--teal-600) 0%, var(--teal-ink) 46%, var(--ink) 100%);
    color:#fff;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .35s ease, visibility .35s ease;
  }
  #arch-zoom-modal.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .arch-zoom-close{
    position:absolute;
    top:1rem;
    right:1rem;
    z-index:3;
    width:2.75rem;
    height:2.75rem;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.55);
    background:rgba(8,28,26,0.35);
    color:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:border-color .3s ease, color .3s ease, transform .35s var(--ease);
  }
  .arch-zoom-close svg{ width:1rem; height:1rem; }
  .arch-zoom-viewport{
    flex:1;
    min-height:0;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    touch-action:none;
    padding:3.75rem 0 0.5rem;
    box-sizing:border-box;
  }
  .arch-zoom-inner{
    position:relative;
    width:min(100%, 120rem);
    aspect-ratio:4098 / 2036;
    max-height:100%;
    transform-origin:center center;
    will-change:transform;
  }
  .arch-zoom-inner img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    user-select:none;
    -webkit-user-drag:none;
    pointer-events:none;
  }
  .arch-zoom-svg-wrap{
    position:absolute;
    inset:0;
    pointer-events:none;
  }
  .arch-zoom-svg-wrap svg{
    width:100%;
    height:100%;
    overflow:visible;
  }
  .arch-zoom-svg-wrap .arch-point{
    animation:none;
    pointer-events:none;
  }
  .arch-zoom-foot{
    flex:0 0 auto;
    width:100%;
    max-width:40rem;
    margin:0 auto;
    padding:0.85rem 1.25rem 1.35rem;
    box-sizing:border-box;
    text-align:center;
  }
  .arch-zoom-title{
    margin:0 0 0.35rem;
    font-family:var(--font-display);
    font-size:clamp(0.9rem, 2.8vw, 1.05rem);
    font-weight:700;
    letter-spacing:0.06em;
    text-transform:uppercase;
    line-height:1.35;
  }
  .arch-zoom-subtitle{
    margin:0 0 0.45rem;
    font-family:var(--font-body);
    font-size:var(--fs-small);
    font-weight:300;
    line-height:1.5;
    color:rgba(255,255,255,0.78);
  }
  .arch-zoom-subtitle:empty,
  .arch-zoom-subtitle[hidden]{
    display:none;
  }
  .arch-zoom-hint{
    margin:0;
    font-size:var(--fs-xs);
    letter-spacing:0.04em;
    color:rgba(255,255,255,0.52);
  }
  @media (max-width:1024px){
    .arch-zoom-trigger{
      position:absolute;
      top:0.65rem;
      right:0.65rem;
      z-index:4;
      display:inline-flex;
      align-items:center;
      gap:0.4rem;
      padding:0.45rem 0.75rem;
      border:1px solid rgba(255,255,255,0.55);
      border-radius:999px;
      background:rgba(8,28,26,0.42);
      color:#fff;
      font-family:var(--font-body);
      font-size:0.72rem;
      font-weight:600;
      letter-spacing:0.08em;
      text-transform:uppercase;
      cursor:pointer;
      backdrop-filter:blur(6px);
      -webkit-backdrop-filter:blur(6px);
      transition:border-color .25s ease, background .25s ease, transform .25s var(--ease);
    }
    .arch-zoom-trigger svg{
      width:0.95rem;
      height:0.95rem;
      flex-shrink:0;
    }
    .arch-zoom-trigger:active{
      transform:scale(0.97);
    }
    #architecture{
      overflow-x:hidden;
      overflow-y:auto;
      align-items:flex-start;
    }
    #architecture > .arch-wrap{
      max-width:none;
      width:100%;
      height:auto;
      padding:4.5rem 0 1rem;
      margin:0;
    }
    .arch-map-stage{
      width:100%;
      max-width:100%;
      height:auto;
      aspect-ratio:4098 / 2036;
      max-height:none;
      margin:0;
    }
    .arch-map-stage img{
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center center;
    }
    .arch-point{
      stroke-width:6;
    }
    .arch-tooltip{
      display:none !important;
    }
  }
  @media (min-width:769px) and (max-width:1024px){
    #architecture > .arch-wrap{
      padding:4.75rem 0 1.25rem;
    }
    .arch-zoom-trigger{
      top:0.85rem;
      right:0.85rem;
      padding:0.5rem 0.9rem;
      font-size:0.75rem;
    }
  }
  .arch-head-overlay{
    position:absolute;
    top:5.25rem;
    left:50%;
    transform:translateX(-50%);
    z-index:3;
    text-align:center;
    pointer-events:none;
    width:min(92%, 40rem);
  }
  .arch-eyebrow{
    margin:0 0 0.35rem;
    font-size:var(--fs-xs);
    letter-spacing:0.22em;
    text-transform:uppercase;
    font-weight:600;
    color:rgba(255,255,255,0.82);
    text-shadow:0 1px 8px rgba(0,0,0,0.45);
  }
  .arch-title{
    margin:0;
    font-family:var(--font-sans);
    font-size:var(--fs-quote);
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#fff;
    text-shadow:0 2px 16px rgba(0,0,0,0.55);
  }

  /* progress rail */
  #rail{ position:fixed; left:1.6rem; right:auto; top:50%; transform:translateY(-50%); z-index:40; }
  #rail .rail-line{
    position:absolute; left:2.5px; top:0; bottom:0; width:1px;
    background:linear-gradient(180deg, transparent, rgba(51,130,149,0.28), transparent);
    z-index:-1;
  }
  #rail .rail-item{
    display:flex; align-items:center; gap:0.75rem;
    text-decoration:none; cursor:pointer;
    color:var(--teal-ink);
    transition:color .35s var(--ease);
  }
  #rail .rail-item:hover{ color:var(--teal-ink); }
  #rail .rail-item.active{ color:var(--teal-ink); }
  #rail .dot{
    flex-shrink:0; width:6px; height:6px; border-radius:999px;
    background:var(--teal-ink);
    border:1.5px solid #fff;
    box-sizing:border-box;
    transition:all .45s var(--ease);
  }
  #rail .rail-item:hover .dot{ background:var(--teal-ink); transform:scale(1.45); }
  #rail .rail-item.active .dot{
    background:var(--teal-ink); transform:scale(1.75);
    box-shadow:0 0 0 4px rgba(255,255,255,0.35), 0 0 14px rgba(26,70,82,0.35);
  }
  #rail .rail-label{
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    font-weight:500;
    letter-spacing:0.12em;
    text-transform:uppercase;
    white-space:nowrap;
    max-width:0;
    opacity:0;
    overflow:hidden;
    transform:translateX(-6px);
    transition:opacity .35s ease, max-width .35s ease, transform .35s ease;
  }
  #rail .rail-item.active .rail-label{
    max-width:28rem;
    opacity:1;
    transform:translateX(0);
  }
  #rail.on-media .rail-line{ background:linear-gradient(180deg, transparent, rgba(255,255,255,0.34), transparent); }
  #rail.on-media .rail-item{ color:var(--teal-ink); }
  #rail.on-media .rail-item:hover, #rail.on-media .rail-item.active{ color:var(--teal-ink); }
  #rail.on-media .dot{ background:var(--teal-ink); border:1.5px solid #fff; }
  /* ---------- Floating CTA (360 · Zalo · Hotline · Facebook) ---------- */
  .floating-cta{
    position:fixed;
    right:1rem;
    bottom:1.25rem;
    top:auto;
    transform:none;
    z-index:70;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0.55rem;
    transition:opacity .4s var(--ease), visibility .4s;
  }
  .floating-cta-actions{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0.55rem;
    transform-origin:bottom center;
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s, max-height .35s var(--ease);
    max-height:20rem;
    overflow:hidden;
  }
  .floating-cta.is-collapsed .floating-cta-actions{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(0.75rem) scale(0.9);
    max-height:0;
  }
  .floating-cta-btn{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:3.15rem;
    height:3.15rem;
    padding:0;
    border:none;
    border-radius:50%;
    aspect-ratio:1;
    background:linear-gradient(180deg, #D4AF37 0%, var(--gold-deep) 100%);
    color:#fff;
    cursor:pointer;
    text-decoration:none;
    box-shadow:0 4px 14px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.28);
    transition:transform .25s var(--ease), box-shadow .25s var(--ease), filter .25s var(--ease);
  }
  .floating-cta-btn:hover{
    transform:scale(1.07);
    filter:brightness(1.06);
    box-shadow:0 6px 20px rgba(216,165,58,0.38);
  }
  .floating-cta-btn:active{
    transform:scale(0.98);
  }
  .floating-cta-toggle{
    flex-shrink:0;
  }
  .floating-cta-icon--open,
  .floating-cta-icon--closed{
    position:absolute;
    transition:opacity .25s var(--ease), transform .25s var(--ease);
  }
  .floating-cta-icon--closed{
    opacity:0;
    transform:scale(0.75) rotate(-12deg);
  }
  .floating-cta.is-collapsed .floating-cta-icon--open{
    opacity:0;
    transform:scale(0.75) rotate(12deg);
  }
  .floating-cta.is-collapsed .floating-cta-icon--closed{
    opacity:1;
    transform:none;
  }
  .floating-cta-btn--zalo{
    font-family:var(--font-display);
    font-weight:700;
    font-size:0.68rem;
    letter-spacing:0.01em;
    line-height:1;
  }
  .floating-cta-icon{
    width:1.25rem;
    height:1.25rem;
    flex-shrink:0;
  }
  .floating-cta-icon--360{
    width:1.75rem;
    height:1.75rem;
  }
  body.is-loading .floating-cta,
  body.is-promo-open .floating-cta,
  body.is-nav-open .floating-cta,
  body.is-consult-form-open .floating-cta{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
  @media (max-width:767px){
    .floating-cta{
      right:0.75rem;
      bottom:1rem;
      gap:0.45rem;
    }
    .floating-cta-actions{
      gap:0.45rem;
    }
    .floating-cta-btn{
      width:2.85rem;
      height:2.85rem;
    }
    .floating-cta-btn--zalo{
      font-size:0.62rem;
    }
    .floating-cta-icon{
      width:1.1rem;
      height:1.1rem;
    }
    .floating-cta-icon--360{
      width:1.55rem;
      height:1.55rem;
    }
  }

  #rail.on-media .rail-item.active .dot{
    background:var(--teal-ink);
    box-shadow:0 0 0 4px rgba(255,255,255,0.35), 0 0 14px rgba(26,70,82,0.35);
  }

  .section-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
  .section-bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(1.14) brightness(1.12) contrast(1.02); }
  .section-bg-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(14,50,48,0.30) 0%, rgba(14,50,48,0.20) 45%, rgba(14,50,48,0.42) 100%);
  }
  .section-content{ position:relative; z-index:1; }

  /* ---------- Reasons — sticky title + horizontal slide ---------- */
  #reasons{
    overflow:hidden;
    padding:0 !important;
    background:#1e6674;
    height:100vh;
    height:100dvh;
    min-height:100vh;
    min-height:100dvh;
    max-height:100dvh;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  #reasons::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }
  .reasons-scroll{
    position:relative;
    width:100%;
    height:100%;
  }
  .reasons-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    overflow:hidden;
  }
  .reasons-bg-img{
    position:absolute;
    inset:0;
    background-color:#1e6674;
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
  }
  .reasons-bg-scrim{
    position:absolute;
    inset:0;
    background:
      linear-gradient(90deg, rgba(18,54,64,0.42) 0%, rgba(18,54,64,0.12) 42%, transparent 68%),
      linear-gradient(180deg, rgba(18,54,64,0.18) 0%, transparent 28%, rgba(6,22,26,0.22) 100%);
  }
  .reasons-stage{
    position:relative;
    z-index:2;
    width:100%;
    height:100%;
    min-height:100vh;
    min-height:100dvh;
    display:flex;
    align-items:stretch;
  }
  .reasons-hex{
    position:absolute;
    left:9.5rem;
    top:50%;
    transform:translateY(-50%);
    z-index:4;
    width:clamp(4.75rem, 7vw, 6.75rem);
    min-height:clamp(13rem, 28vh, 18rem);
    pointer-events:none;
    overflow:visible;
  }
  .reasons-layout{
    width:100%;
    max-width:96rem;
    margin:0 auto;
    padding:5.5rem 1.25rem 2rem;
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:1.75rem;
    align-items:center;
    pointer-events:auto;
  }
  .reasons-left{
    min-width:0;
  }
  .reasons-hex-shape{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }
  .reasons-hex-nums{
    position:absolute;
    inset:0;
    z-index:1;
    overflow:visible;
  }
  .reasons-hex-num{
    position:absolute;
    display:block;
    margin:0;
    font-family:var(--font-display);
    font-weight:700;
    line-height:1.15;
    letter-spacing:0.04em;
    color:rgba(255,255,255,0.92);
    padding:0.08em 0.1em;
    overflow:visible;
    white-space:nowrap;
    transition:transform .55s var(--ease), opacity .45s var(--ease), color .45s var(--ease);
    will-change:transform, opacity;
  }
  .reasons-hex-num--top{
    top:-52%;
    left:-65%;
    font-size:3rem;
    transform:translate(0, 0);
  }
  .reasons-hex-num--mid{
    top:50%;
    left:50%;
    font-size:clamp(2rem, 4vw, 3rem);
    line-height:1.1;
    color:rgba(255,255,255,0.55);
    transform:translate(-50%, -50%);
  }
  .reasons-hex-num--bot{
    bottom:-51%;
    left:-68%;
    font-size:3rem;
    transform:translate(0, 0);
  }
  .reasons-hex-num.is-active{
    color:#FFD98A;
    text-shadow:0 2px 14px rgba(216,165,58,0.45), 0 1px 0 rgba(255,243,214,0.3);
  }
  .reasons-hex-nums.is-shift-left .reasons-hex-num--top{
    opacity:0;
    transform:translate(-30%, -35%);
  }
  .reasons-hex-nums.is-shift-left .reasons-hex-num--mid{
    opacity:0.45;
    transform:translate(-52%, -95%) scale(0.9);
  }
  .reasons-hex-nums.is-shift-left .reasons-hex-num--bot{
    opacity:0.45;
    transform:translate(8%, -95%) scale(1.04);
  }
  .reasons-hex-nums.is-shift-right .reasons-hex-num--bot{
    opacity:0;
    transform:translate(-30%, 35%);
  }
  .reasons-hex-nums.is-shift-right .reasons-hex-num--mid{
    opacity:0.45;
    transform:translate(-52%, 5%) scale(0.9);
  }
  .reasons-hex-nums.is-shift-right .reasons-hex-num--top{
    opacity:0.45;
    transform:translate(8%, 5%) scale(1.04);
  }
  .reasons-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:0.65rem;
    max-width:34rem;
  }
  .reasons-head{
    position:relative;
    z-index:3;
    text-align:left;
    max-width:none;
    overflow:visible;
  }
  .reasons-headline{
    position:relative;
    overflow:visible;
    padding-bottom:0.5rem;
  }
  .reasons-headline::after{
    content:'';
    position:absolute;
    left:0;
    bottom:0;
    width:min(12rem, 72%);
    height:3px;
    border-radius:999px;
    background:linear-gradient(90deg, rgba(216,165,58,0.85) 0%, rgba(255,243,214,0.35) 72%, transparent 100%);
    transform:skewX(-12deg);
    opacity:0.9;
  }
  .reasons-title{
    display:block;
    margin:0;
    font-weight:inherit;
    font-size:unset;
    line-height:unset;
    letter-spacing:normal;
    color:inherit;
    overflow:visible;
  }
  #reasons .reasons-title-block{
    text-align:left;
    max-width:480px;
    padding:0;
    color:#fff;
  }
  #reasons .reasons-title-top-row{
    display:flex;
    justify-content:flex-start;
    align-items:center;
    gap:6px;
  }
  #reasons .reasons-title-number{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:100px;
    color:#fff;
    line-height:0.85;
    flex-shrink:0;
  }
  #reasons .reasons-title-col{
    text-align:left;
  }
  #reasons .reasons-title-sans{
    font-family:var(--font-connect-sans);
    font-weight:600;
    font-size:22px;
    letter-spacing:0;
    text-transform:uppercase;
    color:#fff;
  }
  #reasons .reasons-title-serif{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:46px;
    color:#fff;
    line-height:1;
  }
  #reasons .reasons-title-sub{
    margin-top:10px;
    letter-spacing:2px;
  }
  #reasons .reasons-head .reveal-blur,
  #reasons .reasons-head .reasons-title{
    overflow:visible;
  }
  #reasons .reasons-head .is-revealed{
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    clip-path:none !important;
    filter:none !important;
  }
  .reasons-panel{
    position:relative;
    overflow:hidden;
    min-height:0;
  }
  .reasons-panel-viewport{
    overflow:hidden;
    width:100%;
  }
  .reasons-panel-track{
    display:flex;
    flex-direction:row;
    width:calc(100% * var(--reasons-count, 6));
    transition:transform .65s var(--ease);
    will-change:transform;
  }
  .reasons-panel-item{
    flex:0 0 calc(100% / var(--reasons-count, 6));
    width:calc(100% / var(--reasons-count, 6));
    min-height:auto;
    padding-right:0.5rem;
    box-sizing:border-box;
  }
  .reasons-item-title{
    margin:0;
    font-family:var(--font-display);
    font-size:clamp(0.82rem, 1.35vw, 1rem);
    font-weight:600;
    line-height:1.35;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:#FFD98A;
    text-shadow:0 2px 16px rgba(0,0,0,0.42);
  }
  .reasons-item-index{
    color:#FFFFFF;
    margin-right:0.15rem;
  }
  .reasons-item-text{
    margin:0.45rem 0 0;
    max-width:34rem;
    font-family:var(--font-body);
    font-size:clamp(0.82rem, 1.05vw, 0.92rem);
    font-weight:300;
    line-height:1.65;
    color:rgba(255,255,255,0.92);
    text-shadow:0 1px 12px rgba(0,0,0,0.38);
  }
  .reasons-nav{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0.55rem;
    margin-top:0;
  }
  .reasons-nav-arrows{
    display:flex;
    gap:0.65rem;
  }
  .reasons-nav-btn{
    width:2.35rem;
    height:2.35rem;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(216,165,58,0.45);
    background:rgba(18,54,64,0.35);
    color:#FFD98A;
    cursor:pointer;
    transition:background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
  }
  .reasons-nav-btn svg{
    width:1rem;
    height:1rem;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .reasons-nav-btn:hover{
    background:rgba(216,165,58,0.18);
    border-color:rgba(216,165,58,0.75);
    color:#FFF3D6;
  }
  .reasons-dots{
    display:flex;
    flex-wrap:wrap;
    gap:0.45rem;
  }
  .reasons-dot{
    width:0.45rem;
    height:0.45rem;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,0.28);
    cursor:pointer;
    transition:transform .3s var(--ease), background .3s var(--ease);
  }
  .reasons-dot.is-active{
    background:#D8A53A;
    transform:scale(1.15);
  }
  .reasons-right{
    width:100%;
    min-width:0;
  }
  .reasons-media{
    position:relative;
    width:100%;
    aspect-ratio:16 / 11;
    max-height:min(72vh, 42rem);
    overflow:hidden;
    background:rgba(6,22,26,0.25);
    box-shadow:0 24px 64px rgba(0,0,0,0.28);
  }
  .reasons-media-viewport{
    width:100%;
    height:100%;
    overflow:hidden;
  }
  .reasons-media-track{
    display:flex;
    flex-direction:row;
    height:100%;
    width:calc(100% * var(--reasons-count, 6));
    transition:transform .65s var(--ease);
    will-change:transform;
  }
  .reasons-media-item{
    flex:0 0 calc(100% / var(--reasons-count, 6));
    width:calc(100% / var(--reasons-count, 6));
    height:100%;
    margin:0;
  }
  .reasons-media-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    display:block;
  }
  @media (min-width:769px){
    .reasons-layout{
      grid-template-columns:minmax(0, 1.05fr) minmax(0, 0.95fr);
      gap:2.5rem 3rem;
      padding:6rem 2.5rem 2.5rem 0;
      align-items:center;
    }
    .reasons-left{
      padding-left:330px;
    }
    .reasons-head{
      top:auto;
    }
    #reasons .reasons-title-number{
      font-size:clamp(4.5rem, 12vw, 100px);
      line-height:0.85;
    }
    #reasons .reasons-title-sans{
      font-size:clamp(1rem, 2.6vw, 22px);
      letter-spacing:0;
    }
    #reasons .reasons-title-serif{
      font-size:clamp(1.75rem, 5.5vw, 46px);
      line-height:1;
    }
  }
  @media (min-width:1025px){
    .reasons-layout{
      padding:6.5rem 4rem 2.75rem 0;
      gap:3rem 4rem;
    }
    .reasons-left{
      padding-left:330px;
    }
    #reasons .reasons-title-number{
      font-size:100px;
      line-height:0.85;
    }
    #reasons .reasons-title-sans{
      font-size:22px;
    }
    #reasons .reasons-title-serif{
      font-size:46px;
      line-height:1;
    }
    .reasons-media{
      aspect-ratio:4 / 3;
      max-height:min(78vh, 44rem);
    }
  }
  @media (max-width:1024px){
    .reasons-layout{
      grid-template-columns:minmax(0, 1fr);
      gap:1.25rem;
      padding:4.5rem 1.25rem 1.25rem;
    }
    .reasons-left{
      padding-left:0;
    }
    .reasons-hex{
      display:none;
    }
    .reasons-panel-viewport,
    .reasons-media-viewport{
      width:100%;
      overflow:hidden;
      touch-action:pan-y;
    }
    .reasons-panel-track,
    .reasons-media-track{
      display:flex;
      flex-direction:row;
      will-change:transform;
    }
    .reasons-media{
      max-height:min(42svh, 360px);
      width:100%;
    }
    .reasons-nav-btn,
    .reasons-dot{
      touch-action:manipulation;
      -webkit-tap-highlight-color:transparent;
    }
  }
  @media (max-width:768px){
    .reasons-layout{
      padding:5rem 1rem 1.5rem;
    }
  }
  @media (prefers-reduced-motion:reduce){
    .reasons-panel-track,
    .reasons-media-track,
    .reasons-hex-num{
      transition:none !important;
    }
  }

  /* elevated dark bands — layered surfaces for section contrast */
  .surface-base{
    background:
      radial-gradient(95% 60% at 88% -8%, rgba(51,130,149,0.16), transparent 55%),
      radial-gradient(75% 55% at 5% 108%, rgba(216,165,58,0.09), transparent 52%),
      linear-gradient(180deg, #FFFFFF 0%, #EFF9F8 100%);
  }
  .surface-raised{
    background:
      radial-gradient(85% 60% at 100% 0%, rgba(51,130,149,0.20), transparent 55%),
      radial-gradient(65% 50% at 0% 100%, rgba(109,174,69,0.10), transparent 52%),
      linear-gradient(180deg, #EFF9F8 0%, #E3F3F2 100%);
  }
  .surface-emerald{
    background:
      radial-gradient(120% 85% at 0% 0%, rgba(42,167,166,0.55), transparent 58%),
      radial-gradient(95% 75% at 100% 100%, rgba(109,174,69,0.28), transparent 55%),
      linear-gradient(150deg, #2C7385 0%, #245F6E 48%, #1A4652 100%);
  }
  .surface-deep{
    background:
      radial-gradient(70% 50% at 50% 0%, rgba(51,130,149,0.12), transparent 60%),
      linear-gradient(180deg, #EFF9F8 0%, #E3F3F2 100%);
  }

  /* cards — layered dark surfaces */
  .ui-card{
    background:#FFFFFF;
    border:1px solid var(--border);
    border-radius:1rem;
    padding:1.5rem 1.35rem;
    box-shadow:var(--card-shadow, 0 16px 40px rgba(18,54,52,0.08), 0 0 0 1px rgba(18,54,52,0.03));
    transition:transform .45s var(--ease), border-color .45s ease, background .45s ease, box-shadow .45s ease;
  }
  .ui-card:hover{
    transform:translateY(-4px);
    border-color:rgba(51,130,149,0.35);
    background:#FFFFFF;
    box-shadow:0 24px 52px rgba(18,54,52,0.12), 0 0 0 1px rgba(51,130,149,0.12);
  }
  .stat-card{
    background:rgba(255,255,255,0.72);
    border:1px solid var(--border);
    border-radius:1rem;
    padding:1.35rem 1.25rem;
    backdrop-filter:blur(12px);
    transition:border-color .4s ease, box-shadow .4s ease, transform .4s var(--ease);
  }
  .stat-card:hover{
    border-color:rgba(216,165,58,0.40);
    box-shadow:0 12px 32px rgba(216,165,58,0.12);
    transform:translateY(-2px);
  }
  .news-card{
    display:block;
    border-radius:1rem;
    overflow:hidden;
    background:#FFFFFF;
    border:1px solid var(--border);
    box-shadow:0 12px 32px rgba(18,54,52,0.07);
    transition:transform .5s var(--ease), border-color .4s ease, box-shadow .5s ease;
  }
  .news-card:hover{
    transform:translateY(-6px);
    border-color:rgba(51,130,149,0.35);
    box-shadow:0 24px 50px rgba(18,54,52,0.14), 0 0 40px rgba(51,130,149,0.08);
  }
  .news-card .news-body{ padding:1.45rem 1.4rem 1.7rem; }
  .news-card .news-label{
    font-size:var(--fs-xs);
    letter-spacing:0.14em;
    text-transform:uppercase;
  }
  .news-card .news-title{
    font-size:var(--fs-excerpt);
    font-weight:600;
    line-height:1.4;
    margin-top:0.55rem;
  }
  #news{
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 !important;
    background-color:#ffffff;
    /* background-image:url('assets/nennews.png');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat; */
  }
  @media (min-width:769px){
    #news{
      height:100dvh;
      max-height:100dvh;
      overflow:hidden;
      display:flex;
      align-items:center;
    }
  }
  #news > .section-bg{
    z-index:0;
  }
  #news > .section-bg img{
    object-fit:cover;
    object-position:center center;
    filter:saturate(1) brightness(1.02) contrast(1);
  }
  #news > .section-bg .section-bg-overlay{
    background:
      linear-gradient(180deg, rgba(255,255,255,0.42) 0%, rgba(255,255,255,0.22) 48%, rgba(255,255,255,0.08) 100%);
  }
  #news > .news-wrap{
    position:relative;
    z-index:2;
    padding:5.5rem 1.25rem 3rem;
  }
  @media (min-width:640px){
    #news > .news-wrap{ padding-left:2rem; padding-right:2rem; }
  }
  @media (min-width:768px){
    #news > .news-wrap{ padding:5.5rem 3rem 3.5rem; }
  }
  @media (min-width:1024px){
    #news > .news-wrap{ padding-left:4rem; padding-right:4rem; }
  }
  #gallery{
    overflow:hidden;
    padding:0 !important;
    background-color:#ffffff;
    background-image:url('assets/nentintuc.png');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    color:var(--ink);
  }
  .gallery-bg{
    display:none;
  }
  .gallery-bg-arc{
    position:absolute;
    border-radius:50%;
    border:2px solid rgba(216,165,58,0.45);
    box-shadow:
      0 0 0 1px rgba(255,255,255,0.08),
      0 0 60px rgba(216,165,58,0.22),
      inset 0 0 80px rgba(216,165,58,0.08);
    opacity:1;
  }
  .gallery-bg-arc--1{
    width:min(78vw, 56rem);
    height:min(78vw, 56rem);
    left:-20%;
    bottom:-44%;
    border-width:2px;
    border-color:rgba(216,165,58,0.55);
    background:radial-gradient(circle at 68% 32%, rgba(255,217,138,0.14), transparent 55%);
    animation:galleryArcDrift 16s ease-in-out infinite alternate;
  }
  .gallery-bg-arc--1::after{
    content:'';
    position:absolute;
    inset:8%;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.18);
    box-shadow:0 0 30px rgba(255,255,255,0.08);
  }
  .gallery-bg-arc--2{
    width:min(62vw, 44rem);
    height:min(62vw, 44rem);
    right:-16%;
    top:-30%;
    border-color:rgba(255,255,255,0.32);
    background:radial-gradient(circle at 35% 65%, rgba(63,160,179,0.28), transparent 58%);
    box-shadow:
      0 0 0 1px rgba(255,255,255,0.12),
      0 0 50px rgba(63,160,179,0.25);
    animation:galleryArcDrift 20s ease-in-out infinite alternate-reverse;
  }
  .gallery-bg-arc--3{
    width:min(42vw, 28rem);
    height:min(42vw, 28rem);
    left:36%;
    top:10%;
    border-width:2px;
    border-color:rgba(216,165,58,0.42);
    background:radial-gradient(circle, rgba(216,165,58,0.12) 0%, transparent 68%);
    opacity:0.9;
    animation:galleryArcPulse 10s ease-in-out infinite alternate;
  }
  .gallery-sparkles{
    position:absolute;
    inset:0;
    overflow:hidden;
  }
  .gallery-sparkles span{
    position:absolute;
    width:4px;
    height:4px;
    border-radius:50%;
    background:#FFD98A;
    box-shadow:
      0 0 8px 2px rgba(216,165,58,0.65),
      0 0 20px 4px rgba(216,165,58,0.28);
    opacity:0;
    animation:gallerySparkle 6s ease-in-out infinite;
  }
  .gallery-sparkles span:nth-child(1){ left:8%; top:22%; animation-delay:0s; }
  .gallery-sparkles span:nth-child(2){ left:22%; top:68%; animation-delay:0.8s; width:5px; height:5px; }
  .gallery-sparkles span:nth-child(3){ left:46%; top:14%; animation-delay:0.3s; width:6px; height:6px; }
  .gallery-sparkles span:nth-child(4){ left:72%; top:28%; animation-delay:1.4s; }
  .gallery-sparkles span:nth-child(5){ left:88%; top:62%; animation-delay:2s; width:5px; height:5px; }
  .gallery-sparkles span:nth-child(6){ left:58%; top:78%; animation-delay:2.6s; }
  .gallery-sparkles span:nth-child(7){ left:34%; top:38%; animation-delay:0.6s; width:6px; height:6px; }
  .gallery-sparkles span:nth-child(8){ left:91%; top:18%; animation-delay:1.7s; }
  @keyframes galleryArcDrift{
    0%{ transform:translate(0, 0) rotate(0deg) scale(1); }
    100%{ transform:translate(2rem, -1.25rem) rotate(5deg) scale(1.03); }
  }
  @keyframes galleryArcPulse{
    0%{ transform:scale(1); opacity:0.75; }
    100%{ transform:scale(1.08); opacity:1; }
  }
  @keyframes gallerySparkle{
    0%, 100%{ opacity:0; transform:scale(0.4); }
    50%{ opacity:1; transform:scale(1.15); }
  }
  .gallery-inner{
    position:relative;
    z-index:1;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:clamp(4rem, 9dvh, 5.5rem) 0 clamp(0.85rem, 2dvh, 1.75rem);
    gap:clamp(0.65rem, 1.5dvh, 1.25rem);
    box-sizing:border-box;
  }
  .gallery-head{
    text-align:center;
    padding:0 1.5rem;
  }
  .gallery-eyebrow{
    margin:0 0 0.35rem;
    font-size:var(--fs-xs);
    letter-spacing:0.28em;
    text-transform:uppercase;
    font-weight:600;
    color:rgba(18,54,64,0.65);
  }
  .gallery-title{
    margin:0;
    font-family:var(--font-display);
    font-size:var(--fs-section-title);
    font-weight:400;
    letter-spacing:0.06em;
    line-height:1.15;
    color:var(--ink);
  }
  .gallery-stage{
    position:relative;
    width:100%;
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .gallery-panel{
    display:none;
    flex-direction:column;
    gap:1rem;
    width:100%;
  }
  .gallery-panel.is-active{
    display:flex;
  }
  .gallery-wrap{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    cursor:grab;
  }
  .gallery-wrap:active{ cursor:grabbing; }
  .gallery-track{
    display:flex;
    gap:1.75rem;
    align-items:flex-start;
    width:max-content;
    /* left-aligned strip (ảnh 1) — không căn giữa 1 card như ảnh 2 */
    padding:0.5rem max(3.5rem, 8vw) 0.5rem max(2.5rem, 5.5vw);
  }
  .gallery-card{
    flex:0 0 auto;
    width:min(46vw, clamp(18rem, 28vw, 28rem));
    display:flex;
    flex-direction:column;
    gap:0.85rem;
    background:transparent;
    border:none;
    box-shadow:none;
    border-radius:0;
    overflow:visible;
    cursor:pointer;
    transition:transform .45s var(--ease);
  }
  .gallery-card-media{
    display:block;
    width:100%;
    height:clamp(14rem, 42dvh, 26rem);
    border-radius:0.85rem;
    overflow:hidden;
    border:1px solid rgba(18,54,64,0.12);
    box-shadow:0 22px 52px rgba(18,54,64,0.12);
  }
  .gallery-card-media img,
  .gallery-card-media video,
  .gallery-card-media iframe{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    background:#0a2a28;
  }
  .gallery-card-media iframe{
    border:0;
  }
  .gallery-card--video{
    position:relative;
  }
  .gallery-card--video .gallery-card-media video{
    pointer-events:none;
  }
  .gallery-card-open{
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    padding:0.9rem;
    border:none;
    border-radius:0.85rem;
    background:linear-gradient(180deg, rgba(7,26,24,0.02) 0%, rgba(7,26,24,0.16) 100%);
    color:#fff;
    opacity:0;
    cursor:zoom-in;
    transition:opacity .25s ease, background .25s ease;
  }
  .gallery-card-open span{
    display:inline-flex;
    align-items:center;
    gap:0.45rem;
    padding:0.55rem 0.8rem;
    border-radius:999px;
    background:rgba(10,42,40,0.72);
    border:1px solid rgba(255,255,255,0.18);
    font-size:var(--fs-micro);
    letter-spacing:0.16em;
    text-transform:uppercase;
    font-weight:700;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
  .gallery-card-open span::before{
    content:'';
    width:0.65rem;
    height:0.65rem;
    border-radius:50%;
    background:linear-gradient(180deg, #fff 0%, #FFD98A 100%);
    box-shadow:0 0 0 3px rgba(255,255,255,0.12);
  }
  .gallery-card--video:hover .gallery-card-open,
  .gallery-card--video:focus-within .gallery-card-open{
    opacity:1;
  }
  .gallery-card-label{
    margin:0;
    text-align:center;
    font-size:var(--fs-card-label);
    letter-spacing:0.14em;
    text-transform:uppercase;
    font-weight:600;
    color:rgba(18,54,64,0.88);
  }
  .gallery-card:hover{
    transform:translateY(-6px);
  }
  .gallery-dots{
    display:flex;
    justify-content:center;
    gap:0.45rem;
    padding:0.15rem 0 0.25rem;
  }
  .gallery-dot{
    width:0.45rem;
    height:0.45rem;
    border-radius:50%;
    border:none;
    padding:0;
    background:rgba(18,54,64,0.22);
    cursor:pointer;
    transition:background .25s ease, transform .25s ease;
  }
  .gallery-dot.is-active{
    background:var(--gold);
    transform:scale(1.15);
    box-shadow:0 0 10px rgba(216,165,58,0.45);
  }
  .gallery-tabs{
    display:inline-flex;
    align-items:center;
    gap:0.15rem;
    padding:0.28rem;
    border-radius:999px;
    background:rgba(255,255,255,0.72);
    border:1px solid rgba(18,54,64,0.12);
    backdrop-filter:blur(10px);
  }
  .gallery-tab{
    appearance:none;
    border:none;
    background:transparent;
    color:rgba(18,54,64,0.62);
    font-size:var(--fs-tab);
    letter-spacing:0.16em;
    text-transform:uppercase;
    font-weight:700;
    padding:0.7rem 1.35rem;
    border-radius:999px;
    cursor:pointer;
    transition:background .3s ease, color .3s ease;
  }
  .gallery-tab.is-active{
    background:var(--teal-700);
    color:#fff;
  }
  .gallery-tab:hover:not(.is-active){
    color:var(--ink);
  }
  #gallery-panel-legal .gallery-card{
    cursor:pointer;
  }
  #gallery-panel-legal .gallery-card:focus-visible{
    outline:2px solid rgba(18,54,64,0.45);
    outline-offset:4px;
  }

  /* Gallery lightbox — fullscreen viewer (Pháp lý) */
  #gallery-lightbox{
    position:fixed;
    inset:0;
    z-index:120;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:3.25rem 4.5rem 1.25rem;
    box-sizing:border-box;
    overflow:hidden;
    background:
      radial-gradient(130% 95% at 50% -15%, rgba(42,167,166,0.38), transparent 58%),
      radial-gradient(90% 75% at 100% 115%, rgba(109,174,69,0.16), transparent 52%),
      radial-gradient(85% 70% at 0% 100%, rgba(216,165,58,0.14), transparent 52%),
      linear-gradient(160deg, var(--teal-600) 0%, var(--teal-ink) 46%, var(--ink) 100%);
    color:#fff;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .35s ease, visibility .35s ease;
  }
  #gallery-lightbox::before{
    content:'';
    position:absolute;
    inset:-12%;
    pointer-events:none;
    z-index:0;
    background:
      radial-gradient(ellipse 48% 42% at 50% 46%, rgba(216,165,58,0.16), transparent 62%),
      radial-gradient(ellipse 55% 50% at 18% 78%, rgba(51,130,149,0.14), transparent 55%),
      radial-gradient(ellipse 50% 45% at 88% 72%, rgba(109,174,69,0.10), transparent 50%);
    opacity:0.55;
    animation:reasonsGlowPulse 12s ease-in-out infinite alternate;
  }
  #gallery-lightbox::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:0;
    background:
      radial-gradient(ellipse 78% 72% at 50% 50%, transparent 40%, rgba(8,28,26,0.34) 100%),
      linear-gradient(180deg, rgba(8,28,26,0.16) 0%, transparent 16%, transparent 84%, rgba(8,28,26,0.20) 100%);
  }
  #gallery-lightbox.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  #gallery-lightbox > .glb-stage,
  #gallery-lightbox > .glb-foot{
    position:relative;
    z-index:2;
  }
  .glb-close{
    position:absolute;
    top:1.25rem;
    right:1.25rem;
    z-index:3;
    width:2.75rem;
    height:2.75rem;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.55);
    background:transparent;
    color:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:border-color .3s ease, color .3s ease, transform .35s var(--ease);
  }
  .glb-close svg{ width:1rem; height:1rem; }
  .glb-close:hover{
    border-color:var(--gold);
    color:var(--gold);
    transform:rotate(90deg);
  }
  .glb-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:3;
    width:3rem;
    height:3rem;
    border-radius:50%;
    border:none;
    background:#fff;
    color:#123640;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 10px 28px rgba(0,0,0,0.22);
    transition:transform .3s var(--ease), box-shadow .3s ease;
  }
  .glb-nav svg{ width:1.15rem; height:1.15rem; }
  .glb-nav:hover{
    transform:translateY(-50%) scale(1.06);
    box-shadow:0 14px 32px rgba(0,0,0,0.28);
  }
  .glb-nav--prev{ left:1.15rem; }
  .glb-nav--next{ right:1.15rem; }
  .glb-stage{
    position:relative;
    align-self:center;
    width:100%;
    max-width:min(96vw, 80rem);
    flex:1 1 auto;
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    touch-action:pan-y;
    cursor:grab;
    user-select:none;
  }
  .glb-stage::-webkit-scrollbar{ display:none; }
  .glb-stage:active{ cursor:grabbing; }
  .glb-track{
    display:flex;
    height:100%;
    width:max-content;
    transition:none;
    will-change:auto;
  }
  .glb-track.is-dragging{
    transition:none;
  }
  .glb-slide{
    flex:0 0 auto;
    width:auto;
    min-width:0;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    scroll-snap-align:center;
  }
  .glb-slide img{
    display:block;
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    object-fit:cover;
    object-position:center center;
    border-radius:0.45rem;
    background:transparent;
    filter:drop-shadow(0 18px 42px rgba(0,0,0,0.28));
    pointer-events:none;
  }
  .glb-foot{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    gap:1rem 1.5rem;
    width:min(96vw, 80rem);
    margin-top:1rem;
    padding:0 0.25rem;
    box-sizing:border-box;
    flex-shrink:0;
  }
  .glb-caption{
    grid-column:2;
    margin:0;
    text-align:center;
    font-size:clamp(0.72rem, 1.2vw, 0.88rem);
    letter-spacing:0.18em;
    text-transform:uppercase;
    font-weight:700;
    color:#fff;
  }
  .glb-counter{
    grid-column:3;
    justify-self:end;
    font-size:var(--fs-ui);
    letter-spacing:0.08em;
    color:rgba(255,255,255,0.92);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .glb-counter .glb-current{ font-weight:700; }
  @media (max-width:720px){
    #gallery-lightbox{ padding:3.75rem 0.75rem 1rem; }
    .glb-nav{ width:2.55rem; height:2.55rem; }
    .glb-nav--prev{ left:0.55rem; }
    .glb-nav--next{ right:0.55rem; }
    .glb-close{ top:0.85rem; right:0.85rem; width:2.4rem; height:2.4rem; }
    .glb-foot{
      grid-template-columns:1fr auto;
      gap:0.5rem 1rem;
      margin-top:0.75rem;
    }
    .glb-caption{ grid-column:1; }
    .glb-counter{ grid-column:2; justify-self:end; }
    .glb-slide img{ border-radius:0.35rem; }
  }
  #intro{
    overflow:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 !important;
    background:#fff;
  }
  #intro.surface-base{
    background:#fff;
    .gallery-card:nth-child(even) {
      width:80vw !important;
    }
    min-height:100%;
    height:100%;
  }
  #intro .intro-slide{
    width:100%;
    min-height:100%;
    transition:transform 0.95s cubic-bezier(0.65, 0.05, 0.36, 1);
    will-change:transform;
  }
  #intro .intro-slide--main{
    position:relative;
    z-index:2;
    transform:translateX(0);
  }
  #intro .intro-slide--scale{
    position:absolute;
    inset:0;
    z-index:3;
    transform:translateX(100%);
    pointer-events:none;
  }
  #intro.is-scale .intro-slide--main{
    transform:translateX(-100%);
  }
  #intro.is-scale .intro-slide--scale{
    transform:translateX(0);
    pointer-events:auto;
  }
  @media (prefers-reduced-motion:reduce){
    #intro .intro-slide{ transition:none; }
  }
  #intro .intro-head > h2,
  #intro .intro-headline{
    font-size:var(--fs-intro-headline);
  }
  #intro .intro-headline{
    font-family:var(--font-sans);
    font-weight:600;
    letter-spacing:0.1em;
    line-height:1.38;
    text-transform:uppercase;
    text-align:center;
    color:#ffffff;
    margin:0;
    padding:0;
  }
  #intro .intro-headline-line{
    display:block;
  }
  @media (min-width:480px){
    #intro .intro-headline-line{
      white-space:nowrap;
    }
  }
  #intro .intro-head > p{
    font-size:var(--fs-body);
  }
  #intro .intro-spec-label{ font-size:var(--fs-xs); }
  #intro .intro-spec-value{ font-size:var(--fs-body); }
  @media (min-width:640px){
    #intro .intro-head > p{ font-size:var(--fs-body); }
  }
  @media (max-width:479px){
    #intro .intro-content{
      padding-left:0.85rem;
      padding-right:0.85rem;
    }
    #intro .intro-headline,
    #intro .intro-head > h2{
      font-size:clamp(0.72rem, 2.55vw, 0.88rem);
      letter-spacing:0.05em;
      line-height:1.32;
    }
    #intro .intro-headline-line{
      white-space:nowrap;
    }
  }
  #intro .intro-layout{
    position:relative;
    display:flex;
    flex-direction:column;
    width:100%;
    background:#fff;
  }
  #intro .intro-content{
    position:relative;
    z-index:1;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:4.5rem 1.25rem 2.5rem;
    overflow:hidden;
    isolation:isolate;
    background:#328094 url('assets/nentongquan.png') 2% center / cover no-repeat;
  }
  #intro .intro-content-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    overflow:hidden;
    background:none;
  }
  /* soft light orbs + luxury sheen */
  #intro .intro-content-bg::before{
    content:none;
  }
  #intro .intro-content-bg::after{
    content:none;
  }
  #intro .intro-bg-sheen{
    display:none;
  }
  #intro .intro-bg-frame{
    position:absolute;
    inset:1.25rem 1.25rem 1.25rem 1.25rem;
    border:1px solid rgba(255,255,255,0.14);
    border-radius:0.35rem;
    box-shadow:
      inset 0 0 0 1px rgba(216,165,58,0.08),
      inset 0 0 40px rgba(255,255,255,0.04);
    pointer-events:none;
    z-index:0;
  }
  #intro .intro-bg-frame::before,
  #intro .intro-bg-frame::after{
    content:'';
    position:absolute;
    width:1.75rem;
    height:1.75rem;
    border-color:rgba(216,165,58,0.55);
    border-style:solid;
  }
  #intro .intro-bg-frame::before{
    top:-1px; left:-1px;
    border-width:1.5px 0 0 1.5px;
  }
  #intro .intro-bg-frame::after{
    bottom:-1px; right:-1px;
    border-width:0 1.5px 1.5px 0;
  }
  @keyframes intro-bg-drift{
    from{ transform:translate3d(0,0,0) scale(1); }
    to{ transform:translate3d(2.5%, -1.5%, 0) scale(1.04); }
  }
  @media (prefers-reduced-motion:reduce){
    #intro .intro-content-bg::before{ animation:none; }
  }
  #intro .intro-head{
    position:relative;
    z-index:1;
  }
  #intro .intro-head > h2{
    color:#ffffff;
  }
  #intro .intro-headline + .intro-specs{
    margin-top:1.75rem;
    margin-left:6rem;
  }
  #intro .intro-head{
    width:100%;
    max-width:100%;
    text-align:center;
  }
  @media (min-width:769px){
    #intro .intro-head{
      margin-left:1.5rem;
      width:calc(100% - 1.5rem);
      max-width:calc(100% - 1.5rem);
    }
  }
  #intro .intro-media-panel{
    overflow:hidden;
    width:100%;
    height:280px;
    position:relative;
  }
  #intro .intro-media-panel::before{
    display:none;
  }
  #intro .intro-media-panel img.intro-img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  /* Peek strip + QUY MÔ button */
  #intro .intro-peek{
    position:relative;
    width:100%;
    height:72px;
    overflow:hidden;
    flex-shrink:0;
    background:#1A4652;
  }
  #intro .intro-peek img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:left center;
    display:block;
    transform:scale(1.08);
  }
  #intro .intro-quymo{
    position:absolute;
    right:0.65rem;
    bottom:5.5rem;
    z-index:6;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:0.7rem;
    width:2.85rem;
    min-height:8.25rem;
    padding:1rem 0.4rem;
    border:none;
    border-radius:0;
    background:linear-gradient(180deg, #3FA0B3 0%, #338295 48%, #245F6E 100%);
    color:#fff;
    clip-path:polygon(
      9px 0, calc(100% - 9px) 0,
      100% 9px, 100% calc(100% - 9px),
      calc(100% - 9px) 100%, 9px 100%,
      0 calc(100% - 9px), 0 9px
    );
    box-shadow:
      0 10px 28px rgba(20,60,70,0.28),
      inset 0 1px 0 rgba(255,255,255,0.28);
    cursor:pointer;
    transition:transform .28s ease, box-shadow .28s ease, filter .28s ease;
  }
  #intro .intro-quymo:hover{
    transform:translateY(-3px);
    filter:brightness(1.06);
    box-shadow:
      0 16px 36px rgba(20,60,70,0.34),
      0 0 18px rgba(49,127,147,0.35),
      inset 0 1px 0 rgba(255,255,255,0.35);
  }
  #intro .intro-quymo:active{
    transform:translateY(-1px);
    filter:brightness(0.98);
  }
  #intro .intro-quymo-text{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    letter-spacing:0.28em;
    font-size:var(--fs-label);
    font-weight:700;
    line-height:1;
    color:#fff;
  }
  #intro .intro-quymo-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    width:1.4rem;
    height:1.4rem;
    border-radius:0;
    background:rgba(255,255,255,0.16);
    color:#fff;
    line-height:0;
    clip-path:polygon(
      4px 0, calc(100% - 4px) 0,
      100% 4px, 100% calc(100% - 4px),
      calc(100% - 4px) 100%, 4px 100%,
      0 calc(100% - 4px), 0 4px
    );
  }
  #intro .intro-quymo-arrow svg{
    display:block;
    margin:0;
  }
  /* Slide 2 — quy mô */
  #intro .intro-scale{
    position:relative;
    width:100%;
    min-height:100%;
    height:100%;
    overflow:hidden;
    background:#338295;
  }
  #intro .intro-scale-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    display:block;
  }
  #intro .intro-scale-label{
    position:absolute;
    left:1rem;
    top:50%;
    transform:translateY(-50%) rotate(-180deg);
    writing-mode:vertical-rl;
    letter-spacing:0.38em;
    font-size:var(--fs-caption);
    font-weight:600;
    color:rgba(255,255,255,0.72);
    text-shadow:0 2px 12px rgba(0,0,0,0.35);
    z-index:4;
  }
  #intro .intro-scale-panel{
    position:relative;
    z-index:4;
    margin:auto 1rem 1.25rem auto;
    width:min(92%, 24rem);
    padding:1.85rem 1.4rem 1.55rem;
    color:#fff;
    background:rgba(16,55,65,0.28);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:0.65rem;
    box-shadow:0 18px 48px rgba(0,0,0,0.18);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    overflow:hidden;
  }
  #intro .intro-scale-title{
    position:relative;
    font-family:var(--font-script);
    font-style:normal;
    font-weight:400;
    font-size:var(--fs-hero-num);
    line-height:1.12;
    margin:0;
    letter-spacing:0.02em;
    color:#fff;
    text-shadow:0 8px 28px rgba(0,0,0,0.28);
  }
  #intro .intro-scale-title::after{
    content:'';
    display:block;
    width:3.75rem;
    height:1.5px;
    margin-top:0.95rem;
    background:linear-gradient(90deg, var(--gold) 0%, rgba(216,165,58,0.12) 100%);
  }
  #intro .intro-scale-desc{
    position:relative;
    margin:1.1rem 0 1.75rem;
    max-width:22rem;
    font-size:var(--fs-md);
    line-height:1.65;
    font-weight:300;
    color:#fff;
  }
  #intro .intro-scale-grid{
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-top:1px solid rgba(255,255,255,0.14);
  }
  #intro .intro-scale-item{
    display:flex;
    flex-direction:column;
    gap:0.35rem;
    padding:1rem 0.85rem 1rem 0;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
  #intro .intro-scale-item:nth-child(even){
    padding-left:0.85rem;
    padding-right:0;
    border-left:1px solid rgba(255,255,255,0.1);
  }
  #intro .intro-scale-k{
    font-size:var(--fs-ui);
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.62);
  }
  #intro .intro-scale-v{
    font-size:var(--fs-lg);
    font-weight:600;
    color:#fff;
    letter-spacing:0.01em;
  }
  #intro .intro-scale-foot{
    position:relative;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0.55rem 0.75rem;
    margin-top:1.25rem;
    padding-top:1.05rem;
    border-top:1px solid rgba(255,255,255,0.14);
    font-size:var(--fs-sm);
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.7);
  }
  #intro .intro-scale-dot{
    width:4px;
    height:4px;
    border-radius:999px;
    background:var(--gold);
    opacity:0.85;
  }
  #intro .intro-back{
    position:absolute;
    left:1rem;
    bottom:1.15rem;
    z-index:5;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.65rem;
    min-height:2.9rem;
    padding:0.55rem 1.2rem;
    border:none;
    border-radius:0;
    background:linear-gradient(135deg, #3FA0B3 0%, #338295 52%, #245F6E 100%);
    color:#fff;
    font-size:var(--fs-ui);
    font-weight:600;
    letter-spacing:0.06em;
    line-height:1;
    cursor:pointer;
    clip-path:polygon(
      10px 0, calc(100% - 10px) 0,
      100% 10px, 100% calc(100% - 10px),
      calc(100% - 10px) 100%, 10px 100%,
      0 calc(100% - 10px), 0 10px
    );
    box-shadow:
      0 10px 26px rgba(20,60,70,0.26),
      inset 0 1px 0 rgba(255,255,255,0.28);
    transition:transform .28s ease, box-shadow .28s ease, filter .28s ease;
  }
  #intro .intro-back:hover{
    transform:translateX(-3px);
    filter:brightness(1.06);
    box-shadow:
      0 14px 32px rgba(20,60,70,0.32),
      0 0 18px rgba(49,127,147,0.35),
      inset 0 1px 0 rgba(255,255,255,0.35);
  }
  #intro .intro-back:active{
    transform:translateX(-1px);
    filter:brightness(0.98);
  }
  #intro .intro-back-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    width:1.85rem;
    height:1.85rem;
    border-radius:0;
    background:rgba(255,255,255,0.16);
    border:none;
    color:#fff;
    line-height:0;
    clip-path:polygon(
      4px 0, calc(100% - 4px) 0,
      100% 4px, 100% calc(100% - 4px),
      calc(100% - 4px) 100%, 4px 100%,
      0 calc(100% - 4px), 0 4px
    );
  }
  #intro .intro-back-icon svg{
    display:block;
    margin:0;
  }
  #intro .intro-back-text{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
    padding-top:0.05em;
  }
  @media (min-width:769px){
    #intro .intro-slider{
      height:100dvh;
      min-height:100vh;
    }
    #intro .intro-slide{
      height:100%;
      min-height:100dvh;
    }
    #intro .intro-layout{
      flex-direction:row;
      align-items:stretch;
      min-height:100vh;
      height:100%;
      position:relative;
    }
    #intro .intro-content{
      flex:0 0 50%;
      width:50%;
      max-width:50%;
      min-height:100%;
      padding:6.5rem 2rem 3rem 4rem;
      justify-content:center;
      align-items:center;
    }
    #intro .intro-head{
      max-width:100%;
    }
    #intro .intro-media-panel{
      position:relative;
      flex:0 0 50%;
      width:50%;
      max-width:50%;
      height:auto;
      align-self:stretch;
      border-radius:0;
      border:none;
      box-shadow:none;
    }
    #intro .intro-media-panel img.intro-img{
      width:100%;
      height:100%;
      min-height:100%;
      object-fit:cover;
      filter:saturate(1.05) brightness(1.02);
    }
    #intro .intro-peek{
      position:absolute;
      top:0;
      right:0;
      bottom:0;
      width:4.5rem;
      height:auto;
      z-index:5;
    }
    #intro .intro-peek img{
      object-position:left center;
      height:100%;
      width:180%;
      max-width:none;
    }
    #intro .intro-quymo{
      right:3.15rem;
      bottom:auto;
      top:50%;
      transform:translateY(-50%);
      width:2.85rem;
      min-height:8.75rem;
    }
    #intro .intro-quymo:hover{
      transform:translateY(calc(-50% - 3px));
    }
    #intro .intro-quymo:active{
      transform:translateY(calc(-50% - 1px));
    }
    #intro .intro-scale{
      height:100%;
      min-height:100%;
      display:block;
    }
    #intro .intro-scale-panel{
      position:absolute;
      top:0;
      right:0;
      bottom:0;
      margin:0;
      width:50%;
      max-width:none;
      display:flex;
      flex-direction:column;
      justify-content:center;
      align-items:flex-end;
      padding:4rem 14.35rem 3rem clamp(1.5rem, 3.5vw, 3rem);
      border:none;
      border-radius:0;
      background:transparent;
      box-shadow:none;
      backdrop-filter:none;
      -webkit-backdrop-filter:none;
      text-align:left;
    }
    #intro .intro-scale-panel > *{
      width:100%;
      max-width:24.5rem;
    }
    #intro .intro-scale-title{
      font-size:clamp(4.1rem, 5.6vw, 5.35rem);
    }
    #intro .intro-scale-desc{
      max-width:26rem;
      font-size:var(--fs-lead);
      margin-bottom:1.85rem;
    }
    #intro .intro-scale-label{
      left:1.35rem;
    }
    #intro .intro-back{
      left:2.5rem;
      bottom:2rem;
    }
    #intro .intro-scale-grid{
      max-width:24.5rem;
    }
    #intro .intro-scale-item{
      padding:1.15rem 1rem 1.15rem 0;
    }
    #intro .intro-scale-item:nth-child(even){
      padding-left:1rem;
    }
    #intro .intro-scale-v{ font-size:var(--fs-xl); }
    #intro .intro-scale-k{ font-size:var(--fs-sm); }
    #intro .intro-scale-foot{
      max-width:26rem;
      margin-top:1.5rem;
      font-size:var(--fs-sm);
    }
    #intro .intro-spec-row{
      grid-template-columns:minmax(8.5rem, 9.5rem) 1fr;
      padding:0.55rem 0;
    }
    #intro .intro-spec-value{ font-size:var(--fs-body); }
  }
  @media (min-width:1025px){
    #intro .intro-content{ padding-left:6rem; padding-right:2rem; }
    #intro .intro-head{ max-width:calc(100% - 1.5rem); }
  }

  /* ---------- Location ---------- */
  /* ============================================================
     LOCATION — 2 slides, stable layout
     ============================================================ */
  #location,
  #location-connect{
    background:#ebf2f7;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  #location{
    background:#fff;
    overflow:hidden;
  }
  #location .location-bg{
    position:absolute;
    top:0;
    left:0;
    z-index:0;
    width:75vw;
    height:75vh;
    overflow:visible;
    pointer-events:none;
  }
  #location .location-bg img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:top left;
    display:block;
    opacity:0.58;
    filter:blur(1.5px) saturate(0.82);
  }
  #location > .location-wrap{
    position:relative;
    z-index:1;
  }
  .location-wrap{
    width:100%;
    max-width:120rem;
    margin:0 auto;
    padding:7.25rem 1.25rem 2rem;
    box-sizing:border-box;
  }
  @media (min-width:1025px){
    .location-wrap{
      padding:5.25rem 3rem 1.75rem 4.5rem;
      max-width:114rem;
    }
  }
  .location-header{ text-align:center; margin-bottom:1.5rem; }
  .location-tagline{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:center;
    gap:0.35rem 0.65rem;
    margin:0 auto;
    max-width:46rem;
    font-family:var(--font-sans);
    font-size:var(--fs-h3);
    line-height:1.4;
    font-weight:600;
    color:var(--ink);
  }
  .location-tagline-accent{
    font-family:var(--font-script);
    font-size:var(--fs-h2);
    color:var(--gold);
    font-weight:400;
  }
  .location-tagline-sep{
    color:rgba(51,130,149,0.4);
    font-size:var(--fs-xs);
  }

  /* Slide 1 cards — image on top, content below (stable flow) */
  .location-features{
    display:grid;
    grid-template-columns:1fr;
    gap:1rem;
  }
  .location-feature-card{
    display:flex;
    flex-direction:column;
    background:#fff;
    border-radius:1.15rem;
    overflow:hidden;
    border:1px solid rgba(18,54,52,0.08);
    box-shadow:0 14px 36px rgba(18,54,52,0.08);
    transition:transform .35s var(--ease), box-shadow .35s ease;
  }
  .location-feature-card:hover{
    transform:translateY(-4px);
    box-shadow:0 22px 48px rgba(18,54,52,0.12);
  }
  .location-feature-media{
    position:relative;
    height:11.5rem;
    flex:0 0 auto;
    background:#1A4652;
    overflow:hidden;
  }
  .location-feature-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .7s var(--ease);
  }
  .location-feature-card:hover .location-feature-media img{ transform:scale(1.06); }
  .location-feature-media::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, transparent 40%, rgba(14,50,48,0.55) 100%);
    pointer-events:none;
  }
  .location-feature-num{
    position:absolute;
    top:0.85rem;
    left:0.85rem;
    z-index:2;
    font-size:var(--fs-xs);
    font-weight:700;
    letter-spacing:0.14em;
    color:var(--gold);
    padding:0.35rem 0.65rem;
    border-radius:999px;
    background:rgba(14,50,48,0.55);
    border:1px solid rgba(216,165,58,0.45);
  }
  .location-feature-body{
    padding:1.1rem 1.15rem 1.25rem;
    display:flex;
    flex-direction:column;
    gap:0.4rem;
    flex:1;
    background:#fff;
  }
  .location-feature-card h3{
    margin:0;
    font-size:var(--fs-sub);
    font-weight:700;
    line-height:1.35;
    color:var(--teal-700) !important;
  }
  .location-feature-card h3::after{
    content:'';
    display:block;
    width:2.2rem;
    height:2px;
    margin-top:0.5rem;
    border-radius:2px;
    background:linear-gradient(90deg, var(--gold), transparent);
  }
  .location-feature-card p{
    margin:0;
    font-size:var(--fs-body);
    line-height:1.55;
    font-weight:300;
    color:rgba(30,64,62,0.78) !important;
  }

  /* ---------- Location showcase (layout mới) ---------- */
  .location-wrap--showcase{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    min-height:100%;
    height:100%;
    overflow:visible;
  }
  .location-show{
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    width:100%;
    min-height:0;
    flex:1 1 auto;
    overflow:visible;
    position:relative;
  }
  .location-show-head{
    flex:0 0 auto;
    flex-shrink:0;
    margin-bottom:0;
    padding-top:0.2rem;
    padding-left:0;
    overflow:visible;
  }
  .location-show-title-block{
    text-align:center;
    max-width:480px;
    padding:0 20px;
    color:#1c3d5e;
  }
  #location .location-show-title-block{
    max-width:min(560px, 100%);
  }
  .location-show-line{
    display:flex;
    justify-content:center;
    align-items:baseline;
    flex-wrap:nowrap;
    gap:10px;
  }
  .location-show-sans{
    font-family:var(--font-connect-sans);
    font-weight:600;
    font-size:22px;
    letter-spacing:0;
    text-transform:uppercase;
    color:#1c3d5e;
    white-space:nowrap;
  }
  .location-show-serif{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:52px;
    color:#1c3d5e;
    line-height:1;
    white-space:nowrap;
  }
  .location-show-sub{
    margin-top:10px;
  }
  .location-show-viewport{
    flex:0 0 auto;
    min-height:0;
    overflow:visible;
    position:relative;
    width:100%;
    display:flex;
    align-items:stretch;
  }
  .location-show-panel{
    width:100%;
    will-change:transform;
  }
  .location-show-body{
    display:flex;
    flex-direction:column;
    gap:1.15rem;
    align-items:stretch;
  }
  .location-show-media,
  .location-show-thumb{
    margin:0;
  }
  .location-show-frame{
    position:relative;
    display:block;
    background:#fff;
    padding:0.5rem;
    box-shadow:0 14px 36px rgba(23,77,92,0.14);
  }
  .location-show-frame img{
    display:block;
    width:100%;
    object-fit:cover;
  }
  .location-show-frame--main{
    width:100%;
  }
  .location-show-frame--main img{
    aspect-ratio:16/10;
    height:auto;
  }
  .location-show-frame--thumb{
    width:100%;
    overflow:hidden;
  }
  .location-show-frame--thumb img{
    aspect-ratio:16/10;
    height:auto;
  }
  .location-show-thumb-content{
    display:block;
    text-align:center;
    padding:0.25rem 0.5rem 0.35rem;
    color:var(--ink);
    overflow:visible;
  }
  .location-show-thumb-title{
    display:block;
    margin:0 0 0.5rem;
    font-family:var(--font-script);
    font-size:clamp(1.5rem, 2vw, 2rem);
    line-height:1.35;
    font-weight:400;
    color:var(--gold);
    padding-top:0.12em;
    overflow:visible;
  }
  .location-show-num{
    position:absolute;
    top:0.85rem;
    left:0.85rem;
    z-index:2;
    font-size:var(--fs-xs);
    font-weight:700;
    letter-spacing:0.14em;
    color:#fff;
    padding:0.3rem 0.65rem;
    border-radius:999px;
    background:rgba(51,129,149,0.88);
  }
  .location-show-desc{
    margin:0;
    font-size:var(--fs-sm);
    line-height:1.55;
    font-weight:300;
    color:rgba(24,61,72,0.9);
  }
  .location-show-right{
    display:flex;
    flex-direction:column;
    gap:0.75rem;
  }
  .location-show-nav{
    flex:0 0 auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    gap:0.65rem;
  }
  .location-show-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.85rem;
    height:2.85rem;
    border:1.5px solid rgba(51,129,149,0.55);
    border-radius:0;
    background:rgba(255,255,255,0.92);
    color:#338195;
    cursor:pointer;
    clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);
    transition:background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .location-show-arrow:hover{
    background:#338195;
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(51,129,149,0.28);
  }
  .location-show-arrow:active{
    transform:translateY(0);
  }
  .location-show-arrow svg{ display:block; }
  @media (min-width:900px){
    .location-wrap--showcase{
      padding:5rem 3rem 2.25rem 3.5rem;
    }
    .location-show{
      gap:0.5rem;
    }
    .location-show-body{
      flex-direction:row;
      align-items:flex-end;
      justify-content:center;
      gap:clamp(1.5rem, 3vw, 2.5rem);
    }
    .location-show-media{
      flex:1 1 0;
      min-width:0;
    }
    .location-show-frame--main{
      width:100%;
      max-width:100%;
    }
    .location-show-frame--main img{
      width:100%;
      height:auto;
      aspect-ratio:16/10;
    }
    .location-show-right{
      flex:0 0 clamp(24rem, 32vw, 34rem);
      width:clamp(24rem, 32vw, 34rem);
      justify-content:flex-end;
      gap:1.25rem;
    }
    .location-show-desc{
      font-size:clamp(0.78rem, 0.9vw, 0.95rem);
      line-height:1.6;
      max-width:100%;
    }
    .location-show-frame--thumb{
      width:100%;
    }
    .location-show-frame--thumb img{
      height:auto;
      aspect-ratio:16/10;
    }
    .location-show-nav{
      flex:0 0 auto;
      flex-direction:column;
      align-items:center;
      align-self:stretch;
      justify-content:flex-end;
      gap:0.5rem;
      padding-bottom:0.5rem;
    }
  }
  @media (min-width:1025px){
    .location-wrap--showcase{
      padding:5.25rem 3rem 1.75rem 4.5rem;
    }
  }

  /* Slide 2 — left transparent, right column map full */
  #location-connect{
    position:relative;
    background:#ebf2f7;
    overflow:hidden;
  }
  #location-connect .location-wrap--connect{
    position:relative;
    z-index:1;
    min-height:100%;
    height:100%;
    display:flex;
    align-items:stretch;
    padding-top:0;
    padding-bottom:1.25rem;
  }
  .location-connect-panel{
    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:
      "left"
      "map";
    width:100%;
    height:100%;
    min-height:0;
    background:transparent;
    box-shadow:none;
    border:none;
    border-radius:0;
    overflow:visible;
    gap:0;
  }
  .location-connect-left{
    grid-area:left;
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:0;
    background-color:#F5FAFA;
    background-image:url('assets/ChatGPT Image Jul 20, 2026, 09_42_23 AM.png');
    background-size:cover;
    background-position:28% 72%;
    background-repeat:no-repeat;
  }
  .location-connect-intro{
    grid-area:unset;
    position:relative;
    flex:0 0 auto;
    padding:clamp(5.5rem, 11dvh, 6.5rem) 1.25rem 0.85rem;
    background:transparent;
    color:var(--ink);
    overflow:hidden;
    text-align:center;
  }
  .location-connect-intro::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:0;
    background:linear-gradient(180deg,
      rgba(255,255,255,0.94) 0%,
      rgba(255,255,255,0.82) 38%,
      rgba(255,255,255,0.45) 68%,
      rgba(255,255,255,0.12) 100%);
    pointer-events:none;
  }
  .location-connect-intro > *{
    position:relative;
    z-index:1;
  }
  .location-highlights{
    position:relative;
    padding:5.5rem 1.25rem 2.5rem;
    background-color:#F5FAFA;
    background-image:url('assets/ChatGPT Image Jul 20, 2026, 09_42_23 AM.png');
    background-size:cover;
    background-position:28% 72%;
    background-repeat:no-repeat;
    color:var(--ink);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:stretch;
    width:100%;
    max-width:none;
    margin:0;
    box-sizing:border-box;
    overflow:hidden;
  }
  .location-highlights::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:0;
    background:linear-gradient(180deg,
      rgba(255,255,255,0.94) 0%,
      rgba(255,255,255,0.82) 38%,
      rgba(255,255,255,0.45) 68%,
      rgba(255,255,255,0.12) 100%);
    pointer-events:none;
  }
  .location-highlights > *{
    position:relative;
    z-index:1;
  }
  .location-connect-title-block{
    margin:0 auto;
    padding:20px;
    max-width:480px;
    width:100%;
    text-align:center;
    color:var(--connect-title-ink);
  }
  .location-connect-eyebrow{
    font-family:var(--font-connect-sans);
    font-weight:600;
    font-size:19px;
    letter-spacing:0;
    color:var(--connect-title-ink);
    margin-bottom:-6px;
  }
  .location-connect-main-title{
    font-family:var(--font-connect-serif);
    font-style:normal;
    font-weight:500;
    font-size:46px;
    color:var(--connect-title-ink);
    line-height:0.95;
    margin:0;
  }
  .location-connect-sub-title{
    font-family:var(--font-connect-serif);
    font-style:normal;
    font-weight:500;
    font-size:46px;
    color:var(--connect-title-ink);
    line-height:0.95;
    white-space:nowrap;
    margin-top:-4px;
  }
  .location-connect-sub-title .location-connect-caps{
    font-family:var(--font-connect-sans);
    font-style:normal;
    font-weight:600;
    font-size:19px;
    letter-spacing:0;
    vertical-align:baseline;
  }
  .location-connect-list-wrap{
    position:relative;
    z-index:1;
    flex:1 1 auto;
    min-height:0;
    padding:0 1.25rem 1.35rem;
    background:transparent;
  }
  #location-connect .location-connect-list-wrap .location-list{
    margin:0;
  }
  .location-connect-columns-wrap{
    position:relative;
    z-index:1;
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    background:rgba(255,255,255,0.92);
    padding:0 1.25rem 1.25rem;
  }
  .location-connect-bar{
    flex:0 0 auto;
  }
  .location-connect-bar-track{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    height:0.55rem;
  }
  .location-connect-bar-seg--1{ background:#d7ebc8; }
  .location-connect-bar-seg--2{ background:#2f6f3d; }
  .location-connect-bar-seg--3{ background:#84bd43; }
  .location-connect-bar-markers{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  .location-connect-bar-marker{
    display:flex;
    justify-content:center;
    height:0.65rem;
  }
  .location-connect-bar-marker::after{
    content:'';
    width:0;
    height:0;
    border-left:0.45rem solid transparent;
    border-right:0.45rem solid transparent;
    border-top:0.55rem solid currentColor;
  }
  .location-connect-bar-marker--1{ color:#d7ebc8; }
  .location-connect-bar-marker--2{ color:#2f6f3d; }
  .location-connect-bar-marker--3{ color:#84bd43; }
  .location-connect-columns{
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
    gap:0;
    background:transparent;
  }
  .location-connect-col{
    display:grid;
    grid-template-columns:3.75rem 1fr;
    gap:0 0.85rem;
    align-items:start;
    min-width:0;
    padding:0.75rem 0;
    border-bottom:1px solid rgba(18,54,52,0.1);
  }
  .location-connect-col:last-child{
    border-bottom:none;
    padding-bottom:0;
  }
  .location-connect-col-head{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:0;
    padding:0;
    background:transparent;
    border-bottom:none;
    grid-row:1 / -1;
  }
  .location-connect-col-time{
    font-family:var(--font-display);
    font-size:var(--fs-connect-stat);
    font-weight:700;
    line-height:1;
    color:var(--gold);
    font-variant-numeric:tabular-nums;
    text-shadow:0 1px 0 rgba(255,255,255,0.9);
  }
  .location-connect-col-unit{
    display:block;
    font-family:var(--font-sans);
    font-size:var(--fs-connect-unit);
    font-weight:700;
    line-height:1;
    color:rgba(30,64,62,0.55);
    letter-spacing:0.14em;
    text-transform:uppercase;
    margin-top:0.28rem;
  }
  .location-connect-col-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:0.12rem;
    grid-column:2;
  }
  .location-connect-col-list li{
    position:relative;
    padding-left:0.85rem;
    font-family:var(--font-body);
    font-size:var(--fs-connect-body);
    line-height:1.42;
    font-weight:500;
    color:rgba(18,54,52,0.92);
  }
  .location-connect-col-list li::before{
    content:'';
    position:absolute;
    left:0;
    top:0.62em;
    width:0.26rem;
    height:0.26rem;
    border-radius:999px;
    background:rgba(18,54,52,0.4);
    transform:translateY(-50%);
  }
  .location-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:0;
    border-top:1px solid rgba(18,54,52,0.1);
  }
  .location-list-item{
    display:grid;
    grid-template-columns:4rem 1fr;
    gap:1rem 1.25rem;
    align-items:center;
    padding:0.85rem 0;
    border-bottom:1px solid rgba(18,54,52,0.1);
    font-family:var(--font-body);
    font-size:var(--fs-connect-body);
    line-height:1.4;
    font-weight:400;
    color:rgba(18,54,52,0.92) !important;
    background:transparent;
    border-radius:0;
    text-shadow:0 1px 0 rgba(255,255,255,0.85);
  }
  .location-list-item:last-child{ border-bottom:none; padding-bottom:0; }
  .location-list-item--group{
    align-items:start;
  }
  .location-list-item--group .location-list-time{
    align-self:center;
    padding-top:0;
  }
  .location-list-item--pin .location-list-dot{ justify-self:center; }
  .location-list-item--pin .location-list-label{
    font-weight:600;
    font-size:var(--fs-connect-pin);
  }
  .location-list-label{ min-width:0; font-weight:500; }
  .location-list-places{
    display:flex;
    flex-direction:column;
    gap:0.15rem;
    min-width:0;
  }
  .location-list-place{
    display:block;
    font-weight:500;
    line-height:1.45;
  }
  .location-list-time{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    justify-self:start;
    padding:0;
    background:none;
    box-shadow:none;
    font-family:var(--font-display);
    font-size:var(--fs-connect-stat);
    line-height:1;
    color:var(--gold);
    font-weight:700;
    font-variant-numeric:tabular-nums;
    text-shadow:0 1px 0 rgba(255,255,255,0.9);
  }
  .location-list-time span{
    display:block;
    width:100%;
    text-align:center;
    font-size:var(--fs-connect-unit);
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:rgba(30,64,62,0.55);
    margin-top:0.28rem;
    font-weight:700;
  }
  .location-list-dot{
    width:0.6rem;
    height:0.6rem;
    border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 0 4px rgba(216,165,58,0.18);
  }
  .location-map-panel{
    grid-area:map;
    position:relative;
    width:100%;
    min-height:240px;
    background:#1A4652;
    overflow:hidden;
  }
  .location-map-panel img{
    display:block;
    width:100%;
    height:240px;
    object-fit:cover;
    object-position:center;
  }
  .location-map-panel .map-pin{ z-index:2; }

  @media (min-width:769px){
    #location{
      overflow:hidden;
    }
    .location-wrap{
      height:100%;
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:5rem 2.5rem 1.5rem 3.5rem;
    }
    .location-wrap--showcase{
      justify-content:flex-start;
      overflow:visible;
    }
    .location-header{ margin-bottom:1.35rem; flex:0 0 auto; }
    .location-features{
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:1.15rem;
      flex:0 0 auto;
    }
    .location-feature-media{ height:13rem; }
    .location-feature-body{ padding:1.15rem 1.2rem 1.3rem; }
    .location-feature-card h3{ font-size:var(--fs-sub); }
    .location-feature-card p{
      font-size:var(--fs-body);
      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:4;
      overflow:hidden;
    }
  }

  /* Location connect — stack layout (mobile + tablet) */
  @media (max-width:1024px){
    #location-connect{
      overflow-x:hidden;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
    }
    #location-connect .location-wrap--connect{
      height:auto;
      min-height:100%;
      padding:0 0 1rem;
    }
    #location-connect .location-connect-panel{
      display:grid;
      grid-template-areas:
        "left"
        "map";
      grid-template-columns:1fr;
      height:auto;
      min-height:0;
    }
    #location-connect .location-connect-left{
      min-height:0;
    }
    #location-connect .location-connect-intro{
      flex:0 0 auto;
      height:auto;
      padding:clamp(5.5rem, 11dvh, 6rem) 1.25rem 0.65rem;
      overflow:visible;
      text-align:center;
    }
    #location-connect .location-connect-title-block{
      max-width:min(480px, 100%);
      padding:16px;
    }
    #location-connect .location-connect-eyebrow{
      font-size:clamp(0.95rem, 2.4vw, 19px);
      letter-spacing:0;
    }
    #location-connect .location-connect-main-title{
      font-size:clamp(2rem, 5vw, 46px);
    }
    #location-connect .location-connect-sub-title{
      font-size:clamp(2rem, 5vw, 46px);
    }
    #location-connect .location-connect-sub-title .location-connect-caps{
      font-size:clamp(0.95rem, 2.4vw, 19px);
    }
    #location-connect .location-connect-list-wrap{
      padding:0 1.25rem 1rem;
    }
    #location-connect .location-map-panel{
      flex:0 0 auto;
      position:relative;
      width:100%;
      min-height:0;
      height:auto;
    }
    #location-connect .location-map-panel img{
      position:relative;
      inset:auto;
      display:block;
      width:100%;
      height:auto;
      min-height:220px;
      max-height:42dvh;
      object-fit:cover;
      object-position:center;
    }
  }

  @media (min-width:769px) and (max-width:1024px){
    #location-connect .location-wrap--connect{
      padding:4.75rem 0 1.25rem;
    }
    #location-connect .location-connect-intro{
      padding:clamp(5.5rem, 11dvh, 6rem) 2rem 0.65rem 2.75rem;
    }
    #location-connect .location-connect-list-wrap{
      padding:0 2rem 1rem 2.75rem;
    }
    #location-connect .location-list-item{
      grid-template-columns:3.75rem 1fr;
    }
    #location-connect .location-map-panel img{
      min-height:280px;
      max-height:40dvh;
    }
  }

  @media (min-width:1025px){
    #location-connect{
      overflow:hidden;
    }
    #location-connect .location-wrap--connect{
      min-height:0;
      height:100%;
      max-width:none;
      width:100%;
      padding:0;
      align-items:stretch;
    }
    .location-connect-panel{
      display:grid;
      grid-template-columns:minmax(0, 6fr) minmax(0, 4fr);
      grid-template-areas:"left map";
      height:100%;
      min-height:0;
      border-radius:0;
    }
    .location-connect-left{
      min-height:0;
      overflow:auto;
      overscroll-behavior:contain;
      -webkit-overflow-scrolling:touch;
    }
    .location-connect-intro{
      padding:clamp(5.5rem, 11dvh, 6.5rem) 2rem 1.25rem calc(6.5rem + 130px);
      overflow:visible;
      background-position:24% 80%;
    }
    .location-connect-intro > *,
    .location-connect-title-block{
      max-width:none;
    }
    .location-connect-title-block{
      margin-bottom:0;
      padding:20px;
      max-width:480px;
    }
    .location-connect-list-wrap{
      flex:1 1 auto;
      padding:0.5rem 2.5rem 2rem calc(6.5rem + 130px);
      overflow:auto;
      overscroll-behavior:contain;
      -webkit-overflow-scrolling:touch;
      background:transparent;
    }
    #location-connect .location-connect-list-wrap .location-list{
      max-width:none;
    }
    #location-connect .location-list-item{
      grid-template-columns:4.25rem 1fr;
      gap:1rem 1.5rem;
      padding:1rem 0;
    }
    #location-connect .location-list-time{
      font-size:clamp(1.75rem, 2.2vw, 2.15rem);
    }
    .location-map-panel{
      grid-area:map;
      min-height:0;
      height:100%;
    }
    .location-map-panel img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
    }
    .map-pin{ width:11px; height:11px; }
    .map-pin--main{ width:14px; height:14px; }
    .location-wrap{
      padding:5.25rem 3rem 1.75rem 4.5rem;
      max-width:110rem;
    }
    .location-features{ gap:1.35rem; }
    .location-feature-media{ height:14.5rem; }
    .location-feature-card h3{ font-size:var(--fs-sub); }
    .location-feature-card p{ font-size:var(--fs-body); -webkit-line-clamp:5; }
  }

  .map-pin{
    position:absolute;
    width:14px;
    height:14px;
    transform:translate(-50%,-50%);
    pointer-events:none;
    z-index:2;
  }
  .map-pin--main{ width:18px; height:18px; z-index:3; }
  .map-pin__core{
    position:relative;
    width:100%;
    height:100%;
    border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 14px rgba(216,165,58,0.85);
    animation:map-blink 1.4s ease-in-out infinite alternate;
  }
  .map-pin--main .map-pin__core{
    background:var(--emerald);
    box-shadow:0 0 18px rgba(51,130,149,0.9);
    animation-duration:1.1s;
  }
  .map-pin__ring{
    position:absolute;
    inset:-6px;
    border-radius:50%;
    border:2px solid rgba(216,165,58,0.65);
    animation:map-pulse 2.2s ease-out infinite;
  }
  .map-pin--main .map-pin__ring{
    border-color:rgba(51,130,149,0.7);
    animation-duration:1.8s;
  }
  @keyframes map-blink{
    0%{ opacity:0.45; transform:scale(0.92); }
    100%{ opacity:1; transform:scale(1); }
  }
  @keyframes map-pulse{
    0%{ transform:scale(0.6); opacity:0.9; }
    100%{ transform:scale(2.4); opacity:0; }
  }

  /* ---------- Facilities ---------- */
  #facilities{
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 !important;
    background:var(--surface-0);
  }
  .facilities-layout{
    width:100%;
    min-height:100vh;
  }
  .facilities-copy-col{
    position:relative;
    text-align:left;
    padding:5.5rem 1.25rem 2rem;
    background:var(--surface-0);
  }
  .facilities-eyebrow{
    margin:0;
    font-family:var(--font-sans);
    font-size:var(--fs-sub);
    font-weight:600;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:#338195;
  }
  .facilities-gallery-title{
    margin:0.85rem 0 0;
    padding:0;
    flex-shrink:0;
    font-weight:inherit;
    font-size:inherit;
    line-height:inherit;
  }
  .facilities-title-block{
    text-align:left;
    max-width:480px;
    padding:0;
    color:#1c3d5e;
  }
  .facilities-title-line{
    display:flex;
    justify-content:flex-start;
    align-items:baseline;
    flex-wrap:wrap;
    gap:10px;
  }
  .facilities-title-sans{
    font-family:var(--font-connect-sans);
    font-weight:600;
    font-size:22px;
    letter-spacing:0;
    text-transform:uppercase;
    color:#1c3d5e;
  }
  .facilities-title-serif{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:52px;
    color:#1c3d5e;
    line-height:1;
  }
  .facilities-title-sub{
    margin-top:10px;
  }
  .facilities-subtitle{
    margin:1.15rem 0 0;
    padding:0;
    font-weight:inherit;
    font-size:inherit;
    line-height:inherit;
    color:inherit;
  }
  .facilities-subtitle-block{
    text-align:left;
    max-width:480px;
    padding:0;
    color:#1c3d5e;
  }
  .facilities-subtitle-line{
    display:flex;
    justify-content:flex-start;
    align-items:baseline;
    flex-wrap:wrap;
    gap:10px;
  }
  .facilities-subtitle-sans{
    font-family:var(--font-connect-sans);
    font-weight:600;
    font-size:22px;
    letter-spacing:0;
    text-transform:uppercase;
    color:#1c3d5e;
  }
  .facilities-subtitle-serif{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:52px;
    color:#1c3d5e;
    line-height:1;
  }
  .facilities-subtitle-script{
    font-family:'Allura',var(--font-script),cursive;
    font-weight:400;
    font-size:44px;
    color:#1c3d5e;
    margin-top:-8px;
    text-align:right;
  }
  .facilities-desc{
    margin-top:1.15rem;
  }
  .facilities-desc-headline-block{
    text-align:left;
    max-width:480px;
    padding:0;
    color:#1c3d5e;
  }
  .facilities-desc-headline-line{
    display:flex;
    justify-content:flex-start;
    align-items:baseline;
    flex-wrap:wrap;
    gap:10px;
  }
  .facilities-desc-headline-sans{
    font-family:var(--font-connect-sans);
    font-weight:600;
    font-size:11px;
    letter-spacing:0;
    text-transform:uppercase;
    color:#1c3d5e;
  }
  .facilities-desc-headline-serif{
    font-family:var(--font-connect-serif);
    font-weight:600;
    font-size:26px;
    color:#1c3d5e;
    line-height:1;
  }
  .facilities-desc-body{
    margin:0.85rem 0 0;
    font-size:var(--fs-body);
    line-height:1.75;
    font-weight:300;
    color:rgba(30,64,62,0.76);
  }
  .facilities-gallery-col{
    position:relative;
    width:100%;
    padding:0 0 2rem;
    display:flex;
    flex-direction:column;
    min-height:0;
  }
  .facilities-slider-nav{
    display:flex;
    justify-content:flex-end;
    gap:0.55rem;
    flex-shrink:0;
    position:relative;
    z-index:2;
    padding:0.85rem 1.25rem 0;
  }
  .facilities-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.65rem;
    height:2.65rem;
    border:1.5px solid rgba(51,129,149,0.55);
    border-radius:0;
    background:rgba(255,255,255,0.92);
    color:#338195;
    cursor:pointer;
    clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);
    transition:background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .facilities-arrow:hover{
    background:#338195;
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(51,129,149,0.28);
  }
  .facilities-arrow:active{ transform:translateY(0); }
  .facilities-arrow svg{ display:block; }
  .facilities-viewport{
    flex:1;
    min-height:0;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    cursor:grab;
    touch-action:pan-x;
  }
  .facilities-viewport::-webkit-scrollbar{ display:none; }
  .facilities-viewport.is-dragging{ cursor:grabbing; scroll-behavior:auto; }
  .facilities-track{
    display:flex;
    gap:0.85rem;
    height:100%;
    min-height:clamp(220px, 52vw, 420px);
    width:max-content;
    padding:0 3rem 0 1.25rem;
  }
  .facilities-slide{
    position:relative;
    flex:0 0 auto;
    height:100%;
    min-height:0;
    overflow:hidden;
    scroll-snap-align:start;
    background:var(--surface-2);
  }
  .facilities-slide img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    pointer-events:none;
    user-select:none;
  }
  .facilities-slide figcaption{
    position:absolute;
    left:50%;
    bottom:1.15rem;
    transform:translateX(-50%);
    margin:0;
    padding:0 1rem;
    font-family:var(--font-sans);
    font-size:clamp(0.72rem, 2.8vw, 0.92rem);
    font-weight:700;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:#fff;
    text-align:center;
    text-shadow:0 2px 14px rgba(0,0,0,0.45);
    white-space:nowrap;
    z-index:3;
  }
  .facilities-slide--arch-map .facilities-arch-map,
  .facilities-slide--arch-map .arch-map-stage{
    width:100%;
    height:100%;
    max-height:none;
    aspect-ratio:4098 / 2036;
  }
  .facilities-slide--arch-map .arch-map-stage img{
    pointer-events:none;
    object-fit:cover;
    object-position:center center;
  }
  .facilities-slide--arch-map .arch-map-svg{
    pointer-events:none;
  }
  .facilities-slide--arch-map .arch-point{
    pointer-events:all;
  }
  .facilities-scrub{
    flex-shrink:0;
    padding:1.1rem 1.25rem 0;
  }
  .facilities-scrub-rail{
    position:relative;
    height:3px;
    background:rgba(30,64,62,0.14);
    border-radius:999px;
  }
  .facilities-scrub-thumb{
    position:absolute;
    top:50%;
    left:0;
    height:5px;
    min-width:2.5rem;
    padding:0;
    border:none;
    border-radius:999px;
    background:var(--gold);
    transform:translateY(-50%);
    cursor:grab;
    touch-action:none;
  }
  .facilities-scrub-thumb.is-dragging{ cursor:grabbing; }
  /* Tablet + mobile — stack text / gallery 50-50 (svh-safe for Samsung) */
  @media (max-width:1024px){
    #facilities{
      height:100svh;
      min-height:100svh;
      max-height:100svh;
      overflow:hidden;
    }
    #facilities .facilities-layout{
      display:flex;
      flex-direction:column;
      height:100%;
      min-height:0;
      max-height:100%;
      box-sizing:border-box;
    }
    #facilities .facilities-copy-col{
      flex:1 1 0;
      min-height:0;
      max-height:50%;
      overflow-x:hidden;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
      box-sizing:border-box;
      padding:clamp(3.5rem, 9svh, 4.25rem) 1.25rem 0.65rem;
    }
    #facilities .facilities-copy-col > .facilities-eyebrow,
    #facilities .facilities-copy-col > .facilities-gallery-title,
    #facilities .facilities-copy-col > .facilities-subtitle,
    #facilities .facilities-copy-col > .facilities-desc,
    #facilities .facilities-copy-col > p{
      max-width:100%;
    }
    #facilities .facilities-copy-col p,
    #facilities .facilities-copy-col .facilities-desc-body{
      display:block;
      overflow:visible;
      -webkit-line-clamp:unset;
      line-clamp:unset;
      -webkit-box-orient:unset;
    }
    #facilities .facilities-gallery-col{
      flex:1 1 0;
      min-height:0;
      max-height:50%;
      overflow:hidden;
      display:flex;
      flex-direction:column;
      padding:0 0 max(0.35rem, env(safe-area-inset-bottom));
      box-sizing:border-box;
    }
    #facilities .facilities-viewport{
      flex:1 1 auto;
      min-height:0;
      height:auto;
      max-height:100%;
      touch-action:pan-x;
    }
    #facilities .facilities-track{
      min-height:100%;
      height:100%;
      padding:0 1.25rem;
      gap:0.75rem;
      align-items:stretch;
    }
    #facilities .facilities-slide{
      height:100%;
      min-height:0;
      max-height:100%;
      overflow:hidden;
      border-radius:0.35rem;
    }
    #facilities .facilities-slide img{
      width:100%;
      height:100%;
      min-height:0;
      object-fit:cover;
      object-position:center center;
    }
    #facilities .facilities-scrub{
      flex-shrink:0;
      padding:0.55rem 1.25rem 0;
    }
    #facilities .facilities-slider-nav{
      flex-shrink:0;
      padding:0.5rem 1.25rem 0;
    }
  }
  @media (min-width:769px) and (max-width:1024px){
    #facilities .facilities-copy-col{
      padding:clamp(3.75rem, 8svh, 4.5rem) 1.75rem 0.75rem;
    }
    #facilities .facilities-gallery-title .facilities-title-serif{
      font-size:clamp(2.25rem, 5.5vw, 52px);
      line-height:1;
    }
    #facilities .facilities-gallery-title .facilities-title-sans{
      font-size:clamp(1rem, 2.6vw, 22px);
      letter-spacing:0;
    }
    #facilities .facilities-subtitle-serif{
      font-size:clamp(2.25rem, 5.5vw, 52px);
      line-height:1;
    }
    #facilities .facilities-subtitle-sans{
      font-size:clamp(1rem, 2.6vw, 22px);
      letter-spacing:0;
    }
    #facilities .facilities-subtitle-script{
      font-size:clamp(1.75rem, 4.5vw, 44px);
      margin-top:-8px;
      text-align:left;
      padding-left:0;
    }
    #facilities .facilities-desc-headline-serif{
      font-size:clamp(1.125rem, 5.5vw, 26px);
      line-height:1;
    }
    #facilities .facilities-desc-headline-sans{
      font-size:clamp(0.5rem, 2.6vw, 11px);
      letter-spacing:0;
    }
    #facilities .facilities-copy-col p,
    #facilities .facilities-copy-col .facilities-desc-body{
      font-size:0.875rem;
      line-height:1.55;
    }
    #facilities .facilities-track{
      padding:0 1.75rem;
      gap:0.85rem;
    }
    #facilities .facilities-scrub,
    #facilities .facilities-slider-nav{
      padding-left:1.75rem;
      padding-right:1.75rem;
    }
  }
  @media (min-width:1025px){
    #facilities{
      height:100dvh;
      max-height:100dvh;
      overflow:hidden;
    }
    .facilities-layout{
      display:grid;
      grid-template-columns:minmax(0, 0.42fr) minmax(0, 0.58fr);
      align-items:stretch;
      height:100%;
      max-height:100dvh;
      min-height:0;
      overflow:hidden;
    }
    .facilities-copy-col{
      height:100%;
      min-height:0;
      padding:5rem 1.5rem 2rem calc(5rem + 50px);
      display:flex;
      flex-direction:column;
      justify-content:center;
      overflow:hidden;
    }
    .facilities-copy-col > .facilities-eyebrow,
    .facilities-copy-col > .facilities-gallery-title,
    .facilities-copy-col > .facilities-subtitle,
    .facilities-copy-col > .facilities-desc,
    .facilities-copy-col > p{
      max-width:min(22rem, 88%);
    }
    .facilities-copy-col .facilities-gallery-title{ margin-top:0.65rem; }
    .facilities-copy-col .facilities-subtitle{
      margin-top:1.25rem;
    }
    .facilities-copy-col .facilities-desc{
      margin-top:1rem;
    }
    .facilities-copy-col p,
    .facilities-copy-col .facilities-desc-body{
      margin-top:1rem;
      font-size:var(--fs-body);
      line-height:1.65;
      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:6;
      overflow:hidden;
    }
    .facilities-gallery-col{
      height:100%;
      padding:3.25rem 2rem 2rem 0;
      overflow:hidden;
      justify-content:center;
    }
    .facilities-slider-nav{
      padding:0.85rem 2rem 0 1.25rem;
    }
    .facilities-arrow{
      width:2.85rem;
      height:2.85rem;
    }
    .facilities-viewport{
      flex:0 1 auto;
      min-height:0;
      max-height:min(64vh, 540px);
      height:min(64vh, 540px);
    }
    .facilities-track{
      min-height:0;
      height:100%;
      gap:1rem;
      padding:0 5.5rem 0 1.25rem;
    }
    .facilities-slide{
      max-width:none;
    }
    .facilities-slide figcaption{
      bottom:1.35rem;
      font-size:clamp(0.78rem, 1.1vw, 0.95rem);
    }
    .facilities-scrub{
      padding:1.35rem 2rem 0 1.25rem;
    }
  }
  @media (min-width:1025px){
    .facilities-copy-col{
      padding-left:calc(7rem + 50px);
      padding-right:1.75rem;
    }
    .facilities-copy-col > .facilities-eyebrow,
    .facilities-copy-col > .facilities-gallery-title,
    .facilities-copy-col > .facilities-subtitle,
    .facilities-copy-col > .facilities-desc,
    .facilities-copy-col > p{
      max-width:min(24rem, 84%);
    }
    .facilities-copy-col p,
    .facilities-copy-col .facilities-desc-body{
      -webkit-line-clamp:7;
    }
    .facilities-slider-nav{
      padding-right:2.5rem;
    }
    .facilities-scrub{
      padding-right:2.5rem;
    }
  }

  .intro-specs{
    margin-top:1.75rem;
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .intro-spec-row{
    display:grid;
    grid-template-columns:minmax(7rem, 8.5rem) 1fr;
    gap:0.75rem 1rem;
    padding:0.7rem 0;
    border-bottom:1px solid rgba(18,54,52,0.08);
    text-align:left;
  }
  .intro-spec-row:last-child{ border-bottom:none; padding-bottom:0; }
  .intro-spec-label{
    font-size:var(--fs-xs);
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-700);
    font-weight:600;
    line-height:1.45;
  }
  .intro-spec-value{
    font-size:var(--fs-body);
    font-weight:300;
    line-height:1.55;
    color:rgba(30,64,62,0.84);
  }
  #intro .intro-spec-label{
    color:rgba(255,217,138,0.92);
  }
  #intro .intro-spec-value{
    color:rgba(255,255,255,0.92);
  }
  #intro .intro-spec-row{
    border-bottom-color:rgba(255,255,255,0.16);
  }
  @media (max-width:768px){
    .intro-spec-row{
      grid-template-columns:minmax(5.75rem, 7rem) 1fr;
      gap:0.35rem 0.75rem;
      text-align:left;
    }
  }
  .plan-stack{
    margin-top:2.5rem;
    margin-bottom:2.5rem;
    padding-top:1.25rem;
    padding-bottom:1.25rem;
  }
  @media (min-width:768px){
    .plan-stack{
      margin-top:3.5rem;
      margin-bottom:3.5rem;
      padding-top:1.75rem;
      padding-bottom:1.75rem;
    }
  }
  .plan-row{
    border-radius:0.85rem;
    padding-left:1rem; padding-right:1rem;
    transition:background .35s ease, box-shadow .35s ease;
  }
  .plan-row:hover{
    background:rgba(51,130,149,0.05);
    box-shadow:inset 0 0 0 1px rgba(51,130,149,0.10);
  }

  /* ---------- Products ---------- */
  #plans{
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 !important;
  }
  .product-wrap{
    width:100%;
    max-width:90rem;
    margin:0 auto;
    padding:5.5rem 1.25rem 2.5rem;
    box-sizing:border-box;
  }
  .product-wrap > .chapter-num{
    text-align:center;
    margin-bottom:1.5rem;
  }
  .product-slider{
    position:relative;
    padding:0 3rem;
  }
  .product-slide{
    display:grid;
    gap:1.25rem;
    align-items:stretch;
  }
  .product-content-box{
    padding:1.75rem 1.5rem;
    text-align:left;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:none;
    border:none;
    border-radius:0;
    box-shadow:none;
  }
  .product-content-box h2{
    font-family:var(--font-sans);
    font-size:var(--fs-h2);
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink);
    margin:0;
    line-height:1.25;
  }
  .product-content-box h3{
    font-family:var(--font-sans);
    font-size:var(--fs-sub);
    font-weight:600;
    font-style:italic;
    color:rgba(30,64,62,0.92);
    margin:0.85rem 0 0;
    line-height:1.4;
  }
  .product-content-box .product-desc{
    margin:1.15rem 0 0;
    font-size:var(--fs-body);
    line-height:1.72;
    font-weight:300;
    color:rgba(30,64,62,0.76);
  }
  .product-content-box .product-area{
    margin:1.25rem 0 0;
    font-size:var(--fs-body);
    font-weight:500;
    letter-spacing:0.04em;
    color:var(--gold);
  }
  .product-visual{
    display:grid;
    grid-template-rows:1.15fr 0.85fr;
    gap:4px;
    min-height:280px;
  }
  .product-visual-main{
    position:relative;
    overflow:hidden;
    margin:0;
    min-height:0;
    height:100%;
    background:var(--surface-2);
  }
  .product-visual-sub{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px;
    min-height:0;
  }
  .product-visual-sub figure{
    position:relative;
    overflow:hidden;
    margin:0;
    min-height:0;
    height:100%;
    background:var(--surface-2);
  }
  .product-visual img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    will-change:transform, opacity;
    transition:transform .55s var(--ease);
  }
  .product-visual figure:hover img{ transform:scale(1.04); }
  .product-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:12;
    width:2.75rem;
    height:2.75rem;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--border-strong);
    border-radius:50%;
    background:rgba(255,255,255,0.92);
    color:var(--teal);
    cursor:pointer;
    backdrop-filter:blur(8px);
    box-shadow:0 8px 24px rgba(18,54,52,0.10);
    transition:border-color .3s ease, background .3s ease, color .3s ease;
  }
  .product-nav:hover{
    border-color:var(--teal);
    background:var(--teal);
    color:#fff;
    box-shadow:0 10px 30px rgba(51,130,149,0.28);
    transform:translateY(-50%) scale(1.04);
  }
  .product-nav svg{
    width:1.1rem;
    height:1.1rem;
    stroke:currentColor;
    fill:none;
    stroke-width:1.75;
  }
  .product-nav--prev{ left:0; }
  .product-nav--next{ right:0; }
  .product-dots{
    display:flex;
    justify-content:center;
    gap:0.5rem;
    margin-top:1.25rem;
  }
  .product-dot{
    width:0.45rem;
    height:0.45rem;
    border-radius:50%;
    border:none;
    padding:0;
    background:rgba(18,54,52,0.18);
    cursor:pointer;
    transition:background .3s ease, transform .3s ease;
  }
  .product-dot.active{
    background:var(--gold);
    transform:scale(1.15);
  }
  @media (min-width:769px){
    #plans{
      height:100dvh;
      max-height:100dvh;
      overflow:hidden;
    }
    .product-wrap{
      height:100%;
      max-height:100dvh;
      display:flex;
      flex-direction:column;
      padding:5rem 3.5rem 1.25rem 4rem;
      overflow:hidden;
    }
    .product-wrap > .chapter-num{
      margin-bottom:0.85rem;
      flex-shrink:0;
    }
    .product-slider{
      flex:1;
      min-height:0;
      display:flex;
      align-items:stretch;
      padding:0 3.5rem;
    }
    .product-slide{
      flex:1;
      min-height:0;
      grid-template-columns:1fr 1fr;
      gap:1.5rem;
      height:100%;
    }
    .product-content-box{
      padding:2rem 2.25rem;
      min-height:0;
      overflow-y:auto;
    }
    .product-content-box .product-desc{
      font-size:var(--fs-body);
      line-height:1.68;
    }
    .product-visual{
      height:100%;
      min-height:0;
    }
    .product-nav--prev{ left:0.25rem; }
    .product-nav--next{ right:0.25rem; }
    .product-dots{ margin-top:0.85rem; flex-shrink:0; }
  }
  @media (min-width:1025px){
    .product-wrap{ padding:5.25rem 4.5rem 1.5rem 5rem; }
    .product-slider{ padding:0 4rem; }
    .product-content-box{ padding:2.25rem 2.5rem; }
    .product-content-box .product-desc{ font-size:var(--fs-body); }
    .product-nav--prev{ left:0.35rem; }
    .product-nav--next{ right:0.35rem; }
  }

  /* ---------- Investor ---------- */
  #investment{
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 !important;
    background-color:#1A4652;
    background-image:url('assets/ChatGPT Image Jul 20, 2026, 02_41_24 PM.png');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
  }
  #investment > .section-bg{
    z-index:0;
  }
  #investment > .section-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    filter:none;
  }
  .invest-wrap{
    position:relative;
    z-index:1;
    width:100%;
    max-width:58rem;
    margin:0 auto;
    padding:5.5rem 1.5rem 2.5rem;
    box-sizing:border-box;
    text-align:center;
  }
  .invest-header{
    max-width:44rem;
    margin:0 auto;
  }
  .invest-header::after{
    content:'';
    display:block;
    width:2.75rem;
    height:1px;
    margin:1.1rem auto 0;
    background:linear-gradient(90deg, transparent, rgba(216,165,58,0.55), transparent);
  }
  .invest-developer-logo{
    display:inline-flex;
    align-items:stretch;
    justify-content:center;
    margin:0 auto;
    padding:0.5rem 0;
    background:var(--brand);
  }
  .invest-developer-logo__brand{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0.4rem 1.35rem;
    font-family:Georgia, 'Times New Roman', Times, serif;
    font-size:2rem;
    font-weight:400;
    letter-spacing:0.1em;
    line-height:1;
    color:#FFFFFF;
    text-transform:uppercase;
  }
  .invest-developer-logo__divider{
    align-self:center;
    width:1px;
    height:1.55em;
    background:rgba(255,255,255,0.88);
    flex-shrink:0;
  }
  .invest-developer-name{
    margin:0.35rem auto 0;
    font-family:var(--font-sans);
    font-size:var(--fs-h2);
    font-weight:600;
    line-height:1.55;
    letter-spacing:0.025em;
    color:var(--ink);
  }
  .invest-partners-block{
    margin-top:3rem;
  }
  .invest-partners-heading{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1rem;
    margin:0 auto;
    max-width:36rem;
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    font-weight:600;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--emerald);
    text-shadow:0 0 28px rgba(51,130,149,0.35);
  }
  .invest-partners-heading::before,
  .invest-partners-heading::after{
    content:'';
    flex:1;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(51,130,149,0.35));
  }
  .invest-partners-heading::after{
    background:linear-gradient(90deg, rgba(51,130,149,0.35), transparent);
  }
  .invest-partners-grid{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    gap:2.75rem;
    margin-top:2.5rem;
    align-items:center;
  }
  .invest-partner{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1.35rem;
  }
  .invest-partner-logo{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:20rem;
    min-height:5.5rem;
    padding:0;
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
  }
  .invest-partner:hover .invest-partner-logo{
    transform:none;
  }
  .invest-partner-logo img{
    max-width:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    display:block;
    transition:transform .45s var(--ease), opacity .35s ease;
  }
  .invest-partner-logo--exim,
  .invest-partner-logo--mb{
    padding:1.25rem 1.85rem;
    border-radius:1rem;
    background:rgba(255,255,255,0.96);
    border:1px solid rgba(255,255,255,0.72);
    box-shadow:none;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    transition:transform .45s var(--ease);
  }
  .invest-partner:hover .invest-partner-logo--exim,
  .invest-partner:hover .invest-partner-logo--mb{
    transform:translateY(-4px);
  }
  .invest-partner-logo--exim img{
    max-height:4.75rem;
    filter:brightness(1.04) contrast(1.08);
  }
  .invest-partner-logo--mb img{
    max-height:4.25rem;
  }
  .invest-partner:hover .invest-partner-logo img{
    transform:scale(1.03);
    opacity:1;
  }
  .invest-partner-label{
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    font-weight:600;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:rgba(30,64,62,0.82);
    line-height:1.55;
    max-width:18rem;
  }
  /* Tablet + mobile — one frame, large partner logos, compact text */
  @media (max-width:1024px){
    #investment{
      height:100svh;
      min-height:100svh;
      max-height:100svh;
      overflow:hidden;
      display:flex;
      align-items:center;
    }
    #investment .invest-wrap{
      height:100%;
      max-height:100%;
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:clamp(3.25rem, 7.5svh, 4.25rem) 1.25rem 0.85rem;
      box-sizing:border-box;
    }
    #investment .invest-header{
      flex-shrink:0;
      max-width:100%;
    }
    #investment .invest-header::after{
      margin-top:0.55rem;
    }
    #investment .invest-developer-logo{
      padding:0.35rem 0;
    }
    #investment .invest-developer-logo__brand{
      font-size:clamp(0.82rem, 2.4vw, 1.05rem);
      padding:0.28rem 0.75rem;
      letter-spacing:0.08em;
    }
    #investment .invest-developer-logo__divider{
      height:1.35em;
    }
    #investment .invest-developer-name{
      font-size:clamp(0.76rem, 2.6vw, 0.92rem);
      line-height:1.32;
      letter-spacing:0.02em;
      max-width:min(22rem, 92vw);
      margin-top:0.2rem;
    }
    #investment .invest-partners-block{
      flex:0 1 auto;
      min-height:0;
      margin-top:clamp(0.65rem, 2svh, 1.1rem);
      width:100%;
    }
    #investment .invest-partners-grid{
      grid-template-columns:1fr 1fr;
      gap:0.65rem 0.85rem;
      margin-top:0.5rem;
    }
    #investment .invest-partners-grid::before{
      display:none;
    }
    #investment .invest-partner{
      gap:0.4rem;
    }
    #investment .invest-partner-logo{
      max-width:100%;
      min-height:0;
      width:100%;
    }
    #investment .invest-partner-logo--exim,
    #investment .invest-partner-logo--mb{
      padding:0.75rem 1rem;
      min-height:0;
      border-radius:0.75rem;
    }
    #investment .invest-partner-logo--exim img{
      max-height:clamp(4.25rem, 13svh, 6.25rem);
      width:auto;
      max-width:100%;
    }
    #investment .invest-partner-logo--mb img{
      max-height:clamp(3.75rem, 11.5svh, 5.5rem);
      width:auto;
      max-width:100%;
    }
    #investment .invest-partner-label{
      font-size:0.62rem;
      letter-spacing:0.1em;
      line-height:1.3;
      max-width:100%;
    }
  }
  @media (min-width:769px) and (max-width:1024px){
    #investment .invest-wrap{
      padding:clamp(3.5rem, 8svh, 4.5rem) 1.75rem 1rem;
    }
    #investment .invest-developer-name{
      font-size:clamp(0.82rem, 1.8vw, 0.98rem);
      max-width:28rem;
    }
    #investment .invest-partners-grid{
      gap:0.85rem 1.25rem;
      margin-top:0.75rem;
    }
    #investment .invest-partner-logo--exim img{
      max-height:clamp(5rem, 15svh, 7rem);
    }
    #investment .invest-partner-logo--mb img{
      max-height:clamp(4.5rem, 13svh, 6.25rem);
    }
    #investment .invest-partner-logo--exim,
    #investment .invest-partner-logo--mb{
      padding:0.9rem 1.15rem;
    }
    #investment .invest-partner-label{
      font-size:0.68rem;
    }
  }
  @media (max-width:768px){
    #investment .invest-wrap{
      padding:clamp(3.15rem, 7svh, 3.85rem) 1rem 0.75rem;
    }
    #investment .invest-developer-logo__brand{
      font-size:clamp(1.55rem, 3.2vw, 0.9rem);
      padding:0.22rem 0.55rem;
    }
    #investment .invest-developer-name{
      font-size:clamp(0.72rem, 3vw, 0.85rem);
      line-height:1.28;
    }
    #investment .invest-partners-grid{
      gap:0.5rem 0.65rem;
    }
    #investment .invest-partner-logo--exim img{
      max-height:clamp(3.85rem, 12svh, 5.25rem);
    }
    #investment .invest-partner-logo--mb img{
      max-height:clamp(3.35rem, 10.5svh, 4.75rem);
    }
    #investment .invest-partner-logo--exim,
    #investment .invest-partner-logo--mb{
      padding:0.65rem 0.75rem;
    }
    #investment .invest-partner-label{
      font-size:0.58rem;
      letter-spacing:0.08em;
    }
  }
  @media (min-width:1025px){
    #investment{
      height:100dvh;
      max-height:100dvh;
      overflow:hidden;
      display:flex;
      align-items:center;
    }
    .invest-wrap{
      height:100%;
      max-height:100dvh;
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:5rem 2.5rem 2rem 3.5rem;
    }
    .invest-partners-block{ margin-top:2.75rem; }
    .invest-partners-grid{
      grid-template-columns:1fr 1fr;
      gap:2rem;
      margin-top:2.25rem;
    }
    .invest-partners-grid::before{
      content:'';
      position:absolute;
      left:50%;
      top:8%;
      bottom:8%;
      width:1px;
      transform:translateX(-50%);
      background:linear-gradient(180deg, transparent, rgba(18,54,52,0.12) 20%, rgba(18,54,52,0.12) 80%, transparent);
      pointer-events:none;
    }
    .invest-partner-logo{
      max-width:22rem;
      min-height:6.5rem;
    }
    .invest-partner-logo--exim,
    .invest-partner-logo--mb{
      padding:1.35rem 2.1rem;
      min-height:6.5rem;
    }
    .invest-partner-logo--exim img{ max-height:5.75rem; }
    .invest-partner-logo--mb img{ max-height:5.25rem; }
    .invest-partner-label{ font-size:var(--fs-xs); }
    .invest-wrap{
      max-width:62rem;
      padding:5.25rem 3rem 2rem 4.5rem;
    }
    .invest-developer-name{ font-size:var(--fs-h2); }
    .invest-partners-grid{ gap:3rem; margin-top:2.5rem; }
    .invest-partner-logo{ min-height:7rem; }
    .invest-partner-logo--exim,
    .invest-partner-logo--mb{
      padding:1.5rem 2.35rem;
    }
    .invest-partner-logo--exim img{ max-height:6.5rem; }
    .invest-partner-logo--mb img{ max-height:6rem; }
  }

  /* ---------- Contact / Sales Office ---------- */
  #contact{
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:0 !important;
    background-color:#1A4652;
    background-image:url('assets/nenvpbanhang.png');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
  }
  #contact > .section-bg{
    z-index:0;
  }
  #contact > .section-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    filter:none;
  }
  .contact-wrap{
    position:relative;
    z-index:1;
    width:100%;
    max-width:78rem;
    margin:0 auto;
    padding:5rem 1.35rem 0;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    min-height:100%;
  }
  .contact-main{
    flex:1;
    width:100%;
    max-width:72rem;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:0;
  }
  .contact-layout{
    display:grid;
    gap:2rem;
    align-items:center;
    justify-items:center;
    width:100%;
    max-width:72rem;
    margin:0 auto;
    flex:0 1 auto;
  }

  /* Left — info */
  .contact-info{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
    width:100%;
    max-width:26rem;
    margin:0;
    padding:0;
    justify-self:start;
  }
  .contact-logo{
    height:2.85rem;
    width:auto;
    object-fit:contain;
    margin-bottom:1.35rem;
    filter:brightness(0) invert(1);
    align-self:flex-start;
  }
  .contact-info-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0.95rem;
    width:100%;
  }
  .contact-info-item{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0.22rem;
    width:100%;
  }
  .contact-info-label{
    margin:0;
    font-size:var(--fs-xs);
    font-weight:600;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.48);
  }
  .contact-info-value{
    margin:0;
    font-size:var(--fs-body);
    font-weight:300;
    line-height:1.45;
    color:rgba(255,255,255,0.94);
  }
  .contact-info-value a{
    color:inherit;
    text-decoration:none;
    transition:color .3s ease;
  }
  .contact-info-value--hotline,
  .contact-info-value--hotline a{
    font-size:var(--fs-hotline);
    font-weight:700;
    letter-spacing:0.06em;
    color:#FFD98A;
  }
  .contact-info-value--hotline a:hover{ color:#fff; }
  .contact-info-value a:hover{ color:#FFD98A; }

  .contact-social-links{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:0.6rem;
    margin-top:1.35rem;
  }
  .contact-social-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.45rem;
    height:2.45rem;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.22);
    background:rgba(255,255,255,0.06);
    color:#FFFFFF;
    text-decoration:none;
    transition:border-color .3s ease, background .3s ease, color .3s ease, transform .3s ease;
  }
  .contact-social-icon svg{
    width:1rem;
    height:1rem;
    display:block;
    fill:currentColor;
  }
  .contact-social-icon--outline svg{
    fill:none;
    stroke:currentColor;
    stroke-width:1.75;
  }
  .contact-social-icon:hover{
    background:var(--gold);
    border-color:var(--gold);
    color:#fff;
    transform:translateY(-1px);
  }

  /* Right — form column */
  .contact-form-col{
    width:100%;
    max-width:30rem;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .contact-form-title{
    font-family:var(--font-sans);
    font-size:var(--fs-h2);
    font-weight:700;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:#FFFFFF;
    margin:0 0 0.9rem;
    line-height:1.25;
    text-align:center;
  }
  .contact-form-box{
    border:1px solid rgba(255,255,255,0.26);
    border-radius:0.65rem;
    background:rgba(255,255,255,0.04);
    box-shadow:none;
    padding:1.35rem 1.35rem 1.2rem;
    text-align:left;
    width:100%;
    transition:border-color .4s ease, background .4s ease;
  }
  .contact-form-box:focus-within{
    border-color:rgba(255,217,138,0.45);
    background:rgba(255,255,255,0.055);
  }
  .contact-form{
    display:flex;
    flex-direction:column;
    gap:0.95rem;
  }
  .contact-form-row{
    display:grid;
    grid-template-columns:1fr;
    gap:0.9rem;
  }
  .contact-field label{
    display:block;
    font-size:var(--fs-xs);
    font-weight:600;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.68);
    margin-bottom:0.35rem;
  }
  .contact-field label .req{ color:#FFD98A; }
  .contact-field input,
  .contact-field textarea{
    width:100%;
    box-sizing:border-box;
    background:transparent;
    border:none;
    border-bottom:1px solid rgba(255,255,255,0.32);
    border-radius:0;
    padding:0.2rem 0 0.45rem;
    font-family:var(--font-sans);
    font-size:var(--fs-body);
    font-weight:300;
    color:#FFFFFF;
    transition:border-color .3s ease;
  }
  .contact-field input::placeholder,
  .contact-field textarea::placeholder{
    color:rgba(255,255,255,0.32);
    text-transform:none;
    letter-spacing:0;
  }
  .contact-field input:focus,
  .contact-field textarea:focus{
    outline:none;
    border-bottom-color:#FFD98A;
    background:transparent;
    box-shadow:none;
  }
  .contact-field textarea{
    min-height:3.25rem;
    max-height:5.5rem;
    resize:vertical;
  }
  .contact-form-actions{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    text-align:center;
    margin-top:0.55rem;
  }
  .contact-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    min-width:10.5rem;
    
    margin-inline:auto;
    padding:0.72rem calc(1.65rem + 0.14em) 0.72rem 1.65rem;
    border:none;
    border-radius:999px;
    padding-bottom: 15px;
    background:#FFD98A;
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    font-weight:700;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:#1A4652;
    cursor:pointer;
    box-shadow:0 8px 22px rgba(0,0,0,0.14);
    transition:background .35s ease, color .35s ease, box-shadow .35s ease, transform .35s var(--ease);
  }
  .contact-submit:hover{
    background:#fff;
    color:#1A4652;
    box-shadow:0 12px 28px rgba(0,0,0,0.2);
    transform:translateY(-1px);
  }
  .contact-form-msg{
    font-size:var(--fs-xs);
    letter-spacing:0.08em;
    color:#FFD98A;
    margin:0;
    text-align:center;
  }
  .contact-form-msg.hidden{ display:none; }
  .contact-form-box .rg-phone-error{
    display:block;
    font-size:0.7rem;
    color:#ffb4b4;
    margin-top:0.25rem;
  }
  .contact-form-box .wpcf7-not-valid,
  .contact-form-box input.wpcf7-not-valid{
    border-color:rgba(255,120,120,0.75) !important;
  }

  /* Site footer strip — pinned to bottom of contact page */
  .site-footer{
    display:block;
    flex:0 0 auto;
    width:100%;
    max-width:78rem;
    margin:0 auto;
    margin-top:auto;
    padding:1rem 0 1.15rem;
    border-top:1px solid rgba(255,255,255,0.14);
    color:rgba(255,255,255,0.72);
  }
  .site-footer-top{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
    gap:0.65rem 1.5rem;
  }
  .site-footer-copy{
    margin:0;
    font-size:var(--fs-xs);
    letter-spacing:0.08em;
    text-transform:uppercase;
    font-weight:400;
    color:rgba(255,255,255,0.78);
  }
  .site-footer-copy strong{
    font-weight:700;
    color:rgba(255,255,255,0.92);
  }
  .site-footer-links{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0.55rem;
    margin:0;
    padding:0;
    list-style:none;
  }
  .site-footer-links a{
    font-size:var(--fs-xs);
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.78);
    text-decoration:none;
    transition:color .3s ease;
  }
  .site-footer-links a:hover{ color:#FFD98A; }
  .site-footer-dot{
    width:0.28rem;
    height:0.28rem;
    border-radius:50%;
    background:rgba(255,255,255,0.45);
    flex-shrink:0;
  }
  .site-footer-note{
    margin:0.85rem 0 0;
    text-align:center;
    font-size:var(--fs-xs);
    line-height:1.55;
    font-weight:300;
    font-style:italic;
    color:rgba(255,255,255,0.55);
    max-width:58rem;
    margin-left:auto;
    margin-right:auto;
  }
  .site-footer-note em{
    font-style:italic;
    font-weight:500;
    color:rgba(255,255,255,0.7);
  }

  @media (min-width:640px){
    .contact-form-row--2{
      grid-template-columns:1fr 1fr;
      gap:1.15rem;
    }
  }
  @media (min-width:769px){
    #contact{
      height:100dvh;
      max-height:100dvh;
      overflow-y:auto;
      overflow-x:hidden;
      display:flex;
      align-items:stretch;
      justify-content:flex-start;
    }
    .contact-wrap{
      width:100%;
      height:100%;
      min-height:100dvh;
      max-height:none;
      justify-content:flex-start;
      padding:4.5rem 2.25rem 0 3rem;
      overflow:visible;
    }
    .contact-layout{
      flex:0 1 auto;
      min-height:0;
      grid-template-columns:minmax(0, 0.9fr) minmax(0, 1fr);
      gap:2.5rem;
      align-items:center;
      justify-items:center;
      padding-bottom:0.75rem;
    }
    .contact-info{
      max-width:26rem;
      justify-content:center;
      justify-self:start;
    }
    .contact-form-col{
      max-width:32rem;
      margin:0 auto;
      align-self:center;
    }
    .contact-form-box{
      padding:1.5rem 1.65rem 1.35rem;
    }
    .site-footer{
      margin-top:auto;
      padding:0.85rem 0 1rem;
    }
  }
  @media (min-width:1025px){
    .contact-wrap{
      padding:4.75rem 3rem 0 4rem;
    }
    .contact-layout{ gap:3.25rem; }
    .contact-logo{ height:3.1rem; margin-bottom:1.5rem; }
    .contact-info-list{ gap:1.05rem; }
    .contact-form-box{ padding:1.65rem 1.85rem 1.45rem; }
  }

  @media (min-width:768px){
    .ui-card{ padding:1.75rem 1.6rem; }
  }

  .fine-line{
    width:60px; height:1px;
    background:linear-gradient(90deg, var(--gold), transparent);
  }

  img{ user-select:none; -webkit-user-drag:none; }

  .gallery-track{ display:flex; gap:1.5rem; align-items:flex-start; }
  .gallery-wrap::-webkit-scrollbar{ display:none; }

  .counter{ font-variant-numeric:tabular-nums; }

  .hero-usp{
    list-style:none;
    margin:0;
    padding:0;
  }
  .hero-usp li{
    background:linear-gradient(145deg, rgba(255,255,255,0.09) 0%, rgba(255,255,255,0.04) 100%);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:0.85rem;
    padding:0.85rem 0.75rem;
    font-size:var(--fs-caption);
    line-height:1.45;
    letter-spacing:0.04em;
    color:rgba(255,255,255,0.92);
    backdrop-filter:blur(12px) saturate(1.2);
    box-shadow:0 8px 28px rgba(0,0,0,0.2), 0 0 0 1px rgba(255,255,255,0.04) inset;
    transition:border-color .35s ease, background .35s ease, transform .35s var(--ease), box-shadow .35s ease;
  }
  .hero-usp li:hover{
    border-color:rgba(216,165,58,0.42);
    background:linear-gradient(145deg, rgba(216,165,58,0.12) 0%, rgba(255,255,255,0.06) 100%);
    transform:translateY(-2px);
    box-shadow:0 12px 36px rgba(0,0,0,0.28), 0 0 32px rgba(216,165,58,0.1);
  }
  @media (min-width:768px){
    .hero-usp li{ font-size:var(--fs-small); padding:1rem 0.9rem; }
  }

  input:focus{
    box-shadow:0 1px 0 0 var(--gold);
  }

  /* Fullpage stack: current page stays, next slides up from bottom */
  section[id]{
    position:fixed;
    inset:0;
    height:100dvh;
    width:100%;
    overflow:hidden;
    will-change:transform, opacity, clip-path, filter;
    backface-visibility:hidden;
    transform-style:preserve-3d;
  }
  /* Per-page entrance focal point (transform-origin) */
  #hero{ transform-origin:50% 100%; }
  #intro{ transform-origin:100% 50%; }
  #location{ transform-origin:0% 50%; }
  #location-connect{ transform-origin:50% 50%; }
  #architecture{ transform-origin:50% 0%; }
  #facilities{ transform-origin:50% 100%; }
  #lifestyle{ transform-origin:50% 50%; }
  #reasons{ transform-origin:50% 0%; }
  #gallery{ transform-origin:100% 50%; }
  #plans{ transform-origin:0% 100%; }
  #investment{ transform-origin:50% 50%; }
  #news{ transform-origin:50% 0%; }
  #contact{ transform-origin:50% 100%; }
  section[id]:not(#hero)::before{
    content:'';
    position:absolute;
    top:0; left:0; right:0;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(51,130,149,0.14), transparent);
    z-index:6;
    pointer-events:none;
  }
  #reasons{
    height:100vh;
    height:100dvh;
    min-height:100vh;
    min-height:100dvh;
    max-height:100dvh;
    overflow:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  #reasons::-webkit-scrollbar{
    display:none;
  }

  /* hero — banner slides */
  #hero{
    background:#0a3a42;
  }
  #hero .hero-slide{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }
  #hero .hero-slide-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    background:#0a3a42;
  }
  #hero .hero-slide-bg .hero-slide-img{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
  }
  #hero .hero-slide-img--desktop{ display:none !important; }
  #hero .hero-slide-img--tablet{ display:none !important; }
  #hero .hero-slide-img--mobile{ display:block !important; }
  @media (min-width:769px) and (max-width:1024px){
    #hero .hero-slide-img--desktop{ display:none !important; }
    #hero .hero-slide-img--tablet{ display:block !important; }
    #hero .hero-slide-img--mobile{ display:none !important; }
  }
  @media (min-width:1025px){
    #hero .hero-slide-img--desktop{ display:block !important; }
    #hero .hero-slide-img--tablet{ display:none !important; }
    #hero .hero-slide-img--mobile{ display:none !important; }
  }
  @media (max-width:768px){
    #hero .hero-slide-img--desktop{ display:none !important; }
    #hero .hero-slide-img--tablet{ display:none !important; }
    #hero .hero-slide-img--mobile{
      display:block !important;
      object-fit:cover;
      object-position:center top;
    }
  }

  /* hero — top scrim for nav readability */
  #hero .hero-slide-bg::after{
    content:'';
    position:absolute;
    top:0; left:0; right:0;
    height:9rem;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(14,50,48,0.60) 0%, rgba(14,50,48,0.24) 55%, transparent 100%);
  }
  @media (min-width:769px){
    #hero .hero-slide-bg::after{ height:7.5rem; }
  }

  /* mobile menu — only visible when toggled open */
  #mobile-menu{
    display:none;
    border-top:none;
  }
  #mobile-menu.is-open{
    display:flex;
    flex-direction:column;
    border-top:1px solid var(--border);
  }
  @media (min-width:1280px){
    #mobile-menu,
    #mobile-menu.is-open{ display:none !important; }
  }
  .section-pad-mobile{
    padding-top:5.5rem;
    padding-bottom:3rem;
  }
  @media (min-width:769px){
    .section-pad-mobile{
      padding-top:6rem;
      padding-bottom:3.5rem;
    }
  }
  /* ── Reveal — trạng thái ẩn ban đầu ── */
  .reveal,
  .reveal-up{
    opacity:0;
    visibility:hidden;
    transform:translateY(36px);
    filter:blur(4px);
    will-change:opacity, transform, filter, visibility;
  }
  .reveal-left{
    opacity:0;
    visibility:hidden;
    transform:translateX(-36px) rotate(-1.5deg);
    will-change:opacity, transform, visibility;
  }
  .reveal-right{
    opacity:0;
    visibility:hidden;
    transform:translateX(36px) rotate(1.5deg);
    will-change:opacity, transform, visibility;
  }
  .reveal-scale{
    opacity:0;
    visibility:hidden;
    transform:scale(0.88) translateY(20px);
    will-change:opacity, transform, visibility;
  }
  .reveal-fade{
    opacity:0;
    visibility:hidden;
    will-change:opacity, visibility;
  }
  .reveal-blur{
    opacity:0;
    visibility:hidden;
    transform:translateY(28px);
    filter:blur(14px);
    will-change:opacity, transform, filter, visibility;
  }
  .reveal-clip-up{
    opacity:0;
    visibility:hidden;
    clip-path:inset(100% 0 0 0);
    transform:translateY(16px);
    will-change:clip-path, opacity, transform, visibility;
  }
  .reveal-pop{
    opacity:0;
    visibility:hidden;
    transform:scale(0.82) translateY(24px);
    will-change:opacity, transform, visibility;
  }
  .reveal-tilt{
    opacity:0;
    visibility:hidden;
    transform:perspective(900px) rotateX(14deg) translateY(36px);
    transform-origin:50% 100%;
    will-change:opacity, transform, visibility;
  }
  .reveal-river{
    opacity:0;
    visibility:hidden;
    transform:translateY(40px) scale(0.97);
    filter:blur(6px);
    will-change:opacity, transform, filter, visibility;
  }
  .reveal-stagger{
    /* container giữ layout — con được GSAP ẩn/hiện */
    will-change:auto;
  }
  .reveal-quote{
    will-change:auto;
  }
  .reveal-img{
    clip-path:inset(0 0 0 100%);
    transform:scale(1.08);
    transform-origin:center center;
    will-change:clip-path, transform;
  }

  /* ── Reveal — hiệu ứng sau khi xuất hiện ── */
  .facilities-slide.is-revealed,
  .lifestyle-card.is-revealed{
    animation:revealPhotoFrame 0.7s var(--ease) forwards;
  }
  @keyframes revealPhotoFrame{
    from{ box-shadow:0 0 0 0 rgba(51,130,149,0); }
    to{ box-shadow:0 12px 36px rgba(18,54,64,0.14), 0 0 0 1px rgba(51,130,149,0.12); }
  }
  .news-card.is-revealed{
    animation:revealCardLift 0.65s var(--ease) forwards;
  }
  @keyframes revealCardLift{
    from{ transform:translateY(0); box-shadow:0 0 0 rgba(18,54,64,0); }
    to{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(18,54,64,0.12); }
  }
  .gallery-card.is-revealed .gallery-card-media{
    animation:revealGalleryShine 1.1s var(--ease) forwards;
  }
  @keyframes revealGalleryShine{
    0%{ filter:brightness(1.08); }
    60%{ filter:brightness(1.02); }
    100%{ filter:brightness(1); }
  }
  .location-list-item.is-revealed .location-list-time{
    animation:revealTimePop 0.55s cubic-bezier(.34,1.56,.64,1) forwards;
  }
  @keyframes revealTimePop{
    from{ transform:scale(0.85); opacity:0.5; }
    to{ transform:scale(1); opacity:1; }
  }

  @media (prefers-reduced-motion: reduce){
    .reveal, .reveal-up, .reveal-left, .reveal-right, .reveal-scale, .reveal-fade,
    .reveal-blur, .reveal-clip-up, .reveal-pop, .reveal-tilt, .reveal-river{
      opacity:1 !important;
      visibility:visible !important;
      transform:none !important;
      filter:none !important;
      clip-path:none !important;
    }
    .reveal-img{ clip-path:none !important; transform:none !important; }
    .facilities-slide.is-revealed,
    .lifestyle-card.is-revealed,
    .news-card.is-revealed,
    .gallery-card.is-revealed .gallery-card-media,
    .location-list-item.is-revealed .location-list-time{
      animation:none !important;
      opacity:1 !important;
      transform:none !important;
      filter:none !important;
    }
  }

  /* ---------- Responsive: tablet ---------- */
  @media (max-width:1024px){
    #rail{ left:1rem; }
    #rail .rail-label{ display:none; }
    #rail .flex{ gap:1rem; }
    section[id]:not(#hero):not(#gallery):not(#intro):not(#location):not(#location-connect):not(#architecture):not(#facilities):not(#lifestyle):not(#plans):not(#reasons):not(#investment):not(#news):not(#contact){
      padding-left:2.75rem;
    }
    .btn-line{ padding:0.85rem 1.6rem; letter-spacing:0.18em; }
  }

  /* ---------- Responsive: mobile + small tablet ---------- */
  @media (max-width:768px){
    #rail{ display:none; }
    section[id]{
      /* Equal L/R — undo tablet rail offset that zeroed only the left */
      padding-left:1.25rem !important;
      padding-right:1.25rem !important;
      height:100dvh;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
    }
    #hero,
    #gallery,
    #intro,
    #location,
    #location-connect,
    #architecture,
    #facilities,
    #lifestyle,
    #plans,
    #reasons,
    #investment,
    #news,
    #contact{
      padding-left:0 !important;
      padding-right:0 !important;
    }
    #architecture{
      padding:0 !important;
      overflow:hidden !important;
      align-items:center;
    }
    #architecture > .arch-wrap{
      max-width:none;
      width:100%;
      height:auto;
      padding:4.25rem 0 1rem;
      margin:0;
    }
    .arch-map-stage{
      width:100%;
      max-width:100%;
      height:auto;
      aspect-ratio:4098 / 2036;
      max-height:none;
      margin:0;
    }
    .arch-map-stage img{
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center center;
    }
    #lifestyle{
      overflow:hidden !important;
      overflow-y:hidden !important;
      padding:0 !important;
    }
    #lifestyle .lifestyle-inner{
      width:100%;
      max-width:100%;
      padding:3rem 1.1rem 1.35rem;
      gap:0.85rem;
      box-sizing:border-box;
    }
    #lifestyle .lifestyle-headline{
      max-width:100%;
      font-size:unset;
      line-height:unset;
    }
    #lifestyle .lifestyle-quote-block{
      max-width:min(880px, 100%);
      padding:20px;
      color:#fff;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-line{
      flex-wrap:wrap;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-sans,
    #lifestyle h2.lifestyle-headline .lifestyle-quote-serif{
      white-space:normal;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-serif{
      font-size:clamp(1.75rem, 8vw, 52px);
      line-height:1;
      color:#fff;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-sans{
      font-size:clamp(0.875rem, 3.5vw, 22px);
      letter-spacing:0;
      color:#fff;
    }
    #lifestyle .lifestyle-grid{
      grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr);
      height:clamp(240px, 46dvh, 340px);
      min-height:clamp(240px, 46dvh, 340px);
      max-height:clamp(240px, 46dvh, 340px);
      gap:8px;
    }
    #lifestyle .lifestyle-grid-stack{
      gap:8px;
    }
    #lifestyle .lifestyle-card{
      border-radius:14px;
    }
    #hero{ overflow:hidden; }
    #hero.hero-section,
    #hero.hero-section .hero-slide{
      height:100dvh;
      min-height:100dvh;
      max-height:100dvh;
    }
    #hero .hero-slide-img--desktop{ display:none !important; }
    #hero .hero-slide-img--tablet{ display:none !important; }
    #hero .hero-slide-img--mobile{
      display:block !important;
      object-fit:cover;
      object-position:center top;
    }
    #hero .hero-slide-bg::after{
      height:4.5rem;
      background:linear-gradient(180deg, rgba(10,40,46,0.72) 0%, rgba(10,40,46,0.28) 60%, transparent 100%);
    }
    #hero .hero-video-cta{
      padding-bottom:max(5.25rem, calc(env(safe-area-inset-bottom) + 4.25rem));
    }
    #hero #watch-video-btn span:last-child{
      font-size:0.625rem;
      letter-spacing:0.14em;
    }

    /* Intro mobile: xếp dọc — content teal + ảnh banner phía dưới */
    #intro{
      overflow-x:hidden;
      overflow-y:auto;
      overscroll-behavior:contain;
      -webkit-overflow-scrolling:touch;
    }
    #intro.is-scale{
      overflow:hidden;
    }
    #intro.is-scale .intro-slider{
      height:100dvh;
      min-height:100dvh;
    }
    #intro.surface-base{
      height:auto;
      min-height:100dvh;
    }
    #intro .intro-slider{
      min-height:100dvh;
      height:auto;
    }
    #intro .intro-slide--main{
      min-height:100dvh;
    }
    #intro .intro-content{
      min-height:auto;
      padding:4.5rem 1.25rem 2rem;
      text-align:left;
      position:relative;
      z-index:1;
    }
    #intro .intro-content-bg{
      background:none;
    }
    #intro .intro-bg-frame{
      inset:0.85rem;
    }
    #intro .intro-head{ margin:0; }
    #intro .intro-media-panel{
      position:relative;
      width:100%;
      height:260px;
      flex-shrink:0;
      z-index:0;
    }
    #intro .intro-layout{
      display:flex;
      flex-direction:column;
      position:relative;
    }
    #intro .intro-peek{
      height:64px;
      flex-shrink:0;
    }
    #intro .intro-quymo{
      position:fixed;
      right:0.75rem;
      bottom:max(5.25rem, calc(env(safe-area-inset-bottom) + 4.5rem));
      z-index:20;
    }
    #intro.is-scale .intro-quymo{
      visibility:hidden;
      pointer-events:none;
    }
    #intro .intro-slide--scale{
      min-height:100dvh;
      height:100dvh;
    }
    #intro .intro-scale{
      min-height:100dvh;
      height:100dvh;
      display:flex;
      flex-direction:column;
      justify-content:center;
      align-items:stretch;
      box-sizing:border-box;
      padding-top:4.25rem;
      padding-bottom:max(3.65rem, calc(env(safe-area-inset-bottom) + 3.15rem));
      overflow:hidden;
    }
    #intro .intro-scale-panel{
      width:calc(100% - 2rem);
      margin:0 auto;
      padding:1.35rem 1.15rem 1.2rem;
      flex:0 1 auto;
      min-height:0;
      max-height:calc(100dvh - 4.25rem - max(3.65rem, calc(env(safe-area-inset-bottom) + 3.15rem)));
      overflow-x:hidden;
      overflow-y:auto;
      overscroll-behavior:contain;
      -webkit-overflow-scrolling:touch;
      background:rgba(16,55,65,0.42);
    }
    #intro .intro-scale-title{
      font-size:clamp(1.95rem, 8.2vw, 2.75rem);
      line-height:1.1;
    }
    #intro .intro-scale-title::after{
      margin-top:0.65rem;
      width:2.75rem;
    }
    #intro .intro-scale-desc{
      margin:0.65rem 0 0.95rem;
      font-size:0.9rem;
      line-height:1.55;
    }
    #intro .intro-scale-item{
      padding:0.55rem 0.45rem 0.55rem 0;
    }
    #intro .intro-scale-item:nth-child(even){
      padding-left:0.45rem;
    }
    #intro .intro-scale-v{
      font-size:var(--fs-sub);
    }
    #intro .intro-scale-k{
      font-size:var(--fs-2xs);
      letter-spacing:0.1em;
    }
    #intro .intro-scale-foot{
      margin-top:0.65rem;
      padding-top:0.75rem;
      padding-bottom:0.1rem;
      font-size:var(--fs-2xs);
      line-height:1.5;
      letter-spacing:0.06em;
    }
    #intro .intro-back{
      bottom:max(0.85rem, env(safe-area-inset-bottom));
    }
    #intro .intro-spec-row{
      text-align:left;
      grid-template-columns:minmax(5.75rem, 7rem) 1fr;
    }
    #intro .intro-headline + .intro-specs{
      margin-top:1.75rem;
      margin-left:0;
    }
    #intro .intro-headline,
    #intro .intro-head > h2{
      font-size:clamp(0.8125rem, 3.4vw, 1rem);
      letter-spacing:0.06em;
      line-height:1.35;
      text-align:center;
    }
    #intro .intro-headline-line{
      white-space:normal;
    }

    /* Tiêu đề section — mobile */
    #location-connect .location-connect-title-block{
      max-width:100%;
      padding:12px 0;
    }
    #location-connect .location-connect-main-title{
      font-size:clamp(1.65rem, 7vw, 2.35rem);
      line-height:1.05;
    }
    #location-connect .location-connect-sub-title{
      font-size:clamp(1.65rem, 7vw, 2.35rem);
      line-height:1.05;
    }
    #location-connect .location-connect-eyebrow,
    #location-connect .location-connect-sub-title .location-connect-caps{
      font-size:clamp(0.8125rem, 2.8vw, 1rem);
      letter-spacing:0;
    }
    #location .location-show-title-block{
      max-width:100%;
      padding:0;
      text-align:left;
    }
    #location .location-show-line{
      flex-wrap:wrap;
      justify-content:flex-start;
      gap:6px 8px;
    }
    #location .location-show-sans{
      font-size:clamp(0.8125rem, 2.8vw, 1.125rem);
      white-space:normal;
    }
    #location .location-show-serif{
      font-size:clamp(1.65rem, 7vw, 2.35rem);
      line-height:1;
      white-space:normal;
    }
    #facilities .facilities-title-block,
    #facilities .facilities-subtitle-block,
    #facilities .facilities-desc-headline-block{
      max-width:100%;
      padding:0;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-block{
      padding:12px 0;
    }
    #reasons .reasons-title-block{
      max-width:100%;
    }
    #reasons .reasons-title-number{
      font-size:clamp(3rem, 14vw, 4.5rem);
      line-height:0.85;
    }
    #reasons .reasons-title-sans{
      font-size:clamp(0.8125rem, 2.8vw, 1.125rem);
    }
    #reasons .reasons-title-serif{
      font-size:clamp(1.5rem, 6.5vw, 2rem);
      line-height:1;
    }
    #location .location-wrap,
    #facilities .facilities-layout,
    #investment .invest-wrap,
    #news > .news-wrap,
    #plans .product-wrap{
      text-align:center;
      margin-left:auto;
      margin-right:auto;
    }
    #contact .contact-wrap{
      text-align:center;
      margin-left:auto;
      margin-right:auto;
    }
    #contact .contact-form-box,
    #contact .contact-form{
      text-align:left;
      width:100%;
    }
    #contact .contact-form-actions{
      display:flex;
      justify-content:center;
      align-items:center;
      width:100%;
      text-align:center;
    }
    #contact .contact-submit{
      margin-inline:auto;
    }
    #contact .contact-info{
      text-align:left;
      align-items:flex-start;
      justify-self:start;
    }
    #contact .contact-info-list{
      align-items:flex-start;
    }
    #plans .product-content-box,
    #plans .product-content-box h2,
    #plans .product-content-box h3,
    #plans .product-content-box .product-desc,
    #plans .product-content-box .product-area{
      text-align:left;
    }
    #facilities .facilities-layout,
    #news .news-grid{
      justify-items:center;
    }
    #location .location-features,
    #location-connect .location-connect-panel{
      justify-items:stretch;
    }
    #location .location-header,
    #location .location-features,
    #location-connect .location-connect-panel{
      text-align:left;
    }
    #location .location-feature-card,
    #location-connect .location-connect-intro,
    #location-connect .location-connect-col-list li{
      text-align:left;
    }
    #location .location-tagline{ justify-content:center; }
    #facilities .facilities-gallery-title,
    #facilities .facilities-subtitle,
    #facilities .facilities-copy-col,
    #facilities .facilities-copy-col p,
    #facilities .facilities-copy-col .facilities-desc-body{
      text-align:left;
    }
    .fine-line{ margin-left:auto; margin-right:auto; }

    #nav{
      padding-top:0.75rem;
      padding-bottom:0.75rem;
      padding-left:max(1rem, env(safe-area-inset-left));
      padding-right:max(1rem, env(safe-area-inset-right));
    }
    #nav .logo-img{ height:calc(2.55rem + 3px); }
    #nav .hotline-text{ display:none; }
    #nav .hotline-btn{ padding-left:0.65rem; padding-right:0.65rem; }

    #mobile-menu{
      max-height:min(70dvh, 28rem);
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      gap:0.85rem;
      letter-spacing:0.12em;
      padding-left:0.25rem;
      padding-right:0.25rem;
    }

    .chapter-num{ font-size:var(--fs-xs); letter-spacing:0.16em; }
    .btn-line{ padding:0.75rem 1.25rem; font-size:var(--fs-xs); letter-spacing:0.14em; }
    .tracked{ letter-spacing:0.1em; }
    .gallery-track{ gap:1rem; }

    .hero-eyebrow{ font-size:var(--fs-tiny); margin-bottom:1rem; max-width:18rem; margin-left:auto; margin-right:auto; line-height:1.5; }
    .hero-headline .hero-line-main{
      white-space:normal !important;
      font-size:clamp(1.35rem, 6.5vw, 1.85rem) !important;
      line-height:1.25;
      padding:0 0.25rem;
    }
    .hero-headline .hero-line-sub{
      white-space:normal !important;
      font-size:clamp(1.05rem, 4.8vw, 1.35rem) !important;
      margin-top:1.25rem !important;
      line-height:1.35;
      padding:0 0.5rem;
    }
    .hero-usp{ gap:0.5rem; margin-top:1.5rem; }
    .hero-usp li{ font-size:var(--fs-tiny); padding:0.7rem 0.55rem; }
    #hero .slide-indicators{
      bottom:max(1.25rem, env(safe-area-inset-bottom));
      right:1rem;
      gap:0.5rem;
    }
    #hero .slide-indicators .slide-dot-btn > span:first-child{ display:none; }

    #intro .intro-img{ height:100% !important; }

    #location .location-features{ grid-template-columns:1fr; gap:0.9rem; }
    #location .location-feature-media{ height:11rem; }
    #location-connect .location-connect-panel{ border-radius:0; }
    #location-connect .location-list-item{
      padding:0.5rem 0;
      font-size:0.9375rem;
    }
    #location-connect .location-list-time{
      font-size:clamp(1.35rem, 5vw, 1.65rem);
    }
    #location .location-tagline{ font-size:var(--fs-h3); gap:0.3rem 0.55rem; }

    /* Location showcase mobile: ảnh lớn + nội dung xếp dọc, cho phép cuộn */
    #location{
      overflow-x:hidden;
      overflow-y:auto;
      overscroll-behavior:contain;
      -webkit-overflow-scrolling:touch;
    }
    #location .location-wrap--showcase{
      height:auto;
      min-height:100dvh;
      padding:4.5rem 1.25rem 1.5rem;
      text-align:left;
    }
    #location .location-show{
      gap:0.5rem;
    }
    #location .location-show-head{
      padding-left:0;
    }
    #location .location-show-viewport{
      flex:0 0 auto;
      min-height:auto;
      overflow:visible;
      align-items:stretch;
    }
    #location .location-show-body{
      flex-direction:column;
      align-items:stretch;
      gap:1rem;
    }
    #location .location-show-media{
      width:100%;
      flex-shrink:0;
      order:1;
    }
    #location .location-show-frame--main{
      width:100%;
    }
    #location .location-show-frame--main img{
      width:100%;
      height:auto;
      aspect-ratio:16/10;
      min-height:11rem;
    }
    #location .location-show-right{
      order:2;
      width:100%;
      gap:0.85rem;
    }
    #location .location-show-thumb-content{
      text-align:left;
      padding:0;
    }
    #location .location-show-nav{
      order:3;
      flex-direction:row;
      justify-content:center;
      align-self:auto;
      gap:0.85rem;
      padding:0.25rem 0 0.5rem;
    }
    #location .location-show-arrow{
      width:2.65rem;
      height:2.65rem;
    }

    #facilities .facilities-eyebrow{
      font-size:var(--fs-sub);
    }
    #facilities .facilities-gallery-title{
      margin-top:0.45rem;
    }
    #facilities .facilities-gallery-title .facilities-title-serif{
      font-size:clamp(2rem, 8.5vw, 2.75rem);
      line-height:1;
    }
    #facilities .facilities-gallery-title .facilities-title-sans{
      font-size:clamp(0.95rem, 3.8vw, 1.125rem);
      letter-spacing:0;
    }
    #facilities .facilities-subtitle{
      margin-top:0.45rem;
    }
    #facilities .facilities-subtitle-serif{
      font-size:clamp(2rem, 8.5vw, 2.75rem);
      line-height:1;
    }
    #facilities .facilities-subtitle-sans{
      font-size:clamp(0.95rem, 3.8vw, 1.125rem);
      letter-spacing:0;
    }
    #facilities .facilities-subtitle-script{
      font-size:clamp(1.5rem, 6.5vw, 2.25rem);
      margin-top:-6px;
      text-align:left;
      padding-left:0;
      width:auto;
      max-width:100%;
    }
    #facilities .facilities-desc{
      margin-top:0.4rem;
    }
    #facilities .facilities-desc-headline-serif{
      font-size:clamp(1rem, 7vw, 26px);
      line-height:1;
    }
    #facilities .facilities-desc-headline-sans{
      font-size:clamp(0.5rem, 3.2vw, 11px);
      letter-spacing:0;
    }
    #facilities .facilities-copy-col p,
    #facilities .facilities-copy-col .facilities-desc-body{
      margin-top:0.4rem;
      font-size:0.8125rem;
      line-height:1.48;
    }

    #news{
      align-items:flex-start;
      justify-content:flex-start;
    }
    #news > .news-wrap{
      flex:0 0 auto;
      width:100%;
      padding-bottom:2.5rem;
    }
    #news .news-grid{
      grid-template-columns:1fr;
      gap:1.75rem;
      margin-top:2rem;
    }
    #news .news-grid img{ height:13rem; }

    #gallery{
      justify-content:flex-start;
      padding-top:0;
      padding-bottom:0;
      overflow:hidden;
    }
    #gallery .gallery-inner{
      padding:4.75rem 0 1.25rem;
      gap:1rem;
    }
    #gallery .gallery-track{
      padding-left:1.25rem;
      padding-right:1.25rem;
      gap:1rem;
      align-items:flex-start;
    }
    #gallery .gallery-card{
      width:88vw !important;
    }
    #gallery .gallery-card-media img,
    #gallery .gallery-card-media video,
    #gallery .gallery-card-media iframe{
      height:100% !important;
    }
    #gallery .gallery-card-media{
      height:clamp(12rem, 38dvh, 22rem) !important;
    }
    #gallery .gallery-tab{
      padding:0.6rem 1rem;
      letter-spacing:0.1em;
    }

    #plans .product-slide{ grid-template-columns:1fr; }
    #plans .product-visual{ min-height:240px; }
    #plans .product-slider{ padding:0 1rem; }
    #plans .product-nav--prev{ left:0; }
    #plans .product-nav--next{ right:0; }

    #contact .contact-layout{ grid-template-columns:1fr; }
    #contact .contact-form-box{ padding:1.5rem 1.25rem; }
    #contact .contact-info{ max-width:none; }
    #contact .contact-social-links{ margin-top:1.75rem; }
    #contact{
      overflow:hidden !important;
      background-image:none;
      background-color:#1A4652;
    }
    #contact::after{
      content:'';
      position:absolute;
      inset:0;
      z-index:0;
      pointer-events:none;
      background-image:url('assets/ChatGPT Image Jul 27, 2026, 11_32_57 AM.png');
      background-size:cover;
      background-position:center top;
      background-repeat:no-repeat;
      -webkit-backface-visibility:hidden;
      transform:translateZ(0);
    }
    #contact > .section-bg{
      display:none !important;
    }
    #contact .contact-wrap{
      position:relative;
      z-index:1;
      display:block;
      height:100%;
      max-height:100dvh;
      min-height:0;
      overflow-x:hidden;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
      touch-action:pan-y;
    }
    #contact .contact-main{
      flex:none;
      display:block;
      min-height:0;
    }

    /* breathing room under fixed nav */
    .section-pad-mobile{ padding-top:5rem; padding-bottom:2.5rem; }
  }

  @media (min-width:769px) and (max-width:1024px){
    /* Tablet / iPad: cuộn trong section + vuốt fullpage (giống mobile) */
    html,
    body{
      height:100%;
      overflow:hidden;
      overscroll-behavior:none;
    }
    section[id]{
      position:fixed !important;
      inset:0 !important;
      top:0 !important;
      right:0 !important;
      bottom:0 !important;
      left:0 !important;
      width:100% !important;
      height:100dvh !important;
      max-height:100dvh !important;
      min-height:0 !important;
      overflow-x:hidden !important;
      overflow-y:auto !important;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
      touch-action:pan-y;
      will-change:transform, opacity, clip-path, filter;
    }
    #hero,
    #reasons,
    #lifestyle{
      overflow-y:hidden !important;
    }
    #architecture{
      overflow-x:hidden !important;
      overflow-y:auto !important;
      align-items:flex-start;
    }
    #facilities{
      height:100svh !important;
      min-height:100svh !important;
      max-height:100svh !important;
      overflow:hidden !important;
    }
    #intro,
    #location,
    #location-connect,
    #gallery,
    #plans,
    #investment,
    #news,
    #contact{
      height:100dvh !important;
      max-height:100dvh !important;
      min-height:0 !important;
      overflow-x:hidden !important;
      overflow-y:auto !important;
    }
    #contact .contact-wrap{
      height:100%;
      max-height:100dvh;
      overflow-x:hidden;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
      touch-action:pan-y;
    }
    #rail{ display:flex; }
    .section-pad-mobile{ padding-top:5.5rem; padding-bottom:2.5rem; }

    .hero-headline .hero-line-main{
      font-size:clamp(1.55rem, 3vw, 2.25rem) !important;
      white-space:normal !important;
      line-height:1.22;
    }
    .hero-headline .hero-line-sub{
      font-size:clamp(1.1rem, 2.2vw, 1.5rem) !important;
      margin-top:1.25rem !important;
      white-space:normal !important;
    }
    .hero-eyebrow{
      font-size:clamp(0.65rem, 1.4vw, 0.78rem);
      max-width:22rem;
    }

    #intro .intro-content{
      padding:clamp(3.75rem, 8svh, 4.5rem) 1.25rem 1.25rem 3.25rem;
    }
    #intro .intro-head > h2{
      font-size:clamp(1.05rem, 2vw, 1.35rem);
      letter-spacing:0.08em;
      line-height:1.35;
    }
    #intro .intro-head > p{
      font-size:clamp(0.78rem, 1.4vw, 0.88rem);
    }
    #intro .intro-scale-panel{
      padding:3.25rem 8rem 2rem 1rem;
    }
    #intro .intro-scale-title{
      font-size:clamp(2.5rem, 4.5vw, 3.5rem);
    }

    #location .location-wrap{
      padding:4.5rem 1.5rem 1rem 2.25rem;
    }
    #location .location-feature-media{
      height:clamp(7rem, 16svh, 9.5rem);
    }
    #location .location-feature-card p{
      font-size:clamp(0.72rem, 1.2vw, 0.82rem);
      -webkit-line-clamp:3;
    }

    /* Location showcase — 2 ảnh cùng kích thước trong frame (tablet only) */
    #location .location-wrap--showcase{
      height:auto;
      min-height:auto;
      padding:4.5rem 1.5rem 1.25rem 2.25rem;
      overflow-x:hidden;
      overflow-y:visible;
    }
    #location .location-show{
      flex:0 0 auto;
      min-height:0;
    }
    #location .location-show-viewport{
      flex:0 0 auto;
      min-height:auto;
      overflow:visible;
      align-items:stretch;
    }
    #location .location-show-body{
      display:grid;
      grid-template-columns:1fr 1fr;
      grid-template-rows:auto auto auto;
      gap:1rem;
      align-items:stretch;
    }
    #location .location-show-media{
      grid-column:1;
      grid-row:1;
      min-width:0;
      flex:unset;
      width:auto;
    }
    #location .location-show-right{
      display:contents;
    }
    #location .location-show-thumb{
      grid-column:2;
      grid-row:1;
      min-width:0;
      align-self:stretch;
    }
    #location .location-show-thumb-content{
      grid-column:1 / -1;
      grid-row:2;
      text-align:left;
      padding:0;
    }
    #location .location-show-nav{
      grid-column:1 / -1;
      grid-row:3;
      flex-direction:row;
      justify-content:center;
      align-self:auto;
      padding:0.25rem 0 0.5rem;
    }
    #location .location-show-frame--main,
    #location .location-show-frame--thumb{
      width:100%;
      height:100%;
      box-sizing:border-box;
    }
    #location .location-show-frame--main img,
    #location .location-show-frame--thumb img{
      width:100%;
      height:clamp(11rem, 24svh, 15.5rem);
      min-height:clamp(11rem, 24svh, 15.5rem);
      max-height:clamp(11rem, 24svh, 15.5rem);
      aspect-ratio:unset;
      object-fit:cover;
      object-position:center;
    }

    #lifestyle .lifestyle-inner{
      padding:clamp(3.5rem, 7svh, 4.25rem) 1.25rem 0.75rem;
    }
    #lifestyle .lifestyle-grid{
      height:clamp(210px, 36svh, 300px);
      min-height:clamp(210px, 36svh, 300px);
      max-height:clamp(210px, 36svh, 300px);
    }

    #gallery .gallery-inner{
      padding:clamp(3.5rem, 7svh, 4.25rem) 0 0.75rem;
    }
    #gallery .gallery-card{
      width:min(48vw, 19rem);
    }
    #gallery .gallery-card-media{
      height:clamp(10rem, 28svh, 16rem);
    }

    #plans .product-wrap{
      padding:4.25rem 1.75rem 1rem 2.25rem;
    }
    #plans .product-slider{
      padding:0 2rem;
    }
    #plans .product-slide{
      grid-template-columns:1fr;
      gap:0.75rem;
    }
    #plans .product-visual{
      min-height:clamp(150px, 22svh, 200px);
      max-height:26svh;
    }

    #news > .news-wrap{
      padding:4.25rem 1.75rem 2rem;
    }
    #news .news-grid{
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:1.15rem;
    }
    #news .news-grid img{
      height:clamp(8rem, 20svh, 10.5rem);
    }

    #contact .contact-wrap{
      padding:4rem 1.5rem 0 2.25rem;
    }
    #contact .contact-layout{
      grid-template-columns:1fr;
      gap:1.25rem;
    }

    #reasons .reasons-title-number{
      font-size:clamp(3.5rem, 16vw, 5.5rem);
      line-height:0.85;
    }
    #reasons .reasons-title-sans{
      font-size:clamp(0.875rem, 3.8vw, 22px);
      letter-spacing:0;
    }
    #reasons .reasons-title-serif{
      font-size:clamp(1.5rem, 7vw, 46px);
      line-height:1;
    }
    #reasons .reasons-title-sub{
      letter-spacing:2px;
    }
    #reasons .reasons-panel-item p{
      font-size:clamp(0.78rem, 1.4vw, 0.875rem);
    }
  }

  @media (max-width:380px){
    .hero-eyebrow{ font-size:var(--fs-2xs); }
    #nav .logo-img{ height:calc(2.2rem + 3px); }
    .hero-headline .hero-line-main{ font-size:var(--fs-lead) !important; }
    .hero-headline .hero-line-sub{ font-size:1rem !important; }
  }

  /* ============================================================
     BOLD TEAL BRAND BANDS — investment / contact
     Light text + glass cards on deep teal for strong identity
     ============================================================ */
  #investment .chapter-num,
  #contact .chapter-num{
    color:var(--gold);
    text-shadow:0 0 24px rgba(216,165,58,0.4);
  }
  #investment .invest-developer-name,
  #contact .contact-form-title{ color:#FFFFFF; }

  /* --- Investment band --- */
  #investment .invest-developer-name{ color:#FFFFFF; }
  #investment .invest-developer-logo{
    background:rgba(51, 129, 149, 0);
  }
  #investment .invest-partners-heading{
    color:#FFD98A;
    text-shadow:0 0 24px rgba(216,165,58,0.35);
  }
  #investment .invest-partners-heading::before{
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.4));
  }
  #investment .invest-partners-heading::after{
    background:linear-gradient(90deg, rgba(255,255,255,0.4), transparent);
  }
  #investment .invest-partners-grid::before{
    background:linear-gradient(180deg, transparent, rgba(255,255,255,0.22) 20%, rgba(255,255,255,0.22) 80%, transparent) !important;
  }
  #investment .invest-partner-logo{
    background:transparent;
    border:none;
    box-shadow:none;
  }
  #investment .invest-partner-logo--exim,
  #investment .invest-partner-logo--mb{
    background:rgba(255,255,255,0.97);
    border:1px solid rgba(255,255,255,0.78);
    box-shadow:none;
  }
  #investment .invest-partner-label{ color:rgba(255,255,255,0.88); }

  /* --- Contact band (layout styles carry colors) --- */

  /* ============================================================
     STRONGER TITLE / EYEBROW TREATMENT (light sections)
     ============================================================ */
  .chapter-num{
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
  }
  .chapter-num::before{
    content:'';
    width:1.75rem;
    height:2px;
    border-radius:2px;
    background:linear-gradient(90deg, var(--teal), var(--teal-500));
  }
  #lifestyle .chapter-num::before,
  #investment .chapter-num::before,
  #contact .chapter-num::before{
    background:linear-gradient(90deg, var(--gold), rgba(255,215,138,0.4));
  }
  .title-accent{
    position:relative;
    padding-bottom:0.9rem;
  }
  .title-accent::after{
    content:'';
    position:absolute;
    left:0; bottom:0;
    width:3.25rem;
    height:4px;
    border-radius:4px;
    background:linear-gradient(90deg, var(--teal) 0%, var(--gold) 130%);
  }
  #facilities .title-accent::after,
  #plans .title-accent::after{ left:0; }
  @media (max-width:768px){
    .title-accent{ padding-bottom:0.75rem; }
    .title-accent::after{ left:50%; transform:translateX(-50%); }
    #plans .title-accent::after,
    #facilities .title-accent::after{ left:0; transform:none; }
  }

  /* ============================================================
     TRANSPARENT HEADER + FULLSCREEN OVERLAY MENU
     ============================================================ */
  #nav.nav-simple{ gap:0; }
  .nav-brand{
    display:flex;
    align-items:center;
    gap:1rem;
    min-width:0;
    flex-shrink:1;
  }
  @media (min-width:521px){
    .nav-brand{ gap:1.25rem; }
  }
  @media (min-width:769px){
    .nav-brand{ gap:1.5rem; }
  }
  .nav-form-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    padding:0.52rem 0.95rem;
    border:1px solid rgba(255,255,255,0.65);
    border-radius:999px;
    background:transparent;
    color:#FFFFFF;
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    font-weight:600;
    letter-spacing:0.04em;
    line-height:1.2;
    white-space:nowrap;
    cursor:pointer;
    text-shadow:0 1px 8px rgba(0,0,0,0.35);
    box-shadow:none;
    transition:background .35s ease, border-color .35s ease, color .35s ease, box-shadow .35s ease, transform .35s var(--ease), text-shadow .35s ease;
  }
  .nav-form-btn:hover{
    background:var(--teal);
    border-color:var(--teal);
    color:#fff;
    text-shadow:none;
    box-shadow:0 8px 22px rgba(51,130,149,0.28);
    transform:translateY(-1px);
  }
  .nav-form-btn:active{
    transform:translateY(0);
  }
  @media (min-width:521px){
    .nav-form-btn{
      padding:0.58rem 1.15rem;
      letter-spacing:0.06em;
    }
  }
  @media (min-width:768px){
    .nav-form-btn{
      padding:0.62rem 1.35rem;
      font-size:var(--fs-sm);
      letter-spacing:0.08em;
      padding-bottom: 0.75rem;
    }
  }
  .nav-controls{ display:flex; align-items:center; gap:0.85rem; }
  @media (min-width:768px){ .nav-controls{ gap:1.4rem; } }

  .nav-hotline{ display:flex; align-items:center; gap:0.65rem; text-decoration:none; }
  .nav-ctrl-icon{
    width:calc(2.6rem + 3px); height:calc(2.6rem + 3px); border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    border:1px solid rgba(255,255,255,0.65);
    color:#FFFFFF;
    background:transparent;
    transition:background .35s ease, border-color .35s ease, color .35s ease, transform .35s var(--ease);
  }
  .nav-ctrl-icon svg{ width:calc(1.15rem + 3px); height:calc(1.15rem + 3px); }
  .nav-hotline-text{
    color:#FFFFFF; font-weight:600; font-size:var(--fs-sub); letter-spacing:0.05em;
    text-shadow:0 1px 8px rgba(0,0,0,0.35);
  }
  .nav-hotline:hover .nav-ctrl-icon{ background:var(--gold); border-color:var(--gold); color:#fff; transform:translateY(-1px); }
  .nav-lang{
    display:flex; align-items:center; gap:0.3rem; cursor:pointer; user-select:none;
    color:#FFFFFF; font-weight:600; font-size:var(--fs-body); letter-spacing:0.08em;
    text-shadow:0 1px 8px rgba(0,0,0,0.35);
    transition:color .35s ease;
  }
  .nav-lang svg{ width:calc(0.8rem + 3px); height:calc(0.8rem + 3px); }
  .nav-lang:hover{ color:var(--gold); }
  .nav-burger{
    width:calc(2.85rem + 3px); height:calc(2.85rem + 3px); border-radius:50%; flex-shrink:0;
    border:1px solid rgba(255,255,255,0.65); background:transparent; cursor:pointer;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
    transition:border-color .35s ease, background .35s ease, transform .35s var(--ease);
  }
  .nav-burger span{ display:block; width:calc(1.2rem + 3px); height:2px; border-radius:2px; background:#FFFFFF; transition:background .3s ease; }
  .nav-burger:hover{ border-color:var(--gold); transform:translateY(-1px); }
  .nav-burger:hover span{ background:var(--gold); }

  @media (max-width:520px){
    .nav-hotline-text{ display:none; }
  }

  /* fullscreen overlay */
  #nav-overlay{
    position:fixed; inset:0; z-index:90;
    height:100dvh; max-height:100dvh;
    display:flex; flex-direction:column;
    overflow:hidden;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .55s var(--ease), visibility .55s;
    background:
      radial-gradient(130% 95% at 50% -15%, rgba(42,167,166,0.42), transparent 60%),
      radial-gradient(90% 75% at 100% 115%, rgba(109,174,69,0.18), transparent 55%),
      linear-gradient(160deg, #2C7385 0%, #1A4652 48%, #123640 100%);
  }
  #nav-overlay.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
  .overlay-pattern{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
  .overlay-pattern svg{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:min(135vh,135vw); height:min(135vh,135vw);
    opacity:0.5;
  }
  .overlay-inner{ position:relative; z-index:1; display:flex; flex-direction:column; height:100%; min-height:0; }
  .overlay-top{
    display:flex; align-items:center; justify-content:space-between;
    padding:1.2rem 1.5rem; flex-shrink:0;
  }
  @media (min-width:768px){ .overlay-top{ padding:1.6rem 3rem; } }
  .overlay-top .logo-img{ height:calc(2.95rem + 3px); width:auto; object-fit:contain; }
  @media (min-width:768px){ .overlay-top .logo-img{ height:calc(3.7rem + 3px); } }
  .overlay-controls{ display:flex; align-items:center; gap:0.85rem; }
  @media (min-width:768px){ .overlay-controls{ gap:1.4rem; } }
  .overlay-close{
    width:2.6rem; height:2.6rem; border-radius:50%; flex-shrink:0;
    border:1px solid rgba(255,255,255,0.55); background:transparent; cursor:pointer;
    display:flex; align-items:center; justify-content:center; color:#FFFFFF;
    transition:transform .45s var(--ease), border-color .35s ease, color .35s ease;
  }
  .overlay-close svg{ width:1.05rem; height:1.05rem; }
  .overlay-close:hover{ border-color:var(--gold); color:var(--gold); transform:rotate(90deg); }
  .overlay-menu{
    flex:1; min-height:0; overflow:hidden;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:16px; padding:clamp(0.35rem, 1.2dvh, 1.25rem) 1.25rem;
  }
  .overlay-link{
    position:relative; text-decoration:none; color:#FFFFFF;
    font-family:var(--font-sans);
    font-weight:600; letter-spacing:0.18em; text-transform:uppercase;
    font-size:1.2rem;
    line-height:1.2;
    padding:clamp(0.15rem, 0.5dvh, 0.45rem) 0.6rem;
    flex-shrink:1;
    opacity:0; transform:translateY(22px);
    transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s ease;
    transition-delay:0s;
  }
  .overlay-link::after{
    content:''; position:absolute; left:50%; bottom:0.15rem; transform:translateX(-50%);
    width:0; height:2px; border-radius:2px; background:var(--gold);
    transition:width .35s var(--ease);
  }
  .overlay-link:hover{ color:#FFD98A; }
  .overlay-link:hover::after{ width:1.75rem; }
  #nav-overlay.is-open .overlay-link{ opacity:1; transform:none; transition-delay:calc(0.14s + var(--i) * 0.05s); }
  .overlay-social{
    display:flex; align-items:center; gap:0.75rem; flex-shrink:0;
    padding:1.35rem 1.5rem;
  }
  @media (min-width:768px){ .overlay-social{ padding:1.75rem 3rem; } }
  .overlay-social a{
    width:2.5rem; height:2.5rem; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    border:1px solid rgba(255,255,255,0.3); color:#FFFFFF; text-decoration:none;
    transition:background .3s ease, border-color .3s ease, transform .3s ease, color .3s ease;
  }
  .overlay-social a svg{ width:1.05rem; height:1.05rem; }
  .overlay-social a:hover{ background:var(--gold); border-color:var(--gold); color:#fff; transform:translateY(-2px); }

  @media (max-height:920px){
    .overlay-top{
      padding:clamp(0.75rem, 1.8dvh, 1.2rem) clamp(1.25rem, 3vw, 3rem);
    }
    .overlay-menu{
      padding:clamp(0.2rem, 0.8dvh, 0.85rem) 1rem;
    }
    .overlay-link{
      font-size:1.2rem;
      letter-spacing:0.14em;
      padding:clamp(0.08rem, 0.38dvh, 0.3rem) 0.5rem;
    }
    .overlay-social{
      padding:clamp(0.65rem, 1.5dvh, 1.35rem) clamp(1.25rem, 3vw, 3rem);
    }
    .overlay-social a{
      width:2.15rem; height:2.15rem;
    }
  }
  @media (max-height:780px){
    .overlay-link{
      font-size:1.2rem;
      letter-spacing:0.12em;
    }
  }

  /* ---------- Page loader ---------- */
  body.is-loading,
  body.is-promo-open,
  body.is-nav-open,
  body.is-consult-form-open{
    overflow:hidden;
    height:100%;
  }
  #page-loader{
    position:fixed;
    inset:0;
    z-index:9999;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#d8f3f1;
    pointer-events:all;
  }
  #page-loader.is-done{
    pointer-events:none;
  }
  .page-loader-inner{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:1.5rem;
  }
  .page-loader-logo{
    width:min(55vw, 14rem);
    max-width:100%;
    height:auto;
    object-fit:contain;
    opacity:0;
    transform:scale(0.92) translateY(10px);
    will-change:opacity, transform;
  }
  .page-loader-bar{
    width:4.5rem;
    height:2px;
    margin-top:1.75rem;
    border-radius:2px;
    background:rgba(18,54,52,0.12);
    overflow:hidden;
    opacity:0;
  }
  .page-loader-bar > span{
    display:block;
    height:100%;
    width:0;
    border-radius:inherit;
    background:linear-gradient(90deg, var(--teal), var(--gold));
  }
  @media (prefers-reduced-motion: reduce){
    .page-loader-logo{
      opacity:1;
      transform:none;
    }
  }

  /* ---------- Promo banner modal ---------- */
  #promo-banner{
    position:fixed;
    inset:0;
    z-index:9500;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1.25rem;
    background:rgba(8,24,22,0.72);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    visibility:hidden;
    pointer-events:none;
  }
  #promo-banner.is-open{
    visibility:visible;
    pointer-events:auto;
  }
  .promo-banner-wrap{
    position:relative;
    width:min(92vw, 56rem);
    max-height:min(82vh, 34rem);
    transform:scale(0.94) translateY(18px);
    opacity:0;
  }
  .promo-banner-dialog{
    position:relative;
    width:100%;
    border-radius:1.15rem;
    overflow:hidden;
    box-shadow:0 28px 80px rgba(0,0,0,0.45);
    background:#1A4652;
  }
  .promo-banner-media{
    display:block;
    width:100%;
    height:auto;
    max-height:min(82vh, 34rem);
    object-fit:cover;
    object-position:center;
    vertical-align:middle;
  }
  .promo-banner-close{
    position:absolute;
    top:-0.55rem;
    right:-0.55rem;
    z-index:3;
    width:2.35rem;
    height:2.35rem;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.35);
    background:rgba(14,50,48,0.92);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 24px rgba(0,0,0,0.35);
    transition:background .25s ease, border-color .25s ease, transform .25s ease;
  }
  .promo-banner-close:hover{
    background:var(--gold);
    border-color:var(--gold);
    transform:scale(1.05);
  }
  .promo-banner-close svg{
    width:0.95rem;
    height:0.95rem;
    stroke:currentColor;
    fill:none;
    stroke-width:2;
  }
  @media (min-width:769px){
    .promo-banner-wrap{
      width:min(88vw, 64rem);
    }
    .promo-banner-dialog{
      border-radius:1.35rem;
    }
    .promo-banner-close{
      top:-0.75rem;
      right:-0.75rem;
      width:2.6rem;
      height:2.6rem;
    }
  }
  @media (prefers-reduced-motion: reduce){
    .promo-banner-wrap{
      transform:none;
      opacity:1;
    }
  }

  /* ---------- Consult form modal ---------- */
  #consult-form-modal{
    position:fixed;
    inset:0;
    z-index:9550;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:max(0.75rem, env(safe-area-inset-top, 0px)) max(0.75rem, env(safe-area-inset-right, 0px)) max(0.75rem, env(safe-area-inset-bottom, 0px)) max(0.75rem, env(safe-area-inset-left, 0px));
    visibility:hidden;
    pointer-events:none;
  }
  #consult-form-modal.is-open{
    visibility:visible;
    pointer-events:auto;
  }
  .consult-form-modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(26,70,82,0.92);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
  .consult-form-modal__wrap{
    position:relative;
    width:min(94vw, 100%);
    max-height:min(92dvh, 40rem);
    transform:scale(0.96) translateY(14px);
    opacity:0;
  }
  .consult-form-modal__dialog{
    position:relative;
    width:100%;
    max-height:min(92dvh, 40rem);
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    border-radius:1rem;
    padding:1.35rem 1.1rem 1.25rem;
    background-color:#1A4652;
    background-image:var(--consult-modal-bg);
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    box-shadow:0 28px 80px rgba(0,0,0,0.45);
  }
  .consult-form-modal__dialog::before{
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:linear-gradient(180deg, rgba(26,70,82,0.88) 0%, rgba(26,70,82,0.94) 100%);
    pointer-events:none;
    z-index:0;
  }
  .consult-form-modal__dialog .contact-form-col{
    position:relative;
    z-index:1;
    max-width:none;
    margin:0;
    width:100%;
  }
  .consult-form-modal__dialog .contact-form-title{
    color:#FFFFFF;
    margin-bottom:0.75rem;
  }
  .consult-form-modal__dialog .contact-form-box{
    text-align:left;
    width:100%;
  }
  .consult-form-modal__close{
    position:absolute;
    top:0.35rem;
    right:0.35rem;
    z-index:2;
  }

  /* Tablet */
  @media (min-width:521px){
    #consult-form-modal{
      padding:1rem;
    }
    .consult-form-modal__wrap{
      width:min(90vw, 28rem);
      max-height:min(88dvh, 42rem);
    }
    .consult-form-modal__dialog{
      max-height:min(88dvh, 42rem);
      border-radius:1.15rem;
      padding:1.65rem 1.45rem 1.5rem;
    }
    .consult-form-modal__close{
      top:-0.55rem;
      right:-0.55rem;
    }
  }

  /* Laptop / desktop */
  @media (min-width:769px){
    #consult-form-modal{
      padding:1.25rem;
    }
    .consult-form-modal__wrap{
      width:min(88vw, 34rem);
      max-height:min(86dvh, 44rem);
    }
    .consult-form-modal__dialog{
      max-height:min(86dvh, 44rem);
      border-radius:1.35rem;
      padding:2rem 1.85rem 1.75rem;
    }
    .consult-form-modal__close{
      top:-0.75rem;
      right:-0.75rem;
      width:2.6rem;
      height:2.6rem;
    }
  }

  /* Windows 125% / 150% — compact effective viewport height */
  @media (min-width:769px) and (max-height:920px){
    .consult-form-modal__wrap{
      max-height:min(90dvh, 36rem);
    }
    .consult-form-modal__dialog{
      max-height:min(90dvh, 36rem);
      padding:1.35rem 1.25rem 1.25rem;
    }
    #consult-form-modal .contact-form-title{
      font-size:clamp(1.1rem, 2vw, 1.35rem);
      margin-bottom:0.65rem;
    }
    #consult-form-modal .contact-form-box{
      padding:1.15rem 1.1rem 1rem;
    }
    #consult-form-modal .contact-form{
      gap:0.75rem;
    }
    #consult-form-modal .contact-field textarea{
      min-height:2.75rem;
      max-height:4.5rem;
    }
  }
  @media (min-width:769px) and (max-height:780px){
    .consult-form-modal__wrap{
      max-height:min(94dvh, 32rem);
    }
    .consult-form-modal__dialog{
      max-height:min(94dvh, 32rem);
      padding:1.15rem 1.1rem 1.1rem;
    }
  }

  @media (prefers-reduced-motion: reduce){
    .consult-form-modal__wrap{
      transform:none;
      opacity:1;
    }
  }

  /* ============================================================
     Windows 125% / 150% display scaling and compact desktop heights
     (effective viewport shrinks — clip overflow, no section scrollbars)
     ============================================================ */
  @media (min-width:769px) and (max-height:920px){
    :root{
      --fs-section-title:clamp(1.35rem, 2.8vw, 2.1rem);
      --fs-h1:clamp(1.55rem, 2.6vw, 2.15rem);
      --fs-h2:clamp(1.35rem, 2.2vw, 1.75rem);
      --fs-hero-headline:clamp(1.65rem, 3vw, 2.65rem);
      --fs-hero-sub:clamp(1.25rem, 2.2vw, 1.85rem);
      --fs-count:clamp(2rem, 4.5vw, 2.85rem);
    }
    section[id]:not(#hero):not(#reasons){
      overflow:hidden;
    }
    #location,
    #facilities,
    #plans,
    #news{
      overflow:hidden;
    }
    #contact{
      overflow-x:hidden;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
    }
    #location-connect{
      overflow-x:hidden;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
    }
    #reasons{
      overflow:hidden;
      height:100dvh;
      min-height:100dvh;
      max-height:100dvh;
      scrollbar-width:none;
      -ms-overflow-style:none;
    }
    #reasons::-webkit-scrollbar{
      display:none;
    }
    #gallery .gallery-inner{
      padding-top:clamp(3.75rem, 8dvh, 4.5rem);
      padding-bottom:0.85rem;
      gap:0.65rem;
    }
    #gallery .gallery-title{
      font-size:clamp(1.3rem, 2.6vw, 1.85rem);
      line-height:1.2;
    }
    #gallery .gallery-card{
      width:min(44vw, 22rem);
      gap:0.55rem;
    }
    #gallery .gallery-card-media{
      height:clamp(12rem, 34dvh, 20rem);
    }
    #gallery .gallery-card:hover{
      transform:translateY(-3px);
    }
    #gallery .gallery-tab{
      padding:0.55rem 1rem;
    }
    #intro .intro-content{
      padding:clamp(3.5rem, 7dvh, 4.75rem) 1.5rem 1.75rem 3.5rem;
    }
    #intro .intro-head{
      max-width:100%;
    }
    #intro .intro-head > h2{
      font-size:clamp(1rem, 1.75vw, 1.35rem);
      letter-spacing:0.08em;
      line-height:1.36;
    }
    #intro .intro-head > p{
      font-size:clamp(0.8125rem, 1.45vw, 0.9375rem);
      margin-top:0.65rem;
      line-height:1.5;
    }
    #intro .intro-specs{
      margin-top:1.1rem;
    }
    #intro .intro-spec-label{
      font-size:clamp(0.5625rem, 0.9vw, 0.6875rem);
      letter-spacing:0.1em;
      line-height:1.35;
    }
    #intro .intro-spec-value{
      font-size:clamp(0.75rem, 1.2vw, 0.875rem);
      line-height:1.45;
    }
    #intro .intro-spec-row{
      grid-template-columns:minmax(6.75rem, 7.75rem) 1fr;
      gap:0.35rem 0.65rem;
      padding:0.35rem 0;
    }
    #location .location-wrap{
      padding:clamp(5.75rem, 12dvh, 6.5rem) 2rem 0.75rem 2.5rem;
    }
    #location .location-wrap--showcase{
      justify-content:flex-start;
      height:auto;
      min-height:100%;
      overflow:visible;
    }
    #location .location-show{
      gap:0.35rem;
      overflow:visible;
    }
    #location .location-show-head{
      padding-top:0.35rem;
    }
    #location .location-show-title-block{
      max-width:min(560px, 100%);
      padding:0 20px;
    }
    #location .location-show-serif{
      font-size:clamp(2.25rem, 5.5vw, 52px);
      line-height:1;
    }
    #location .location-show-sans{
      font-size:clamp(1rem, 2.6vw, 22px);
      letter-spacing:0;
    }
    #location .location-show-viewport{
      flex:0 0 auto;
      min-height:0;
      overflow:visible;
      align-items:stretch;
    }
    #location .location-show-body{
      gap:clamp(1rem, 2.2vw, 1.75rem);
      align-items:flex-end;
    }
    #location .location-show-nav{
      align-self:stretch;
      justify-content:flex-end;
      padding-bottom:0.5rem;
    }
    #location .location-show-right{
      gap:0.85rem;
      justify-content:flex-end;
    }
    #location .location-show-thumb-content{
      padding-top:0.4rem;
    }
    #location .location-show-thumb-title{
      font-size:clamp(1.35rem, 1.85vw, 1.75rem);
      line-height:1.4;
      padding-top:0.18em;
    }
    #location .location-show-frame--main img,
    #location .location-show-frame--thumb img{
      aspect-ratio:16/9;
    }
    #location .location-feature-media{
      height:clamp(9rem, 22dvh, 11.5rem);
    }
    #location-connect .location-connect-intro{
      padding:clamp(5.25rem, 10dvh, 5.75rem) 2rem 1rem 2.75rem;
    }
    #location-connect .location-connect-title-block{
      max-width:480px;
    }
    #plans .product-wrap{
      padding:clamp(3.75rem, 8dvh, 4.5rem) 2.5rem 0.85rem 3rem;
    }
    #plans .product-content-box{
      padding:1.5rem 1.75rem;
    }
    #news > .news-wrap{
      padding-top:clamp(3.75rem, 8dvh, 4.5rem);
      padding-bottom:2rem;
    }
    #contact .contact-wrap{
      padding-top:clamp(3.5rem, 7.5dvh, 4.25rem);
    }
    #contact .contact-form-box{
      padding:1.35rem 1.45rem 1.2rem;
    }
    #lifestyle .lifestyle-inner{
      padding:clamp(3.5rem, 7dvh, 4.75rem) 1.25rem 0.85rem;
      gap:0.55rem;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-serif{
      font-size:clamp(1.75rem, 8vw, 52px);
      line-height:1;
      color:#fff;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-sans{
      font-size:clamp(0.875rem, 3.5vw, 22px);
      letter-spacing:0;
      color:#fff;
    }
    #lifestyle .lifestyle-grid{
      height:clamp(250px, 42dvh, 380px);
      min-height:clamp(250px, 42dvh, 380px);
      max-height:clamp(250px, 42dvh, 380px);
    }
  }
  @media (min-width:769px){
    #lifestyle h2.lifestyle-headline .lifestyle-quote-sans{
      font-size:22px;
      letter-spacing:0;
      color:#fff;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-serif{
      font-size:52px;
      line-height:1;
      color:#fff;
    }
  }
  @media (min-width:769px) and (min-height:921px){
    #lifestyle h2.lifestyle-headline .lifestyle-quote-sans{
      font-size:22px;
      letter-spacing:0;
      color:#fff;
    }
    #lifestyle h2.lifestyle-headline .lifestyle-quote-serif{
      font-size:52px;
      line-height:1;
      color:#fff;
    }
    #lifestyle .lifestyle-grid{
      height:clamp(300px, 46dvh, 460px);
      min-height:clamp(300px, 46dvh, 460px);
      max-height:clamp(300px, 46dvh, 460px);
    }
  }
  @media (min-width:769px) and (max-height:780px){
    :root{
      --fs-section-title:clamp(1.2rem, 2.5vw, 1.75rem);
      --fs-h1:clamp(1.4rem, 2.4vw, 1.95rem);
      --fs-h2:clamp(1.2rem, 2vw, 1.55rem);
      --fs-hero-headline:clamp(1.45rem, 2.8vw, 2.25rem);
      --fs-hero-sub:clamp(1.1rem, 2vw, 1.55rem);
    }
    #gallery .gallery-inner{
      padding-top:3.5rem;
      padding-bottom:0.65rem;
      gap:0.5rem;
    }
    #gallery .gallery-card{
      width:min(42vw, 19rem);
    }
    #gallery .gallery-card-media{
      height:clamp(10rem, 28dvh, 16rem);
    }
    #gallery .gallery-card-label{
      font-size:clamp(0.65rem, 1vw, 0.78rem);
      letter-spacing:0.1em;
    }
    #plans .product-wrap{
      padding-top:3.25rem;
    }
    #intro .intro-content{
      padding:clamp(3.25rem, 6.5dvh, 4.25rem) 1.25rem 1.5rem 3.25rem;
    }
    #intro .intro-head{
      max-width:100%;
    }
    #intro .intro-head > h2{
      font-size:clamp(0.92rem, 1.6vw, 1.2rem);
      letter-spacing:0.07em;
      line-height:1.34;
    }
    #intro .intro-head > p{
      font-size:clamp(0.75rem, 1.3vw, 0.875rem);
      margin-top:0.5rem;
    }
    #intro .intro-specs{
      margin-top:0.85rem;
    }
    #intro .intro-spec-label{
      font-size:clamp(0.5rem, 0.85vw, 0.625rem);
      letter-spacing:0.08em;
    }
    #intro .intro-spec-value{
      font-size:clamp(0.6875rem, 1.1vw, 0.8125rem);
      line-height:1.4;
    }
    #intro .intro-spec-row{
      grid-template-columns:minmax(6.25rem, 7.25rem) 1fr;
      gap:0.3rem 0.55rem;
      padding:0.28rem 0;
    }
    #location .location-wrap{
      padding-top:clamp(5.5rem, 11dvh, 6rem);
    }
    #location .location-wrap--showcase{
      padding-top:clamp(5.5rem, 11dvh, 6rem);
    }
    #location .location-show{
      gap:0.35rem;
    }
    #location .location-show-title-block{
      max-width:min(560px, 100%);
      padding:0 20px;
    }
    #location .location-show-serif{
      font-size:clamp(2.25rem, 5.5vw, 52px);
      line-height:1;
    }
    #location .location-show-sans{
      font-size:clamp(1rem, 2.6vw, 22px);
      letter-spacing:0;
    }
    #location .location-show-viewport{
      overflow:visible;
      align-items:stretch;
    }
    #location .location-show-body{
      align-items:flex-end;
    }
    #location .location-show-nav{
      align-self:stretch;
      justify-content:flex-end;
    }
    #location .location-show-thumb-title{
      font-size:clamp(1.2rem, 1.7vw, 1.55rem);
      line-height:1.4;
      padding-top:0.2em;
    }
    #location .location-show-frame--main img,
    #location .location-show-frame--thumb img{
      aspect-ratio:16/9;
    }
    #location .location-feature-media{
      height:clamp(7.5rem, 18dvh, 9.5rem);
    }
    #location-connect .location-connect-intro{
      padding:clamp(5.25rem, 10dvh, 5.75rem) 6.25rem 1rem;
    }
  }

  /* Tablet stack — re-assert scroll + gỡ override compact-height (769–1024 only) */
  @media (min-width:769px) and (max-width:1024px){
    html,
    body{
      height:100% !important;
      overflow:hidden !important;
      overscroll-behavior:none;
    }
    section[id]{
      position:fixed !important;
      inset:0 !important;
      top:0 !important;
      right:0 !important;
      bottom:0 !important;
      left:0 !important;
      width:100% !important;
      height:100dvh !important;
      max-height:100dvh !important;
      min-height:0 !important;
      overflow-x:hidden !important;
      overflow-y:auto !important;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
      touch-action:pan-y;
      will-change:transform, opacity, clip-path, filter;
    }
    #hero,
    #reasons,
    #lifestyle{
      overflow-y:hidden !important;
    }
    #architecture{
      overflow-x:hidden !important;
      overflow-y:auto !important;
      height:100dvh !important;
      max-height:100dvh !important;
    }
    #facilities{
      height:100svh !important;
      min-height:100svh !important;
      max-height:100svh !important;
      overflow:hidden !important;
    }
    #facilities .facilities-layout{
      height:100% !important;
      min-height:0 !important;
      max-height:100% !important;
    }
    #facilities .facilities-copy-col{
      flex:1 1 0 !important;
      min-height:0 !important;
      max-height:50% !important;
      overflow-x:hidden !important;
      overflow-y:auto !important;
      -webkit-overflow-scrolling:touch;
    }
    #facilities .facilities-viewport{
      touch-action:pan-x;
    }
    #intro,
    #location,
    #location-connect,
    #gallery,
    #plans,
    #investment,
    #news,
    #contact{
      height:100dvh !important;
      max-height:100dvh !important;
      min-height:0 !important;
      overflow-x:hidden !important;
      overflow-y:auto !important;
    }
    #news{
      display:flex !important;
      align-items:stretch !important;
    }
    #contact{
      display:flex !important;
    }
    #contact .contact-wrap{
      height:100% !important;
      max-height:100dvh !important;
      min-height:0 !important;
      overflow-x:hidden !important;
      overflow-y:auto !important;
    }
    #intro .intro-slider,
    #intro .intro-slide{
      height:100dvh !important;
      min-height:100dvh !important;
      max-height:100dvh !important;
    }
    #intro .intro-layout{
      min-height:100% !important;
      height:100% !important;
    }
    #plans .product-wrap{
      height:100% !important;
      max-height:100dvh !important;
      overflow:hidden !important;
      display:flex !important;
      flex-direction:column !important;
    }
    #plans .product-slider{
      flex:1 1 auto !important;
      min-height:0 !important;
    }
    #investment .invest-wrap{
      height:100% !important;
      max-height:100dvh !important;
    }
    section[id]:not(#hero):not(#reasons):not(#lifestyle){
      overflow-x:hidden !important;
      overflow-y:auto !important;
    }
    #location-connect .location-wrap--connect{
      height:auto !important;
      min-height:auto !important;
    }
    #location .location-wrap--showcase{
      height:auto;
      min-height:auto;
    }
    #location .location-show,
    #location .location-show-viewport{
      flex:0 0 auto;
      min-height:auto;
    }
    #location .location-show-viewport{
      align-items:stretch;
    }
    #location .location-show-body{
      display:grid;
      grid-template-columns:1fr 1fr;
      grid-template-rows:auto auto auto;
      gap:1rem;
      align-items:stretch;
    }
    #location .location-show-media{
      grid-column:1;
      grid-row:1;
    }
    #location .location-show-right{
      display:contents;
    }
    #location .location-show-thumb{
      grid-column:2;
      grid-row:1;
    }
    #location .location-show-thumb-content{
      grid-column:1 / -1;
      grid-row:2;
    }
    #location .location-show-nav{
      grid-column:1 / -1;
      grid-row:3;
      flex-direction:row;
      justify-content:center;
      align-self:auto;
    }
    #location .location-show-frame--main img,
    #location .location-show-frame--thumb img{
      width:100%;
      height:clamp(11rem, 24svh, 15.5rem);
      min-height:clamp(11rem, 24svh, 15.5rem);
      max-height:clamp(11rem, 24svh, 15.5rem);
      aspect-ratio:unset !important;
      object-fit:cover;
    }
  }

  #video-modal{
    background-color:rgba(26,70,82,0.92);
  }

  /* ---------- Thank-you page (post form) ---------- */
  body.rg-thank-you-page{
    overflow:hidden;
  }
  body.rg-thank-you-page.is-loading{
    overflow:hidden;
  }
  body.rg-thank-you-page #nav{
    position:fixed;
  }
  .rg-thank-you{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:100svh;
    min-height:100dvh;
    padding:6.5rem 1.25rem 2.5rem;
    box-sizing:border-box;
    overflow:hidden;
    background-color:#1A4652;
  }
  .rg-thank-you__bg{
    position:absolute;
    inset:0;
    z-index:0;
  }
  .rg-thank-you__bg img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }
  .rg-thank-you__overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg, rgba(18,54,52,0.42) 0%, rgba(18,54,52,0.28) 45%, rgba(18,54,52,0.52) 100%);
    pointer-events:none;
  }
  .rg-thank-you__content{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:42rem;
    text-align:center;
    gap:2rem;
  }
  .rg-thank-you__message{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0.65rem;
  }
  .rg-thank-you__lead{
    margin:0;
    font-family:var(--font-sans);
    font-size:var(--fs-xs);
    font-weight:500;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.82);
  }
  .rg-thank-you__title{
    margin:0;
    font-family:var(--font-script);
    font-size:clamp(2.4rem, 8vw, 4rem);
    font-weight:400;
    line-height:1.55;
    color:#FFFFFF;
    text-shadow:0 8px 28px rgba(0,0,0,0.18);
  }
  .rg-thank-you__sub{
    margin:0.35rem 0 0;
    font-family:var(--font-sans);
    font-size:clamp(1rem, 2.6vw, 1.25rem);
    font-weight:500;
    letter-spacing:0.04em;
    line-height:1.6;
    color:rgba(255,255,255,0.92);
  }
  .rg-thank-you__home.contact-submit{
    margin-top:0.5rem;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  @media (max-width:768px){
    .rg-thank-you{
      padding:5.75rem 1rem 2rem;
    }
    .rg-thank-you__content{
      gap:1.65rem;
    }
  }

