/* Image Slider for Elementor — base styles (overridable from Elementor). */

.ise-slider { --ise-purple:#6C2BD9; box-sizing:border-box; background-color:#E8E6E4; padding-bottom:40px; }
.ise-slider *, .ise-slider *::before, .ise-slider *::after { box-sizing:border-box; }

.ise-heading { margin:0 0 35px; font-size:28px; font-weight:700; color:#1D1E20; background:#fff; text-align:center; padding:16px 20px; }

.ise-stage { position:relative; padding:0 68px; --ise-side:68px; }
.ise-viewport { overflow:hidden; }
.ise-track { display:flex; gap:30px; will-change:transform; transition:transform .45s cubic-bezier(.4,0,.2,1); }

/* Slide = transparent flex column; label & frame are independent boxes. */
.ise-slide { flex:0 0 auto; display:flex; flex-direction:column; background:transparent; }
.ise-slide__head { padding:14px 16px; text-align:center; font-size:20px; font-weight:400; color:#1D1E20; background:#F3F2F1; border-radius:0; margin-top:5px; margin-bottom:35px; flex:0 0 auto; }
.ise-slide__frame { position:relative; height:620px; background:#fff; border-radius:0; box-shadow:0 6px 24px rgba(20,20,40,.06); flex:1 1 auto; }
.ise-slide__link { display:block; line-height:0; min-height:100%; cursor:pointer; }
.ise-slide__img { display:block; width:100%; }

/* Tall-image behaviour (set by prefix class ise-fit-*) */
.ise-fit-scroll  .ise-slide__frame { overflow-y:auto; overflow-x:hidden; }
.ise-fit-scroll  .ise-slide__img { height:auto; }
.ise-fit-cover   .ise-slide__frame { overflow:hidden; }
.ise-fit-cover   .ise-slide__link, .ise-fit-cover .ise-slide__frame > .ise-slide__img { height:100%; }
.ise-fit-cover   .ise-slide__img { height:100%; object-fit:cover; }
.ise-fit-contain .ise-slide__frame { overflow:hidden; display:flex; align-items:center; justify-content:center; }
.ise-fit-contain .ise-slide__img { height:100%; object-fit:contain; }

/* Hide the scrollbar but keep the per-image vertical scroll working
   (mouse wheel / trackpad / touch still scroll the tall image). */
.ise-fit-scroll .ise-slide__frame { scrollbar-width:none; -ms-overflow-style:none; }
.ise-fit-scroll .ise-slide__frame::-webkit-scrollbar { width:0; height:0; display:none; }

/* Arrows */
.ise-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:5; display:inline-flex; align-items:center; justify-content:center; width:auto; height:auto; aspect-ratio:1; padding:10px; border:0; border-radius:50%; background:#fff; color:#1A1A2E; cursor:pointer; line-height:0; box-shadow:0 6px 20px rgba(20,20,40,.14); transition:transform .15s ease, background-color .15s ease, color .15s ease, opacity .15s ease; }
.ise-arrow__icon { display:inline-flex; align-items:center; justify-content:center; line-height:1; font-size:20px; }
.ise-arrow__icon svg { width:20px; height:20px; }
.ise-arrow__glyph { font-family:Arial, sans-serif; font-size:1.55em; line-height:1; margin-top:-3px; }
.ise-arrow:hover { transform:translateY(-50%) scale(1.06); }
.ise-arrow.is-disabled { opacity:.35; pointer-events:none; }
/* OUTSIDE (default): arrows sit in the side space, clear of the images. */
.ise-arrow--prev { left:var(--ise-arrow-offset, 10px); right:auto; margin:0; }
.ise-arrow--next { right:var(--ise-arrow-offset, 10px); left:auto; margin:0; }
/* INSIDE: arrows sit on top of the images (side space + offset into the viewport). */
.ise-arrows-inside .ise-arrow--prev { left:calc(var(--ise-side, 70px) + var(--ise-arrow-offset, 16px)); right:auto; }
.ise-arrows-inside .ise-arrow--next { right:calc(var(--ise-side, 70px) + var(--ise-arrow-offset, 16px)); left:auto; }

/* Dots */
.ise-dots { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:24px; }
.ise-dot { width:10px; height:10px; border:0; border-radius:50%; background:#D9D9E0; cursor:pointer; padding:0; transition:.2s; }
.ise-dot.is-active { background:var(--ise-purple); transform:scale(1.2); }


/* ---------- Lightbox ---------- */
.ise-lightbox { position:fixed; inset:0; z-index:999999; display:none; background:rgba(10,10,16,.93); }
.ise-lightbox.is-open { display:block; }
.ise-lightbox__scroll { position:absolute; inset:0; overflow:auto; display:flex; align-items:flex-start; justify-content:center; padding:80px 20px 90px; }
.ise-lightbox__img { display:block; max-width:100%; height:auto; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); user-select:none; -webkit-user-drag:none; }

.ise-lightbox__btn { -webkit-appearance:none !important; appearance:none !important; position:fixed; display:inline-flex !important; align-items:center !important; justify-content:center !important; width:48px !important; height:48px !important; padding:0 !important; margin:0 !important; border:0 !important; border-radius:50% !important; background:rgba(255,255,255,.16) !important; color:#fff !important; cursor:pointer; box-shadow:none !important; transition:background .15s ease; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); z-index:6; }
.ise-lightbox__btn:hover { background:rgba(255,255,255,.32) !important; }
.ise-lightbox__ico { display:block; color:#fff; font-family:Arial, Helvetica, sans-serif; font-size:24px; line-height:1; }
.ise-lightbox__nav .ise-lightbox__ico { font-size:32px; margin-top:-3px; }
.ise-lightbox__toolbar { position:fixed; top:20px; right:20px; display:flex; gap:10px; z-index:7; }
.ise-lightbox__toolbar .ise-lightbox__btn { position:static; }
.ise-lightbox__nav { top:50%; transform:translateY(-50%); width:54px !important; height:54px !important; }
.ise-lightbox__prev { left:20px; }
.ise-lightbox__next { right:20px; }
.ise-lightbox__bottom { position:fixed; bottom:22px; left:0; right:0; display:flex; flex-direction:column; align-items:center; gap:4px; color:#fff; z-index:7; pointer-events:none; }
.ise-lightbox__cap { font-size:15px; }
.ise-lightbox__counter { font-size:13px; opacity:.7; }
.ise-lightbox__hint { position:fixed; top:22px; left:20px; color:rgba(255,255,255,.6); font-size:13px; z-index:7; }
