/* =========================================================================
   Gece Asfalt — themes/salihli-oto-kurtarma/css/theme.css
   =========================================================================
   Yön: dark-asphalt. Zemin grafit-siyah asfalt, vurgu çekici tepe lambası
   amberi (hue 78 = 67 + tohum kayması 11), ikincil vurgu gece mavisi.

   İmza efekti: hero üzerinde yavaşça geçen İKAZ LAMBASI TARAMASI
   (.hero__beam) + gradient mesh + film grain.

   base.css yüklenmiş varsayılır; buradaki iş yalnızca token değerleri ve
   bileşen sınıfları. base.css'teki hiçbir kural kopyalanmaz.
   ========================================================================= */

/* ------------------------------------------------------------ 1. TOKENLAR */

:root {
  /* --- yüzeyler: asfalt --- */
  --bg:        oklch(13% 0.008 250);
  --bg-elev:   oklch(17.5% 0.010 250);
  --bg-sunken: oklch(9.5% 0.008 250);
  --bg-glass:  oklch(15% 0.010 250 / 0.72);

  --fg:        oklch(97% 0.004 250);
  --fg-muted:  oklch(75% 0.011 250);
  --fg-subtle: oklch(57% 0.013 250);

  /* --- marka: tepe lambası amberi --- */
  --brand:        oklch(80% 0.155 78);
  --brand-strong: oklch(72% 0.168 68);
  --brand-soft:   oklch(80% 0.155 78 / 0.13);
  --brand-fg:     oklch(17% 0.035 78);

  /* --- aksan: gece mavisi (ikaz lambasının mavi tarafı) --- */
  --accent:     oklch(67% 0.125 245);
  --accent-soft:oklch(67% 0.125 245 / 0.14);
  --accent-fg:  oklch(97% 0.005 245);

  --line:        oklch(100% 0 0 / 0.08);
  --line-strong: oklch(100% 0 0 / 0.17);
  --ring:        var(--brand);

  --ok:   oklch(76% 0.15 152);
  --warn: var(--brand);
  --bad:  oklch(66% 0.19 25);

  /* --- tipografi --- */
  --font-display: "Sora", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body:    "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  --weight-display: 700;
  --leading-display: 1.05;
  --tracking-display: -0.035em;

  /* --- geometri: asfalt sert, köşeler ölçülü --- */
  --radius-xs: 5px;
  --radius-sm: 9px;
  --radius-md: 15px;
  --radius-lg: 24px;
  --radius-xl: 34px;

  /* --- gölge: derin, düşük yayılım --- */
  --shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.4);
  --shadow-md: 0 14px 34px -14px oklch(0% 0 0 / 0.7);
  --shadow-lg: 0 42px 80px -32px oklch(0% 0 0 / 0.85);
  --shadow-glow: 0 0 0 1px var(--brand-soft), 0 18px 50px -18px oklch(80% 0.155 78 / 0.35);

  --header-h: 4.25rem;
  --dock-h: 4.5rem;   /* mobil alt aksiyon çubuğu yüksekliği */
  --container: 1220px;
}

@media (min-width: 62rem) {
  /* Masaüstünde de alt çubuk var (ortalanmış yüzen şerit); içeriğin son satırı
     onun altında kalmasın diye --dock-h sıfırlanmaz. */
  :root { --header-h: 5rem; --dock-h: 5.25rem; }
}

/* Mobilde alt dock içeriğin son satırını örtmesin. */
body { padding-block-end: calc(var(--dock-h) + env(safe-area-inset-bottom, 0px)); }

/* MOBİL ÖNCELİK: scroll-reveal dar ekranda KAPALI.
   JS gecikirse veya hiç gelmezse içerik görünmez kalır; yolda kalmış,
   zayıf bağlantıdaki bir kullanıcı için bu kabul edilemez.
   theme.css base.css'ten SONRA yüklendiği ve seçici aynı özgüllükte olduğu için
   !important gerekmez. */
@media (max-width: 47.99rem) {
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ------------------------------------------------------- 2. ATMOSFER KATMANLARI */

/* Gradient mesh — sayfanın üst tarafında amber + gece mavisi sızıntısı.
   Sabit değil, gövdeyle akar; hero'nun altında yavaşça söner. */
body::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: min(120vh, 1100px);
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(58% 42% at 12% 0%,  oklch(80% 0.155 78 / 0.16), transparent 68%),
    radial-gradient(48% 38% at 88% 8%,  oklch(67% 0.125 245 / 0.16), transparent 70%),
    radial-gradient(70% 50% at 50% -8%, oklch(35% 0.05 250 / 0.55), transparent 75%);
}

/* Film grain — gradient'lara doku katar, "düz vektör" hissini kırar.
   feTurbulence data-URI: ek istek yok. */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.5;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
}

/* İçerik grain'in üstünde kalsın. */
.site-header, main, .site-footer, .action-dock { position: relative; z-index: 2; }

/* Hazard şeridi — tepe lambası motifi. Bölüm ayracı ve vurgu olarak kullanılır. */
.hazard {
  block-size: 6px;
  border-radius: var(--radius-full);
  background: repeating-linear-gradient(
    115deg,
    var(--brand) 0 14px,
    oklch(17% 0.02 78) 14px 28px
  );
  opacity: 0.85;
}
.hazard--thin { block-size: 3px; }

/* ------------------------------------------------------------- 3. BAŞLIK */

.site-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 60;
  block-size: var(--header-h);
  display: flex;
  align-items: center;
  transition: background var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);
  border-block-end: 1px solid transparent;
}
.site-header.is-scrolled {
  background: var(--bg-glass);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
  border-block-end-color: var(--line);
}

.site-header__inner {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  inline-size: 100%;
  min-inline-size: 0;
}

/* Logo — kanca + marka adı.
   Marka adı uzun ("Manisa Salihli Oto Kurtarma"); dar ekranda küçülüp iki
   satıra iner, alt satırdaki il/ilçe etiketi gizlenir. min-inline-size:0
   olmadan flex öğesi kendi içeriğinden küçülemez ve header yatay taşar. */
.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-inline-size: 0;
  flex: 1 1 auto;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.12;
  font-size: var(--step--1);
}
.brand__mark {
  display: inline-grid;
  place-items: center;
  inline-size: 2.2rem;
  block-size: 2.2rem;
  border-radius: var(--radius-sm);
  background: linear-gradient(150deg, var(--brand), var(--brand-strong));
  color: var(--brand-fg);
  box-shadow: 0 6px 18px -8px oklch(80% 0.155 78 / 0.7);
  flex: none;
}
.brand__text { display: flex; flex-direction: column; min-inline-size: 0; }
.brand__name { display: block; }
.brand__text small { display: none; }

@media (min-width: 30rem) {
  .brand { font-size: var(--step-0); gap: 0.6rem; }
  .brand__mark { inline-size: 2.35rem; block-size: 2.35rem; }
  .brand__text small {
    display: block;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: var(--step--2);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fg-subtle);
  }
}

/* Masaüstü navigasyon */
.site-nav { display: none; }
@media (min-width: 62rem) {
  .site-nav {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    margin-inline-start: auto;
  }
  .site-nav a {
    padding: 0.5rem 0.85rem;
    border-radius: var(--radius-sm);
    font-size: var(--step--1);
    font-weight: 500;
    color: var(--fg-muted);
    transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
  }
  .site-nav a:hover { color: var(--fg); background: oklch(100% 0 0 / 0.05); }
  .site-nav a[aria-current="page"] { color: var(--brand); }
}

/* Header'daki daimî "Ara" butonu — mobilde de görünür kalır. */
.site-header__cta { margin-inline-start: auto; display: inline-flex; gap: 0.45rem; flex: none; }
@media (min-width: 62rem) { .site-header__cta { margin-inline-start: var(--space-sm); gap: 0.5rem; } }

/* Dar ekranda buton etiketi kısalır ("Hemen Ara" → "Ara") ki marka adına yer kalsın. */
.site-header__call-full { display: none; }
.site-header__call-short { display: inline; }
@media (min-width: 30rem) {
  .site-header__call-full { display: inline; }
  .site-header__call-short { display: none; }
}

.nav-toggle {
  display: inline-grid;
  place-items: center;
  inline-size: 2.6rem;
  block-size: 2.6rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line-strong);
  color: var(--fg);
  flex: none;
}
.nav-toggle__close { display: none; }
.nav-toggle.is-active .nav-toggle__open { display: none; }
.nav-toggle.is-active .nav-toggle__close { display: block; }
@media (min-width: 62rem) { .nav-toggle { display: none; } }

/* Mobil menü paneli.
   translateY(-100%) TEK BAŞINA YETMEZ: panel header'ın altından başladığı için
   kendi yüksekliği kadar kayar ve header'ın üstüne biner. Header yüksekliği de
   düşülür. Kapalıyken visibility:hidden — aksi hâlde linkler klavye odağında kalır. */
.mobile-menu {
  position: fixed;
  inset-inline: 0;
  inset-block-start: var(--header-h);
  z-index: 55;
  background: oklch(11% 0.008 250 / 0.98);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-block-end: 1px solid var(--line);
  padding: var(--space-md) var(--gutter) var(--space-lg);
  transform: translateY(calc(-100% - var(--header-h)));
  visibility: hidden;
  transition: transform var(--dur-base) var(--ease), visibility 0s linear var(--dur-base);
}
.mobile-menu.is-open {
  transform: translateY(0);
  visibility: visible;
  transition: transform var(--dur-base) var(--ease-out), visibility 0s;
}
.mobile-menu ul { display: flex; flex-direction: column; gap: 0.15rem; }
.mobile-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: 0.95rem 0.25rem;
  border-block-end: 1px solid var(--line);
  font-family: var(--font-display);
  font-size: var(--step-1);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.mobile-menu a span { color: var(--fg-subtle); display: inline-flex; }
@media (min-width: 62rem) { .mobile-menu { display: none; } }

/* --------------------------------------------------------------- 4. BUTONLAR */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.8rem 1.35rem;
  min-block-size: 2.9rem;
  border-radius: var(--radius-full);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--step--1);
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid transparent;
  transition:
    transform var(--dur-fast) var(--ease-spring),
    background var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-base) var(--ease);
}
.btn:active { transform: translateY(1px) scale(0.985); }

.btn--primary {
  background: linear-gradient(160deg, var(--brand), var(--brand-strong));
  color: var(--brand-fg);
  box-shadow: 0 10px 30px -12px oklch(80% 0.155 78 / 0.65);
}
.btn--primary:hover { box-shadow: 0 16px 42px -12px oklch(80% 0.155 78 / 0.8); transform: translateY(-2px); }

.btn--ghost {
  border-color: var(--line-strong);
  color: var(--fg);
  background: oklch(100% 0 0 / 0.035);
}
.btn--ghost:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }

.btn--wa {
  background: oklch(72% 0.16 148);
  color: oklch(16% 0.03 148);
  box-shadow: 0 10px 30px -14px oklch(72% 0.16 148 / 0.7);
}
.btn--wa:hover { transform: translateY(-2px); }

.btn--lg { padding: 1rem 1.7rem; min-block-size: 3.35rem; font-size: var(--step-0); }
.btn--sm { padding: 0.55rem 0.95rem; min-block-size: 2.4rem; font-size: var(--step--2); }
.btn--block { inline-size: 100%; }

/* ------------------------------------------- 5. YAPIŞIK AKSİYON ÇUBUĞU (DOCK) */
/* Sitenin her sayfasında bulunur. Yolda kalmış bir kullanıcı sayfayı okumaz;
   aradığı tek şey aramak. Bu yüzden ilk ekranda ve her kaydırma anında
   erişilebilir olması gerekir. */

.action-dock {
  position: fixed;
  z-index: 70;
  inset-inline: 0;
  inset-block-end: 0;
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap: 1px;
  padding-block-end: env(safe-area-inset-bottom, 0px);
  background: var(--line);
  border-block-start: 1px solid var(--line-strong);
  box-shadow: 0 -18px 40px -22px oklch(0% 0 0 / 0.9);
}
.action-dock__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-block-size: var(--dock-h);
  padding: 0.5rem 0.35rem;
  /* Mobilde blur YOK: üç buton birden backdrop-filter taşıdığında düşük
     donanımlı telefonda kaydırma takılıyor. Zemin zaten neredeyse opak. */
  background: oklch(12% 0.008 250 / 0.985);
  font-size: var(--step--2);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--fg);
  text-align: center;
  line-height: 1.15;
}
.action-dock__btn svg { inline-size: 1.25rem; block-size: 1.25rem; }
.action-dock__btn--call {
  background: linear-gradient(150deg, var(--brand), var(--brand-strong));
  color: var(--brand-fg);
}
.action-dock__btn--wa { color: oklch(78% 0.16 148); }
.action-dock__btn--geo { color: var(--accent); }
.action-dock__btn.is-busy { opacity: 0.6; pointer-events: none; }

/* Masaüstünde çubuk sayfanın altında ORTALANMIŞ, yüzen bir cam şerit olur.
   Sağ alt köşede dikey blok denendi ve 1280-1600px arası genişliklerde konum
   sayfasındaki yapışkan iletişim kartını örtüyordu. Etiketleri gizleyip ikona
   düşürmek "ilk bakışta anlaşılır" şartını bozacağı için düzen değiştirildi:
   etiketler her ekranda okunur kalır, hiçbir içeriğin üstüne binmez
   (body'nin alt boşluğu --dock-h kadar ayrılmıştır). */
@media (min-width: 62rem) {
  .action-dock {
    inset-inline: 0;
    inset-block-end: clamp(0.75rem, 1.5vw, 1.5rem);
    justify-content: center;
    display: flex;
    gap: 0.5rem;
    padding: 0.45rem;
    inline-size: max-content;
    margin-inline: auto;
    border-radius: var(--radius-full);
    border: 1px solid var(--line-strong);
    background: var(--bg-glass);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
    backdrop-filter: blur(20px) saturate(150%);
    box-shadow: var(--shadow-lg);
  }
  .action-dock__btn {
    flex-direction: row;
    gap: 0.6rem;
    min-block-size: 3rem;
    padding: 0 1.35rem;
    border-radius: var(--radius-full);
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    font-size: var(--step--1);
    white-space: nowrap;
    transition: transform var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease);
  }
  .action-dock__btn:not(.action-dock__btn--call):hover { background: oklch(100% 0 0 / 0.07); }
  .action-dock__btn:hover { transform: translateY(-2px); }
  .action-dock__btn--call {
    background: linear-gradient(150deg, var(--brand), var(--brand-strong));
    box-shadow: 0 12px 32px -14px oklch(80% 0.155 78 / 0.75);
  }
}

/* ----------------------------------------------------------------- 6. HERO */

.hero { position: relative; overflow: hidden; }

.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img,
.hero__media picture { inline-size: 100%; block-size: 100%; object-fit: cover; }

/* Scrim — fotoğrafın üstündeki iki katmanlı karartma. Metnin okunabilirliği
   fotoğrafın parlaklığına bırakılmaz. */
.hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, oklch(11% 0.008 250 / 0.62) 0%, oklch(11% 0.008 250 / 0.42) 42%, var(--bg) 96%),
    linear-gradient(96deg, oklch(11% 0.008 250 / 0.88) 4%, oklch(11% 0.008 250 / 0.45) 48%, transparent 78%);
}
/* Fotoğrafsız kompakt hero'da scrim tek başına kalır; zemine yumuşak insin. */
.hero--compact .hero__scrim {
  background:
    radial-gradient(85% 120% at 8% 0%, oklch(80% 0.155 78 / 0.09), transparent 62%),
    linear-gradient(180deg, oklch(16% 0.012 250) 0%, var(--bg) 92%);
}

/* İMZA EFEKTİ — ikaz lambası taraması.
   Eğik amber bir ışık huzmesi hero boyunca yavaşça geçer. Tepe lambasının
   dönüşünü taklit eder; bu temayı diğerlerinden ayıran şey budur. */
.hero__beam {
  position: absolute;
  inset-block: -25%;
  inline-size: 45%;
  z-index: 2;
  pointer-events: none;
  transform: skewX(-14deg);
  background: linear-gradient(90deg,
    transparent,
    oklch(85% 0.14 78 / 0.10) 35%,
    oklch(88% 0.13 78 / 0.20) 50%,
    oklch(85% 0.14 78 / 0.10) 65%,
    transparent);
  filter: blur(22px);
  animation: beam-sweep 9s var(--ease) infinite;
}
.hero__beam--2 {
  animation-delay: 4.5s;
  animation-duration: 11s;
  background: linear-gradient(90deg,
    transparent,
    oklch(72% 0.12 245 / 0.10) 40%,
    oklch(75% 0.12 245 / 0.17) 50%,
    oklch(72% 0.12 245 / 0.10) 60%,
    transparent);
}
@keyframes beam-sweep {
  0%   { inset-inline-start: -50%; opacity: 0; }
  12%  { opacity: 1; }
  88%  { opacity: 1; }
  100% { inset-inline-start: 105%; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__beam { animation: none; inset-inline-start: 18%; opacity: 0.7; }
  .hero__beam--2 { inset-inline-start: 62%; }
}

.hero__inner {
  position: relative;
  z-index: 3;
  padding-block: clamp(2.5rem, 1.75rem + 7vw, 8.5rem) clamp(2.5rem, 1.75rem + 6vw, 6.5rem);
}
.hero__body { max-width: 44rem; }

/* .hero__body bir flex sütunudur; align-self olmadan bu iki hap tüm genişliğe
   yayılır ve "rozet" hissi kaybolur. */
.hero__eyebrow, .hero__phone { align-self: flex-start; max-inline-size: 100%; }

.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.9rem 0.4rem 0.55rem;
  border-radius: var(--radius-full);
  border: 1px solid var(--brand-soft);
  background: oklch(80% 0.155 78 / 0.09);
  color: var(--brand);
  font-size: var(--step--2);
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.hero__pulse {
  inline-size: 0.5rem;
  block-size: 0.5rem;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 0 oklch(80% 0.155 78 / 0.65);
  animation: pulse 2.4s var(--ease-out) infinite;
  flex: none;
}
@keyframes pulse {
  70%  { box-shadow: 0 0 0 0.65rem oklch(80% 0.155 78 / 0); }
  100% { box-shadow: 0 0 0 0 oklch(80% 0.155 78 / 0); }
}

/* Türkçe başlıklar uzun; step-6 dar ekranda H1'i tek başına bir ekran yapıyor
   ve CTA ilk ekrandan düşüyor. Mobilde bir kademe küçük. */
.hero h1 {
  font-size: var(--step-5);
  margin-block: var(--space-md) var(--space-sm);
}
@media (min-width: 48rem) { .hero h1 { font-size: var(--step-6); } }
@media (min-width: 48rem) { .hero--compact h1 { font-size: var(--step-5); } }
.hero--compact h1 { font-size: var(--step-4); }
.hero h1 em {
  font-style: normal;
  color: var(--brand);
}

/* Telefonu ilk ekranda, tıklanabilir ve iri göster. */
.hero__phone {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 1.1rem 0.55rem 0.6rem;
  border-radius: var(--radius-full);
  border: 1px solid var(--line-strong);
  background: oklch(100% 0 0 / 0.045);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: border-color var(--dur-fast) var(--ease);
}
.hero__phone:hover { border-color: var(--brand); }
.hero__phone-icon {
  display: inline-grid;
  place-items: center;
  inline-size: 2.15rem;
  block-size: 2.15rem;
  border-radius: 50%;
  background: var(--brand-soft);
  color: var(--brand);
  flex: none;
}
.hero__phone-num {
  font-family: var(--font-display);
  font-size: var(--step-1);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.hero__phone-label {
  display: block;
  font-size: var(--step--2);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fg-subtle);
}

.hero__note {
  font-size: var(--step--1);
  color: var(--fg-subtle);
  max-width: 38ch;
}

/* Konum sayfalarının kompakt hero'su — fotoğrafsız, gradient zeminli. */
.hero--compact .hero__inner { padding-block: clamp(1.75rem, 1.25rem + 5vw, 4.5rem) clamp(2rem, 1.5rem + 4vw, 3.5rem); }

/* -------------------------------------------------------- 7. BÖLÜM BAŞLIKLARI */

.sec-head { max-width: 46rem; margin-block-end: var(--space-xl); }
/* .stack içindeyken boşluğu stack'in gap'i yönetir; ikisi üst üste binmesin. */
.stack > .sec-head { margin-block-end: 0; }
.sec-head--center { margin-inline: auto; text-align: center; }
.sec-head h2 { font-size: var(--step-4); margin-block-start: var(--space-2xs); }
.sec-head p { margin-block-start: var(--space-sm); }

.sec-head__rule {
  display: block;
  inline-size: 3.2rem;
  block-size: 3px;
  margin-block-end: var(--space-sm);
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--brand), transparent);
}

/* ------------------------------------------------------------- 8. KARTLAR */

.card {
  position: relative;
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  border: 1px solid var(--line);
  background:
    linear-gradient(180deg, oklch(100% 0 0 / 0.035), oklch(100% 0 0 / 0.008)),
    var(--bg-elev);
  overflow: hidden;
  transition: border-color var(--dur-base) var(--ease), transform var(--dur-base) var(--ease-out);
}
/* Üst kenarda ince ışık çizgisi — cam yüzey hissi. */
.card::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 12%;
  block-size: 1px;
  background: linear-gradient(90deg, transparent, oklch(100% 0 0 / 0.28), transparent);
}
.card:hover { border-color: var(--line-strong); transform: translateY(-3px); }

.card__icon {
  display: inline-grid;
  place-items: center;
  inline-size: 2.9rem;
  block-size: 2.9rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--brand-soft);
  background: oklch(80% 0.155 78 / 0.08);
  color: var(--brand);
  margin-block-end: var(--space-sm);
}
.card h3 { font-size: var(--step-1); }
.card p { color: var(--fg-muted); font-size: var(--step--1); margin-block-start: 0.5rem; }

/* Bento hizmet ızgarası — eşit üçlü kart duvarı yerine asimetrik vurgu.
   auto-fit kullanılır: öğe sayısı sayfadan sayfaya değişiyor, sabit sütun
   sayısı verilirse boş hücre kalır. */
.bento .card { display: flex; flex-direction: column; }
.bento .card--feature {
  background:
    radial-gradient(120% 100% at 0% 0%, oklch(80% 0.155 78 / 0.12), transparent 62%),
    linear-gradient(180deg, oklch(100% 0 0 / 0.04), oklch(100% 0 0 / 0.01)),
    var(--bg-elev);
  border-color: var(--brand-soft);
}
.bento .card--feature h3 { font-size: var(--step-2); }

/* -------------------------------------------------------------- 9. SAYILAR */
/* Sayaç animasyonu BİLEREK YOK: sekme arka plana alındığında ekranda yarım
   rakam kalıyor ve yanlış bilgi, efektten pahalıya mal oluyor. */

.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(9.5rem, 100%), 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.stat {
  padding: var(--space-md) var(--space-sm);
  background: var(--bg-elev);
  text-align: center;
}
.stat__value {
  display: block;
  font-family: var(--font-display);
  font-size: var(--step-3);
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--brand);
}
.stat__label {
  display: block;
  margin-block-start: 0.35rem;
  font-size: var(--step--2);
  color: var(--fg-subtle);
  line-height: 1.35;
}

/* ------------------------------------------------------------- 10. SÜREÇ */
/* Dikey zaman çizelgesi; adımlar amber bir hat üzerinde ilerler. */

.process { display: grid; gap: 0; }
.step {
  position: relative;
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: var(--space-sm);
  padding-block: var(--space-md);
}
.step + .step { border-block-start: 1px solid var(--line); }
.step__num {
  display: grid;
  place-items: center;
  inline-size: 2.6rem;
  block-size: 2.6rem;
  border-radius: 50%;
  border: 1px solid var(--brand-soft);
  background: oklch(80% 0.155 78 / 0.08);
  color: var(--brand);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--step--1);
  font-variant-numeric: tabular-nums;
}
.step h3 { font-size: var(--step-1); }
.step p { color: var(--fg-muted); font-size: var(--step--1); margin-block-start: 0.35rem; }
@media (min-width: 48rem) {
  .step { grid-template-columns: 4rem 1fr; gap: var(--space-md); padding-block: var(--space-lg); }
}

/* --------------------------------------------------------------- 11. USP */

.usp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: var(--space-md);
}
.usp {
  display: grid;
  grid-template-columns: 2.35rem 1fr;
  gap: var(--space-sm);
  align-items: start;
}
.usp__icon {
  display: inline-grid;
  place-items: center;
  inline-size: 2.35rem;
  block-size: 2.35rem;
  border-radius: var(--radius-sm);
  background: oklch(100% 0 0 / 0.05);
  border: 1px solid var(--line);
  color: var(--brand);
}
.usp h3 { font-size: var(--step-0); }
.usp p { color: var(--fg-muted); font-size: var(--step--1); margin-block-start: 0.3rem; }

/* --------------------------------------------------------------- 12. SSS */
/* <details>/<summary> — JS yok, klavyeyle açılır, kapalıyken de indekslenir. */

.faq { display: grid; gap: var(--space-2xs); }
.faq details {
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--bg-elev);
  overflow: hidden;
  transition: border-color var(--dur-fast) var(--ease);
}
.faq details[open] { border-color: var(--line-strong); }
.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  cursor: pointer;
  list-style: none;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--step-0);
  letter-spacing: -0.015em;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "";
  inline-size: 0.62rem;
  block-size: 0.62rem;
  flex: none;
  border-inline-end: 2px solid var(--brand);
  border-block-end: 2px solid var(--brand);
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--dur-base) var(--ease);
}
.faq details[open] summary::after { transform: rotate(225deg) translateY(-2px); }
.faq__answer {
  padding: 0 var(--space-md) var(--space-md);
  color: var(--fg-muted);
  font-size: var(--step--1);
}

/* ------------------------------------------------------------ 13. GALERİ */

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: var(--space-sm);
}
.shot {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-sunken);
}
.shot img { aspect-ratio: 4 / 3; object-fit: cover; inline-size: 100%; filter: saturate(0.85) contrast(1.05); transition: filter var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease-out); }
.shot:hover img { filter: saturate(1.05) contrast(1.02); transform: scale(1.035); }
.shot figcaption {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  padding: var(--space-lg) var(--space-sm) var(--space-sm);
  font-size: var(--step--2);
  color: oklch(96% 0.005 250);
  background: linear-gradient(180deg, transparent, oklch(8% 0.008 250 / 0.92));
}
@media (min-width: 48rem) {
  .gallery--hero .shot:first-child { grid-column: span 2; }
  .gallery--hero .shot:first-child img { aspect-ratio: 21 / 9; }
}

/* ------------------------------------------ 14. KONUM ÇİPLERİ & KIRINTI YOLU */

.chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.8rem;
  border-radius: var(--radius-full);
  border: 1px solid var(--line);
  background: oklch(100% 0 0 / 0.03);
  font-size: var(--step--1);
  color: var(--fg-muted);
  transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.chip:hover { color: var(--brand); border-color: var(--brand-soft); background: var(--brand-soft); }

.crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  font-size: var(--step--2);
  color: var(--fg-subtle);
}
.crumbs a { transition: color var(--dur-fast) var(--ease); }
.crumbs a:hover { color: var(--brand); }
.crumbs li { display: inline-flex; align-items: center; gap: 0.35rem; }
.crumbs [aria-current="page"] { color: var(--fg-muted); }

/* Konuma özgü veri şeridi — her URL'de farklı olan tek gerçek cümle.
   Görsel olarak da ayrı dursun: yinelenen içerik şüphesine karşı en güçlü sinyal. */
.localdata {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-sm);
  align-items: start;
  padding: var(--space-md);
  border-radius: var(--radius-md);
  border: 1px solid var(--accent-soft);
  background:
    radial-gradient(90% 140% at 0% 0%, oklch(67% 0.125 245 / 0.10), transparent 70%),
    var(--bg-elev);
  color: var(--fg-muted);
  font-size: var(--step--1);
}
.localdata__icon { color: var(--accent); display: inline-flex; }

/* ---------------------------------------------------------- 15. YAN PANEL */

.aside-card {
  position: sticky;
  inset-block-start: calc(var(--header-h) + var(--space-sm));
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  border: 1px solid var(--line-strong);
  background:
    radial-gradient(110% 90% at 100% 0%, oklch(80% 0.155 78 / 0.13), transparent 62%),
    var(--bg-elev);
  box-shadow: var(--shadow-md);
}
.aside-card h2, .aside-card h3 { font-size: var(--step-1); }
.aside-card p { color: var(--fg-muted); font-size: var(--step--1); margin-block-start: 0.5rem; }
.aside-card .btn { inline-size: 100%; }

/* ---------------------------------------------------------------- 16. BLOG */

.post-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr)); gap: var(--space-md); }
.post-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  border: 1px solid var(--line);
  background: var(--bg-elev);
  overflow: hidden;
  transition: border-color var(--dur-base) var(--ease), transform var(--dur-base) var(--ease-out);
}
.post-card:hover { border-color: var(--line-strong); transform: translateY(-3px); }
.post-card__media img { aspect-ratio: 16 / 10; object-fit: cover; inline-size: 100%; filter: saturate(0.85); }
.post-card__body { padding: var(--space-md); display: flex; flex-direction: column; gap: 0.55rem; flex: 1; }
.post-card h3 { font-size: var(--step-1); }
.post-card time { font-size: var(--step--2); color: var(--fg-subtle); letter-spacing: 0.04em; }
.post-card p { color: var(--fg-muted); font-size: var(--step--1); }
.post-card__more { margin-block-start: auto; color: var(--brand); font-size: var(--step--1); font-weight: 600; display: inline-flex; align-items: center; gap: 0.35rem; }

.post-cover { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); }
.post-cover img { aspect-ratio: 21 / 9; object-fit: cover; inline-size: 100%; }

/* -------------------------------------------------------- 17. İLETİŞİM KARTI */

.contact-card {
  display: block;
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  border: 1px solid var(--line);
  background: var(--bg-elev);
  transition: border-color var(--dur-base) var(--ease), transform var(--dur-base) var(--ease-out);
}
.contact-card:hover { border-color: var(--brand-soft); transform: translateY(-3px); }
.contact-card__icon {
  display: inline-grid;
  place-items: center;
  inline-size: 2.9rem;
  block-size: 2.9rem;
  border-radius: var(--radius-md);
  background: var(--brand-soft);
  color: var(--brand);
  margin-block-end: var(--space-sm);
}
.contact-card__tag { font-size: var(--step--2); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-subtle); }
.contact-card__title { font-family: var(--font-display); font-size: var(--step-1); font-weight: 700; letter-spacing: -0.025em; margin-block: 0.2rem 0.4rem; display: block; }
.contact-card p { color: var(--fg-muted); font-size: var(--step--1); }

/* ------------------------------------------------------------ 18. CTA BANDI */

.cta-band {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  border: 1px solid var(--brand-soft);
  padding: clamp(1.75rem, 1rem + 4vw, 3.5rem);
  background:
    radial-gradient(80% 130% at 0% 0%,   oklch(80% 0.155 78 / 0.18), transparent 64%),
    radial-gradient(70% 120% at 100% 100%, oklch(67% 0.125 245 / 0.16), transparent 66%),
    var(--bg-elev);
}
.cta-band h2 { font-size: var(--step-4); max-width: 22ch; }
.cta-band p { color: var(--fg-muted); max-width: 52ch; margin-block-start: var(--space-sm); }
.cta-band__actions { margin-block-start: var(--space-lg); }

/* --------------------------------------------------------------- 19. FOOTER */

.site-footer {
  margin-block-start: var(--space-2xl);
  border-block-start: 1px solid var(--line);
  background: var(--bg-sunken);
  padding-block: var(--space-2xl) var(--space-lg);
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: var(--space-xl);
}
.footer-col h2 {
  font-size: var(--step--1);
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--fg-subtle);
  font-family: var(--font-body);
  font-weight: 600;
  margin-block-end: var(--space-sm);
}
.footer-col ul { display: grid; gap: 0.5rem; }
.footer-col a { color: var(--fg-muted); font-size: var(--step--1); transition: color var(--dur-fast) var(--ease); }
.footer-col a:hover { color: var(--brand); }
.footer-bottom {
  margin-block-start: var(--space-xl);
  padding-block-start: var(--space-md);
  border-block-start: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  justify-content: space-between;
  font-size: var(--step--2);
  color: var(--fg-subtle);
}

/* ------------------------------------------------------------------ 20. 404 */

.err {
  min-block-size: 58vh;
  display: grid;
  place-content: center;
  text-align: center;
  gap: var(--space-md);
}
.err__code {
  font-family: var(--font-display);
  font-size: var(--step-7);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  background: linear-gradient(160deg, var(--brand), oklch(45% 0.09 78));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ------------------------------------------------------- 21. YARDIMCILAR */

/* svg{display:block} (base.css) ikonu satır sonunda alt satıra itiyor;
   ikon taşıyan sarmalayıcılar inline-flex olmalı. */
.i { display: inline-flex; align-items: center; }

.divider { block-size: 1px; background: var(--line); border: 0; }

/* Metin bağlantıları da parmakla dokunulacak: 22px yüksekliğinde bir satır
   telefonda güvenilir bir hedef değil. */
.link-arrow, .post-card__more {
  min-block-size: 2.75rem;
  align-items: center;
}
.crumbs a, .crumbs span { padding-block: 0.4rem; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--brand);
  font-weight: 600;
  font-size: var(--step--1);
}
.link-arrow svg { transition: transform var(--dur-fast) var(--ease-out); }
.link-arrow:hover svg { transform: translateX(3px); }
