/* Integration only. Prototype spacing, typography and component rules remain in source CSS. */
/* 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 {
 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-no-hero main { padding-top:var(--dream-header-height,150px); }
@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; }
.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.single [class*="swiper-next-"]{left:auto!important;right:24px!important;}
 .dream-home .carousel.single [class*="swiper-prev-"]{left:calc(60% + 24px)!important;}
 .dream-home .carousel.single .swiper-pagination{left:calc(60% + 72px)!important;right:72px!important;width:auto!important;}
}
@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 all footer social glyphs to the existing white-on-green icons. */
.footer .social a[href*="tiktok"]::before {
  background-image:url('../images/9a5a0bc1a1ccd1.svg') !important;
  background-size:12px 14px !important;
}
.footer .social a[href*="linkedin"]::before {
  background-image:url('../images/social-linkedin-white.svg') !important;
}
.footer .social a[href*="spotify"]::before {
  background-image:url('../images/social-spotify-white.svg') !important;
}
