/* ===== Çalışmalar — liste kartları, detay galerisi, tam ekran görüntüleyici ===== */

/* --- Kart ızgarası (liste + diğer çalışmalar) --- */
.calisma-liste { padding-top: 10px; padding-bottom: 30px; }
.cal-izgara { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 30px; }
.cal-kart {
  display: flex; flex-direction: column; background: #fff; color: #161615; text-decoration: none;
  border: 1px solid #161615; box-shadow: 3px 3px 0 0 #d37216;
  transition: transform .25s ease, box-shadow .25s ease;
}
.cal-kart:hover, .cal-kart:focus { color: #161615; text-decoration: none; transform: translate(-3px, -3px); box-shadow: 7px 7px 0 0 #d37216; }
.cal-kart__gorsel { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #1d1d1b; border-bottom: 1px solid #161615; }
.cal-kart__gorsel img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1), filter .4s; filter: saturate(.92); }
.cal-kart:hover .cal-kart__gorsel img { transform: scale(1.06); filter: saturate(1.05); }
.cal-kart__gorsel::after { content: ''; position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(to top, rgba(0,0,0,.35), transparent); opacity: 0; transition: opacity .3s; }
.cal-kart:hover .cal-kart__gorsel::after { opacity: 1; }
.cal-kart__govde { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 18px; }
.cal-kart__baslik { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 16px; line-height: 1.4; margin-bottom: 14px; }
.cal-kart__alt { display: flex; justify-content: space-between; align-items: center; margin-top: auto; font-family: 'Rubik', sans-serif; font-size: 12px; color: #7c7c7c; letter-spacing: .03em; }
.cal-kart__incele { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .1em; color: #161615; }
.cal-kart__incele i { display: inline-block; font-style: normal; color: #d37216; transition: transform .25s; }
.cal-kart:hover .cal-kart__incele i { transform: translateX(4px); }

/* --- Detay --- */
.cal-detay { padding-top: 50px; padding-bottom: 40px; }
.cal-geri { display: inline-block; margin-bottom: 22px; font-family: 'Rubik', sans-serif; font-size: 13px; color: #7c7c7c; }
.cal-geri:hover { color: #d37216; text-decoration: none; }
.cal-baslik { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 22px; padding-bottom: 22px; margin-bottom: 26px; border-bottom: 3px solid #161615; position: relative; }
.cal-baslik::after { content: ''; position: absolute; left: 0; bottom: -3px; width: 90px; height: 3px; background: #d37216; }
.cal-baslik h1 { margin: 0; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: clamp(28px, 4vw, 46px); line-height: 1.1; letter-spacing: -.01em; color: #161615; }
.cal-rozet { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: #161615; color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.cal-rozet::before { content: ''; width: 7px; height: 7px; background: #d37216; }
.cal-aciklama { max-width: 820px; margin-bottom: 34px; font-family: 'Rubik', sans-serif; font-size: 17px; font-weight: 300; line-height: 1.85; color: #2b2b29; }

/* Galeri: ilk fotoğraf vitrin, diğerleri 3'lü ızgara */
.cal-galeri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cal-foto { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #1d1d1b; cursor: zoom-in; }
.cal-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.cal-foto:hover img { transform: scale(1.05); }
.cal-foto--vitrin { grid-column: 1 / -1; aspect-ratio: 16 / 8; }
.cal-galeri--r0 .cal-foto--vitrin { aspect-ratio: auto; max-height: 78vh; background: #f4f2ee; }
.cal-galeri--r0 .cal-foto--vitrin img { object-fit: contain; max-height: 78vh; }
/* Vitrin dışındaki fotoğraf sayısına göre sütun: 1 → tam, 2 ve 4 → ikili, diğerleri → üçlü */
.cal-galeri--r1 .cal-foto:not(.cal-foto--vitrin) { grid-column: 1 / -1; aspect-ratio: 16 / 8; }
.cal-galeri--r2, .cal-galeri--r4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cal-foto__buyut {
  position: absolute; right: 14px; bottom: 14px; width: 40px; height: 40px; display: grid; place-items: center;
  background: #d37216; color: #fff; font: 400 26px/1 'Montserrat', sans-serif;
  opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s;
}
.cal-foto:hover .cal-foto__buyut, .cal-foto:focus .cal-foto__buyut { opacity: 1; transform: none; }

@media (max-width: 991px) {
  .cal-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .cal-izgara { grid-template-columns: 1fr; gap: 26px; }
  .cal-galeri { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cal-foto--vitrin, .cal-galeri--r1 .cal-foto:not(.cal-foto--vitrin) { aspect-ratio: 4 / 3; }
  .cal-detay { padding-top: 30px; }
  .cal-foto__buyut { opacity: 1; transform: none; width: 32px; height: 32px; font-size: 20px; right: 10px; bottom: 10px; }
}

/* --- Tam ekran fotoğraf görüntüleyici --- */
.fm-lb { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 60px 90px; background: rgba(14, 14, 13, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); animation: fmLbAc .25s ease; }
.fm-lb[hidden] { display: none; }
@keyframes fmLbAc { from { opacity: 0; } to { opacity: 1; } }
.fm-lb__kutu { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.fm-lb__gorsel { display: block; max-width: min(1400px, calc(100vw - 180px)); max-height: calc(100vh - 150px); width: auto; height: auto; box-shadow: 0 30px 80px rgba(0, 0, 0, .55); cursor: pointer; animation: fmLbGorsel .35s ease; }
@keyframes fmLbGorsel { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
.fm-lb__alt { display: flex; gap: 18px; align-items: baseline; justify-content: space-between; width: 100%; margin-top: 16px; font-family: 'Rubik', sans-serif; color: #fff; }
.fm-lb__baslik { font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 700; }
.fm-lb__baslik::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 10px; background: #d37216; vertical-align: middle; }
.fm-lb__sayac { font-size: 13px; color: #a8a49c; letter-spacing: .08em; }
.fm-lb button { position: absolute; border: 0; background: transparent; color: #fff; cursor: pointer; line-height: 1; padding: 0; opacity: .85; transition: opacity .2s, color .2s, background .2s; }
.fm-lb button:hover, .fm-lb button:focus-visible { opacity: 1; color: #d37216; outline: none; }
.fm-lb__kapat { top: 18px; right: 26px; font-size: 44px; }
.fm-lb__ok { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; font-size: 44px; border: 1px solid rgba(255,255,255,.25) !important; }
.fm-lb__ok:hover { background: #d37216 !important; color: #fff !important; border-color: #d37216 !important; }
.fm-lb__ok--geri { left: 18px; }
.fm-lb__ok--ileri { right: 18px; }
@media (max-width: 767px) {
  .fm-lb { padding: 56px 12px 84px; }
  .fm-lb__gorsel { max-width: calc(100vw - 24px); max-height: calc(100vh - 190px); }
  .fm-lb__ok { top: auto; bottom: 18px; transform: none; width: 48px; height: 48px; font-size: 36px; }
  .fm-lb__ok--geri { left: calc(50% - 58px); }
  .fm-lb__ok--ileri { right: calc(50% - 58px); }
}
