/* ÇEŞTOB — uygulama katmanı stilleri
   theme.css ve pages.css DEĞİŞTİRİLMEZ. Statik temada karşılığı olmayan
   sunucu tarafı arayüz parçaları (flash mesajlar, sayfalama, form hataları,
   boş durum kutuları) yalnızca bu dosyada tanımlanır ve tema değişkenlerini kullanır. */

/* --- flash mesajlar --- */
.flash-stack{display:flex;flex-direction:column;gap:10px;margin:0 0 22px}
.flash{display:flex;align-items:flex-start;gap:11px;padding:14px 18px;border-radius:var(--r-sm);
  font:600 13.5px/1.55 var(--body);border:1px solid transparent;animation:pop .35s var(--ease) both}
.flash__icon{flex:none;width:18px;height:18px;margin-top:1px}
.flash--success{background:var(--ok-bg);color:var(--ok-fg);border-color:rgba(61,122,70,.16)}
.flash--error{background:var(--bad-bg);color:var(--bad-fg);border-color:rgba(160,74,51,.16)}
.flash--warning{background:var(--warn-bg);color:var(--warn-fg);border-color:rgba(160,106,44,.16)}
.flash--info{background:var(--tint);color:var(--blue-ink);border-color:rgba(29,127,168,.16)}
.flash__close{margin-left:auto;flex:none;opacity:.55;font-size:15px;line-height:1}
.flash__close:hover{opacity:1}

/* --- alan bazlı form hataları --- */
.field-error{display:block;margin-top:6px;font:600 12px/1.5 var(--body);color:var(--bad-fg)}
.input.has-error,.textarea.has-error,.select.has-error{border-color:var(--bad-fg);
  box-shadow:0 0 0 3px rgba(160,74,51,.09)}

/* --- sayfalama --- */
.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin-top:34px}
.pagination a,.pagination span{min-width:40px;height:40px;padding:0 13px;display:inline-flex;
  align-items:center;justify-content:center;border-radius:var(--r-pill);
  font:700 13px var(--head);border:1px solid var(--border);background:var(--panel);color:var(--text)}
.pagination a:hover{border-color:var(--blue);color:var(--blue)}
.pagination .is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.pagination .is-disabled{opacity:.4;pointer-events:none}
.pagination__gap{border:0;background:none;min-width:22px;padding:0}

/* --- boş durum --- */
.empty-state{padding:44px 28px;text-align:center;border:1px dashed var(--border);
  border-radius:var(--r-md);background:var(--soft)}
.empty-state strong{display:block;font:700 16px var(--head);color:var(--navy)}
.empty-state p{margin-top:7px;font:500 13.5px/1.6 var(--body);color:var(--muted)}

/* --- hata sayfaları --- */
.error-page{padding:96px 0 110px;text-align:center}
.error-page__code{font:800 96px/1 var(--head);letter-spacing:-.05em;color:var(--tint)}
.error-page h1{margin-top:-26px;font-size:38px}
.error-page p{max-width:520px;margin:14px auto 0;color:var(--text-2)}
.error-page__cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:26px}

/* --- erişilebilirlik: içeriğe atla ---
   left:-9999px kullanılmaz: RTL'de sola taşma kaydırılabilir sayılıp belgeyi
   ~10000px büyütüyor. Yukarı taşıma iki yönde de belgeyi genişletmez. */
.skip-link{position:absolute;inset-inline-start:0;top:0;z-index:100;padding:12px 20px;
  background:var(--navy);color:#fff;border-radius:0 0 var(--r-sm) 0;font:700 13px var(--head);
  transform:translateY(-150%)}
.skip-link:focus{transform:none;color:#fff}

@media (max-width:760px){
  .error-page{padding:64px 0 74px}
  .error-page__code{font-size:68px}
  .error-page h1{margin-top:-16px;font-size:28px}
}

/* --- üye panelindeki olanak seçici --- */
.fac__group + .fac__group{margin-top:18px}
.fac__group-title{font:700 12px var(--head);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fac__bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.fac__search{flex:1;min-width:220px}
.fac__count{flex:none;font:600 12.5px var(--body);color:var(--muted)}
.fac__custom{margin-top:18px}
.mix-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;
  border-bottom:1px solid var(--line);font:500 13.5px var(--body)}
.mix-row:last-child{border-bottom:0}
.mix-row b{font:700 13.5px var(--head);color:var(--navy)}

/* --- dil değiştirici bağlantı olarak (theme.css'teki .lang button ile aynı görünüm) --- */
.lang a{display:inline-flex;align-items:center;padding:4px 8px;
  border-radius:var(--r-pill);font:700 13px var(--head);
  color:#9fc4da;line-height:1.6;text-decoration:none;transition:background .2s ease,color .2s ease}
.lang__flag{width:14px;height:14px;border-radius:50%;object-fit:cover;flex:none;
  box-shadow:0 0 0 1px rgba(15,46,70,.18)}
/* yazı yalnızca aktif dilde açık; diğerlerinde hover/odakta kayarak çıkar */
.lang__label{max-width:0;margin-left:0;opacity:0;overflow:hidden;
  transform:translateX(-4px);
  transition:max-width .25s ease,margin-left .25s ease,opacity .2s ease,transform .25s ease}
.lang a:hover .lang__label,.lang a:focus-visible .lang__label,
.lang a.is-active .lang__label{max-width:24px;margin-left:5px;opacity:1;transform:none}
.lang a.is-active{padding-right:10px}
.lang a:hover{color:#fff}
.lang a.is-active{background:#fff;color:var(--navy)}

/* mobilde burger'ın yanında İletişim sabit kalır (prototipteki gibi);
   theme.css'teki genel .nav__actions .btn gizlemesini yalnızca bunun için geri açar */
@media (max-width:1180px){
  .nav__actions .btn--primary{display:inline-flex}
}
/* burger, yanındaki İletişim (btn--sm, 38px) ile aynı yükseklikte */
.nav__burger{width:38px;height:38px;gap:3px}
.nav__burger span{width:16px;height:4px;min-height:4px;
  transition:transform .25s ease,opacity .2s ease}
/* menü açıkken burger çarpıya dönüşür (çubuk merkezleri 7px aralıklı) */
body.nav-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .nav__burger span:nth-child(2){opacity:0;transform:scaleX(.4)}
body.nav-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- RTL (Arapça) düzeltmeleri --- */
/* Kayan üye şeridi RTL'de belgeyi sola doğru binlerce px büyütüyor;
   şeridin kendisi yön bağımsız bir animasyon, LTR olarak kalır. */
[dir="rtl"] .marquee{direction:ltr}
/* Telefon numarası ve adres gibi LTR diziler RTL metin akışında ters dizilmesin */
[dir="rtl"] .topbar__tel,[dir="rtl"] .topbar__addr,[dir="rtl"] .footer__addr{
  direction:ltr;unicode-bidi:isolate}

/* --- sayfa içeriği: liste ve kart blokları --- */
.block-json{padding:18px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--soft)}
.block-rows{display:flex;flex-direction:column;gap:12px}
.block-row{position:relative;padding:14px 16px 16px;border:1px solid var(--border);
  border-radius:var(--r-sm);background:var(--panel)}
.block-row__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.block-row__num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  border-radius:var(--r-pill);background:var(--tint);color:var(--blue-ink);font:700 11.5px var(--head)}
.block-row__del{width:26px;height:26px;border-radius:var(--r-pill);color:var(--muted);
  font-size:13px;line-height:1;transition:background .2s ease,color .2s ease}
.block-row__del:hover{background:var(--bad-bg);color:var(--bad-fg)}
.block-row .field + .field{margin-top:12px}
.field__label--sub{font-size:11.5px;color:var(--muted)}

/* --- gerçek onay kutuları ---------------------------------------------
   Statik temada .checkline yalnızca KVKK onay metninin yanındaki sabit bir
   işaretti; sunucu tarafında ise gerçek bir açık/kapalı anahtarı. Bu yüzden
   işaretli/işaretsiz ayrımı ve klavye odağı burada tanımlanır. theme.css'e
   dokunulmaz. */
label.checkline{position:relative;cursor:pointer}
/* hidden özniteliğinin tarayıcı kuralı display:none !important olduğu için
   burada da !important gerekir; kutu görünmez ama odaklanabilir kalır, böylece
   required doğrulaması ve klavye kullanımı çalışır. */
.checkline input[type="checkbox"][hidden]{display:block !important;position:absolute;
  left:18px;top:18px;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.checkline input[type="checkbox"] + .checkbox{background:var(--panel);
  border:1.5px solid var(--border);color:transparent;
  transition:background .18s ease,border-color .18s ease,color .18s ease}
.checkline input[type="checkbox"]:checked + .checkbox{background:var(--blue);
  border-color:var(--blue);color:#fff}
.checkline input[type="checkbox"]:focus-visible + .checkbox{
  box-shadow:0 0 0 3px rgba(29,127,168,.22)}

/* --- yönetim panelinin sol menüsü ---
   Sol modül menüsü sayfayla birlikte kayar, ekrana sabitlenmez (.sticky-side
   sınıfı kaldırıldı). Izgara hücresine yayılıp gereksiz uzamasın diye
   hizalama başa alınır. */
.grid--admin > .side-nav{align-self:start}

/* --- ayarlar sayfası ---
   Her ayar grubu kendi panelinde; kısa alanlar ikişerli yan yana, uzun metinler
   ve onay kutuları tam genişlik. Açıklama yazısı ait olduğu alana yapışır
   (temadaki .field__hint satır içi bir niteleyicidir, burada blok). */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.settings-grid > .field--wide{grid-column:1 / -1}
.settings-form .field__hint{display:block;margin-top:6px;font:400 12.5px/1.5 var(--body);color:var(--muted)}
.settings-form .panel + .panel{margin-top:18px}

/* Grup panelinin altına iliştirilen ek bloklar (deneme e-postası, kuyruk durumu) */
.settings-extra{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.settings-cron{margin:10px 0 0;padding:12px 14px;border-radius:var(--r-sm);background:var(--navy);
  color:#9fdcf3;font:500 12px/1.5 Consolas,ui-monospace,monospace;overflow-x:auto;white-space:pre}

@media (max-width:900px){
  .settings-grid{grid-template-columns:1fr}
}

/* --- yönetim paneli > Ziyaretçiler --- */
.olcum-list{display:flex;flex-direction:column;gap:9px}
.olcum-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:center;font:600 13.5px/1.3 var(--body);color:var(--text)}
.olcum-row__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.olcum-row__num{font:700 13px var(--head);color:var(--navy)}
.olcum-row__bar{grid-column:1 / -1;height:5px;border-radius:var(--r-pill);background:var(--tint);overflow:hidden}
.olcum-row__bar i{display:block;height:100%;border-radius:inherit;background:var(--blue)}
.olcum-delta{font:700 12.5px var(--head);color:var(--text-2)}
.olcum-delta small{font:500 12px var(--body);color:var(--text-2)}
.olcum-delta--up{color:var(--ok-fg)}
.olcum-delta--down{color:var(--bad-fg)}
.stat--dark .olcum-delta,.stat--dark .olcum-delta small,.stat--dark .meta{color:rgba(255,255,255,.7)}

/* --- hero slaytı ve sayfa banner görselleri ---
   theme.css .media kutusunu mutlak konumlandırır ama img için kapsama kuralı yoktur;
   yüklenen görsel kutuyu doldursun, konu sağa (yazının olmadığı tarafa) yaslansın. */
.hero__slide .media img,.banner .media img{width:100%;height:100%;object-fit:cover;object-position:60% center}

/* --- her .media kutusundaki görsel (liste küçük resmi, kart kapağı, kurul fotoğrafı) ---
   Tema .media kutularını görselsiz tasarladığından img için kapsama kuralı yok: 16:9 kapak
   104×80 küçük resimde altta çizgili yer tutucu bandı bırakıyordu. Görsel kutuyu doldurup
   merkezden kırpılır; hero/banner'ın 60% odak kuralı (üstteki, daha özgül) aynen geçerli. */
.media img{width:100%;height:100%;object-fit:cover;display:block}

/* img_tag() <picture> sarmalayıcısı kutu modelinde görünmez; .media img kuralları aynen çalışır */
picture{display:contents}

/* --- sayfa banner'ı fotoğraflıyken (tesis sayfası) ---
   theme.css banner'ı görselsiz (degrade zemin) tasarlamış: 420 px sabit yükseklik tam ekran
   genişlikte 4,5:1 şerit verir ve 16:9 fotoğrafın yalnızca %40'ı görünür; karartma da fotoğrafı
   boğar. Yükseklik ekranla büyür (1920 px'te 640 px → fotoğrafın ~%60'ı), karartma hafifletildi. */
.banner{min-height:clamp(420px,34vw,640px)}
/* Banner'da yakınlaştırma (Ken Burns) kapalı: küçük kaynak fotoğrafı daha da büyütüp bulanıklaştırıyordu (13 Eyl 2026) */
.banner .media{animation:none}
/* --- tesis banner'ı bölünmüş düzen (13 Eyl 2026): yazı solda lacivert panelde, fotoğraf sağda 16:9 kutuda.
   Sebep: üye kapak fotoğraflarının üçte ikisi 1200 px altında; tam ekran (≈1850 px) banner'da pikselleşiyordu.
   Satır yüksekliğini fotoğrafın oranı belirler, tema banner'ının clamp yüksekliği burada geçersiz. --- */
.banner--split{display:grid;grid-template-columns:1.05fr 1fr;min-height:0;background:var(--navy)}
.banner--split .media{position:relative;inset:auto;height:auto;aspect-ratio:16/9;border-radius:0;background:var(--navy);order:2}
.banner--split .media img{object-position:center}
.banner--split .banner__scrim{display:none}
.banner--split .banner__body{position:static;display:flex;flex-direction:column;justify-content:flex-end;padding:92px 44px 44px}
@media (max-width:900px){
  .banner--split{grid-template-columns:1fr}
  .banner--split .media{order:-1}
  .banner--split .banner__body{padding:28px 24px 32px}
}
.banner__scrim{background:linear-gradient(0deg,rgba(15,46,70,.78) 0%,rgba(15,46,70,.18) 62%,rgba(15,46,70,.08) 100%)}

/* --- üye tesisler ızgara kartı: pages.css 150 px sabit yükseklik geniş kartta 3,7:1 şerit veriyor;
   görsel alanı kart genişliğiyle orantılı 16:9 olsun (kapak ön tanımıyla aynı oran, kırpma yok). */
.member-grid__media{height:auto;aspect-ratio:16/9}

/* --- yönetim kurulu başkanı paneli tam satır: üç sütun —
   fotoğraf (kaynak ölçüsünde, büyütülmez) · kimlik (rol, ad, kurum, dönem) · özgeçmiş --- */
.chair{display:grid;grid-template-columns:300px minmax(240px,1fr) 1.5fr;gap:36px;align-items:center}
.chair__photo{width:300px;height:360px;border-radius:28px}
.chair > div{min-width:0}
.chair__facts{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px 18px;color:#b8cfdd;font:600 14px/1.5 var(--body)}
.chair__facts span+span::before{content:"·";margin-right:18px;opacity:.5}
.chair__bio .lead{margin-top:0;max-width:none;font-size:17px;padding-left:36px;border-left:1px solid rgba(255,255,255,.16)}
@media (max-width:1080px){
  .chair{grid-template-columns:300px 1fr;gap:28px}
  .chair__bio{grid-column:1/-1}
  .chair__bio .lead{padding-left:0;border-left:0}
}
@media (max-width:640px){
  .chair{grid-template-columns:1fr}
  .chair__photo{width:160px;height:190px}
}

/* --- yönetim kurulu kartları: portre oranlı fotoğraf (5:6, portrait ön tanımıyla aynı),
   geniş ekranda 5 sütun ki kartlar dev olmasın --- */
.board-card .media{height:auto;aspect-ratio:5/6}
/* Görev Dağılımı: başlık + alt başlık solda sütun, dört görevli kartı sağda (boş sütun kalmasın) */
/* 5 eşit sütun: 1. sütun başlık alanı, 2-5 görevli kartları → kartlar üye kartlarıyla aynı genişlikte */
.duty{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap);align-items:start}
.duty__grid{display:contents}
.duty__head{padding-right:12px}
@media (max-width:1080px){.duty{grid-template-columns:repeat(2,minmax(0,1fr))}.duty__head{grid-column:1/-1}}
@media (max-width:640px){.duty{grid-template-columns:1fr}}
/* komisyon üyeliği rozeti (bağlı komisyon varsa) */
.board-card__commission{display:inline-block;margin-top:10px;padding:5px 11px;border-radius:999px;background:var(--tint);color:var(--blue-ink);font:700 11.5px var(--head);font-style:normal}
@media (min-width:1200px){.grid--4:has(.board-card){grid-template-columns:repeat(5,1fr)}}

/* --- tesis sayfası olanakları: kategori blokları + konsept rozeti --- */
/* satır düzeni: solda kategori adı, sağda öğeler nokta ile ayrılmış; ikon yok, kutu yok */
.fac-groups{display:block}
.fac-group{display:grid;grid-template-columns:200px minmax(0,1fr);gap:8px 24px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}
.fac-group:first-child{border-top:0;padding-top:0}
.fac-group:last-child{padding-bottom:0}
.fac-group__title{margin:0;padding-top:6px;font:800 14px/1.5 var(--head);color:var(--navy)}
/* öğeler: küçük, sakin hap etiketler (pages.css büyük kutularını ezer); ayraç/ikon yok */
.fac-group__items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.fac-groups .fac-group__items li{padding:7px 13px;border-radius:999px;background:var(--soft);font:600 13.5px/1.3 var(--body);color:var(--text)}
@media (max-width:760px){.fac-group{grid-template-columns:1fr;gap:4px}}
.badge--concept{background:var(--blue);color:#fff}
.f-stat--concept{font-size:20px;line-height:1.2}
/* --- tesis sayfası iletişim kartı: ad + etiketli satırlar (adres/telefon/e-posta/web) + yüksek harita --- */
.contact-card__name{margin:12px 0 22px;font:800 19px/1.25 var(--head);color:var(--navy);letter-spacing:-.02em}
.contact-card__list{margin-top:0}
.contact-card__list{margin:0}
.contact-card__list > div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;padding:11px 0;border-top:1px solid var(--line)}
.contact-card__list dt{font:700 11.5px/1.6 var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.contact-card__list dd{margin:0;font:500 14.5px/1.55 var(--body);color:var(--text);overflow-wrap:anywhere}
.contact-card__list dd a{color:var(--blue);font-weight:600}
.contact-card__map.map--xs{height:300px}
/* Tesis Hakkında kutuları: sayı değişken (oda/plaj/sezon + konsept + evcil hayvan) */
.tiles-auto{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

/* --- harita pini seçili durum: daha büyük, çerçeve lacivert değil beyaz kalır --- */
.pin--active{width:68px;height:68px;border-radius:18px;
  box-shadow:0 0 0 3px #fff,0 10px 24px rgba(15,46,70,.45)}

/* --- tesis galerisi: kaydırmalı şerit + büyük görüntüleyici (tesis-detay, gallery.js) ---
   4'lü sabit ızgara yalnızca ilk 4 fotoğrafı gösteriyordu; şerit yatay kayar (kaydırma çubuğu,
   oklar, dokunmatik), her öğe tıklanınca tam boy açılır. */
.gallery{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none}   /* kaydırma çubuğu gizli: oklar + sürükleme/dokunmatik yeter */
.gallery::-webkit-scrollbar{display:none}
.gallery__item{flex:0 0 calc((100% - 42px) / 4);min-width:200px;height:150px;padding:0;border:0;cursor:zoom-in;scroll-snap-align:start;appearance:none;-webkit-appearance:none}
.gallery__item:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
/* yön okları: lacivert yuvarlak düğme (hero oklarıyla aynı ölçü), açık gri btn--light zayıf kalıyordu */
.gallery__nav{display:flex;gap:8px;flex:none}
.gallery__nav .btn{width:46px;height:46px;padding:0;border-radius:50%;border:0;background:var(--navy);color:#fff;
  font:700 17px var(--head);box-shadow:0 8px 18px rgba(15,46,70,.22);transition:background .2s ease,transform .2s ease}
.gallery__nav .btn:hover{background:var(--blue);color:#fff;transform:translateY(-1px)}
@media (max-width:760px){.gallery__item{flex-basis:calc((100% - 14px) / 2)}}

.lightbox{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(15,46,70,.92)}
.lightbox.is-open{display:flex;animation:fade .25s ease both}
.lightbox__figure{margin:0;max-width:min(1400px,100%);display:flex;flex-direction:column;align-items:center;gap:12px}
.lightbox__figure img{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:var(--r-md);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.lightbox__figure figcaption{display:flex;gap:16px;align-items:center;color:#c3d7e3;font:600 13.5px var(--body)}
.lightbox__count{color:#fff;opacity:.7}
.lightbox__close,.lightbox__arrow{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.lightbox__close:hover,.lightbox__arrow:hover{background:rgba(255,255,255,.28)}
.lightbox__close{top:22px;right:22px}
.lightbox__arrow{top:50%;transform:translateY(-50%)}
.lightbox__arrow--prev{left:22px}.lightbox__arrow--next{right:22px}
body.lightbox-open{overflow:hidden}
@media (max-width:760px){
  .lightbox{padding:12px}
  .lightbox__figure img{max-height:70vh}
  .lightbox__arrow{width:40px;height:40px;top:auto;bottom:16px;transform:none}
  .lightbox__arrow--prev{left:16px}.lightbox__arrow--next{right:16px}
}

/* harita bilgi kartı: tesis seçilene kadar boş kutu görünmesin */
.map__card:empty{display:none}

/* keşfet/diğer üye tesis kartları: 130 px yatay şerit yerine kapak oranı 16:9 */
.discover-card .media--h130{height:auto;aspect-ratio:16/9}

/* --- harita döşemesi: CARTO "API key required" filigranı bastığı için Esri Light Gray Canvas'a geçildi
   (zaten gri, tepe/POI simgesi yok); zorunlu kaynak yazısı küçük tutulur --- */
.leaflet-control-attribution{font:500 10px/1.4 var(--body);color:var(--muted);background:rgba(255,255,255,.75);padding:1px 6px}
.leaflet-control-attribution a{color:var(--muted)}
.leaflet-control-attribution .leaflet-attribution-flag{display:none!important}

/* Yan sütunlu ızgaralarda sütunlar içerik (galeri şeridi, uzun metin) yüzünden genişlemesin —
   fr sütununun tabanı min-content'tir; kaydırmalı galeri 8×200 px taban üretip sayfayı taşırıyordu. */
.grid--side > *,.grid--side-wide > *{min-width:0}

/* --- mahalle kartları görselsiz (13 Eyl 2026, kullanıcı isteği): etiket rozeti gövdede başlığın üstünde --- */
.district-card .discover-card__body{padding-top:22px}
.district-card__tag{align-self:flex-start}

/* --- haber kartı görseli (17 Eyl 2026, kullanıcı isteği): sabit 180px yerine geniş ekranda orantılı yükseklik --- */
.news-card .media--h180{height:auto;aspect-ratio:16/10}

/* --- wipe animasyonu bitişte kutuya kırpıyordu; Ş/Ç çengelleri kesiliyordu (17 Eyl 2026): bitiş kırpımı harf taşmalarını kapsasın --- */
@keyframes wipe-safe{from{opacity:0;clip-path:inset(0 -.15em 100% -.15em)}to{opacity:1;clip-path:inset(-.1em -.15em -.3em -.15em)}}
.anim-wipe,.hero__title span{animation-name:wipe-safe}

/* --- keşfet kartları ve ana sayfa haber kartı görselleri de orantılı yükseklik (17 Eyl 2026) --- */
.discover-card .media--h170,.discover-card .media--h180,.news-card .media--h170{height:auto;aspect-ratio:16/10}

/* --- grid hücreleri içeriklerinin (görsel/uzun sözcük) doğal genişliğiyle paneli taşırmasın (18 Eyl 2026, FHD altı dizüstü) --- */
.grid > *{min-width:0}
.media img,.media picture{max-width:100%}
.news-card h3,.discover-card__title{overflow-wrap:anywhere}

/* --- ana menü: "Ana Sayfa" eklendi (18 Eyl 2026); sığması için yazı ve iç boşluk bir tık küçük --- */
.nav__links{font-size:14px;gap:1px}
.nav__link{padding:9px 10px}
@media (max-width:1320px){.nav__links{font-size:13.5px}.nav__link{padding:9px 8px}}
/* uzun dillerde (el, ru, de, nl) menü bir tık daha küçük; menü taşarsa alt satıra kırılır, düğmeleri ezmez */
.nav__links{flex-wrap:wrap;justify-content:center;min-width:0}
html[lang="el"] .nav__links,html[lang="ru"] .nav__links,html[lang="de"] .nav__links,html[lang="nl"] .nav__links{font-size:13.5px}
@media (max-width:1320px){html[lang="el"] .nav__links,html[lang="ru"] .nav__links,html[lang="de"] .nav__links,html[lang="nl"] .nav__links{font-size:13px}.nav__link{padding:9px 7px}}

/* --- haber detay: başlık + kapak sol sütunda, kenar çubuğuyla aynı hizada (18 Eyl 2026); kapak 16:9, tam genişlik kırpması yok --- */
.article__body .article__cover{height:auto;aspect-ratio:16/9;margin:34px 0 36px;border-radius:var(--r-lg)}
@media (max-width:760px){.article__body .article__cover{margin:24px 0 26px}}

/* --- görsel kırpma: kart görselleri üst kısmı öncelikli keser (yüzler üstte), haber detayında kapak hiç kırpılmaz (18 Eyl 2026) --- */
.news-card .media img,.discover-card .media img,.related .media img,.media--thumb img{object-position:50% 22%}
.article__body .article__cover{aspect-ratio:auto}
.article__body .article__cover img{height:auto;object-fit:contain}

/* --- yönetim kurulu kartı: unvan belirgin, bağlı tesis ayrı satırda (18 Eyl 2026) --- */
.board-card__role{margin-top:6px;font:700 13px/1.35 var(--head);color:var(--blue-ink);letter-spacing:.01em}
.board-card__facility{margin-top:3px;font:500 12.5px/1.4 var(--body);color:var(--muted)}
