{"id":1170,"date":"2026-04-13T22:42:59","date_gmt":"2026-04-13T22:42:59","guid":{"rendered":"https:\/\/vipofturkey.com\/tr\/?page_id=1170"},"modified":"2026-04-13T22:44:11","modified_gmt":"2026-04-13T22:44:11","slug":"midibus-private","status":"publish","type":"page","link":"https:\/\/vipofturkey.com\/tr\/midibus-private\/","title":{"rendered":"Midibus Private"},"content":{"rendered":"<style>.elementor-1170 .elementor-element.elementor-element-57b1a9d6{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;z-index:0;}.elementor-1170 .elementor-element.elementor-element-57b1a9d6 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1170 .elementor-element.elementor-element-1478e199:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/vipofturkey.com\/tr\/wp-content\/uploads\/2026\/03\/may3.jpg\");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated >  .elementor-background-overlay{background-color:#000000;opacity:0.65;}.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated, .elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated > .elementor-background-overlay, .elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-background-slideshow{border-radius:24px 24px 24px 24px;}.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:0px 40px 0px 40px;--e-column-margin-right:40px;--e-column-margin-left:40px;padding:12% 0% 12% 0%;}.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1170 .elementor-element.elementor-element-1478e199{z-index:0;}.elementor-1170 .elementor-element.elementor-element-3f8d5d86 > .elementor-container{max-width:1280px;}.elementor-1170 .elementor-element.elementor-element-3f8d5d86{overflow:hidden;}.elementor-1170 .elementor-element.elementor-element-7eb0a584{text-align:center;margin:0% 25% calc(var(--kit-widget-spacing, 0px) + 0%) 25%;}.elementor-1170 .elementor-element.elementor-element-7eb0a584 .elementor-heading-title{font-family:\"Syne\", Sans-serif;font-size:40px;font-weight:600;line-height:1.1em;color:var( --e-global-color-bc4180d );}.elementor-1170 .elementor-element.elementor-element-c399af4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:-65px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1170 .elementor-element.elementor-element-263d66f{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-1170 .elementor-element.elementor-element-85504b0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-1170 .elementor-element.elementor-element-7ace0c6{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-1170 .elementor-element.elementor-element-85504b0{--width:33.3333%;}.elementor-1170 .elementor-element.elementor-element-7ace0c6{--width:66.6666%;}}@media(max-width:1024px){.elementor-1170 .elementor-element.elementor-element-1478e199:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;}.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated, .elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated > .elementor-background-overlay, .elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-background-slideshow{border-radius:18px 18px 18px 18px;}.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated{margin:0px 10px 0px 10px;--e-column-margin-right:10px;--e-column-margin-left:10px;padding:18% 0% 18% 0%;}.elementor-1170 .elementor-element.elementor-element-3f8d5d86{padding:0px 15px 0px 15px;}.elementor-1170 .elementor-element.elementor-element-7eb0a584 .elementor-heading-title{font-size:48px;}.elementor-1170 .elementor-element.elementor-element-7eb0a584{margin:0% 10% calc(var(--kit-widget-spacing, 0px) + 0%) 10%;}}@media(max-width:767px){.elementor-1170 .elementor-element.elementor-element-1478e199 > .elementor-element-populated{margin:0px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;padding:28% 0% 28% 0%;}.elementor-1170 .elementor-element.elementor-element-3f8d5d86{padding:0px 10px 0px 10px;}.elementor-1170 .elementor-element.elementor-element-7eb0a584 .elementor-heading-title{font-size:20px;}}<\/style>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1170\" class=\"elementor elementor-1170\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-57b1a9d6 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"57b1a9d6\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1478e199\" data-id=\"1478e199\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-3f8d5d86 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3f8d5d86\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-5bdefb68\" data-id=\"5bdefb68\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7eb0a584 elementor-widget elementor-widget-heading\" data-id=\"7eb0a584\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Midibus Private<\/h1>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-c399af4 e-con-full e-flex e-con e-parent\" data-id=\"c399af4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a8abaa elementor-widget elementor-widget-html\" data-id=\"5a8abaa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/line-awesome\/1.3.0\/line-awesome\/css\/line-awesome.min.css\"\/>\r\n\r\n<section class=\"vip-hero\">\r\n  <div class=\"vip-search-card\">\r\n\r\n    <!-- NEREDEN -->\r\n    <div class=\"vip-field\">\r\n      <div class=\"vip-ico is-green\"><i class=\"las la-map-marker\"><\/i><\/div>\r\n      <div class=\"vip-field-body\">\r\n\r\n        <div class=\"vip-head\">\r\n          <div class=\"vip-title\">Nereden<\/div>\r\n          <div class=\"vip-desc\">Nereden A\u00e7\u0131klama<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"vip-input-wrap\">\r\n          <input id=\"vipFrom\" class=\"vip-input\" type=\"text\" placeholder=\"Se\u00e7iniz\" autocomplete=\"off\">\r\n          <div id=\"vipFromList\" class=\"vip-dd\" role=\"listbox\"><\/div>\r\n        <\/div>\r\n\r\n        <input type=\"hidden\" id=\"vipFromPlaceId\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- NEREYE -->\r\n    <div class=\"vip-field\">\r\n      <div class=\"vip-ico is-gold\"><i class=\"las la-map-pin\"><\/i><\/div>\r\n      <div class=\"vip-field-body\">\r\n\r\n        <div class=\"vip-head\">\r\n          <div class=\"vip-title\">Nereye<\/div>\r\n          <div class=\"vip-desc\">Nereye A\u00e7\u0131klama<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"vip-input-wrap\">\r\n          <input id=\"vipTo\" class=\"vip-input\" type=\"text\" placeholder=\"Se\u00e7iniz\" autocomplete=\"off\">\r\n          <div id=\"vipToList\" class=\"vip-dd\" role=\"listbox\"><\/div>\r\n        <\/div>\r\n\r\n        <input type=\"hidden\" id=\"vipToPlaceId\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- TAR\u0130H -->\r\n    <div class=\"vip-field vip-date-field\" onclick=\"\r\n      const el=document.getElementById('vipDateTime');\r\n      if(el.showPicker) el.showPicker();\r\n      else el.focus();\r\n    \">\r\n      <div class=\"vip-date-content\">\r\n        <div class=\"vip-date-ico\"><i class=\"las la-calendar\"><\/i><\/div>\r\n        <div class=\"vip-date-text\">\r\n          <div class=\"vip-date-title\">Tarih Saat<\/div>\r\n          <div class=\"vip-date-placeholder\" id=\"vipDateLabel\">Tarih se\u00e7in<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <input id=\"vipDateTime\" type=\"datetime-local\" class=\"vip-date-hidden\">\r\n    <\/div>\r\n\r\n    <!-- G\u0130D\u0130\u015e D\u00d6N\u00dc\u015e -->\r\n    <div class=\"vip-field vip-roundtrip\">\r\n      <div class=\"vip-field-body\">\r\n        <div class=\"vip-label\">Gidi\u015f D\u00f6n\u00fc\u015f<\/div>\r\n        <label class=\"vip-switch\">\r\n          <input type=\"checkbox\" id=\"vipRoundTrip\">\r\n          <span class=\"vip-slider\"><\/span>\r\n        <\/label>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- K\u0130\u015e\u0130 -->\r\n    <div class=\"vip-field\">\r\n      <div class=\"vip-field-body\">\r\n        <label class=\"vip-label\">Ka\u00e7 Ki\u015fi<\/label>\r\n        <select id=\"vipPax\" class=\"vip-select\">\r\n          <option>1 Ki\u015fi<\/option><option>2 Ki\u015fi<\/option><option>3 Ki\u015fi<\/option>\r\n          <option>4 Ki\u015fi<\/option><option>5 Ki\u015fi<\/option><option>6 Ki\u015fi<\/option>\r\n        <\/select>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- BUTON -->\r\n    <div class=\"vip-search-btn-wrap\">\r\n      <button class=\"vip-search-btn\" type=\"button\" id=\"vipSearchBtn\">\r\n        <i class=\"las la-search\"><\/i> Ara\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <!-- Mesafe -->\r\n    <div class=\"vip-google-attrib vip-distance-attrib\" id=\"vipDistanceLabel\">Mesafe: \u2014<\/div>\r\n    <input type=\"hidden\" id=\"vipDistanceKm\" value=\"\">\r\n\r\n    <div class=\"vip-google-attrib vip-powered-attrib\">Powered by Google<\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n:root{\r\n  --vip-gold:#fbb000;\r\n  --vip-gold-dark:#d79b00;\r\n  --vip-green:#22c55e;\r\n  --vip-text:#111;\r\n  --vip-muted:#666;\r\n  --vip-border:#ececec;\r\n}\r\n.vip-hero{ padding:40px 20px 90px; }\r\n.vip-search-card{\r\n  max-width:1350px;\r\n  margin:auto;\r\n  background:#fff;\r\n  border-radius:22px;\r\n  box-shadow:0 30px 70px rgba(0,0,0,.15);\r\n  padding:22px 22px 70px;\r\n  display:grid;\r\n  grid-template-columns: 1.2fr 1.2fr 1fr .8fr .8fr;\r\n  gap:18px;\r\n  position:relative;\r\n}\r\n.vip-field{\r\n  border:1px solid var(--vip-border);\r\n  border-radius:14px;\r\n  padding:16px;\r\n  display:flex;\r\n  gap:14px;\r\n  align-items:center;\r\n  min-height:86px;\r\n  background:#fff;\r\n}\r\n.vip-ico{\r\n  width:48px;height:48px;\r\n  border-radius:14px;\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-size:24px;\r\n}\r\n.is-green{ background:rgba(34,197,94,.15); color:var(--vip-green); }\r\n.is-gold{ background:rgba(251,176,0,.15); color:var(--vip-gold); }\r\n.vip-field-body{ flex:1; display:flex; flex-direction:column; gap:10px; }\r\n.vip-head{ display:flex; flex-direction:column; gap:2px; }\r\n.vip-title{ font-weight:900; font-size:14px; color:#333; line-height:1.1; }\r\n.vip-desc{ font-size:12px; color:#9a9a9a; line-height:1.1; }\r\n.vip-label{ font-weight:800; font-size:14px; color:var(--vip-muted); }\r\n.vip-input,.vip-select{\r\n  border:0; outline:0;\r\n  font-size:15px;\r\n  color:var(--vip-text);\r\n  background:transparent;\r\n  width:100%;\r\n}\r\n.vip-input-wrap{ position:relative; }\r\n\r\n.vip-dd{\r\n  position:absolute;\r\n  left:0; right:0;\r\n  top:calc(100% + 10px);\r\n  background:#fff;\r\n  border:1px solid #eee;\r\n  border-radius:14px;\r\n  box-shadow:0 25px 60px rgba(0,0,0,0.12);\r\n  overflow:hidden;\r\n  display:none;\r\n  z-index:999999;\r\n  max-height:320px;\r\n}\r\n.vip-dd.open{ display:block; }\r\n\r\n.vip-dd-item{\r\n  display:flex; gap:12px; align-items:flex-start;\r\n  padding:12px 14px;\r\n  cursor:pointer;\r\n  transition:.15s;\r\n}\r\n.vip-dd-item:hover,\r\n.vip-dd-item.active{ background:#f7f7f7; }\r\n\r\n.vip-dd-ico{\r\n  width:34px;height:34px;border-radius:10px;\r\n  display:flex;align-items:center;justify-content:center;\r\n  background:#f3f3f3; color:#555; font-size:18px;\r\n  flex:0 0 auto;\r\n}\r\n.vip-dd-title{ font-weight:800; font-size:14px; color:#111; line-height:1.2; }\r\n.vip-dd-sub{ font-size:12px; color:#777; margin-top:2px; }\r\n\r\n.vip-switch{ position:relative; width:60px;height:32px; display:inline-block; }\r\n.vip-switch input{ display:none; }\r\n.vip-slider{ position:absolute; inset:0; background:#ddd; border-radius:30px; }\r\n.vip-slider:before{\r\n  content:\"\"; position:absolute; width:24px;height:24px; left:4px; top:4px;\r\n  background:#fff; border-radius:50%; transition:.3s;\r\n}\r\n.vip-switch input:checked + .vip-slider{ background:var(--vip-gold); }\r\n.vip-switch input:checked + .vip-slider:before{ transform:translateX(28px); }\r\n\r\n.vip-search-btn-wrap{\r\n  position:absolute;\r\n  left:50%;\r\n  bottom:-25px;\r\n  transform:translateX(-50%);\r\n  width:auto;\r\n}\r\n.vip-search-btn{\r\n  background:var(--vip-gold) !important;\r\n  color:#fff !important;\r\n  border:0 !important;\r\n  padding:16px 45px;\r\n  font-size:18px;\r\n  font-weight:900;\r\n  border-radius:12px;\r\n  cursor:pointer;\r\n  display:flex;\r\n  gap:10px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  box-shadow:0 18px 35px rgba(251,176,0,.3);\r\n  text-decoration:none !important;\r\n}\r\n.vip-search-btn:hover,\r\n.vip-search-btn:focus{\r\n  background:var(--vip-gold-dark) !important;\r\n  color:#fff !important;\r\n  outline:none !important;\r\n}\r\n\r\n.vip-google-attrib{\r\n  position:absolute;\r\n  right:18px;\r\n  font-size:11px;\r\n  color:#999;\r\n}\r\n.vip-distance-attrib{ bottom:32px; }\r\n.vip-powered-attrib{ bottom:14px; }\r\n\r\n.vip-date-field{\r\n  cursor:pointer;\r\n  position:relative;\r\n  padding:22px;\r\n  min-height:95px;\r\n}\r\n.vip-date-content{ display:flex; align-items:center; gap:16px; }\r\n.vip-date-ico{\r\n  width:52px;height:52px;border-radius:16px;\r\n  background:#f3f3f3;\r\n  display:flex;align-items:center;justify-content:center;\r\n  font-size:26px;color:#777;\r\n}\r\n.vip-date-title{ font-weight:900; font-size:16px; color:#333; }\r\n.vip-date-placeholder{ font-size:14px; color:#999; margin-top:4px; }\r\n.vip-date-hidden{ position:absolute; inset:0; opacity:0; pointer-events:auto; }\r\n\r\n@media(max-width:992px){\r\n  .vip-search-card{\r\n    grid-template-columns:1fr;\r\n    padding:22px 18px 86px;\r\n    gap:16px;\r\n  }\r\n  .vip-field{ min-height:90px; }\r\n  .vip-search-btn-wrap{\r\n    left:18px; right:18px; bottom:18px;\r\n    transform:none;\r\n  }\r\n  .vip-search-btn{ width:100% !important; padding:18px 20px; }\r\n  .vip-distance-attrib{ right:18px; bottom:62px; }\r\n  .vip-powered-attrib{ right:18px; bottom:44px; }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n\/* =========================\r\n   VIP PLACES + DISTANCE\r\n========================= *\/\r\nlet vipAutoService, vipPlacesService, vipSessionToken;\r\nlet vipTRBounds;\r\nlet vipDistanceService;\r\n\r\nfunction vipDebounce(fn, wait=220){\r\n  let t; return (...args)=>{ clearTimeout(t); t=setTimeout(()=>fn(...args), wait); };\r\n}\r\n\r\nfunction vipCloseAll(){\r\n  document.querySelectorAll('.vip-dd').forEach(el=>el.classList.remove('open'));\r\n  document.querySelectorAll('.vip-dd-item').forEach(el=>el.classList.remove('active'));\r\n}\r\n\r\nfunction vipEsc(str){\r\n  return String(str||\"\").replace(\/[&<>\"']\/g, m => ({\r\n    \"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#039;\"\r\n  }[m]));\r\n}\r\n\r\nfunction vipRenderList(listEl, predictions, onPick){\r\n  listEl.innerHTML = \"\";\r\n  if(!predictions || !predictions.length){\r\n    listEl.classList.remove(\"open\");\r\n    return;\r\n  }\r\n\r\n  predictions.forEach((p, idx)=>{\r\n    const main = p.structured_formatting?.main_text || p.description || p.name || \"\";\r\n    const sub  = p.structured_formatting?.secondary_text || p.formatted_address || \"\";\r\n\r\n    const row = document.createElement(\"div\");\r\n    row.className = \"vip-dd-item\";\r\n    row.setAttribute(\"role\",\"option\");\r\n    row.dataset.placeId = p.place_id;\r\n    row.dataset.idx = String(idx);\r\n\r\n    const ico = (p.__vipKind === \"est\" || p.__vipKind === \"text\") ? \"la-store\" : \"la-map-marker-alt\";\r\n\r\n    row.innerHTML = `\r\n      <div class=\"vip-dd-ico\"><i class=\"las ${ico}\"><\/i><\/div>\r\n      <div>\r\n        <div class=\"vip-dd-title\">${vipEsc(main)}<\/div>\r\n        <div class=\"vip-dd-sub\">${vipEsc(sub)}<\/div>\r\n      <\/div>\r\n    `;\r\n\r\n    const pick = (e)=>{ e.preventDefault(); onPick(p); };\r\n    row.addEventListener(\"pointerdown\", pick, { passive:false });\r\n    row.addEventListener(\"mousedown\", pick);\r\n\r\n    listEl.appendChild(row);\r\n  });\r\n\r\n  listEl.classList.add(\"open\");\r\n}\r\n\r\nfunction vipFetchPredictions(query, cb){\r\n  const baseReq = {\r\n    input: query,\r\n    componentRestrictions: { country: \"tr\" },\r\n    sessionToken: vipSessionToken,\r\n    locationBias: vipTRBounds,\r\n    strictBounds: false\r\n  };\r\n\r\n  let est = [], geo = [];\r\n  let returned = 0;\r\n\r\n  function finishWithMerged() {\r\n    const map = new Map();\r\n    [...est, ...geo].forEach(p => map.set(p.place_id, p));\r\n    let merged = Array.from(map.values());\r\n\r\n    merged.sort((a,b)=>{\r\n      const aEst = a.__vipKind === \"est\" ? 1 : 0;\r\n      const bEst = b.__vipKind === \"est\" ? 1 : 0;\r\n      return bEst - aEst;\r\n    });\r\n\r\n    if (merged.length < 6) {\r\n      vipFallbackTextSearch(query, merged, cb);\r\n      return;\r\n    }\r\n    cb(merged);\r\n  }\r\n\r\n  function done(){\r\n    returned++;\r\n    if(returned < 2) return;\r\n    finishWithMerged();\r\n  }\r\n\r\n  vipAutoService.getPlacePredictions(\r\n    { ...baseReq, types: [\"establishment\"] },\r\n    (predictions, status)=>{\r\n      est = (status === google.maps.places.PlacesServiceStatus.OK && predictions) ? predictions : [];\r\n      est.forEach(p => p.__vipKind = \"est\");\r\n      done();\r\n    }\r\n  );\r\n\r\n  vipAutoService.getPlacePredictions(\r\n    { ...baseReq, types: [\"geocode\"] },\r\n    (predictions, status)=>{\r\n      geo = (status === google.maps.places.PlacesServiceStatus.OK && predictions) ? predictions : [];\r\n      geo.forEach(p => p.__vipKind = \"geo\");\r\n      done();\r\n    }\r\n  );\r\n}\r\n\r\nfunction vipFallbackTextSearch(query, currentList, cb){\r\n  vipPlacesService.textSearch(\r\n    { query, bounds: vipTRBounds },\r\n    (results, status) => {\r\n      if (status !== google.maps.places.PlacesServiceStatus.OK || !results) {\r\n        cb(currentList);\r\n        return;\r\n      }\r\n\r\n      const map = new Map();\r\n      currentList.forEach(p => map.set(p.place_id, p));\r\n\r\n      results.slice(0, 6).forEach(r => {\r\n        if (!r.place_id || map.has(r.place_id)) return;\r\n        map.set(r.place_id, {\r\n          place_id: r.place_id,\r\n          __vipKind: \"text\",\r\n          structured_formatting: {\r\n            main_text: r.name || \"\",\r\n            secondary_text: r.formatted_address || \"\"\r\n          },\r\n          description: (r.name || \"\") + \" \" + (r.formatted_address || \"\")\r\n        });\r\n      });\r\n\r\n      cb(Array.from(map.values()));\r\n    }\r\n  );\r\n}\r\n\r\n\/* \u2705 RoundTrip\u2019e g\u00f6re UI *\/\r\nfunction vipSetDistanceUI(baseKm){\r\n  const label = document.getElementById(\"vipDistanceLabel\");\r\n  const hidden = document.getElementById(\"vipDistanceKm\");\r\n  const isRoundTrip = document.getElementById(\"vipRoundTrip\")?.checked;\r\n\r\n  const n = parseFloat(String(baseKm ?? \"\").replace(\",\", \".\"));\r\n  if (!Number.isFinite(n) || n <= 0){\r\n    if(label) label.innerText = \"Mesafe: \u2014\";\r\n    if(hidden) hidden.value = \"\";\r\n    return;\r\n  }\r\n\r\n  const finalKm = isRoundTrip ? (n * 2) : n;\r\n  const tripText = isRoundTrip ? \" (Gidi\u015f - D\u00f6n\u00fc\u015f)\" : \"\";\r\n\r\n  if(label) label.innerText = `Mesafe: ${finalKm.toFixed(1)} km${tripText}`;\r\n  if(hidden) hidden.value = finalKm.toFixed(3);\r\n\r\n  try{ localStorage.setItem(\"vip_km\", String(finalKm)); }catch(e){}\r\n}\r\n\r\n\/* ===== Distance Matrix ===== *\/\r\nfunction vipCalcDistanceKm(fromPlaceId, toPlaceId, onDone){\r\n  if(!fromPlaceId || !toPlaceId || !vipDistanceService){\r\n    onDone(null, \"NO_SERVICE\");\r\n    return;\r\n  }\r\n\r\n  const label = document.getElementById(\"vipDistanceLabel\");\r\n  if(label) label.innerText = \"Mesafe: hesaplan\u0131yor\u2026\";\r\n\r\n  vipDistanceService.getDistanceMatrix(\r\n    {\r\n      origins: [{ placeId: fromPlaceId }],\r\n      destinations: [{ placeId: toPlaceId }],\r\n      travelMode: google.maps.TravelMode.DRIVING,\r\n      unitSystem: google.maps.UnitSystem.METRIC,\r\n      region: \"TR\"\r\n    },\r\n    (response, status) => {\r\n      console.log(\"[VIP DistanceMatrix] status:\", status, response);\r\n\r\n      if(status !== \"OK\"){\r\n        if(label) label.innerText = \"Mesafe: hesaplanamad\u0131 (\" + status + \")\";\r\n        onDone(null, status);\r\n        return;\r\n      }\r\n\r\n      const el = response?.rows?.[0]?.elements?.[0];\r\n      const elStatus = el?.status;\r\n\r\n      if(!el || elStatus !== \"OK\"){\r\n        if(label) label.innerText = \"Mesafe: rota bulunamad\u0131 (\" + (elStatus || \"UNKNOWN\") + \")\";\r\n        onDone(null, elStatus || \"ELEMENT_BAD\");\r\n        return;\r\n      }\r\n\r\n      const baseKm = el.distance.value \/ 1000;\r\n\r\n      \/\/ ekranda roundtrip etkisini uygula\r\n      vipSetDistanceUI(baseKm);\r\n\r\n      \/\/ callback\u2019e ham km g\u00f6nder\r\n      onDone(baseKm, \"OK\");\r\n    }\r\n  );\r\n}\r\n\r\n\/* ===== Place Details ===== *\/\r\nfunction vipPickPlace(placeId, cb){\r\n  vipPlacesService.getDetails({\r\n    placeId,\r\n    fields: [\"place_id\",\"formatted_address\",\"name\",\"geometry\"],\r\n    sessionToken: vipSessionToken\r\n  }, (place, status)=>{\r\n    if(status !== google.maps.places.PlacesServiceStatus.OK){ cb(null); return; }\r\n    cb(place);\r\n  });\r\n}\r\n\r\n\/* ===== Input Bind ===== *\/\r\nfunction vipBindInput(inputEl, listEl, hiddenPlaceIdEl){\r\n  function resetIfManual(){\r\n    hiddenPlaceIdEl.value = \"\";\r\n    const label = document.getElementById(\"vipDistanceLabel\");\r\n    const hidden = document.getElementById(\"vipDistanceKm\");\r\n    if(label) label.innerText = \"Mesafe: \u2014\";\r\n    if(hidden) hidden.value = \"\";\r\n  }\r\n\r\n  const doSearch = vipDebounce(()=>{\r\n    const q = inputEl.value.trim();\r\n    if(q.length < 2){ listEl.classList.remove(\"open\"); return; }\r\n\r\n    vipFetchPredictions(q, (preds)=>{\r\n      vipRenderList(listEl, preds, (p)=>{\r\n        vipPickPlace(p.place_id, (place)=>{\r\n          if(!place) return;\r\n\r\n          const nice = place.name\r\n            ? `${place.name} \u2014 ${place.formatted_address || \"\"}`.replace(\/\\s+\u2014\\s*$\/, \"\")\r\n            : (place.formatted_address || p.description || \"\");\r\n\r\n          inputEl.value = nice;\r\n          hiddenPlaceIdEl.value = place.place_id || p.place_id;\r\n\r\n          vipCloseAll();\r\n          vipSessionToken = new google.maps.places.AutocompleteSessionToken();\r\n\r\n          const fromId = document.getElementById(\"vipFromPlaceId\").value.trim();\r\n          const toId   = document.getElementById(\"vipToPlaceId\").value.trim();\r\n          if(fromId && toId){\r\n            vipCalcDistanceKm(fromId, toId, ()=>{});\r\n          }\r\n        });\r\n      });\r\n    });\r\n  }, 220);\r\n\r\n  inputEl.addEventListener(\"input\", ()=>{\r\n    resetIfManual();\r\n    vipCloseAll();\r\n    doSearch();\r\n  });\r\n\r\n  inputEl.addEventListener(\"focus\", ()=>{\r\n    if(inputEl.value.trim().length >= 2) doSearch();\r\n  });\r\n\r\n  inputEl.addEventListener(\"keydown\", (e)=>{\r\n    if(!listEl.classList.contains(\"open\")) return;\r\n    const items = Array.from(listEl.querySelectorAll(\".vip-dd-item\"));\r\n    if(!items.length) return;\r\n\r\n    let activeIndex = items.findIndex(it=>it.classList.contains(\"active\"));\r\n\r\n    if(e.key === \"ArrowDown\"){\r\n      e.preventDefault();\r\n      activeIndex = Math.min(activeIndex + 1, items.length - 1);\r\n      items.forEach(it=>it.classList.remove(\"active\"));\r\n      items[activeIndex].classList.add(\"active\");\r\n      items[activeIndex].scrollIntoView({block:\"nearest\"});\r\n    } else if(e.key === \"ArrowUp\"){\r\n      e.preventDefault();\r\n      activeIndex = Math.max(activeIndex - 1, 0);\r\n      items.forEach(it=>it.classList.remove(\"active\"));\r\n      items[activeIndex].classList.add(\"active\");\r\n      items[activeIndex].scrollIntoView({block:\"nearest\"});\r\n    } else if(e.key === \"Enter\"){\r\n      if(activeIndex >= 0){\r\n        e.preventDefault();\r\n        items[activeIndex].dispatchEvent(new MouseEvent(\"mousedown\", { bubbles:true }));\r\n      }\r\n    } else if(e.key === \"Escape\"){\r\n      vipCloseAll();\r\n    }\r\n  });\r\n}\r\n\r\n\/* ===== INIT ===== *\/\r\nfunction initVipPlacesCustom(){\r\n  vipAutoService   = new google.maps.places.AutocompleteService();\r\n  vipPlacesService = new google.maps.places.PlacesService(document.createElement(\"div\"));\r\n  vipSessionToken  = new google.maps.places.AutocompleteSessionToken();\r\n  vipDistanceService = new google.maps.DistanceMatrixService();\r\n\r\n  vipTRBounds = new google.maps.LatLngBounds(\r\n    new google.maps.LatLng(36.0, 26.0),\r\n    new google.maps.LatLng(42.2, 44.8)\r\n  );\r\n\r\n  vipBindInput(\r\n    document.getElementById(\"vipFrom\"),\r\n    document.getElementById(\"vipFromList\"),\r\n    document.getElementById(\"vipFromPlaceId\")\r\n  );\r\n\r\n  vipBindInput(\r\n    document.getElementById(\"vipTo\"),\r\n    document.getElementById(\"vipToList\"),\r\n    document.getElementById(\"vipToPlaceId\")\r\n  );\r\n\r\n  document.addEventListener(\"click\", (e)=>{\r\n    const inside = e.target.closest(\".vip-input-wrap\");\r\n    if(!inside) vipCloseAll();\r\n  });\r\n\r\n  document.getElementById(\"vipDateTime\").addEventListener(\"change\", function(){\r\n    const value = this.value;\r\n    if(!value) return;\r\n    const date = new Date(value);\r\n    const formatted = date.toLocaleString(\"tr-TR\", {\r\n      day:\"2-digit\", month:\"long\", year:\"numeric\",\r\n      hour:\"2-digit\", minute:\"2-digit\"\r\n    });\r\n    document.getElementById(\"vipDateLabel\").innerText = formatted;\r\n  });\r\n\r\n  \/\/ \u2705 roundtrip a\u00e7\/kapa yap\u0131nca mesafeyi an\u0131nda g\u00fcncelle\r\n  document.getElementById(\"vipRoundTrip\").addEventListener(\"change\", function(){\r\n    const fromId = document.getElementById(\"vipFromPlaceId\").value.trim();\r\n    const toId   = document.getElementById(\"vipToPlaceId\").value.trim();\r\n    if(fromId && toId){\r\n      vipCalcDistanceKm(fromId, toId, ()=>{});\r\n    }\r\n  });\r\n\r\n  document.getElementById(\"vipSearchBtn\").addEventListener(\"click\", ()=>{\r\n    const fromText = document.getElementById(\"vipFrom\").value.trim();\r\n    const toText   = document.getElementById(\"vipTo\").value.trim();\r\n\r\n    const fromId = document.getElementById(\"vipFromPlaceId\").value.trim();\r\n    const toId   = document.getElementById(\"vipToPlaceId\").value.trim();\r\n\r\n    if(!fromText || !toText){\r\n      alert(\"L\u00fctfen hem kalk\u0131\u015f hem var\u0131\u015f noktas\u0131n\u0131 se\u00e7in.\");\r\n      return;\r\n    }\r\n    if(!fromId || !toId){\r\n      alert(\"L\u00fctfen 'Nereden' ve 'Nereye' alanlar\u0131n\u0131 listeden bir sonu\u00e7 se\u00e7erek doldurun.\");\r\n      return;\r\n    }\r\n\r\n    const date = encodeURIComponent(document.getElementById(\"vipDateTime\").value);\r\n    const roundTrip = document.getElementById(\"vipRoundTrip\").checked ? \"1\" : \"0\";\r\n    const pax  = encodeURIComponent(document.getElementById(\"vipPax\").value);\r\n\r\n    vipCalcDistanceKm(fromId, toId, (baseKm, status)=>{\r\n      if(!baseKm){\r\n        alert(\"Mesafe hesaplanamad\u0131 (\" + status + \").\\nKonsolda [VIP DistanceMatrix] logunu kontrol et.\");\r\n        return;\r\n      }\r\n\r\n      \/\/ \u2705 gidi\u015f d\u00f6n\u00fc\u015fse 2 ile \u00e7arp\r\n      const finalKm = roundTrip === \"1\" ? (baseKm * 2) : baseKm;\r\n      const kmSafe = finalKm.toFixed(3);\r\n\r\n      const targetURL =\r\n        `https:\/\/vipofturkey.com\/tr\/arac-secimi\/?from=${encodeURIComponent(fromText)}&to=${encodeURIComponent(toText)}&date=${date}&roundtrip=${roundTrip}&pax=${pax}&km=${encodeURIComponent(kmSafe)}`;\r\n\r\n      window.location.href = targetURL;\r\n    });\r\n  });\r\n}\r\n\r\nwindow.initVipPlacesCustom = initVipPlacesCustom;\r\n<\/script>\r\n\r\n<script\r\n  src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyAZ005b4sv1Gz1mwoHFUIRvO1hYq67qhck&libraries=places&region=TR&language=tr&callback=initVipPlacesCustom\"\r\n  async defer>\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-263d66f e-flex e-con-boxed e-con e-parent\" data-id=\"263d66f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-85504b0 e-con-full e-flex e-con e-child\" data-id=\"85504b0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cfaa0cd elementor-widget elementor-widget-image\" data-id=\"cfaa0cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"495\" src=\"https:\/\/vipofturkey.com\/tr\/wp-content\/uploads\/2026\/04\/0thumb-ozel-arac-midibus.webp\" class=\"attachment-large size-large wp-image-1172\" alt=\"\" srcset=\"https:\/\/vipofturkey.com\/tr\/wp-content\/uploads\/2026\/04\/0thumb-ozel-arac-midibus.webp 1024w, https:\/\/vipofturkey.com\/tr\/wp-content\/uploads\/2026\/04\/0thumb-ozel-arac-midibus-300x186.webp 300w, https:\/\/vipofturkey.com\/tr\/wp-content\/uploads\/2026\/04\/0thumb-ozel-arac-midibus-768x476.webp 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ace0c6 e-con-full e-flex e-con e-child\" data-id=\"7ace0c6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b1e3e3 elementor-widget elementor-widget-text-editor\" data-id=\"8b1e3e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"65\" data-end=\"178\">Midibus Private, T\u00fcrkiye genelinde grup ta\u015f\u0131mac\u0131l\u0131\u011f\u0131 i\u00e7in konforlu, g\u00fcvenilir ve verimli bir ula\u015f\u0131m \u00e7\u00f6z\u00fcm\u00fc sunar.<\/p><p data-start=\"180\" data-end=\"373\">Havaliman\u0131 transferleri, kurumsal seyahatler, \u00f6zel turlar ve organizasyonlar i\u00e7in ideal olan bu hizmet; geni\u015f oturma alan\u0131, modern konfor \u00f6zellikleri ve profesyonel \u015fof\u00f6r hizmeti ile \u00f6ne \u00e7\u0131kar.<\/p><p data-start=\"375\" data-end=\"540\" data-is-last-node=\"\" data-is-only-node=\"\">Aileler, i\u015f gruplar\u0131 ve kalabal\u0131k misafir gruplar\u0131 i\u00e7in \u00f6zel olarak tasarlanan Midibus Private, her yolculukta ak\u0131c\u0131, g\u00fcvenli ve premium bir seyahat deneyimi sa\u011flar.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>Midibus Private Nereden Nereden A\u00e7\u0131klama Nereye Nereye A\u00e7\u0131klama Tarih Saat Tarih se\u00e7in Gidi\u015f D\u00f6n\u00fc\u015f Ka\u00e7 Ki\u015fi 1 Ki\u015fi2 Ki\u015fi3 Ki\u015fi4 Ki\u015fi5 Ki\u015fi6 Ki\u015fi Ara Mesafe: \u2014 Powered by Google Midibus Private, T\u00fcrkiye genelinde grup ta\u015f\u0131mac\u0131l\u0131\u011f\u0131 i\u00e7in konforlu, g\u00fcvenilir ve verimli bir ula\u015f\u0131m \u00e7\u00f6z\u00fcm\u00fc sunar. Havaliman\u0131 transferleri, kurumsal seyahatler, \u00f6zel turlar ve organizasyonlar i\u00e7in ideal olan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"class_list":["post-1170","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/pages\/1170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/comments?post=1170"}],"version-history":[{"count":4,"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/pages\/1170\/revisions"}],"predecessor-version":[{"id":1175,"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/pages\/1170\/revisions\/1175"}],"wp:attachment":[{"href":"https:\/\/vipofturkey.com\/tr\/wp-json\/wp\/v2\/media?parent=1170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}