/* ============================================================================
   Sins & Secrets Kontakt Club
   Tüm varlıklar yerel. Dış istek yok — font, ikon, harita dahil.
   ========================================================================= */

/* --- FONTLAR (yerel, subset, variable) ---------------------------------- */
@font-face{
  font-family:"Archivo";font-style:normal;font-weight:300 600;font-display:swap;
  src:url("../fonts/archivo-var.woff2") format("woff2-variations"),
      url("../fonts/archivo-var.woff2") format("woff2");
}
@font-face{
  font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/bodoni-var.woff2") format("woff2-variations"),
      url("../fonts/bodoni-var.woff2") format("woff2");
}
@font-face{
  font-family:"Bodoni Moda";font-style:italic;font-weight:400;font-display:swap;
  src:url("../fonts/bodoni-italic-var.woff2") format("woff2-variations"),
      url("../fonts/bodoni-italic-var.woff2") format("woff2");
}
/* Yedek fontlar gerçek metriklere ayarlandı → swap anında satır kayması (CLS) olmuyor. */
@font-face{
  font-family:"Archivo Fallback";src:local("Arial"),local("Helvetica"),local("Liberation Sans");
  size-adjust:92.61%;ascent-override:94.81%;descent-override:22.68%;line-gap-override:0%;
}
@font-face{
  font-family:"Bodoni Fallback";src:local("Georgia"),local("Times New Roman"),local("Liberation Serif");
  size-adjust:102.8%;ascent-override:109.4%;descent-override:38.9%;line-gap-override:0%;
}

/* --- TOKENLAR ----------------------------------------------------------- */
:root{
  --ink-900:#0E1013; --ink-850:#14161A; --ink-800:#1A1D22;
  --ink-750:#1E2229; --ink-700:#22262C; --ink-600:#2C3139; --ink-500:#3A414B;
  --red-500:#E11D2E;          /* yalnızca zemin/çizgi — metin olarak kontrast yetmiyor */
  --red-400:#FF4D5A;          /* metin için kırmızı (AA geçer) */
  --bone:#F2F3F5;
  --muted:#9AA1AB;            /* 5.8:1+ */
  --muted-dim:#858F9A;        /* 4.6:1+ — eski #6E767F AA'da kalıyordu */
  --ok:#4ADE80;

  --serif:"Bodoni Moda","Bodoni Fallback",Georgia,"Times New Roman",serif;
  --sans:"Archivo","Archivo Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;

  /* İkon ölçeği — 4 kademe, `1em` mirası YOK.
     stroke değerleri 24 birimlik viewBox'ta; ekranda hepsi ~1.5–1.8px'e denk gelir. */
  --ico-xs:16px; --ico-sm:20px; --ico-md:24px; --ico-lg:32px;

  --gut:clamp(20px,4.5vw,56px);
  --max:1300px;
  --sp:clamp(64px,9vw,132px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --line:1px solid var(--ink-600);

  /* --- CİHAZ KADEMESİ DEĞİŞKENLERİ ------------------------------------
     Kademeler (aşağıda tek blokta geçersiz kılınıyor):
       xs   ≤359px   iPhone SE 1. nesil, Galaxy Fold kapak ekranı
       sm   360–599  telefon
       md   600–767  büyük telefon yatay / küçük tablet
       lg   768–1023 tablet dikey
       xl   1024–1279 tablet yatay / küçük dizüstü
       xxl  ≥1280    masaüstü
     Bileşen kuralları bu değişkenleri okur; kademe bloğunda sadece sayı
     değişir, seçici tekrarlanmaz. */
  --tap:24px;                       /* en küçük dokunma hedefi */
  --hd-h:80px;                      /* sabit başlık yüksekliği */
  --hd-gap:20px;
  --btn-py:15px; --btn-px:26px; --btn-fs:11.5px; --btn-ls:.18em;
  --btn-w:auto;                     /* telefonda 100% → butonlar dengeli */
  --gal-h:clamp(380px,48vh,470px);  /* galeri şeridi yüksekliği */
  --gal-w:76%;                      /* mobil kaydırmada kart genişliği */
  --gal-pad:20px;
  --clubfig:100%;                   /* dikey club görselinin genişliği */
  --panel-max:none;                 /* tek sütuna düşen panellerin genişlik sınırı */
  --map-ar:4/3;                     /* harita kutusu oranı */
}

/* Dokunmatik cihazda hedefler WCAG 2.5.8'in üstüne, 44px'e çıkıyor.
   Fare/trackpad'de 24px yeterli — orada 44px görsel ritmi bozuyor. */
@media(hover:none){ :root{ --tap:44px } }

@media(max-width:359px){        /* xs */
  :root{
    --gut:14px; --sp:clamp(52px,11vw,64px);
    --hd-h:66px; --hd-gap:8px;
    --btn-py:14px; --btn-px:14px; --btn-fs:10.5px; --btn-ls:.12em; --btn-w:100%;
    --gal-h:250px; --gal-w:90%; --gal-pad:13px;
    --map-ar:1/1;
    --clubfig:240px;
  }
}
@media(min-width:360px) and (max-width:599px){   /* sm */
  :root{
    --btn-w:100%;
    --gal-h:285px; --gal-w:87%; --gal-pad:16px;
    --map-ar:1/1;
    --clubfig:280px;
  }
}
@media(min-width:600px) and (max-width:767px){   /* md */
  :root{
    --hd-h:76px;
    --gal-h:335px; --gal-w:64%; --map-ar:5/4;
    --clubfig:320px; --panel-max:560px;
  }
}
@media(min-width:768px) and (max-width:1023px){  /* lg — tablet dikey */
  :root{
    --btn-py:16px; --btn-px:28px;
    --gal-h:385px; --gal-w:56%;
    --clubfig:360px; --panel-max:600px;
  }
}
@media(min-width:1024px) and (max-width:1279px){ /* xl */
  :root{
    --gal-h:clamp(360px,46vh,440px);
    --clubfig:100%;
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hd-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink-850);color:var(--bone);font-family:var(--sans);
  font-weight:300;font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--red-400);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:absolute;left:8px;top:-60px;z-index:400;background:var(--red-500);color:#fff;
  padding:12px 20px;font-size:13px;text-decoration:none;transition:top .2s}
.skip:focus{top:8px}

/* --- İKON SİSTEMİ ------------------------------------------------------- */
.ico{flex:none;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;
  stroke-linecap:round;stroke-linejoin:round}
.ico-xs{width:var(--ico-xs);height:var(--ico-xs);stroke-width:2.2}
.ico-sm{width:var(--ico-sm);height:var(--ico-sm);stroke-width:1.9}
.ico-md{width:var(--ico-md);height:var(--ico-md);stroke-width:1.6}
.ico-lg{width:var(--ico-lg);height:var(--ico-lg);stroke-width:1.35}

/* --- HEADER ------------------------------------------------------------- */
.hd{position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:1px solid transparent;
  transition:background .35s var(--ease),border-color .35s var(--ease)}
.hd.solid{background:rgba(14,16,19,.94);backdrop-filter:blur(14px);border-bottom-color:var(--ink-600)}
.hd-in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);height:var(--hd-h);
  display:flex;align-items:center;justify-content:space-between;gap:var(--hd-gap)}
/* min-width:0 olmadan flex öğesi içeriğinden küçülmüyor ve sabit başlık
   body'nin overflow-x:hidden'ını aşıp sayfayı yana kaydırıyordu. */
.brand{display:flex;flex-direction:column;line-height:1;text-decoration:none;
  min-width:0;flex:0 1 auto;overflow:hidden}
.brand .bn{font-family:var(--serif);font-size:19px;letter-spacing:.02em}
/* müşteri logosu (src/brand/logo.svg) — yazının yerine geçer */
.brand-mark{display:block;height:26px;width:auto;max-width:230px;color:var(--bone)}
@media(max-width:479px){.brand-mark{height:22px;max-width:170px}}
.brand .bn i{font-style:italic;color:var(--red-400)}
.brand .bn,.brand .bs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand .bs{font-size:8.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted-dim);
  margin-top:5px}
@media(max-width:479px){
  .brand .bn{font-size:17px}
  .brand .bs{font-size:7.5px;letter-spacing:.2em}
  .lang{padding:7px 9px;font-size:10px;letter-spacing:.1em}
  .hd-act{gap:8px}
}
@media(max-width:359px){
  h1{font-size:clamp(2.15rem,11vw,2.7rem)}
  .brand .bn{font-size:16px}
  .brand .bs{font-size:7px;letter-spacing:.12em}
  .lang{padding:6px 8px;font-size:9.5px;letter-spacing:.06em}
  .burger{padding:9px 6px}
  .burger span{width:20px}
}
.nav{display:none}
@media(min-width:1024px){
  .nav{display:flex;gap:24px;align-items:center}
  .nav a{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
    text-decoration:none;position:relative;padding:6px 0;transition:color .25s var(--ease)}
  .nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
    background:var(--red-500);transition:right .35s var(--ease)}
  .nav a:hover,.nav a[aria-current="true"]{color:var(--bone)}
  .nav a:hover::after,.nav a[aria-current="true"]::after{right:0}
}
.hd-act{display:flex;align-items:center;gap:14px;flex:none}
.lang{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  text-decoration:none;padding:8px 10px;border:1px solid var(--ink-600);transition:border-color .3s,color .3s}
.lang:hover{color:var(--bone);border-color:var(--muted-dim)}
.tel{display:none;font-size:11.5px;letter-spacing:.1em;text-decoration:none;
  border:1px solid var(--ink-500);padding:11px 16px;color:var(--bone);white-space:nowrap;
  align-items:center;gap:9px;transition:border-color .3s var(--ease),background .3s var(--ease)}
.tel:hover{border-color:var(--red-500);background:var(--red-500)}
@media(min-width:1200px){.tel{display:inline-flex}}
.burger{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px;cursor:pointer}
@media(min-width:1024px){.burger{display:none}}
@media(min-width:1280px){.nav{gap:28px}}
.burger span{width:24px;height:1.5px;background:var(--bone);transition:transform .3s var(--ease),opacity .3s}
.burger.x span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mob{position:fixed;inset:var(--hd-h) 0 0;background:var(--ink-900);z-index:99;display:flex;
  flex-direction:column;justify-content:center;gap:2px;padding:0 var(--gut);overflow-y:auto;
  transform:translateY(-100%);transition:transform .45s var(--ease);visibility:hidden}
.mob.open{transform:translateY(0);visibility:visible}
.mob a{font-family:var(--serif);font-size:clamp(1.55rem,6.4vw,2.3rem);text-decoration:none;
  padding:11px 0;border-bottom:var(--line)}
.mob .m-tel{font-family:var(--sans);font-size:14px;letter-spacing:.1em;color:var(--red-400);
  border:0;margin-top:24px;display:flex;align-items:center;gap:10px}

/* --- HERO --------------------------------------------------------------- */
.hero{position:relative;min-height:min(76vh,720px);display:flex;align-items:flex-end;
  padding:clamp(92px,14vh,130px) 0 clamp(34px,6vh,84px);overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg .ph,.hero-bg img{height:100%;width:100%;object-fit:cover;object-position:var(--hero-x,35%) center}
/* Hero 21:9; dar ekranda kap dikeye döndüğü için yatayda sert kırpılır.
   Ortadan kırpmak kadrajın sağ yarısına düşüyor — metin görüntünün üstüne
   biniyor. Sola kaydırıp kompozisyonun koyu yarısını görünür tutuyoruz. */
@media(max-width:900px){.hero-bg img{object-position:38% center}}
@media(max-width:599px){.hero-bg img{object-position:41% center}}
@media(max-width:359px){.hero-bg img{object-position:44% center}}
/* storyboard etiketi H1'in üstüne binmesin — fotoğraf gelince zaten yok olur */
.hero-bg .ph{align-items:flex-start;justify-content:flex-end}
.hero-bg .ph::before{margin:96px 24px 0}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,16,19,.14) 0%,rgba(14,16,19,0) 34%,rgba(20,22,26,.74) 100%)}
.hero-in{position:relative;z-index:2;width:100%}
/* Geniş ama basık ekran (yer imi çubuğu + dock açık laptop): h1 8.4vw ile
   genişliğe göre ölçekleniyor, yüksekliğe göre değil — CTA katlanıyordu.
   Sadece burada başlığı yüksekliğe de bağlayıp ritmi sıkıştırıyoruz. */
@media(max-height:620px) and (min-width:760px){
  .hero{padding-top:84px}
  .hero h1{font-size:min(clamp(2.7rem,8.4vw,5.9rem),11.5vh);margin-bottom:12px}
  .hero .lede{margin-bottom:12px}
  .hero .intro{margin-bottom:16px}
}
.eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--red-400);
  margin:0 0 24px;font-weight:500;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--red-500);flex:none}
/* Bodoni Moda'nın tek ekseni opsz (11–96). Tarayıcı font-optical-sizing:auto ile
   punto büyüdükçe opsz'yi yükseltir; Didone'de bu ince çizgileri kıl gibi inceltir.
   Display puntoda okunurluk için opsz'yi elle düşük tutuyoruz. */
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.7rem,8.4vw,5.9rem);line-height:1;
  letter-spacing:-.02em;margin:0 0 20px;text-wrap:balance;
  font-optical-sizing:none;font-variation-settings:"opsz" var(--h1-opsz,11);
  -webkit-text-stroke:var(--h1-stroke,.7px) currentColor}
h1 i{font-style:italic;color:var(--red-400)}
/* H1'in ikinci satırı: marka büyük kalır, konum tanımı daha küçük.
   Ana anahtar kelime H1 içinde kalıyor ama başlık üç satıra taşmıyor.
   Display puntoda kullanılan kalınlaştırma bu satırda kapatılıyor. */
.h1-d{display:block;font-size:clamp(1.2rem,3.4vw,2.45rem);line-height:1.12;
  letter-spacing:0;margin-top:.18em;-webkit-text-stroke:0;
  font-variation-settings:"opsz" 16}
.lede{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,2.3vw,1.45rem);
  margin:0 0 20px;max-width:30ch;line-height:1.4}
.hero .intro{max-width:52ch;color:var(--muted);margin:0 0 clamp(20px,3.4vh,34px)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.cta-row .btn{width:var(--btn-w)}
.gate-row .btn{width:var(--btn-w)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;
  padding:var(--btn-py) var(--btn-px);font-size:var(--btn-fs);min-height:var(--tap);
  letter-spacing:var(--btn-ls);text-transform:uppercase;text-decoration:none;font-weight:500;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
  border:1px solid transparent;cursor:pointer;font-family:inherit;line-height:1}
.btn-p{background:var(--red-500);color:#fff}
.btn-p:hover{background:#fff;color:var(--ink-900)}
.btn-s{border-color:var(--ink-500);color:var(--bone);background:none}
.btn-s:hover{border-color:var(--bone)}

/* --- FAKTEN (ikonsuz — rakamlar tek başına) ----------------------------- */
.facts{background:var(--ink-900);border-block:var(--line)}
.facts-in{display:grid;gap:1px;background:var(--ink-700);grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:760px){.facts-in{grid-template-columns:repeat(5,minmax(0,1fr))}}
.fact{background:var(--ink-900);padding:clamp(30px,3.6vw,44px) clamp(14px,2vw,26px);text-align:center}
@media(max-width:759px){.fact:last-child{grid-column:1/-1}}
.fact .fv{font-family:var(--serif);font-size:clamp(2rem,4.2vw,3rem);line-height:1;
  margin-bottom:12px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fact .fl{font-size:10.5px;letter-spacing:.19em;text-transform:uppercase;color:var(--muted-dim);line-height:1.6}

/* Bodoni Moda'nın opsz ekseni büyük puntolarda yatay çizgileri saç teline indiriyor;
   1× ekranda «–» ve «+» tamamen kayboluyor (ölçüldü: opsz ≥ 28'de gidiyor).
   Rakamsal gösterimlerde ekseni 20'ye kilitliyoruz — harfli başlıklar auto kalıyor. */
.fact .fv,.dist .v,.ferry-s .fs,.gal-cap .n{
  font-optical-sizing:none;font-variation-settings:"opsz" 20}

/* --- BÖLÜM SİSTEMİ ------------------------------------------------------ */
section{padding:var(--sp) 0}
.alt{background:var(--ink-800)}
.shead{display:grid;gap:18px;margin-bottom:clamp(38px,5vw,62px);align-items:end}
@media(min-width:900px){.shead{grid-template-columns:minmax(0,1fr) minmax(280px,40%);gap:56px}}
.snum{font-size:10.5px;letter-spacing:.26em;color:var(--red-400);display:flex;align-items:center;
  gap:11px;margin-bottom:16px;font-weight:500;text-transform:uppercase}
.snum::before{content:"";width:24px;height:1px;background:var(--red-500);flex:none}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.85rem,4.3vw,3.1rem);line-height:1.1;
  letter-spacing:-.015em;margin:0;text-wrap:balance}
h2 i{font-style:italic;color:var(--red-400)}
.shead .sub{color:var(--muted);margin:0;max-width:48ch;font-size:15px}
h3{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  margin:0 0 12px;display:flex;align-items:center;gap:11px;line-height:1.4}
h3 .ico{color:var(--red-400)}
.prose{display:grid;gap:20px;max-width:70ch;margin:0 0 clamp(38px,5vw,58px)}
.prose p{margin:0;color:var(--muted)}
.prose p:first-child{color:var(--bone)}

/* --- görsel yuvası (fotoğraf gelene kadar) ------------------------------ */
.ph{position:relative;display:flex;background:repeating-linear-gradient(135deg,var(--ink-700) 0 14px,var(--ink-750) 14px 28px);
  border:1px solid var(--ink-600);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ph::before{content:attr(data-spec);position:relative;z-index:2;font-size:10px;letter-spacing:.17em;
  text-transform:uppercase;color:var(--muted);background:var(--ink-900);padding:6px 12px;
  border:1px solid var(--ink-500);text-align:center;line-height:1.6;max-width:88%}

/* --- 01 CLUB ------------------------------------------------------------ */
.cards{display:grid;gap:1px;background:var(--ink-700)}
@media(min-width:860px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Club bölümü: metin solda, dikey görsel sağda tam yükseklik.
   Görsel 7:15; sütun daha dar olduğu için yatayda hafif kırpılıyor —
   özne ortada kaldığı için object-position centre yeterli. */
.club-fig{margin:0}
@media(min-width:1000px){
  .club-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,32%);gap:clamp(36px,3.6vw,56px)}
  .club-fig picture,.club-fig img,.club-fig .ph{display:block;width:100%;height:100%;object-fit:cover}
  .club-split .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:999px){
  .club-fig{margin:clamp(32px,5vw,48px) auto 0;width:var(--clubfig);max-width:100%}
  .club-fig picture{display:block}
  .club-fig img,.club-fig .ph{width:100%;height:auto}
}
.card{background:var(--ink-750);display:flex;flex-direction:column}
.card .ph,.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card-b{padding:28px 26px 32px;flex:1}
@media(min-width:600px) and (max-width:859px){
  .card{flex-direction:row;align-items:stretch}
  .card>picture,.card>.ph{flex:0 0 38%;display:block;position:relative;min-height:158px}
  .card>picture img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
  .card>.ph{aspect-ratio:auto}
  .card-b{flex:1;padding:26px 28px}
}
.card-b p{margin:0;color:var(--muted);font-size:14.5px}

/* --- 02 AMBIENTE -------------------------------------------------------- */
.gal{display:flex;gap:1px;height:var(--gal-h);background:var(--ink-700)}
.gal-i{flex:1 1 0;min-width:0;position:relative;overflow:hidden;border:0;padding:0;cursor:pointer;
  background:none;transition:flex-grow .7s var(--ease);display:block}
.gal-i .ph,.gal-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gal-i::after{content:"";position:absolute;inset:0;z-index:3;
  background:linear-gradient(180deg,transparent 45%,rgba(14,16,19,.92) 100%);
  opacity:.85;transition:opacity .5s var(--ease)}
.gal-i:hover,.gal-i:focus-visible,.gal-i[aria-expanded="true"]{flex-grow:3.4}
.gal-i:hover::after,.gal-i[aria-expanded="true"]::after{opacity:.78}
.gal-cap{position:absolute;left:0;bottom:0;z-index:4;padding:var(--gal-pad);width:100%;
  display:flex;align-items:flex-end;gap:12px;pointer-events:none}
.gal-cap .n{font-family:var(--serif);font-size:1.5rem;color:var(--red-400);line-height:1;
  font-variant-numeric:tabular-nums}
.gal-cap .t{font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;margin-bottom:2px}
.gal-i:hover .gal-cap .t,.gal-i[aria-expanded="true"] .gal-cap .t{writing-mode:horizontal-tb;transform:none}
/* 1023px altında yatay kaydırmalı şerit — genişleyen akordeon dokunmatikte
   çalışmıyor. Kart genişliği kademeye göre: telefonda tek kart, tablette
   iki buçuk kart görünüyor. */
@media(max-width:1023px){
  .gal{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .gal-i::after,.gal-i[aria-expanded="true"]::after{opacity:1;
    background:linear-gradient(180deg,transparent 36%,rgba(14,16,19,.62) 64%,rgba(14,16,19,.96) 100%)}
  .gal::-webkit-scrollbar{display:none}
  .gal-i{flex:0 0 var(--gal-w);scroll-snap-align:center}
  .gal-i:hover,.gal-i:focus-visible,.gal-i[aria-expanded="true"]{flex:0 0 var(--gal-w)}
  .gal-cap .t{writing-mode:horizontal-tb;transform:none}
}
.gal-hint{margin:18px 0 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-dim);display:flex;align-items:center;gap:10px}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,3vw,1.95rem);
  line-height:1.4;max-width:28ch;margin:clamp(40px,5vw,64px) 0 0}
.pull span{color:var(--red-400)}

/* --- 03 HAUSREGELN ------------------------------------------------------ */
.rules{display:grid;gap:1px;background:var(--ink-600);border:var(--line)}
@media(min-width:700px){.rules{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1060px){.rules{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rule{background:var(--ink-850);padding:clamp(26px,3vw,34px)}
.alt .rule{background:var(--ink-800)}
.rule .rh{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;font-weight:600;line-height:1.4}
.rule .rh .ico{color:var(--red-400)}
.rule p{margin:0;color:var(--muted);font-size:14.5px}
.rules-outro{margin:clamp(30px,4vw,44px) 0 0;color:var(--muted);max-width:64ch;
  font-style:italic;font-family:var(--serif);font-size:1.05rem;line-height:1.65}

/* --- 04 ANFAHRT --------------------------------------------------------- */
.anf{display:grid;gap:40px}
@media(min-width:920px){.anf{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}}
.addr{font-family:var(--serif);font-size:1.35rem;line-height:1.55;margin:0 0 30px;font-style:normal}
.addr small{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-dim);margin-top:10px}
.ways{display:grid;gap:26px}
.way p{margin:0;color:var(--muted);font-size:14.5px}
.map{position:static}
/* sticky yalnızca iki sütunlu kırılımda — tek sütunda içeriğin üstüne biniyordu */
@media(min-width:920px){.map{position:sticky;top:calc(var(--hd-h) + 24px)}}
/* Tek sütuna düşünce harita tam genişlikte 4:3 kutuya uzuyordu; sınırlanıp
   ortalanıyor — tablette kenardan kenara gerilmiş görünmüyor. */
@media(max-width:919px){.map{width:100%;max-width:var(--panel-max);margin-inline:auto}}
.map .ph{aspect-ratio:4/3;width:100%;display:block}

/* --- gömülü Google haritası --------------------------------
   Harita doğrudan gömülü; loading="lazy" isteği kutu görünüm alanına
   yaklaşana kadar erteliyor.
   Koyu görünüm: Google'ın anahtarsız gömme uç noktası stil kabul etmiyor,
   o yüzden filtre uygulanıyor. invert+hue-rotate ikilisi rengi koruyup
   parlaklığı çeviriyor; sonra doygunluk ve kontrast siteye yaklaştırılıyor. */
.mapbox{position:relative;aspect-ratio:var(--map-ar);width:100%;overflow:hidden;
  border:1px solid var(--ink-600);background:var(--ink-800)}
/* SVG plan iframe'in ALTINDA, kutuyu tam kaplıyor: Google erişilemezse
   (kurumsal ağ, engelleyici) görünür kalıyor. */
.mapbox svg.staticmap{position:absolute;inset:0;z-index:1;width:100%;height:100%;
  aspect-ratio:auto;display:block;object-fit:cover}
.mapbox iframe{position:absolute;inset:0;z-index:2;width:100%;height:100%;border:0;
  filter:invert(93%) hue-rotate(192deg) saturate(.3) brightness(.86) contrast(1.14)}


.maplink{display:inline-flex;align-items:center;gap:10px;margin-top:18px;
  min-height:var(--tap);font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--red-400);text-decoration:none;
  border-bottom:1px solid var(--ink-500);padding-bottom:8px;transition:border-color .3s}
.maplink:hover{border-bottom-color:var(--red-400)}

.ferry{margin-top:clamp(40px,5vw,60px);border:1px solid var(--ink-600);background:var(--ink-850);
  display:grid;gap:1px;grid-template-columns:1fr}
@media(min-width:820px){.ferry{grid-template-columns:minmax(0,1fr) minmax(230px,30%);background:var(--ink-600)}}
.ferry-b{background:var(--ink-850);padding:clamp(28px,3.4vw,40px)}
.ferry-b .fk{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--red-400);
  margin:0 0 14px;font-weight:500;display:flex;align-items:center;gap:11px}
.ferry-b h3{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.7rem);letter-spacing:-.01em;
  text-transform:none;font-weight:400;margin:0 0 14px;gap:14px}
.ferry-b p{margin:0;color:var(--muted);font-size:15px;max-width:56ch}
.ferry-s{background:var(--ink-850);padding:clamp(28px,3.4vw,40px);display:flex;
  flex-direction:column;justify-content:center;text-align:center;gap:6px}
.ferry-s .fs{font-family:var(--serif);font-size:clamp(2.6rem,6vw,3.8rem);line-height:1;
  color:var(--bone);font-variant-numeric:tabular-nums}
.ferry-s .fu{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dim)}
.ferry-s .fu2{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--red-400);margin-top:8px}

.dist-h{margin:clamp(44px,5vw,64px) 0 0;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--muted-dim);font-weight:500}
/* 6 öğe: 2×3 / 3×2 / 6×1 — hangi kırılımda olursa olsun satırlar HER ZAMAN dolu.
   Çizgiler gap ile çiziliyor, böylece sarma olsa bile asılı kenarlık kalmıyor. */
.dist{margin-top:18px;display:grid;gap:1px;background:var(--ink-600);
  border:var(--line);grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:600px){.dist{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1000px){.dist{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:359px){
  .dist{grid-template-columns:minmax(0,1fr)}
  .dist div{padding:16px 12px;display:flex;align-items:baseline;
    justify-content:space-between;text-align:left;gap:14px}
  .dist .c{margin-bottom:0;font-size:10px;letter-spacing:.08em}
  .dist .v{font-size:1.35rem;justify-content:flex-end}
}
.dist div{background:var(--ink-800);padding:22px 18px;text-align:center}
.dist .c{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dim);
  margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dist .v{font-family:var(--serif);font-size:1.6rem;font-variant-numeric:tabular-nums;line-height:1;
  display:flex;align-items:baseline;justify-content:center;gap:4px}
.dist .v em{font-style:normal;font-family:var(--sans);font-size:11.5px;color:var(--muted);
  letter-spacing:.1em;text-transform:uppercase}

/* --- 05 ÖFFNUNGSZEITEN + FAQ -------------------------------------------- */
.infos{display:grid;gap:44px}
@media(min-width:1000px){.infos{grid-template-columns:minmax(300px,36%) minmax(0,1fr);gap:60px;align-items:start}}

.hrs{border:var(--line);background:var(--ink-750);position:static}
@media(min-width:1000px){.hrs{position:sticky;top:calc(var(--hd-h) + 24px)}}
@media(max-width:999px){.hrs{max-width:var(--panel-max);margin-inline:auto;width:100%}}
.alt .hrs{background:var(--ink-750)}
.hrs-top{padding:24px 24px 20px;border-bottom:var(--line)}
.hrs-top .lbl{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dim);
  margin:0 0 14px;font-weight:500;display:flex;align-items:center;gap:10px}
.hrs-top .lbl .ico{color:var(--red-400)}
.status{display:flex;align-items:center;gap:11px;font-size:13.5px;line-height:1.4;flex-wrap:wrap}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--muted-dim);flex:none}
.status.is-open .dot{background:var(--ok);box-shadow:0 0 0 4px rgba(74,222,128,.16)}
.status.is-closed .dot{background:var(--red-500);box-shadow:0 0 0 4px rgba(225,29,46,.16)}
.status b{font-weight:600;letter-spacing:.04em}
.status.is-open b{color:var(--ok)}
.status .st-sub{color:var(--muted);font-size:13px;width:100%;padding-left:20px}
.hrs-list{list-style:none;margin:0;padding:6px 24px 18px}
.hrs-list li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:9px 0;border-bottom:1px solid var(--ink-700);font-size:14px}
.hrs-list li:last-child{border-bottom:0}
.hrs-list .d{color:var(--muted)}
.hrs-list .t{font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap}
.hrs-list li.is-today{color:var(--red-400)}
.hrs-list li.is-today .d{color:var(--red-400);font-weight:500}
.hrs-note{margin:0;padding:0 24px 22px;font-size:12px;color:var(--muted-dim);line-height:1.6}
.hrs .btn{width:calc(100% - 48px);justify-content:center;margin:0 24px 24px}

.faq h3.faq-h{font-size:10.5px;letter-spacing:.24em;color:var(--muted-dim);margin-bottom:6px}
.qa-list{border-top:var(--line)}
.qa{border-bottom:var(--line)}
.qa summary{list-style:none;cursor:pointer;padding:20px 46px 20px 0;position:relative;
  min-height:var(--tap);
  font-size:clamp(1rem,1.7vw,1.12rem);transition:color .25s var(--ease);
  display:flex;align-items:center;gap:15px;line-height:1.45}
.qa summary::-webkit-details-marker{display:none}
.qa summary .ico{color:var(--muted-dim);transition:color .25s var(--ease)}
.qa summary:hover{color:var(--red-400)}
.qa summary:hover .ico,.qa[open] summary .ico{color:var(--red-400)}
.qa summary::after{content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;
  border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease)}
.qa[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa .ans{padding:0 46px 24px 35px;color:var(--muted);margin:0;max-width:66ch;font-size:15px}
@media(max-width:479px){
  .qa summary{padding-right:34px;gap:11px}
  .qa .ans{padding:0 4px 22px 31px}
}
.qa .ans b{color:var(--bone);font-weight:500}

/* --- 06 KONTAKT --------------------------------------------------------- */
.kgrid{display:grid;gap:1px;background:var(--ink-600);border:var(--line)}
@media(min-width:600px) and (max-width:839px){
  .kgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kcell:last-child{grid-column:1/-1}
}
@media(min-width:840px){.kgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.kcell{padding:clamp(28px,3.2vw,38px);background:var(--ink-750);display:flex;
  flex-direction:column;justify-content:space-between;gap:20px;min-height:190px}
.kcell .lbl{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dim);
  display:flex;align-items:center;gap:11px}
.kcell .lbl .ico{color:var(--red-400)}
.kcell a,.kcell .val{font-family:var(--serif);font-size:clamp(1.15rem,2.2vw,1.5rem);
  text-decoration:none;line-height:1.35;transition:color .25s var(--ease);font-style:normal}
.kcell a{overflow-wrap:anywhere}
.kcell a:hover{color:var(--red-400)}
.kcell a.mailval{font-size:clamp(.95rem,1.7vw,1.15rem);padding-block:calc(var(--tap)/4)}
.kcell .val small{display:block;font-family:var(--sans);font-size:12.5px;color:var(--muted);
  letter-spacing:.04em;margin-top:7px}

/* --- FOOTER ------------------------------------------------------------- */
footer{background:var(--ink-900);padding:56px 0 60px;border-top:var(--line)}
.fin{display:flex;flex-wrap:wrap;gap:24px 40px;justify-content:space-between;align-items:flex-start}
.fin p{margin:0;font-size:13px;color:var(--muted-dim);line-height:1.9}
/* Footer marka bloğu: dairesel amblem + adres. Amblem alfa maskeli PNG/WebP,
   footer zeminine (#0E1013) oturuyor. */
.fin-brand{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.fin-logo{display:block;width:88px;height:88px;flex:none}
@media(min-width:600px){.fin-logo{width:110px;height:110px}}
.fin strong{color:var(--bone);font-weight:500}
/* .fl adını fact etiketi de kullanıyor (.fact .fl) — çıplak seçici oraya da
   sızıp etiketi flex konteyner yapıyordu. Footer'a kapsandı. */
.fin .fl{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.fin .fl a{color:var(--muted);text-decoration:none;font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;display:inline-flex;align-items:center;min-height:var(--tap)}
.fin .fl a:hover{color:var(--bone)}

/* --- 18+ KATMANI -------------------------------------------------------- */
.gate{position:fixed;inset:0;z-index:300;background:rgba(14,16,19,.975);display:none;
  align-items:center;justify-content:center;padding:var(--gut);backdrop-filter:blur(8px)}
.gate.show{display:flex}
.gate-box{max-width:460px;text-align:center}
.gate-box .eyebrow{justify-content:center}
.gate-box h2{margin-bottom:16px}
.gate-box p{color:var(--muted);margin:0 0 30px}
.gate-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* --- HUKUKİ SAYFALAR ---------------------------------------------------- */
.legal{padding:calc(var(--hd-h) + 60px) 0 var(--sp)}
.legal-h1{font-size:clamp(2rem,5vw,3.2rem);margin:0 0 22px}
.legal .lead{max-width:70ch;color:var(--muted);margin:0 0 clamp(34px,4vw,52px)}
.legal-body{max-width:72ch;display:grid;gap:34px}
.legal-body section{padding:0}
.legal-body h2{font-size:clamp(1.25rem,2.6vw,1.7rem);margin:0 0 14px}
.legal-body h3{margin:22px 0 8px}
.legal-body p{margin:0 0 14px;color:var(--muted);font-size:15px}
.legal-body p:last-child{margin-bottom:0}
.legal-body ul{margin:0 0 14px;padding-left:20px;color:var(--muted);font-size:15px}
.legal-body li{margin-bottom:7px}
.legal-body a{color:var(--red-400);text-decoration:none;border-bottom:1px solid var(--ink-500)}
.legal-body a:hover{border-bottom-color:var(--red-400)}
.legal-body dl{margin:0;display:grid;gap:6px}
.legal-body dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-dim);margin-top:12px}
.legal-body dd{margin:0;color:var(--bone)}
.todo{border-left:2px solid var(--red-500);background:var(--ink-800);padding:14px 18px;
  font-size:13.5px;color:var(--muted)}

/* --- ANİMASYON ---------------------------------------------------------- */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
body.locked{overflow:hidden}
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
/* kademeli giriş — JS'in element.style yazmasına gerek kalmasın diye sınıfla
   veriliyor; sıkı CSP altında style-src 'self' korunuyor. */
.rv-d1{transition-delay:70ms}
.rv-d2{transition-delay:140ms}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}.rv{opacity:1;transform:none}
}
