/* Integration only. Prototype spacing, typography and component rules remain in source CSS. */
.header.property .utility-nav { display:flex; align-items:center; gap:8px; }
.header.property .dream-language { position:relative; flex:none; }
.header.property .dream-language-toggle,
.header.property .utility-nav > .phone {
 display:flex!important; align-items:center!important; justify-content:center!important;
 width:40px; min-width:40px; height:40px!important; margin:0!important; padding:4px!important;
 color:inherit; border:0; background:none; cursor:pointer;
}
.header.property .dream-language-toggle svg,
.header.property .dream-phone-symbol { display:block; width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.header.property .utility-nav .dream-lucide-icon { width:28px;height:28px;stroke-width:1.6;flex:none; }
.header.property .dream-language-menu { position:absolute; top:calc(100% + 8px); right:0; z-index:30; min-width:68px; margin:0; padding:0; list-style:none; background:#fff; color:#333; border-radius:5px; box-shadow:0 6px 22px #0003; overflow:hidden; }
.header.property .dream-language-menu[hidden] { display:none!important; }
.header.property .dream-language-menu li { margin:0; padding:0; }
.header.property .dream-language-menu > li > :is(a,span) { display:flex; align-items:center; gap:10px; padding:11px 14px; color:inherit; font-size:14px; line-height:1.3; font-weight:600; text-decoration:none; text-align:left; white-space:nowrap; }
.header.property .dream-language-flag { display:inline-flex; align-items:center; justify-content:center; width:22px; flex:0 0 22px; padding:0; font-size:18px; line-height:1; }
.header.property .dream-language-menu :is(a:hover,a:focus-visible,[aria-current="true"]) { background:#303030; color:white; }
.header.property .dream-language-menu [aria-disabled="true"]:not([aria-current]) { color:#999; }
body:not(.sticky):not(.nav-open):not(.mobile-nav-open):not(.dream-no-hero) .header.property :is(.dream-language-toggle,.utility-nav > .phone) { color:#fff!important; }
body:is(.sticky,.nav-open,.dream-no-hero) .header.property :is(.dream-language-toggle,.utility-nav > .phone) { color:#394034!important; }
/* The legacy global header rule must not position editorial headings. */
html:has(body:is(.dream-home,.dream-page)) { height:auto; min-height:100%; overflow-x:clip; }
body:is(.dream-home,.dream-page) { height:auto; min-height:100vh; overflow:visible; }
main header:not(.header) { position:static; inset:auto; width:auto; z-index:auto; }
:root { --dream-admin-offset:0px; }
body.admin-bar { --dream-admin-offset:32px; }
.dp-hero, .hero.showcase.dream-video-hero, .hero.showcase.dream-youtube-hero, .hero.showcase.dream-slider-hero {
 height:calc(100vh - var(--dream-admin-offset));
 height:calc(100svh - var(--dream-admin-offset));
 min-height:0; max-height:none;
}
.dream-video-hero > .slide,
.dream-video-hero .video.background {
 position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none;
}
.dream-video-hero .video.background video { display:block; }
.dream-youtube-hero { --dream-youtube-overscan:1.2; position:relative; overflow:hidden; }
.dream-youtube-hero .dream-youtube-fallback,
.dream-youtube-hero .dream-youtube-player { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }
.dream-youtube-hero .dream-youtube-fallback { z-index:1; opacity:1; transition:opacity .45s ease; background:#142015; }
.dream-youtube-hero .dream-youtube-fallback__image { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
.dream-youtube-hero .dream-youtube-player { z-index:2; opacity:0; transition:opacity .45s ease; pointer-events:none; }
.dream-youtube-hero.dream-youtube-hero--no-fallback .dream-youtube-player { opacity:1; }
.dream-youtube-hero.is-playing .dream-youtube-player { opacity:1; }
.dream-youtube-hero.is-playing .dream-youtube-fallback { opacity:0; }
.dream-youtube-hero .dream-youtube-player iframe { position:absolute; top:50%; left:50%; display:block; width:100%; height:100%; max-width:none; border:0; transform:translate(-50%,-50%); pointer-events:none; }
.dream-no-hero main { padding-top:var(--dream-header-height,150px); }
/* Hero image slider: slow crossfade with a gentle zoom and a serif caption. */
.dream-slider-hero { position:relative; overflow:hidden; background:#142015; }
.dream-slider-hero::before,
.dream-slider-hero::after { content:""; position:absolute; left:0; right:0; z-index:2; pointer-events:none; }
.dream-slider-hero::before { top:0; height:220px; background:linear-gradient(rgba(0,0,0,.45),transparent); }
.dream-slider-hero::after { bottom:0; height:48%; background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,0)); }
.dream-slider-hero__slides,
.dream-slider-hero__slide { position:absolute; inset:0; margin:0; }
.dream-slider-hero__slide { opacity:0; transition:opacity 1.2s ease; }
.dream-slider-hero__slide.is-active { z-index:1; opacity:1; }
.dream-slider-hero__image { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; transform:scale(1); transition:transform 0s linear 1.2s; }
.dream-slider-hero__slide.is-active .dream-slider-hero__image { transform:scale(1.09); transition:transform calc(var(--dream-slider-delay,6500ms) + 2s) linear; }
/* Perf: keep the first slide still until the slider advances (Speed Index). */
[data-dream-hero-slider]:not(.is-cycled) .dream-slider-hero__slide.is-active .dream-slider-hero__image { transform:none; transition:none; }
[data-dream-hero-slider]:not(.is-playing) .dream-slider-hero__dot.is-active span::after { animation:none; }
.dream-slider-hero__caption { position:absolute; z-index:3; left:24px; right:24px; bottom:clamp(96px,17vh,200px); display:flex; flex-direction:column; align-items:center; gap:22px; text-align:center; color:#fff; opacity:0; visibility:hidden; transition:opacity .8s ease, visibility 0s linear .8s; }
.dream-slider-hero__caption.is-active { opacity:1; visibility:visible; transition-delay:0s; }
.dream-slider-hero__title { margin:0; color:#fff; font-family:"Cormorant Garamond","EB Garamond",Georgia,"Times New Roman",serif; font-size:clamp(2.125rem, 4.4vw, 2.8125rem); font-style:italic; font-weight:500; line-height:1.12; letter-spacing:.01em; text-transform:none; text-shadow:0 2px 24px rgba(0,0,0,.35); }
.dream-slider-hero__caption.is-active .dream-slider-hero__title { animation:dream-slider-title 1.6s cubic-bezier(.2,.7,.2,1) .3s both; }
/* Perf: first caption is visible immediately (LCP); animate only after the slider advances. */
[data-dream-hero-slider]:not(.is-cycled) .dream-slider-hero__caption.is-active .dream-slider-hero__title { animation:none; }
.dream-slider-hero__button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 28px; border:1px solid #fff; color:#fff!important; font-size:.8125rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; background:rgba(0,0,0,.08); transition:background-color .25s, color .25s; }
.dream-slider-hero__button:hover, .dream-slider-hero__button:focus-visible { background:#fff; color:var(--dp-green,#00612e)!important; }
.dream-slider-hero__dots { position:absolute; z-index:3; left:50%; bottom:clamp(40px,7vh,72px); display:flex; gap:10px; transform:translateX(-50%); }
.dream-slider-hero__dot { position:relative; width:44px; height:24px; padding:0; border:0; background:none; cursor:pointer; }
.dream-slider-hero__dot span { position:absolute; left:0; right:0; top:50%; height:2px; overflow:hidden; background:rgba(255,255,255,.4); }
.dream-slider-hero__dot span::after { content:""; position:absolute; inset:0; background:#fff; transform:scaleX(0); transform-origin:left; }
.dream-slider-hero__dot.is-active span::after { animation:dream-slider-progress var(--dream-slider-delay,6500ms) linear both; }
.dream-slider-hero__dot:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.dream-slider-hero__title:is(:lang(ja),:lang(zh),:lang(ko)) { font-family:"Noto Serif JP","Noto Serif SC","Noto Serif KR","Yu Mincho","Hiragino Mincho ProN","Songti SC","SimSun","Batang",serif; font-style:normal; font-size:clamp(1.75rem,3.4vw,2.875rem); letter-spacing:.12em; }
@keyframes dream-slider-title { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes dream-slider-progress { to { transform:scaleX(1); } }
@media(max-width:768px){ .dream-slider-hero__caption { bottom:172px; } .dream-slider-hero__dots { bottom:124px; } }
@media(prefers-reduced-motion:reduce){ .dream-slider-hero__image, .dream-slider-hero__slide.is-active .dream-slider-hero__image { transition:none; transform:none; } .dream-slider-hero__title { animation:none; } }
@media(max-width:782px){body.admin-bar{--dream-admin-offset:46px;}}
html.hide-transition { opacity: 1; }
.dream-honeypot { position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important; }
.dream-home :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline:2px solid #2c6faa!important;outline-offset:3px; }
.header .notification[hidden],.header .phone-menu[hidden] { display:none!important; }
.header .notifications [data-dream-notify] { border:0;background-color:transparent; }
.header .notification { width:100%; }
body:is(.dream-home,.dream-page) .header.property .utility-nav { right:40px!important; }
.header .mobile-logo a { display:block; }
/* Shared mobile header: align the visible marks, not unequal wrapper boxes. */
@media (max-width:1440px) {
 .header.property .navigation { min-height:76px;box-sizing:border-box;padding-top:16px!important;padding-bottom:16px!important; }
 .header.property .navigation > .nav-toggle {
  display:flex;align-items:center;justify-content:center;width:40px;height:44px;
  margin:0!important;padding:0;flex:0 0 40px;
 }
 .header.property .nav-toggle .menu-icon { position:relative;width:40px;height:24px; }
 .header.property .nav-toggle .bar { position:absolute;left:0;top:2px;width:40px;height:2px;margin:0!important; }
 .header.property .nav-toggle .bar:nth-child(2) { top:11px; }
 .header.property .nav-toggle .bar:last-child { top:20px; }
 .header.property .nav-toggle .menu-label { position:absolute;top:calc(50% + 17px);left:50%;transform:translateX(-50%);margin:0!important;white-space:nowrap; }
 .mobile-nav-open .header.property .nav-toggle .bar { top:11px; }
 .mobile-nav-open .header.property .nav-toggle .menu-label { font-size:0;line-height:10px; }
 .mobile-nav-open .header.property .nav-toggle .menu-label::after { content:attr(data-close-label);font-size:8px;line-height:10px; }
 .header.property .mobile-logo { top:50%!important;max-width:calc(100vw - 220px); }
 .header.property .mobile-logo figure {
  display:flex!important;align-items:center;justify-content:center;height:100%!important;margin:0;
 }
 .header.property .navigation > .utility-nav { top:50%!important;transform:translateY(-50%)!important; }
 .mobile-nav-open .header.property :is(.dream-language-toggle,.utility-nav > .phone) { color:#394034!important; }

 /* All submenu variants use the same inset and row rhythm as the root menu. */
 .mobile-nav-open .header.property nav > ul > li > a,
 .mobile-nav-open .header.property nav > ul > li.dropdown .toggle + div.show .mega-menu ul li > a {
  display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;
  min-height:56px;padding:8px 24px;line-height:20px;text-align:left;text-transform:uppercase;
 }
 .mobile-nav-open .header.property nav > ul > li.dropdown .mega-menu { padding:0!important; }
 .mobile-nav-open .header.property .mega-menu .columns {
  display:block!important;width:100%!important;max-width:none!important;padding:16px 0!important;margin:0!important;
 }
 .mobile-nav-open .header.property .mega-menu .columns > li { width:100%!important;max-width:none!important;margin:0!important;padding:0!important; }
 .mobile-nav-open .header.property nav > ul > li.dropdown .toggle + div.show .mega-menu a .title {
  padding:0;min-height:0;margin:0;width:100%;line-height:20px;text-align:left;text-transform:uppercase;
 }
 .mobile-nav-open .header.property .mega-menu .title br { display:none; }
}
.swiper .card { flex-shrink:0; }
.swiper .swiper-wrapper { align-items:stretch; }
.dream-home .dream-life-overlay { cursor:pointer; }
.admin-bar .header.property { top:32px; }
.dream-home .phone-menu[hidden] { display:none!important; }
.header .notifications .notification[hidden] { display:none!important; }
.dream-home .js-video-toggle-btn { cursor:pointer; }
.dream-room-dialog{padding:24px;border:0;max-width:95vw;background:#192119;color:white;}
.dream-room-dialog::backdrop{background:#142016ee;}
.dream-room-dialog img{max-width:85vw;max-height:85vh;object-fit:contain;}
.dream-room-dialog button{position:absolute;top:0;right:0;background:#192119;color:white;font-size:28px;min-width:44px;min-height:44px;border:0;}
.dream-room-notice{background:#fff;color:#394034;padding:8px;font-size:14px;}
.dp-card--text .dp-card__overlay{position:static;padding:24px;color:var(--dp-ink);background:none;}
.dp-card--text .dp-card__title{color:var(--dp-ink)!important;}
@media(max-width:782px){.admin-bar .header.property{top:46px;}}
@media(max-width:768px){body:is(.dream-home,.dream-page) .header.property .utility-nav{right:15px!important;}}
/* Source carousel controls exceed the viewport at tablet landscape widths. */
@media(min-width:769px) and (max-width:1280px){
 .dream-home .carousel.field-guide.single [class*="swiper-next-"]{left:auto!important;right:24px!important;}
 .dream-home .carousel.field-guide.single [class*="swiper-prev-"]{left:calc(60% + 24px)!important;}
 .dream-home .carousel.field-guide.single .swiper-pagination{left:calc(60% + 72px)!important;right:72px!important;width:auto!important;}
}

/* Keep homepage storytelling slides aligned when editors enter longer copy. */
.dream-home .dream-storytelling .card.default > .wrapper > .content > .body > p {
 display:-webkit-box;
 overflow:hidden;
 -webkit-box-orient:vertical;
 -webkit-line-clamp:5;
 line-clamp:5;
}

/* VI controls inherit the source Brown family instead of the UA button font. */
html[lang="vi"] .dp-form__actions > button,
html[lang="vi"] .js-video-toggle-btn { font-family:inherit; }
/* The narrower tablet text column needs room for complete localized sentences. */
@media (min-width:769px) and (max-width:1280px) {
 .dream-home .dream-storytelling .card.default > .wrapper > .content > .body > p {
  display:block;
  overflow:visible;
  -webkit-line-clamp:unset;
  line-clamp:unset;
 }
}

@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important;}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
@media print{.header,.footer,.dp-share,.dp-hero__extras{display:none!important;}}

/* Contact embeds Google Maps inside the existing responsive map panel. */
.dream-location-map-frame { display:block; width:100%; height:100%; border:0; }
.dream-location-map-frame:focus-visible { outline:3px solid #006039; outline-offset:-3px; }

/* Keep Google's iframe within the visible map column, beside the address. */
@media (min-width: 769px) {
  .dp-map-section .mapbox__inner:has(.dream-location-map-frame) { display:flex; }
  .dp-map-section .mapbox__inner:has(.dream-location-map-frame) .mapbox__content {
    position:relative; inset:auto; flex:0 0 auto; height:auto; min-height:650px;
  }
  .dp-map-section .mapbox__inner:has(.dream-location-map-frame) .mapbox__map-wrapper {
    position:relative; flex:1 1 0; min-width:0; width:auto;
  }
  .dp-map-section .mapbox__inner:has(.dream-location-map-frame) .mapbox__map { width:100%; }
}


/* Pointer clicks do not show keyboard focus rings. */
:root body:is(.dream-page, .dream-home) :is(a, button, [role="button"], [tabindex]):focus:not(:focus-visible) {
  outline:none !important;
  box-shadow:none !important;
}

/* Match footer social glyphs: Facebook & Zalo */
.footer .social a[href*="facebook"]::before,
.footer .social a.social-facebook::before {
  background-image:url('../images/7fa77060ffa431.svg') !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.footer .social a[href*="zalo"]::before,
.footer .social a.social-zalo::before {
  background-image:url('../icons/zalo.svg') !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  background-size:72% 72% !important;
}

/* Article / detail page social share buttons: Facebook & Zalo matching footer */
.dp-share__link img {
  width: 22px !important;
  height: 22px !important;
  max-width: 30px !important;
  max-height: 30px !important;
  display: block !important;
  object-fit: contain !important;
  pointer-events: none;
}
.dp-share__link svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
}
.dp-share__link--zalo img {
  width:72% !important;
  height:72% !important;
  max-width:none !important;
  max-height:none !important;
}

/* Shared booking CTA follows the header's transparent / sticky colour state on desktop. */
.header.property .dream-header-booking { position:absolute;right:40px;bottom:16px; }
.header.property .dream-availability { display:flex;align-items:center;justify-content:center;min-height:54px;padding:12px 24px;border:1px solid currentColor;color:inherit;background:transparent;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;box-sizing:border-box; }
.header.property .dream-availability:hover { background:#fff!important;color:#000!important;border-color:#fff; }
body:is(.dream-home,.dream-page) .header.property.has-availability .utility-nav { right:290px!important; }
@media(max-width:1440px) {
 .header.property .dream-header-booking { position:static;padding:0 24px 12px; }
 /* Remove the whole booking row while the mobile panel covers the header. */
 .mobile-nav-open .header.property .dream-header-booking { display:none; }
 .header.property .dream-availability { min-height:42px; }
 body:is(.dream-home,.dream-page) .header.property.has-availability .utility-nav { right:40px!important; }
}
@media(max-width:768px) {
 .header.property .dream-header-booking { padding:0 15px 10px; }
 body:is(.dream-home,.dream-page) .header.property.has-availability .utility-nav { right:15px!important; }

 /* Mobile buttons: solid white background, distinct green border and text */
 .header.property .dream-availability,
 .header.property .book > .btn,
 .header.property a.btn,
 .mobile-nav-open .header.property .book a.btn {
   background:#ffffff !important;
   background-color:#ffffff !important;
   color:#005c30 !important;
   border:1px solid #005c30 !important;
   font-weight:700 !important;
   box-shadow:0 2px 8px rgba(0, 0, 0, 0.08) !important;
 }
 .header.property .dream-availability:hover,
 .header.property .dream-availability:active,
 .header.property .book > .btn:hover,
 .header.property .book > .btn:active {
   background:#f7f6f2 !important;
   background-color:#f7f6f2 !important;
   color:#005c30 !important;
   border-color:#005c30 !important;
 }
}
@media(min-width:769px) {
 body:not(.sticky):not(.nav-open):not(.dream-no-hero) .header.property .dream-availability { color:#fff; }
 body.sticky .header.property .dream-availability,
 body.nav-open .header.property .dream-availability,
 body.dream-no-hero .header.property .dream-availability { color:#005c30; }
}
@media(min-width:1441px) {
 body:is(.dream-home,.dream-page) .header.property.has-availability .utility-nav {
   right:calc(40px + var(--dream-booking-width, 210px) + 32px)!important;
   transition:none!important;
 }
}

/* Anchor split-carousel controls to the active text column at every width. */
.container-none .carousel.default.single:is(.dream-storytelling,.dream-services) > .content { position:relative; }
.container-none .carousel.default.single:is(.dream-storytelling,.dream-services) > .content > [class*="swiper-prev-"] { left:var(--controls-left,24px)!important;right:auto!important;margin-left:0!important; }
.container-none .carousel.default.single:is(.dream-storytelling,.dream-services) > .content > [class*="swiper-next-"] { left:calc(var(--controls-right,100%) - 42px)!important;right:auto!important;margin-left:0!important; }
.container-none .carousel.default.single:is(.dream-storytelling,.dream-services) > .content > .swiper-pagination { left:calc(var(--controls-left,24px) + 48px)!important;right:auto!important;width:calc(var(--controls-right,100%) - var(--controls-left,24px) - 96px)!important;margin:0!important;transform:none!important;text-align:center; }

@media(min-width:769px) {
 .dream-home .dream-storytelling .card.default > .wrapper > .content > .body { min-height:0; }
 .dream-home .dream-storytelling .card.default > .wrapper > .content > .body > p { margin-bottom:0; }
 .dream-home .dream-storytelling .card.default > .wrapper > .content > .links { margin-top:20px!important; }
 .dream-home .dream-storytelling > .content > [class*="swiper-prev-"],
 .dream-home .dream-storytelling > .content > [class*="swiper-next-"] { bottom:96px!important; }
 .dream-home .dream-storytelling > .content > .swiper-pagination { bottom:86px!important; }
 .dream-home .dream-services > .content > [class*="swiper-prev-"],
 .dream-home .dream-services > .content > [class*="swiper-next-"] { bottom:96px!important; }
 .dream-home .dream-services > .content > .swiper-pagination { bottom:86px!important; }
}

.dream-life-at-dream span.dream-life-overlay { cursor:default; }

/* Image viewers are viewport-centred, independent of page figure styles. */
.demo-lightbox.dp-lightbox { position:fixed;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:64px 24px;box-sizing:border-box; }
.demo-lightbox.dp-lightbox[hidden] { display:none; }
.dp-lightbox .dp-lightbox__figure { position:static;display:flex;align-items:center;justify-content:center;flex:none;width:auto;height:auto;max-width:100%;margin:0;padding:0;transform:none; }
.dp-lightbox .demo-lightbox__image { position:static;display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 128px);object-fit:contain;transform:none;margin:0; }
.dream-room-dialog[open] { position:fixed;inset:0;display:flex;align-items:center;justify-content:center;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:64px 24px;box-sizing:border-box; }
.dream-room-dialog img { display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 128px);object-fit:contain;margin:0; }

/* Selectable thumbnail grid: side rail on desktop, bottom rail on mobile. */
.dp-lightbox .dp-lightbox__stage { display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0; }
.demo-lightbox.dp-lightbox.has-thumbnails { display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:20px; }
.demo-lightbox.dp-lightbox.has-thumbnails[hidden] { display:none; }
.dp-lightbox__thumbs { align-self:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px;overflow-y:auto;min-height:0;padding:4px;scrollbar-width:thin; }
.demo-lightbox.dp-lightbox.is-gallery-page { background:rgba(10,12,9,.98); }
.dp-lightbox.is-gallery-page .dp-lightbox__thumbs { gap:2px;padding:2px; }
html.dp-lightbox-open,html.dp-lightbox-open body { overflow:hidden!important;overscroll-behavior:none; }
.dp-lightbox .dp-lightbox__thumb { display:block;min-width:0;aspect-ratio:1;padding:0;border:2px solid transparent;background:transparent;cursor:pointer;opacity:.65; }
.dp-lightbox .dp-lightbox__thumb[aria-pressed=true] { border-color:#fff;opacity:1; }
.dp-lightbox .dp-lightbox__thumb:hover { opacity:1; }
.dp-lightbox .dp-lightbox__thumb img { display:block;position:static;width:100%;height:100%;object-fit:cover; }
.dp-lightbox.has-thumbnails .demo-lightbox__next { right:224px; }
@media(max-width:768px) {
 .demo-lightbox.dp-lightbox.has-thumbnails { grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 96px;gap:12px;padding:64px 16px 76px; }
 .dp-lightbox.has-thumbnails .demo-lightbox__image { max-height:calc(100dvh - 248px); }
 .dp-lightbox__thumbs { grid-template-columns:repeat(auto-fill,minmax(56px,1fr)); }
 .dp-lightbox.has-thumbnails .demo-lightbox__next { right:24px; }
}

/* WhatsApp brand glyph inherits the existing social button design. */
.footer .social a.social-whatsapp { display:inline-flex;align-items:center;justify-content:center; }
.footer .social a.social-whatsapp::before { display:none; }
.footer .social .dream-whatsapp-icon { display:block;width:22px;height:22px;color:#fff; }
.dp-share__link .dream-whatsapp-icon { width:22px!important;height:22px!important; }

/* Keep the copyright strip compact while allowing translated text to wrap. */
footer.dream-footer { margin-bottom:0; }
footer.dream-footer .copy { padding:6px 0; }
footer.dream-footer .dream-copyright { line-height:1.5;letter-spacing:.03em;padding-inline:12px; }
@media(max-width:991px) {
 footer.dream-footer--mobile-contacts .misc { padding-bottom:80px; }
}

/* Japanese amenity labels need room for full words on narrow room cards. */
@media(max-width:480px) {
 :lang(ja) .dp-room-card__amenities { column-gap:16px; }
 :lang(ja) .dp-room-card__amenities li { gap:8px; }
 :lang(ja) .dp-room-card__amenities li span { font-size:12px;letter-spacing:0; }
}

/* Mobile/tablet header: equal visual spacing around the brand and aligned icons. */
@media(max-width:1024px) {
 .header.property { --dream-header-inset:16px; }
 .mobile-nav-open .header.property { height:auto!important; }
 .header.property .navigation {
  display:flex!important;justify-content:space-between;align-items:center;
  min-height:68px;padding:12px var(--dream-header-inset)!important;gap:0;
 }
 .header.property .navigation > .nav-toggle {
  position:relative;flex:0 0 44px;
  width:44px;min-width:44px;height:44px;box-sizing:border-box;
 }
 .header.property .nav-toggle .menu-icon { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:18px;flex:none; }
 .header.property .nav-toggle .bar { width:24px;top:0; }
 .header.property .nav-toggle .bar:nth-child(2) { top:8px; }
 .header.property .nav-toggle .bar:last-child { top:16px; }
 .header.property .navigation > .nav-toggle .menu-label {
  position:absolute;top:calc(50% + 11px);left:50%;display:block;transform:translateX(-50%);margin:0!important;
  font-size:7px;line-height:10px;height:10px;letter-spacing:.05em;
 }
 .mobile-nav-open .header.property .nav-toggle .bar { top:8px; }
 .mobile-nav-open .header.property .navigation > .nav-toggle .menu-label { font-size:0; }
 .header.property .navigation > .mobile-logo {
  flex:0 1 auto;position:static!important;inset:auto!important;
  transform:translateX(8px)!important;width:clamp(128px,36vw,160px);max-width:100%;height:auto;
 }
 .header.property .mobile-logo figure { width:100%;height:auto!important; }
 .header.property .mobile-logo img { width:100%!important;height:auto!important;max-height:48px; }
 body:is(.dream-home,.dream-page) .header.property .navigation > .utility-nav {
  flex:0 0 92px;position:relative!important;inset:auto!important;
  transform:none!important;width:92px;gap:4px;justify-content:flex-end;
 }
 .header.property .utility-nav .phone-menu { right:0!important;left:auto;top:calc(100% + 8px); }
 .header.property :is(.dream-language-toggle,.utility-nav > .phone) { width:44px;min-width:44px;height:44px!important; }
 .header.property .utility-nav .dream-lucide-icon { width:26px;height:26px; }
 .header.property .dream-header-booking { padding:0 var(--dream-header-inset) 10px; }
 .header.property .dream-availability { min-height:44px; }
 .mobile-nav-open .header.property .navigation > nav {
  top:calc(var(--dream-admin-offset,0px) + var(--dream-header-height,68px));
  height:calc(100vh - var(--dream-admin-offset,0px) - var(--dream-header-height,68px));
  height:calc(100dvh - var(--dream-admin-offset,0px) - var(--dream-header-height,68px));
 }
}
@media(min-width:600px) and (max-width:1024px) {
 .header.property { --dream-header-inset:24px; }
 .header.property .navigation { min-height:80px;padding-top:18px!important;padding-bottom:18px!important; }
 .header.property .navigation > .mobile-logo { width:190px; }
}
/* Header call dropdown: airy grouped layout with icons and a soft lift off same-tone backgrounds. */
.header.property .utility-nav .phone-menu { min-width:264px; max-width:320px; padding:22px 26px; border:1px solid rgba(57,64,52,.08); border-radius:6px; background:#f7f5ef; box-shadow:0 18px 40px -12px rgba(30,40,28,.28),0 4px 12px rgba(30,40,28,.08); text-align:left; }
.header.property .utility-nav .phone-menu__group + .phone-menu__group { margin-top:16px; padding-top:16px; border-top:1px solid var(--dp-line,#dcd8cc); }
.header.property .utility-nav .phone-menu__title { display:flex; align-items:center; gap:10px; margin:0 0 10px; color:var(--dp-ink,#394034); font-size:.8125rem; line-height:1.3; letter-spacing:.06em; }
.header.property .utility-nav .phone-menu__icon { flex:none; width:17px; height:17px; fill:none; stroke:var(--dp-green,#00612e); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transform:translateY(-1.5px);margin-bottom: 4px; }
/* Centre the icon on the capital letters rather than the full line box. */
@supports (text-box: trim-both cap alphabetic) {
 .header.property .utility-nav .phone-menu__title strong { text-box:trim-both cap alphabetic; }
 .header.property .utility-nav .phone-menu__icon { transform:none; }
}
.header.property .utility-nav .phone-menu__number { padding-left:27px; line-height:1.5; }
.header.property .utility-nav .phone-menu__number + .phone-menu__number { margin-top:4px; }
.header.property .utility-nav .phone-menu a { display:inline-block; margin:0; padding:2px 0; color:var(--dp-ink,#394034); font-size:.875rem; letter-spacing:.08em; white-space:nowrap; transition:color .2s; }
.header.property .utility-nav .phone-menu a:hover { color:var(--dp-green,#00612e); }
/* Brown 400/700 with TrueType hinting removed: the original hints merge the i/j dot into the stem on Windows at small sizes. Outlines, metrics and kerning are unchanged. */
@font-face{font-display:swap;font-family:Brown;font-style:normal;font-weight:400;src:url("https://dreamaparthotel.com.vn/wp-content/uploads/2026/10/brown-400-nohint.woff") format("woff")}
@font-face{font-display:swap;font-family:Brown;font-style:normal;font-weight:700;src:url("https://dreamaparthotel.com.vn/wp-content/uploads/2026/10/brown-700-nohint.woff") format("woff")}


/* Mobile refinements: shared header, home amenities, location and social gallery. */
@media(max-width:1024px) {
 .header.property .dream-header-booking,
 .header.property .dream-availability,
 .header.property .book { display:none!important; }
}
@media(max-width:768px) {
 .dream-features .feature { height:auto!important;min-width:0; }
 .dream-features .feature > a { width:100%;box-sizing:border-box; }
 .dream-features .feature .icon { width:44px!important;height:44px!important;margin:0 auto 14px!important; }
 .dream-features .feature .icon .dp-icon,
 .dream-features .feature .icon svg { display:block;width:44px!important;height:44px!important;max-width:none!important;max-height:none!important;margin:0!important; }
 .dream-features .feature .title { min-height:0!important;height:auto!important;color:var(--dp-green,#00612e)!important;font-size:12px!important;font-weight:600!important;line-height:1.35!important;letter-spacing:.08em!important;text-transform:uppercase; }
 .dream-features .feature .subtitle { margin-top:4px!important;color:#6f746d!important;font-size:12px!important;font-weight:400!important;line-height:1.4!important;letter-spacing:.02em!important; }
 .dream-location-section { padding-top:20px!important;padding-bottom:0!important;scroll-margin-top:120px; }
 .dream-location-section .mapbox__inner { display:flex!important;flex-direction:column;height:auto!important;min-height:0!important; }
 .dream-location-section .mapbox__content.hide-mobile { position:relative!important;inset:auto!important;transform:none!important;visibility:visible!important;display:block!important;width:100%!important;height:auto!important;min-height:0!important;padding:24px 20px 20px!important;box-sizing:border-box;z-index:auto; }
 .dream-location-section .mapbox__node-content { height:auto!important;min-height:0!important;padding:0!important;overflow:visible!important; }
 .dream-location-section .mapbox__node-content .body { display:block!important;height:auto!important;min-height:0!important;padding:0!important; }
 .dream-location-section .body p { margin-bottom:0!important; }
 .dream-location-section .dream-location-actions { margin-top:14px!important;gap:10px!important; }
 .dream-location-section .mapbox__map-wrapper { position:relative!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important; }
 .dream-location-section .mapbox__map.dream-google-map { position:relative!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:1/1; }
 .dream-location-section .dream-map-canvas { position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;transform:none!important; }
 .dream-location-section .dream-location-map-frame { width:100%!important;height:100%!important; }
 .dream-life-at-dream .crowdriff { isolation:isolate; }
 .dream-life-at-dream .crowdriff > .headline { z-index:3!important;background:rgba(241,238,235,.90)!important; }
 .dream-life-at-dream .crowdriff > .c-crowdriff { position:relative;z-index:1; }
}

/* Keep mobile homepage section spacing consistent with a little more breathing room. */
@media(max-width:768px) {
 .dream-home main article.property > .content > .panel.pt-half { padding-top:28px!important; }
 .dream-home main article.property > .content > .panel.pb-half { padding-bottom:28px!important; }
 .dream-home main article.property > .content > .panel :is(.carousel,.crowdriff) { margin-top:32px!important; }
 .dream-home .dream-features > .swiper { padding-bottom:40px!important; }
}

/* Reduce the mobile gap below the map without changing its square viewport. */
@media(max-width:768px) {
 .dream-location-section.panel.dp-map-section { padding-bottom:160px!important; }
 .dream-location-section .map-box-block { transform:none!important; }
 .dream-location-section .mapbox:has(.dream-google-map) { min-height:0!important;height:auto!important; }
 .dream-location-section .mapbox__inner:has(.dream-google-map) .mapbox__map-wrapper { height:auto!important;min-height:0!important;flex:none!important; }
}
