/* ==========================================================================
   AYDER 2026 — EK STILLER
   --------------------------------------------------------------------------
   Prototipte karsiligi OLMAYAN, CI tarafinda ortaya cikan birkac parca.
   Tasarim dili aynidir; renk, boşluk ve yazı ölçüleri tokens.css'ten gelir.

   Buraya yalnizca prototipte bulunmayan bir ogenin stili girer. Prototipte
   zaten tanimli bir bilesen varsa onun sinifi kullanilir, burada kopyasi
   olusturulmaz.
   ========================================================================== */

/* --- Blog sayfalama -------------------------------------------------------
   Prototipin blog listesi "daha fazla" dugmesiyle calisiyordu; CI tarafinda
   liste sunucuda sayfalandigi icin klasik sayfa numaralari gerekti. */
.blg__syf {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
  align-items: center;
}

/* --- Kurumsal sayfa gövdesi ----------------------------------------------
   Panelden gelen zengin metin (p, h2, ul, table) kurumsal kutu icinde
   basiliyor; okunur bir olcek verilir. */
.krm__yz > :first-child { margin-top: 0; }
.krm__yz > :last-child { margin-bottom: 0; }

/* --- Ekip karti aciklamasi ----------------------------------------------- */
.ekp__bg p.ekp__gv {
  margin-top: var(--s2);
  font-size: var(--fs-2xs);
  line-height: 1.6;
  color: var(--tx-mute);
}

/* --- Liste ustundeki uyari seridi (otel listesinde tarih secilmediginde) -- */
.otl__yb {
  display: flex;
  align-items: center;
  gap: var(--s2);
  margin-bottom: var(--s5);
  padding: var(--s3) var(--s4);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  background: var(--bg-alt);
  font-size: var(--fs-2xs);
  color: var(--tx-mute);
}

/* --- Oda ve kisi secici: oda bloklari ------------------------------------
   Sayac satirlari (oar__sy / ara__sy) prototipten gelir; burada yalnizca
   birden cok odayi ve cocuk yasi secimlerini tasiyan kabuk tanimli. */
.ok__oda {
  margin: 0 0 var(--s4);
  padding: 0 0 var(--s4);
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  display: grid;
  gap: var(--s3);
  min-width: 0;
}
.ok__oda legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  margin-bottom: var(--s2);
}
.ok__yas {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: var(--s2);
}
.ok__yas:empty { display: none; }
.ok__yas label { display: grid; gap: 4px; font-size: var(--fs-3xs); color: var(--tx-mute); }
[data-ok-p] > .bt + .bt { margin-top: var(--s2); }

/* ==========================================================================
   REZERVASYON 1. ADIM — CI akisina ozgu parcalar
   --------------------------------------------------------------------------
   Prototipin rezervasyonu tek sayfalik bir sihirbazdi; CI'da oda/yolcu
   secimi, uygun tarih listesi ve koltuk plani ayri bloklar. Bloklarin
   kabugu (rzv__blk, rzv__bas) prototipten, icerikleri burada.
   ========================================================================== */

/* --- Oda bloklari --- */
.rzv__odalar { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--s4); }
.rzv__oda {
  display: grid; gap: var(--s3);
  padding: var(--s4);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  background: var(--white);
}
.rzv__oda-b {
  display: flex; align-items: center; justify-content: space-between;
  font-size: var(--fs-2xs); font-weight: var(--fw-700); color: var(--tx);
}
.rzv__oda-ey,
.rzv__ey {
  display: flex; flex-wrap: wrap; gap: var(--s3);
  align-items: center; justify-content: space-between;
  margin-top: var(--s5);
}
.rzv__ey { margin-top: var(--s6); }
/* Mobil: ilerleme dugmesi tam genislik ve ustte, geri baglantisi altinda */
@media (max-width: 600px) {
  .rzv__ey { flex-direction: column-reverse; align-items: stretch; }
  .rzv__ey > .bt { width: 100%; justify-content: center; }
  .rzv__ey-sag { width: 100%; }
  .rzv__ey-sag > .bt { flex: 1 1 auto; justify-content: center; }
}

/* --- Uygun tarihler listesi (ajax/searchperiod) --- */
.trs { display: grid; gap: var(--s2); }
.trs__l {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: var(--s3);
  padding: var(--s3) var(--s4);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  background: var(--white);
  cursor: pointer;
  transition: border-color var(--t1), background var(--t1);
}
.trs__l:hover { border-color: var(--brand); }
.trs__l input { accent-color: var(--brand); width: 18px; height: 18px; margin: 0; }
.trs__trh { display: inline-flex; align-items: center; gap: var(--s2); font-weight: var(--fw-700); color: var(--tx); }
.trs__f { font-weight: var(--fw-800); color: var(--tx); white-space: nowrap; }
.trs__o.selected .trs__l { border-color: var(--brand); background: var(--bg-alt); box-shadow: 0 0 0 1px var(--brand) inset; }
.trs__o--kapali .trs__l { cursor: default; opacity: .62; }
.trs__o--kapali .trs__l:hover { border-color: var(--line); }
.trs__yok { display: inline-flex; width: 18px; justify-content: center; color: var(--tx-faint); }
@media (max-width: 620px) {
  .trs__l { grid-template-columns: auto 1fr; }
  .trs__l .rz, .trs__f { grid-column: 2; justify-self: start; }
}

/* --- Koltuk plani (views/otobus/bus.php — admin ile ortak, kendi CSS'i var)
   Secilen koltugun ustune eski temada Font Awesome ile "x" basiliyordu; bu
   sayfalarda ikon fontu yuklenmedigi icin ayni isaret karakterle verilir. */
.rzv__klt { margin-top: var(--s5); }
.rzv__klt .fa-times-circle { font-style: normal; font-weight: 700; }
.rzv__klt .fa-times-circle::before { content: "\2715"; }

/* --- Otobus plani (tema/otobus_plan.php, prototip koltuk.css) ---------------
   Arka sirada koridora da koltuk konan araclarda (35 kisilik) koridor
   hucresi koltuk boyuna cikar ki kolonlar hizali kalsin. */
.oto--orta .oto__koridor { height: var(--ko-b); }
.rzv__klt .klt { margin-top: var(--s2); }

/* --- Ozet kutusu: sunucunun gonderdigi eski isaretleme ------------------
   Hediye ceki cevabi (Ajax::reservation/giftcheckaction) backend'de uretilen
   HTML dondurur: tutarin basinda "Toplam Tutar:" etiketi, indirim satirinda
   .adi/.deger ciftleri ve Font Awesome carpi ikonu. Backend degismedigi
   icin bu isaretleme tema kutusuna uyduruluyor. */
.ozt .toplam > span { display: none !important; }       /* etiket solda zaten var */
.ozt__sat .adi { color: var(--tx-mute); }
.ozt__sat .deger { font-weight: var(--fw-700); color: var(--tx); display: inline-flex; align-items: center; gap: var(--s1); }
.ozt__sat .deger a { color: var(--no); }
.ozt .fa-times, .ozt .fa-times-circle { font-style: normal; font-weight: 700; }
.ozt .fa-times::before, .ozt .fa-times-circle::before { content: "\2715"; }

/* ==========================================================================
   ODEME ADIMI — CI akisina ozgu parcalar
   ========================================================================== */

/* Sekmeler ul.nav > li > a yapisinda (sayfa betigi bu seciciye bagli) */
.odm__skm { list-style: none; margin: 0; padding: 0; }
.odm__skm > li { flex: 1; display: flex; }
.odm__skm > li > .odm__sb { width: 100%; text-decoration: none; }

/* Havale hesaplari */
.odm__hsp { display: grid; gap: var(--s2); }
.odm__hsp .rdo--kart { width: 100%; }
.odm__hsp .rdo__m small { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; }

/* --- Taksit secenekleri: Payment_model::installment_options HTML'i -------
   Backend su yapiyi dondurur (degistirilmedi):
     .col-md-12 > .banka > span > strong      (banka adi)
     .col-md-6  > .taksit > label.m0 > .baslik > .radiobutton > input + label
   Burada yalnizca bu kapsamda tema gorunumu verilir. */
.tks--eski { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); }
.tks--eski:empty { display: none; }
.tks--eski > .col-md-12 { grid-column: 1 / -1; font-size: var(--fs-2xs); color: var(--tx-mute); }
.tks--eski .banka strong { color: var(--tx); }
.tks--eski .taksit label.m0 { display: block; margin: 0; cursor: pointer; }
.tks--eski .baslik {
  display: flex; align-items: flex-start; gap: var(--s3);
  padding: var(--s3); border: 1px solid var(--line); border-radius: var(--r2);
  background: var(--white); font-size: var(--fs-3xs); line-height: 1.5; color: var(--tx);
  transition: border-color var(--t1), background var(--t1);
}
.tks--eski .baslik:hover { border-color: var(--brand-200); background: var(--brand-50); }
.tks--eski .taksit:has(input:checked) .baslik { border-color: var(--brand); background: var(--brand-50); }
.tks--eski .radiobutton label { display: none; }
.tks--eski .radiobutton input { accent-color: var(--brand); width: 16px; height: 16px; margin: 1px 0 0; }
@media (max-width: 620px) { .tks--eski { grid-template-columns: minmax(0, 1fr); } }

/* Eylem satirinin sag grubu (Ön Rezervasyon + Ödemeye Geç) */
.rzv__ey-sag { display: inline-flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }
/* Ozet ustundeki indirim kodu kutusu, ozetle arasinda nefes payi */
.ozt--kod { margin-bottom: var(--s4); }

/* Favorilerim: kart sarmalayicisi izgarayi bozmasin */
.uya__tg > [data-fav-kart] { display: contents; }

/* Uye bilgilerim: eski betik fatura kutularini display:block ile aciyor; alan duzeni (flex) korunsun */
.alan.invoice_type_div_1[style*="block"], .alan.invoice_type_div_2[style*="block"] { display: flex !important; }

/* --- Bildirimler (notify.js — _error/_success) -----------------------------
   Eklenti kendi stilini calisma aninda head'e ekliyor ve metni tek satirda
   tutuyor (nowrap); mobilde uzun uyari ekrandan tasiyordu. */
.notifyjs-corner { max-width: calc(100vw - 24px); }
.notifyjs-bootstrap-base { white-space: normal !important; max-width: min(460px, calc(100vw - 24px));
                           font-family: var(--font); font-size: var(--fs-xs); font-weight: var(--fw-600);
                           line-height: 1.45; border-radius: var(--r2) !important; box-shadow: var(--sh2); }

/* --- Oda / yolcu paneli (js/yolcu.js) — prototipte cocuk yasi yoktu; backend
   yas istedigi icin odanin altina eklendi */
/* Odanin sayac satiriyla ayni iç bosluk; kompakt secim kutusu */
.oda__yas { margin: 0; padding: var(--s3) var(--s4) var(--s4); border-top: 1px dashed var(--line);
            grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.oda__yas label { gap: 6px; font-size: 10px; font-weight: var(--fw-700); letter-spacing: var(--ls-cap);
                  text-transform: uppercase; color: var(--tx-mute); }
.oda__yas .slc .alan__g { min-height: 40px; padding: 0 36px 0 var(--s3);
                          font-size: var(--fs-2xs); font-weight: var(--fw-600); color: var(--tx);
                          letter-spacing: 0; text-transform: none; }
.oda__yas .slc__ok { right: var(--s3); pointer-events: none; }
/* Cocuk yasi satiri eklenince panel uzuyor; "Tamam" dugmesi kaydirmadan gorunsun */
.ylp .ylp__p { max-height: min(460px, 72vh); }
/* Tarih listesi: arama sonucuna gore uygun olmayan tarih */
.sec__o--kapali .sec__o-a { color: var(--tx-faint); }
.sec__yok { color: var(--no) !important; background: var(--no-bg) !important; }
/* Rezervasyon: secim cubugunun altindaki plan */
#adim-koltuk .dgs + form + #period_portlet { margin-top: var(--s4); }
#adim-koltuk [data-donem-not] { margin-top: var(--s3); }

/* ==========================================================================
   TUR SONU ANKETI (.ank) — anket.php
   ========================================================================== */
.ank { max-width: 900px; display: flex; flex-direction: column; gap: var(--s5); }
.ank__k { padding: var(--s6); background: var(--white); border: 1px solid var(--line);
          border-radius: var(--r4); box-shadow: var(--sh1); display: flex; flex-direction: column; gap: var(--s4); }
@media (max-width: 620px) { .ank__k { padding: var(--s5) var(--s4); } }
.ank__b { display: flex; align-items: center; gap: var(--s2); margin: 0; font-size: var(--fs-h4);
          font-weight: var(--fw-800); letter-spacing: var(--ls-t); color: var(--tx); }
.ank__b svg { color: var(--brand); }
.ank__alt { margin: calc(var(--s2) * -1) 0 0; font-size: var(--fs-xs); color: var(--tx-mute); }
.ank__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s5) var(--s6); }
@media (max-width: 760px) { .ank__grid { grid-template-columns: minmax(0, 1fr); } }
.ank__s { grid-column: 1 / -1; display: flex; flex-direction: column; gap: var(--s2);
          padding-top: var(--s4); border-top: 1px solid var(--line-soft); }
.ank__s--yarim { grid-column: auto; }
.ank__sb { font-size: var(--fs-xs); font-weight: var(--fw-700); color: var(--tx); }
.ank__rs { display: flex; flex-wrap: wrap; gap: var(--s2); }
.ank__r { position: relative; cursor: pointer; }
.ank__r input { position: absolute; opacity: 0; pointer-events: none; }
.ank__r span { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--s4);
               font-size: var(--fs-2xs); font-weight: var(--fw-600); color: var(--tx-soft);
               background: var(--white); border: 1.5px solid var(--line); border-radius: var(--rp);
               transition: all var(--t1); }
.ank__r:hover span { border-color: var(--brand-200); background: var(--brand-50); }
.ank__r input:checked + span { color: var(--white); background: var(--brand); border-color: var(--brand); }
.ank__r input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }
.ank__ks { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--s2); }
.ank__ks .onk { margin: 0; }
.ank__gonder { margin-top: var(--s2); }
.ank__tamam { align-items: center; text-align: center; }
.ank__tamam > svg { color: var(--ok); }
/* Panel formu dosya alani (form.php) */
.frm__dosya { position: relative; display: flex; align-items: center; gap: var(--s3); min-height: 48px;
              padding: var(--s2) var(--s4); background: var(--mist); border: 1.5px dashed var(--line);
              border-radius: var(--r2); cursor: pointer; transition: border-color var(--t1); }
.frm__dosya:hover { border-color: var(--brand); }
.frm__dosya input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.frm__dosya-i { color: var(--brand); display: inline-flex; }
.frm__dosya .custom-file-label { font-size: var(--fs-xs); font-weight: var(--fw-600); color: var(--tx-soft); }
.frm__durum { font-size: var(--fs-3xs); color: var(--tx-mute); }

/* ==========================================================================
   INSTAGRAM GALERI (instagram_galeri.php) — kareler + pencere
   ========================================================================== */
.ig__ust { display: flex; justify-content: flex-end; margin-bottom: var(--s5); }
.ig__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s3); }
@media (max-width: 900px) { .ig__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ig__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); } }
.ig__k { position: relative; display: block; aspect-ratio: 1 / 1; padding: 0; overflow: hidden; border: 0;
         border-radius: var(--r3); background: var(--mist-2); cursor: pointer; }
.ig__k img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--e); }
.ig__k:hover img { transform: scale(1.06); }
.ig__bil { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: 2px;
           padding: var(--s6) var(--s3) var(--s3); text-align: left; color: var(--white);
           background: var(--veil-card); font-size: var(--fs-3xs); opacity: 0; transition: opacity var(--t1); }
.ig__bil b { font-size: var(--fs-2xs); }
.ig__bil svg { vertical-align: -2px; }
.ig__k:hover .ig__bil, .ig__k:focus-visible .ig__bil { opacity: 1; }
@media (hover: none) { .ig__bil { opacity: 1; } }
.ig__yok { color: var(--tx-mute); }

.igm { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s6); align-items: start; }
@media (max-width: 760px) { .igm { grid-template-columns: minmax(0, 1fr); } }
.igm__foto img { display: block; width: 100%; height: auto; border-radius: var(--r3); }
.igm__yan { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); }
.igm__say { margin: 0; font-size: var(--fs-xs); color: var(--tx-soft); }
.igm__say svg { color: var(--brand); vertical-align: -3px; }
.igm__e { margin-top: var(--s3); font-size: 10px; font-weight: var(--fw-700); letter-spacing: var(--ls-cap);
          text-transform: uppercase; color: var(--tx-faint); }
.igm__tur { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r3); background: var(--white); }
.igm__tur-g img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.igm__tur-i { padding: var(--s4); display: flex; flex-direction: column; gap: var(--s2); }
.igm__tur-i h3 { margin: 0; font-size: var(--fs-s); font-weight: var(--fw-800); }
.igm__tur-i h3 a { color: var(--tx); }
.igm__tur-i p { margin: 0; font-size: var(--fs-2xs); color: var(--tx-mute); }
.igm__tur-e { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); margin-top: var(--s2); }
.igm__fav { position: static; }

/* Kategori filtresinde alt kategori girintisi (blok_tur_filtre.php) */
.flt__kat--alt { padding-left: calc(var(--s3) + 12px); }
/* Kategori alt metni panelden HTML olarak geliyor: siniflarsiz basliklar
   prototipteki .syz__b bicimini alir */
.syz__m h1, .syz__m h2, .syz__m h3, .syz__m h4 { margin: var(--s6) 0 var(--s3); font-size: var(--fs-h4);
  font-weight: var(--fw-700); line-height: 1.35; letter-spacing: var(--ls-t); color: var(--tx); }
.syz__m > :first-child { margin-top: 0; }
.syz__m p, .syz__m li { font-size: var(--fs-s); line-height: 1.75; color: var(--tx-soft); }
.syz__m + .syz__b { margin-top: var(--s6); }
/* Tur detayi sayfa alti metni (bottom_description): kategori.css o sayfada yuklu degil */
.syz { background: var(--mist); border-top: 1px solid var(--line); }
.syz__m p { margin-bottom: var(--s4); }
.syz__m p:last-child { margin-bottom: 0; }
.syz__m a { color: var(--brand); text-decoration: underline; }
/* Tur detayi ust metni (top_description) */
.td__ust { margin-top: var(--s4); }
/* Filtre basligindaki kapatma dugmesi yalnizca mobil cekmecede */
@media (min-width: 1025px) { .flt__bas .ckm__kp { display: none; } }

/* Tarih secici (.trh[data-trh]) ile tur kartlarindaki tarih seridi (.trh)
   ayni kok adini paylasiyor; kart kuralindaki kesikli ust cizgi ve bosluk
   seciciye sizmasin (prototipte de goruluyordu). */
.trh[data-trh] { padding-top: 0; border-top: 0; }

/* Kampanya seridi: panelde prototipteki 9'dan fazla banner olabiliyor;
   dar ekranda nokta dizisi seridin disina tasmasin — cubuklar kisalir. */
@media (max-width: 640px) {
  .kmp__nk { gap: 4px; max-width: calc(100% - var(--s6)); }
  .kmp__n { width: 12px; flex: 0 1 12px; min-width: 6px; }
  .kmp__n.on { width: 24px; flex-basis: 24px; }
}


/* Uye alani — kart ici odeme (rezervasyon-odeme?parca=1). Bolum rezervasyon
   sayfasindaki .rzv__blk kutusuyla gelir; .uodm zaten cerceve oldugu icin
   ic kutunun cercevesi/boslugu kaldirilir. */
.uodm .rzv__blk { margin: 0; padding: 0; border: 0; box-shadow: none; background: none; }
.uodm .uodm__yuk { font-size: var(--fs-3xs); color: var(--tx-mute); }

/* ==========================================================================
   BILDIRIM SISTEMI (js/bildirim.js) — eski notify.js balonlarinin yerine
   ========================================================================== */

/* 1) Genel bildirim kartlari — sag ust, mobilde ust tam genislik */
.bld { position: fixed; top: var(--s4); right: var(--s4); z-index: 10000;
       display: flex; flex-direction: column; align-items: flex-end; gap: var(--s2);
       width: min(400px, calc(100vw - 2 * var(--s4))); pointer-events: none; }
.bld__t { position: relative; overflow: hidden; pointer-events: auto;
          display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: var(--s3);
          width: 100%; padding: var(--s3) var(--s3) var(--s3) var(--s4);
          background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--brand);
          border-radius: var(--r2); box-shadow: var(--sh4);
          animation: bld-gir .26s var(--e) both; }
.bld__t--cik { animation: bld-cik .2s var(--e) both; }
.bld__t--sal { animation: bld-sal .32s var(--e); }
@keyframes bld-gir { from { opacity: 0; transform: translateY(-8px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes bld-cik { to { opacity: 0; transform: translateX(16px); } }
@keyframes bld-sal { 0%, 100% { transform: none; } 30% { transform: translateX(-4px); } 60% { transform: translateX(3px); } }

.bld__i { display: inline-flex; align-items: center; justify-content: center;
          width: 32px; height: 32px; border-radius: 50%; margin-top: 1px; }
.bld__g { min-width: 0; padding-top: 2px; }
.bld__b { display: block; font-size: var(--fs-3xs); font-weight: var(--fw-800); color: var(--tx); line-height: 1.3; }
.bld__y { margin-top: 2px; font-size: var(--fs-3xs); line-height: 1.5; color: var(--tx-soft);
          white-space: pre-line; overflow-wrap: anywhere; }
.bld__k { display: inline-flex; align-items: center; justify-content: center;
          width: 28px; height: 28px; border-radius: 50%; color: var(--tx-faint);
          transition: background var(--t1), color var(--t1); }
.bld__k:hover { background: var(--mist); color: var(--tx); }
.bld__s { position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
          transform-origin: left; opacity: .55; }

.bld__t--hata   { border-left-color: var(--no); }
.bld__t--hata   .bld__i { color: var(--no);  background: var(--no-bg); }
.bld__t--hata   .bld__s { background: var(--no); }
.bld__t--basari { border-left-color: var(--ok); }
.bld__t--basari .bld__i { color: var(--ok);  background: var(--ok-bg); }
.bld__t--basari .bld__s { background: var(--ok); }
.bld__t--uyari  { border-left-color: var(--warn); }
.bld__t--uyari  .bld__i { color: var(--warn); background: var(--warn-bg); }
.bld__t--uyari  .bld__s { background: var(--warn); }
.bld__t--bilgi  { border-left-color: var(--brand); }
.bld__t--bilgi  .bld__i { color: var(--brand-700); background: var(--brand-50); }
.bld__t--bilgi  .bld__s { background: var(--brand); }

@media (max-width: 560px) {
  .bld { top: var(--s2); right: var(--s2); left: var(--s2); width: auto; align-items: stretch; }
}

/* 2) Alana bagli mesaj — alanin hemen altinda */
.bld-a { display: flex; align-items: flex-start; gap: 6px; margin: 6px 0 0;
         font-size: var(--fs-3xs); font-weight: var(--fw-600); line-height: 1.45;
         letter-spacing: 0; text-transform: none; white-space: pre-line;
         animation: bld-a-gir .2s var(--e) both; }
.bld-a svg { flex: none; margin-top: 2px; }
.bld-a--hata, .bld-a--uyari { color: var(--no); }
.bld-a--uyari { color: var(--warn); }
.bld-a--basari { color: var(--ok); }
.bld-a--bilgi { color: var(--brand-700); }
@keyframes bld-a-gir { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }

.bld-hata,
input.bld-hata, select.bld-hata, textarea.bld-hata { border-color: var(--no) !important;
                                                     box-shadow: 0 0 0 3px var(--no-bg) !important; }
.bld-hata:not(input):not(select):not(textarea) { border-radius: var(--r2); }
.bld-basari { border-color: var(--ok) !important; }

/* 3) Onay penceresi */
.bldo { position: fixed; inset: 0; z-index: 10001; display: flex; align-items: center; justify-content: center;
        padding: var(--s4); background: rgba(11, 18, 32, .55); backdrop-filter: blur(2px);
        animation: bld-a-gir .18s var(--e) both; }
.bldo--cik { animation: bld-cik .18s var(--e) both; }
.bldo__k { width: min(420px, 100%); padding: var(--s6) var(--s5) var(--s5); text-align: center;
           background: var(--white); border-radius: var(--r3); box-shadow: var(--sh4);
           animation: bld-gir .22s var(--e) both; }
.bldo__i { display: inline-flex; align-items: center; justify-content: center;
           width: 52px; height: 52px; border-radius: 50%; margin-bottom: var(--s3);
           color: var(--brand-700); background: var(--brand-50); }
.bldo__i--t { color: var(--no); background: var(--no-bg); }
.bldo__b { display: block; font-size: var(--fs-h4); font-weight: var(--fw-800); color: var(--tx); }
.bldo__m { margin-top: var(--s2); font-size: var(--fs-2xs); line-height: 1.55; color: var(--tx-soft); white-space: pre-line; }
.bldo__d { display: flex; gap: var(--s2); justify-content: center; margin-top: var(--s5); }
.bldo__d .bt { flex: 1; }
.bldo .bt--t { color: var(--white); background: var(--no); border-color: var(--no); }
.bldo .bt--t:hover { filter: brightness(.94); }
html.bldo-acik { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .bld__t, .bld__t--cik, .bld__t--sal, .bld-a, .bldo, .bldo__k, .bldo--cik { animation: none; }
}

/* Eski eklentinin kalintilari gorunmesin (baska bir betik dogrudan $.notify cagirirsa) */
.notifyjs-corner, .notifyjs-wrapper { display: none !important; }

/* --- Sabit WhatsApp dugmesi (client/footer.php) ---------------------------
   Eski temadaki sag alt .wpp dugmesinin karsiligi. Mobil menu ve acilir
   paneller (--z-tp ve ustu) bunun ustunde kalir. */
.wpf { position: fixed; right: 18px; bottom: max(18px, env(safe-area-inset-bottom, 0px));
  z-index: calc(var(--z-tp) - 6);
  display: inline-flex; align-items: center; justify-content: center;
  width: 54px; height: 54px; border-radius: 50%;
  color: var(--white); background: #25D366;
  box-shadow: 0 8px 24px rgba(16,30,54,.22);
  transition: transform var(--t1), background var(--t1); }
.wpf:hover { color: var(--white); background: #1EB558; transform: translateY(-2px); }
.wpf:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
@media (max-width: 1100px) {
  /* Tur detayinda alttaki rezervasyon seridinin ustune cikar; panel acikken gizlenir */
  body:has(.rezb:not([hidden])) .wpf { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  .rez-acik .wpf { opacity: 0; pointer-events: none; }
}
@media (max-width: 560px) { .wpf { width: 48px; height: 48px; right: 14px; } }
@media print { .wpf { display: none; } }

/* Odeme — havale indirimi notu (rezervasyon_odeme.php) */
.odm__n--ind { display: block; color: var(--tx-soft); }
.odm__n--ind svg { display: inline-block; vertical-align: -2px; margin-right: 4px; color: var(--brand); }

/* --- Tur detayi (tur_detay.php) ------------------------------------------ */
/* Kampanya notu + geri sayim (eski temadaki writeCampaign) */
.kmpg { display: flex; flex-direction: column; gap: var(--s2); }
.kmpg__not { display: flex; align-items: flex-start; gap: 6px; margin: 0;
  padding: var(--s2) var(--s3); font-size: var(--fs-3xs); font-weight: var(--fw-700); line-height: 1.45;
  color: var(--ok); background: var(--ok-bg); border-radius: var(--r2); }
.kmpg__not svg { flex: none; margin-top: 2px; }
.kmpg__say { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 6px; }
.kmpg__e { grid-column: 1 / -1; font-size: 10px; font-weight: var(--fw-700); letter-spacing: var(--ls-cap);
  text-transform: uppercase; color: var(--tx-mute); text-align: center; }
.kmpg__s { display: flex; flex-direction: column; align-items: center; padding: 6px 0;
  background: var(--mist); border-radius: var(--r2); }
.kmpg__s b { font-size: var(--fs-s); font-weight: var(--fw-800); color: var(--brand); font-variant-numeric: tabular-nums; line-height: 1.2; }
.kmpg__s small { font-size: 10px; color: var(--tx-mute); }
/* Fiyat tablosunda indirim yuzdesi */
.fyt__ind { display: inline-block; margin-right: 6px; padding: 1px 6px; font-style: normal;
  font-size: 10px; font-weight: var(--fw-800); color: var(--white); background: var(--no);
  border-radius: var(--rp); vertical-align: 1px; }
/* Yorum yoksa yalnizca "Yorum Yaz" kutusu */
.yrm__ozt--yaz { grid-template-columns: minmax(0,1fr); }
.yrm__ozt--yaz .yrm__eyl { display: flex; align-items: center; justify-content: space-between; gap: var(--s4);
  flex-wrap: wrap; padding: 0; border: 0; text-align: left; }
.yrm__ozt--yaz .yrm__eyl p { margin: 0; font-size: var(--fs-2xs); color: var(--tx-soft); }
/* Biniş noktasi aciklamasi */
/* Binis noktalari: ad + saat rozeti, alt satirda aciklama */
.bns li { flex-wrap: wrap; align-items: center; }
.bns li svg { color: var(--brand); margin-top: 0; }
.bns li b { margin-left: auto; padding: 1px 8px; font-size: var(--fs-3xs); font-weight: var(--fw-700); color: var(--tx); background: var(--mist); border-radius: var(--rp); }
.bns li small { display: block; width: 100%; padding-left: 25px; font-size: var(--fs-3xs); color: var(--tx-mute); }
/* Panelden gelen not bloklari (Onemli Notlar, giris sartlari): prototipteki not maddeleri */
.hzm__not ul { list-style: none; padding: 0; margin: var(--s2) 0; display: flex; flex-direction: column; gap: var(--s2); }
.hzm__not, .hzm__not p, .hzm__not li { font-size: var(--fs-2xs); line-height: 1.6; color: var(--tx-soft); }
.hzm__not p { margin-bottom: var(--s3); }
.hzm__not li { position: relative; padding-left: var(--s4); }
.hzm__not li::before { content: ''; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--warn); }
/* "Turu e-postayla gonder" penceresi */
.tg__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--s3); margin-top: var(--s3); }
.tg__grid .alan--tam { grid-column: 1 / -1; }
@media (max-width: 560px) { .tg__grid { grid-template-columns: minmax(0,1fr); } }

/* --- Tur takvimi siralama (tur_takvimi.php) ------------------------------ */
.tkv__ust { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; }
.tkv__sira { position: relative; display: inline-flex; align-items: center; }
.tkv__sira > svg:first-of-type { position: absolute; left: var(--s3); color: var(--tx-mute); pointer-events: none; }
.tkv__sira select { appearance: none; cursor: pointer; min-height: 38px; padding: 0 30px 0 32px;
  font-family: var(--font); font-size: var(--fs-3xs); font-weight: var(--fw-700); color: var(--tx);
  background: var(--white); border: 1px solid var(--line); border-radius: var(--r2); }
.tkv__sira select:focus { outline: none; border-color: var(--brand); }
.tkv__sira-o { position: absolute; right: var(--s3); color: var(--tx-mute); pointer-events: none; }

/* --- Otel detayi: oda satiri + oda detayi penceresi ---------------------- */
button.oda__g { display: block; width: 100%; padding: 0; border: 0; cursor: zoom-in; font: inherit; }
.oda__ad-b { padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.oda__ad-b:hover { color: var(--brand); }
.oda__kisa { margin: 2px 0 var(--s2); font-size: var(--fs-3xs); line-height: 1.5; color: var(--tx-soft); }
.oda__tum { display: inline-flex; align-items: center; gap: 4px; margin-top: var(--s2); padding: 0; border: 0;
  background: none; font: inherit; font-size: var(--fs-3xs); font-weight: var(--fw-700); color: var(--brand); cursor: pointer; }
.oda__tum:hover { text-decoration: underline; }
.oda__ind { align-self: flex-start; margin-bottom: 4px; }
.odd__glr { display: flex; gap: var(--s2); overflow-x: auto; scroll-snap-type: x mandatory;
  margin-bottom: var(--s4); padding-bottom: var(--s2); overscroll-behavior-x: contain; }
.odd__glr img { flex: none; width: min(78%, 520px); height: auto; aspect-ratio: 3 / 2; object-fit: cover;
  border-radius: var(--r2); scroll-snap-align: start; background: var(--mist-2); }
.odd__b { margin: var(--s4) 0 var(--s2); font-size: var(--fs-xs); font-weight: var(--fw-800); color: var(--tx); }
.odd__b:first-child { margin-top: 0; }
.odd__m, .odd__m p { font-size: var(--fs-3xs); line-height: 1.7; color: var(--tx-soft); }
.odd__ozl { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px var(--s4); list-style: none; padding: 0; }
.odd__ozl li { display: flex; align-items: flex-start; gap: 6px; font-size: var(--fs-3xs); color: var(--tx); }
.odd__ozl svg { flex: none; margin-top: 2px; color: var(--brand); }
@media (max-width: 720px) { .odd__ozl { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 420px) { .odd__ozl { grid-template-columns: minmax(0,1fr); } }

/* Kategori ust aciklamasi panel HTML'i (turlar.php .kb__html) */
.kb__html > * + * { margin-top: var(--s2); }
.kb__html h1, .kb__html h2, .kb__html h3, .kb__html h4 { margin: var(--s3) 0 var(--s1); font-size: var(--fs-s);
  font-weight: var(--fw-800); line-height: 1.4; color: var(--tx); }
.kb__html > :first-child { margin-top: 0; }
.kb__html ul, .kb__html ol { padding-left: 1.2em; }
.kb__html a { color: var(--brand); text-decoration: underline; }

/* --- Panel sayfalari: eski Bootstrap izgarasi (sayfa_detay.php .krm__yz) ----
   Bazi panel sayfalari (or. "Ayder Şirketler Grubu") icerikte row/col-md-*
   kullaniyor; yeni temada Bootstrap yok. Yalnizca bu kapsamda basit karsilik. */
.krm__yz .row { display: flex; flex-wrap: wrap; align-items: center; margin: var(--s4) calc(var(--s2) * -1); }
.krm__yz .row > [class*="col-"] { flex: 1 1 0; min-width: 0; padding: var(--s2); }
.krm__yz .row > [class*="col-"]:empty, .krm__yz .row > [class*="col-"]:not(:has(*)) { display: none; }
.krm__yz .row img { max-width: 100%; height: auto; }
.krm__yz .text-center { text-align: center; }
@media (max-width: 720px) { .krm__yz .row > [class*="col-"] { flex: 0 0 50%; } }

/* Tur listesi mobil filtre cekmecesi acikken cerez bandinin (--z-tp) ustunde
   kalsin: band "Sonuçları göster" dugmesini ortuyordu (js/tur-filtre.js) */
/* Perde .kt izgarasinin icinde: genis ekranda hucre gibi yer kaplayip tur
   listesini dar sutuna itiyordu. Yalnizca dar ekranda (kategori.css) var. */
@media (min-width: 1025px) { .kt__perde { display: none; } }
@media (max-width: 1024px) {
  .kt__yan.on { z-index: calc(var(--z-tp) + 2); }
  .kt__perde.on { z-index: calc(var(--z-tp) + 1); }
}

/* "Kesin Kalkış" yesil kutu (musteri revizesi) — kartlar, liste satiri, tur basligi */
.rz--kesin { background: var(--ok); color: var(--white); }
.rz--kesin svg { color: var(--white); }


/* Rezervasyon kutusu: "Kalkış Tarihi" satirinda "Tümünü gör", secili tarihte kalan koltuk */
.rez__etk--sat { justify-content: space-between; width: 100%; }
.rez__etk--sat > span { display: inline-flex; align-items: center; gap: 5px; }
.rez__tum { font-size: 10px; font-weight: var(--fw-700); letter-spacing: 0; text-transform: none;
            color: var(--brand); text-decoration: underline; text-underline-offset: 2px; }
.sec__son { flex: none; margin-left: auto; margin-right: 6px; padding: 1px 7px; font-style: normal;
            font-size: 10px; font-weight: var(--fw-800); color: var(--no); background: var(--no-bg); border-radius: var(--rp); }

/* --- Tur basligi: kalkis tarihi kartlari (tur_detay.php .tbt) -------------
   Musteri revizesi: tarihler baslikta kart gibi. Genis ekranda acik zeminde
   beyaz kart; dar ekranda baslik fotografin ustunde, kartlar camsi. */
.tb__sol { min-width: 0; max-width: 100%; }
.tbt { margin-top: var(--s4); min-width: 0; }
.tbt__b { display: flex; align-items: baseline; gap: var(--s2); margin-bottom: var(--s2);
          font-size: 10px; font-weight: var(--fw-800); letter-spacing: var(--ls-cap); text-transform: uppercase; color: var(--tx-mute); }
.tbt__b small { font-size: 10px; font-weight: var(--fw-600); letter-spacing: 0; text-transform: none; color: var(--tx-faint); }
.tbt__ls { display: flex; gap: var(--s2); overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity;
           overscroll-behavior-x: contain; scrollbar-width: thin; }
.tbt__k { flex: none; display: flex; flex-direction: column; min-width: 104px; padding: 8px 12px 9px;
          color: var(--tx); background: var(--white); border: 1.5px solid var(--line); border-radius: var(--r2);
          scroll-snap-align: start; transition: border-color var(--t1), box-shadow var(--t1), transform var(--t1); }
.tbt__k:hover { border-color: var(--brand-200); transform: translateY(-1px); }
.tbt__k.on { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-50); }
.tbt__k small { font-size: 9px; font-weight: var(--fw-800); letter-spacing: var(--ls-cap); text-transform: uppercase; color: var(--tx-mute); }
.tbt__k b { font-size: 1.5rem; font-weight: var(--fw-800); line-height: 1.1; color: var(--tx); }
.tbt__k span { font-size: 10px; color: var(--tx-mute); }
.tbt__k em { margin-top: 3px; font-style: normal; font-size: 12px; font-weight: var(--fw-800); color: var(--brand); }
.tbt__k i { margin-top: 1px; font-style: normal; font-size: 9px; font-weight: var(--fw-800); letter-spacing: .02em; text-transform: uppercase; color: var(--no); }
.tbt__k i.tbt__kk { color: var(--ok); }
.tbt__k--dolu { opacity: .6; }
.tbt__k--dolu b { text-decoration: line-through; text-decoration-thickness: 2px; }
/* Baslik fotografin ustunde (tur.css .tb--ard, tum genislikler) — camsi kartlar */
.tb--ard .tbt__b { color: rgba(255,255,255,.75); }
.tb--ard .tbt__b small { color: rgba(255,255,255,.55); }
.tb--ard .tbt__k { color: var(--white); background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25);
                   backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.tb--ard .tbt__k:not(.on):hover { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.45); }
.tb--ard .tbt__k.on { color: var(--tx); background: var(--white); border-color: var(--white); box-shadow: none; }
.tb--ard .tbt__k:not(.on) small, .tb--ard .tbt__k:not(.on) span { color: rgba(255,255,255,.7); }
.tb--ard .tbt__k:not(.on) b, .tb--ard .tbt__k:not(.on) .tbt__yk { color: var(--white); }
.tb--ard .tbt__k:not(.on) em { color: #FFB27A; }
.tb--ard .tbt__k:not(.on) i { color: #FFB4AE; }
.tb--ard .tbt__k:not(.on) i.tbt__kk { color: #8FE3B5; }

/* --- Mega menu: kolon sonu "Tümünü göster" (client/menu.php) ------------ */
.mg__tum { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; padding: 4px 0;
           font-size: 12px; font-weight: var(--fw-800); color: var(--brand); }
.mg__tum:hover { color: var(--brand-700); text-decoration: underline; text-underline-offset: 3px; }

/* --- Tek satir kaydirmali kart seridi (blok_turlar_sekmeli $t_serit) -----
   Musteri revizesi: "Yakin tarihli turlar" tek satir 4'lu, yana kayar. */
.srt { position: relative; }
.srt__ls { --srt-n: 4; display: grid; grid-auto-flow: column; gap: var(--s6);
           grid-auto-columns: calc((100% - (var(--srt-n) - 1) * var(--s6)) / var(--srt-n));
           overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
           scrollbar-width: none; padding: 4px 2px var(--s3); margin: -4px -2px 0; }
.srt__ls::-webkit-scrollbar { display: none; }
.srt__ls > * { scroll-snap-align: start; }
.srt__ls--3 { --srt-n: 3; }
.srt__ok { position: absolute; top: 38%; z-index: 2; display: grid; place-items: center;
           width: 44px; height: 44px; color: var(--tx); background: var(--white);
           border: 1px solid var(--line); border-radius: 50%; box-shadow: var(--sh2);
           transition: opacity var(--t1), background var(--t1), color var(--t1); }
.srt__ok:hover { color: var(--white); background: var(--brand); border-color: var(--brand); }
.srt__ok--g { left: -22px; }
.srt__ok--i { right: -22px; }
.srt__ok[disabled] { opacity: 0; pointer-events: none; }
@media (max-width: 1024px) { .srt__ls { --srt-n: 3; } }
@media (max-width: 860px)  { .srt__ls { --srt-n: 2; } .srt__ok--g { left: -8px; } .srt__ok--i { right: -8px; } }
@media (max-width: 560px)  { .srt__ls { grid-auto-columns: 84%; gap: var(--s4); } .srt__ok { display: none; } }

/* --- Kontenjan rozeti: "Son N koltuk" (musteri revizesi) ----------------
   app.css madalyonu rozetin soluna tasirir; yeni ifadede sayi ortada
   oldugundan madalyon metnin icinde akar: Son (N) koltuk. */
.acil:not(.acil--dolu) { margin-left: 0; padding: 0 var(--s3) 0 var(--s3); gap: 6px; }
.acil:not(.acil--dolu) .acil__n { position: relative; left: auto; top: auto; transform: none;
                                  width: 26px; height: 26px; font-size: 13px; }

/* --- Populer destinasyonlar: bento izgara (tema/blok_destinasyonlar.php) --
   4 sutun x 3 satir, 7 hucre:  [1 1][2][3]
                                [1 1][4][3]
                                [5][6 6][+]  */
.bnt { display: grid; gap: var(--s4); grid-template-columns: repeat(3, minmax(0,1fr)); }
.bnt .dst { aspect-ratio: 4/3; }
.bnt--tam { grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: 210px; }
.bnt--tam .dst { aspect-ratio: auto; height: 100%; }
.bnt--tam .bnt__k:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.bnt--tam .bnt__k:nth-child(3) { grid-column: 4; grid-row: 1 / 3; }
.bnt--tam .bnt__k:nth-child(6) { grid-column: 2 / 4; }
.bnt--tam .bnt__k:nth-child(1) .dst__ad { font-size: var(--fs-h2); }
.bnt__tum { display: flex; flex-direction: column; justify-content: flex-end; gap: 3px; padding: var(--s4);
            color: var(--white); background: var(--g-koyu, #123B2C); border-radius: var(--r3);
            box-shadow: var(--sh1); transition: transform var(--t2), box-shadow var(--t2); }
.bnt:not(.bnt--tam) .bnt__tum { aspect-ratio: 4/3; }
.bnt__tum:hover { transform: translateY(-5px); box-shadow: var(--sh3); }
.bnt__tum b { color: var(--white); font-size: var(--fs-h4); font-weight: var(--fw-700); line-height: 1.2; }
.bnt__tum span:last-child { font-size: var(--fs-3xs); color: rgba(255,255,255,.75); }
.bnt__tum-ik { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: auto;
               color: var(--white); background: var(--brand); border-radius: 50%; transition: transform var(--t2); }
.bnt__tum:hover .bnt__tum-ik { transform: translateX(4px); }
@media (max-width: 860px) {
  .bnt--tam { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 170px; grid-auto-flow: dense; }
  .bnt--tam .bnt__k:nth-child(1) { grid-column: 1 / 3; grid-row: auto; }
  .bnt--tam .bnt__k:nth-child(3) { grid-column: auto; grid-row: span 2; }
  .bnt--tam .bnt__k:nth-child(6) { grid-column: 1 / 3; }
  .bnt--tam .bnt__k:nth-child(1) .dst__ad { font-size: var(--fs-h3); }
}
@media (max-width: 560px) {
  .bnt { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--s3); }
  .bnt--tam { grid-auto-rows: 140px; }
}

/* --- Ana sayfa "Kendi rotanizi kendiniz cizin" (tema/blok_rota_formu.php) -- */
.rtf-blk { background: var(--g-koyu, var(--koyu)); }
.rtf { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s8, 48px); align-items: start; }
.rtf__sol { padding-top: var(--s4); }
.rtf__b { margin: var(--s2) 0 var(--s4); font-size: var(--fs-h1); line-height: 1.1; }
.rtf__m { margin: 0 0 var(--s5); font-size: var(--fs-md, 1.05rem); color: rgba(255,255,255,.78); }
.rtf__ls { display: grid; gap: var(--s3); margin: 0 0 var(--s6); padding: 0; list-style: none; }
.rtf__ls li { display: flex; align-items: center; gap: var(--s3); font-weight: var(--fw-600); color: rgba(255,255,255,.92); }
.rtf__ls svg { flex: none; padding: 4px; width: 22px; height: 22px; color: var(--white); background: var(--brand); border-radius: 50%; }
.rtf__tel { display: inline-flex; align-items: center; gap: var(--s3); padding: var(--s3) var(--s5) var(--s3) var(--s3);
            color: var(--white); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: var(--rp); }
.rtf__tel > svg { padding: 10px; width: 40px; height: 40px; background: var(--brand); border-radius: 50%; }
.rtf__tel span { display: flex; flex-direction: column; font-size: var(--fs-lg, 1.1rem); font-weight: var(--fw-800); line-height: 1.2; }
.rtf__tel small { font-size: 11px; font-weight: var(--fw-600); color: rgba(255,255,255,.65); }
.rtf__tel:hover { background: rgba(255,255,255,.14); }
.rtf__k { position: relative; padding: var(--s6); color: var(--tx); background: var(--white); border-radius: var(--r3); box-shadow: var(--sh3); }
.rtf__tz { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.rtf__ust { display: flex; align-items: center; gap: var(--s4); margin-bottom: var(--s5); }
.rtf__as { flex: none; font-size: 11px; font-weight: var(--fw-800); letter-spacing: var(--ls-cap); text-transform: uppercase; color: var(--brand); }
.rtf__cb { flex: 1; height: 6px; background: var(--line); border-radius: var(--rp); overflow: hidden; }
.rtf__cb i { display: block; height: 100%; background: var(--brand); border-radius: inherit; transition: width var(--t3); }
.rtf__adim { margin: 0; padding: 0; border: 0; min-width: 0; }
.rtf__adim[hidden] { display: none; }
.rtf__hata { margin: var(--s4) 0 0; padding: var(--s3) var(--s4); font-size: var(--fs-xs); font-weight: var(--fw-600);
             color: var(--no); background: #FDECEA; border-radius: var(--r2); }
.rtf__alt { display: flex; justify-content: flex-end; gap: var(--s3); margin-top: var(--s6); }
.rtf__alt [data-rtf-geri] { margin-right: auto; }
.rtf__ok { display: flex; flex-direction: column; align-items: center; gap: var(--s2); padding: var(--s8, 48px) var(--s4); text-align: center; }
.rtf__ok-ik { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: var(--s3); color: var(--white); background: var(--ok); border-radius: 50%; }
.rtf__ok b { font-size: var(--fs-h3); color: var(--tx); }
.rtf__ok p { margin: 0; color: var(--tx-mute); }
@media (max-width: 1024px) { .rtf { grid-template-columns: minmax(0, 1fr); gap: var(--s6); } .rtf__b { font-size: var(--fs-h2); } }
@media (max-width: 560px) { .rtf__k { padding: var(--s5) var(--s4); } .rtf__alt .bt { flex: 1; justify-content: center; } }

/* --- Sizden Gelenler: puan ozeti + devamini oku (tema/blok_yorumlar.php) -- */
.yoz { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s6); margin: 0 0 var(--s6);
       padding: var(--s4) var(--s5); background: var(--white); border: 1px solid var(--line); border-radius: var(--r3); box-shadow: var(--sh1); }
.yoz__n { display: flex; align-items: baseline; gap: 4px; }
.yoz__n strong { font-size: 2.6rem; font-weight: var(--fw-800); line-height: 1; color: var(--tx); }
.yoz__n span { font-weight: var(--fw-700); color: var(--tx-mute); }
.yoz__m { display: flex; flex-direction: column; gap: 4px; }
.yoz__m small { font-size: var(--fs-3xs); color: var(--tx-mute); }
.yoz__dg { display: grid; gap: 3px; min-width: 200px; flex: 1; max-width: 320px; margin: 0; padding: 0; list-style: none; }
.yoz__dg li { display: grid; grid-template-columns: 34px 1fr 28px; align-items: center; gap: var(--s2); font-size: 11px; color: var(--tx-mute); }
.yoz__dg li span { display: inline-flex; align-items: center; gap: 2px; font-weight: var(--fw-700); }
.yoz__dg li span svg { color: #F5A524; }
.yoz__dg i { height: 6px; background: var(--line); border-radius: var(--rp); overflow: hidden; }
.yoz__dg i b { display: block; height: 100%; background: #F5A524; border-radius: inherit; }
.yoz__dg em { font-style: normal; text-align: right; }
.yoz__g { display: inline-flex; align-items: center; gap: var(--s3); padding: var(--s2) var(--s4);
          color: var(--tx); border: 1px solid var(--line); border-radius: var(--rp); transition: border-color var(--t1), box-shadow var(--t1); }
.yoz__g:hover { border-color: var(--brand-200); box-shadow: var(--sh1); }
.yoz__g > svg:first-child { color: #4285F4; }
.yoz__g span { display: flex; flex-direction: column; line-height: 1.2; }
.yoz__g b { font-size: var(--fs-xs); }
.yoz__g small { font-size: 11px; color: var(--tx-mute); }
.yrm__mtn.acik { display: block; -webkit-line-clamp: unset; overflow: visible; }
.yrm__dv { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; margin-top: calc(var(--s2) * -1);
           padding: 2px 0; font-size: var(--fs-xs); font-weight: var(--fw-800); color: var(--brand); background: none; border: 0; cursor: pointer; }
.yrm__dv:hover { text-decoration: underline; text-underline-offset: 3px; }
.yrm__dv svg { transition: transform var(--t1); }
.yrm__dv.acik svg { transform: rotate(180deg); }
@media (max-width: 560px) { .yoz { padding: var(--s4); } .yoz__dg { max-width: none; } .yoz__g { margin-left: 0; } }

/* --- Tur sayfasi bolum menusu (tur_detay.php .bln) ----------------------- */
.bln { position: sticky; top: calc(var(--hd-h-s) + 8px); z-index: 5; display: flex; gap: 4px; margin: 0 0 var(--s5);
       padding: 5px; overflow-x: auto; scrollbar-width: none; background: rgba(255,255,255,.92);
       -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
       border: 1px solid var(--line); border-radius: var(--rp); box-shadow: var(--sh1); }
.bln::-webkit-scrollbar { display: none; }
.bln__a { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px;
          font-size: var(--fs-xs); font-weight: var(--fw-700); color: var(--tx); border-radius: var(--rp);
          transition: color var(--t1), background var(--t1); }
.bln__a svg { color: var(--tx); }
.bln__a:hover { color: var(--tx); background: var(--mist); }
.bln__a.on { color: var(--white); background: var(--ink, #123B2C); }
.bln__a.on svg { color: currentColor; }
.bln__a--grp { margin-left: auto; color: var(--tx); }
.bln__a--grp svg { color: var(--brand); }
.bln__a[hidden] { display: none; }
/* Sayfanin kendi scroll-padding-top'u (app.css: baslik payi) zaten uygulanir;
   burada yalniz yapiskan bolum menusunun yuksekligi kadar ek pay. */
#detay, #harita, #koltuk, #binis, #hizmetler, #notlar, #grup { scroll-margin-top: 72px; }

/* --- Rezervasyon kutusu ici hizmet ozeti (.rez__hzm) ---------------------- */
.rez__hzm { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--s3);
            margin: 0 var(--s4) var(--s4); padding: var(--s2) var(--s3);
            font-size: 12px; color: var(--tx-soft); background: var(--mist); border-radius: var(--r2); }
.rez__hzm span { display: inline-flex; align-items: center; gap: 4px; }
.rez__hzm-v svg { color: var(--ok); }
.rez__hzm-y svg { color: var(--no); }
.rez__hzm b { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; font-weight: var(--fw-800); color: var(--brand); }
.rez__hzm:hover b { text-decoration: underline; text-underline-offset: 3px; }

/* --- Grup talebi bolumu (#grup) ----------------------------------------- */
.grp__k { position: relative; margin-top: var(--s5); padding: var(--s5); background: var(--white);
          border: 1px solid var(--line); border-radius: var(--r3); }
.grp__bt { margin-top: var(--s5); }
@media (max-width: 560px) { .grp__k { padding: var(--s4); } }

/* --- Ana sayfa tur aramasi: oda ve yolcu paneli (tema/blok_arama.php) ---- */
.ara__form--kisi { grid-template-columns: 2fr 1fr 1fr auto; }
.ara__ylb { display: flex; align-items: center; justify-content: space-between; gap: var(--s2);
            text-align: left; cursor: pointer; }
.ara__ylb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ara__ylb > svg { flex: none; color: var(--tx-faint); transition: transform var(--t1); }
.ara__alan--yl .ylp__p { left: auto; right: 0; width: 380px; max-width: calc(100vw - 32px); max-height: 420px; }
@media (max-width: 1100px) {
  .ara__form--kisi { grid-template-columns: 1fr 1fr; }
  .ara__form--kisi > [data-oto] { grid-column: 1 / -1; }
}
@media (max-width: 560px) { .ara__form--kisi { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .ara__alan--yl .ylp__p { left: 0; width: auto; } }
.tbt__k b.tbt__yk { margin: 2px 0; font-size: .95rem; line-height: 1.2; }

/* Yorum ozeti sag taraf: Google baglantisi + "Bizi Google'da puanlayin" */
.yoz__sag { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); margin-left: auto; }
.yoz__puanla svg { color: #FFD666; }
@media (max-width: 560px) { .yoz__sag { margin-left: 0; width: 100%; } .yoz__puanla { flex: 1; justify-content: center; } }

/* --- Sikca Sorulan Sorular sayfasi (sss.php) ---------------------------- */
.sssy { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--s7, 40px); align-items: start; }
.sssy__yan { position: sticky; top: calc(var(--hd-h-s) + var(--s4)); display: flex; flex-direction: column; gap: var(--s4); }
.sssy__mn { display: flex; flex-direction: column; padding: var(--s2); background: var(--white);
            border: 1px solid var(--line); border-radius: var(--r3); }
.sssy__mn a { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); padding: 9px var(--s3);
              font-size: var(--fs-xs); font-weight: var(--fw-700); color: var(--tx-soft); border-radius: var(--r2); }
.sssy__mn a i { font-style: normal; font-size: 11px; font-weight: var(--fw-700); color: var(--tx-faint); }
.sssy__mn a:hover { background: var(--mist); color: var(--tx); }
.sssy__mn a.on { color: var(--white); background: var(--koyu); }
.sssy__mn a.on i { color: rgba(255,255,255,.7); }
.sssy__yrd { display: flex; flex-direction: column; gap: var(--s2); padding: var(--s4); background: var(--mist); border-radius: var(--r3); }
.sssy__yrd b { display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); color: var(--tx); }
.sssy__yrd p { margin: 0 0 var(--s2); font-size: var(--fs-3xs); color: var(--tx-mute); overflow-wrap: anywhere; }
.sssy__yan, .sssy__yrd { min-width: 0; }
.sssy__ara { position: relative; display: flex; align-items: center; margin-bottom: var(--s5); }
.sssy__ara > svg { position: absolute; left: var(--s4); color: var(--tx-faint); pointer-events: none; }
.sssy__ara input { width: 100%; min-height: 52px; padding: 0 var(--s4) 0 44px; font-size: var(--fs-s); color: var(--tx);
                   background: var(--white); border: 1px solid var(--line); border-radius: var(--r2); }
.sssy__ara input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-50); }
.sssy__g { scroll-margin-top: calc(var(--hd-h-s) + 24px); }
.sssy__g + .sssy__g { margin-top: var(--s7, 40px); }
.sssy__g[hidden], .sss__o[hidden] { display: none; }
.sssy__b { margin: 0 0 var(--s3); font-size: var(--fs-h3); }
.sssy__yok { padding: var(--s5); text-align: center; color: var(--tx-mute); background: var(--mist); border-radius: var(--r3); }
.sss__tumu { align-self: flex-start; margin-top: var(--s2); }
@media (max-width: 560px) { .sss__tumu { align-self: stretch; justify-content: center; } }
@media (max-width: 1024px) {
  .sssy { grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
  .sssy__yan { position: static; }
  .sssy__mn { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
  .sssy__mn a { flex: none; }
  .sssy__yrd { display: none; }
}

/* ==========================================================================
   MOBIL: YANA KAYAN SERITLER DIKEY KAYDIRMAYI YUTMASIN (musteri: "mobilde ana
   sayfada takili kaliyor, yukari asagi cok zor gidiyor")
   - overflow-x:auto olan kutu tarayicida dikeyde de kaydirilabilir sayilir;
     karta dokununca hover efektiyle birkac px tasinca parmagin dikey hareketi
     seride gidiyor, sayfa kaymiyordu -> dikey kaydirma kapali.
   - Dokunmatik ekranda kartlarin "yukari kalkma" efekti kapali.
   - Mobilde karta kilitlenme yumusak (proximity): capraz kaydirmada takilmaz.
   ========================================================================== */
.srt__ls, .kaydir-560, .bnr, .sk, .tbt__ls, .odd__glr, .bln, .sssy__mn {
  overflow-y: hidden; touch-action: pan-x pan-y;
}
@media (hover: none) {
  .kart:hover, .otel:hover, .yrm:hover, .bnr__o:hover, .dst:hover, .bnt__tum:hover,
  .karo:hover, .tbt__k:hover, .bt--bg:hover { transform: none; }
}
@media (max-width: 560px) {
  .srt__ls, .kaydir-560, .bnr { scroll-snap-type: x proximity; }
}
