/* ==========================================================================
   HOTEL EDIRNE PALACE — bölüm ve sayfa stilleri
   Her bölümün kendi mekaniği var; hiçbiri diğerinin tekrarı değil.
   ========================================================================== */

/* ============================================================ 1. VARIŞ  */
.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--ink);
  color: var(--on-dark);
  isolation: isolate;
}

/* Görsel kabı: kaydırıldıkça hafifçe küçülür ve yukarı kayar */
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  transform: translate3d(0, calc(var(--p, 0) * -9vh), 0) scale(calc(1.06 - var(--p, 0) * .06));
  transform-origin: 50% 30%;
  will-change: transform;
}
.hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* Okunabilirlik katmanı — parlama efekti değil, düz bir mürekkep perdesi */
.hero__scrim {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(14, 12, 34, .58) 0%, rgba(14, 12, 34, .12) 34%, rgba(14, 12, 34, .82) 100%);
}

.hero__inner {
  width: 100%;
  max-width: var(--shell);
  margin-inline: auto;
  padding: calc(var(--header-h) + 8vh) var(--gutter) clamp(5rem, 12vh, 9rem);
  display: grid;
  gap: clamp(1.6rem, 3vw, 2.6rem);
  /* İçerik metni kaydırmada biraz daha hızlı kayar — derinlik hissi */
  transform: translate3d(0, calc(var(--p, 0) * 7vh), 0);
  opacity: calc(1 - var(--p, 0) * 1.25);
}

.hero__kicker {
  display: inline-flex; align-items: center; gap: .85em;
  font-size: var(--fs-micro);
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold-lt);
}
.hero__kicker::before { content: ""; width: 46px; height: 1px; background: currentColor; opacity: .7; }

.hero__title {
  font-family: var(--serif);
  font-weight: 300;
  font-size: var(--fs-display);
  line-height: .95;
  letter-spacing: -.022em;
  max-width: 16ch;
}

.hero__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  padding-top: clamp(1.4rem, 3vw, 2.4rem);
  border-top: 1px solid rgba(246, 246, 249, .22);
}
.hero__text { max-width: 46ch; color: var(--on-dark-mid); font-size: var(--fs-lead); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; }

/* Kaydırma göstergesi: altın bir damla ince hattan aşağı süzülür.
   Sağ kenarda dikey durur — alt orta kemer ağzına, alt sağ da hero
   butonlarına denk geliyordu. Dikey eksende ikisinden de uzak. */
.scrollcue {
  position: absolute;
  right: calc(var(--gutter) * .55);
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  justify-items: center;
  gap: .9rem;
  font-size: var(--fs-micro);
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--on-dark-dim);
  opacity: calc(1 - var(--p, 0) * 2.4);
  pointer-events: none;
}
.scrollcue__text { writing-mode: vertical-rl; }
.scrollcue__rail {
  position: relative;
  width: 1px; height: 58px;
  background: rgba(246, 246, 249, .25);
  overflow: hidden;
}
.scrollcue__rail::after {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 1px; height: 22px;
  background: var(--gold-lt);
  animation: cueDrop 2.1s var(--ease-in-out) infinite;
}
@keyframes cueDrop {
  0%   { transform: translateY(-100%); }
  60%  { transform: translateY(280%); }
  100% { transform: translateY(280%); }
}

/* ======================================================== 2. KEMERDEN GEÇİŞ */
/* Hero'nun üzerine kemer ağzıyla yükselen ilk açık bölüm. */
.overture {
  position: relative;
  z-index: 2;
  margin-top: calc(var(--arch-overlap) * -1);
  background: var(--ivory);
  clip-path: url(#hep-arch-wide);
  padding-block: clamp(7rem, 15vh, 12rem) var(--sec-y);
}
.overture__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
}
.overture__media { position: relative; }
.overture__media .media { aspect-ratio: 3 / 4; }

/* Üst üste binen ikinci küçük görsel — kemerli */
.overture__inset {
  position: absolute;
  right: -6%;
  bottom: -8%;
  width: 46%;
  border: 8px solid var(--ivory);
}
.overture__inset .media { aspect-ratio: 1; }

/* Otelin üç sabiti — sayı numaralandırması yok, tipografik satırlar */
.facts { display: grid; gap: 0; margin-top: clamp(2rem, 4vw, 3rem); }
.fact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 1.5rem;
  padding: 1.15rem 0;
  border-top: 1px solid var(--line);
}
.fact:last-child { border-bottom: 1px solid var(--line); }
.fact__label { font-size: var(--fs-small); letter-spacing: .06em; color: var(--text-mid); }
.fact__value {
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
  color: var(--navy);
  white-space: nowrap;
}

/* ============================================================= 3. KATLAR */
/* Oda gezgini: solda yapışkan görsel yığını, sağda kaydırmalı liste. */
.floors { background: var(--paper); }

.floors__head {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: end;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.floors__head .h2 { max-width: 18ch; }

.floors__body {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: start;
}

.floors__stage {
  position: sticky;
  top: calc(var(--header-h) + clamp(1.5rem, 4vh, 3.5rem));
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--cream);
}
.floors__slide {
  position: absolute;
  inset: 0;
  /* Etkin olmayan kareler aşağıdan bekler, aktif olan yerine oturur */
  clip-path: inset(100% 0 0 0);
  transition: clip-path .85s var(--ease);
}
.floors__slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.4s var(--ease); }
.floors__slide.is-active { clip-path: inset(0 0 0 0); }
.floors__slide.is-active img { transform: scale(1); }

/* Görselin üstünde oda numarası gibi duran ince künye */
.floors__tag {
  position: absolute;
  left: 0; bottom: 0;
  z-index: 3;
  background: var(--ivory);
  color: var(--navy);
  padding: .85rem 1.5rem;
  font-size: var(--fs-micro);
  letter-spacing: .22em;
  text-transform: uppercase;
  border-top-right-radius: 40px 18px;
}

.floors__list { display: grid; }

.floor {
  display: block;
  padding: clamp(2rem, 4.5vh, 3.4rem) 0;
  border-top: 1px solid var(--line);
  transition: opacity .5s var(--ease);
}
.floor:last-child { border-bottom: 1px solid var(--line); }
.floors__list .floor { opacity: .42; }
.floors__list .floor.is-active { opacity: 1; }

.floor__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: .7rem;
}
.floor__name {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3vw, 2.35rem);
  line-height: 1.1;
  transition: color .4s var(--ease);
}
.floor.is-active .floor__name { color: var(--navy); }
.floor__size {
  font-size: var(--fs-small);
  letter-spacing: .12em;
  color: var(--gold);
  white-space: nowrap;
}
.floor__tagline { color: var(--text-mid); max-width: 44ch; margin-bottom: 1.1rem; }

.floor__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.75rem;
  margin-bottom: 1.3rem;
  font-size: var(--fs-small);
  color: var(--text-mid);
}
.floor__meta span { display: inline-flex; align-items: center; gap: .5em; }
.floor__meta svg { flex: none; color: var(--gold); }

/* Mobil: yapışkan sahne yerine her odanın kendi görseli */
.floor__thumb { display: none; margin-bottom: 1.4rem; }

/* ============================================================ 4. BİR GÜN */
/* Tam genişlikte yapışkan sahne; saatler ilerledikçe kare değişir. */
.day {
  position: relative;
  background: var(--ink);
  color: var(--on-dark);
}
.day__sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
.day__frame {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.1s var(--ease);
}
.day__frame.is-active { opacity: 1; }
.day__frame img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.08);
  transition: transform 7s linear;
}
.day__frame.is-active img { transform: scale(1); }
.day__sticky::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,12,34,.72) 0%, rgba(14,12,34,.3) 42%, rgba(14,12,34,.92) 100%);
  pointer-events: none;
}

/* Yapışkan sahnenin üstündeki metin katmanı */
.day__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  align-content: space-between;
  padding: calc(var(--header-h) + 5vh) var(--gutter) clamp(3rem, 8vh, 6rem);
  max-width: var(--shell);
  margin-inline: auto;
  pointer-events: none;
}

.day__heading { max-width: 24ch; }
/* Yapışkan sahnede başlık, saat rakamıyla yarışmasın */
.day__heading .h2 { font-size: clamp(1.45rem, 2.5vw, 2.15rem); line-height: 1.14; }

.day__caption { display: grid; gap: .55rem; max-width: 46ch; }
.day__hour {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 7vw, 6rem);
  line-height: 1;
  margin-bottom: .35rem;
  font-weight: 300;
  color: var(--gold-lt);
  font-variant-numeric: tabular-nums;
}
.day__hour span { display: inline-block; }
.day__title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3.4vw, 2.5rem);
  line-height: 1.14;
}
.day__text { color: var(--on-dark-mid); }

/* Sağdaki dikey saat rayı */
.day__rail {
  position: absolute;
  right: var(--gutter);
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  display: grid;
  gap: 1.05rem;
  pointer-events: none;
}
.day__tick {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: .8rem;
  font-size: var(--fs-micro);
  letter-spacing: .16em;
  color: var(--on-dark-dim);
  transition: color .45s var(--ease);
}
.day__tick i {
  display: block;
  width: 22px; height: 1px;
  background: currentColor;
  transform-origin: 100% 50%;
  transition: transform .45s var(--ease), background-color .45s var(--ease);
}
.day__tick.is-active { color: var(--gold-lt); }
.day__tick.is-active i { transform: scaleX(2.1); }

/* Kaydırma yolu — her saat için bir ekran boyu */
.day__track { position: relative; }
.day__step { height: 100svh; }

/* ====================================================== 4b. MİSAFİR PUANI */
/* Booking kartı ivory zemine olduğu gibi konsaydı reklam gibi dururdu:
   puan sitenin kendi tipografisiyle anlatılıyor, sertifika yanında
   çerçeveli bir kanıt olarak duruyor ve büyütülebiliyor. */
.award { background: var(--cream); }

.award__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}

.award__score {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  margin: 0 0 .8rem;
  line-height: 1;
}
.award__num {
  font-family: var(--serif);
  font-size: clamp(4rem, 12vw, 8.5rem);
  font-weight: 300;
  letter-spacing: -.03em;
  color: var(--gold);
  line-height: .85;
}
.award__scale {
  font-family: var(--serif);
  font-size: clamp(1.3rem, 2.6vw, 2rem);
  color: var(--text-dim);
}

.award__title {
  font-family: var(--sans);
  font-size: var(--fs-small);
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 1rem;
}
.award__text { max-width: 46ch; color: var(--text-mid); margin: 0; }

/* Sertifika: markanın mavisi çerçeve içinde tutuluyor */
.award__cert {
  display: block;
  position: relative;
  border: 1px solid var(--sand);
  background: var(--paper);
  padding: clamp(.6rem, 1.2vw, 1rem);
  transition: border-color .4s var(--ease), transform .5s var(--ease);
}
.award__cert:hover { border-color: var(--gold); transform: translateY(-3px); }
.award__cert img { width: 100%; height: auto; display: block; }

@media (max-width: 860px) {
  .award__grid { grid-template-columns: 1fr; }
  .award__cert { max-width: 420px; }
}

/* ========================================================== 5. HİZMETLER */
.services { background: var(--ivory); }

.services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.service {
  background: var(--ivory);
  padding: clamp(1.75rem, 3vw, 2.6rem);
  display: grid;
  gap: .85rem;
  align-content: start;
  transition: background-color .5s var(--ease);
}
.service:hover { background: var(--paper); }
.service__icon { color: var(--gold); }
.service__icon svg { width: 34px; height: 34px; }
/* Hat çizimi ikonlar görünür olunca kendini çizer */
.service__icon path, .service__icon circle, .service__icon rect, .service__icon line, .service__icon polyline {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: var(--len, 160);
  stroke-dashoffset: var(--len, 160);
  transition: stroke-dashoffset 1.4s var(--ease);
  transition-delay: var(--delay, 0s);
}
.service.is-in .service__icon path, .service.is-in .service__icon circle,
.service.is-in .service__icon rect, .service.is-in .service__icon line,
.service.is-in .service__icon polyline { stroke-dashoffset: 0; }

.service__title { font-family: var(--serif); font-size: 1.32rem; line-height: 1.22; }
.service__text { font-size: var(--fs-small); color: var(--text-mid); line-height: 1.62; }

/* ============================================================ 6. GALERİ */
.gallery-strip { background: var(--paper); }

/* Sabit satır yüksekliği + değişken genişlik.
   Karolara aspect-ratio verilseydi aynı satırdaki geniş karo dar karodan
   uzun olur, alt kenar tırtıklı kalırdı. Yükseklik satırdan gelir. */
.gallery-strip__grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: clamp(170px, 22vw, 330px);
  gap: clamp(.6rem, 1.2vw, 1.1rem);
}
.gtile { position: relative; overflow: hidden; background: var(--cream); }
.gtile img { width: 100%; height: 100%; object-fit: cover; }

.gallery-strip__grid .gtile { grid-column: span 4; }
.gallery-strip__grid .gtile:nth-child(1) { grid-column: span 7; }
.gallery-strip__grid .gtile:nth-child(2) { grid-column: span 5; }

.gtile__cap {
  position: absolute;
  left: 0; bottom: 0;
  padding: .7rem 1.15rem;
  background: var(--ivory);
  color: var(--navy);
  font-size: var(--fs-micro);
  letter-spacing: .16em;
  text-transform: uppercase;
  transform: translateY(101%);
  transition: transform .5s var(--ease);
}
.gtile:hover .gtile__cap, .gtile:focus-visible .gtile__cap { transform: translateY(0); }

/* ============================================================= 7. EDİRNE */
.edirne { background: var(--navy); color: var(--on-dark); overflow: hidden; }

.edirne__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
  padding-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.edirne__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: clamp(1.2rem, 2.5vw, 2.2rem);
}
.spot { display: grid; gap: 1.2rem; }
.spot__media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--navy-2); }
.spot__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
/* Kemer maskesi yalnız burada — Edirne kartları şehrin mimarisine selam verir */
.spot:nth-child(odd) .spot__media { clip-path: url(#hep-arch); }
.spot__title { font-family: var(--serif); font-size: 1.5rem; line-height: 1.18; }
.spot__text { font-size: var(--fs-small); color: var(--on-dark-mid); line-height: 1.66; }

/* Bölüm zeminine kaydırmayla süzülen ince panorama şeridi */
.panorama {
  position: relative;
  height: clamp(180px, 26vw, 380px);
  overflow: hidden;
  margin-top: clamp(3rem, 6vw, 5rem);
}
.panorama img {
  position: absolute;
  inset: 0;
  width: 118%;
  height: 100%;
  object-fit: cover;
  transform: translate3d(calc(var(--p, 0) * -14%), 0, 0);
  will-change: transform;
}

/* ============================================================== 8. ÇAĞRI */
.cta {
  position: relative;
  color: var(--on-dark);
  overflow: hidden;
  isolation: isolate;
}
.cta__bg { position: absolute; inset: 0; z-index: -2; }
.cta__bg img {
  width: 100%; height: 100%; object-fit: cover;
  transform: translate3d(0, calc(var(--p, .5) * -12%), 0) scale(1.14);
  will-change: transform;
}
.cta::before {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: rgba(14, 12, 34, .78);
}
.cta__inner {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 1.6rem;
  padding-block: clamp(5rem, 12vw, 9rem);
}
.cta__inner .h2 { max-width: 18ch; }
.cta__inner .lead { color: var(--on-dark-mid); }
.cta__lines {
  display: flex; flex-wrap: wrap; gap: .6rem 2rem; justify-content: center;
  font-size: var(--fs-small);
  color: var(--on-dark-mid);
  margin-top: .4rem;
}
.cta__lines a:hover { color: var(--gold-lt); }

/* ======================================================= SAYFA BAŞLIKLARI */
.pagehead {
  position: relative;
  background: var(--navy);
  color: var(--on-dark);
  padding: calc(var(--header-h) + clamp(4rem, 10vh, 8rem)) 0 clamp(3rem, 7vh, 6rem);
  overflow: hidden;
}
.pagehead__bg { position: absolute; inset: 0; z-index: 0; opacity: .32; }
.pagehead__bg img { width: 100%; height: 100%; object-fit: cover; }
.pagehead .shell { position: relative; z-index: 1; }
.pagehead__title { font-size: var(--fs-h1); font-weight: 300; max-width: 20ch; }
.pagehead__text { max-width: 52ch; margin-top: 1.2rem; color: var(--on-dark-mid); }

.crumbs {
  display: flex; flex-wrap: wrap; gap: .55rem;
  font-size: var(--fs-micro);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--on-dark-dim);
  margin-bottom: 1.5rem;
}
.crumbs a:hover { color: var(--gold-lt); }
.crumbs li + li::before { content: "—"; margin-right: .55rem; opacity: .5; }
.crumbs li { display: inline-flex; }

/* ======================================================== ODA LİSTE SAYFASI */
.roomlist { display: grid; gap: clamp(3rem, 7vw, 6rem); }

.roomcard {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(1.6rem, 4vw, 4rem);
  align-items: center;
}
.roomcard:nth-child(even) .roomcard__media { order: 2; }
.roomcard__media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--cream); }
.roomcard__media img { width: 100%; height: 100%; object-fit: cover; }
.roomcard__body { display: grid; gap: 1.1rem; align-content: start; }
.roomcard__name { font-size: clamp(1.75rem, 3.4vw, 2.75rem); }
.roomcard__specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-block: .4rem;
}
.spec { background: var(--ivory); padding: .95rem 1.1rem; display: grid; gap: .28rem; }
.spec__k { font-size: var(--fs-micro); letter-spacing: .16em; text-transform: uppercase; color: var(--text-dim); }
.spec__v { font-family: var(--serif); font-size: 1.16rem; color: var(--navy); }

/* ======================================================== ODA DETAY SAYFASI */
/* ------------------------------------------------- oda kaydırmalı galerisi
   Kaydırmayı CSS yapar (scroll-snap): dokunmatikte parmakla kaydırma ve
   ivme bedava gelir, JavaScript kapalıyken bile galeri çalışır. Oklar,
   sayaç ve küçük görseller yalnız üstüne binen kolaylıklardır. */
.rslider { position: relative; }

.rslider__stage {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  background: var(--cream);
}
.rslider__stage::-webkit-scrollbar { display: none; }
.rslider__stage:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.rslider__slide {
  flex: 0 0 100%;
  scroll-snap-align: center;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  display: block;
}
.rslider__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Oklar görselin üstünde durur; dokunmatikte gizlenir, orada parmak var */
.rslider__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center;
  width: 44px; height: 44px; padding: 0;
  border: 0; cursor: pointer;
  background: rgba(14, 12, 34, .55);
  color: #fff;
  transition: background .2s var(--ease), opacity .2s var(--ease);
}
.rslider__nav:hover { background: rgba(14, 12, 34, .8); }
.rslider__nav--prev { left: clamp(.5rem, 1.4vw, 1rem); }
.rslider__nav--next { right: clamp(.5rem, 1.4vw, 1rem); }
.rslider__nav[disabled] { opacity: .25; cursor: default; }

.rslider__count {
  position: absolute;
  right: clamp(.5rem, 1.4vw, 1rem);
  bottom: clamp(.5rem, 1.4vw, 1rem);
  padding: 5px 11px;
  background: rgba(14, 12, 34, .62);
  color: #fff;
  font-size: var(--fs-small);
  letter-spacing: .08em;
}

/* --- küçük görseller --- */
.rslider__thumbs {
  display: flex;
  gap: clamp(.4rem, .8vw, .7rem);
  margin-top: clamp(.5rem, 1vw, .8rem);
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: 4px;
}
.rslider__thumb {
  flex: 0 0 clamp(88px, 11vw, 140px);
  aspect-ratio: 4 / 3;
  padding: 0;
  border: 0;
  cursor: pointer;
  overflow: hidden;
  background: var(--cream);
  position: relative;
  opacity: .55;
  transition: opacity .25s var(--ease);
}
.rslider__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rslider__thumb:hover { opacity: .85; }
.rslider__thumb.is-active { opacity: 1; }
/* Etkin kareyi çerçeve değil, içeriden bir çizgi belli eder; çerçeve
   görseli kaydırıp komşularıyla hizasını bozuyordu. */
.rslider__thumb.is-active::after {
  content: "";
  position: absolute; inset: 0;
  border: 2px solid var(--gold);
  pointer-events: none;
}
.rslider__thumb:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

@media (hover: none) {
  .rslider__nav { display: none; }
}

@media (max-width: 860px) {
  .rslider__slide { aspect-ratio: 4 / 3; }
}

.roomdetail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: start;
}

/* Yan kutu: oda künyesi + rezervasyon çağrısı */
.roomaside {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
  border: 1px solid var(--line);
  background: var(--paper);
  padding: clamp(1.5rem, 2.5vw, 2.2rem);
  display: grid;
  gap: 1.4rem;
}
.roomaside__rows { display: grid; }
.roomaside__row {
  display: flex; justify-content: space-between; gap: 1rem;
  padding: .82rem 0;
  border-top: 1px solid var(--line);
  font-size: var(--fs-small);
}
.roomaside__row:first-child { border-top: 0; padding-top: 0; }
.roomaside__row dt { color: var(--text-dim); }
.roomaside__row dd { margin: 0; font-family: var(--serif); font-size: 1.08rem; color: var(--navy); text-align: right; }

/* Olanak listeleri */
.amenities { display: grid; gap: clamp(2rem, 4vw, 3rem); }
.amenity-group { display: grid; gap: 1rem; }
.amenity-group h3 {
  font-family: var(--sans);
  font-size: var(--fs-micro);
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
}
.amenity-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: .1rem 2rem;
}
.amenity-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75rem;
  align-items: baseline;
  padding: .48rem 0;
  font-size: var(--fs-small);
  color: var(--text-mid);
  border-bottom: 1px solid var(--line-soft);
}
.amenity-list li::before {
  content: "";
  width: 5px; height: 5px;
  background: var(--gold);
  transform: rotate(45deg) translateY(-1px);
}

/* ====================================================== GALERİ SAYFASI */
.filterbar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding-bottom: clamp(1.8rem, 3.5vw, 3rem);
}
.filterbar button {
  padding: .68em 1.35em;
  font-size: var(--fs-small);
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 1px solid var(--line);
  color: var(--text-mid);
  transition: color .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);
}
.filterbar button:hover { border-color: var(--sand); color: var(--text); }
.filterbar button[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--ivory); }

/* Sütun tabanlı gerçek masonry: fotoğraflar kendi oranlarında akar,
   ızgarada olduğu gibi boşluk kalmaz ve hiçbir kare zorla kırpılmaz. */
.masonry {
  column-count: 3;
  column-gap: clamp(.6rem, 1.2vw, 1.1rem);
}
.masonry .gtile {
  display: block;
  width: 100%;
  aspect-ratio: auto;
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin-bottom: clamp(.6rem, 1.2vw, 1.1rem);
}
.masonry .gtile img { width: 100%; height: auto; }
.masonry .gtile.is-hidden { display: none; }

@media (max-width: 1000px) { .masonry { column-count: 2; } }
@media (max-width: 560px)  { .masonry { column-count: 1; } }

/* ========================================================= BLOG / EDİRNE */
.postgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(1.8rem, 4vw, 3.4rem);
}
.post { display: grid; gap: 1.2rem; align-content: start; }
.post__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--cream); }
.post__media img { width: 100%; height: 100%; object-fit: cover; }
.post__date { font-size: var(--fs-micro); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.post__title { font-family: var(--serif); font-size: 1.65rem; line-height: 1.2; }
.post__excerpt { color: var(--text-mid); font-size: var(--fs-small); }

.article { max-width: 760px; margin-inline: auto; }
.article__body { font-size: 1.075rem; line-height: 1.78; }
.article__body p { margin-bottom: 1.5em; color: var(--text-mid); }
/* Yazının ilk paragrafı büyük harfle başlar */
.article__body > p:first-of-type::first-letter {
  float: left;
  font-family: var(--serif);
  font-size: 4.2em;
  line-height: .82;
  padding: .06em .12em 0 0;
  color: var(--navy);
}
/* Yasal metinde dekoratif ilk harf okumayı zorlaştırır */
.article__body--legal > p:first-of-type::first-letter {
  float: none; font-size: inherit; line-height: inherit; padding: 0; color: inherit;
}
.article__body--legal h3 { font-size: 1.28rem; margin-top: 2em; }

.article__body h3 {
  font-family: var(--serif);
  font-size: 1.6rem;
  color: var(--text);
  margin: 2.2em 0 .6em;
}

/* =========================================================== İLETİŞİM */
.contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: start;
}
.contact__rows { display: grid; }
.contact__row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.1rem;
  padding: 1.35rem 0;
  border-top: 1px solid var(--line);
}
.contact__row:last-child { border-bottom: 1px solid var(--line); }
.contact__row svg { color: var(--gold); margin-top: .22em; }
.contact__k { font-size: var(--fs-micro); letter-spacing: .18em; text-transform: uppercase; color: var(--text-dim); margin-bottom: .3rem; }
.contact__v { font-family: var(--serif); font-size: 1.22rem; color: var(--navy); }
.contact__v a:hover { color: var(--gold); }

.map {
  aspect-ratio: 4 / 3;
  border: 1px solid var(--line);
  background: var(--cream);
  overflow: hidden;
}
.map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(1) contrast(.92); }

/* ======================================================== REZERVASYON */
.bookform {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
}
.bookform__fields { display: grid; gap: 1.4rem; }
.bookform__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1.4rem;
}
.booksum {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
  border: 1px solid var(--line);
  background: var(--paper);
  padding: clamp(1.5rem, 2.5vw, 2rem);
  display: grid;
  gap: 1.1rem;
}
.booksum__row {
  display: flex; justify-content: space-between; gap: 1rem;
  font-size: var(--fs-small);
  padding: .7rem 0;
  border-top: 1px solid var(--line);
}
.booksum__row:first-of-type { border-top: 0; }
.booksum__row b { font-family: var(--serif); font-weight: 400; font-size: 1.06rem; color: var(--navy); }
.booksum__note { font-size: var(--fs-small); color: var(--text-dim); line-height: 1.6; }

/* Onay ekranı */
.confirm {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 1.5rem;
  padding-block: clamp(3rem, 8vw, 6rem);
  max-width: 620px;
  margin-inline: auto;
}
.confirm__ref {
  font-family: var(--serif);
  font-size: clamp(2rem, 5vw, 3rem);
  letter-spacing: .12em;
  color: var(--navy);
  padding: .5rem 1.6rem;
  border: 1px solid var(--line);
}

/* ============================================================== HATA */
.errorpage {
  min-height: 78svh;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
  gap: 1.5rem;
  padding: calc(var(--header-h) + 4rem) var(--gutter) 5rem;
}
.errorpage__code {
  font-family: var(--serif);
  font-size: clamp(5rem, 18vw, 12rem);
  line-height: .82;
  font-weight: 300;
  color: var(--sand);
}

/* ======================================================== DUYARLILIK */
@media (max-width: 1100px) {
  .floors__body { grid-template-columns: 1fr; }
  .floors__stage { display: none; }
  .floor__thumb { display: block; }
  .floors__list .floor { opacity: 1; }
  .roomdetail { grid-template-columns: 1fr; }
  .roomaside { position: static; }
  .bookform { grid-template-columns: 1fr; }
  .booksum { position: static; }
}

@media (max-width: 960px) {
  .overture__grid { grid-template-columns: 1fr; }
  .overture__inset { width: 40%; right: 0; }
  .contact__grid { grid-template-columns: 1fr; }
  .floors__head { grid-template-columns: 1fr; align-items: start; }
  .edirne__head { grid-template-columns: 1fr; }
  .roomcard { grid-template-columns: 1fr; }
  .roomcard:nth-child(even) .roomcard__media { order: 0; }
  .day__rail { display: none; }
}

@media (max-width: 860px) {
  /* Dokunmatikte kaydırma göstergesine gerek yok; butonlarla çakışıyordu */
  .scrollcue { display: none; }
}

@media (max-width: 760px) {
  .gallery-strip__grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: clamp(130px, 32vw, 210px);
  }
  .gallery-strip__grid .gtile { grid-column: span 1; }
  .gallery-strip__grid .gtile:nth-child(1) { grid-column: span 2; }
  .gallery-strip__grid .gtile:nth-child(2) { grid-column: span 1; }

  .day__overlay { align-content: end; gap: 2rem; }
  .day__heading { display: none; }
}

@media (max-width: 520px) {
  .overture__inset { display: none; }
}
