/* Havenpark Mosaic Carousel */
.hpmc-carousel-wrapper{--hpmc-height:450px;--hpmc-gap:8px;--hpmc-radius:0px;--hpmc-mosaic-ratio:50%;--hpmc-arrow-color:#fff;--hpmc-arrow-bg:rgba(0,0,0,0.5);--hpmc-lightbox-bg:rgba(0,0,0,0.95);--hpmc-transition:400ms;position:relative;width:100%}
.hpmc-carousel-container{position:relative;width:100%;height:var(--hpmc-height);overflow:hidden;border-radius:0px;background:#f5f5f5}
.hpmc-slides-track{display:flex;width:100%;height:100%;transition:transform var(--hpmc-transition) cubic-bezier(0.4,0,0.2,1)}
.hpmc-slide{flex:0 0 100%;width:100%;height:100%;display:flex;gap:var(--hpmc-gap)}
.hpmc-mosaic-slide{flex-direction:row}
.hpmc-mosaic-slide .hpmc-main-image{flex:0 0 calc(var(--hpmc-mosaic-ratio) - var(--hpmc-gap)/2);height:100%}
.hpmc-mosaic-slide .hpmc-grid-area{flex:0 0 calc(100% - var(--hpmc-mosaic-ratio) - var(--hpmc-gap)/2);display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:var(--hpmc-gap)}
.hpmc-grid-slide .hpmc-grid-container{display:grid;width:100%;height:100%;gap:var(--hpmc-gap)}
.hpmc-grid_8 .hpmc-grid-container{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr)}
.hpmc-grid_6 .hpmc-grid-container{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}
.hpmc-grid_4 .hpmc-grid-container{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}
.hpmc-grid_2 .hpmc-grid-container{grid-template-columns:repeat(2,1fr);grid-template-rows:1fr}
.hpmc-image-item{position:relative;overflow:hidden;border-radius:0px;background:#e8e8e8;cursor:pointer}
.hpmc-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--hpmc-transition),filter var(--hpmc-transition)}
.hpmc-fit-contain .hpmc-image{object-fit:contain}
.hpmc-fit-fill .hpmc-image{object-fit:fill}
.hpmc-hover-zoom .hpmc-image-item:hover .hpmc-image{transform:scale(1.06)}
.hpmc-hover-brighten .hpmc-image-item:hover .hpmc-image{filter:brightness(1.12)}
.hpmc-hover-darken .hpmc-image-item:hover .hpmc-image{filter:brightness(0.85)}
.hpmc-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;background:var(--hpmc-arrow-bg);color:var(--hpmc-arrow-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;z-index:10;padding:0;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.hpmc-nav-arrow:hover{background:rgba(0,0,0,.75);transform:translateY(-50%) scale(1.08)}
.hpmc-nav-arrow svg{width:55%;height:55%}
.hpmc-nav-arrow.hpmc-disabled{opacity:.3;pointer-events:none}
.hpmc-arrows-inside .hpmc-prev{left:16px}
.hpmc-arrows-inside .hpmc-next{right:16px}
.hpmc-arrows-outside .hpmc-prev{left:-60px}
.hpmc-arrows-outside .hpmc-next{right:-60px}
.hpmc-arrows-edge .hpmc-prev{left:-22px}
.hpmc-arrows-edge .hpmc-next{right:-22px}
.hpmc-counter{position:absolute;background:rgba(0,0,0,.6);color:#fff;padding:8px 18px;border-radius:24px;font-size:14px;font-weight:600;z-index:10;backdrop-filter:blur(4px)}
.hpmc-counter-bottom-right .hpmc-counter{bottom:16px;right:16px}
.hpmc-counter-bottom-left .hpmc-counter{bottom:16px;left:16px}
.hpmc-counter-top-right .hpmc-counter{top:16px;right:16px}
.hpmc-counter-top-left .hpmc-counter{top:16px;left:16px}
.hpmc-no-images{display:flex;align-items:center;justify-content:center;padding:40px;background:#f9f9f9;border:2px dashed #ddd;border-radius:8px;color:#666;font-size:14px}
.hpmc-lightbox{position:fixed;inset:0;background:var(--hpmc-lightbox-bg);z-index:999999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.hpmc-lightbox.hpmc-lightbox-active{opacity:1;visibility:visible;background:rgb(0 0 0 / 75%)}
.hpmc-lightbox-close{position:fixed;top:20px;right:20px;width:52px;height:52px;background:rgba(0,0,0,.6);border:2px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:1000000;padding:0}
.hpmc-lightbox-close:hover{background:rgba(0,0,0,.8);border-color:rgba(255,255,255,.5);transform:scale(1.1)}
.hpmc-lightbox-content{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:80px 100px}
.hpmc-lightbox-image-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;max-height:100%;position:relative}
.hpmc-lightbox-image{max-width:100%;max-height:75vh;object-fit:contain;border-radius:4px;opacity:0;transform:scale(.95);transition:opacity .3s,transform .3s;box-shadow:0 8px 40px rgba(0,0,0,.4)}
.hpmc-lightbox-image.hpmc-loaded{opacity:1;transform:scale(1)}
.hpmc-lightbox-caption{color:rgba(255,255,255,.85);font-size:14px;margin-top:16px;text-align:center;max-width:600px}
.hpmc-lightbox-caption:empty{display:none}
.hpmc-lightbox-arrow{position:fixed;top:50%;transform:translateY(-50%);width:56px;height:56px;background:rgba(0,0,0,.6);border:2px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;z-index:1000000}
.hpmc-lightbox-arrow:hover{background:rgba(0,0,0,.8);border-color:rgba(255,255,255,.5);transform:translateY(-50%) scale(1.1)}
.hpmc-lightbox-arrow svg{width:28px;height:28px;stroke-width:2.5}
.hpmc-lightbox-prev{left:24px}
.hpmc-lightbox-next{right:24px}
.hpmc-lightbox-counter{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.5);color:#fff;padding:12px 28px;border-radius:30px;font-size:15px;font-weight:600;backdrop-filter:blur(6px)}
body.hpmc-lightbox-open{overflow:hidden}
.hpmc-lightbox-image-wrap::before{content:'';position:absolute;width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:hpmc-spin .8s linear infinite}
.hpmc-lightbox-image-wrap:has(.hpmc-loaded)::before{opacity:0}
@keyframes hpmc-spin{to{transform:rotate(360deg)}}
@media(max-width:1024px){.hpmc-mosaic-slide{flex-direction:column}.hpmc-mosaic-slide .hpmc-main-image{flex:0 0 55%;height:55%}.hpmc-mosaic-slide .hpmc-grid-area{flex:0 0 calc(45% - var(--hpmc-gap));height:calc(45% - var(--hpmc-gap));grid-template-columns:repeat(4,1fr);grid-template-rows:1fr}.hpmc-arrows-outside .hpmc-prev,.hpmc-arrows-edge .hpmc-prev{left:12px}.hpmc-arrows-outside .hpmc-next,.hpmc-arrows-edge .hpmc-next{right:12px}}
@media(max-width:768px){.hpmc-mosaic-slide .hpmc-main-image{flex:0 0 60%;height:60%}.hpmc-mosaic-slide .hpmc-grid-area{flex:0 0 calc(40% - var(--hpmc-gap));grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.hpmc-grid_8 .hpmc-grid-container,.hpmc-grid_6 .hpmc-grid-container{grid-template-columns:repeat(2,1fr)}.hpmc-nav-arrow{width:38px;height:38px}.hpmc-lightbox-content{padding:60px 20px}.hpmc-lightbox-arrow{width:42px;height:42px}}
@media(max-width:480px){.hpmc-carousel-wrapper{--hpmc-gap:4px}.hpmc-mosaic-slide .hpmc-main-image{flex:0 0 65%;height:65%}.hpmc-mosaic-slide .hpmc-grid-area{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr}}
.et_pb_section .hpmc-carousel-wrapper{width:100%}
.hpmc-carousel-wrapper *,.hpmc-carousel-wrapper *::before,.hpmc-carousel-wrapper *::after{box-sizing:border-box}

/* Lightbox z-index fixes for Divi */
.hpmc-lightbox {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(0,0,0,0.95) !important;
  z-index: 2147483647 !important;
  isolation: isolate !important;
}
.hpmc-lightbox-close {
  position: fixed !important;
  top: 20px !important;
  right: 20px !important;
  background: rgba(0,0,0,.7) !important;
  border: 2px solid rgba(255,255,255,.4) !important;
  z-index: 2147483647 !important;
}
.hpmc-lightbox-arrow {
  position: fixed !important;
  background: rgba(0,0,0,.7) !important;
  border: 2px solid rgba(255,255,255,.4) !important;
  z-index: 2147483647 !important;
}
.hpmc-lightbox-arrow svg {
  width: 28px !important;
  height: 28px !important;
}
.hpmc-lightbox-prev {
  left: 24px !important;
}
.hpmc-lightbox-next {
  right: 24px !important;
}

/* Hide header and page content when lightbox is open */
body.hpmc-lightbox-open header,
body.hpmc-lightbox-open #page-container,
body.hpmc-lightbox-open #main-content,
body.hpmc-lightbox-open #et-main-area,
body.hpmc-lightbox-open .et_pb_section,
body.hpmc-lightbox-open main,
body.hpmc-lightbox-open footer {
  visibility: hidden !important;
}

/* Keep lightbox visible */
body.hpmc-lightbox-open .hpmc-lightbox {
  visibility: visible !important;
}