/* Espire Custom Homes - post-Duda static fixes.
   Duda hides every animated element up front and reveals it with a scroll
   runtime that does not exist in a static export. #dmRoot is the <body>, so
   these selectors outrank Duda's class-only rules. Content appears instead of
   animating in, which is the right trade for a static site. */
#dmRoot [data-anim-extended],
#dmRoot [data-anim-desktop]:not([data-anim-desktop='none']),
#dmRoot [data-anim-tablet]:not([data-anim-tablet='none']),
#dmRoot [data-anim-mobile]:not([data-anim-mobile='none']),
#dmRoot .dmNewParagraph[data-anim-extended],
#dmRoot .flex-element [data-anim-extended] {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Galleries gate their thumbnails on a .ready class the same runtime adds. */
#dmRoot .dmPhotoGalleryHolder:not(.ready) li.photoGalleryThumbs {
  visibility: visible !important;
  display: inline-block !important;
}

/* The hamburger drawer's open state is driven by Duda's runtime (5o). The
   exported CSS has the rules; the runtime never ran. These make the drawer
   slide in when JS toggles the two attributes below. */
.runtime-module-container:not(.layout-drawer_push-content)
  .layout-drawer[data-origin][open]            { transform: translate(0) }
.runtime-module-container.layout-drawer_open
  .layout-drawer-overlay                       { opacity: 1; pointer-events: all }
.runtime-module-container.layout-drawer_open
  .layout-drawer-hamburger                     { pointer-events: none }

/* Desktop/tablet builds render the nav twice: a full inline <nav> sits in
   #hamburger-header next to the hamburger, and the drawer holds its own copy.
   The runtime normally hides the inline one. */
#dmRoot #hamburger-header nav.unifiednav { display: none !important }
