/* Bütün sayfalarda ortak düzeltmeler — sayfa CSS'lerinden (index/hakkimizda/… kopyaları) SONRA yüklenir (base.html). */

/* Footer iletişim kartı (2026-11-01): 769–1320 px'te iletişim sütunu span 4 ≈ 244 px kalıyor, e-posta kartın dışına
   taşıyordu (910 px'te 50 px). Sütun payları yeniden dağıtıldı; ayrıca kart içi esnek öğeler daralabilir ve
   e-posta en son çare olarak kırılır (yerleşimi kaybetmemek için). */
.footer-contact-card-left, .footer-contact-card-left > div { min-width: 0; }
.footer-contact-value { overflow-wrap: anywhere; }
.footer-contact-arrow { flex-shrink: 0; margin-left: 12px; }
.footer-main-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }  /* 1fr = minmax(auto,1fr): içerik ızgarayı genişletiyordu (769 px'te 39 px yatay kayma) */
.footer-col-brand { grid-column: span 4; }
.footer-col-contact { grid-column: span 4; }
@media (max-width: 1320px) {  /* 1181–1320'de span 4 ≈ 340 px: e-posta iki satıra düşüyordu */
  .footer-col-brand { grid-column: span 12; }
  .footer-col-links { grid-column: span 3; }
  .footer-col-contact { grid-column: span 6; }
}
@media (max-width: 1000px) {
  .footer-col-links { grid-column: span 6; }
  .footer-col-contact { grid-column: 1 / -1; }
}
@media (max-width: 768px) {
  .footer-main-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-col-brand, .footer-col-links, .footer-col-contact { grid-column: 1 / -1; }
}
@media (max-width: 480px) {  /* telefonda e-posta tek satır: ok simgesi gizli (kartın tamamı bağlantı), yazı biraz küçük */
  .footer-contact-arrow { display: none; }
  .footer-contact-card { padding: 16px 18px; }
  .footer-contact-value { font-size: 15px; }
}
@media (max-width: 360px) { .footer-contact-value { font-size: 14px; } .footer-contact-card { padding: 16px 14px; } }  /* Montserrat'la e-posta 190 px ister, 18 px iç boşlukta 186 kalıyordu (320'de 2 satır; yedek yazı tipi dar olduğu için önce görünmüyordu) */

/* Footer alt bölüm: telif satırı ayırıcı çizginin ÜSTÜNDE; alttaki tekrar bağlantıları kaldırıldı. */
.footer-main-grid { border-bottom: 0; padding-bottom: 48px; }
.footer-copy { padding-bottom: 24px; font-size: 14.5px; color: rgba(9, 8, 13, 0.62); }
.footer-copy strong { color: #09080D; }
.footer-bottom-row { padding-top: 0; min-height: 0; }
.footer-bottom-row:has(.footer-bottom-links) { padding-top: 20px; }

/* Alt sayfa hero üst etiketi (kicker) kaldırıldı. Blog detayda editör kendi notunu yazarsa: sade, büyük harfsiz. */
.subpage-ust-not { margin: 0 0 14px; font-size: 15px; font-weight: 500; color: rgba(255, 255, 255, 0.78); letter-spacing: 0; text-transform: none; }

/* Alt sayfa üst başlığındaki *eğik* kelime = ana sayfadaki "yazılım ajansı." vurgusu (saf beyaz, 1.15×).
   Sayfa CSS'leri (hakkimizda/hizmetlerimiz/iletisim/blog_detay) lila #EBD9FF + 1.08em veriyordu; ortak.css onlardan sonra yüklenir. */
.subpage-title .serif-italic { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important;
  font-size: 1.15em !important; letter-spacing: -0.01em; }

/* Ana sayfa header'ı (index.css:106 position:absolute, sayfayla kayar) mor hero / koyu bölüm üstündeyken beyaza dönmez:
   main.js .is-scrolled yerine .is-koyu verir; .is-koyu'nun kendi zemini yok → y=0'daki şeffaf + beyaz yazı görünümü korunur.
   Önce: 30 px kaydırınca header kaybolurken mor hero üstünde beyaz şerit (kullanıcı görüntüsü 06). */

/* Üst menü yazısı (2026-11-02, kullanıcı: "biraz daha büyük"): 15.5 → 17 px. Sayfa CSS'lerinin her biri 15.5 veriyordu. */
.nav-link { font-size: 17px; }
/* 769–1100 px: menü + İletişim düğmesi sığmıyordu (769'da 15.5 px ile bile 39 px yatay taşma, ölçüldü) → aralıklar daralır. */
@media (min-width: 769px) and (max-width: 1100px) {
  .nav-links { gap: 18px; }
  .nav-right { gap: 20px; }
  .nav-link { font-size: 16px; }
  .nav-container { width: calc(100% - 48px); }
}

/* >>> YAZI-OLCEK +%8 (2026-11-02, kullanıcı seçimi A). Otomatik: scratch/yazi_kural_bul.py + yazi_uygula.py.
   Her kural yukarıdaki aynı seçicinin font-size ×1.08 karşılığı (≥32 px vitrin başlıkları hariç). */
.footer-copy { font-size: 15.66px; }  /* önce: 14.5px */
/* <<< YAZI-OLCEK */

/* Yazı tipi yığınları: ölçüsü eşlenmiş yedek (fontlar.css) web yazı tipinin hemen ardından. Sayfa CSS'lerindeki :root tanımlarını ezer. */
:root { --font-display: 'Montserrat', 'Montserrat Yedek', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-main: 'Montserrat', 'Montserrat Yedek', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-serif: 'Instrument Serif', 'Instrument Serif Yedek', Georgia, serif; }

/* Mor şerit vurgusu = fosforlu kalem (2026-11-02c, kullanıcı seçimi C; seçenekler scratch/serit_secenek/, ölçü scratch/serit_kenar.py).
   Önceki sürüm (satır kutusunun alta yaslı %85'i, inline) alt satırın harflerine değiyordu: Hizmetlerimiz "dijital" 1440'ta şerit
   "mimarisi"nin i noktalarına 4 px biniyor, 390'da iletişim/hizmetlerimiz üst+alt 0–1 px (4/12 kutu). Kök: alt sayfa h1 line-height 1.02,
   şerit = yazı tipinin içerik alanı (1.3em) → komşu satıra sığmıyor. Şimdi inline-block: kutu = şerit, kendi satırını açar (≈0.18em),
   kelime mürekkebi tam içeride (kapsama 1.0), komşu satırla boşluk ≥4 px (390/768/1440, 4 sayfa). Şekil: kenarları düzensiz SVG
   (preserveAspectRatio=none, kutuya gerilir) + iki ince doku çizgisi; renk #7109A5 (08 paleti). Yüklenirken soldan sağa bir kez çekilir.
   index.css:371–395 .hero-wipe-word'e padding/margin/background:none !important verdiği için !important. */
.hero-wipe-word, .subpage-title .serif-italic {
  display: inline-block !important; line-height: 1.04 !important; vertical-align: baseline;
  padding: 0.07em 0.22em 0.11em !important; margin: 0.06em -0.1em !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' preserveAspectRatio='none'%3E%3Cpath d='M4 9C40 4 90 7 130 3S180 2 197 6C199 30 195 60 199 93C160 97 110 94 70 98S20 95 2 97C5 70 0 40 4 9Z' fill='%237109A5'/%3E%3Cpath d='M10 14C60 10 120 12 190 9' stroke='%23862FB8' stroke-width='3' fill='none' opacity='.55'/%3E%3Cpath d='M8 88C70 91 130 86 192 89' stroke='%235E0790' stroke-width='3' fill='none' opacity='.6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: 0 0 !important; background-size: 100% 100% !important;
  animation: morSeritCek 0.9s 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes morSeritCek { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
@media (prefers-reduced-motion: reduce) { .hero-wipe-word, .subpage-title .serif-italic { animation: none; } }

/* Metne tıklayınca yanıp sönen yazı imleci (2026-11-02): kök neden tarayıcının "imleçle gezinme" (F7 / caret browsing) ayarı — kapalıyken
   imleç 0/6 öğe, açıkken 6/6 (scratch/reproduce_imlec.py, xvfb altında pencereli Chromium). Sitede contenteditable yok. Düz metinde imleç
   saydam; yazılabilen alanlarda tarayıcının imleci aynen kalır. */
body { caret-color: transparent; }
input, textarea, select, [contenteditable]:not([contenteditable="false"]) { caret-color: auto; }

/* Geniş ekran / sayfa uzaklaştırma (2026-11-02, kullanıcı: "sayfa küçültülünce hero bozuluyor"): başlık 54.4 px'te, kap 1560/1680 px'te
   duruyordu; 3840'ta başlık ekranın %11'i, yazı ortada küçük, cihaz görseli (cover) dev (scratch/reproduce_istekler2.py 9). 1920 düzeni
   ölçeklenir: üst menü + ana sayfa hero kabı + alt sayfa hero bölümü (iç boşluğuyla) viewport/1920 oranında (adım adım; CSS uzunluk bölmesi her tarayıcıda yok). Yalnız kaplar
   büyür; hero görseli zaten ekranı kaplıyor → 1920'deki oran korunur. */
@media (min-width: 2100px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 1.12; } }
@media (min-width: 2400px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 1.28; } }
@media (min-width: 2700px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 1.44; } }
@media (min-width: 3000px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 1.6; } }
@media (min-width: 3300px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 1.76; } }
@media (min-width: 3600px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 1.92; } }
@media (min-width: 3840px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 2; } }
@media (min-width: 4300px) { .nav-container, .hero-inner-container, .SubpageHero { zoom: 2.25; } }
/* zoom vh'yi de büyütür: sayfa CSS'lerindeki .SubpageHero min-height:44vh 2×'te ekranın %88'i oluyordu (boş mor alan). 1920'de içerik zaten 44vh'den uzun. */
@media (min-width: 2100px) { .SubpageHero { min-height: 0; } }

/* İletişim düğmesi mor zeminde (sayfa başı) BEYAZ DOLGULU — bütün sayfalarda (2026-11-02d, kullanıcı seçimi A). Önce yalnız
   index.css'teydi; alt sayfalar kendi CSS'indeki (hakkimizda.css:213 vb.) şeffaf + çerçeveli hali gösteriyordu. Açık zemin
   (.is-light-zone / .is-scrolled) her sayfanın kendi kuralında kalır. */
.Navbar:not(.is-scrolled):not(.is-light-zone) .nav-cta-pill {
  background: #FFFFFF;
  color: #6E38C5 !important;
  box-shadow: 0 10px 25px rgba(60, 20, 120, 0.25);
}
.Navbar:not(.is-scrolled):not(.is-light-zone) .nav-cta-pill span { color: #6E38C5 !important; }

/* Site formlarındaki metin kutusu (2026-11-02f, kullanıcı): köşeden çekip uzatma yok, boy sabit, uzun metin kutunun İÇİNDE kayar.
   Önce resize:both → sınırsız uzatılabiliyordu (scratch/d/hero3/metin_kutusu.py 0/6). Boy: 6 satır kadar. */
textarea.form-textarea { resize: none; height: 160px; overflow-y: auto; overscroll-behavior: contain; }

/* Üst menü "İletişim ↗" ve mobil menü "İletişime Geçin ↗" oku (2026-11-01, kullanıcı): diğer ok düğmeleri gibi üzerine gelince 45° döner (↗ → →).
   Ok metindeydi, dönemiyordu → navbar.html'de ayrı .nav-ok. Dokunmatikte :active. Ölçüm: scratch/d/hero3/menu_ok.py */
.nav-ok { display: inline-block; transition: transform 0.4s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)); }
.nav-cta-pill:hover .nav-ok, .nav-cta-pill:focus-visible .nav-ok,
.mobile-nav-cta:hover .nav-ok, .mobile-nav-cta:focus-visible .nav-ok, .mobile-nav-cta:active .nav-ok { transform: rotate(45deg); }
