﻿/*#region SLIDER KABUK */

.cms-slider {
    position: relative;
    display: block;
    height: 100vh;
    height: 100svh;
    min-height: 620px;
    overflow: hidden;
    background: var(--cmsKoyu);
    cursor: grab;
    /* Dikey kaydirmayi tarayici yonetsin, yatay jesti biz aliyoruz.
       Bu olmadan mobilde surukleme sayfa kaydirmaya takilip yarida kesilir. */
    touch-action: pan-y;
}

    .cms-slider.cms-tutuluyor {
        cursor: grabbing;
        user-select: none;
        -webkit-user-select: none;
    }

        /* Suruklerken slayt icindeki dugme/baglanti imleci ele gecirmesin */
        .cms-slider.cms-tutuluyor * {
            cursor: grabbing !important;
        }

/* Tiklanabilir ogeler "grab" mirasini almasin: cursor miras alinir ve
   yazar stili tarayicinin <a>/<button> varsayilanini ezer. */
.cms-slider-ok,
.cms-slide-btn {
    cursor: pointer;
}

.cms-slider-track {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
}

/*#endregion*/

/*#region SLAYT */

.cms-slide {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1s var(--cmsEase), visibility 1s;
}

    .cms-slide.aktif {
        opacity: 1;
        visibility: visible;
        z-index: 2;
    }

.cms-slide-gorsel {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.14);
    transition: transform 7s linear;
}

.cms-slide.aktif .cms-slide-gorsel {
    transform: scale(1);
}

/* Video slaytinda resim KAPAK olur: altta durur, yavas zoom uygulanmaz
   (video zaten hareketli), video oynamaya baslayinca arkasinda kalir. */
.cms-slide-medya .cms-slide-gorsel {
    transform: none;
    transition: none;
}

/*#endregion*/

/*#region VIDEO KATMANI */

/* Video ve gomulu oynatici kapagin UZERINDE durur ama oynamaya baslayana kadar
   gorunmez: yuklenirken, otomatik oynatma engellendiginde ya da dosya bozuksa
   ekranda kapak resmi kalir, siyah bir kutu degil. */
.cms-slide-video,
.cms-slide-gomulu {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: 1;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.6s var(--cmsEase);
    /* Suruklemeyi slider'in kendisi isliyor; olaylar buraya takilmasin.
       YouTube tarafinda ayrica ISLEVSEL: fare iframe'e hic degmedigi icin
       oynaticinin baslik/kanal katmani hic belirmez. */
    pointer-events: none;
}

.cms-slide-video.gorunur,
.cms-slide-gomulu.gorunur {
    opacity: 1;
}

.cms-slide-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    background: var(--cmsKoyu);
}

/* YouTube iframe'i kapsayicidan BUYUK tutulup ortalanir: oynaticinin ust
   basligi ve alt seridi gorunur alanin disinda kalir, ekranda yalnizca goruntu
   kalir. 16:9 disindaki kapsayicilarda da bosluk olusmasin diye iki eksende
   birden tasirilir. */
.cms-slide-gomulu iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw;          /* 16:9 */
    min-width: 177.78vh;      /* yuksekligi taban alan hesap */
    min-height: 100%;
    border: 0;
    transform: translate(-50%, -50%) scale(1.35);
    pointer-events: none;
}

/* Karartma perdesi videonun da UZERINDE durmali: yazi her iki turde de ayni
   okunurlukta kalsin. z-index acikca verildi, DOM sirasina birakilmadi --
   araya video etiketi girdi. */
.cms-slide::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: 2;
    background: linear-gradient(90deg, rgba(30,33,42,0.96) 0%, rgba(30,33,42,0.86) 40%, rgba(30,33,42,0.55) 100%), linear-gradient(0deg, rgba(30,33,42,0.9) 0%, rgba(30,33,42,0) 55%);
}

/*#endregion*/

/*#region SLAYT ICERIK */

.cms-slide-ic {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    height: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: var(--cmsHeaderYuk) 30px 0;
}

    .cms-slide-ic > * {
        opacity: 0;
        transform: translateY(38px);
    }

.cms-slide.aktif .cms-slide-ic > * {
    animation: cmsSlideUp 0.9s var(--cmsEase) forwards;
}

.cms-slide.aktif .cms-slide-baslik {
    animation-delay: 0.3s;
}

.cms-slide.aktif .cms-slide-spot {
    animation-delay: 0.45s;
}

.cms-slide.aktif .cms-slide-btn {
    animation-delay: 0.6s;
}

@keyframes cmsSlideUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cms-slide-baslik {
    max-width: 16ch;
    margin: 0;
    color: #fff;
    font-size: clamp(32px, 5.2vw, 62px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.cms-slide-spot {
    max-width: 52ch;
    margin: 20px 0 0;
    color: var(--cmsMetin);
    font-size: 17px;
    line-height: 1.7;
}

.cms-slide-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 36px;
    padding: 0 32px;
    height: 52px;
    background: var(--cmsAna);
    border-radius: 100px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: 0 12px 30px rgba(227,30,36,0.28);
    transition: background-color 0.3s, transform 0.35s var(--cmsEase), box-shadow 0.35s var(--cmsEase);
}

    .cms-slide-btn:hover {
        background: var(--cmsAnaKoyu);
        color: #fff;
        transform: translateY(-3px);
        box-shadow: 0 18px 40px rgba(227,30,36,0.42);
    }

    .cms-slide-btn:focus-visible {
        background: var(--cmsAnaKoyu);
        color: #fff;
        transform: translateY(-3px);
        box-shadow: 0 18px 40px rgba(227,30,36,0.42);
    }

    .cms-slide-btn svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
        transition: transform 0.35s var(--cmsEase);
    }

    .cms-slide-btn:hover svg {
        transform: translateX(4px);
    }

/*#endregion*/

/*#region OKLAR */

.cms-slider-ok {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    transform: translateY(-50%);
    background: rgba(38,45,55,0.5);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: background-color 0.3s, border-color 0.3s, transform 0.35s var(--cmsEase);
}

    .cms-slider-ok svg {
        width: 22px;
        height: 22px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .cms-slider-ok:hover {
        background: var(--cmsAna);
        border-color: var(--cmsAna);
    }

    .cms-slider-ok:focus-visible {
        background: var(--cmsAna);
        border-color: var(--cmsAna);
    }

    .cms-slider-ok.onceki {
        left: 28px;
    }

    .cms-slider-ok.sonraki {
        right: 28px;
    }

    .cms-slider-ok.onceki:hover {
        transform: translateY(-50%) translateX(-4px);
    }

    .cms-slider-ok.sonraki:hover {
        transform: translateY(-50%) translateX(4px);
    }

/*#endregion*/

/*#region NOKTALAR */

.cms-slider-noktalar {
    position: absolute;
    left: 50%;
    bottom: 38px;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 10px;
    transform: translateX(-50%);
}

.cms-nokta {
    width: 10px;
    height: 10px;
    padding: 0;
    background: rgba(255,255,255,0.3);
    border: none;
    border-radius: 100px;
    cursor: pointer;
    transition: width 0.45s var(--cmsEase), background-color 0.35s;
}

    .cms-nokta:hover {
        background: rgba(255,255,255,0.6);
    }

    .cms-nokta.aktif {
        width: 38px;
        background: var(--cmsAna);
    }

/*#endregion*/

/*#region SES DUGMESI */

/* Tarayicilar sesli videoyu kendiliginden baslatmaz; ses ancak kullanicinin
   dokunmasiyla acilir. Dugme yalnizca sirasi videoda olan slaytta gorunur. */
.cms-slider-ses {
    position: absolute;
    right: 28px;
    bottom: 34px;
    z-index: 5;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: rgba(38,45,55,0.5);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: background-color 0.3s, border-color 0.3s;
}

    .cms-slider-ses:hover,
    .cms-slider-ses:focus-visible {
        background: var(--cmsAna);
        border-color: var(--cmsAna);
    }

    .cms-slider-ses svg {
        width: 20px;
        height: 20px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    /* Iki ikon da basilir, duruma gore biri gizlenir: ikon degistirmek icin
       JS'in SVG yolu yazmasi gerekmesin. */
    .cms-slider-ses .cms-ses-acik { display: none; }
    .cms-slider-ses.acik .cms-ses-kapali { display: none; }
    .cms-slider-ses.acik .cms-ses-acik { display: block; }

/*#endregion*/

/*#region TEK SLAYT */

/* Kullanici tek bir slayt (orn. yalnizca bir video) koyduysa slider bir gecis
   duzenegi degil, sayfanin ustundeki hareketli bir bant olur: ok ve nokta
   basilmaz, video dongude oynar. */
.cms-tek .cms-slider-ok,
.cms-tek .cms-slider-noktalar {
    display: none;
}

.cms-tek .cms-slider-ses {
    bottom: 28px;
}

/*#endregion*/

/*#region RESPONSIVE */

@media (max-width: 991px) {
    .cms-slider-ok {
        display: none;
    }
}

@media (max-width: 768px) {
    .cms-slider {
        height: auto;
        min-height: 560px;
    }

    .cms-slide-ic {
        min-height: 560px;
        padding: calc(var(--cmsHeaderYuk) + 70px) 20px 100px;
    }

    .cms-slide-spot {
        font-size: 16px;
    }

    .cms-slider-noktalar {
        bottom: 26px;
    }

    .cms-slider-ses {
        right: 18px;
        bottom: 22px;
        width: 38px;
        height: 38px;
    }

        .cms-slider-ses svg {
            width: 17px;
            height: 17px;
        }
}

@media (max-width: 560px) {
    .cms-slide-ic {
        padding-left: 18px;
        padding-right: 18px;
    }

    .cms-slide-btn {
        height: 48px;
        padding: 0 26px;
        font-size: 14px;
    }
}

/*#endregion*/
