/* ==========================================================================
   Tipografi — tek aile: Montserrat

   Sitede ikinci bir yazı tipi yok. Başlık, menü, gövde, düğme, form etiketi;
   hepsi aynı aileden okunur. Ayrım üç değişkenle kurulur: boyut, ağırlık,
   harf aralığı. Basamaklar Fairmont'un ölçülen değerleridir:

     display-1  57.6/64.8  -1.28px  300
     display-2  48/56      -0.96px  300
     display-3  32/40      -0.64px  300
     heading    20/28      +0.6px   600  büyük harf
     gövde      16/24      +0.16px  400
     küçük      14/22      +0.14px  400
     düğme/menü 16/24 · 14/22  +0.8px · +0.14px  500  büyük harf
   ========================================================================== */

.font-display { font-family: var(--font-display); }
.font-sans    { font-family: var(--font-sans); }

/* --- Başlıklar -------------------------------------------------------- */
.display-1,
.display-2,
.display-3 {
  font-family: var(--font-display);
  font-weight: var(--fw-display);
  letter-spacing: var(--ls-display);
}

.display-1 { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
.display-2 { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
.display-3 { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }

.heading-1,
.heading-2,
.heading-3,
.heading-4 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
}

.heading-1 { font-size: var(--fs-xl);   line-height: var(--lh-snug); letter-spacing: 0.02em; }
.heading-2 { font-size: var(--fs-lg);   line-height: var(--lh-lg);   letter-spacing: 0.03em; }
.heading-3 { font-size: var(--fs-base); line-height: var(--lh-base); letter-spacing: 0.04em; }
.heading-4 { font-size: var(--fs-sm);   line-height: var(--lh-sm);   letter-spacing: 0.05em; }

/* --- Etiket / göz üstü ------------------------------------------------ */
/* Fairmont'ta göz üstü etiketleri ince ve geniş aralıklı; çizgi yok. */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-sans);
  font-size: var(--fs-3xs);
  font-weight: var(--fw-medium);
  line-height: var(--lh-3xs);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--accent-text);
}

.on-dark .eyebrow,
.section--dark .eyebrow { color: var(--c-gold-light); }

.eyebrow--line::before {
  content: "";
  width: 2rem;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.label {
  font-size: var(--fs-3xs);
  font-weight: var(--fw-medium);
  line-height: var(--lh-3xs);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
}

/* --- Gövde metni ------------------------------------------------------ */
.lead {
  font-size: var(--fs-base);
  font-weight: var(--fw-regular);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-normal);
  color: var(--fg-secondary);
}

.body-text {
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-normal);
  color: var(--fg-secondary);
}

.body-sm {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  letter-spacing: var(--ls-normal);
  color: var(--fg-secondary);
}

.text-muted { color: var(--fg-muted); }

/* --- Bağlantı: kalıcı alt çizgi (Fairmont dili) ----------------------- */
.link-underline {
  position: relative;
  display: inline-block;
  padding-bottom: 2px;
}

.link-underline::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform var(--dur-base) var(--ease-out);
}

.link-underline:hover::after,
.link-underline:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.link-underline--always::after {
  transform: scaleX(1);
  transform-origin: left center;
  opacity: 0.45;
}

.link-underline--always:hover::after { opacity: 1; }

/* --- Yukarı kayan metin maskesi (menü, footer bağlantıları) ----------- */
.text-swap {
  position: relative;
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
}

.text-swap__inner {
  display: block;
  transition: transform var(--dur-base) var(--ease-out);
}

.text-swap__inner::after {
  content: attr(data-text);
  position: absolute;
  inset-inline-start: 0;
  top: 100%;
  display: block;
}

.text-swap:hover .text-swap__inner,
a:hover .text-swap .text-swap__inner,
a:focus-visible .text-swap .text-swap__inner {
  transform: translateY(-100%);
}

/* Yazımı sabit marka adları (ör. Espressolab) — büyük harf başlıklarda da
   yazıldığı gibi kalır. Sarmalamayı index.php'deki çıktı süzgeci yapar. */
.nocase { text-transform: none; }
