/* OPTIVERA 360° mağaza turu (optivera/tur.html). Sahne ekranı doldurur;
   araçlar sahnenin üstünde, okunurluk için koyu ve opak yüzeylerde. */
.tur-sayfa{ background: var(--tas) }
.tur-sayfa .ust{ position: relative }
.tur-sahne{
  position: relative; overflow: hidden; isolation: isolate;
  height: calc(100svh - var(--ust-h, 76px)); min-height: 460px;
  background: #E9EEF4; touch-action: none; user-select: none; -webkit-user-select: none;
}
.tur-tuval{ position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; outline: none }
.tur-tuval:active{ cursor: grabbing }
.tur-yukleniyor{
  position: absolute; inset: 0; display: grid; place-items: center; z-index: 5;
  background: var(--tas); color: var(--yazi-2); font-family: var(--font-marka); font-size: 15px; letter-spacing: .04em;
}

/* ortak yüzey */
.tur-baslik, .tur-arac, .tur-durak, .tur-harita-kutu, .tur-panel, .tur-yedek{
  background: rgba(7,13,31,.9); color: var(--yazi);
  box-shadow: inset 0 0 0 1px rgba(233,207,138,.22), 0 10px 30px -12px rgba(0,0,0,.55);
}

/* konsept adı */
.tur-baslik{
  position: absolute; z-index: 3; top: 16px; left: 16px; max-width: min(440px, calc(100% - 200px));
  padding: 12px 16px 13px; border-radius: 14px;
}
.tur-ad{ font-family: var(--font-baslik); font-weight: 600; font-size: clamp(19px, 1.7vw, 24px); letter-spacing: .04em; color: var(--mine); line-height: 1.15 }
.tur-alt{ margin-top: 4px; font-size: 13.5px; line-height: 1.4; color: var(--yazi-2) }

/* sağ üst araçlar */
.tur-araclar{ position: absolute; z-index: 3; top: 16px; right: 16px; display: flex; gap: 8px }
.tur-arac{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-width: 44px; height: 44px; padding: 0 12px; border: 0; border-radius: 12px; cursor: pointer;
  font: 600 14px var(--font-marka); color: var(--yazi);
  transition: background-color 180ms ease, box-shadow 180ms ease, transform 160ms var(--ease-out);
}
.tur-arac svg{ width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round }
.tur-arac:active{ transform: scale(.96) }
.tur-sayi{
  min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; display: inline-grid; place-items: center;
  background: var(--altin); color: #1B1405; font: 700 12px var(--font-marka); font-variant-numeric: tabular-nums;
}

/* bilgi noktaları */
.tur-noktalar{ position: absolute; inset: 0; z-index: 2; pointer-events: none }
.tur-nokta{
  position: absolute; left: 0; top: 0; margin: -22px 0 0 -22px; width: 44px; height: 44px;
  display: grid; place-items: center; border: 0; padding: 0; border-radius: 50%; cursor: pointer; pointer-events: auto;
  background: transparent;
}
.tur-nokta svg{
  width: 30px; height: 30px; padding: 6px; border-radius: 50%; box-sizing: border-box;
  fill: none; stroke: #1B1405; stroke-width: 2.4; stroke-linecap: round;
  background: var(--altin-acik); box-shadow: 0 0 0 5px rgba(233,207,138,.35), 0 6px 16px -4px rgba(0,0,0,.5);
  transition: transform 200ms var(--ease-out), box-shadow 200ms ease;
}
.tur-nokta:focus-visible{ outline: none }
.tur-nokta:focus-visible svg{ box-shadow: 0 0 0 3px var(--tas), 0 0 0 6px var(--altin-acik) }
@media (hover: hover) and (pointer: fine){
  .tur-arac:hover, .tur-durak:hover{ background: rgba(17,29,61,.96); box-shadow: inset 0 0 0 1px var(--altin), 0 10px 30px -12px rgba(0,0,0,.55) }
  .tur-nokta:hover svg{ transform: scale(1.12); box-shadow: 0 0 0 7px rgba(233,207,138,.45), 0 6px 16px -4px rgba(0,0,0,.5) }
}
@media (prefers-reduced-motion: no-preference){
  .tur-nokta svg{ animation: tur-nabiz 2.8s var(--ease-out) infinite }
  @keyframes tur-nabiz{ 0%, 70%, 100%{ box-shadow: 0 0 0 5px rgba(233,207,138,.35), 0 6px 16px -4px rgba(0,0,0,.5) } 35%{ box-shadow: 0 0 0 9px rgba(233,207,138,.12), 0 6px 16px -4px rgba(0,0,0,.5) } }
}

/* duraklar */
.tur-duraklar-kutu{
  position: absolute; z-index: 3; left: 16px; right: 216px; bottom: 16px;
  display: flex; justify-content: center; pointer-events: none;
}
.tur-duraklar{
  display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 4px; max-width: 100%; pointer-events: auto;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 12px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 12px), transparent);
}
.tur-duraklar::-webkit-scrollbar{ display: none }
.tur-durak{
  flex: none; display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px 0 8px;
  border: 0; border-radius: 999px; cursor: pointer; white-space: nowrap;
  font: 600 14px var(--font-marka); color: var(--yazi);
  transition: background-color 180ms ease, box-shadow 180ms ease, color 180ms ease;
}
.tur-durak-no{
  width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  font: 700 12px var(--font-marka); font-variant-numeric: tabular-nums; color: var(--altin-acik);
  box-shadow: inset 0 0 0 1px rgba(233,207,138,.45);
}
.tur-durak.aktif{ background: var(--altin); color: #1B1405; box-shadow: 0 10px 30px -12px rgba(0,0,0,.55) }
.tur-durak.aktif .tur-durak-no{ color: #1B1405; box-shadow: inset 0 0 0 1px rgba(27,20,5,.5) }

/* kat planı */
.tur-harita-kutu{ position: absolute; z-index: 3; right: 16px; bottom: 16px; width: 184px; padding: 8px; border-radius: 14px }
.tur-harita-dugme{
  display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 32px; padding: 0 4px;
  background: none; border: 0; cursor: pointer; font: 600 12.5px var(--font-marka); letter-spacing: .06em; color: var(--yazi-2);
}
.tur-harita-dugme::after{ content: ""; width: 8px; height: 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform 200ms var(--ease-out) }
.tur-harita-kutu.kapali .tur-harita-dugme::after{ transform: rotate(-135deg) translateY(-2px) }
.tur-harita-kutu.kapali .tur-harita{ display: none }
.tur-harita{ display: block; width: 100%; height: auto; margin-top: 4px }
.tur-harita .oda{ fill: rgba(244,239,228,.06); stroke: rgba(233,207,138,.5); stroke-width: 6 }
.tur-harita .cephe{ stroke: #9FD4F2; stroke-width: 10; stroke-linecap: round }
.tur-harita .mobilya rect{ fill: rgba(244,239,228,.22) }
.tur-harita .mobilya rect.cam{ fill: rgba(159,212,242,.45) }
.tur-harita .duraklar circle{ fill: var(--tas); stroke: var(--altin-acik); stroke-width: 6; cursor: pointer }
.tur-harita .duraklar circle.aktif{ fill: var(--altin-acik) }
.tur-harita .koni{ fill: rgba(233,207,138,.28) }
.tur-harita .ben{ fill: var(--altin); stroke: var(--tas); stroke-width: 6 }
.tur-harita .giris{ font: 600 64px var(--font-marka); fill: #9FD4F2; text-anchor: middle }

/* ürün kartı / liste / yardım */
.tur-panel{
  position: absolute; z-index: 4; top: 16px; right: 16px; width: min(380px, calc(100% - 32px)); max-height: calc(100% - 32px);
  border-radius: 18px; padding: 18px 20px 22px; overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; transform: translateX(16px); transition: opacity 220ms ease, transform 320ms var(--ease-out);
}
.tur-panel.acik{ opacity: 1; transform: none }
.tur-panel-ust{ display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px }
.tur-panel h2{ font-family: var(--font-baslik); font-weight: 600; font-size: 21px; letter-spacing: .03em; color: var(--mine); line-height: 1.2; padding-top: 8px }
.tur-panel .tur-arac{ flex: none; background: rgba(244,239,228,.06) }
.tur-ozellik{ display: grid; gap: 12px; margin: 0 }
.tur-ozellik dt{ font: 600 12px var(--font-marka); letter-spacing: .12em; text-transform: uppercase; color: var(--altin-acik) }
.tur-ozellik dd{ margin: 3px 0 0; font-size: 15px; color: var(--yazi); font-variant-numeric: tabular-nums }
.tur-ozellik small{ display: block; margin-top: 2px; font-size: 12.5px; color: var(--yazi-3) }
.tur-not{ margin-top: 14px; font-size: 14.5px; line-height: 1.55; color: var(--yazi-2); max-width: 60ch }
.tur-panel .dugme-ana{ margin-top: 18px; width: 100%; justify-content: center }
.tur-liste{ list-style: none; margin: 0; padding: 0; display: grid; gap: 8px }
.tur-liste li{
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px;
  background: rgba(244,239,228,.05); font-size: 14.5px;
}
.tur-adet{ display: inline-flex; align-items: center; gap: 4px; flex: none }
.tur-adet b{ min-width: 24px; text-align: center; font: 700 15px var(--font-marka); font-variant-numeric: tabular-nums }
.tur-adet button{
  width: 36px; height: 36px; border: 0; border-radius: 10px; cursor: pointer;
  background: rgba(233,207,138,.14); color: var(--altin-acik); font: 600 18px var(--font-marka);
}
.tur-adet button:focus-visible, .tur-durak:focus-visible, .tur-arac:focus-visible, .tur-harita-dugme:focus-visible{ outline: 2px solid var(--altin-acik); outline-offset: 2px }
.tur-yardim{ margin: 0; padding: 0 0 0 18px; display: grid; gap: 10px; font-size: 14.5px; line-height: 1.5; color: var(--yazi-2) }
.tur-yardim li::marker{ color: var(--altin) }

/* konsept seçici */
.tur-konsept-liste{ list-style: none; margin: 0; padding: 0; display: grid; gap: 6px }
.tur-konsept-liste a{
  display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 52px; padding: 8px 10px; border-radius: 12px;
  color: var(--yazi); text-decoration: none; background: rgba(244,239,228,.04);
}
.tur-k-no{ width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 700 13px var(--font-marka); font-variant-numeric: tabular-nums; color: var(--altin-acik); box-shadow: inset 0 0 0 1px rgba(233,207,138,.4) }
.tur-konsept-liste b{ display: block; font: 600 15px var(--font-marka) }
.tur-konsept-liste small{ display: block; margin-top: 1px; font-size: 13px; color: var(--yazi-3) }
.tur-konsept-liste a[aria-current]{ background: rgba(233,207,138,.14); box-shadow: inset 0 0 0 1px var(--altin) }
.tur-konsept-liste a:focus-visible{ outline: 2px solid var(--altin-acik); outline-offset: 2px }
@media (hover: hover) and (pointer: fine){ .tur-konsept-liste a:hover{ background: rgba(233,207,138,.1) } }

/* WebGL yok */
.tur-yedek{ position: absolute; inset: 16px; z-index: 6; border-radius: 18px; padding: 24px; overflow-y: auto }
.tur-yedek ul{ margin: 16px 0; padding-left: 18px; display: grid; gap: 8px; color: var(--yazi-2) }

/* sahne altı */
.tur-alt-bilgi{
  max-width: 1100px; margin: 0 auto; padding: clamp(28px, 4vw, 48px) 16px clamp(40px, 5vw, 64px);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px;
}
.tur-alt-bilgi p{ max-width: 62ch; font-size: 14.5px; line-height: 1.6; color: var(--yazi-3) }

/* kart görseli üretimi (?kart=1): yalnız sahne */
.tur-kart .ust, .tur-kart .tur-alt-bilgi, .tur-kart .tur-baslik, .tur-kart .tur-araclar, .tur-kart .tur-noktalar,
.tur-kart .tur-harita-kutu, .tur-kart .tur-duraklar-kutu, .tur-kart .atla{ display: none !important }
.tur-kart .tur-sahne{ height: 100vh }

/* telefon */
@media (max-width: 760px){
  .tur-baslik{ top: 10px; left: 10px; max-width: calc(100% - 170px); padding: 8px 12px }
  .tur-ad{ font-size: 16px }
  .tur-alt{ display: none }
  .tur-araclar{ top: 10px; right: 10px; gap: 6px }
  .tur-liste-dugme span, .tur-konsept-dugme span{ display: none }
  .tur-duraklar-kutu{ left: 0; right: 0; bottom: 10px }
  .tur-duraklar{ padding: 4px 10px }
  .tur-harita-kutu{ top: auto; right: 10px; bottom: 66px; width: 150px; padding: 6px }
  .tur-panel{ top: auto; left: 0; right: 0; bottom: 0; width: auto; max-height: 72%; border-radius: 20px 20px 0 0; transform: translateY(24px);
    padding-bottom: calc(22px + env(safe-area-inset-bottom)) }
}
