/* OM Image Carousel — base structure (visual styles are control-driven) */
.om-carousel{ --omc-speed:8000ms; }
/* reset theme/kit <button> bleed (padding, bg, appearance) so our controls win */
.om-carousel .om-carousel__nav,
.om-carousel .om-carousel__dot,
.om-carousel .om-carousel__thumb{
  padding:0; margin:0; -webkit-appearance:none; appearance:none;
  font:inherit; box-shadow:none;
}
.om-carousel .om-carousel__thumb{ background:#1a1410; }
.om-carousel .om-carousel__dot{ border:0; }
.om-carousel__stage{ position:relative; overflow:hidden; }
.om-carousel__slides{ position:absolute; inset:0; }
.om-carousel__slide{ position:absolute; inset:0; opacity:0; transition:opacity .9s ease; z-index:0; }
.om-carousel__slide.is-active{ opacity:1; z-index:1; }
.elementor .om-carousel__img,
.om-carousel__img{
  position:absolute; inset:0;
  width:100%; height:100%;
  max-width:none; max-height:none;
  object-fit:cover; object-position:center center;
  transform:scale(1.04); transform-origin:center center;
}
.om-carousel__ph{ position:absolute; inset:0; background:linear-gradient(180deg,#2a1a18,#1a0e0c); }
.om-carousel--kenburns .om-carousel__slide.is-active .om-carousel__img{ animation:omc-kenburns var(--omc-speed) ease-out forwards; }
@keyframes omc-kenburns{ from{ transform:scale(1.02) translate(0,0); } to{ transform:scale(1.13) translate(-1.5%,-1.5%); } }

/* arrows */
.om-carousel__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; border-style:solid; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); display:grid; place-items:center; cursor:pointer; line-height:0; opacity:0; transition:background .2s,border-color .2s,color .2s,transform .2s,opacity .2s; }
.om-carousel__stage:hover .om-carousel__nav,
.om-carousel--arrows-on .om-carousel__nav{ opacity:1; }
.om-carousel__nav--prev:hover{ transform:translateY(-50%) translateX(-2px); }
.om-carousel__nav--next:hover{ transform:translateY(-50%) translateX(2px); }
.om-carousel__nav svg{ width:1em; height:1em; fill:currentColor; }
.om-carousel__nav i{ font-size:inherit; }

/* counter */
.om-carousel__count{ position:absolute; top:16px; right:18px; z-index:4; border-style:solid; padding:7px 13px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); white-space:nowrap; }

/* dots */
.om-carousel__dots{ position:absolute; left:0; right:0; bottom:16px; z-index:4; display:flex; justify-content:center; }
.om-carousel__dot{ border:0; border-radius:50%; cursor:pointer; padding:0; transition:background .2s,width .2s; }
.om-carousel__dot.is-active{ border-radius:100px; }

/* thumbnail rail — horizontal filmstrip that scrolls to the active slide */
.om-carousel__thumbs{ display:flex; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; }
.om-carousel__thumbs::-webkit-scrollbar{ display:none; }
.om-carousel__thumb{ position:relative; flex:0 0 var(--omc-thumb-w, 18%); overflow:hidden; border-style:solid; padding:0; cursor:pointer; background:#1a1410; transition:border-color .2s,transform .2s; }
.om-carousel__thumb:hover{ transform:translateY(-2px); }
.elementor .om-carousel__thumb-img,
.om-carousel__thumb-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  max-width:none; max-height:none;
  object-fit:cover; object-position:center center;
}
.om-carousel__thumb-cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; text-align:left; padding:16px 10px 8px; }
.om-carousel__thumb-bar{ position:absolute; left:0; bottom:0; width:0; z-index:3; }
.om-carousel__thumb.is-active .om-carousel__thumb-bar{ animation:omc-fill var(--omc-speed) linear forwards; }
@keyframes omc-fill{ from{ width:0; } to{ width:100%; } }

/* autoplay off: progress bar makes no sense */
.om-carousel[data-autoplay="0"] .om-carousel__thumb-bar{ display:none; }
