/* ==================================================================
 *  ÇILGIN YAZILIM – ÖN YÜZ (SİTE) KABUK STİLLERİ
 * ------------------------------------------------------------------
 *  Genel tasarım token'ları "cilginyazilim.css" dosyasındadır.
 *  Bu dosya SADECE ziyaretçi sayfalarının KABUĞUNU tanımlar:
 *  üst menü, alt bilgi, giriş/kayıt ekranı, bakım örtüsü.
 *
 *  İÇERİK BÖLÜMLERİ (hero, özellik kartları, iletişim kartları,
 *  metin blokları) "site-sections.css" dosyasındadır. İkisi ayrıdır
 *  ve BİRBİRİNİN KURALINI TEKRAR ETMEZ:
 *
 *    Eskiden .cy-hero, .cy-hero__title, .cy-hero__logo, .cy-prose ve
 *    .cy-section__title hem burada hem orada tanımlıydı. İki dosya
 *    aynı özelliği farklı değerlerle yazınca yükleme sırası kazanıyor,
 *    hangi kuralın geçerli olduğu okunamaz hale geliyordu. En görünür
 *    sonucu şuydu: buradaki
 *        @media (max-width: 767.98px) { .cy-hero__logo { display:none } }
 *    satırı TELEFONDA hero kartındaki logoyu tamamen siliyor, kart
 *    logosuz bir kutu olarak kalıyordu. Tekrarların hepsi kaldırıldı.
 *
 *  Yükleme sırası: bootstrap.min.css → cilginyazilim.css → site.css
 *                  → site-sections.css
 * ================================================================== */

body.cy-site { background: var(--cy-bg); }

/* ------------------------------------------------------------------
 *  ÜST MENÜ
 * ------------------------------------------------------------------
 *  Menü YAPIŞKANDIR (sticky): uzun bir sayfanın ortasındayken başka
 *  bir sayfaya geçmek için en yukarı kaydırmak gerekmez. Telefonda
 *  bu, gezinmenin en çok hissedilen farkıdır.
 * ------------------------------------------------------------------ */
.cy-site-nav {
    position: sticky;
    top: 0;
    z-index: 1035;   /* Sabit WhatsApp düğmesinin (1030) üstünde */
    background: var(--cy-surface);
    border-bottom: 1px solid var(--cy-border);
    padding: .6rem 0;
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
}

/* Sayfa aşağı kaydırılınca menü hafifçe "kalkar". Sınıfı app.js ekler. */
.cy-site-nav.is-stuck { box-shadow: var(--cy-shadow-sm); }

.cy-site-nav__brand {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
    max-width: 100%;
    font-weight: 700;
    color: var(--cy-text);
    text-decoration: none;
}

.cy-site-nav__brand img { width: 34px; height: 34px; flex: 0 0 auto; object-fit: contain; }

/* Uzun site adları dar ekranda menü düğmesini ezmesin. */
.cy-site-nav .navbar-brand span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Menü kapalıyken (≤991px) marka, araç düğmeleriyle AYNI satırda kalan
 * genişliğe sığar; ad en çok iki satıra kırılır. Temaların marka sınıfları
 * (nefes-nav__brand, sofra-nav__brand …) cy-site-nav__brand'in daralma
 * kuralını taşımıyordu: "… Ağız ve Diş Sağlığı Polikliniği" gibi bir ad
 * 375 px'te sayfayı yatay kaydırıyor, düğmeleri alt satıra itiyordu. */
@media (max-width: 991.98px) {
    .cy-site-nav .navbar-brand {
        display: flex;
        align-items: center;
        gap: .6rem;
        flex: 1 1 0%;
        min-width: 0;
        white-space: normal;
    }
    .cy-site-nav .navbar-brand span {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        white-space: normal;
        overflow-wrap: anywhere;
        line-height: 1.2;
    }
}

.cy-site-nav .nav-link {
    color: var(--cy-text-soft);
    font-weight: 500;
    font-size: .875rem;
    border-radius: var(--cy-radius-sm);
}
.cy-site-nav .nav-link:hover  { color: var(--cy-brand-text); }
.cy-site-nav .nav-link.active { color: var(--cy-brand-text); font-weight: 700; }

.cy-site-nav .navbar-toggler {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--cy-border);
    border-radius: var(--cy-radius-sm);
}
.cy-site-nav .navbar-toggler:focus { box-shadow: var(--cy-focus); }
.cy-site-nav .navbar-toggler .cy-icon { width: 22px; height: 22px; color: var(--cy-text-soft); }

/* Menü açıkken hamburger simgesi çarpıya döner: açık/kapalı durumu
   simgenin kendisinden okunur. */
.cy-site-nav .navbar-toggler .cy-nav-icon--close { display: none; }
.cy-site-nav .navbar-toggler[aria-expanded="true"] .cy-nav-icon--open  { display: none; }
.cy-site-nav .navbar-toggler[aria-expanded="true"] .cy-nav-icon--close { display: block; }

/* Menünün sağ ucu. Tema düğmesi mobilde de HAMBURGERİN DIŞINDA kalır:
   menüyü açmadan temayı değiştirmek tek dokunuşa iner. */
.cy-site-nav__tools { display: flex; align-items: center; gap: .4rem; }

/* ------------------------------------------------------------------
 *  BAKIM MODU
 * ------------------------------------------------------------------ */
.cy-maintenance {
    display: grid;
    place-items: center;
    min-height: 70vh;
    padding: 2rem 1.25rem;
}

.cy-maintenance__box { text-align: center; max-width: 32rem; }
.cy-maintenance__box .cy-icon { color: var(--cy-brand-text); margin-bottom: 1rem; }

/* ------------------------------------------------------------------
 *  ALT BİLGİ
 * ------------------------------------------------------------------ */
.cy-site-footer {
    background: var(--cy-surface);
    border-top: 1px solid var(--cy-border);
    padding: 3rem 0 1.75rem;
    margin-top: 3rem;
}

/* ------------------------------------------------------------------
 *  GİRİŞ / KAYIT EKRANI
 * ------------------------------------------------------------------ */
.cy-auth-page {
    display: flex;
    align-items: center;
    min-height: calc(100vh - 280px);
    padding: 3rem 0;
    background:
        radial-gradient(480px 260px at 15% 0%, var(--cy-brand-50), transparent 60%),
        radial-gradient(420px 240px at 100% 100%, var(--cy-brand-100), transparent 55%);
}

.cy-auth-card { box-shadow: var(--cy-shadow-sm); }

.cy-auth-card__logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border-radius: var(--cy-radius-lg);
    background: var(--cy-brand-50);
    border: 1px solid var(--cy-brand-100);
}
.cy-auth-card__logo img { width: 40px; height: 40px; object-fit: contain; }

/* --- Demo hesaplarla hızlı giriş --- */
.cy-quick-login { margin-top: 1.5rem; }

.cy-quick-login__divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
    color: var(--cy-text-muted);
    font-size: .75rem;
}
.cy-quick-login__divider::before,
.cy-quick-login__divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--cy-border);
}

.cy-quick-login__divider span { text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }

.cy-quick-login__list { display: flex; flex-direction: column; gap: .5rem; }

/* Her satır tek dokunuşla giriş yapar: 56px yükseklik, 44px hedefin
   rahatça üstünde. Rozet · ad + kimlik bilgisi · ok. */
.cy-quick-login__item {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 56px;
    padding: .6rem .8rem;
    border: 1px solid var(--cy-border);
    border-radius: var(--cy-radius-sm);
    background: var(--cy-surface);
    color: inherit;
    text-align: left;
    transition: border-color var(--cy-transition), background-color var(--cy-transition), transform var(--cy-transition);
}
.cy-quick-login__item:hover,
.cy-quick-login__item:focus-visible { border-color: var(--cy-brand-400); background: var(--cy-brand-50); transform: translateY(-1px); }
.cy-quick-login__item:disabled { opacity: .55; pointer-events: none; }

.cy-quick-login__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    flex-shrink: 0;
    min-width: 92px;
    padding: .3rem .55rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    background: var(--cy-surface-soft);
    color: var(--cy-text-muted);
}
.cy-quick-login__badge .cy-icon { width: 13px; height: 13px; }
.cy-quick-login__badge.is-admin  { background: var(--cy-danger-soft);  color: var(--cy-danger-text); }
.cy-quick-login__badge.is-editor { background: var(--cy-warning-soft); color: var(--cy-warning-text); }
.cy-quick-login__badge.is-member { background: var(--cy-info-soft);    color: var(--cy-info-text); }
.cy-quick-login__badge.is-hold   { background: var(--cy-warning-soft); color: var(--cy-warning-text); }

.cy-quick-login__text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.cy-quick-login__text strong { font-size: .8125rem; line-height: 1.3; }
.cy-quick-login__text small { color: var(--cy-text-muted); font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cy-quick-login__text code { font-size: .75rem; color: inherit; }

.cy-quick-login__arrow { flex-shrink: 0; color: var(--cy-text-muted); }

@media (max-width: 359.98px) {
    .cy-quick-login__badge { min-width: 0; }
    .cy-quick-login__badge .cy-icon { display: none; }
}

.cy-quick-login__hint { margin: .85rem 0 0; color: var(--cy-text-muted); font-size: .75rem; line-height: 1.5; }
.cy-quick-login__hint code { font-size: .75rem; }


/* ==================================================================
 *  MOBİL UYUM
 * ------------------------------------------------------------------
 *  Ölçütler panelinkiyle (admin.css) aynıdır; iki yüz arasında gidip
 *  gelen kullanıcı aynı dokunma hissini bulmalı:
 *    - Dokunma hedefi en az 44×44 piksel (Apple/Google önerisi)
 *    - Form alanları 16 piksel — küçüğünde iOS sayfayı yakınlaştırır
 *    - Çentikli ekranlarda güvenli alan payı
 * ================================================================== */

/* --- 992px altı: menü açılır panele döner --- */
@media (max-width: 991.98px) {
    /* Açılan menü, üst çubuğun altına yapışan bir panel gibi durur ve
       KENDİ İÇİNDE kayar: menü bağlantıları panelden eklendiği için
       sayıları bilinmez; on sayfalık bir menü ekranı taşırmamalı. */
    .cy-site-nav .navbar-collapse {
        max-height: calc(100vh - 5.5rem);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        margin: .6rem -.25rem -.25rem;
        padding: 0 .25rem .25rem;
        border-top: 1px solid var(--cy-border);
    }

    .cy-site-nav .navbar-nav { gap: .15rem; padding-top: .5rem; }

    /* Parmakla rahat seçilen satırlar. */
    .cy-site-nav .nav-link {
        display: flex;
        align-items: center;
        min-height: 46px;
        padding: .55rem .75rem;
        font-size: .9375rem;
    }
    .cy-site-nav .nav-link.active { background: var(--cy-brand-soft); }

    /* Menüdeki düğmeler (Giriş / Kayıt / Panele Git) tam genişlik. */
    .cy-site-nav .navbar-nav .cy-btn {
        width: 100%;
        justify-content: center;
        min-height: 46px;
        margin-top: .35rem;
    }
}

/* --- 768px altı: TELEFON --- */
@media (max-width: 767.98px) {
    /* Dokunma hedefleri */
    .cy-site .cy-btn     { min-height: 44px; padding: .6rem 1.1rem; }
    .cy-site .cy-btn--sm { min-height: 38px; }

    /* Ana sayfadaki eylem düğmeleri tek sütun: yan yana sıkışan üç
       düğmenin hiçbiri parmakla güvenle seçilemiyordu. */
    .cy-hero__actions { flex-direction: column; align-items: stretch; }
    .cy-hero__actions .cy-btn { width: 100%; justify-content: center; }

    .cy-cta__actions { width: 100%; }
    .cy-cta__actions .cy-btn { flex: 1 1 auto; justify-content: center; }

    /* İletişim formunun gönder düğmesi tam genişlik olur ve gizlilik
       notu altına iner: sayfanın tek amacı bu düğmeye basmak. */
    .cy-contact-actions { flex-direction: column; align-items: stretch !important; }
    .cy-contact-actions .cy-btn { width: 100%; justify-content: center; }
    .cy-contact-actions > span { text-align: center; }

    /* iOS ZOOM SORUNU: 16px'ten küçük bir alana dokunulunca Safari
       sayfayı otomatik yakınlaştırır ve düzen bozulur. Panelde de
       aynı kural var (admin.css); ön yüzde admin.css YÜKLENMEDİĞİ
       için burada ayrıca tanımlanmak zorunda. */
    .cy-site .form-control,
    .cy-site .form-select { font-size: 16px; }

    .cy-site-footer { padding: 2rem 0 1.25rem; }

    /* Sabit WhatsApp düğmesi alt bilginin son satırının SAĞ UCUNU
       kapatıyordu ("cilginyazilim.com ile geliştirildi" yazısı düğmenin
       altında kalıyordu). Telefonda satırı sola yaslayıp düğmeye pay
       bırakıyoruz. */
    .cy-site-footer__bottom { flex-direction: column; padding-right: 4.5rem; }

    .cy-auth-page   { padding: 2rem 0; min-height: 0; }
    .cy-quick-login__grid { grid-template-columns: 1fr; }

    /* Telefonda bildirim ALTTA: menüyü kapatmaz, başparmağa yakındır;
       çentikli telefonlarda ev çubuğunun üstünde durur. */
    .cy-site .cy-toast-container { left: .5rem; right: .5rem; top: auto; bottom: calc(.25rem + env(safe-area-inset-bottom)); }
    .cy-site .cy-toast { max-width: none; width: 100%; }
}

/* --- Bildirimler (toast) ---
   Masaüstünde üst menünün ALTINDAN başlar: eskiden menünün üstüne binip
   giriş/çıkış bildirimi "İletişim", "Özellikler" bağlantılarını
   kapatıyordu. --cy-site-nav-h menünün ekrandaki alt kenarıdır; app.js
   kaydırmada ve boyut değişince günceller (önizleme şeridi, açılan menü).
   Telefonda bildirim altta durur (yukarıdaki 768px kuralı). */
@media (min-width: 768px) {
    /* Kabın 1rem iç boşluğu (p-3) düşülür: bildirim menünün tam 12px altında. */
    .cy-site .cy-toast-container { top: calc(var(--cy-site-nav-h, 64px) + 12px - 1rem); }
}

/* --- 400px altı: çok dar telefonlar --- */
@media (max-width: 399.98px) {
    .cy-site-nav__brand span { font-size: .9375rem; }
    .cy-site-nav__brand img  { width: 30px; height: 30px; }
}

/* --- Çentikli ekranlar (iPhone) için güvenli alan --- */
@supports (padding: max(0px)) {
    .cy-site-footer { padding-bottom: max(1.75rem, env(safe-area-inset-bottom)); }
}

/* Ana sayfadaki "Bu rolle gir" ile gelinen demo hesabı (login.js). */
.cy-quick-login__item.is-highlight {
    border-color: var(--cy-brand);
    background: color-mix(in srgb, var(--cy-brand) 7%, var(--cy-surface));
    box-shadow: 0 0 0 3px var(--cy-brand-100);
}

/* --- İçerik sayfası: kapak görseli ve önizleme şeridi --- */
.cy-page-cover {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 630;
    object-fit: cover;
    border-radius: var(--cy-radius-lg) var(--cy-radius-lg) 0 0;
    border-bottom: 1px solid var(--cy-border);
}

.cy-preview-bar {
    padding: .6rem 0;
    background: var(--cy-warning-soft);
    border-bottom: 1px solid var(--cy-border);
    color: var(--cy-text);
    font-size: .875rem;
}
.cy-preview-bar .container { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; }

/* Tema önizleme şeridi (Taslak Faz 1.7, partials/tema-onizleme). Temadan bağımsız, sabit görünüm. */
.cy-preview-strip { position: sticky; top: 0; z-index: 1030; background: #111827; color: #f9fafb; font-size: .9rem; }
.cy-preview-strip__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding-block: .5rem; }
.cy-preview-strip__actions { display: inline-flex; flex-wrap: wrap; gap: .5rem; }
.cy-preview-strip .cy-btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .35); color: #f9fafb; }

/* Demo şeridi (partials/demo-serit). Temadan bağımsız, sabit görünüm: ince koyu bar,
 * "Örnek site" rozeti, tek cümle, iki küçük düğme. Kapatılınca köşede mini rozet (site-hareket.js). */
.cy-demo-strip { position: relative; z-index: 1031; background: linear-gradient(90deg, #0b0e14, #151a24 55%, #0b0e14); color: #e8ebf1; font-size: .84rem; line-height: 1.3; }
.cy-demo-strip::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(253, 230, 138, .55), rgba(37, 211, 102, .55), transparent); }
.cy-demo-strip__inner { display: flex; align-items: center; gap: .5rem .9rem; min-height: 44px; padding-block: .35rem; }
.cy-demo-strip__rozet { display: inline-flex; align-items: center; gap: .4rem; flex: none; padding: .2rem .6rem; border: 1px solid rgba(253, 230, 138, .35); border-radius: 999px; color: #fde68a; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cy-demo-strip__nokta { width: 7px; height: 7px; border-radius: 50%; background: #fde68a; box-shadow: 0 0 0 0 rgba(253, 230, 138, .6); animation: cy-demo-nabiz 2s infinite; }
@keyframes cy-demo-nabiz { 70% { box-shadow: 0 0 0 7px rgba(253, 230, 138, 0); } 100% { box-shadow: 0 0 0 0 rgba(253, 230, 138, 0); } }
.cy-demo-strip__metin { flex: 1 1 auto; min-width: 0; color: rgba(232, 235, 241, .88); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cy-demo-strip__eylem { display: inline-flex; align-items: center; gap: .4rem; flex: none; }
.cy-demo-strip__dugme { display: inline-flex; align-items: center; gap: .35rem; padding: .32rem .75rem; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; color: #fff; font-weight: 600; font-size: .8rem; text-decoration: none; white-space: nowrap; transition: background .2s, border-color .2s, transform .2s; }
.cy-demo-strip__dugme:hover { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .4); color: #fff; transform: translateY(-1px); }
.cy-demo-strip__dugme--wa { background: #1fa855; border-color: #1fa855; }
.cy-demo-strip__dugme--wa:hover { background: #22c063; border-color: #22c063; }
.cy-demo-strip__dugme--ana { background: #fde68a; border-color: #fde68a; color: #111827; }
.cy-demo-strip__dugme--ana:hover { background: #fef3c7; color: #111827; }
.cy-demo-strip__dugme:focus-visible, .cy-demo-strip__kapat:focus-visible, .cy-demo-mini:focus-visible { outline: 2px solid #fde68a; outline-offset: 2px; }
.cy-demo-strip__kapat { display: inline-grid; place-items: center; flex: none; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: rgba(232, 235, 241, .7); }
.cy-demo-strip__kapat:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.cy-demo-strip.is-kapali { display: none; }
.cy-demo-mini { position: fixed; left: clamp(.75rem, 2vw, 1.25rem); bottom: calc(1rem + env(safe-area-inset-bottom)); z-index: 1040; display: inline-flex; align-items: center; gap: .55rem; padding: .55rem .9rem; border-radius: 999px; background: #111827; color: #f3f4f6; font-size: .8rem; text-decoration: none; box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .5); animation: cy-demo-mini-gir .45s cubic-bezier(.16, 1, .3, 1); }
.cy-demo-mini:hover { color: #fff; background: #1f2937; }
.cy-demo-mini strong { color: #fde68a; }
@keyframes cy-demo-mini-gir { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
/* Telefonda tek satır: rozet + düğmeler; numara yerine yalnız telefon simgesi. */
@media (max-width: 767.98px) {
    .cy-demo-strip__uzun { display: none; }
}
@media (max-width: 575.98px) {
    .cy-demo-strip { font-size: .78rem; }
    .cy-demo-strip__inner { gap: .4rem; min-height: 46px; }
    .cy-demo-strip__metin { display: none; }
    .cy-demo-strip__eylem { margin-left: auto; }
    .cy-demo-strip__tel { display: none; }
    .cy-demo-strip__dugme { padding: .38rem .7rem; }
    .cy-demo-mini { right: auto; max-width: calc(100vw - 6.5rem); }
}
@media (prefers-reduced-motion: reduce) { .cy-demo-strip__nokta, .cy-demo-mini { animation: none; } }

/* Duyuru çubuğu (Görünüm → Tema → Duyuru; partials/duyuru-cubugu). */
.cy-duyuru { position: relative; z-index: 1030; color: #fff; font-size: .88rem; line-height: 1.35; text-align: center; }
.cy-duyuru--marka { background: var(--cy-brand-700, #0a4f9c); }
.cy-duyuru--koyu { background: #0f1218; }
.cy-duyuru--vurgu { background: color-mix(in srgb, var(--cy-accent, #e5533d) 86%, #000); }
.cy-duyuru__ic { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 40px; padding-block: .45rem; padding-right: 2.5rem; position: relative; }
.cy-duyuru a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cy-duyuru__kapat { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: rgba(255, 255, 255, .8); }
.cy-duyuru__kapat:hover { background: rgba(255, 255, 255, .15); color: #fff; }
.cy-duyuru.is-kapali { display: none; }

/* Üst iletişim çubuğu ve çerez bandı (Görünüm → Site geneli; Y4) */
.cy-ust-iletisim { background: var(--cy-surface-2, rgba(0, 0, 0, .04)); border-bottom: 1px solid var(--cy-border); font-size: .85rem; }
.cy-ust-iletisim__ic { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem 1rem; min-height: 38px; padding-block: .3rem; }
.cy-ust-iletisim__saat { display: inline-flex; align-items: center; gap: .35rem; color: var(--cy-text-soft); }
.cy-ust-iletisim__baglantilar { display: inline-flex; flex-wrap: wrap; gap: .25rem 1rem; margin-left: auto; }
.cy-ust-iletisim a { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; color: inherit; font-weight: 600; text-decoration: none; }
.cy-ust-iletisim a:hover { color: var(--cy-brand-600); }
/* Telefonda yer dar: bağlantı varsa saat gizlenir (yalnız saat varsa o kalır). */
@media (max-width: 575.98px) { .cy-ust-iletisim.has-baglanti .cy-ust-iletisim__saat { display: none; } .cy-ust-iletisim__baglantilar { margin-inline: auto; } }
.cy-cerez { position: fixed; z-index: 1060; left: 1rem; right: 1rem; bottom: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; max-width: 40rem; margin-inline: auto; padding: .85rem 1rem; border: 1px solid var(--cy-border); border-radius: 14px; background: var(--cy-surface); box-shadow: 0 12px 32px rgba(0, 0, 0, .18); font-size: .9rem; }
.cy-cerez[hidden] { display: none; }
.cy-cerez p { flex: 1 1 16rem; margin: 0; }
.cy-cerez a { color: var(--cy-brand-600); }
/* Klavye odağı temalarda görünür kalsın: İz, Nefes, Sade ve Sofra düğmede ve kartta box-shadow'u kapattığı için
 * (.cy-site .cy-btn { box-shadow: none }) klavyeyle gezen odağı göremiyordu (erişilebilirlik denetimi 25.10.2026). */
.cy-site :is(.cy-btn, .cy-bento__item, .btn):focus-visible { box-shadow: var(--cy-focus); outline: none; }
/* Bölüm önizlemesi şeridi (Y3) */
.cy-onizleme-serit { position: sticky; top: 0; z-index: 1035; padding: .6rem 0; background: #fff4d6; color: #5c4400; border-bottom: 1px solid #f0d58a; font-size: .9rem; }
/* Yüzen düğmelerle (WhatsApp, başa dön) ve sahip çubuğuyla çakışmasın. */
@media (max-width: 767.98px) { .cy-cerez { right: calc(1rem + 64px); } }
body:has(.cy-sahip:not([hidden])) .cy-cerez { bottom: calc(4.6rem + env(safe-area-inset-bottom)); }

/* Geniş ekranda (≥ 1600 px) üst menü, alt bilgi, sayfalar ve tema bölümleri 1440 px'e açılır;
 * 1320 px'te iki yanda büyük boşluk kalıyordu (transcript ile aynı, 23.10.2026). */
@media (min-width: 1600px) {
    .cy-site .container { max-width: 1440px; }
}

/* --- Hata sayfaları (404, 403, 419, 500) ---
 *  Kuralları yalnız admin.css'teydi: ziyaretçinin yanlış adreste gördüğü sayfada kod düz
 *  yazıydı, içerik sol kenara yapışıktı (transcript 22.10.2026 ile aynı düzeltme). */
.cy-error {
    display: grid;
    place-items: center;
    min-height: 60vh;
    padding: 3rem 1.25rem;
    text-align: center;
}

.cy-error__code {
    font-size: 4.5rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.04em;
    background: var(--cy-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.cy-error__title { margin: .75rem 0 .35rem; font-size: 1.5rem; font-weight: 700; }
.cy-error__text  { color: var(--cy-text-muted); max-width: 44ch; margin: 0 auto 1.5rem; }

/* "Ziyaretçi gözüyle bakıyorsunuz · Çık" (App\Site\ZiyaretciGorunumu, 26.10.2026): panelin "Siteyi görüntüle"
   sekmesinde altta ortada. Sahip çubuğunun yerinde durur; o kipte sahip çubuğu çizilmez. */
.cy-ziyaretci-isareti {
    position: fixed; left: 50%; bottom: calc(.9rem + env(safe-area-inset-bottom)); z-index: 1060;
    display: inline-flex; align-items: center; gap: .5rem; max-width: calc(100vw - 1.5rem); padding: .45rem .55rem .45rem .8rem;
    border-radius: 999px; background: #0f172a; color: #e2e8f0 !important; text-decoration: none !important;
    box-shadow: 0 16px 32px -14px rgba(2, 6, 23, .7); transform: translateX(-50%);
    font: 500 13px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; white-space: nowrap;
}
.cy-ziyaretci-isareti__nokta { width: 8px; height: 8px; border-radius: 50%; background: #f59e0b; box-shadow: 0 0 0 3px rgba(245, 158, 11, .25); }
.cy-ziyaretci-isareti strong { padding: .3rem .7rem; border-radius: 999px; background: #2563eb; color: #fff; font-weight: 600; }
.cy-ziyaretci-isareti:hover strong, .cy-ziyaretci-isareti:focus-visible strong { background: #1d4ed8; }
body:has(.cy-ziyaretci-isareti) :is(.cy-whatsapp-fab, .cy-yukari, .cy-demo-mini) { bottom: calc(4.2rem + env(safe-area-inset-bottom)); }

/* Bülten aboneliği (alt bilgi; Tema ve görünüm → "Alt bilgide bülten aboneliği", 26.10.2026). */
.cy-bulten {
    display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem 1.5rem; align-items: center;
    margin-top: 2rem; padding: 1.1rem 1.25rem; border: 1px solid var(--cy-border); border-radius: var(--cy-radius-lg);
    background: var(--cy-surface); scroll-margin-top: 6rem;
}
@media (min-width: 768px) {
    .cy-bulten { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
    .cy-bulten__kvkk { grid-column: 1 / -1; }
}
.cy-bulten__alan { display: flex; gap: .5rem; }
.cy-bulten__alan .form-control { flex: 1; min-width: 0; }
.cy-bulten__alan .btn { white-space: nowrap; }
.cy-duyuru-izni { margin-top: .35rem; }
