/* Lindum Lodge static runtime replacement (v4) */

/* ---- reveal photo galleries ---- */
#dm .dmPhotoGallery.newPhotoGallery .dmPhotoGalleryHolder,
.dmPhotoGalleryHolder:not(.photo-gallery-done){ display:block !important; }
#dm .dmPhotoGallery.newPhotoGallery .layout-container .photogallery-column
  .photoGalleryThumbs .image-container a{
  display:block !important; width:100%; min-height:220px;
  background-size:cover !important; background-position:50% 50% !important;
  background-repeat:no-repeat !important;
}
.photoGalleryThumbs,.thumbnailInnerWrapper,.image-container{
  opacity:1 !important; visibility:visible !important;
}

/* ---- videos: not part of the desktop design; remove incl. space ---- */
.youtubeExt{ display:none !important; }

/* ---- slider engine with crossfade ---- */
.flexslider{ position:relative; overflow:hidden; }
.flexslider .slides{ position:relative; margin:0; padding:0; list-style:none; }
.flexslider .slides > li{
  display:block; position:absolute; top:0; left:0; width:100%;
  opacity:0; transition:opacity .9s ease; pointer-events:none; z-index:1;
}
.flexslider .slides > li.lindum-active{
  position:relative; opacity:1; pointer-events:auto; z-index:2;
}
.flexslider.ed-version .slides img{ display:block !important; width:100%; height:auto; }
.flexslider .slides > li a img{ opacity:1 !important; }
/* captions were left visibility:hidden by the builder's entrance animation */
.flexslider .slides > li .slide-inner,
.flexslider .slides > li .text-wrapper,
.flexslider .slides > li .slide-title,
.flexslider .slides > li .slide-text{
  visibility:visible !important; opacity:1 !important;
}

.lindum-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:40;
  width:44px; height:44px; border:none; border-radius:50%;
  background:rgba(0,0,0,.45); color:#fff; font-size:22px; line-height:44px;
  text-align:center; cursor:pointer; user-select:none; padding:0;
  transition:background .2s;
}
.lindum-arrow:hover{ background:rgba(0,0,0,.7); }
.lindum-prev{ left:14px; } .lindum-next{ right:14px; }

/* ---- row background slideshows (data-gallery-bg) with crossfade ---- */
.lindum-bg-host{ position:relative; }
.lindum-bg-layer{
  position:absolute; inset:0; z-index:0; opacity:0;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  transition:opacity 1.1s ease; pointer-events:none;
}
.lindum-bg-layer.on{ opacity:1; }
.lindum-bg-host > .dmRespColsWrapper{ position:relative; z-index:1; }

/* ---- popup modal ---- */
#lindum-modal-mask{
  position:fixed; inset:0; z-index:100000; background:rgba(0,0,0,.65);
  display:none; align-items:center; justify-content:center; padding:24px;
}
#lindum-modal-mask.open{ display:flex; }
#lindum-modal{
  position:relative; background:#fff; width:min(1000px,96vw); height:min(85vh,900px);
  border-radius:10px; overflow:hidden; box-shadow:0 12px 50px rgba(0,0,0,.45);
}
#lindum-modal iframe{ width:100%; height:100%; border:0; }
#lindum-modal-close{
  position:absolute; top:10px; right:10px; z-index:2;
  width:38px; height:38px; border:none; border-radius:50%;
  background:rgba(0,0,0,.55); color:#fff; font-size:20px;
  cursor:pointer; line-height:38px; text-align:center; padding:0;
}
#lindum-modal-close:hover{ background:rgba(0,0,0,.8); }
@media (max-width:640px){
  #lindum-modal{ width:100vw; height:100vh; border-radius:0; }
  #lindum-modal-mask{ padding:0; }
}

/* ---- mobile: release the desktop 768px floor ---- */
@media (max-width:767px){
  html body #dmRoot .dmInner, html body .dmInner{ min-width:0 !important; width:100% !important; }
  html body .dmLayoutWrapper, html body .site_content, html body .dmBody,
  html body .dmContent, html body .allWrapper, html body .p_hfcontainer,
  html body #site_content{ width:100% !important; min-width:0 !important; }
  #hcontainer, .dmHeaderContainer{ min-width:0 !important; }
  img, iframe{ max-width:100%; }
}

/* ---- hamburger drawer ---- */
html.lindum-drawer-open .layout-drawer{ transform:translate(0,0) !important; }
html.lindum-drawer-open .layout-drawer-overlay{
  opacity:1 !important; pointer-events:auto !important;
  background:rgba(0,0,0,.45); width:100%; z-index:12;
}
.layout-drawer-overlay{ pointer-events:none; transition:opacity .25s; }
.layout-drawer{ transition:transform .25s ease; }

/* ---- v4.1: the master fix ----
   Duda pre-hides every element marked for an entrance animation and its JS
   (now removed) was supposed to reveal them. Override the pre-hide, then
   lindum.js re-adds a lightweight fade-in-on-scroll so the original effect
   is preserved. Without JS, content is simply visible (safe fallback). */
.dmDesktopBody:not(.editGrid) [data-anim-desktop]:not([data-anim-desktop="none"]),
.dmDesktopBody:not(.editGrid) [data-anim-extended],
[data-anim-desktop], [data-anim-mobile], [data-anim-tablet]{
  visibility:visible !important;
}
.lindum-anim-wait{ opacity:0; transform:translateY(18px); }
.lindum-anim-in{
  opacity:1; transform:none;
  transition:opacity .8s ease, transform .8s ease;
}

/* ---- v4.2 ---- */
/* attractions page: the two desktop video rows Duda's JS would have filled;
   permanently empty in a static copy, so remove their space */
.u_1382578420, .u_1357989080{ display:none !important; }

/* review slides: Duda's JS applied the darkening overlay colour; restore it */
.flexslider .slides > li[color-overlay="true"] .color-overlay{
  background:rgba(0,0,0,.45) !important; z-index:1;
}
/* normalise caption layout on every slide (per-slide JS positioning is gone):
   centred block over the image, identical for all slides */
html .flexslider.ed-version .slides > li[show-content="true"][layout] .slide-inner{
  position:absolute !important; inset:0 !important; z-index:2;
  display:flex !important; align-items:center; justify-content:center;
  padding:40px 100px;
}
html .flexslider.ed-version .slides > li[show-content="true"][layout] .text-wrapper{
  max-width:920px; text-align:center;
}

/* row-level dark overlay (Duda's hasBackgroundOverlay, JS-built originally) */
.lindum-bg-tint{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:rgba(0,0,0,.42);
}

html .flexslider.ed-version .slides > li[show-content="true"][layout] .text-wrapper{
  position:static !important; width:auto !important; left:auto !important;
  right:auto !important; top:auto !important; transform:none !important;
}
html .flexslider.ed-version .slides > li[show-content="true"][layout] .slide-title,
html .flexslider.ed-version .slides > li[show-content="true"][layout] .slide-text{
  width:auto !important; max-width:100% !important;
  left:auto !important; top:auto !important; position:static !important;
}

/* ---- static review cards ---- */
.lindum-reviews{
  position:relative; z-index:3;
  max-width:860px; margin:0 auto; padding:46px 20px;
  display:flex; flex-direction:column; gap:16px; align-items:stretch;
}
.lindum-review-card{
  margin:0; box-sizing:border-box;
  background:rgba(255,255,255,.94);
  border-radius:8px; padding:18px 22px;
  box-shadow:0 3px 14px rgba(0,0,0,.18);
  text-align:center;
}
.lindum-review-card blockquote{
  margin:0; padding:0; border:0;
  font:italic 400 17px/1.5 Merriweather, Georgia, serif;
  color:#28414f;
}
.lindum-review-card figcaption{
  margin-top:9px; font:600 13px/1.3 Roboto, Arial, sans-serif;
  color:#5d6f7c; letter-spacing:.02em;
}
@media (max-width:767px){
  .lindum-reviews{ padding:30px 16px; gap:13px; max-width:100%; }
  .lindum-review-card{ padding:14px 16px; }
  .lindum-review-card blockquote{ font-size:15px; }
}
