html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body {
  background: #F4EDE0;
  color: #1C1A17;
  font-family: 'Inter', 'Noto Serif Georgian', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}
html[lang="ka"] body { font-family: 'Noto Serif Georgian', 'Inter', system-ui, sans-serif; }
html[lang="ka"] h1, html[lang="ka"] h2, html[lang="ka"] h3, html[lang="ka"] .serif {
  font-family: 'Noto Serif Georgian', 'Fraunces', Georgia, serif;
  letter-spacing: 0;
}

/* Mobile drawer */
.mobile-drawer {
  position: fixed; inset: 0; z-index: 60;
  background: #F4EDE0;
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(.2,.7,.2,1);
  display: flex; flex-direction: column;
  overscroll-behavior: contain;
}
.mobile-drawer.open { transform: translateX(0); }
body.drawer-open { overflow: hidden; }
.hamburger { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; }
.hamburger:hover { background: rgba(28,26,23,0.06); }
@media (min-width: 1024px) { .hamburger, .mobile-drawer { display: none !important; } }
h1, h2, h3, .serif { font-family: 'Fraunces', 'Noto Serif Georgian', Georgia, serif; font-optical-sizing: auto; letter-spacing: -0.01em; }
h1 { font-variation-settings: "SOFT" 50, "WONK" 0; }

/* Subtle linen texture overlay on the cream background */
.linen {
  background-image:
    radial-gradient(rgba(28,26,23,0.025) 1px, transparent 1px),
    radial-gradient(rgba(28,26,23,0.02) 1px, transparent 1px);
  background-size: 14px 14px, 22px 22px;
  background-position: 0 0, 7px 11px;
}

/* Hand-drawn underline under "known for" headings */
.ink-underline {
  background-image: linear-gradient(transparent 60%, rgba(200,134,46,0.35) 60%, rgba(200,134,46,0.35) 92%, transparent 92%);
  padding: 0 2px;
}

/* Lift on cards */
.lift { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.lift:hover { transform: translateY(-3px); box-shadow: 0 1px 0 rgba(28,26,23,.06), 0 30px 60px -28px rgba(122,31,43,.4); }

/* Image placeholders/loading */
.ph { background: linear-gradient(135deg, #EBE2D0 0%, #F4EDE0 100%); }

/* Pulse dot for open status */
@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.4); opacity: .55; }
}
.dot-pulse { animation: pulse-dot 2s ease-in-out infinite; }

/* Marquee for ticker */
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.marquee-track { animation: marquee 38s linear infinite; }

/* Tab active style */
.menu-tab[aria-selected="true"] {
  color: #7A1F2B;
  background: #F4EDE0;
  box-shadow: inset 0 -2px 0 #7A1F2B;
}

/* Hero gradient over image — bottom darken + left darken so the H1 reads cleanly */
.hero-shade {
  background:
    /* bottom-up darken (protects H1, CTAs, meta strip) */
    linear-gradient(180deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0) 30%,
      rgba(0,0,0,0.45) 65%,
      rgba(0,0,0,0.78) 100%),
    /* left darken (desktop: image right side breathes) */
    linear-gradient(90deg,
      rgba(0,0,0,0.55) 0%,
      rgba(0,0,0,0.18) 55%,
      rgba(0,0,0,0) 80%);
}
/* Slight text-shadow on the hero H1 + eyebrow for extra punch on bright imagery (desktop) */
.hero-text { text-shadow: 0 1px 2px rgba(0,0,0,0.35), 0 8px 24px rgba(0,0,0,0.25); }

@media (max-width: 1023px) {
  /* Mobile: lighter hero-shade because the frosted card now carries the contrast */
  .hero-shade {
    background:
      linear-gradient(180deg,
        rgba(0,0,0,0) 0%,
        rgba(0,0,0,0.05) 40%,
        rgba(0,0,0,0.30) 75%,
        rgba(0,0,0,0.55) 100%);
  }

  /* Frosted-glass card behind the headline + CTAs on mobile */
  .hero-card {
    background: rgba(15, 12, 10, 0.42);
    backdrop-filter: blur(16px) saturate(125%);
    -webkit-backdrop-filter: blur(16px) saturate(125%);
    border: 1px solid rgba(244, 237, 224, 0.10);
    border-radius: 22px;
    padding: 22px 20px 24px;
  }
  /* No need for shadow on text — the card backdrop provides contrast */
  .hero-card .hero-text { text-shadow: none; }
}

/* Press quote */
.quote-mark { font-family: 'Fraunces', serif; font-size: 7rem; line-height: .7; color: #7A1F2B; opacity: .12; }

/* Number ticker dots */
.stat-rule { border-image: repeating-linear-gradient(90deg, #1C1A17 0 4px, transparent 4px 10px) 1; }

/* Smooth fade/slide on language switch */
[data-i18n] { transition: opacity .15s ease; }
.lang-switching [data-i18n] { opacity: 0; }

/* Anchored nav offset */
section[id] { scroll-margin-top: 84px; }

/* Active nav link underline */
.nav-link { position: relative; }
.nav-link::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -6px;
  height: 2px; background: #7A1F2B; transition: right .25s ease;
}
.nav-link:hover::after, .nav-link.active::after { right: 0; }

/* Decorative arch — bakery/old-world feel */
.arch { border-top-left-radius: 9999px; border-top-right-radius: 9999px; }

/* Khachapuri "boat" SVG line accent — used in dividers */
.divider-glyph svg { display:block; margin: 0 auto; }

/* Hide scrollbar on horizontal scrollers */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Print: keep things sane */
@media print { .no-print { display: none !important; } }

/* ============================================================
   Per-language typography polish (audit pass)
   ============================================================ */

/* ---- EN: shape + rhythm fixes ---- */
.hero-text { text-wrap: balance; }
@media (min-width: 1024px) {
  h1.hero-text { line-height: 1.02; }
  h1.hero-text .italic { letter-spacing: -0.025em; }
}

#press blockquote { text-wrap: balance; max-width: 22ch; }
@media (min-width: 1024px) { #press blockquote { max-width: 28ch; } }
#press .quote-mark {
  left: -8px; top: 8px;
  font-size: 9rem; line-height: .7;
  pointer-events: none; user-select: none;
}

.menu-tab { transition: color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.menu-tab:hover:not([aria-selected="true"]) {
  color: #1C1A17;
  background: rgba(122,31,43,0.04);
}
.menu-tab[aria-selected="true"] { box-shadow: inset 0 -2.5px 0 #7A1F2B; }

#menuPanels span.bg-wine\/8 { padding: 3px 9px; letter-spacing: 0.14em; }

/* ---- KA: Mkhedruli is non-cased, has tall ascenders/descenders, reads small ---- */
html[lang="ka"] .uppercase { text-transform: none; }
html[lang="ka"] [class*="tracking-["],
html[lang="ka"] .tracking-tight,
html[lang="ka"] .tracking-wide { letter-spacing: 0 !important; }

html[lang="ka"] .text-\[10\.5px\] { font-size: 12px; }
html[lang="ka"] .text-\[11px\]    { font-size: 12.5px; }
html[lang="ka"] .text-\[11\.5px\] { font-size: 13px; }
html[lang="ka"] .text-\[13px\]    { font-size: 14px; }
html[lang="ka"] .text-\[13\.5px\] { font-size: 14.5px; }
html[lang="ka"] .text-\[14\.5px\] { font-size: 15.5px; line-height: 1.6; }
html[lang="ka"] .text-\[15px\]    { font-size: 16px; line-height: 1.6; }

html[lang="ka"] h1,
html[lang="ka"] h2,
html[lang="ka"] h3,
html[lang="ka"] .serif { line-height: 1.2; letter-spacing: 0 !important; }
html[lang="ka"] .leading-\[1\.04\],
html[lang="ka"] .leading-\[1\.05\],
html[lang="ka"] .leading-\[1\.08\],
html[lang="ka"] .leading-tight,
html[lang="ka"] .leading-none { line-height: 1.2 !important; }

html[lang="ka"] .hero-text { letter-spacing: 0 !important; }

/* Prices and big numerals stay in Fraunces (Latin digits) so they don't balloon */
html[lang="ka"] .serif.text-\[34px\],
html[lang="ka"] .serif.text-\[64px\] { font-family: 'Fraunces', Georgia, serif; letter-spacing: -0.01em; }

html[lang="ka"] .menu-tab { padding-left: 12px; padding-right: 12px; white-space: nowrap; }
html[lang="ka"] [role="tablist"] { gap: 2px; }
html[lang="ka"] .rounded-full.uppercase,
html[lang="ka"] .rounded-full[class*="tracking-"] { padding-left: 10px; padding-right: 10px; }

/* ---- RU: Cyrillic words run ~20% longer and prefer looser tracking ---- */
html[lang="ru"] h1,
html[lang="ru"] h2,
html[lang="ru"] h3,
html[lang="ru"] .serif { letter-spacing: 0; }
html[lang="ru"] h1 { letter-spacing: -0.005em; }

html[lang="ru"] .tracking-\[0\.22em\] { letter-spacing: 0.16em; }
html[lang="ru"] .tracking-\[0\.18em\] { letter-spacing: 0.13em; }
html[lang="ru"] .tracking-\[0\.16em\] { letter-spacing: 0.12em; }
html[lang="ru"] .tracking-\[0\.14em\] { letter-spacing: 0.10em; }

html[lang="ru"] #about p,
html[lang="ru"] #visit p,
html[lang="ru"] #known-for header p,
html[lang="ru"] #order p,
html[lang="ru"] footer p {
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

html[lang="ru"] header a[href*="order.online"] {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
html[lang="ru"] header a[href*="order.online"] span[data-i18n="nav.orderBtn"] {
  white-space: normal;
  line-height: 1.15;
}

html[lang="ru"] .menu-tab {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  font-size: 12.5px;
}

/* Mixed Georgian + Cyrillic spans: ensure Cyrillic falls back to a Cyrillic-capable font */
html[lang="ru"] .font-ka {
  font-family: 'Noto Serif Georgian', 'Fraunces', 'Inter', Georgia, serif;
}
