/* ============================================================================
   diyarbakr.com — redesign-responsive.css
   SİSTEMATİK RESPONSIVE DENETİM KATMANI (10 Haziran 2026)
   ----------------------------------------------------------------------------
   En SON yüklenir; bundle (index--MSd8cSU.css) + polish.css + redesign-*.css
   kurallarını aynı özgüllükle kaynak sırası üzerinden ezer. !important YOK.
   TÜM kurallar media query içindedir — masaüstü (≥1280px) görünümüne, hover
   yeteneği olan fare kullanıcılarına ve mevcut tasarım diline DOKUNULMAZ.

   Bundle taban verileri (denetimden):
   - .sec-grid: ≤640px 1 kolon / 641–1024px 2 kolon / ≥1025px 4 kolon
   - .ev: ≤768px "4rem 1fr" grid; .sec: padding-inline 1rem (taban)
   - .portal-grid-dashboard: taban 1 kolon, ≥64rem 2, ≥80rem 12 (xl:col-span 7/5/4/4/4)
   - .portal-home-hero-grid: ≥64rem "1.15fr + minmax(280px,360px)" (stage + bugün paneli)
   - .portal-home-hero-stage-media: 260px / ≥40rem 300px / ≥64rem 370px
   - hamburger: h-9 w-9 (36px); hero okları 36px; hero dot 20×4px
   - Chat FAB: inline-style fixed bottom:24 right:24 60×60 (CSS ile taşınamaz —
     yer ayırma stratejisi uygulanır); #db-search-dock başka ajanda, üstte konumlanır.
   ========================================================================== */


/* ============================================================================
   1) 360–480px — KÜÇÜK TELEFON
   ========================================================================== */
@media (max-width: 480px) {

  /* Sorun: 1rem yatay dolgu dar ekranda içerik genişliğini gereksiz yiyor. */
  .portal-root .sec {
    padding-inline: 0.875rem;
  }

  /* Sorun: uzun slayt başlığı 260px'lik sahnede kicker+lead ile taşabiliyor —
     3 satırda kibarca kırpılır (bundle'da clamp yoktu). */
  .portal-home-hero-headline {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }

  /* Sorun: uzun bitişik kelimeler (kurum/mekan adları) dar kolonda yatay
     taşma üretebiliyor — başlıklar kelime içinden kırılabilsin. */
  .portal-root .sec-title,
  .portal-hero-title,
  .portal-home-hero-headline {
    overflow-wrap: break-word;
  }

  /* Sorun: redesign-cards'ın -1rem panel bindirmesi küçük ekranda görselden
     fazla alan çalıyor — bindirme -0.75rem'e yumuşatılır. */
  .portal-root .sec-place-card__body {
    margin-top: -0.75rem;
  }

  /* Sorun: .ev'in sabit 4rem tarih kolonu + 1.25/1.5rem dolgu 360px'te metne
     yer bırakmıyor — kolon içerikle oranlı küçülür, dolgu sıkılaşır. */
  .portal-root .ev {
    grid-template-columns: minmax(3rem, 4rem) 1fr;
    gap: 0.875rem;
    padding: 1rem 1.05rem;
  }

  /* Sorun: dashboard kartlarının 1.25rem dolgusu dar ekranda satırları
     sıkıştırıyor — 1rem yeterli nefes bırakır. */
  .portal-dash-card {
    padding: 1rem;
  }

  /* Sorun: çok sayıda filtre pili wrap olunca 3-4 satır yer kaplıyordu —
     tek satır, yatay kaydırılabilir, scrollbar gizli, snap'li şerit.
     Negatif margin pilleri .sec dolgu kenarına taşırır (tam-genişlik hissi);
     .sec'in overflow-x:hidden'ı dışarı sızmayı zaten engeller. */
  .portal-root .filter-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    margin-inline: -0.875rem;
    padding-inline: 0.875rem;
    padding-bottom: 0.375rem; /* odak halkası + gölge kırpılmasın */
    scroll-snap-type: x proximity;
    scroll-padding-inline: 0.875rem;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  /* Sorun: WebKit'te kayan pil şeridinin altında scrollbar çıkıyor — gizle. */
  .portal-root .filter-pills::-webkit-scrollbar {
    display: none;
  }
  /* Sorun: nowrap şeritte piller ezilmesin; kaydırınca kenara hizalansın. */
  .portal-root .filter-pill {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
}


/* ============================================================================
   2) 481–767px — BÜYÜK TELEFON
   (.sec-grid bundle'da 40rem'de zaten 2 kolona geçiyor — DOKUNULMADI)
   ========================================================================== */
@media (min-width: 481px) and (max-width: 767px) {

  /* Sorun: bugün paneli 481–639px bandında 1rem dolguda kalıyor (bundle
     1.25rem'i 640'ta açıyor) — geniş telefonda erken eşitlenir. */
  .portal-today-panel {
    padding: 1.25rem;
  }
}

@media (max-width: 767px) {

  /* Sorun: 640–767px bandında 6 kolonlu quick-nav'da 10px etiketler
     sıkışıyordu — 3 kolon dengesi telefon sonuna kadar korunur. */
  .portal-quick-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* Sorun: 3 kolonlu iki satırlık dizilimde satırlar arası ayraç yoktu
     (bundle yalnız dikey divide-x veriyor) — 2. satıra ince üst çizgi. */
  .portal-quick-nav-item:nth-child(n+4) {
    border-top: 1px solid #f5f5f4;
  }

  /* Sorun: dynamic-page-prose içindeki geniş tablolar mobilde sayfayı yatay
     kaydırıyordu (gerçek taşma kaynağı) — tablo kendi içinde kaydırılır. */
  .portal-root .dynamic-page-prose table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Sorun: prose içindeki uzun URL/bitişik kelimeler kolonu taşırıyor. */
  .portal-root .dynamic-page-prose {
    overflow-wrap: break-word;
  }
}


/* ============================================================================
   3) 768–1024px — TABLET (en ihmal edilen aralık)
   NOT: nav yoğunluğu redesign-nav-density.css'in işi — NAV'A DOKUNULMADI.
   ========================================================================== */

/* Sorun: 768–1024'te 2 kolon (dev kartlar) ve 1025–1279'da 4 kolon (ezik
   kartlar) iki uçta da kötüydü — tüm bant için dengeli 3 kolon: 1→2→3→4
   kademeli akış tamamlanır. (≥1280 bundle'ın 4 kolonu aynen sürer.) */
@media (min-width: 768px) and (max-width: 1279.98px) {
  .portal-root .sec-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 48rem) and (max-width: 63.98rem) {

  /* Sorun: dashboard tablette tek kolona düşüp metre metre uzuyordu
     (bundle 2 kolonu 64rem'de açıyor) — 2 kolon erken başlar. */
  .portal-grid-dashboard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* Sorun: 5 kartlı 2 kolon dizilimde sonuncusu öksüz kalıyordu —
     tek kalan son kart tam satıra yayılır. */
  .portal-grid-dashboard > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  /* Sorun: 300px sabit sahne ~720–990px genişlikte aşırı yassı kalıyordu
     (oran 2.4–3.3) — tablete özel 340px ile sinematik oran korunur. */
  .portal-home-hero-stage-media {
    height: 340px;
  }
}


/* ============================================================================
   4) 1024–1279px — DAR MASAÜSTÜ
   (.sec-grid 3 kolonu yukarıdaki 768–1279.98 bloğunda)
   ========================================================================== */
@media (min-width: 64rem) and (max-width: 79.98rem) {

  /* Sorun: 360px'e kadar açılan sağ ray dar masaüstünde sahneyi 584px'e
     sıkıştırıyordu — ray 316px ile sınırlanır, sahne nefes alır. */
  .portal-home-hero-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(264px, 316px);
  }
}


/* ============================================================================
   5) ≤1023px — DOKUNMA ERGONOMİSİ + TAŞMA GÜVENLİK AĞI + FAB/TOPBAR
   ========================================================================== */
@media (max-width: 1023.98px) {

  /* Sorun: filtre pilleri ~36-40px'ti (polish 40px'e çekmişti) — WCAG/iOS
     44px dokunma hedefi; görünüm sabit, alan min-height ile büyür. */
  .portal-root .filter-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
  }

  /* Sorun: ilçe/menü pilleri (.portal-pill) ~36px dokunma alanındaydı. */
  .portal-root .portal-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
  }

  /* Sorun: hamburger menü düğmesi 36×36px'ti — 44×44px'e büyütülür
     (h-9/w-9 height/width verir; min-* çakışmadan kazanır). */
  .portal-header button.lg\:hidden {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  /* Sorun: hero slider okları 36px'ti — dokunmada 44px hedef. */
  .portal-home-hero-arrow,
  .portal-news-hero-arrow {
    width: 2.75rem;
    height: 2.75rem;
  }

  /* Sorun: 20×4px slider noktaları dokunulamayacak kadar küçüktü — görsel
     4px çubuk korunur (background-clip), dikey vuruş alanı dolgu ile büyür. */
  .portal-home-hero-dot {
    box-sizing: content-box;
    padding-block: 0.5rem;
    background-clip: content-box;
  }

  /* Sorun: dashboard "Tümünü gör" pili ~29px yüksekliğindeydi. */
  .portal-dash-card .portal-dash-link {
    min-height: 2.75rem;
    padding-inline: 1rem;
  }

  /* Sorun: telefon (tel:) butonu ~37px'ti — aramaya giden en kritik hedef. */
  .portal-root .portal-btn-call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
  }

  /* Sorun: meta bardaki yenile butonu ~30px'ti. */
  .portal-root .portal-meta-bar button {
    min-height: 2.75rem;
  }

  /* Sorun: bugün paneli arama girişi/butonu ~36px'ti. */
  .portal-today-search-input,
  .portal-today-search-btn {
    min-height: 2.75rem;
  }

  /* Sorun: footer linkleri inline olduğundan polish'in min-height'ı hiç
     uygulanmıyordu — inline-flex ile 44px hedef gerçekten etkinleşir. */
  .portal-root footer a {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
  }

  /* Sorun: 16px altı input fontu iOS Safari'de odaklanınca sayfayı
     zorla yakınlaştırıyor — tüm form öğeleri min 16px. */
  .portal-root input,
  .portal-root select,
  .portal-root textarea {
    font-size: max(16px, 1em);
  }

  /* Sorun: sabit chat FAB'ı (60px + 24px offset, inline-style olduğundan
     taşınamaz) sayfa sonunda footer içeriğini örtüyordu — footer altına
     FAB yüksekliği kadar güvenli alan ayrılır. */
  .portal-root footer {
    padding-bottom: 5.5rem;
  }

  /* Sorun: çentikli/home-bar'lı cihazlarda FAB payı sistem çubuğuyla
     çakışıyordu — safe-area desteği olan tarayıcıda pay üstüne eklenir. */
  @supports (padding: env(safe-area-inset-bottom)) {
    .portal-root footer {
      padding-bottom: calc(5.5rem + env(safe-area-inset-bottom));
    }
  }

  /* Sorun: enhance.js topbar'ı kayıyor ama iOS momentum ve komşu dikey
     scroll zincirlenmesi tanımsızdı — kaydırma davranışı güçlendirilir.
     (Dolguya dokunulmaz: enhance.js'in enjekte stili daha sonra geldiğinden
     padding üzerinde son söz onundur.) */
  #db-topbar {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }
  #db-topbar .db-tb-item {
    scroll-snap-align: start;
  }

  /* GÜVENLİK AĞI (kaynağı düzeltilen taşmalardan sonra son sigorta):
     clip kullanılır — hidden gibi scroll container oluşturmaz, böylece
     .portal-header'ın sticky davranışı bozulmaz. */
  .portal-root {
    overflow-x: clip;
  }
}


/* ============================================================================
   6) DOKUNMATİK CİHAZ — yapışkan :hover transform'larının nötrlenmesi
   Bundle kendi hover'larını @media(hover:hover) ile sarmıştı; polish ve
   redesign katmanlarının transform'lu hover'ları ise dokunmada "yapışıp"
   kartları zıplatıyordu. Renk/gölge geçişleri bilinçli olarak korunur,
   :active basış geri bildirimi (polish §7) aynen çalışır.
   ========================================================================== */
@media (hover: none) {

  /* Sorun: tek dokunuşta kartlar kalkık pozisyonda asılı kalıyordu. */
  .portal-root .sec-place-card:hover,
  .portal-root .ev:hover,
  .portal-root .hero-post-card:hover,
  .portal-root .related-post-card:hover,
  .portal-place-mini:hover,
  .portal-root article.portal-card:hover,
  .portal-root a.portal-card.portal-card-hover:hover,
  .portal-root .map-list-item:hover,
  .portal-root .contact-block:hover,
  .portal-root .not-found-btn:hover,
  .portal-root .dynamic-page-back-link:hover,
  .portal-root .btn-view-all:hover,
  .portal-btn:hover,
  .portal-mobile-hero-ad:hover,
  footer a:hover {
    transform: none;
  }

  /* Sorun: dokunuşta görsel zoom'u takılı kalıyordu (kart içi img scale). */
  .portal-root .sec-place-card:hover .sec-place-card__img img,
  .portal-root .hero-post-card:hover .hero-post-img img,
  .portal-root .related-post-card:hover .related-post-img img,
  .portal-place-mini:hover img,
  .portal-news-hero-rail-item:hover .portal-news-hero-rail-thumb img,
  .portal-root .bg-\[\#141414\] .grid-cols-2 > a:hover {
    transform: none;
  }

  /* Sorun: quick-nav ikonu dokunuşta havada kalıyordu. */
  .portal-quick-nav-item:hover .portal-quick-nav-icon {
    transform: none;
  }

  /* Sorun: slider oku dokunuşta büyümüş (scale 1.08) kalıyordu. */
  .portal-home-hero-arrow:hover,
  .portal-news-hero-arrow:hover {
    scale: 1;
  }

  /* Sorun: "devamını oku" oku dokunuşta kaymış pozisyonda kalıyordu. */
  .portal-root .hero-post-card:hover .hero-post-read:after,
  .portal-root .related-post-card:hover .hero-post-read:after {
    transform: none;
  }
}


/* ============================================================================
   7) YAZDIRMA — topbar/FAB/nav gizli, kartlar kenarlıklı düz, mürekkep dostu
   ========================================================================== */
@media print {

  /* Sorun: bilgi şeridi, reklam rayları, slider kontrolleri ve arama formu
     kağıtta anlamsız — tamamen gizlenir. */
  #db-topbar,
  #glow-cursor,
  .portal-rail,
  .portal-ad-link,
  .portal-mobile-hero-ad,
  .portal-home-hero-arrow,
  .portal-home-hero-dots,
  .portal-news-hero-arrow,
  .portal-today-search,
  .portal-header nav,
  .portal-header form,
  .portal-header button {
    display: none;
  }

  /* Sorun: chat FAB'ı inline display:flex taşıdığından display:none'ı
     !important'sız yener — inline'da OLMAYAN visibility ile gizlenir. */
  button[aria-label="Yapay Zeka Rehber"] {
    visibility: hidden;
  }

  /* Sorun: sticky header her yazdırılan sayfada tekrarlanıyordu. */
  .portal-header {
    position: static;
    box-shadow: none;
  }

  /* Sorun: polish'in 3px turuncu marka şeridi kağıtta bant bırakıyordu. */
  .portal-header::before {
    display: none;
  }

  /* Sorun: degrade/krem zeminler mürekkep harcıyordu — beyaza döner. */
  .portal-root {
    background: #fff;
  }
  .portal-dashboard-zone,
  .portal-explore-wrap > .bg-stone-50\/60 {
    background: #fff;
    box-shadow: none;
  }

  /* Sorun: tarih bölümünün kemer silüeti deseni kağıtta gölge yapıyordu. */
  .portal-root .sec:has(.timeline) {
    background-image: none;
  }

  /* Sorun: gölgeli/kalkık kartlar kağıtta bulanık basılıyordu —
     düz, ince kenarlıklı kutular; sayfa sonunda kart bölünmez. */
  .portal-root .sec-place-card,
  .portal-root .ev,
  .portal-root .hero-post-card,
  .portal-root .related-post-card,
  .portal-place-mini,
  .portal-root article.portal-card,
  .portal-root a.portal-card,
  .portal-root div.portal-card,
  .portal-dash-card,
  .portal-today-panel,
  .portal-quick-nav {
    box-shadow: none;
    border: 1px solid #d6d3d1;
    transform: none;
    break-inside: avoid;
  }

  /* Sorun: kart görseli üzerindeki karartma degradeleri baskıda griye
     boğuyordu — scrim'ler kaldırılır. */
  .portal-root .sec-place-card__img:after,
  .portal-home-hero-stage-overlay {
    display: none;
  }

  /* Sorun: koyu (stone-950) footer tam sayfa siyah blok basıyordu —
     beyaz zemin, koyu metin, ince üst çizgi; FAB payı da gereksiz. */
  .portal-root footer {
    background: #fff;
    color: #57534e;
    border-top: 1px solid #d6d3d1;
    padding-bottom: 1rem;
  }
  .portal-root footer a,
  .portal-root footer h4,
  .portal-root footer .text-white {
    color: #1c1917;
  }
}

/* ============================================================
   HOTFIX (10 Haz 2026, canli olcumle tespit): grid cocuklarinda
   min-width:auto tuzagi — nowrap icerikler (adres/telefon/rozet)
   kolon rayini sisirip mobilde icerigin saga tasip kesilmesine
   yol aciyordu (dash karti 636px, sec-grid rayi 606px olculdu).
   min-width:0 her genislikte guvenlidir, media query disinda. */
.portal-root .sec-grid > *,
.portal-root .portal-grid-dashboard > *,
.portal-root .related-posts-grid > * {
  min-width: 0;
}
.portal-root .portal-dash-card,
.portal-root .sec-place-card {
  min-width: 0;
}
.portal-root .portal-list-row > * {
  min-width: 0;
}
