/* ==========================================================================
   Mai Virtual Office — tek stil dosyası
   Yön: sade & minimal. Ölçülü tipografi, hairline çizgiler, tek radius (6px).
   Kural: yeni hex üretme, token kullan. transition: all yasak.
   ========================================================================== */

/* --- Font: Onest variable, yerel barındırma ------------------------------ */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/onest-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/onest-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Token seti ---------------------------------------------------------- */
:root {
  --ink: #172033;
  --ink-soft: #1e2942;
  --ink-deep: #121a2b;
  --white: #ffffff;
  --gray: #f7f8fa;
  --gray-2: #eff1f4;
  --line: #e4e7ec;
  --line-strong: #d4d9e2;
  --line-dark: rgba(255, 255, 255, 0.1);
  --line-dark-strong: rgba(255, 255, 255, 0.2);
  /* Koyu zeminde ikon-only kontrol/çizgili buton kenarı — .28 ve .32 literalleri tek değerde birleşti */
  --line-dark-kontrol: rgba(255, 255, 255, 0.3);
  /* Koyu zeminde FORM ALANI kenarı — dekoratif hairline değil, arayüz bileşeni kenarı.
     Ölçüm: rgba(255,255,255,.40) --ink üzerine düşünce #747985 olur;
     input dolgusuna (%5 beyaz → #232b3d) karşı 3.24:1, --ink zeminine karşı 3.73:1.
     WCAG 1.4.11 (arayüz bileşeni) eşiği 3:1 — ikisi de geçiyor.
     --line-dark (.10) ile ölçülen oran 1.34:1 idi, bu yüzden ayrı token. */
  --line-input: rgba(255, 255, 255, 0.4);
  /* Açık zeminli kart kenarı — tek kaynak (paket/adım/fark/özellik/ek-hizmet aynı dili konuşur) */
  --kart-kenar: rgba(23, 32, 51, 0.07);
  --kart-kenar-hover: rgba(23, 32, 51, 0.16);
  --dim: #5b6478;
  --dim-dark: rgba(255, 255, 255, 0.6);
  --dim-dark-2: rgba(255, 255, 255, 0.52); /* AA: ink üstünde 5.35:1 */
  --wa: #25d366;

  /* Turuncu vurgu — ÖLÇÜLMÜŞ KONTRAST:
     turuncu dolgu + lacivert yazı  → 6.05:1  ✓
     beyaz yazı turuncu üstünde     → 2.69:1  (AA altı)
     turuncu metin/ikon beyaz zemin → 2.69:1  (AA altı)
     koyu lacivert zeminde turuncu  → 6.05:1  ✓
     2026-09-09 OVERRIDE: turuncu üzerindeki yazı/ikon BEYAZ olacak (proje sahibi kararı).
     Karar bilinçli alındı, kapsam 36px ikon dairesi + küçük rozet + başlık vurgusuyla sınırlı;
     turuncu yüzey büyütülecekse karar yeniden değerlendirilmeli.
     Kullanılmayan --accent-ink / --accent-soft token'ları bu kararla çeliştiği için kaldırıldı. */
  --accent-1: #fe6b02;
  --accent-2: #ff8201;
  --accent-grad: linear-gradient(135deg, #fe6b02 0%, #ff8201 50%, #fe6b02 100%);

  /* Köşe yarıçapı — Mai Müşavirlik ile aynı felsefe:
     yüzeyler (kart, panel, görsel, input, menü satırı) tek değer 6px;
     butonlar ve ikon-only kontroller bunun bilinçli istisnası: pil / daire. */
  --r: 6px;
  --r-pill: 999px;
  --r-daire: 999px;

  --wrap: 1400px;
  --gutter: 24px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --t-micro: 170ms;
  --t-soft: 560ms;

  /* Boşluk ölçeği — tek kaynak; bileşene özel margin yazmak yerine bunlar kullanılır */
  --bosluk-blok: 3rem;    /* başlık bloğu → altındaki içerik */
  --bosluk-metin: 1rem;   /* h2 → açıklama paragrafı */
  --pad-kart: 2rem;
  --pad-kart-sm: 1.5rem;
  --sec-y: 7rem;
  --sec-y-sik: calc(var(--sec-y) * 0.64); /* ikinci kademe — --sec-y küçülünce birlikte küçülür */

  --header-h: 96px;
  --header-h-stuck: 70px;
}

@media (max-width: 760px) {
  :root { --bosluk-blok: 2.25rem; --pad-kart: 1.5rem; --pad-kart-sm: 1.25rem; }
}

/* Turuncu yüzeyler: yavaş, sakin gradyan kayması (yalnız background-position) */
@keyframes accent-kay {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
/* Turuncu yüzeylerin TEK kaydı — dört kullanım yeri de buradan beslenir.
   Kullanan kurallar `background` kısayolunu yazmaz (kısayol background-size'ı sıfırlar);
   dolgu rengi gereken yerde yalnız background-color yazılır. */
.vurgu,
.fark__ic,
.paket--one-cikan .paket__rozet,
.hero__gosterge button[aria-current='true']::before {
  background-image: var(--accent-grad);
  background-size: 220% 220%;
  animation: accent-kay 14s ease-in-out infinite;
}

/* Başlıkta turuncu vurgulanan kelime */
.vurgu {
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* --- Reset --------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

* { margin: 0; padding: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
  font-family: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--white);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
ul, ol { list-style: none; }

::selection { background: var(--ink); color: var(--white); }

/* Odak halkası öğenin kendi yarıçapını izler — pil butonda pil kalır */
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.on-dark :focus-visible { outline-color: var(--white); }
/* JS'in odağı taşıdığı gezinme hedefleri (skip-link → main, dizin → madde) halka göstermez;
   odak yine oraya taşınır, sadece görsel halka bastırılır. */
[tabindex='-1']:focus, [tabindex='-1']:focus-visible { outline: none; }

/* --- Tipografi ölçeği ---------------------------------------------------- */
h1, h2, h3, h4 { font-weight: 500; letter-spacing: -0.022em; line-height: 1.15; text-wrap: balance; }
h1 { font-size: clamp(2.2rem, 4.3vw, 3.75rem); line-height: 1.1; letter-spacing: -0.028em; }
h2 { font-size: clamp(1.75rem, 2.9vw, 2.6rem); }
h3 { font-size: 1.1rem; line-height: 1.35; letter-spacing: -0.015em; }
p { text-wrap: pretty; }

.t-sub { font-size: 1rem; color: var(--dim); }
.t-sub--tight { margin-top: var(--bosluk-metin); }
.section-foot { margin-top: 2rem; }
.rows--spaced { margin-top: 2.5rem; }
.card__date { font-size: 0.82rem; color: var(--dim); }
.card__title { margin-top: 0.4rem; }
.t-xs { font-size: 0.82rem; }
.num { font-variant-numeric: tabular-nums; }

/* --- Yerleşim ------------------------------------------------------------ */
.wrap {
  width: min(var(--wrap), 100% - (var(--gutter) * 2));
  margin-inline: auto;
}

.section { padding-block: var(--sec-y); }
.section--tight { padding-block: var(--sec-y-sik); }
.section--gray { background: var(--gray); }
.section--dark { background: var(--ink); color: var(--white); }
.section--dark .t-sub { color: var(--dim-dark); }

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: var(--bosluk-blok);
}
.section-head p { margin-top: var(--bosluk-metin); max-width: 58ch; }

/* --- Butonlar — pil formu; dolu CTA'larda ok ters renkli daire rozet içinde -- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 1px solid transparent;
  border-radius: var(--r-pill);
  padding: 0.66rem 1.2rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color var(--t-micro) var(--ease),
    border-color var(--t-micro) var(--ease),
    color var(--t-micro) var(--ease);
}
.btn__metin { white-space: nowrap; }
.btn svg { width: 15px; height: 15px; flex: none; transition: transform 200ms var(--ease); }
.btn:hover svg { transform: translateX(3px); }

/* Rozetli varyant — ok, butonun kendi renginin tersi bir dairede uca oturur */
.btn--rozetli { justify-content: flex-start; gap: 0.7rem; padding: 0.26rem 0.26rem 0.26rem 1.25rem; }
.btn__rozet {
  flex: none;
  margin-left: auto;
  width: 2.05rem;
  height: 2.05rem;
  display: grid;
  place-items: center;
  border-radius: var(--r-daire);
  transition: background-color var(--t-micro) var(--ease), color var(--t-micro) var(--ease);
}
.btn__rozet svg { width: 13px; height: 13px; }

/* Koyu zeminde dolu: beyaz buton + lacivert yazı */
.btn--primary { background: var(--white); color: var(--ink); }
.btn--primary:hover { background: rgba(255, 255, 255, 0.88); }
.btn--primary .btn__rozet { background: var(--ink); color: var(--white); }

/* Açık zeminde dolu: lacivert buton + beyaz yazı */
.btn--dark { background: var(--ink); color: var(--white); }
.btn--dark:hover { background: var(--ink-soft); }
.btn--dark .btn__rozet { background: var(--white); color: var(--ink); }

/* Çizgili — ikincil, rozetsiz */
.btn--ghost { border-color: var(--line-dark-kontrol); color: var(--white); }
.btn--ghost:hover { border-color: var(--white); background: var(--line-dark); }

.btn--outline { border-color: var(--line-strong); color: var(--ink); background: transparent; }
.btn--outline:hover { border-color: var(--ink); background: var(--gray); }

.btn--sm { padding: 0.5rem 0.95rem; font-size: 0.82rem; }
.btn--sm.btn--rozetli { padding: 0.2rem 0.2rem 0.2rem 1rem; }
.btn--sm .btn__rozet { width: 1.75rem; height: 1.75rem; }
.btn--sm .btn__rozet svg { width: 12px; height: 12px; }
.btn--block { width: 100%; }

.link-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink);
  border-bottom: 1px solid var(--line-strong);
  padding-bottom: 2px;
  transition: border-color var(--t-micro) var(--ease), gap var(--t-micro) var(--ease);
}
/* Görünen bağlantı 25px yüksekliğinde kalır ama dokunma hedefi 44px'e çıkar:
   alt çizginin yeri kaymasın diye alan ::after ile büyütülür, layout'a dokunulmaz.
   .oda__alt / .card__body içinde bağlantının altı ve üstü boşluk olduğu için çakışma yok. */
.link-more::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  min-width: 44px;
  height: 44px;
}
/* Satır içi ok: viewBox'lı SVG'nin doğal ölçüsü yok, flex kabında 0'a çöküyordu —
   sitedeki tüm "Detay" oklarını görünmez yapan buydu. Ölçü ve flex:none şart. */
.link-more svg { width: 14px; height: 14px; flex: none; }
.link-more:hover { border-color: var(--accent-1); gap: 0.6rem; }

/* --- Header — hero ile bütünleşik başlar, kaydırınca beyazlar ve kısalır --- */
.site-head {
  position: sticky;
  top: 0;
  z-index: 80;
  background: var(--white);
  border-bottom: 1px solid var(--line);
  transition: background-color 320ms var(--ease),
    border-color 320ms var(--ease),
    box-shadow 320ms var(--ease);
}
/* Üç sütun: solda menü (mobilde burger), ortada logo, sağda iletişim.
   Yan sütunlar 1fr olduğu için logo gerçekten ortada durur. */
.site-head__in {
  position: relative;
  width: min(var(--wrap), 100% - (var(--gutter) * 2));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
  height: var(--header-h);
  z-index: 1;
  transition: height 320ms var(--ease);
}
.site-head__in > .nav,
.site-head__in > .burger { grid-column: 1; grid-row: 1; justify-self: start; }
.site-head__in > .site-head__logo { grid-column: 2; grid-row: 1; justify-self: center; }
.site-head__in > .site-head__sag { grid-column: 3; grid-row: 1; justify-self: end; }

/* Logo — iki varyant: koyu zeminde beyaz, açık zeminde lacivert gradyanlı */
.site-head__logo { display: block; position: relative; }
.logo-img { display: block; height: 70px; width: auto; transition: height 320ms var(--ease), opacity 320ms var(--ease); }
.logo-img--beyaz { position: absolute; inset: 0; opacity: 0; }
.site-head--seffaf .logo-img--renkli { opacity: 0; }
.site-head--seffaf .logo-img--beyaz { opacity: 1; }
.site-head--seffaf.is-stuck .logo-img--renkli { opacity: 1; }
.site-head--seffaf.is-stuck .logo-img--beyaz { opacity: 0; }
.site-head.is-stuck .logo-img { height: 56px; }

/* Sağ blok */
.site-head__sag { display: flex; align-items: center; gap: 1rem; }
.site-head__tel {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.7rem;
  border-radius: var(--r-pill);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ink);
  transition: background-color var(--t-micro) var(--ease), color var(--t-micro) var(--ease);
}
.site-head__tel svg { width: 16px; height: 16px; }
.site-head__tel:hover { background: var(--gray); }

/* Header CTA zemine göre ters: koyu başlıkta dolu beyaz, beyaz başlıkta dolu lacivert */
.site-head__cta { background: var(--ink); border-color: var(--ink); color: var(--white); }
.site-head__cta:hover { background: var(--ink-soft); border-color: var(--ink-soft); }

/* Dil seçici arayüzden kaldırıldı (2026-09-08 OVERRIDE). EN altyapısı, rotalar ve
   içerik dosyaları duruyor; geri eklenirse CSS'i bileşeniyle birlikte yazılır. */

/* Şeffaf mod — hero'nun koyu zemini üzerinde yüzer.
   Hero'da gerçek fotoğraf olduğu için üstte ince bir karartma şart:
   aksi hâlde açık kareler üzerinde menü ve telefon okunmuyor. */
.site-head--seffaf {
  position: fixed;
  left: 0;
  right: 0;
  background: transparent;
  border-bottom-color: transparent;
}
.site-head--seffaf .site-head__logo { color: var(--white); }
.site-head--seffaf .nav__link { color: var(--white); }
.site-head--seffaf .nav__link:hover,
.site-head--seffaf .nav__link[aria-current='page'] { color: var(--white); opacity: 0.82; }
.site-head--seffaf .nav__ok { opacity: 0.85; }
.site-head--seffaf .site-head__tel { color: var(--white); }
.site-head--seffaf .site-head__tel:hover { background: var(--line-dark); }
.site-head--seffaf .burger { color: var(--white); border-color: rgba(255, 255, 255, 0.3); }
.site-head--seffaf .site-head__cta { background: var(--white); border-color: var(--white); color: var(--ink); }
.site-head--seffaf .site-head__cta:hover { background: rgba(255, 255, 255, 0.88); border-color: rgba(255, 255, 255, 0.88); }
/* CTA zemine göre ters: koyu başlıkta dolu beyaz, beyaz başlıkta dolu lacivert */

/* Kaydırınca: beyaz zemin, kısalmış yükseklik.
   left/right şart: sticky → fixed geçişinde yatay kenar verilmezse kutu
   shrink-to-fit olur ve menü içeriğe yapışıp hizayı bozar. */
.site-head.is-stuck {
  position: fixed;
  left: 0;
  right: 0;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  border-bottom-color: var(--line);
  box-shadow: 0 1px 22px rgba(23, 32, 51, 0.08);
}
.site-head.is-stuck .site-head__in { height: var(--header-h-stuck); }
.site-head.is-stuck .site-head__logo { color: var(--ink); }
.site-head.is-stuck .nav__link { color: var(--dim); }
.site-head.is-stuck .nav__link:hover,
.site-head.is-stuck .nav__link[aria-current='page'] { color: var(--ink); }
.site-head.is-stuck .site-head__tel { color: var(--ink); }
.site-head.is-stuck .site-head__tel:hover { background: var(--gray); }
.site-head.is-stuck .burger { color: var(--ink); border-color: var(--line-strong); }
.site-head.is-stuck .site-head__cta { background: var(--ink); border-color: var(--ink); color: var(--white); }

/* --- Menü ----------------------------------------------------------------- */
.nav__list { display: flex; align-items: center; gap: 0.1rem; }
.nav__item { position: relative; }
.nav__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.6rem 0.85rem;
  border-radius: var(--r);
  font-size: 0.93rem;
  font-weight: 500;
  color: var(--dim);
  transition: color var(--t-micro) var(--ease);
}
.nav__link:hover, .nav__link[aria-current='page'] { color: var(--ink); }
.nav__ok { width: 13px; height: 13px; opacity: 0.6; transition: transform 240ms var(--ease); }
.nav__item[data-open='true'] .nav__ok { transform: rotate(180deg); }
/* --- Mega menü — Çalışma Alanları -----------------------------------------
   Panel tam olarak site genişliğinde durur: konumlandığı kutu .site-head__in,
   o da zaten min(--wrap, 100% - 2*--gutter). Bu yüzden mega'nın kendi wrap
   hesabı yok — left/right 0 yeterli. Menü öğesi bunun için static olur.
   Solda ikonlu iki sütun, sağda tam boy görsel; ikisi de sayfa bağlantısı.
   Panel form, telefon, çalışma saati veya buton taşımaz. */
.nav__item--mega { position: static; }
.mega {
  position: absolute;
  top: calc(100% - 0.5rem);
  left: 0;
  right: 0;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: 0 28px 60px -34px rgba(23, 32, 51, 0.32);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 220ms;
}
.nav__item--mega[data-open='true'] .mega { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.mega__in { display: grid; grid-template-columns: 1.5fr 1fr; align-items: stretch; }

/* Sol: iki sütunlu hizmet listesi + alt bağlantı */
.mega__liste {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-content: start;
  gap: 0.15rem 1.25rem;
  padding: 1.75rem;
}
.mega__item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.9rem;
  padding: 0.7rem 0.75rem;
  border-radius: var(--r);
  transition: background-color var(--t-micro) var(--ease);
}
.mega__item:hover { background: var(--gray); }
.mega__ic { display: block; color: var(--dim); transition: color var(--t-micro) var(--ease); }
.mega__ic svg { width: 26px; height: 26px; }
.mega__item:hover .mega__ic { color: var(--ink); }
.mega__txt strong { display: block; font-size: 0.95rem; font-weight: 500; line-height: 1.35; color: var(--ink); }
.mega__txt span { display: block; margin-top: 0.15rem; font-size: 0.8rem; line-height: 1.45; color: var(--dim); }
.mega__alt {
  grid-column: 1 / -1;
  margin-top: 0.9rem;
  padding: 1.1rem 0.75rem 0;
  border-top: 1px solid var(--line);
}

/* Sağ: tam boy görsel — panelin kenarına kadar taşar, altında etiket */
.mega__yan { position: relative; display: block; min-height: 100%; overflow: hidden; }
.mega__yan img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-soft) var(--ease);
}
.mega__yan:hover img { transform: scale(1.04); }
.mega__yan::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(23, 32, 51, 0) 45%, rgba(23, 32, 51, 0.72) 100%);
}
.mega__yan-etiket {
  position: absolute;
  z-index: 2;
  left: 1.5rem;
  bottom: 1.25rem;
  right: 1.5rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--white);
}

/* --- Açılır liste — mega gerektirmeyen menüler (Kurumsal) ------------------
   Öğenin altına çapalanır, tek sütun. Beş bağlantılı Çalışma Alanları için
   yukarıdaki .mega kullanılır. */
.acilir {
  position: absolute;
  top: calc(100% + 0.55rem);
  left: 0;
  min-width: 15rem;
  padding: 0.4rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: 0 24px 50px -32px rgba(23, 32, 51, 0.3);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 220ms;
}
.nav__item[data-open='true'] .acilir { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.acilir__item {
  display: block;
  padding: 0.65rem 0.75rem;
  border-radius: var(--r);
  transition: background-color var(--t-micro) var(--ease);
}
.acilir__item:hover { background: var(--gray); }
.acilir__item strong { display: block; font-size: 0.92rem; font-weight: 500; color: var(--ink); }
.acilir__item span { display: block; margin-top: 0.12rem; font-size: 0.78rem; line-height: 1.45; color: var(--dim); }
/* --- Burger + mobil drawer ------------------------------------------------ */
.burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-daire);
  background: none;
  color: var(--ink);
  cursor: pointer;
  transition: background-color var(--t-micro) var(--ease), border-color var(--t-micro) var(--ease);
}
.burger span { display: block; width: 16px; height: 1.5px; background: currentColor; position: relative; }
.burger span::before, .burger span::after {
  content: '';
  position: absolute;
  left: 0;
  width: 16px;
  height: 1.5px;
  background: currentColor;
}
.burger span::before { top: -5px; }
.burger span::after { top: 5px; }

/* Kapalı drawer ekran dışında DEĞİL, erişim ağacının da dışında olmalı:
   yalnız translateX ile kaydırılırsa içindeki 16 odak durağı tab sırasında kalır.
   visibility geçişi mega menüdeki kalıbın aynısı; JS ayrıca `inert` de veriyor. */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--ink);
  color: var(--white);
  transform: translateX(-100%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 320ms var(--ease), visibility 0s linear 320ms;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.drawer[data-open='true'] {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
  transition: transform 320ms var(--ease), visibility 0s;
}
.drawer__head {
  height: var(--header-h-stuck);
  padding-inline: var(--gutter);
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line-dark);
}
.drawer__close {
  margin-left: auto;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line-dark-strong);
  border-radius: var(--r-daire);
  background: none;
  color: var(--white);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.drawer__body { padding: 0.5rem var(--gutter) 2rem; }
.acc__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--line-dark);
  color: var(--white);
  font-size: 1rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}
.acc__trigger .nav__ok { transition: transform 240ms var(--ease); }
.acc__trigger[aria-expanded='true'] .nav__ok { transform: rotate(180deg); }
/* max-height tek başına içeriği tab sırasından ve ekran okuyucudan çıkarmıyordu;
   visibility geçişi kapanış animasyonu bittikten sonra devreye girer. */
.acc__panel {
  overflow: hidden;
  max-height: 0;
  visibility: hidden;
  transition: max-height 300ms var(--ease), visibility 0s linear 300ms;
}
.acc__trigger[aria-expanded='true'] + .acc__panel {
  visibility: visible;
  transition: max-height 300ms var(--ease), visibility 0s;
}
.acc__panel a {
  display: block;
  padding: 0.75rem 0 0.75rem 0.9rem;
  font-size: 0.93rem;
  color: var(--dim-dark);
  border-bottom: 1px solid var(--line-dark);
}
.drawer__foot { margin-top: auto; padding: 1.5rem var(--gutter) 2rem; display: grid; gap: 0.625rem; }
.drawer__lang { display: none; align-items: center; gap: 0.5rem; padding-top: 0.5rem; font-size: 0.9rem; }
.drawer__lang a { padding: 0.4rem 0.75rem; border: 1px solid var(--line-dark); border-radius: var(--r-pill); color: var(--dim-dark); }
.drawer__lang a[aria-current='true'] { color: var(--white); border-color: var(--line-dark-strong); }
/* Marka glifi — koyu zeminlerde dekoratif, içerik taşımaz */
.marka-glif {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  opacity: 0.05;
}
.marka-glif img { width: 100%; height: auto; display: block; }

/* --- Hero — üç slayt; görsel sağda yatay kutuda, slaytla birlikte değişir -- */
.hero {
  position: relative;
  color: var(--white);
  overflow: hidden;
  /* Taban gradyan — lacivert ailesinde, üç durak */
  background: linear-gradient(158deg, var(--ink-soft) 0%, var(--ink) 46%, var(--ink-deep) 100%);
}

/* Hareketli zemin: iki yavaş aura + ince grid dokusu.
   Süsleme değil, düz koyu zeminde derinlik kurma işi görür. */
.hero__zemin {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.hero .marka-glif { width: 30rem; top: -3rem; left: -5rem; }
.bant .marka-glif { width: 22rem; right: -4rem; bottom: -6rem; opacity: 0.06; }
.hero__aura {
  position: absolute;
  border-radius: var(--r-daire);
  filter: blur(90px);
  will-change: transform;
}
.hero__aura--1 {
  width: 46rem;
  height: 46rem;
  top: -20rem;
  left: -12rem;
  background: radial-gradient(circle, rgba(58, 82, 148, 0.55) 0%, rgba(58, 82, 148, 0) 68%);
  animation: aura-kay-1 26s ease-in-out infinite;
}
.hero__aura--2 {
  width: 40rem;
  height: 40rem;
  right: 4%;
  bottom: -18rem;
  background: radial-gradient(circle, rgba(38, 53, 96, 0.7) 0%, rgba(38, 53, 96, 0) 70%);
  animation: aura-kay-2 34s ease-in-out infinite;
}
@keyframes aura-kay-1 {
  0%, 100% { transform: translate3d(-4%, -3%, 0) scale(1); }
  50%      { transform: translate3d(8%, 5%, 0) scale(1.14); }
}
@keyframes aura-kay-2 {
  0%, 100% { transform: translate3d(3%, 2%, 0) scale(1.05); }
  50%      { transform: translate3d(-7%, -4%, 0) scale(0.94); }
}

.hero__slaytlar { position: relative; z-index: 1; display: grid; }
.hero__slayt {
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
  min-height: 70vh;
  padding-top: var(--header-h);
  opacity: 0;
  visibility: hidden;
  transition: opacity 700ms var(--ease), visibility 700ms;
}
.hero__slayt.is-aktif { opacity: 1; visibility: visible; }
/* Fail-safe: JS yoksa ilk slayt görünür kalır */
.no-js .hero__slayt:first-child { opacity: 1; visibility: visible; }

.hero__ic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
  padding-block: 3.5rem 3rem;
}
/* Grid hücresinin uzun başlıkta taşmasını engeller (sahipsiz sınıfa gerçek tanım) */
.hero__metin { min-width: 0; }
.hero__baslik {
  font-size: clamp(2.2rem, 4.3vw, 3.75rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.028em;
  text-wrap: balance;
}
.hero__sub { margin-top: 1.1rem; max-width: 46ch; font-size: 1.05rem; color: var(--dim-dark); }
.hero__acts { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 2rem; }

/* Görsel kutusu — yatay, kart diliyle aynı yarıçap.
   İç sayfa hero'sunun kutusu (.sayfa-hero__kutu) AYNI kuralı paylaşır, kopyalamaz. */
.hero__kutu,
.sayfa-hero__kutu {
  position: relative;
  aspect-ratio: 16 / 10;
  border-radius: var(--r);
  overflow: hidden;
  background: var(--ink-soft);
  box-shadow: 0 30px 60px -40px rgba(0, 0, 0, 0.8);
}
.hero__kutu img,
.sayfa-hero__kutu img { width: 100%; height: 100%; object-fit: cover; }
/* Ölçek animasyonu yalnız slayt değişen ana sayfa hero'suna ait */
.hero__kutu img { transform: scale(1.05); transition: transform 1400ms var(--ease); }
.hero__slayt.is-aktif .hero__kutu img { transform: none; }

/* Slayt kontrolleri — göstergeler solda, oklar sağda */
.hero__kontrol {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 2.25rem;
}
/* Görünen çubuk 3px kalır ama dokunma/fare hedefi 24px olur (WCAG 2.5.8):
   çubuk ::before olarak çizilir, butonun kendisi şeffaf 24px'lik bir satırdır. */
.hero__gosterge { display: flex; align-items: center; gap: 0.5rem; }
.hero__gosterge button {
  width: 28px;
  height: 24px;
  display: grid;
  place-items: center;
  border: 0;
  background: none;
  cursor: pointer;
  transition: width var(--t-micro) var(--ease);
}
.hero__gosterge button::before {
  content: '';
  display: block;
  width: 100%;
  height: 3px;
  border-radius: var(--r-pill);
  background-color: var(--line-dark-kontrol);
  transition: background-color var(--t-micro) var(--ease);
}
.hero__gosterge button[aria-current='true'] { width: 44px; }
.hero__oklar { display: flex; gap: 0.5rem; }
.hero__ok {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-dark-kontrol);
  border-radius: var(--r-daire);
  background: none;
  color: var(--white);
  cursor: pointer;
  transition: background-color var(--t-micro) var(--ease), border-color var(--t-micro) var(--ease);
}
.hero__ok:hover { background: rgba(255, 255, 255, 0.12); border-color: var(--white); }
.hero__ok svg { width: 15px; height: 15px; }

/* Hero altı fayda şeridi */
.facts { position: relative; z-index: 2; border-top: 1px solid var(--line-dark); background: rgba(18, 26, 43, 0.55); }
.facts__in {
  width: min(var(--wrap), 100% - (var(--gutter) * 2));
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.facts__item { padding: 1.5rem 1.5rem 1.5rem 0; }
.facts__item + .facts__item { padding-left: 1.5rem; border-left: 1px solid var(--line-dark); }
.facts__item b { display: block; font-size: 0.95rem; font-weight: 500; }
.facts__item span { display: block; margin-top: 0.2rem; font-size: 0.85rem; color: var(--dim-dark-2); }
.facts__item .facts__ic { display: block; margin-bottom: 0.75rem; color: var(--white); }
.facts__item .facts__ic svg { width: 30px; height: 30px; }
/* --- Kartlar ------------------------------------------------------------- */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }

.card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.card:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--gray); }
.card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-soft) var(--ease);
}
.card:hover .card__media img { transform: scale(1.04); }
.card__body { padding: var(--pad-kart-sm); display: flex; flex-direction: column; flex: 1; }
.card__body p { margin-top: 0.375rem; color: var(--dim); font-size: 0.88rem; }
/* Kart altındaki bağlantı her kartta aynı hizada bitsin (başlık iki satıra taşsa da) */
.card__body .link-more { margin-top: auto; padding-top: 1rem; align-self: flex-start; }

/* --- Oda kartları — kiralanan alanların vitrini -------------------------- */
.odalar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.oda {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.oda:hover { border-color: var(--line-strong); transform: translateY(-3px); }
.oda__media { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: var(--gray); }
.oda__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-soft) var(--ease);
}
.oda:hover .oda__media img { transform: scale(1.05); }
/* Görselin altına inen perde: üstteki etiket her karede okunur kalsın */
.oda__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(23, 32, 51, 0.42) 0%, rgba(23, 32, 51, 0) 42%);
}
.oda__etiket {
  position: absolute;
  z-index: 2;
  top: 0.9rem;
  left: 0.9rem;
  padding: 0.3rem 0.7rem;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.oda__ic { display: flex; flex-direction: column; flex: 1; padding: var(--pad-kart-sm); }
.oda__ic > p { margin-top: 0.4rem; font-size: 0.92rem; color: var(--dim); }
.oda__ozellik {
  margin: 1.1rem 0 0;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 0.5rem;
}
.oda__ozellik li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.55rem;
  align-items: start;
  font-size: 0.88rem;
  color: var(--ink);
}
.oda__ozellik svg { width: 14px; height: 14px; margin-top: 0.28rem; color: var(--dim); flex: none; }
.oda__alt { margin-top: auto; padding-top: 1.25rem; }

/* Altıncı hücre: dönüşüm kartı. Komşu oda kartları kadar uzadığı için içerik
   dikeyde ortalanır ve premium paketteki yumuşak iç ışıkla alan bilinçli görünür —
   aksi hâlde kartın büyük kısmı boş lacivert bir dikdörtgen olarak okunuyordu. */
.oda--cta {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  border-color: var(--ink);
  color: var(--white);
  justify-content: center;
  min-height: 17rem;
  padding: var(--pad-kart);
}
.oda--cta::before {
  content: '';
  position: absolute;
  inset: -30% -10% auto -20%;
  height: 75%;
  background: radial-gradient(60% 60% at 50% 50%, rgba(255, 255, 255, 0.085), transparent 70%);
  pointer-events: none;
}
.oda--cta > * { position: relative; }
.oda--cta:hover { transform: none; border-color: var(--ink); }
.oda--cta h3 { font-size: 1.45rem; max-width: 18ch; }
.oda--cta p { margin-top: 0.85rem; max-width: 34ch; font-size: 0.95rem; color: var(--dim-dark); }
.oda--cta .btn { margin-top: 1.75rem; align-self: flex-start; }

/* --- SSS: solda başlık, sağda kutu --------------------------------------- */
.sss { display: grid; grid-template-columns: 1fr 1.55fr; gap: 3rem; align-items: start; }
.sss__yan { position: sticky; top: calc(var(--header-h-stuck) + 2rem); }
.sss__yan p { margin-top: var(--bosluk-metin); color: var(--dim); }
.sss__yan .btn { margin-top: 1.75rem; }
.sss__kutu { display: grid; gap: 0.75rem; }

/* --- Paket kartları — üç çalışma alanı yan yana ------------------------- */
.paketler { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: start; }
.paket {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--r);
  padding: var(--pad-kart);
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.paket:hover { border-color: var(--kart-kenar-hover); transform: translateY(-2px); }
/* Öne çıkan paket: yalnız kenar bir ton belirgin — renk vurgusu yok */
.paket--one-cikan { border-color: rgba(23, 32, 51, 0.22); }

/* Premium paket: koyu zemin, ince açık kenar, sıcak iç ışık */
.paket--premium {
  position: relative;
  background: var(--ink);
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--white);
  overflow: hidden;
}
.paket--premium::before {
  content: '';
  position: absolute;
  inset: -40% 20% auto -20%;
  height: 70%;
  background: radial-gradient(60% 60% at 50% 50%, rgba(255, 255, 255, 0.085), transparent 70%);
  pointer-events: none;
}
.paket--premium:hover { border-color: rgba(255, 255, 255, 0.26); }
.paket--premium > * { position: relative; }
.paket--premium .paket__rozet { background: rgba(255, 255, 255, 0.12); color: var(--white); }
.paket--premium .paket__vurgu { color: var(--white); }
.paket--premium .paket__ozet { color: var(--dim-dark); }
.paket--premium .paket__liste li { color: rgba(255, 255, 255, 0.9); }
.paket--premium .paket__liste svg { color: var(--accent-2); }
.paket__rozet {
  align-self: flex-start;
  padding: 0.3rem 0.75rem;
  border-radius: var(--r-pill);
  background: var(--gray);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--dim);
}
.paket--one-cikan .paket__rozet {
  background: var(--accent-grad);
  background-size: 220% 220%;
  color: var(--white);
  animation: accent-kay 14s ease-in-out infinite;
}
.paket h3 { margin-top: 1.1rem; font-size: 1.45rem; letter-spacing: -0.022em; }
.paket__vurgu { margin-top: 0.5rem; font-size: 0.95rem; font-weight: 500; color: var(--ink); }
.paket__ozet { margin-top: 0.85rem; font-size: 0.95rem; color: var(--dim); }
.paket__liste { margin-top: 1.35rem; display: grid; gap: 0.6rem; }
.paket__liste li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.6rem;
  align-items: start;
  font-size: 0.92rem;
}
.paket__liste svg { width: 15px; height: 15px; margin-top: 0.3rem; color: var(--dim); flex: none; }
.paket__alt { margin-top: auto; padding-top: 1.75rem; }
.paketler-not {
  margin-top: 2rem;
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--dim);
  white-space: pre-line;
}

/* --- Kısa süreli hizmetler — paketlerin altında ince şerit ---------------- */
.ek-hizmet {
  display: grid;
  grid-template-columns: 1fr 2.1fr;
  gap: 2.5rem;
  align-items: center;
  margin-top: 2.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--kart-kenar);
}
.ek-hizmet__yan h3 { font-size: 1.25rem; }
.ek-hizmet__yan p { margin-top: 0.5rem; font-size: 0.92rem; color: var(--dim); }
.ek-hizmet__liste { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ek-hizmet__kart {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.1rem;
  background: var(--white);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--r);
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.ek-hizmet__kart:hover { border-color: var(--kart-kenar-hover); transform: translateY(-2px); }
.ek-hizmet__ic { display: block; min-width: 0; }
.ek-hizmet__ic strong { font-size: 0.98rem; font-weight: 500; }
.ek-hizmet__etiket { margin-left: 0.5rem; font-size: 0.74rem; color: var(--dim); }
.ek-hizmet__ozet {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--dim);
}
.ek-hizmet__ok { width: 15px; height: 15px; color: var(--dim); transition: transform var(--t-micro) var(--ease); }
.ek-hizmet__kart:hover .ek-hizmet__ok { transform: translateX(3px); color: var(--ink); }

/* --- Hakkımızda metin sütunu (kolajın yanında; başlık da bu sütunda) ----- */
.why__metin > h2 + p { margin-top: var(--bosluk-metin); }
.why__metin > p { font-size: 1.02rem; line-height: 1.75; color: var(--dim); }
.why__metin > p + p { margin-top: 1rem; }
.why__metin .t-sub { margin-bottom: 1.5rem; }
.why__alt { margin-top: 2rem; }

/* Metnin altında dört fark kutusu — 2x2 */
.fark {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-top: 2rem;
}
.fark__kutu {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--kart-kenar);
  border-radius: var(--r);
  background: var(--white);
  font-size: 0.95rem;
  font-weight: 500;
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.fark__kutu:hover { border-color: var(--kart-kenar-hover); transform: translateY(-2px); }
.fark__ic {
  flex: none;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: var(--r-daire);
  background: var(--accent-grad);
  background-size: 220% 220%;
  color: var(--white);
  animation: accent-kay 14s ease-in-out infinite;
}
.fark__ic svg { width: 18px; height: 18px; }

/* --- Görsel kolajı — solda büyük, sağda iki küçük ------------------------ */
.kolaj {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  grid-template-rows: repeat(2, 1fr);
  gap: 0.9rem;
  aspect-ratio: 4 / 3;
}
.kolaj figure { border-radius: var(--r); overflow: hidden; background: var(--gray); }
.kolaj figure:first-child { grid-row: 1 / span 2; }
.kolaj img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-soft) var(--ease); }
.kolaj figure:hover img { transform: scale(1.04); }

/* --- İletişim — solda bilgi listesi, sağda harita ------------------------ */
.iletisim { display: grid; grid-template-columns: 1fr 1.15fr; gap: 3.5rem; align-items: center; }
.iletisim__liste { margin-top: 2.25rem; display: grid; gap: 1.35rem; }
.iletisim__satir { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; }
.iletisim__ic {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: var(--r-daire);
  background: var(--ink);
  color: var(--white);
}
.iletisim__ic svg { width: 17px; height: 17px; }
.iletisim__satir dt {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--dim);
}
.iletisim__satir dd { margin-top: 0.25rem; font-size: 1rem; font-weight: 500; color: var(--ink); }
.iletisim__satir dd a:hover { text-decoration: underline; text-underline-offset: 3px; }
.iletisim__acts { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 2.25rem; }
.harita {
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gray);
}
.harita iframe { width: 100%; height: 100%; border: 0; display: block; }

/* --- Footer üstü bant — gerçek görsel + koyu perde ----------------------- */
.bant {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
}
.bant__bg { position: absolute; inset: 0; z-index: 0; }
.bant__bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.22; }
.bant__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--ink) 0%, rgba(23, 32, 51, 0.88) 45%, rgba(23, 32, 51, 0.7) 100%);
}
.bant__in {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
  padding-block: 3.25rem;
}
.bant h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); }
.bant p { margin-top: 0.75rem; max-width: 46ch; color: var(--dim-dark); }
.bant__acts { display: flex; flex-wrap: wrap; gap: 0.625rem; flex: none; }

/* Not: eski hairline satır listesi (.rows/.row/.row--stack), sticky başlıklı split
   (.split*) ve .why__media/.why__rows kaldırıldı — hiçbir şablonda karşılığı yoktu.
   Yerine geçen canlı diller: .fark__kutu (etiketli kutu), .iletisim__satir (dt/dd),
   .sss (sol yapışkan başlık + sağ kutu) ve .yazi/.yazi__yan. */

/* --- "Neden biz" bloğu: görsel DOM'da önce, masaüstünde solda ------------ */
.why { display: grid; grid-template-columns: 1fr 1.05fr; gap: 3rem; align-items: start; }

/* --- Süreç adımları ------------------------------------------------------ */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.steps > div {
  background: var(--white);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--r);
  padding: var(--pad-kart);
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.steps > div:hover { border-color: var(--kart-kenar-hover); transform: translateY(-2px); }
.steps h3 { margin-bottom: 0.375rem; }
.steps p { font-size: 0.88rem; color: var(--dim); }
.steps__ic { display: block; margin-bottom: 1rem; color: var(--ink); }
.steps__ic svg { width: 34px; height: 34px; }

/* --- Galeri şeridi — tek sıra, yatay kaydırmalı -------------------------- */
.serit {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.serit::-webkit-scrollbar { display: none; }
.serit:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
/* Ray tam olarak .wrap hizasında başlar. 100vw dikey kaydırma çubuğunu da saydığı
   ve fazladan bir --gutter eklendiği için ilk kare 31px içeride kalıyordu;
   `100%` .serit'in gerçek genişliğidir, `+ var(--gutter)` kaldırıldı. */
.serit__ray {
  display: flex;
  gap: 0.875rem;
  padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2));
  padding-block: 0.25rem;
}
.serit__kare {
  flex: 0 0 clamp(260px, 26vw, 380px);
  scroll-snap-align: center;
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gray-2);
}
.serit__kare img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-soft) var(--ease);
}
.serit__kare:hover img { transform: scale(1.04); }

/* --- SSS akordiyon ------------------------------------------------------- */
.faq { display: grid; gap: 0.75rem; }
/* Hairline kenar zorunlu: beyaz kart gri zeminde kendi başına ayrışıyordu ama
   /sss beyaz zeminde ve kartlar tamamen kayboluyordu. Kenar .card/.oda ile aynı
   token'dan (--line) beslenir, bu yüzden gri zeminde de dil bozulmaz. */
.faq__item {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  transition: border-color var(--t-micro) var(--ease), box-shadow var(--t-micro) var(--ease);
}
.faq__item:hover { border-color: var(--line-strong); box-shadow: 0 6px 18px -12px rgba(23, 32, 51, 0.35); }
.faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.1rem 1.25rem;
  background: none;
  border: none;
  text-align: left;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
}
.faq__q .sign { flex: none; width: 14px; height: 14px; position: relative; }
.faq__q .sign::before, .faq__q .sign::after {
  content: '';
  position: absolute;
  background: var(--ink);
  transition: transform 240ms var(--ease), opacity 240ms var(--ease);
}
.faq__q .sign::before { top: 6px; left: 0; width: 14px; height: 1.5px; }
.faq__q .sign::after { top: 0; left: 6px; width: 1.5px; height: 14px; }
.faq__q[aria-expanded='true'] .sign::after { transform: rotate(90deg); opacity: 0; }
/* Kapalı cevap gerçekten kapalı: max-height görsel, visibility erişim ağacı içindir */
.faq__a {
  overflow: hidden;
  max-height: 0;
  visibility: hidden;
  transition: max-height 300ms var(--ease), visibility 0s linear 300ms;
}
.faq__q[aria-expanded='true'] + .faq__a {
  visibility: visible;
  transition: max-height 300ms var(--ease), visibility 0s;
}
.faq__a p { padding: 0 1.25rem 1.25rem; color: var(--dim); font-size: 0.95rem; max-width: 80ch; }

/* JS yoksa akordiyonlar açık kalır — hero'daki fail-safe mantığının uzantısı.
   Tetikleyicideki işaret/ok da gizlenir; tıklanınca hiçbir şey olmayan kontrol görünmesin. */
.no-js .faq__a, .no-js .acc__panel { max-height: none; visibility: visible; }
.no-js .faq__q .sign, .no-js .acc__trigger .nav__ok { display: none; }
.no-js .faq__q { cursor: default; }

/* --- Form ---------------------------------------------------------------- */
.form { display: grid; gap: 0.75rem; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.field { display: grid; gap: 0.375rem; }
.field label { font-size: 0.82rem; color: var(--dim-dark); }
.field input, .field select, .field textarea {
  appearance: none;
  -webkit-appearance: none;
  background-color: rgba(255, 255, 255, 0.05);
  /* Kenar --line-dark (1.34:1) değil --line-input (3.24:1): alan zeminden ayrışmalı */
  border: 1px solid var(--line-input);
  border-radius: var(--r);
  padding: 0.7rem 0.85rem;
  min-height: 44px;
  font-size: 0.9rem;
  color: var(--white);
  transition: border-color var(--t-micro) var(--ease), background-color var(--t-micro) var(--ease);
}
/* Native OS chevron yerine projenin kendi oku (beyaz = var(--white)) */
.field select {
  padding-right: 2.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  background-size: 12px 12px;
}
.field input::placeholder, .field textarea::placeholder { color: var(--dim-dark-2); }
.field input:hover, .field textarea:hover, .field select:hover { border-color: var(--white); }
.field input:focus, .field textarea:focus, .field select:focus {
  border-color: var(--white);
  background-color: rgba(255, 255, 255, 0.08);
}
/* Kontratın 2px odak halkası formda da geçerli — outline:none kaldırıldı */
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 2px;
}
.field select option { background: var(--ink); color: var(--white); }
.field textarea { resize: vertical; min-height: 96px; }
/* Onay kutusu: 13x13px native kare yerine 22px kutu + 44px yüksekliğinde tıklama satırı */
.consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-height: 44px;
  padding-block: 0.35rem;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--dim-dark-2);
  cursor: pointer;
}
/* Native sert beyaz kare yerine projenin yüzey dili: 6px kutu, --line-input kenar,
   işaretlenince beyaz dolgu + lacivert tik (turuncu dolgu kuralıyla aynı mantık). */
.consent input {
  appearance: none;
  -webkit-appearance: none;
  flex: none;
  width: 22px;
  height: 22px;
  margin-top: 0.05rem;
  border: 1px solid var(--line-input);
  border-radius: var(--r);
  background-color: rgba(255, 255, 255, 0.05);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 13px 13px;
  cursor: pointer;
  transition: background-color var(--t-micro) var(--ease), border-color var(--t-micro) var(--ease);
}
.consent input:hover { border-color: var(--white); }
.consent input:checked {
  background-color: var(--white);
  border-color: var(--white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M2.5 7.4 5.6 10.5 11.5 4' stroke='%23172033' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.consent a { color: var(--white); text-decoration: underline; text-underline-offset: 2px; }
.form__note { font-size: 0.82rem; border-radius: var(--r); padding: 0.7rem 0.85rem; display: none; }
.form__note--ok { display: block; background: var(--line-dark); color: var(--white); }
.form__note--err { display: block; background: rgba(255, 255, 255, 0.06); color: var(--dim-dark); }

/* --- İletişim kapanışı (hairline; pazarlama banner'ı değil) -------------- */
.contact-rows { border-top: 1px solid var(--line-dark); margin-top: 1.75rem; }
/* Tıklanamayan bilgi satırı — hover'da hareket yok (layout kaydırıyordu) */
.contact-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.125rem 0.25rem;
  border-bottom: 1px solid var(--line-dark);
}
.contact-row .k { font-size: 0.82rem; color: var(--dim-dark-2); min-width: 6rem; }
.contact-row .v { font-size: 0.95rem; color: var(--white); }

/* --- Footer -------------------------------------------------------------- */
.footer { background: var(--ink-deep); color: var(--white); }
.footer__top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2.5rem;
  padding-block: 3.5rem;
}
.footer__logo { display: inline-block; }
.footer__logo img { height: 74px; width: auto; }
/* Sütun başlıkları h2 — h3 seviyesi atlanmasın diye (görsel ölçü buradan gelir) */
.footer h2 { font-size: 0.9rem; font-weight: 500; color: var(--white); margin-bottom: 1rem; letter-spacing: 0.01em; }
.footer a { font-size: 0.88rem; color: var(--dim-dark); transition: color var(--t-micro) var(--ease); }
.footer a:hover { color: var(--white); }
.footer li + li { margin-top: 0.5625rem; }
.footer__about { font-size: 0.88rem; color: var(--dim-dark); max-width: 46ch; margin-top: 0.875rem; }
.footer__adres { font-style: normal; margin-top: 0.875rem; font-size: 0.88rem; color: var(--dim-dark); }
.footer__linkler { display: flex; align-items: center; flex-wrap: wrap; gap: 1.125rem; }
.footer__bar {
  border-top: 1px solid var(--line-dark);
  padding-block: 1.125rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  font-size: 0.82rem;
  color: var(--dim-dark-2);
}
.sd-sign {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line-dark);
  border-radius: var(--r);
  padding: 0.45rem 0.75rem;
  transition: border-color var(--t-micro) var(--ease), opacity var(--t-micro) var(--ease);
}
.sd-sign img { height: 22px; width: auto; opacity: 0.85; display: block; }
.sd-sign:hover { border-color: var(--line-dark-strong); }
.sd-sign:hover img { opacity: 1; }

/* --- WhatsApp sabit buton ------------------------------------------------ */
.wa-fab {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 75;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  background: var(--wa);
  color: var(--white);
  border-radius: var(--r-daire);
  box-shadow: 0 10px 26px rgba(37, 211, 102, 0.35);
  transition: transform var(--t-micro) var(--ease), box-shadow var(--t-micro) var(--ease);
}
.wa-fab:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22); }
.wa-fab svg { width: 30px; height: 30px; }
/* Ahize baloncuğun içinde oyuk gibi dursun: buton zeminiyle aynı renk */
.wa-fab__ahize { fill: var(--wa); }

/* --- Reveal (fail-safe: JS yoksa görünür) -------------------------------- */
.js .reveal { opacity: 0; transform: translateY(14px); }
.js .reveal.is-in {
  opacity: 1;
  transform: none;
  transition: opacity 600ms var(--ease), transform 600ms var(--ease);
}

/* --- Yardımcılar --------------------------------------------------------- */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute;
  left: 8px;
  top: -60px;
  z-index: 100;
  background: var(--white);
  color: var(--ink);
  padding: 0.625rem 0.875rem;
  border-radius: var(--r);
  transition: top var(--t-micro) var(--ease);
}
.skip-link:focus { top: 8px; }

/* ==========================================================================
   Duyarlı davranış
   ========================================================================== */

/* --- Sekme — galeri kategorileri ve SSS konu başlıkları --------------------
   İki yerleşim, tek bileşen: varsayılan üstte yatay şerit (galeri),
   `--yan` ile solda yapışkan sütun (SSS). JS yoksa panellerin tamamı açık kalır;
   `hidden` özniteliğini yalnız .js altında saklıyoruz. */
.sekme__bar {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
  padding-bottom: 0.35rem;
  margin-bottom: var(--bosluk-blok);
  border-bottom: 1px solid var(--line);
}
.sekme__bar::-webkit-scrollbar { width: 0; height: 0; display: none; }
.sekme__dugme {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  flex: none;
  padding: 0.7rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--r);
  background: transparent;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.3;
  text-align: left;
  white-space: nowrap;
  color: var(--dim);
  cursor: pointer;
  transition: background-color var(--t-micro) var(--ease), color var(--t-micro) var(--ease),
    border-color var(--t-micro) var(--ease);
}
.sekme__dugme:hover { background: var(--gray); color: var(--ink); }
.sekme__dugme.is-aktif { background: var(--ink); border-color: var(--ink); color: var(--white); }
.sekme__ic {
  display: grid;
  place-items: center;
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: var(--r-daire);
  background: var(--gray-2);
  color: var(--ink);
  transition: background-color var(--t-micro) var(--ease), color var(--t-micro) var(--ease);
}
.sekme__ic svg { width: 17px; height: 17px; }
.sekme__dugme.is-aktif .sekme__ic { background: rgba(255, 255, 255, 0.14); color: var(--white); }
.sekme__adet {
  font-size: 0.76rem;
  font-variant-numeric: tabular-nums;
  color: var(--dim);
  background: var(--gray-2);
  border-radius: var(--r-pill);
  padding: 0.08rem 0.48rem;
}
.sekme__dugme.is-aktif .sekme__adet { background: rgba(255, 255, 255, 0.16); color: var(--white); }
.sekme__panel:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
.sekme__ozet { max-width: 68ch; margin-bottom: 1.5rem; color: var(--dim); }
/* JS kapalıyken sekmeler çalışmaz; paneller gizli kalmasın */
.no-js .sekme__panel[hidden] { display: block; }
/* JS yokken paneller alt alta durur; başlık hangisinin ne olduğunu söyler */
.sekme__panel + .sekme__panel { margin-top: 3rem; }
.js .sekme__panel + .sekme__panel { margin-top: 0; }
.no-js .sekme__bar { display: none; }

/* SSS: solda yapışkan başlık sütunu, sağda seçili başlığın soruları */
.sekme--yan { display: grid; grid-template-columns: 21rem 1fr; gap: 3rem; align-items: start; }
.sekme--yan .sekme__bar {
  display: grid;
  gap: 0.35rem;
  overflow: visible;
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
  position: sticky;
  top: calc(var(--header-h-stuck) + 2rem);
}
.sekme--yan .sekme__dugme {
  display: grid;
  grid-template-columns: auto 1fr auto;
  width: 100%;
  white-space: normal;
}
.sekme__ana { min-width: 0; }
.sekme__baslik { font-size: 1.3rem; margin-bottom: 1.5rem; }
.sekme__alt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 2.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--line);
}
.sekme__alt p { max-width: 52ch; font-size: 0.92rem; color: var(--dim); }

/* --- Oda şeridi — hizmet detayındaki "diğer çalışma alanları" --------------
   Galeri şeridiyle aynı kural: ray .wrap hizasında başlar, kesim yalnız sağda. */
.oda-serit {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 94%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 94%, transparent 100%);
}
.oda-serit::-webkit-scrollbar { display: none; }
.oda-serit:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.oda-serit__ray {
  display: flex;
  align-items: stretch;
  gap: 1.25rem;
  padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2));
  padding-block: 0.25rem 1rem;
}
.oda-serit__ray > .oda { flex: 0 0 clamp(280px, 30%, 420px); scroll-snap-align: start; }

/* --- İletişim sayfası — solda bilgiler, sağda form -------------------------- */
.iletisim-duzen { display: grid; grid-template-columns: 1fr 1.1fr; gap: 3.5rem; align-items: start; }

/* Form alanları koyu zemin için yazıldı; beyaz sayfada zemini kart taşır.
   `.on-dark` yalnız odak halkasını çeviriyor, metin rengini vermiyor — kart
   kendi rengini yazmazsa başlık koyu zeminde koyu kalır. */
.form-kart {
  background: var(--ink);
  color: var(--white);
  border-radius: var(--r);
  padding: var(--pad-kart);
}
.form-kart__baslik { font-size: 1.45rem; }
.form-kart__ozet { margin-top: var(--bosluk-metin); margin-bottom: 1.75rem; font-size: 0.95rem; color: var(--dim-dark); }

/* Teklif formunun alanları BEYAZ — kart zaten koyu, alanlar onun üzerinde
   ayrı yüzey olarak durur. Yalnız .form-kart içinde geçerli: /admin girişi
   şeffaf alan dilini koruyor. Beyaz zemine geçen her şey burada karşılığını
   bulmalı — metin, yer tutucu, select oku, onay kutusu. */
.form-kart .field input,
.form-kart .field select,
.form-kart .field textarea {
  background-color: var(--white);
  border-color: var(--white);
  color: var(--ink);
}
.form-kart .field input::placeholder,
.form-kart .field textarea::placeholder { color: var(--dim); }
/* Native OS chevron yerine projenin kendi oku — beyaz zeminde lacivert */
.form-kart .field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' stroke='%23172033' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.form-kart .field select option { background: var(--white); color: var(--ink); }
.form-kart .field input:hover,
.form-kart .field select:hover,
.form-kart .field textarea:hover { border-color: var(--line-strong); }
.form-kart .field input:focus,
.form-kart .field select:focus,
.form-kart .field textarea:focus {
  background-color: var(--white);
  border-color: var(--accent-1);
}
/* Tıklayınca beliren beyaz odak halkası kaldırıldı (proje sahibi kararı).
   Odak yine görünür kalıyor: alan kenarı turuncuya döner ve turuncu, koyu kartın
   üzerinde 6.05:1 ile ayrışır — yani gösterge kayboluyor değil, yer değiştiriyor. */
.form-kart .field input:focus-visible,
.form-kart .field select:focus-visible,
.form-kart .field textarea:focus-visible,
.form-kart .tel__ulke:focus-visible,
.form-kart .tel__no:focus-visible,
.form-kart .ulke__dugme:focus-visible { outline: none; }

/* --- Telefon: ülke seçimi + numara, tek kutu görünümünde ----------------
   Sol tarafta bayrak + arama kodu; ülke adı yalnız açılan listede görünür.
   Kenar sarmalayıcıda, iç kontroller çerçevesiz. */
.form-kart .tel {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  background: var(--white);
  border: 1px solid var(--white);
  border-radius: var(--r);
  min-height: 44px;
  transition: border-color var(--t-micro) var(--ease);
}
.form-kart .tel:hover { border-color: var(--line-strong); }
.form-kart .tel:focus-within { border-color: var(--accent-1); }
.form-kart .tel__no {
  background-color: transparent;
  border: 0;
  border-radius: 0;
  min-height: 42px;
  min-width: 0;
  font-variant-numeric: tabular-nums;
}
/* JS kapalıyken görünen native select — sade kalır, kendi kenarı yok */
.form-kart .tel__ulke {
  background-color: transparent;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  min-height: 42px;
  width: 8.75rem;
  padding-inline: 0.75rem 1.6rem;
  background-position: right 0.55rem center;
  color: var(--dim);
  font-size: 0.85rem;
  text-overflow: ellipsis;
}

/* --- Ülke seçici — site dilinde açılır liste ---------------------------- */
.ulke { position: relative; }
.ulke__dugme {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  height: 42px;
  padding-inline: 0.75rem 0.6rem;
  background: transparent;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: var(--r) 0 0 var(--r);
  color: var(--ink);
  cursor: pointer;
  transition: background-color var(--t-micro) var(--ease);
}
.ulke__dugme:hover { background: var(--gray); }
.ulke__bayrak { font-size: 1.15rem; line-height: 1; }
/* Bayrak emojisi olmayan platformlarda (Windows) ISO kodu rozet olur */
.ulke__bayrak--kod {
  display: inline-grid;
  place-items: center;
  min-width: 26px;
  padding: 0.1rem 0.3rem;
  border-radius: 3px;
  background: var(--gray-2);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--dim);
}
.ulke__kod { font-size: 0.88rem; font-weight: 500; }
.ulke__ok { width: 12px; height: 12px; opacity: 0.5; transition: transform 240ms var(--ease); }
.ulke__dugme[aria-expanded='true'] .ulke__ok { transform: rotate(180deg); }

/* Panel — açılır menülerle aynı yüzey dili: 6px köşe, tek çizgi, yumuşak gölge.
   `color` şart: panel .form-kart içinde duruyor ve oranın beyaz metin rengini
   miras alırsa ülke adları beyaz zeminde beyaz kalır. */
.ulke__panel {
  position: absolute;
  color: var(--ink);
  z-index: 20;
  top: calc(100% + 0.5rem);
  left: 0;
  width: 17.5rem;
  max-width: calc(100vw - var(--gutter) * 2);
  padding: 0.4rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: 0 24px 50px -32px rgba(23, 32, 51, 0.3);
}
.ulke__ara {
  width: 100%;
  min-height: 38px;
  margin-bottom: 0.35rem;
  padding: 0.5rem 0.7rem;
  background: var(--gray);
  border: 1px solid transparent;
  border-radius: var(--r);
  font-size: 0.86rem;
  color: var(--ink);
}
.ulke__ara::placeholder { color: var(--dim); }
.ulke__ara:focus { outline: none; border-color: var(--accent-1); background: var(--white); }
.ulke__liste { max-height: 15rem; overflow-y: auto; overscroll-behavior: contain; }
.ulke__satir {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 0.6rem;
  border-radius: var(--r);
  font-size: 0.86rem;
  cursor: pointer;
  transition: background-color var(--t-micro) var(--ease);
}
.ulke__satir:hover,
.ulke__satir.is-odak { background: var(--gray); }
.ulke__satir[aria-selected='true'] { background: var(--ink); color: var(--white); }
.ulke__satir[aria-selected='true'] .ulke__kod { color: rgba(255, 255, 255, 0.72); }
.ulke__satir[aria-selected='true'] .ulke__bayrak--kod { background: rgba(255, 255, 255, 0.16); color: var(--white); }
.ulke__ad { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ulke__satir .ulke__kod { color: var(--dim); font-size: 0.82rem; }
.ulke__bos { padding: 0.9rem 0.6rem; font-size: 0.85rem; color: var(--dim); text-align: center; }

/* Onay kutusu boşken de beyaz — alanlarla aynı yüzey.
   İşaretli hâli genel kuraldan gelir (beyaz dolgu + lacivert tik): koyu kart
   üzerinde lacivert dolgu kutuyu görünmez yapardı, o yüzden ezilmiyor. */
.form-kart .consent input { background-color: var(--white); border-color: var(--white); }
.form-kart .consent input:hover { border-color: var(--line-strong); }

/* Harita — tam genişlik, SSS bloğunun hemen üstünde; arada boşluk bırakmaz */
.harita-tam { display: block; height: clamp(280px, 42vh, 440px); background: var(--gray-2); }
.harita-tam iframe { width: 100%; height: 100%; border: 0; display: block; }


/* --- Yönetim paneli girişi (/admin) ----------------------------------------
   Sitenin koyu yüzey dili: hero gradyanı + dekoratif marka glifi + form
   alanlarının hazır koyu zemin stilleri. Ayrı bir tasarım dili kurulmadı. */
.admin-body { background: var(--ink); }
.admin-giris {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: 2.5rem var(--gutter);
  background: linear-gradient(158deg, var(--ink-soft) 0%, var(--ink) 52%, var(--ink-deep) 100%);
  color: var(--white);
}
.admin-giris .marka-glif { width: min(34rem, 120%); right: -8%; bottom: -12%; opacity: 0.05; }
.admin-giris__in { position: relative; z-index: 1; width: 100%; max-width: 26rem; text-align: center; }
.admin-giris__logo { display: inline-block; }
.admin-giris__logo img { height: 72px; width: auto; }
.admin-kart {
  margin-top: 2rem;
  padding: var(--pad-kart);
  text-align: left;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line-dark);
  border-radius: var(--r);
}
.admin-kart__ust { font-size: 0.8rem; color: var(--dim-dark-2); }
.admin-kart__baslik { font-size: 1.6rem; margin-top: 0.35rem; }
.admin-kart__ozet { margin-top: var(--bosluk-metin); margin-bottom: 1.75rem; font-size: 0.92rem; color: var(--dim-dark); }
.admin-kart .btn { width: 100%; justify-content: center; }
.admin-kart__not {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line-dark);
  font-size: 0.82rem;
  line-height: 1.6;
  color: var(--dim-dark-2);
}
.admin-giris__don {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.75rem;
  font-size: 0.86rem;
  color: var(--dim-dark);
  transition: color var(--t-micro) var(--ease);
}
.admin-giris__don svg { width: 14px; height: 14px; }
.admin-giris__don:hover { color: var(--white); }

@media (max-width: 1080px) {
  .why, .sss, .iletisim, .kapsam,
  .iletisim-duzen { grid-template-columns: 1fr; gap: 2.5rem; }
  /* Yan sütun mobilde üstte yatay şeride döner */
  .sekme--yan { grid-template-columns: 1fr; gap: 2rem; }
  .sekme--yan .sekme__bar {
    position: static;
    display: flex;
    overflow-x: auto;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--line);
  }
  .sekme--yan .sekme__dugme { display: inline-flex; width: auto; white-space: nowrap; }
  .sekme--yan .sekme__adet { display: none; }
  .oda-serit__ray > .oda { flex-basis: 80%; }
  .fark { gap: 0.625rem; }
  /* Panel daralınca sağdaki görsel düşer; liste tüm genişliği alır */
  .mega__in { grid-template-columns: 1fr; }
  .mega__yan { display: none; }
  .mega__liste { padding: 1.25rem; }
  .sss__yan { position: static; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

@media (max-width: 900px) {
  :root { --gutter: 20px; --header-h: 72px; --header-h-stuck: 64px; }
  /* Menü drawer'a, CTA drawer altına taşınır;
     üstte yalnızca burger + logo + telefon ikonu kalır. */
  .nav { display: none; }
  .burger { display: inline-flex; }
  .site-head__cta { display: none; }
  /* Dokunmatikte tüm ikon-only kontroller 44px (WCAG 2.5.5) */
  .burger, .drawer__close, .hero__ok { width: 44px; height: 44px; }
  .site-head__tel { width: 44px; height: 44px; padding: 0; justify-content: center; }
  .site-head__tel .tel-metin { display: none; }
  .site-head__tel svg { width: 19px; height: 19px; }
  .site-head__in { gap: 0.75rem; }
  .site-head__sag { gap: 0.5rem; }
  .logo-img { height: 52px; }
  .site-head.is-stuck .logo-img { height: 46px; }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }

  /* Oda kartları: 6 kartlık yığın yerine yatay snap şerit — .serit ile aynı dil.
     Ray .wrap'ten taşıp ekran kenarına kadar kayar, ilk kart container hizasında başlar. */
  .odalar {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    padding-block: 0.25rem;
  }
  .odalar::-webkit-scrollbar { display: none; }
  .odalar:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
  .section--dark .odalar:focus-visible { outline-color: var(--white); }
  .odalar > .oda { flex: 0 0 80%; scroll-snap-align: start; }
  .odalar > .oda:hover { transform: none; }

  /* Süreç kutuları: kaydırdıkça üst üste binen katmanlar.
     Saf CSS sticky — JS yok, yalnız kompozisyon katmanı çalışır, mobilde akıcı. */
  .steps { display: block; }
  .steps > div {
    position: sticky;
    margin-bottom: 1rem;
    background: var(--white);
    box-shadow: 0 -1px 0 var(--line), 0 -14px 30px -22px rgba(23, 32, 51, 0.5);
    transition: none;
  }
  .steps > div:hover { transform: none; }
  .steps > div:nth-child(1) { top: calc(var(--header-h-stuck) + 1.25rem); }
  .steps > div:nth-child(2) { top: calc(var(--header-h-stuck) + 2.5rem); }
  .steps > div:nth-child(3) { top: calc(var(--header-h-stuck) + 3.75rem); }
  /* Katmanların birbirinin altından çıkması için son kart üstte kalır */
  .steps > div:nth-child(1) { z-index: 1; }
  .steps > div:nth-child(2) { z-index: 2; }
  .steps > div:nth-child(3) { z-index: 3; }
  /* Yığının açılabilmesi için bölüme nefes payı */
  .steps { padding-bottom: 6rem; }
  .paketler { grid-template-columns: 1fr; gap: 1rem; }
  .ek-hizmet { grid-template-columns: 1fr; gap: 1.5rem; }
  .ek-hizmet__liste { grid-template-columns: 1fr; }
  .paket--one-cikan { box-shadow: none; }
  /* Bant: metin üstte, butonlar altta ve sola yaslı */
  .bant__in { flex-direction: column; align-items: flex-start; gap: 1.75rem; padding-block: 2.75rem; }
  /* Fayda şeridi: dikey liste yerine yatay kaydırmalı şerit */
  .facts__in {
    display: flex;
    width: auto;
    margin-inline: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .facts__in::-webkit-scrollbar { display: none; }
  .facts__item {
    flex: 0 0 68%;
    scroll-snap-align: center;
    padding: 1.35rem var(--gutter);
  }
  .facts__item + .facts__item { padding-left: var(--gutter); }
}

@media (max-width: 640px) {
  :root { --sec-y: 4rem; }
  .section--tight { padding-block: 3rem; }
  .hero__slayt { min-height: 0; }
  .hero__ic { grid-template-columns: 1fr; gap: 2rem; padding-block: 2.5rem 2rem; }
  /* Dar ekranda büyük blur pahalı: aura küçülür, grid seyrelir */
  .hero__aura { filter: blur(64px); }
  .hero__aura--1 { width: 26rem; height: 26rem; top: -12rem; left: -8rem; }
  .hero__aura--2 { width: 22rem; height: 22rem; bottom: -10rem; right: -6rem; }
  /* Dekoratif glif dar ekranda küçülür (bant overflow'u zaten kırpıyor, bu görsel denge için) */
  .hero .marka-glif { width: 16rem; top: -1.5rem; left: -3rem; }
  .bant .marka-glif { width: 13rem; right: -3rem; bottom: -3rem; }
  .hero__sub { font-size: 1rem; }
  .hero__acts { gap: 0.5rem; }
  .hero__acts .btn { flex: 0 1 auto; }
  .hero__kontrol { padding-bottom: 1.5rem; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .grid-3 { grid-template-columns: 1fr; }
  .serit__kare { flex-basis: 78vw; }
  .odalar > .oda { flex-basis: 84%; }
  /* Kolaj dar ekranda: büyük görsel üstte tam genişlik, ikisi altta yan yana */
  .kolaj { aspect-ratio: auto; grid-template-rows: 220px 160px; }
  .fark { grid-template-columns: 1fr; }
  .kolaj figure:first-child { grid-row: 1; grid-column: 1 / -1; }
  .iletisim__acts .btn { flex: 1 1 auto; }
  /* Bant butonları yan yana kalsın */
  .bant__acts { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; width: 100%; }
  .bant__acts .btn { justify-content: center; padding-inline: 0.75rem; font-size: 0.8rem; }
  .bant__acts .btn--rozetli { padding: 0.22rem 0.22rem 0.22rem 0.75rem; }
  .bant__acts .btn__rozet { width: 1.7rem; height: 1.7rem; }
  .facts__item { flex-basis: 76%; }
  .form__row { grid-template-columns: 1fr; }
  /* iOS Safari 16px altındaki alanda odaklanınca sayfayı zorla yakınlaştırır */
  .field input, .field select, .field textarea { font-size: 16px; }
  .field select { min-height: 44px; }
  .footer__top { grid-template-columns: 1fr; gap: 1.75rem; padding-block: 2.5rem; }
  .wa-fab { right: 16px; bottom: 16px; width: 52px; height: 52px; }
}

/* ======================================================================== */
/* --- İç sayfalar --------------------------------------------------------- */
/* ======================================================================== */

/* --- İç sayfa hero — dokuz şablonun tamamı bunu kullanır ---------------- */
.sayfa-hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(158deg, var(--ink-soft) 0%, var(--ink) 52%, var(--ink-deep) 100%);
  color: var(--white);
  /* --head-telafi: header kaydırınca fixed'e geçip akıştan çıkınca devreye girer */
  padding-block: calc(var(--sec-y-sik) + var(--head-telafi, 0px)) 4rem;
}
/* Header iç sayfada akıştayken yer kaplıyor, .is-stuck ile fixed olup akıştan
   çıkıyor: aradaki farkı hero'nun üst boşluğu üstlenir, içerik zıplamaz. */
.site-head.is-stuck:not(.site-head--seffaf) ~ main > .sayfa-hero { --head-telafi: var(--header-h); }
.sayfa-hero .marka-glif { width: 24rem; right: -5rem; bottom: -8rem; opacity: 0.05; }
.sayfa-hero__in { position: relative; z-index: 1; }
.sayfa-hero h1 { max-width: 20ch; }
.sayfa-hero__sub { margin-top: 1.1rem; max-width: 56ch; font-size: 1.05rem; color: var(--dim-dark); }
.sayfa-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.25rem;
  font-size: 0.85rem;
  color: var(--dim-dark-2);
}
.sayfa-hero__meta span + span::before { content: '·'; margin-right: 0.75rem; color: var(--line-dark-strong); }
.sayfa-hero__acts { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 2rem; }

/* --- İç sayfa hero'sunun görselli varyantı ------------------------------- */
/* Markup:
   <section class="sayfa-hero sayfa-hero--gorsel">
     <div class="wrap">
       <div class="sayfa-hero__grid">
         <div class="sayfa-hero__in"> kırıntı + h1 + .sayfa-hero__sub + .sayfa-hero__acts </div>
         <figure class="sayfa-hero__kutu"><img … width height></figure>
       </div>
     </div>
   </section>
   Kutu ana sayfadaki .hero__kutu ile aynı kuraldan beslenir (16/10, var(--r), overflow:hidden).
   Mobilde tek sütun: metin üstte, görsel altta — H1 ilk ekranda kalsın diye hero istisnası. */
.sayfa-hero--gorsel { padding-block: calc(var(--sec-y-sik) + var(--head-telafi, 0px)) var(--sec-y-sik); }
.sayfa-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}
.sayfa-hero--gorsel .sayfa-hero__sub { max-width: 46ch; }

@media (max-width: 900px) {
  .sayfa-hero__grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .sayfa-hero--gorsel .marka-glif { display: none; }
}

@media (max-width: 640px) {
  .sayfa-hero { padding-block: calc(3rem + var(--head-telafi, 0px)) 2.75rem; }
  .sayfa-hero--gorsel { padding-block: calc(3rem + var(--head-telafi, 0px)) 3rem; }
  .sayfa-hero__sub { font-size: 1rem; }
  .sayfa-hero .marka-glif { width: 14rem; right: -3rem; bottom: -4rem; }
  .sayfa-hero__acts .btn { flex: 0 1 auto; }
}

/* --- 404 — Mai Müşavirlik 404'ünün (.hata) karşılığı: açık zemin, dikey --
   kılavuz çizgileri, arkada dev soluk "404", ortada başlık + iki buton. */
/* Header .is-stuck ile fixed olunca aradaki fark üst boşluğa ve yüksekliğe
   eklenir (.sayfa-hero ile aynı telafi): içerik zıplamaz. */
.site-head.is-stuck:not(.site-head--seffaf) ~ main > .bulunamadi { --head-telafi: var(--header-h); }
.bulunamadi {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: calc(78vh + var(--head-telafi, 0px));
  padding-block: calc(var(--sec-y) + var(--head-telafi, 0px)) var(--sec-y);
  background: var(--white);
}
/* Kılavuz: içerik genişliğinin sol kenarı, ⅓, ⅔ ve sağ kenarı — bölüm boyunca */
.bulunamadi__cizgiler {
  position: absolute;
  inset-block: 0;
  left: 0;
  right: 0;
  z-index: -1;
  background:
    linear-gradient(var(--line), var(--line)) 0 0 / 1px 100% no-repeat,
    linear-gradient(var(--line), var(--line)) 33.333% 0 / 1px 100% no-repeat,
    linear-gradient(var(--line), var(--line)) 66.667% 0 / 1px 100% no-repeat,
    linear-gradient(var(--line), var(--line)) 100% 0 / 1px 100% no-repeat;
  pointer-events: none;
}
.bulunamadi__in { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
/* Dev rakam içeriğin ARKASINDA; okunmaz, yalnız doku — ekran okuyucuya kapalı */
.bulunamadi__kod {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -1;
  transform: translate(-50%, -50%);
  font-size: clamp(11rem, 34vw, 31rem);
  font-weight: 500;
  line-height: 0.8;
  letter-spacing: -0.05em;
  color: rgba(23, 32, 51, 0.045);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
/* Kontrattaki h1 ölçeğinin bu sayfaya özel istisnası (OVERRIDE 2026-09-10, on üçüncü tur) */
.bulunamadi h1 { max-width: none; font-size: clamp(2.6rem, 6.4vw, 5.5rem); letter-spacing: -0.035em; line-height: 1.05; }
.bulunamadi__lede { margin-top: 1.1rem; max-width: 44ch; font-size: 1.08rem; line-height: 1.6; color: var(--dim); }
.bulunamadi__acts { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.8rem; margin-top: 2.1rem; }
/* İkinci buton net çerçeveli — varsayılan outline kenarı açık zeminde çok silik */
.bulunamadi .btn--outline { border-color: var(--ink); }
/* "Bize Ulaşın" turuncu — "butonlar turuncu olmaz" kuralının bu sayfaya özel istisnası
   (OVERRIDE 2026-09-10, on üçüncü tur). Diğer turuncu yüzeylerle aynı gradyan + akış. */
.bulunamadi .btn--dark {
  background: var(--accent-grad);
  background-size: 220% 220%;
  color: var(--white);
  animation: accent-kay 14s ease-in-out infinite;
}
.bulunamadi .btn--dark:hover { background: var(--accent-1); }

@media (max-width: 640px) {
  .bulunamadi { min-height: auto; }
  .bulunamadi__lede { font-size: 1rem; }
}

/* --- Kırıntı navigasyonu — iç sayfa hero'sunun üst satırı --------------- */
.kirinti { margin-bottom: 1.25rem; font-size: 0.82rem; }
.kirinti ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.kirinti li { display: flex; align-items: center; gap: 0.5rem; color: var(--dim-dark-2); }
.kirinti li + li::before { content: '/'; color: var(--line-dark-strong); }
.kirinti a { color: var(--dim-dark); transition: color var(--t-micro) var(--ease); }
.kirinti a:hover { color: var(--white); }
.kirinti [aria-current='page'] { color: var(--white); }

@media (max-width: 640px) {
  .kirinti { margin-bottom: 1rem; font-size: 0.78rem; }
}

/* --- Uzun metin — blog detayı, yasal metin, hakkımızda anlatısı --------- */
.icerik { max-width: 72ch; font-size: 1.05rem; line-height: 1.8; color: var(--dim); }
.icerik > * + * { margin-top: 1.25rem; }
/* Belge içi başlıklar: bölüm başlığı değil, metnin kendi hiyerarşisi */
.icerik h2 { margin-top: 3rem; font-size: 1.5rem; color: var(--ink); scroll-margin-top: calc(var(--header-h) + 24px); }
.icerik h3 { margin-top: 2.25rem; font-size: 1.1rem; color: var(--ink); }
.icerik h2 + p, .icerik h3 + p { margin-top: var(--bosluk-metin); }
.icerik strong { font-weight: 600; color: var(--ink); }
.icerik a {
  color: var(--ink);
  border-bottom: 1px solid var(--line-strong);
  transition: border-color var(--t-micro) var(--ease);
}
.icerik a:hover { border-color: var(--ink); }
.icerik ul, .icerik ol { display: grid; gap: 0.6rem; }
.icerik li { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; }
.icerik ul li::before {
  content: '';
  width: 6px;
  height: 6px;
  margin-top: 0.78rem;
  border-radius: var(--r-daire);
  background: var(--line-strong);
}
.icerik ol { counter-reset: madde; }
.icerik ol li::before {
  counter-increment: madde;
  content: counter(madde) '.';
  color: var(--dim);
  font-variant-numeric: tabular-nums;
}
.icerik blockquote { padding-left: 1.25rem; border-left: 2px solid var(--line); color: var(--ink); }
.icerik figure { margin-top: 2rem; }
.icerik img { width: 100%; border-radius: var(--r); }
.icerik figcaption { margin-top: 0.6rem; font-size: 0.82rem; color: var(--dim); }
.icerik hr { border: 0; border-top: 1px solid var(--line); margin-block: 2.5rem; }
/* Belgenin açılış/özet paragrafları — gövdeden bir kademe iri, lacivert.
   Markup: giriş paragraflarını <div class="icerik__giris"> içine al. */
.icerik__giris { font-size: 1.15rem; line-height: 1.7; color: var(--ink); }
.icerik__giris > p + p { margin-top: 1rem; }

@media (max-width: 640px) {
  .icerik { font-size: 1rem; line-height: 1.75; }
  .icerik h2 { margin-top: 2.25rem; font-size: 1.3rem; }
  .icerik h3 { margin-top: 1.75rem; }
}

/* --- Galeri ızgarası — galeri sayfası (ana sayfadaki .serit'in yerine) --- */
.galeri { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.galeri__kare {
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gray-2);
}
/* Ritmi kıran geniş hücre: İKİ KOLON GENİŞ ama satırdaki komşusuyla AYNI YÜKSEKLİK.
   Kolon genişliği w, boşluk g iken geniş hücre 2w+g, normal hücre yüksekliği 0.75w →
   oran (2w+g)/0.75w. Bu oran 3 ve 2 kolonlu düzenlerde 2.71–2.75 arasında kalıyor;
   sabit 2.73 ile fark 2px'in altında. 4/3 bırakılırsa hücre iki kat yükseliyor ve
   satırdaki komşu kareyi bozuyordu. */
.galeri__kare img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-soft) var(--ease);
}
.galeri__kare:hover img { transform: scale(1.04); }
.galeri + .galeri { margin-top: 1rem; }

@media (max-width: 900px) {
  .galeri { grid-template-columns: repeat(2, 1fr); }
}
/* 375px'te iki kolon kareyi 164x123px'e düşürüyordu — fotoğraf sayfası için
   ana sayfadaki şerit karesinden (293x219) bile küçük. Tek sütuna iner. */
@media (max-width: 640px) {
  .galeri { grid-template-columns: 1fr; gap: 0.75rem; }
}

/* --- Yatay kart — öne çıkan blog yazısı (mevcut .card'ın varyantı) ------ */
/* Kartın yüksekliğini görselin doğal boyu (1200x900 → ~500px) belirliyordu; metin
   sütununun altında ve üstünde ~350px boş alan kalıyordu. Görsel mutlak konumlanınca
   içsel yüksekliğe katkı vermez, kart ölçüsünü min-height + metin belirler. */
.card--yatay { flex-direction: row; align-items: stretch; min-height: 22rem; }
.card--yatay .card__media { position: relative; flex: 0 0 46%; aspect-ratio: auto; }
.card--yatay .card__media img { position: absolute; inset: 0; }
.card--yatay .card__body { padding: var(--pad-kart); justify-content: center; }
.card--yatay .card__title { font-size: 1.35rem; letter-spacing: -0.022em; }
.card--yatay .card__body p { margin-top: 0.75rem; max-width: 58ch; font-size: 0.95rem; }
/* Dikeyde ortalanan gövdede bağlantı dibe itilmemeli */
.card--yatay .card__body .link-more { margin-top: 1.25rem; padding-top: 0; }

@media (max-width: 760px) {
  .card--yatay { flex-direction: column; min-height: 0; }
  .card--yatay .card__media { flex: none; aspect-ratio: 16 / 10; }
  .card--yatay .card__body { padding: var(--pad-kart-sm); }
  .card--yatay .card__title { font-size: 1.15rem; }
}

/* --- Özellik kutuları — hizmet detayında features[] --------------------- */
.ozellik { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
.ozellik li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 1.1rem 1.25rem;
  background: var(--white);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--r);
  font-size: 0.95rem;
  line-height: 1.55;
  transition: border-color var(--t-micro) var(--ease), transform var(--t-micro) var(--ease);
}
.ozellik li:hover { border-color: var(--kart-kenar-hover); transform: translateY(-2px); }
.ozellik svg { width: 16px; height: 16px; margin-top: 0.28rem; color: var(--dim); flex: none; }

@media (max-width: 640px) {
  .ozellik { grid-template-columns: 1fr; gap: 0.625rem; }
}

/* --- Kapsam bloğu — solda gerçek ofis görseli, sağda özellik satırları --- */
/* "Hizmet Kapsamı" tipi listeler salt metin kalıyordu; blok artık görselli iki kolon.
   Markup:
   <div class="kapsam">
     <figure class="kapsam__gorsel"><img … width height loading="lazy" alt="…"></figure>
     <div class="kapsam__ic"><ul class="ozellik"> <li>…</li> </ul></div>
   </div>
   Görsel DOM'da ÖNCE — mobilde üstte kalır (kontrat: mobil split'te görsel önce). */
.kapsam { display: grid; grid-template-columns: 1fr 1.15fr; gap: 3rem; align-items: center; }
.kapsam__gorsel {
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gray-2);
}
.kapsam__gorsel img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-soft) var(--ease); }
.kapsam__gorsel:hover img { transform: scale(1.04); }
.kapsam__ic { min-width: 0; }
.kapsam__ic > p { font-size: 1.02rem; line-height: 1.75; color: var(--dim); }
.kapsam__ic > p + .ozellik { margin-top: 1.5rem; }
/* Tek kolonluk sütunda özellik kutuları alt alta dizilir */
.kapsam .ozellik { grid-template-columns: 1fr; }
.kapsam .not-kutu { margin-top: 1.5rem; }

/* --- Yazı düzeni — blog detayı ve yasal metin --------------------------- */
/* Gövde sütunu 1fr iken .icerik 72ch'te durup sağında 189px ölü bant bırakıyordu.
   Sütun okuma genişliğiyle sınırlanır, artan yer boşluğa gider (space-between). */
.yazi {
  display: grid;
  grid-template-columns: minmax(0, 76ch) 320px;
  justify-content: space-between;
  gap: 4rem;
  align-items: start;
}
/* Kapak, altındaki okuma sütunuyla aynı ölçüde biter — 189px taşıp kırık sağ kenar
   oluşturuyordu. Ölçü .icerik ile tek kaynaktan gelir. */
.yazi__kapak {
  max-width: 72ch;
  margin-bottom: 2.5rem;
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--gray-2);
}
.yazi__kapak img { width: 100%; height: 100%; object-fit: cover; }
.yazi__yan {
  position: sticky;
  top: calc(var(--header-h-stuck) + 2rem);
  display: grid;
  gap: 1.25rem;
  /* Uzun dizinlerde sütun ekrandan taşıp son bağlantıyı erişilemez bırakıyordu */
  max-height: calc(100vh - var(--header-h-stuck) - 3rem);
  overflow-y: auto;
  scrollbar-width: thin;
}

/* Yan sütun DOM'da ÖNCE gelen varyant — yasal metinde dizin mobilde belgenin
   üstünde kalsın diye. `order` hilesi değil: DOM sırası zaten yan → gövde,
   masaüstünde grid alanları gövdeyi sola, yan sütunu sağa koyar.
   Markup: <div class="yazi yazi--yan-once"><aside class="yazi__yan">…</aside><div class="icerik">…</div></div> */
.yazi--yan-once { grid-template-areas: 'govde yan'; }
.yazi--yan-once > * { grid-area: govde; }
.yazi--yan-once > .yazi__yan { grid-area: yan; }

@media (max-width: 1080px) {
  .yazi { grid-template-columns: 1fr; gap: 3rem; }
  .yazi__yan { position: static; max-height: none; overflow: visible; }
  .yazi--yan-once { grid-template-areas: 'yan' 'govde'; }
}
@media (max-width: 640px) {
  .yazi__kapak { margin-bottom: 1.75rem; aspect-ratio: 4 / 3; }
}

/* --- Yan sütun kutusu — yapışkan CTA ve liste --------------------------- */
.yan-kutu {
  background: var(--ink);
  color: var(--white);
  border: 1px solid var(--ink);
  border-radius: var(--r);
  padding: var(--pad-kart-sm);
}
.yan-kutu h3 { font-size: 1.15rem; }
.yan-kutu p { margin-top: 0.6rem; font-size: 0.92rem; color: var(--dim-dark); }
.yan-kutu .btn { margin-top: 1.25rem; }
.yan-kutu--acik { background: var(--white); color: var(--ink); border-color: var(--line); }
.yan-kutu--acik p { color: var(--dim); }
.yan-kutu__liste { display: grid; margin-top: 1rem; }
.yan-kutu__liste a {
  display: block;
  padding: 0.8rem 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--dim);
  border-top: 1px solid var(--line);
  transition: color var(--t-micro) var(--ease), padding-left var(--t-micro) var(--ease);
}
.yan-kutu__liste a:hover { color: var(--ink); padding-left: 0.35rem; }

@media (max-width: 1080px) {
  .yan-kutu { padding: var(--pad-kart); }
}

/* --- Yasal metin dizini — yapışkan bağlantı listesi --------------------- */
.dizin { position: sticky; top: calc(var(--header-h-stuck) + 2rem); }
.dizin__baslik { font-size: 0.72rem; font-weight: 500; letter-spacing: 0.08em; color: var(--dim); }
.dizin ol { margin-top: 1rem; border-top: 1px solid var(--line); counter-reset: dizin; }
.dizin a {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.6rem;
  padding: 0.7rem 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--dim);
  border-bottom: 1px solid var(--line);
  transition: color var(--t-micro) var(--ease), padding-left var(--t-micro) var(--ease);
}
.dizin a::before {
  counter-increment: dizin;
  content: counter(dizin) '.';
  color: var(--line-strong);
  font-variant-numeric: tabular-nums;
}
.dizin a:hover { color: var(--ink); padding-left: 0.35rem; }
/* Okunmakta olan madde — aria-current'ı app.js'teki IntersectionObserver taşır */
.dizin a[aria-current='true'] { color: var(--ink); font-weight: 500; }
.dizin a[aria-current='true']::before { color: var(--ink); }

@media (max-width: 1080px) {
  .dizin { position: static; }
}

/* --- Not kutusu — kısa bilgi satırı ------------------------------------- */
.not-kutu {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.25rem 1.5rem;
  background: var(--gray);
  border: 1px solid var(--line);
  border-radius: var(--r);
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--dim);
}
.not-kutu__ic {
  flex: none;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: var(--r-daire);
  background: var(--ink);
  color: var(--white);
}
.not-kutu__ic svg { width: 16px; height: 16px; }
.not-kutu strong { display: block; font-weight: 500; color: var(--ink); }
.section--gray .not-kutu { background: var(--white); }

@media (max-width: 640px) {
  .not-kutu { padding: 1.1rem 1.15rem; gap: 0.85rem; }
}

/* --- Hareket azaltma: global kill-switch --------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .js .reveal { opacity: 1; transform: none; }
  /* Katmanlı süreç yığını da sabitlenir */
  .steps > div { position: static; box-shadow: none; }
  .steps { padding-bottom: 0; }
}
