/* ============================================================
   UDG Gallery Carousel v1.0.0 — Elementor uyumlu, responsive
   Özelleştirme: aşağıdaki CSS değişkenlerini .udg-gallery
   üzerinde ya da Elementor > Gelişmiş > Özel CSS'te ezin:
     selector .udg-gallery { --udg-accent:#c00; --udg-per-view:4; }
   ============================================================ */

.udg-gallery{
  --udg-per-view:3;          /* masaüstü kolon sayısı */
  --udg-gap:16px;            /* slaytlar arası boşluk */
  --udg-radius:14px;         /* köşe yuvarlaklığı */
  --udg-ratio:4/3;           /* görsel en-boy oranı */
  --udg-arrow-size:44px;
  --udg-thumb-w:76px;
  --udg-accent:#0f62fe;      /* vurgu rengi (nokta, ok hover, progress) */
  --udg-bg:#111;             /* görsel yüklenirken görünen zemin */
  --udg-caption-color:#fff;
  --udg-caption-bg:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,0) 100%);
  --udg-speed:620ms;         /* geçiş süresi */
  --udg-ease:cubic-bezier(.22,.61,.36,1);

  position:relative;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  outline:none;
  -webkit-user-select:none;user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.udg-gallery:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--udg-accent) 45%,transparent);border-radius:var(--udg-radius)}
.udg-gallery *,.udg-gallery *::before,.udg-gallery *::after{box-sizing:border-box}

/* ---- Sahne / görünüm alanı ---- */
.udg-gallery__stage{position:relative}
.udg-gallery__viewport{
  position:relative;
  overflow:hidden;
  width:100%;
  border-radius:var(--udg-radius);
  touch-action:pan-y;              /* dikey kaydırma tarayıcıya, yatay sürükleme bize */
  cursor:grab;
  isolation:isolate;
}
.udg-gallery__viewport:active{cursor:grabbing}

.udg-gallery .udg-gallery__track{
  position:relative;
  display:flex;
  gap:var(--udg-gap);
  list-style:none;
  margin:0;padding:0;
  will-change:transform;
  transition:transform var(--udg-speed) var(--udg-ease);
}
.udg-gallery .udg-gallery__track.no-anim,
.udg-gallery .udg-gallery__track.is-dragging{transition:none !important}

.udg-gallery .udg-gallery__slide{
  flex:0 0 calc((100% - (var(--udg-per-view) - 1) * var(--udg-gap)) / var(--udg-per-view));
  min-width:0;
  margin:0;padding:0;
  list-style:none;
  transition:opacity var(--udg-speed) var(--udg-ease),transform var(--udg-speed) var(--udg-ease);
}

/* ---- Görsel kartı ---- */
.udg-gallery .udg-gallery__slide figure{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:var(--udg-radius);
  aspect-ratio:var(--udg-ratio);
  background:var(--udg-bg);
  cursor:pointer;
  transform:translateZ(0);
}
.udg-gallery .udg-gallery__slide img{
  display:block;
  width:100%;height:100%;
  max-width:none;
  object-fit:cover;
  opacity:0;
  transition:transform .9s var(--udg-ease),opacity .45s ease;
  pointer-events:none;
}
.udg-gallery .udg-gallery__slide img.is-loaded{opacity:1}
.udg-gallery .udg-gallery__slide figure:hover img{transform:scale(1.06)}

.udg-gallery .udg-gallery__slide figcaption{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:26px 16px 14px;
  color:var(--udg-caption-color);
  background:var(--udg-caption-bg);
  font-size:14px;line-height:1.45;
  text-shadow:0 1px 2px rgba(0,0,0,.4);
  transform:translateY(10px);
  opacity:0;
  transition:transform .45s var(--udg-ease),opacity .45s ease;
  pointer-events:none;
}
.udg-gallery .udg-gallery__slide figure:hover figcaption,
.udg-gallery .udg-gallery__slide.is-active figcaption{transform:none;opacity:1}

/* Spotlight modu: aktif olmayan slaytlar solar ve küçülür */
.udg-gallery--spotlight .udg-gallery__slide:not(.is-active){opacity:.5;transform:scale(.94)}

/* ---- Oklar ---- */
.udg-gallery .udg-gallery__arrow{
  position:absolute;top:50%;
  width:var(--udg-arrow-size);height:var(--udg-arrow-size);
  margin:0;padding:0;border:0;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#111;
  display:grid;place-items:center;
  cursor:pointer;
  z-index:3;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
  transform:translateY(-50%);
  transition:background .25s,color .25s,transform .25s var(--udg-ease),opacity .25s;
  -webkit-appearance:none;appearance:none;
  font:inherit;line-height:0;
}
.udg-gallery .udg-gallery__arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.udg-gallery .udg-gallery__arrow--prev{left:14px}
.udg-gallery .udg-gallery__arrow--next{right:14px}
.udg-gallery .udg-gallery__arrow:hover{background:var(--udg-accent);color:#fff;transform:translateY(-50%) scale(1.08)}
.udg-gallery .udg-gallery__arrow:focus-visible{outline:2px solid var(--udg-accent);outline-offset:2px}
.udg-gallery .udg-gallery__arrow:disabled{opacity:.3;cursor:default;transform:translateY(-50%)}

/* ---- Autoplay ilerleme çubuğu ---- */
.udg-gallery .udg-gallery__progress{
  position:absolute;left:0;bottom:0;
  width:100%;height:3px;
  background:var(--udg-accent);
  transform-origin:left center;
  transform:scaleX(0);
  z-index:2;
  pointer-events:none;
  opacity:.9;
}
@keyframes udg-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---- Noktalar ---- */
.udg-gallery .udg-gallery__dots{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.udg-gallery .udg-gallery__dot{
  position:relative;
  width:9px;height:9px;
  margin:0;padding:0;border:0;
  border-radius:999px;
  background:rgba(0,0,0,.22);
  cursor:pointer;
  transition:width .35s var(--udg-ease),background .3s;
  -webkit-appearance:none;appearance:none;
}
.udg-gallery .udg-gallery__dot::after{content:"";position:absolute;inset:-8px}   /* dokunma alanı */
.udg-gallery .udg-gallery__dot.is-active{width:28px;background:var(--udg-accent)}
.udg-gallery .udg-gallery__dot:focus-visible{outline:2px solid var(--udg-accent);outline-offset:3px}

/* ---- Küçük resim şeridi ---- */
.udg-gallery .udg-gallery__thumbs{
  display:flex;gap:8px;
  margin-top:14px;padding:3px;
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.udg-gallery .udg-gallery__thumbs::-webkit-scrollbar{display:none}
.udg-gallery .udg-gallery__thumb{
  flex:0 0 auto;
  width:var(--udg-thumb-w);
  aspect-ratio:var(--udg-ratio);
  margin:0;padding:0;
  border:2px solid transparent;
  border-radius:calc(var(--udg-radius) * .55);
  overflow:hidden;
  background:var(--udg-bg);
  cursor:pointer;
  opacity:.5;
  transition:opacity .3s,border-color .3s,transform .3s var(--udg-ease);
  -webkit-appearance:none;appearance:none;
}
.udg-gallery .udg-gallery__thumb img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.udg-gallery .udg-gallery__thumb:hover{opacity:.85}
.udg-gallery .udg-gallery__thumb.is-active{opacity:1;border-color:var(--udg-accent);transform:translateY(-2px)}
.udg-gallery .udg-gallery__thumb:focus-visible{outline:2px solid var(--udg-accent);outline-offset:2px}

/* ---- Lightbox (body'ye eklenir; Elementor transform'larından etkilenmez) ---- */
html.udg-lightbox-open{overflow:hidden}
.udg-lightbox{
  position:fixed;inset:0;
  z-index:999999;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,8,10,.94);
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  touch-action:pan-y;
}
.udg-lightbox.is-open{opacity:1;visibility:visible}
.udg-lightbox__figure{margin:0;max-width:min(92vw,1500px);max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.udg-lightbox__figure img{
  display:block;
  max-width:100%;max-height:80vh;
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 24px 70px rgba(0,0,0,.65);
  opacity:0;transform:scale(.96);
  transition:opacity .35s ease,transform .45s cubic-bezier(.22,.61,.36,1);
}
.udg-lightbox__figure img.is-visible{opacity:1;transform:none}
.udg-lightbox__figure figcaption{color:#e8e8e8;font-size:15px;line-height:1.5;text-align:center;max-width:70ch}
.udg-lightbox__close,.udg-lightbox__nav{
  position:absolute;
  width:48px;height:48px;
  margin:0;padding:0;border:0;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  display:grid;place-items:center;
  cursor:pointer;
  transition:background .25s,transform .25s;
  -webkit-appearance:none;appearance:none;
  line-height:0;
}
.udg-lightbox__close svg,.udg-lightbox__nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.udg-lightbox__close{top:18px;right:18px}
.udg-lightbox__nav--prev{left:18px;top:50%;transform:translateY(-50%)}
.udg-lightbox__nav--next{right:18px;top:50%;transform:translateY(-50%)}
.udg-lightbox__close:hover,.udg-lightbox__nav:hover{background:rgba(255,255,255,.24)}
.udg-lightbox__nav:hover{transform:translateY(-50%) scale(1.08)}
.udg-lightbox__counter{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#bbb;font-size:13px;letter-spacing:.06em}
.udg-lightbox--single .udg-lightbox__nav,.udg-lightbox--single .udg-lightbox__counter{display:none}

/* ============================================================
   ELEMENTOR RESPONSIVE AYARLARI
   Elementor varsayılan kırılım noktaları:
     Mobil          ≤ 767px
     Mobil Ekstra   ≤ 880px    (Site Ayarları'nda etkinse)
     Tablet         768–1024px
     Tablet Ekstra  ≤ 1200px   (etkinse)
     Laptop         ≤ 1366px   (etkinse)
     Geniş Ekran    ≥ 2400px
   Kolon sayısı: data-cols, data-cols-laptop, data-cols-tablet-extra,
   data-cols-tablet, data-cols-mobile-extra, data-cols-mobile, data-cols-widescreen; ya da Elementor > Gelişmiş > Özel CSS:
     selector .udg-gallery { --udg-per-view:4; }
     @media (max-width:1024px){ selector .udg-gallery { --udg-per-view:2; } }
   ============================================================ */

/* Masaüstü (varsayılan) — data-cols */
.udg-gallery[data-cols="1"]{--udg-per-view:1}
.udg-gallery[data-cols="2"]{--udg-per-view:2}
.udg-gallery[data-cols="3"]{--udg-per-view:3}
.udg-gallery[data-cols="4"]{--udg-per-view:4}
.udg-gallery[data-cols="5"]{--udg-per-view:5}
.udg-gallery[data-cols="6"]{--udg-per-view:6}

/* Geniş ekran ≥ 2400px — data-cols-widescreen */
@media (min-width:2400px){
  .udg-gallery{--udg-gap:22px;--udg-arrow-size:52px;--udg-thumb-w:96px}
  .udg-gallery[data-cols-widescreen="1"]{--udg-per-view:1}
  .udg-gallery[data-cols-widescreen="2"]{--udg-per-view:2}
  .udg-gallery[data-cols-widescreen="3"]{--udg-per-view:3}
  .udg-gallery[data-cols-widescreen="4"]{--udg-per-view:4}
  .udg-gallery[data-cols-widescreen="5"]{--udg-per-view:5}
  .udg-gallery[data-cols-widescreen="6"]{--udg-per-view:6}
}

/* Laptop ≤ 1366px — data-cols-laptop (Elementor'da etkinse) */
@media (max-width:1366px){
  .udg-gallery[data-cols-laptop="1"]{--udg-per-view:1}
  .udg-gallery[data-cols-laptop="2"]{--udg-per-view:2}
  .udg-gallery[data-cols-laptop="3"]{--udg-per-view:3}
  .udg-gallery[data-cols-laptop="4"]{--udg-per-view:4}
  .udg-gallery[data-cols-laptop="5"]{--udg-per-view:5}
  .udg-gallery[data-cols-laptop="6"]{--udg-per-view:6}
}

/* Tablet Ekstra ≤ 1200px — data-cols-tablet-extra (Elementor'da etkinse) */
@media (max-width:1200px){
  .udg-gallery[data-cols-tablet-extra="1"]{--udg-per-view:1}
  .udg-gallery[data-cols-tablet-extra="2"]{--udg-per-view:2}
  .udg-gallery[data-cols-tablet-extra="3"]{--udg-per-view:3}
  .udg-gallery[data-cols-tablet-extra="4"]{--udg-per-view:4}
  .udg-gallery[data-cols-tablet-extra="5"]{--udg-per-view:5}
  .udg-gallery[data-cols-tablet-extra="6"]{--udg-per-view:6}
}

/* Tablet ≤ 1024px — data-cols-tablet */
@media (max-width:1024px){
  .udg-gallery{--udg-per-view:2;--udg-gap:12px;--udg-arrow-size:40px;--udg-thumb-w:64px}
  .udg-gallery[data-cols-tablet="1"]{--udg-per-view:1}
  .udg-gallery[data-cols-tablet="2"]{--udg-per-view:2}
  .udg-gallery[data-cols-tablet="3"]{--udg-per-view:3}
  .udg-gallery[data-cols-tablet="4"]{--udg-per-view:4}
  .udg-gallery[data-cols-tablet="5"]{--udg-per-view:5}
  .udg-gallery[data-cols-tablet="6"]{--udg-per-view:6}
  .udg-gallery .udg-gallery__arrow--prev{left:10px}
  .udg-gallery .udg-gallery__arrow--next{right:10px}
}

/* Mobil Ekstra ≤ 880px — data-cols-mobile-extra (Elementor'da etkinse) */
@media (max-width:880px){
  .udg-gallery[data-cols-mobile-extra="1"]{--udg-per-view:1}
  .udg-gallery[data-cols-mobile-extra="2"]{--udg-per-view:2}
  .udg-gallery[data-cols-mobile-extra="3"]{--udg-per-view:3}
  .udg-gallery[data-cols-mobile-extra="4"]{--udg-per-view:4}
}

/* Mobil ≤ 767px — data-cols-mobile */
@media (max-width:767px){
  .udg-gallery{--udg-per-view:1;--udg-gap:10px;--udg-radius:10px;--udg-arrow-size:36px;--udg-thumb-w:56px}
  .udg-gallery[data-cols-mobile="1"]{--udg-per-view:1}
  .udg-gallery[data-cols-mobile="2"]{--udg-per-view:2}
  .udg-gallery[data-cols-mobile="3"]{--udg-per-view:3}
  .udg-gallery[data-cols-mobile="4"]{--udg-per-view:4}
  .udg-gallery .udg-gallery__slide figcaption{opacity:1;transform:none;font-size:13px;padding:22px 12px 12px} /* dokunmatikte hover yok → başlık hep görünür */
  .udg-gallery .udg-gallery__slide figure:hover img{transform:none}
  .udg-gallery .udg-gallery__arrow{box-shadow:0 3px 10px rgba(0,0,0,.25)}
  .udg-gallery .udg-gallery__arrow--prev{left:8px}
  .udg-gallery .udg-gallery__arrow--next{right:8px}
  .udg-gallery .udg-gallery__arrow svg{width:18px;height:18px}
  .udg-gallery .udg-gallery__dots{margin-top:12px;gap:8px}
  .udg-gallery--spotlight .udg-gallery__slide:not(.is-active){transform:none;opacity:1}
  .udg-lightbox__close,.udg-lightbox__nav{width:40px;height:40px}
  .udg-lightbox__close{top:10px;right:10px}
  .udg-lightbox__nav--prev{left:6px}
  .udg-lightbox__nav--next{right:6px}
  .udg-lightbox__figure{max-width:96vw}
  .udg-lightbox__figure figcaption{font-size:13px;padding:0 8px}
}

/* Dokunmatik cihazlarda hover efektlerini kapat */
@media (hover:none){
  .udg-gallery .udg-gallery__slide figcaption{opacity:1;transform:none}
  .udg-gallery .udg-gallery__slide figure:hover img{transform:none}
}

/* Hareket azaltma tercihi */
@media (prefers-reduced-motion:reduce){
  .udg-gallery{--udg-speed:0ms}
  .udg-gallery .udg-gallery__slide img,
  .udg-gallery .udg-gallery__slide figcaption,
  .udg-gallery .udg-gallery__progress{transition:none;animation:none !important}
}

/* Elementor editörü: widget seçiliyken sürükleme çakışmasını azalt */
.elementor-editor-active .udg-gallery__viewport{cursor:default}
