<!DOCTYPE html>
<html lang="tr">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="csrf-token" content="">

    
    <title>Garantili Oto Servis | Garantiyi Bozmayan TSE Belgeli Servis</title>
<meta name="description" content="">
<meta name="robots" content="index, follow">


<link rel="canonical" href="https://mandalinbahce.shop/assets/css/style.bundle.css">


<link rel="alternate" hreflang="tr" href="https://mandalinbahce.shop/assets/css/style.bundle.css">
<link rel="alternate" hreflang="x-default" href="https://mandalinbahce.shop/assets/css/style.bundle.css">

    
    <meta property="og:type" content="website">
<meta property="og:title" content="Garantili Oto Servis | Garantiyi Bozmayan TSE Belgeli Servis">
<meta property="og:description" content="">
<meta property="og:url" content="https://mandalinbahce.shop/assets/css/style.bundle.css">
<meta property="og:image" content="https://mandalinbahce.shop/garantiliotoservis-frontend/assets/img/logo-full.png">
<meta property="og:site_name" content="Garantili Oto Servis | Garantiyi Bozmayan TSE Belgeli Servis">
<meta property="og:locale" content="tr_TR">


<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Garantili Oto Servis | Garantiyi Bozmayan TSE Belgeli Servis">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://mandalinbahce.shop/garantiliotoservis-frontend/assets/img/logo-full.png">

    
    
    
            <meta name="google-site-verification" content="Q_olx_T-U9tWKHNsN0Jz4wVlE2BTklTIn-4N9WXHKXg">
    
    
            <meta name="facebook-domain-verification" content="lz5vkaxmjjt5cw2d2kugwm56dyccka">
    
    
        <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-TTVPNWVZ');</script>
    
    
        <script>
    window.addEventListener('load', function() {
        !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
        n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];
        s.parentNode.insertBefore(t,s)}(window,document,'script',
        'https://connect.facebook.net/en_US/fbevents.js');
        fbq('init','946732113656776');fbq('track','PageView');
    });
    </script>
    <noscript><img height="1" width="1" style="display:none"
        src="https://www.facebook.com/tr?id=946732113656776&ev=PageView&noscript=1"/></noscript>
    
    <!-- Favicon -->
    <link rel="icon" type="image/png" href="https://mandalinbahce.shop/storage/settings/logo-garantiliotoservis-1.svg">

    <!-- Bootstrap 5.3 CSS (self-hosted, render-blocking yok) -->
    <link rel="stylesheet" href="https://mandalinbahce.shop/garantiliotoservis-frontend/css/bootstrap.min.css">

    <!-- Bootstrap Icons (self-hosted) -->
    <link rel="stylesheet" href="https://mandalinbahce.shop/garantiliotoservis-frontend/css/bootstrap-icons.min.css">

    <!-- Google Fonts - Non-blocking (preconnect + media print trick) -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&family=Outfit:wght@300;400;500;600;700;800&display=swap" onload="this.onload=null;this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&family=Outfit:wght@300;400;500;600;700;800&display=swap"></noscript>

    <!-- Custom CSS -->
    <link rel="stylesheet" href="https://mandalinbahce.shop/garantiliotoservis-frontend/css/style.css">
    <link rel="stylesheet" href="https://mandalinbahce.shop/garantiliotoservis-frontend/css/responsive.css">

    </head>

<body>

    
        <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TTVPNWVZ"
        height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    
    
    <nav class="navbar navbar-expand-lg gos-navbar">
    <div class="container">
        <a class="navbar-brand" href="https://mandalinbahce.shop">
            <img src="https://mandalinbahce.shop/garantiliotoservis-frontend/assets/img/logo.svg" alt="Garantili Oto Servis | Garantiyi Bozmayan TSE Belgeli Servis">
        </a>
        <div class="d-flex align-items-center d-lg-none gap-2">
            <a href="https://gos.mandalinbahce.shop/" target="_blank" class="btn btn-gos btn-gos-nav btn-gos-mobile-cta">Teklif Al</a>
            <button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" aria-label="Menüyü aç/kapa">
                <span class="navbar-toggler-icon"></span>
            </button>
        </div>
        <div class="collapse navbar-collapse" id="mainNav">
                        <ul class="navbar-nav mx-auto mb-2 mb-lg-0">

                
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle " href="#" data-bs-toggle="dropdown">GOS Nedir?</a>
                    <ul class="dropdown-menu">
                                                    <li><a class="dropdown-item" href="/gos-nasil-kullanilir">GOS Nasıl Kullanılır?</a></li>
                                                    <li><a class="dropdown-item" href="/gos-nedir">Garantili Oto Satış Sonrası Hizmetler Nedir?</a></li>
                                                    <li><a class="dropdown-item" href="/gos-surec-yonetimi">GOS Sürec Yönetimi</a></li>
                                                    <li><a class="dropdown-item" href="/garanti-nedir">Garanti Nedir?</a></li>
                                                    <li><a class="dropdown-item" href="/surdurulebilirgaranti">Sürdürülebilir Garanti Nedir?</a></li>
                                                    <li><a class="dropdown-item" href="/garantili-oto-servis-manifestosu">Garantili Servis Manifestosu</a></li>
                                            </ul>
                </li>

                
                <li class="nav-item dropdown gos-mega-dropdown">
                    <a class="nav-link dropdown-toggle " href="#" data-bs-toggle="dropdown" data-bs-display="static">Hizmetlerimiz</a>
                    <div class="dropdown-menu gos-mega-menu">
                        <div class="gos-mega-inner">
                            
                            <div class="gos-mega-services">
                                <div class="gos-mega-grid">
                                                                                                                        <a href="https://mandalinbahce.shop/garantili-periyodik-bakim-hizmeti-hakkinda" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Periyodik Bakım Hizmeti</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/muayene-hazirlik-on-muayene" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Araç Muayene Hazırlık/Ön Muayene</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-on-silecek-supurge-firca-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Ön Silecek Süpürge / Fırça Değişim</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-on-fren-balata-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Ön Fren Balata Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-on-fren-disk-balata-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Ön Fren Disk/Balata Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-arka-fren-balata-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Arka Fren Balata Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-arka-fren-disk-balata-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Arka Fren Disk ve Balata Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-eksantrik-triger-zincir-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Eksantrik Triger / Zincir Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-debriyaj-seti-kavrama-kit-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Debriyaj Seti / Kavrama Kit Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-aku-degisimi" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Akü Değişimi</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-genel-ariza-muhtelif-onarim" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Genel Arıza ve Muhtelif Onarım</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/servis-manifestosu" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Garantili Oto Servis Manifestosu</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                    <a href="https://mandalinbahce.shop/garantili-ara-bakim-hafif-bakim-hakkinda" class="gos-mega-item">
                                                <span class="gos-mega-item-icon">
                                                    <i class="bi bi-wrench"></i>
                                                </span>
                                                <span class="gos-mega-item-text">Ara Bakım Hafif Bakım</span>
                                                <i class="bi bi-chevron-right gos-mega-item-arrow"></i>
                                            </a>
                                                                                                            </div>
                            </div>
                            
                                                                                            <div class="gos-mega-promo">
                                    <div class="gos-mega-promo-card">
                                        <div class="gos-mega-promo-media">
                                            <img src="https://mandalinbahce.shop/storage/testimonials/garantiliotoservis-musteri-1.webp" alt="Müşteri Yorumu">
                                            
                                        </div>
                                    </div>
                                </div>
                                                    </div>
                    </div>
                </li>

                
                <li class="nav-item">
                    <a class="nav-link " href="https://mandalinbahce.shop/bilgi-bankasi">Bilgi Bankası</a>
                </li>

                
                <li class="nav-item">
                    <a class="nav-link " href="https://mandalinbahce.shop/garantili-servisler">Garantili Servisler</a>
                </li>

                
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle " href="#" data-bs-toggle="dropdown">Kurumsal</a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/servis-uyeligi">Servisimiz Olur Musunuz?</a></li>
                        <li><a class="dropdown-item" href="/uyelik-sureci">Üyelik Süreci</a></li>
                        <li><a class="dropdown-item" href="/hizmet-paketleri">Hizmet Paketleri</a></li>
                        <li><a class="dropdown-item" href="/on-basvuru-formu">Ön Başvuru Formu</a></li>
                        <li><a class="dropdown-item" href="https://rskariyer.com/" target="_blank">Kariyer</a></li>
                        <li><a class="dropdown-item" href="https://mandalinbahce.shop/kurumsal-isbirlikleri">Kurumsal İşbirlikleri</a></li>
                        <li><a class="dropdown-item" href="https://mandalinbahce.shop/garantili-haberler">Garantili Haberler</a></li>
                    </ul>
                </li>

                
                <li class="nav-item">
                    <a class="nav-link " href="https://mandalinbahce.shop/iletisim">İletişim</a>
                </li>
            </ul>
            <div class="navbar-cta">
                <a href="https://gos.mandalinbahce.shop/" target="_blank" class="btn btn-gos btn-gos-nav">Teklif Al</a>
                <a href="mailto:destek@mandalinbahce.shop" class="navbar-mail-btn">
                    <i class="bi bi-envelope"></i>
                </a>
            </div>
        </div>
    </div>
</nav>

    
    <div class="error-page error-page-404">
    <div class="error-container">
      

        <div class="error-code">404</div>
        <h1 class="error-title">Sayfa Bulunamadı</h1>
        <p class="error-description">
            Aradığınız sayfa taşınmış, kaldırılmış veya hiç var olmamış olabilir.
            Lütfen adresi kontrol edin veya ana sayfaya dönün.
        </p>

        <div class="error-actions">
            <a href="/" class="btn-primary-gos">
                <i class="bi bi-house-door"></i> Ana Sayfa
            </a>
            <a href="javascript:history.back()" class="btn-outline-gos">
                <i class="bi bi-arrow-left"></i> Geri Dön
            </a>
        </div>
    </div>
</div>

    
    <footer class="gos-footer">
    

    <div class="container mt-5">
        <div class="row g-4">

            <div class="col-lg-3 col-md-6">
                <div class="footer-logo d-flex align-items-center gap-3">
                    <img src="https://mandalinbahce.shop/garantiliotoservis-frontend/assets/img/logo.svg" alt="Garantili Oto Servis | Garantiyi Bozmayan TSE Belgeli Servis">
                    <a href="https://www.oss.org.tr/tr/uyeler/uyeler" target="_blank" rel="noopener noreferrer">
                        <img src="https://mandalinbahce.shop/assets/images/osslogo-tr.png" alt="OSS Logo">
                    </a>
                </div>
                <p class="footer-company-name">Garantili Satış Sonrası Oto Hizmetleri Anonim Şirketi</p>
                                <p class="footer-address"><a href="https://www.google.com/maps/search/?api=1&query=Garantili+Oto+Servis%2C+Cevizli%2C+Tugay+Yolu+Cd.+No%3A57%2C+34846+Maltepe%2F%C4%B0stanbul" target="_blank" rel="noopener noreferrer">Garantili Oto Servis, Cevizli, Tugay Yolu Cd. No:57, 34846 Maltepe/İstanbul</a></p>
                <p class="footer-phone"><a href="tel:+08504806655">+0 850 480 66 55</a></p>
                <p class="footer-email"><a href="mailto:destek@mandalinbahce.shop">destek@mandalinbahce.shop</a></p>
                <div class="footer-social">
                    <a href="https://www.facebook.com/garantiliotoservis" target="_blank" rel="noopener noreferrer"><i class="bi bi-facebook"></i></a>                    <a href="https://www.linkedin.com/company/garantiliotoservis/" target="_blank" rel="noopener noreferrer"><i class="bi bi-linkedin"></i></a>                    <a href="https://www.instagram.com/garantiliotoservis/" target="_blank" rel="noopener noreferrer"><i class="bi bi-instagram"></i></a>                                    </div>
            </div>

            <div class="col-lg-3 col-md-6 footer-links">
                <h6>Garantili Oto Servis</h6>
                <ul>
                    <li><a href="https://mandalinbahce.shop/hizmetlerimiz">Hizmetlerimiz</a></li>
                    <li><a href="https://mandalinbahce.shop/garantili-servisler">Üye Servislerimiz</a></li>
                    <li><a href="https://mandalinbahce.shop/bilgi-bankasi">Bilgi Bankası</a></li>
                                            <li><a href="/gos-nasil-kullanilir">GOS Nasıl Kullanılır?</a></li>
                                            <li><a href="/gos-nedir">Garantili Oto Satış Sonrası Hizmetler Nedir?</a></li>
                                            <li><a href="/gos-surec-yonetimi">GOS Sürec Yönetimi</a></li>
                                            <li><a href="/garanti-nedir">Garanti Nedir?</a></li>
                                            <li><a href="/surdurulebilirgaranti">Sürdürülebilir Garanti Nedir?</a></li>
                                            <li><a href="/garantili-oto-servis-manifestosu">Garantili Servis Manifestosu</a></li>
                                    </ul>
            </div>

            <div class="col-lg-3 col-md-6 footer-links">
                <h6>Bilgi</h6>
                <ul>
                                                                        <li><a href="https://mandalinbahce.shop/cerez-politikasi">Çerez Politikası</a></li>
                                                    <li><a href="https://mandalinbahce.shop/ticari-elektronik-ileti-onay-metni">Ticari Elektronik İleti Onay Metni</a></li>
                                                    <li><a href="https://mandalinbahce.shop/kvkk-aydinlatma-metni">KVKK Aydınlatma Metni</a></li>
                                                            </ul>
            </div>

            <div class="col-lg-3 col-md-6 footer-links">
                <h6>Kurumsal</h6>
                <ul>
                    <li><a href="/servis-uyeligi">Servisimiz Olur Musunuz?</a></li>
                    <li><a href="https://mandalinbahce.shop/kurumsal-isbirlikleri">Kurumsal İşbirlikleri</a></li>
                    <li><a href="https://mandalinbahce.shop/garantili-haberler">Garantili Haberler</a></li>
                    <li><a href="https://mandalinbahce.shop/iletisim">İletişim</a></li>
                </ul>
            </div>

        </div>
    </div>

    <div class="footer-bottom">
        <div class="container">
            Copyright 2026 - Garantili Satış Sonrası Oto Hiz.A.Ş Tüm Hakları Saklıdır.
        </div>
    </div>
</footer>

    
    <div class="cc-banner" id="ccBanner">
    <div class="cc-banner-inner">
        <h6 class="cc-banner-title">Cerezleri kullaniyoruz</h6>
        <p class="cc-banner-text">
            Web sitemizde gezinme deneyiminizi gelistirmek, size kisisellestirilmis icerik ve hedefli reklamlar gostermek,
            web sitesi trafiğimizi analiz etmek ve ziyaretcilerimizin nereden geldigini anlamak icin cerezleri ve diger izleme
            teknolojilerini kullaniyoruz.
        </p>
        <div class="cc-banner-actions">
            <button type="button" class="cc-btn cc-btn-accept" id="ccAcceptAll">Kabul et</button>
            <button type="button" class="cc-btn cc-btn-reject" id="ccRejectAll">Reddet</button>
            <button type="button" class="cc-btn cc-btn-settings" id="ccOpenSettings">Tercihleri degistir</button>
        </div>
    </div>
</div>


<div class="cc-overlay" id="ccOverlay">
    <div class="cc-modal" id="ccModal">
        <div class="cc-modal-header">
            <h5 class="cc-modal-title">Cerez Tercihleri Merkezi</h5>
            <button type="button" class="cc-modal-close" id="ccModalClose" aria-label="Kapat">
                <i class="bi bi-x-lg"></i>
            </button>
        </div>

        <div class="cc-modal-body">
            
            <div class="cc-tabs">
                <button type="button" class="cc-tab active" data-cc-tab="privacy">Gizliliginiz</button>
                <button type="button" class="cc-tab" data-cc-tab="essential">Kesinlikle gerekli cerezler</button>
                <button type="button" class="cc-tab" data-cc-tab="functional">Islevsellik cerezleri</button>
                <button type="button" class="cc-tab" data-cc-tab="analytics">Izleme ve performans cerezleri</button>
                <button type="button" class="cc-tab" data-cc-tab="marketing">Hedefleme ve reklam cerezleri</button>
            </div>

            
            <div class="cc-panels">
                
                <div class="cc-panel active" data-cc-panel="privacy">
                    <h6 class="cc-panel-title">Gizliliginiz bizim icin onemlidir</h6>
                    <p>Cerezler, bir web sitesini ziyaret ettiginizde bilgisayarinizda depolanan cok kucuk metin dosyalaridir. Cerezleri cesitli amaclarla ve web sitemizdeki cevrimici deneyiminizi gelistirmek icin (ornegin, hesap giris bilgilerinizi hatirlamak icin) kullaniyoruz.</p>
                    <p>Web sitemizde gezinirken tercihlerinizi degistirebilir ve bilgisayarinizda saklanacak belirli cerez turlerini reddedebilirsiniz. Ayrica bilgisayarinizda depolanmis olan cerezleri de kaldirabilirsiniz, ancak cerezleri silmenin web sitemizin bolumlerini kullaniminizi engelleyebilecegini unutmayin.</p>
                </div>

                
                <div class="cc-panel" data-cc-panel="essential">
                    <div class="cc-panel-header-row">
                        <h6 class="cc-panel-title">Kesinlikle gerekli cerezler</h6>
                        <div class="cc-toggle cc-toggle-locked">
                            <input type="checkbox" checked disabled id="ccEssential">
                            <label for="ccEssential">Her zaman etkin</label>
                        </div>
                    </div>
                    <p>Bu cerezler, size web sitemiz araciligiyla sunulan hizmetleri saglamak ve web sitemizin belirli ozelliklerini kullaniminizi saglamak icin gereklidir.</p>
                    <p>Bu cerezler olmadan, web sitemizde size belirli hizmetleri saglayamayiz.</p>
                </div>

                
                <div class="cc-panel" data-cc-panel="functional">
                    <div class="cc-panel-header-row">
                        <h6 class="cc-panel-title">Islevsellik cerezleri</h6>
                        <div class="cc-toggle">
                            <input type="checkbox" id="ccFunctional">
                            <label for="ccFunctional"></label>
                        </div>
                    </div>
                    <p>Bu cerezler, web sitemize yaptığınız ziyareti kisiselleştirmek, tercihlerinizi hatırlamak ve genel kullanıcı deneyiminizi iyilestirmek icin kullanılır.</p>
                    <p>Bu cerezleri devre disi birakırsanız, bazı kisisellestirilmis ozellikler kullanılamaz hale gelebilir.</p>
                </div>

                
                <div class="cc-panel" data-cc-panel="analytics">
                    <div class="cc-panel-header-row">
                        <h6 class="cc-panel-title">Izleme ve performans cerezleri</h6>
                        <div class="cc-toggle">
                            <input type="checkbox" id="ccAnalytics">
                            <label for="ccAnalytics"></label>
                        </div>
                    </div>
                    <p>Bu cerezler, web sitemizin nasil kullanildigini anlamamiza yardimci olan istatistiksel bilgiler toplamak icin kullanilir. Ziyaretci sayilari, sayfa goruntulenmeleri ve trafik kaynaklari gibi verileri olcer.</p>
                    <p>Bu cerezleri devre disi birakmaniz, sitemizin performansini izlememizi engelleyebilir.</p>
                </div>

                
                <div class="cc-panel" data-cc-panel="marketing">
                    <div class="cc-panel-header-row">
                        <h6 class="cc-panel-title">Hedefleme ve reklam cerezleri</h6>
                        <div class="cc-toggle">
                            <input type="checkbox" id="ccMarketing">
                            <label for="ccMarketing"></label>
                        </div>
                    </div>
                    <p>Bu cerezler, reklam ortaklarimiz tarafindan ilgi alanlariniza uygun reklamlar gostermek icin kullanilir. Tarama aliskanliklariniza gore kisisellestirilmis icerik sunulmasini saglar.</p>
                    <p>Bu cerezleri devre disi birakmaniz reklamlarin tamamen kaybolmasina neden olmaz, ancak gosterilen reklamlar sizin icin daha az ilgili olabilir.</p>
                </div>
            </div>
        </div>

        <div class="cc-modal-footer">
            <button type="button" class="cc-btn cc-btn-save" id="ccSavePrefs">Tercihleri Kaydet</button>
        </div>
    </div>
</div>

    
    <button class="gos-chat-fab" id="gosChatFab" type="button" aria-label="Sohbet başlat">
    <img src="https://mandalinbahce.shop/assets/images/gos-maskot.gif" alt="Garantili Oto Servis Asistanı" class="gos-chat-fab-logo" id="gosChatFabIcon">
    <span class="gos-chat-fab-pulse"></span>
</button>


<div class="gos-chat-tooltip" id="gosChatTooltip">
    <span class="gos-chat-tooltip-line gos-chat-tooltip-line--light">Merhaba,</span>
    <span class="gos-chat-tooltip-line gos-chat-tooltip-line--strong">Yardıma mı ihtiyacınız var?</span>
</div>


<div class="gos-chat-widget" id="gosChatWidget">
    
    <div class="gos-chat-header">
        <div class="gos-chat-header-logo"><img src="https://mandalinbahce.shop/assets/images/gos-maskot.gif" alt="Garantili Oto Servis Asistanı"></div>
        <div class="gos-chat-header-info">
            <p class="gos-chat-header-title">Garantili Oto Servis</p>
            <p class="gos-chat-header-subtitle">Canlı Destek</p>
            <div class="gos-chat-header-online">
                <span class="gos-chat-header-online-dot"></span> Çevrimiçi
            </div>
        </div>
        <button class="gos-chat-header-close" id="gosChatClose" type="button" aria-label="Kapat">&times;</button>
    </div>

    
    <div class="gos-chat-form" id="gosChatForm">
        <div class="gos-chat-form-title">Merhaba! 👋</div>
        <div class="gos-chat-form-desc">Size yardımcı olabilmemiz için lütfen bilgilerinizi girin.</div>
        <div class="gos-chat-form-group">
            <span class="gos-chat-form-icon">👤</span>
            <input type="text" id="gosChatName" class="gos-chat-form-input" placeholder="Adınız Soyadınız" maxlength="100" autocomplete="name">
        </div>
        <div class="gos-chat-form-group">
            <span class="gos-chat-form-icon">📱</span>
            <input type="tel" id="gosChatPhone" class="gos-chat-form-input" placeholder="05XX XXX XX XX" maxlength="11" autocomplete="tel">
        </div>
        <div class="gos-chat-form-error" id="gosChatFormError"></div>
        <button class="gos-chat-form-submit" id="gosChatFormSubmit" type="button">Sohbete Başla →</button>
        <div class="gos-chat-form-privacy">🔒 Bilgileriniz gizli tutulur. KVKK kapsamında korunur.</div>
    </div>

    
    <div class="gos-chat-body" id="gosChatBody" style="display: none;"></div>

    
    <div class="gos-chat-quick" id="gosChatQuick" style="display: none;">
        <button class="gos-chat-quick-btn" data-msg="Randevu almak istiyorum" type="button">Randevu Al</button>
        <button class="gos-chat-quick-btn" data-msg="Fiyat teklifi almak istiyorum" type="button">Fiyat Teklifi</button>
        <button class="gos-chat-quick-btn" data-msg="Aracımın garantisi bozulur mu?" type="button">Garanti Bilgisi</button>
        <button class="gos-chat-quick-btn" data-msg="İletişim bilgileriniz nedir?" type="button">İletişim</button>
    </div>

    
    <div class="gos-chat-footer" id="gosChatFooter" style="display: none;">
        <input type="text" class="gos-chat-input" id="gosChatInput" placeholder="Mesajınızı yazın..." maxlength="500" autocomplete="off">
        <button class="gos-chat-send" id="gosChatSend" type="button" aria-label="Gönder">➤</button>
        <button class="gos-chat-end-btn" id="gosChatEnd" type="button" aria-label="Sohbeti Sonlandır" title="Sohbeti Sonlandır">✕</button>
    </div>

    
    <div class="gos-chat-ended" id="gosChatEnded" style="display: none;">
        <div class="gos-chat-ended-icon">✅</div>
        <div class="gos-chat-ended-title">Görüşme Sonlandırıldı</div>
        <div class="gos-chat-ended-desc">Teşekkür ederiz! Tekrar yardıma ihtiyacınız olursa biz buradayız.</div>
        <button class="gos-chat-ended-restart" id="gosChatRestart" type="button">Yeni Sohbet Başlat</button>
    </div>
    <div class="gos-chat-powered" id="gosChatPowered" style="display: none;">Powered by GOS AI</div>
</div>

<script>
(function() {
    'use strict';

    const GOSChatbot = {
        sessionUuid: null,
        isOpen: false,
        isLoading: false,
        tooltipTimer: null,
        tooltipInterval: null,
        rateLimitTimer: null,
        inactivityTimer: null,
        inactivityMinutes: 30,

        els: {},

        init() {
            this.els = {
                fab: document.getElementById('gosChatFab'),
                fabIcon: document.getElementById('gosChatFabIcon'),
                tooltip: document.getElementById('gosChatTooltip'),
                widget: document.getElementById('gosChatWidget'),
                close: document.getElementById('gosChatClose'),
                form: document.getElementById('gosChatForm'),
                formError: document.getElementById('gosChatFormError'),
                formSubmit: document.getElementById('gosChatFormSubmit'),
                nameInput: document.getElementById('gosChatName'),
                phoneInput: document.getElementById('gosChatPhone'),
                body: document.getElementById('gosChatBody'),
                quick: document.getElementById('gosChatQuick'),
                footer: document.getElementById('gosChatFooter'),
                input: document.getElementById('gosChatInput'),
                send: document.getElementById('gosChatSend'),
                endBtn: document.getElementById('gosChatEnd'),
                ended: document.getElementById('gosChatEnded'),
                restart: document.getElementById('gosChatRestart'),
                powered: document.getElementById('gosChatPowered'),
            };

            // Check existing session
            this.sessionUuid = localStorage.getItem('gos_session_uuid');
            const visitorName = localStorage.getItem('gos_visitor_name');

            if (this.sessionUuid && visitorName) {
                this.showChatScreen();
                this.loadHistory();
            }

            // Events
            this.els.fab.addEventListener('click', () => this.toggle());
            this.els.close.addEventListener('click', () => this.toggle());
            this.els.formSubmit.addEventListener('click', () => this.handleFormSubmit());
            this.els.send.addEventListener('click', () => this.handleSend());
            this.els.input.addEventListener('keydown', (e) => {
                if (e.key === 'Enter' && !e.shiftKey) {
                    e.preventDefault();
                    this.handleSend();
                }
            });

            // Quick reply buttons
            this.els.quick.querySelectorAll('.gos-chat-quick-btn').forEach(btn => {
                btn.addEventListener('click', () => {
                    const msg = btn.getAttribute('data-msg');
                    this.els.quick.style.display = 'none';
                    this.sendMessage(msg);
                });
            });

            // Link/telefon tıklamalarını takip et (delegated)
            this.els.body.addEventListener('click', (e) => {
                const link = e.target.closest('a.gos-chat-link');
                if (!link || !this.sessionUuid) return;
                const href = link.getAttribute('href') || '';
                const isPhone = href.indexOf('tel:') === 0;
                this.trackClick(isPhone ? 'phone' : 'url', isPhone ? href.substring(4) : href);
            });

            // End session button
            this.els.endBtn.addEventListener('click', () => this.confirmEndSession());

            // Restart button
            this.els.restart.addEventListener('click', () => this.resetToForm());

            // Phone input mask — only digits
            this.els.phoneInput.addEventListener('input', (e) => {
                e.target.value = e.target.value.replace(/\D/g, '').slice(0, 11);
            });

            // Form enter key
            this.els.phoneInput.addEventListener('keydown', (e) => {
                if (e.key === 'Enter') { e.preventDefault(); this.handleFormSubmit(); }
            });
            this.els.nameInput.addEventListener('keydown', (e) => {
                if (e.key === 'Enter') { e.preventDefault(); this.els.phoneInput.focus(); }
            });

            // Tooltip
            this.showTooltip();
        },

        showTooltip() {
            this.tooltipTimer = setTimeout(() => {
                if (!this.isOpen) {
                    this.els.tooltip.classList.add('gos-chat-tooltip--visible');
                    setTimeout(() => {
                        this.els.tooltip.classList.remove('gos-chat-tooltip--visible');
                    }, 50000);
                }
            }, 2000);

            this.tooltipInterval = setInterval(() => {
                if (!this.isOpen) {
                    this.els.tooltip.classList.add('gos-chat-tooltip--visible');
                    setTimeout(() => {
                        this.els.tooltip.classList.remove('gos-chat-tooltip--visible');
                    }, 3000);
                }
            }, 60000);
        },

        toggle() {
            this.isOpen = !this.isOpen;
            if (this.isOpen) {
                this.els.widget.classList.add('gos-chat-widget--open');
                this.els.fab.style.display = 'none';
                this.els.tooltip.classList.remove('gos-chat-tooltip--visible');
                // Focus
                if (this.sessionUuid) {
                    this.els.input.focus();
                } else {
                    this.els.nameInput.focus();
                }
            } else {
                this.els.widget.classList.remove('gos-chat-widget--open');
                this.els.fab.style.display = 'flex';
            }
        },

        showFormError(msg) {
            this.els.formError.textContent = msg;
            this.els.formError.style.display = 'block';
        },

        hideFormError() {
            this.els.formError.style.display = 'none';
        },

        async handleFormSubmit() {
            this.hideFormError();
            const name = this.els.nameInput.value.trim();
            const phone = this.els.phoneInput.value.trim();

            if (name.length < 2) {
                this.showFormError('Adınız en az 2 karakter olmalıdır.');
                return;
            }
            if (!/^[0-9]{10,11}$/.test(phone)) {
                this.showFormError('Geçerli bir telefon numarası girin (10-11 rakam).');
                return;
            }

            this.els.formSubmit.disabled = true;
            this.els.formSubmit.textContent = 'Başlatılıyor...';

            try {
                const csrfToken = document.querySelector('meta[name="csrf-token"]');
                const response = await fetch('/api/chat/start', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'Accept': 'application/json',
                    },
                    body: JSON.stringify({ visitor_name: name, visitor_phone: phone })
                });

                const data = await response.json();

                if (data.success) {
                    localStorage.setItem('gos_session_uuid', data.session_uuid);
                    localStorage.setItem('gos_visitor_name', name);
                    this.sessionUuid = data.session_uuid;
                    this.showChatScreen();
                    // Show welcome message
                    this.appendMessage(data.welcome_message, 'bot', { source: 'system' });
                    // Show quick replies
                    this.els.quick.style.display = 'flex';
                } else {
                    this.showFormError(data.message || 'Bir hata oluştu. Lütfen tekrar deneyin.');
                }
            } catch (error) {
                this.showFormError('Bağlantı hatası. Lütfen tekrar deneyin.');
                console.error('GOS ChatBot Session Error:', error);
            }

            this.els.formSubmit.disabled = false;
            this.els.formSubmit.textContent = 'Sohbete Başla →';
        },

        showChatScreen() {
            this.els.form.style.display = 'none';
            this.els.ended.style.display = 'none';
            this.els.body.style.display = 'flex';
            this.els.footer.style.display = 'flex';
            this.els.powered.style.display = 'block';
            this.resetInactivityTimer();
        },

        async loadHistory() {
            try {
                const response = await fetch('/api/chat/history', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
                    body: JSON.stringify({ session_uuid: this.sessionUuid })
                });
                const data = await response.json();
                if (data.success && data.messages && data.messages.length) {
                    data.messages.forEach(m => {
                        this.appendMessage(m.message, m.sender, { timeStr: m.time, source: m.source });
                    });
                } else if (data.session_expired) {
                    localStorage.removeItem('gos_session_uuid');
                    localStorage.removeItem('gos_visitor_name');
                    this.sessionUuid = null;
                    this.showEndedScreen();
                }
            } catch (e) {
                console.error('GOS ChatBot History Error:', e);
            }
        },

        handleSend() {
            const message = this.els.input.value.trim();
            if (!message || this.isLoading) return;
            this.els.input.value = '';
            this.els.quick.style.display = 'none';
            this.sendMessage(message);
        },

        async sendMessage(message) {
            if (this.isLoading || !message.trim()) return;
            this.isLoading = true;
            this.els.send.disabled = true;

            this.appendMessage(message, 'user');
            this.showTypingIndicator();

            try {
                const response = await fetch('/api/chat/message', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'Accept': 'application/json',
                    },
                    body: JSON.stringify({
                        session_uuid: this.sessionUuid,
                        message: message
                    })
                });

                const data = await response.json();
                this.hideTypingIndicator();

                if (response.status === 404 || response.status === 410 || data.session_expired) {
                    // Session expired or timed out — show ended screen
                    localStorage.removeItem('gos_session_uuid');
                    localStorage.removeItem('gos_visitor_name');
                    this.sessionUuid = null;
                    this.clearInactivityTimer();
                    this.appendMessage(data.message || 'Oturum süresi dolmuş.', 'bot', { source: 'system' });
                    setTimeout(() => this.showEndedScreen(), 2000);
                } else if (response.status === 429 && data.wait_seconds) {
                    // Rate limit — geri sayım başlat
                    this.appendMessage(data.message, 'bot', { source: 'system' });
                    this.startCooldown(data.wait_seconds);
                } else if (data.blocked) {
                    // Session blocked — engel geri sayımı
                    this.appendMessage(data.message, 'bot', { source: 'system' });
                    if (data.blocked_until) {
                        const blockedUntil = new Date(data.blocked_until);
                        const remainingSec = Math.max(0, Math.floor((blockedUntil - Date.now()) / 1000));
                        this.startCooldown(remainingSec);
                    } else {
                        this.startCooldown(600);
                    }
                } else if (data.success) {
                    this.appendMessage(data.message, 'bot', { image: data.image, imageAlt: data.image_alt, source: data.source });
                    this.resetInactivityTimer();
                } else {
                    this.appendMessage(data.message || 'Bir hata oluştu. Lütfen tekrar deneyin.', 'bot', { source: 'system' });
                }
            } catch (error) {
                this.hideTypingIndicator();
                this.appendMessage('Şu an teknik bir sorun yaşıyoruz. Lütfen 0850 480 66 55\'i arayın.', 'bot', { source: 'system' });
                console.error('GOS ChatBot Error:', error);
            }

            this.isLoading = false;
            this.els.send.disabled = false;
            this.els.input.focus();
        },

        linkify(text) {
            // XSS-safe: önceden escape edilmiş metin üzerinde çalışır.
            // 1) URL'leri önce placeholder'a al — ileride telefon regex'i URL içindeki rakamlara dokunamaz.
            var urlSlots = [];
            text = text.replace(
                /(?:https?:\/\/|www\.)[^\s<&]+|[a-z0-9-]+(?:\.[a-z0-9-]+)*\.[a-z]{2,}\/[^\s<&]*/gi,
                function(url) {
                    var href = url;
                    if (!/^https?:\/\//i.test(href)) href = 'https://' + href;
                    var display = url.replace(/^https?:\/\//i, '');
                    if (display.length > 40) display = display.substring(0, 37) + '...';
                    urlSlots.push('<a href="' + href + '" target="_blank" rel="noopener noreferrer" class="gos-chat-link">' + display + '</a>');
                    return '\u0000URL' + (urlSlots.length - 1) + '\u0000';
                }
            );
            // 2) Türkiye telefon numaralarını yakala: 0XXX XXX XX XX / 0XXX-XXX-XX-XX / 0XXXXXXXXXX
            text = text.replace(
                /(?:^|[^\d])(0\d{3}[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2})(?!\d)/g,
                function(match, number) {
                    var prefix = match.slice(0, match.length - number.length);
                    var digits = number.replace(/\D/g, '');
                    return prefix + '<a href="tel:' + digits + '" class="gos-chat-link">' + number + '</a>';
                }
            );
            // 3) URL placeholder'larını geri yerleştir
            text = text.replace(/\u0000URL(\d+)\u0000/g, function(_, i) {
                return urlSlots[parseInt(i, 10)];
            });
            return text;
        },

        appendMessage(text, sender, opts = {}) {
            const { image = null, imageAlt = null, timeStr = null, source = null } = opts;

            const wrapper = document.createElement('div');

            const bubble = document.createElement('div');
            bubble.className = 'gos-chat-bubble gos-chat-bubble--' + sender;

            // GÜVENİLİR KAYNAK LİSTESİ — sadece bunlarda HTML render edilir.
            // AI cevapları (ai, ai_cache) prompt injection riski taşıdığı için ASLA HTML render edilmez.
            const trustedSources = ['faq', 'system', 'off_topic', 'fallback'];
            const isTrustedHtml = sender === 'bot'
                && trustedSources.indexOf(source) !== -1
                && /<[a-z][\s\S]*>/i.test(text);

            if (isTrustedHtml) {
                // Admin authored / hardcoded HTML — tehlikeli pattern'leri temizleyip render et
                bubble.innerHTML = text
                    .replace(/<script[\s\S]*?<\/script>/gi, '')
                    .replace(/<iframe[\s\S]*?<\/iframe>/gi, '')
                    .replace(/<object[\s\S]*?<\/object>/gi, '')
                    .replace(/<embed[\s\S]*?<\/embed>/gi, '')
                    .replace(/<style[\s\S]*?<\/style>/gi, '')
                    .replace(/\son\w+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi, '')
                    .replace(/javascript:/gi, '');
                // FAQ HTML'inde yazılan <a> etiketlerine widget link stilini ve tıklama takip class'ını ekle
                bubble.querySelectorAll('a').forEach(a => a.classList.add('gos-chat-link'));
            } else {
                // Kullanıcı mesajı, AI cevabı veya bilinmeyen kaynak — tam escape, sonra linkify
                const escaped = text.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
                bubble.innerHTML = this.linkify(escaped.replace(/\n/g, '<br>'));
            }
            wrapper.appendChild(bubble);

            // Image
            if (image && sender === 'bot') {
                const img = document.createElement('img');
                img.src = image;
                img.alt = imageAlt || '';
                img.className = 'gos-chat-bubble-img';
                bubble.appendChild(img);
            }

            // Timestamp
            const time = document.createElement('div');
            time.className = 'gos-chat-bubble-time' + (sender === 'user' ? ' gos-chat-bubble-time--right' : '');
            if (timeStr) {
                time.textContent = timeStr;
            } else {
                const now = new Date();
                time.textContent = now.getHours().toString().padStart(2, '0') + ':' + now.getMinutes().toString().padStart(2, '0');
            }
            wrapper.appendChild(time);

            this.els.body.appendChild(wrapper);
            this.scrollToBottom();
        },

        showTypingIndicator() {
            let typing = this.els.body.querySelector('.gos-chat-typing');
            if (!typing) {
                typing = document.createElement('div');
                typing.className = 'gos-chat-typing';
                typing.innerHTML = '<span class="gos-chat-typing-dot"></span><span class="gos-chat-typing-dot"></span><span class="gos-chat-typing-dot"></span>';
                this.els.body.appendChild(typing);
            }
            typing.classList.add('gos-chat-typing--visible');
            this.scrollToBottom();
        },

        hideTypingIndicator() {
            const typing = this.els.body.querySelector('.gos-chat-typing');
            if (typing) typing.remove();
        },

        startCooldown(seconds) {
            if (this.rateLimitTimer) clearInterval(this.rateLimitTimer);

            this.els.input.disabled = true;
            this.els.send.disabled = true;
            let remaining = seconds;

            const updatePlaceholder = () => {
                const mins = Math.floor(remaining / 60);
                const secs = remaining % 60;
                this.els.input.placeholder = mins > 0
                    ? `${mins} dk ${secs} sn bekleyin...`
                    : `${secs} saniye bekleyin...`;
            };
            updatePlaceholder();

            this.rateLimitTimer = setInterval(() => {
                remaining--;
                if (remaining <= 0) {
                    clearInterval(this.rateLimitTimer);
                    this.rateLimitTimer = null;
                    this.els.input.disabled = false;
                    this.els.send.disabled = false;
                    this.els.input.placeholder = 'Mesajınızı yazın...';
                    this.els.input.focus();
                } else {
                    updatePlaceholder();
                }
            }, 1000);
        },

        confirmEndSession() {
            if (this.isLoading) return;

            // Onay mesajı göster
            const confirmDiv = document.createElement('div');
            confirmDiv.className = 'gos-chat-confirm';
            confirmDiv.id = 'gosChatConfirm';
            confirmDiv.innerHTML = `
                <p>Sohbeti sonlandırmak istediğinize emin misiniz?</p>
                <div class="gos-chat-confirm-btns">
                    <button class="gos-chat-confirm-yes" type="button">Evet, Sonlandır</button>
                    <button class="gos-chat-confirm-no" type="button">Hayır</button>
                </div>
            `;
            this.els.body.appendChild(confirmDiv);
            this.scrollToBottom();

            confirmDiv.querySelector('.gos-chat-confirm-yes').addEventListener('click', () => {
                confirmDiv.remove();
                this.endSession();
            });
            confirmDiv.querySelector('.gos-chat-confirm-no').addEventListener('click', () => {
                confirmDiv.remove();
            });
        },

        async endSession() {
            if (!this.sessionUuid) return;
            this.isLoading = true;

            try {
                const response = await fetch('/api/chat/end', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
                    body: JSON.stringify({ session_uuid: this.sessionUuid })
                });
                const data = await response.json();

                if (data.success) {
                    this.appendMessage(data.message, 'bot', { source: 'system' });
                }
            } catch (error) {
                console.error('GOS ChatBot End Error:', error);
            }

            localStorage.removeItem('gos_session_uuid');
            localStorage.removeItem('gos_visitor_name');
            this.sessionUuid = null;
            this.clearInactivityTimer();
            this.isLoading = false;

            setTimeout(() => this.showEndedScreen(), 2000);
        },

        showEndedScreen() {
            this.els.body.style.display = 'none';
            this.els.footer.style.display = 'none';
            this.els.quick.style.display = 'none';
            this.els.powered.style.display = 'none';
            this.els.ended.style.display = 'flex';
        },

        resetToForm() {
            // Clear chat body
            this.els.body.innerHTML = '';
            // Reset form inputs
            this.els.nameInput.value = '';
            this.els.phoneInput.value = '';
            this.hideFormError();
            // Show form, hide ended screen
            this.els.ended.style.display = 'none';
            this.els.form.style.display = 'block';
            this.els.nameInput.focus();
        },

        resetInactivityTimer() {
            this.clearInactivityTimer();
            this.inactivityTimer = setTimeout(() => {
                if (this.sessionUuid) {
                    this.appendMessage('⏱️ Uzun süredir mesaj yazılmadı. Oturumunuz kısa süre içinde sonlandırılacak...', 'bot', { source: 'system' });
                    // 2 dakika daha bekle, yanıt gelmezse kapat
                    this.inactivityTimer = setTimeout(() => {
                        if (this.sessionUuid) this.endSession();
                    }, 2 * 60 * 1000);
                }
            }, this.inactivityMinutes * 60 * 1000);
        },

        clearInactivityTimer() {
            if (this.inactivityTimer) {
                clearTimeout(this.inactivityTimer);
                this.inactivityTimer = null;
            }
        },

        scrollToBottom() {
            this.els.body.scrollTop = this.els.body.scrollHeight;
        },

        trackClick(linkType, linkValue) {
            // Fire-and-forget — kullanıcı deneyimini bloklamaz
            try {
                fetch('/api/chat/track-click', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
                    body: JSON.stringify({
                        session_uuid: this.sessionUuid,
                        link_type: linkType,
                        link_value: linkValue,
                    }),
                    keepalive: true,
                }).catch(() => {});
            } catch (e) {}
        }
    };

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', () => GOSChatbot.init());
    } else {
        GOSChatbot.init();
    }
})();
</script>

    <!-- Bootstrap 5.3 JS Bundle (self-hosted) -->
    <script src="https://mandalinbahce.shop/garantiliotoservis-frontend/js/bootstrap.bundle.min.js" defer></script>

    <!-- Custom JS -->
    <script src="https://mandalinbahce.shop/garantiliotoservis-frontend/js/main.js" defer></script>
    <script src="https://mandalinbahce.shop/garantiliotoservis-frontend/js/cookie-consent.js" defer></script>

    
            <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    
    </body>

</html>
