/* ==========================================================================
   osp-reservation.css: magaza rezervasyon sayfasi (/reservation/<slug>) · kp34/M tur 2, 2026-10-30
   --------------------------------------------------------------------------
   Yalniz application/views/layouts/reservation_form.php yukler. Butun
   seciciler `#osp-rez.osp-rez` (sayfa govdesi) ya da `section.osp-rez-page`
   (rezervasyon sayfasinin kok bolumu) altinda; sitenin baska sayfasina
   dokunmaz.

   Dil: platformun yeni sayfalari (omer, tur 2: "diger modern gorunumu baz al").
     - Baslik blogu: ana sayfa .sec-head / kp33/O iletisim: ortali, en cok
       680px; h1 800 kalinlik, 30-44px; alt satir --osp-muted.
     - Govde: --osp-bg zemin + ustte tek marka isimasi (iletisim / giris
       sayfasindaki radial-gradient).
     - Kart: yuzey, 1px cizgi, 20px kose, genis yumusak golge (iletisim karti).
     - Gonder: iletisim sayfasindaki tam genislik 52px, duz --osp-brand-600.
     - Musaitlik satirlari: kp33/S magazalar karti gibi "Bugun" vurgusu.
   Renk / aralik / kose / golge osp-theme.css'teki --osp-* token'lari; acik +
   koyu tema eslemesi oradan gelir (body.theme-dark).

   Eski tarayici (Edge 16 / iOS 12 Safari / Chrome 58 / Firefox 60):
   flex `gap`, `inset`, `aspect-ratio`, `:is/:where/:has` YOK. clamp() yalniz
   onunde duz deger yedegiyle. Her var() yedek degerli (acik tema degeri).
   Izgara boslugu hem eski `grid-column-gap` hem yeni `column-gap` adiyla.
   Odak halkasi :focus ile gorunur; :focus-visible'i bilen tarayici fare
   odaginda gizler (bilmeyen tarayici o kurali tumden atar).

   Ozgulluk: `#osp-rez.osp-rez …` (1,1,0)+. !important yalniz satici
   CSS'inin !important'ina karsi; her birinin yaninda gerekcesi var.
   ========================================================================== */

/* ---------------------------------------------------------- bolum ----- */
/* style.css `.sectionDefault{min-height:100vh; padding-bottom:120px}`:
   rezervasyon sayfasinda bosluk yalniz govdeden gelir. */
section.sectionDefault.osp-rez-page {
  min-height: 0;
  padding-bottom: 0;
}

/* Ust pay: magaza ust menusu 992px altinda `.customNav` position:fixed, 63px
   (olculdu 390/768) ve altindaki bolumu kapatiyordu (eski bant bunu kendi
   ic payiyla karsiliyordu). 992px ve ustunde menunun kendi akistaki payi
   62px'i zaten veriyor (olculdu 1024/1366). */
#osp-rez.osp-rez {
  position: relative;
  z-index: 0;
  padding: 96px 0 56px;
  background-color: #fff;
  background-color: var(--osp-bg, #fff);
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  /* Yazi tipi govdeden (osp-theme.css body: --osp-font) miras; basliklar
     satici CSS'inin Montserrat'ina karsi asagida `inherit` alir. */
}

/* Iletisim / giris sayfasindaki marka isimasi: tek dekoratif oge. */
#osp-rez.osp-rez::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  height: 360px;
  background-image: radial-gradient(110% 100% at 50% 0, rgba(47, 107, 255, .10), transparent 70%);
  background-image: radial-gradient(110% 100% at 50% 0, var(--osp-brand-tint, rgba(47, 107, 255, .10)), transparent 70%);
  pointer-events: none;
}

#osp-rez.osp-rez .osp-rez__wrap {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding-left: 16px;
  padding-right: 16px;
}

/* ---------------------------------------------------------- baslik ---- */
#osp-rez.osp-rez .osp-rez__head {
  max-width: 680px;
  margin: 0 auto 28px;
  text-align: center;
}

/* Magaza kimligi: kucuk logo + ad, hap icinde. */
#osp-rez.osp-rez .osp-rez__shop {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  max-width: 100%;
  margin: 0 0 16px;
  padding: 4px 14px 4px 4px;
  border: 1px solid rgba(15, 23, 42, .10);
  border: 1px solid var(--osp-line, rgba(15, 23, 42, .10));
  border-radius: 999px;
  background-color: #fff;
  background-color: var(--osp-surface, #fff);
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.3;
}

#osp-rez.osp-rez .osp-rez__shop span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Logo yoksa yalniz ad: sol pay hap ile ayni. */
#osp-rez.osp-rez .osp-rez__shop span:first-child {
  padding-left: 10px;
}

#osp-rez.osp-rez .osp-rez__logo {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  margin-right: 10px;
  border: 1px solid rgba(15, 23, 42, .10);
  border: 1px solid var(--osp-line, rgba(15, 23, 42, .10));
  border-radius: 999px;
  background-color: #fff;
  -o-object-fit: contain;
  object-fit: contain;
}

#osp-rez.osp-rez .osp-rez__title {
  margin: 0 0 12px;
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-family: inherit;
  font-size: 1.875rem;
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.02em;
  text-transform: none;
  text-wrap: balance;
}

#osp-rez.osp-rez .osp-rez__lede {
  max-width: 62ch;
  margin: 0 auto;
  color: #5a6a89;
  color: var(--osp-muted, #5a6a89);
  font-size: 1.0625rem;
  line-height: 1.65;
  text-wrap: pretty;
}

/* ------------------------------------------------------------ kart ---- */
#osp-rez.osp-rez .osp-rez__card {
  padding: 24px 20px;
  border: 1px solid rgba(15, 23, 42, .10);
  border: 1px solid var(--osp-line, rgba(15, 23, 42, .10));
  border-radius: 20px;
  border-radius: var(--osp-r-lg, 20px);
  background-color: #fff;
  background-color: var(--osp-surface, #fff);
  box-shadow: 0 20px 50px -24px rgba(15, 23, 42, .22);
  box-shadow: var(--osp-shadow-2, 0 20px 50px -24px rgba(15, 23, 42, .22));
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
}

/* Musaitlik karti formdan bir kademe hafif. */
#osp-rez.osp-rez .osp-rez__card--soft {
  box-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 10px 26px -20px rgba(15, 23, 42, .30);
  box-shadow: var(--osp-shadow-1, 0 1px 2px rgba(15, 23, 42, .05), 0 10px 26px -20px rgba(15, 23, 42, .30));
}

/* Telefon: musaitlik once, form sonra (bilgi notu "once kontrol edin" diyor). */
#osp-rez.osp-rez .osp-rez__layout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

#osp-rez.osp-rez .osp-rez__aside {
  margin-bottom: 20px;
}

#osp-rez.osp-rez .osp-rez__main {
  min-width: 0;
}

/* ------------------------------------------------------- musaitlik ---- */
/* style.css `.appointment_schedule_area` 30px sol pay veriyordu. */
#osp-rez.osp-rez .appointment_schedule_area {
  width: 100%;
  margin: 0;
  padding: 0;
}

#osp-rez.osp-rez .osp-rez__aside-title {
  margin: 0 0 6px;
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-family: inherit;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
}

/* !important GEREKCE: style.css `.ap_info{color:#777 !important}`.
   #777 beyaz kartta 4,48:1 (AA 4,5:1 alti). --osp-muted #5a6a89 → 5,44:1. */
#osp-rez.osp-rez .ap_info {
  margin: 0 0 8px;
  padding-left: 0;
  color: var(--osp-muted, #5a6a89) !important;
  font-size: .875rem;
  line-height: 1.55;
}

#osp-rez.osp-rez .appointment_dates {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

#osp-rez.osp-rez .appointment_dates li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  min-height: 44px;
  margin: 0 -10px;
  padding: 8px 10px;
  border-top: 1px solid rgba(15, 23, 42, .10);
  border-top: 1px solid var(--osp-line, rgba(15, 23, 42, .10));
  font-size: .9375rem;
  line-height: 1.4;
}

#osp-rez.osp-rez .appointment_dates li:first-child {
  border-top-color: transparent;
}

/* Bugun: magazalar sayfasindaki gibi tek satir vurgusu. */
#osp-rez.osp-rez .appointment_dates li.is-today {
  border-top-color: transparent;
  border-radius: 10px;
  border-radius: var(--osp-r-sm, 10px);
  background-color: rgba(47, 107, 255, .10);
  background-color: var(--osp-brand-tint, rgba(47, 107, 255, .10));
}

#osp-rez.osp-rez .appointment_dates li.is-today + li {
  border-top-color: transparent;
}

#osp-rez.osp-rez .osp-rez__day {
  min-width: 0;
  margin-right: 12px;
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-weight: 500;
}

#osp-rez.osp-rez .osp-rez__today {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 8px;
  border-radius: 999px;
  background-color: #2a5fe6;
  background-color: var(--osp-brand-600, #2a5fe6);
  color: #fff;
  color: var(--osp-on-brand, #fff);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.5;
  vertical-align: 1px;
}

#osp-rez.osp-rez .osp-rez__time {
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

#osp-rez.osp-rez li.not_available .osp-rez__day,
#osp-rez.osp-rez .osp-rez__off {
  color: #5a6a89;
  color: var(--osp-muted, #5a6a89);
}

#osp-rez.osp-rez .osp-rez__off {
  /* kp34/T 2026-10-30 omer: "Kapali" saatlerle ayni boyut/kalinlik (onceden .875rem / 400, kucuk ve sonuk gorunuyordu) */
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
}

/* ------------------------------------------------------------ form ---- */
#osp-rez.osp-rez form {
  margin: 0;
}

#osp-rez.osp-rez .osp-rez__req {
  margin: 0 0 16px;
  color: #5a6a89;
  color: var(--osp-muted, #5a6a89);
  font-size: .8125rem;
}

/* !important GEREKCE: style.css:221 `.error{color:red !important}`
   (beyaz kartta 4,0:1, AA alti). --osp-danger acikta #b91c1c 6,47:1,
   koyuda #fca5a5. */
#osp-rez.osp-rez .error {
  color: var(--osp-danger, #b91c1c) !important;
}

#osp-rez.osp-rez .form-group {
  margin-bottom: 20px;
}

#osp-rez.osp-rez .form-group > label {
  display: block;
  margin-bottom: 8px;
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

#osp-rez.osp-rez .osp-rez__opt {
  color: #5a6a89;
  color: var(--osp-muted, #5a6a89);
  font-weight: 400;
}

#osp-rez.osp-rez .osp-rez__pair {
  display: block;
}

/* style.css `form.defaultForm input.form-control{border-radius:0}` metin
   alanlarini kare yapiyordu, select'ler yuvarlakti. Hepsi ayni koseye. */
#osp-rez.osp-rez form.defaultForm .form-control[class] {
  border-radius: 14px;
  border-radius: var(--osp-r, 14px);
  /* iOS Safari 16px altindaki alana odaklaninca sayfayi yakinlastiriyor. */
  font-size: 16px;
}

#osp-rez.osp-rez form.defaultForm textarea.form-control[class] {
  min-height: 152px;
  resize: vertical;
}

/* Tarih alani + takvim kutusu tek kutu gibi. */
#osp-rez.osp-rez form.defaultForm .input-group > .form-control[class] {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

#osp-rez.osp-rez .input-group-append .input-group-text {
  min-width: 48px;
  height: 100%;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  border-color: #ddd;
  border-color: var(--border-color, #ddd);
  border-radius: 0 14px 14px 0;
  background-color: #f3f5f9;
  background-color: var(--body-color, #f3f5f9);
}

body.theme-light #osp-rez.osp-rez .input-group-append .input-group-text {
  border-color: #ddd;
}

#osp-rez.osp-rez .osp-rez__captcha {
  max-width: 100%;
  overflow-x: auto;
}

/* ----------------------------------------------------------- eylem ---- */
#osp-rez.osp-rez .osp-rez__actions {
  margin-top: 8px;
}

#osp-rez.osp-rez .osp-rez__submit[class] {
  position: relative;
  display: block;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 24px;
  border-radius: 14px;
  border-radius: var(--osp-r, 14px);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  -webkit-transition: -webkit-transform 200ms cubic-bezier(.16, .84, .44, 1), box-shadow 200ms cubic-bezier(.16, .84, .44, 1);
  transition: transform 200ms cubic-bezier(.16, .84, .44, 1), box-shadow 200ms cubic-bezier(.16, .84, .44, 1);
}

#osp-rez.osp-rez .osp-rez__submit .fas {
  margin-left: 4px;
  font-size: .875em;
}

#osp-rez.osp-rez .osp-rez__submit[class]:hover {
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -12px rgba(47, 107, 255, .45);
  box-shadow: var(--osp-shadow-brand, 0 12px 30px -12px rgba(47, 107, 255, .45));
}

#osp-rez.osp-rez .osp-rez__submit[class]:active,
#osp-rez.osp-rez .osp-rez__submit[class]:disabled {
  -webkit-transform: none;
  transform: none;
}

/* !important GEREKCE: style.css `button.btn{color:#fff !important}`. Koyu
   temada dolgu --osp-brand-600 #7aa2ff, ustunde beyaz 2,49:1 (AA alti).
   --osp-on-brand koyu temada #061024 (7,62:1), acik temada #fff (5,42:1).
   kp33/O iletisim sayfasindaki duzeltmenin aynisi. */
#osp-rez.osp-rez .osp-rez__submit[class] {
  color: var(--osp-on-brand, #fff) !important;
}

/* Klavye odagi: style.css `.btn{outline:none !important}` +
   `.btn:focus{box-shadow:none !important}`. Halka ::after ile (::before'u
   gonderim sirasindaki .btn-spinner kullanir). */
#osp-rez.osp-rez .osp-rez__submit[class]::after {
  content: "";
  position: absolute;
  top: -5px;
  right: -5px;
  bottom: -5px;
  left: -5px;
  border: 3px solid #2f6bff;
  border: 3px solid var(--osp-brand, #2f6bff);
  border-radius: 19px;
  opacity: 0;
  pointer-events: none;
}

#osp-rez.osp-rez .osp-rez__submit[class]:focus::after {
  opacity: 1;
}

/* Ayri kural: :focus-visible'i bilmeyen tarayici bu kurali tumden atar. */
#osp-rez.osp-rez .osp-rez__submit[class]:focus:not(:focus-visible)::after {
  opacity: 0;
}

/* ---------------------------------------------------- ozellik kapali --- */
#osp-rez.osp-rez .osp-rez__closed {
  max-width: 560px;
  margin: 0 auto;
  padding: 40px 24px;
  text-align: center;
}

#osp-rez.osp-rez .osp-rez__closed .fa {
  display: block;
  margin-bottom: 12px;
  color: #5a6a89;
  color: var(--osp-muted, #5a6a89);
  font-size: 32px;
}

#osp-rez.osp-rez .osp-rez__closed p {
  margin: 0;
  color: #0f1b33;
  color: var(--osp-ink, #0f1b33);
  font-size: 1.0625rem;
  font-weight: 600;
}

/* ------------------------------------------------------- kirilimlar --- */
@media (min-width: 640px) {
  #osp-rez.osp-rez .osp-rez__pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-column-gap: 16px;
    column-gap: 16px;
  }
}

@media (min-width: 768px) {
  #osp-rez.osp-rez {
    padding: 120px 0 88px;
  }

  #osp-rez.osp-rez .osp-rez__wrap {
    padding-left: 20px;
    padding-right: 20px;
  }

  #osp-rez.osp-rez .osp-rez__head {
    margin-bottom: 40px;
  }

  #osp-rez.osp-rez .osp-rez__lede {
    font-size: 1.125rem;
  }

  #osp-rez.osp-rez .osp-rez__card {
    padding: 40px;
  }

  #osp-rez.osp-rez .osp-rez__card--soft {
    padding: 28px;
  }
}

@media (min-width: 992px) {
  #osp-rez.osp-rez {
    padding-top: 56px;
  }

  #osp-rez.osp-rez .osp-rez__layout {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }

  #osp-rez.osp-rez .osp-rez__main {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 0%;
    flex: 1 1 0%;
  }

  #osp-rez.osp-rez .osp-rez__aside {
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 340px;
    flex: 0 0 340px;
    margin-bottom: 0;
    margin-left: 24px;
  }

  /* Genis ekranda musaitlik karti kaydirirken gorunur kalir. */
  #osp-rez.osp-rez .osp-rez__card--soft {
    position: -webkit-sticky;
    position: sticky;
    top: 96px;
  }
}

/* clamp() yedegi (Edge 16 / Chrome 58 / Firefox 60 / Safari 12 clamp bilmez;
   olculdu: Chrome 58'de h1 30px'te kaliyordu). Modern tarayici bu blogu hic okumaz. */
@supports not (font-size: clamp(1px, 1vw, 2px)) {
  @media (min-width: 750px) {
    #osp-rez.osp-rez .osp-rez__title {
      font-size: 4vw;
    }
  }

  @media (min-width: 1100px) {
    #osp-rez.osp-rez .osp-rez__title {
      font-size: 2.75rem;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  #osp-rez.osp-rez .osp-rez__submit[class],
  #osp-rez.osp-rez .osp-rez__submit[class]:hover {
    -webkit-transform: none;
    transform: none;
    -webkit-transition: none;
    transition: none;
  }
}
