@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Arvo:wght@400;700&family=Barlow:wght@400;600;700;800;900&family=Bebas+Neue&family=Bricolage+Grotesque:wght@400;500;600;700;800&family=Caveat:wght@400;600;700&family=Cinzel:wght@400;600;700;800;900&family=Cormorant+Garamond:wght@400;500;600;700&family=Cormorant+Upright:wght@400;500;600;700&family=Courgette&family=DM+Sans:wght@400;500;600;700;800;900&family=Dancing+Script:wght@400;600;700&family=Domine:wght@400;500;600;700&family=Figtree:wght@400;500;600;700;800;900&family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,800;9..144,900&family=Fredoka:wght@400;500;600;700&family=Great+Vibes&family=Inter:wght@300;400;500;600;700;800;900&family=Josefin+Sans:wght@400;500;600;700&family=Kaushan+Script&family=Lato:wght@400;700;900&family=Lexend:wght@400;500;600;700;800;900&family=Libre+Baskerville:wght@400;700&family=Lobster&family=Lora:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Marcellus&family=Merriweather:wght@400;700;900&family=Montserrat:wght@400;500;600;700;800;900&family=Noto+Serif:wght@400;500;600;700;800&family=Nunito:wght@400;600;700;800;900&family=Oswald:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800;900&family=Pacifico&family=Permanent+Marker&family=Philosopher:wght@400;700&family=Playfair+Display:wght@400;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Poppins:wght@400;500;600;700;800;900&family=Prata&family=Quicksand:wght@400;600;700&family=Raleway:wght@400;500;600;700;800&family=Righteous&family=Roboto+Slab:wght@400;600;700;900&family=Rubik:wght@400;500;600;700;800;900&family=Sacramento&family=Satisfy&family=Shadows+Into+Light&family=Source+Sans+3:wght@400;600;700;800&family=Ubuntu:wght@400;500;700&family=Urbanist:wght@400;500;600;700;800;900&family=Vollkorn:wght@400;500;600;700;800;900&family=Work+Sans:wght@400;500;600;700;800&family=Yeseva+One&display=swap');

/* ==================================================
   QR Menü Clean v61 - Front Stylesheet
   Tek sorumlu modül yapısı. Eski sürüm override blokları temizlendi.
   ================================================== */

/* MODULE: Tokens / Base Theme */
:root{
  --bg:#f7f1e3;
  --surface:#fffdf8;
  --surface-2:#fbf3df;
  --text:#141313;
  --muted:#736852;
  --line:#ead8b7;
  --accent:#c89422;
  --accent-dark:#8b5e0b;
  --theme-ink:#8b5e0b;
  --theme-soft:#fff7e6;
  --success:#2f9f45;
  --shadow:0 24px 70px color-mix(in srgb,var(--accent-dark) 10%,transparent);
  --soft-shadow:0 12px 32px rgba(16,24,40,.065);
  --radius-xl:28px;
  --radius-lg:22px;
  --radius-md:16px;
  --cat-card-height:86px;
  --cat-image-card-height:96px;
  --cat-mask-top-alpha:.08;
  --cat-mask-mid-alpha:.20;
  --cat-mask-bottom-alpha:.68;
  --cat-image-mask:linear-gradient(180deg,rgba(255,255,255,var(--cat-mask-top-alpha)) 0%,rgba(15,23,42,var(--cat-mask-mid-alpha)) 38%,rgba(15,23,42,var(--cat-mask-bottom-alpha)) 100%);
  --cat-image-tint:radial-gradient(circle at 18% 8%,color-mix(in srgb,var(--accent) 36%,transparent),transparent 42%);
  --cat-track-columns:calc((100% - 22px)/3);
  --cat-track-gap:11px;
  --cat-track-padding:4px 0 16px;
  --cat-arrow-width:30px;
  --product-grid-columns:104px minmax(0,1fr);
  --product-grid-areas:'image info' 'image price';
  --product-card-gap:7px 12px;
  --product-card-min-height:128px;
  --product-card-padding:10px;
  --product-image-height:96px;
  --product-image-radius:16px;
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100%;
  overflow-x:hidden;
  color:var(--text);
  font-family:var(--front-font),system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:var(--front-weight,600);
  background:
    radial-gradient(circle at 15% -8%,color-mix(in srgb,var(--accent) 21%,#fff) 0,transparent 34%),
    radial-gradient(circle at 90% 3%,color-mix(in srgb,var(--accent-dark) 18%,#fff) 0,transparent 32%),
    linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg) 84%,var(--accent) 11%));
}
body::-webkit-scrollbar{width:10px}
body::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 26%,#d3c7b7);border-radius:999px}
html[data-theme="black_gold"],html[data-theme="espresso"],html[data-theme="night"],html[data-theme="neon"]{color-scheme:dark}
button,input,select,textarea{font:inherit}
button{-webkit-tap-highlight-color:transparent}

/* MODULE: App Shell */
.menu-shell{
  position:relative;
  width:min(100%,480px);
  min-height:100vh;
  margin:0 auto;
  padding:10px 12px 22px;
  overflow:hidden;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,var(--accent) 4%) 0,color-mix(in srgb,var(--surface-2) 90%,var(--accent) 8%) 58%,var(--bg) 100%);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 10%,rgba(16,24,40,.05)),var(--shadow);
}
.menu-shell::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.38;
  background:
    radial-gradient(circle at 8% 12%,color-mix(in srgb,var(--accent) 10%,transparent) 0 1px,transparent 2px),
    linear-gradient(135deg,transparent 0 48%,color-mix(in srgb,var(--accent) 8%,transparent) 49% 51%,transparent 52% 100%);
  background-size:18px 18px,46px 46px;
}
.menu-shell>*{position:relative;z-index:1}
.menu-main{position:relative;overflow:visible;padding:18px 2px 0}

/* MODULE: Header */
.menu-hero{position:relative;overflow:visible;padding-bottom:0}
.hero-cover{
  position:relative;
  height:134px;
  overflow:visible;
  background-size:cover;
  background-position:center;
  border-radius:0 0 22px 22px;
  box-shadow:0 18px 42px color-mix(in srgb,var(--accent-dark) 18%,transparent);
  z-index:1;
}
.hero-cover::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.025) 42%,rgba(255,255,255,.04));
}
.brand-row{
  position:relative;
  z-index:4;
  text-align:center;
  padding:0 14px 13px;
  margin-top:-44px;
  border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
}
.brand-logo{
  position:relative;
  z-index:5;
  width:78px;
  height:78px;
  margin:0 auto 9px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#fff;
  border-radius:23px;
  box-shadow:0 18px 42px color-mix(in srgb,var(--accent) 22%,rgba(16,24,40,.08));
}
.brand-logo img{max-width:84%;max-height:84%;object-fit:contain}
.brand-text{min-width:0;position:relative;z-index:5}
.brand-text h1{
  margin:0;
  color:var(--text);
  font-family:var(--font-restaurant);
  font-size:clamp(22px,var(--fs-restaurant),30px);
  line-height:1.06;
  font-weight:900;
  letter-spacing:.005em;
  overflow:visible;
}
.brand-text p{
  margin:5px 0 0;
  color:var(--accent-dark);
  font-family:var(--font-slogan);
  font-size:clamp(13px,var(--fs-slogan),17px);
  line-height:1.12;
  font-weight:760;
  overflow:visible;
}
.brand-meta,.lang-form{display:none}
.hero-language-menu{position:absolute;right:12px;top:12px;z-index:40}
.hero-language-toggle{
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  color:#111827;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.95);
  box-shadow:0 11px 24px rgba(17,24,39,.16);
  backdrop-filter:blur(14px);
  font-family:var(--font-language);
  font-size:var(--fs-language);
  font-weight:950;
  cursor:pointer;
}
.hero-language-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.hero-language-options{position:absolute;right:0;top:calc(100% + 8px);z-index:45;width:min(132px,calc(100vw - 42px));padding:7px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 18px 45px rgba(17,24,39,.18)}
.hero-language-options a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;color:#111827;text-decoration:none;border-radius:12px;font-family:var(--font-language);font-size:clamp(11px,var(--fs-language),13px);font-weight:950}
.hero-language-options a small{font-size:10px;color:#667085;font-weight:800}
.hero-language-options a.active,.hero-language-options a:hover{background:#f3f6fa}

/* Header layout variants */
.menu-hero.header-layout-classic .brand-row{display:flex;flex-direction:column;text-align:center}
.menu-hero.header-layout-centered .brand-row{display:block;text-align:center;margin-top:-42px}
.menu-hero.header-layout-centered .hero-cover{height:148px}
.menu-hero.header-layout-centered .brand-logo{width:86px;height:86px}
.menu-hero.header-layout-compact .brand-row{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;align-items:center;text-align:left;margin-top:-32px;padding-inline:12px}
.menu-hero.header-layout-compact .brand-logo{width:62px;height:62px;margin:0;border-radius:19px}
.menu-hero.header-layout-compact .brand-text h1,.menu-hero.header-layout-compact .brand-text p{text-align:left}
.menu-hero.header-layout-cover_card .hero-cover{height:150px;border-radius:0 0 28px 28px}
.menu-hero.header-layout-cover_card .brand-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;align-items:center;text-align:left;margin:-44px 18px 16px;padding:13px 15px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.88));border:1px solid rgba(255,255,255,.78);border-radius:26px;box-shadow:0 22px 56px rgba(15,23,42,.16);backdrop-filter:blur(14px)}
.menu-hero.header-layout-cover_card .brand-logo{width:72px;height:72px;margin:0;border-radius:22px}
.menu-hero.header-layout-cover_card .brand-text h1,.menu-hero.header-layout-cover_card .brand-text p{text-align:left}

/* MODULE: Search */
.search-card{
  height:54px;
  margin:0 2px 15px;
  padding:0 18px;
  display:flex;
  align-items:center;
  gap:12px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,#fff),color-mix(in srgb,var(--theme-soft) 34%,var(--surface)));
  border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));
  border-radius:999px;
  box-shadow:0 12px 32px rgba(16,24,40,.06);
}
.search-card svg{width:19px;height:19px;fill:none;stroke:var(--accent-dark);stroke-width:2;stroke-linecap:round}
.search-card input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-family:var(--font-search);font-size:clamp(14px,var(--fs-search),17px);font-weight:700}
.search-card input::placeholder{color:#98a2b3}

/* MODULE: Category Slider */
.category-rail{
  position:relative;
  isolation:isolate;
  width:auto;
  max-width:100%;
  min-width:0;
  margin:0 0 18px;
  padding:6px 36px 0;
  overflow:hidden;
  border-radius:0 0 22px 22px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 97%,#fff),color-mix(in srgb,var(--surface-2) 92%,#fff));
  box-shadow:0 10px 26px rgba(15,23,42,.065);
  backdrop-filter:blur(14px);
  z-index:80;
}
.category-rail::before,.category-rail::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:38px;
  z-index:6;
  pointer-events:none;
}
.category-rail::before{left:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 15%,var(--surface-2)),rgba(255,255,255,0))}
.category-rail::after{right:0;background:linear-gradient(270deg,color-mix(in srgb,var(--accent) 15%,var(--surface-2)),rgba(255,255,255,0))}
.cat-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:var(--cat-track-columns);
  gap:var(--cat-track-gap);
  width:100%;
  max-width:100%;
  min-width:0;
  padding:var(--cat-track-padding);
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
.cat-track::-webkit-scrollbar{display:none}
.cat-card{
  position:relative;
  scroll-snap-align:center;
  min-width:0;
  height:var(--cat-card-height);
  padding:8px 6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  overflow:hidden;
  color:var(--text);
  text-decoration:none;
  font-family:var(--font-category);
  font-size:clamp(8px,var(--fs-category),14px);
  font-weight:850;
  background:linear-gradient(150deg,color-mix(in srgb,var(--surface) 92%,#fff),color-mix(in srgb,var(--theme-soft) 72%,var(--surface)));
  border:1px solid color-mix(in srgb,var(--accent) 17%,rgba(17,24,39,.065));
  border-radius:19px;
  box-shadow:0 9px 24px color-mix(in srgb,var(--accent) 10%,transparent),0 6px 16px rgba(16,24,40,.04);
}
.cat-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0,color-mix(in srgb,var(--accent) 15%,transparent),transparent 42%);opacity:.5;z-index:0;pointer-events:none}
.cat-card .cat-icon{position:relative;z-index:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--accent-dark)}
.cat-card svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.cat-label{position:relative;z-index:2;min-height:2.26em;max-height:2.26em;line-height:1.13;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;text-align:center;word-break:normal;overflow-wrap:normal}
.cat-card.active{color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-dark));border-color:transparent;box-shadow:0 12px 32px color-mix(in srgb,var(--accent) 28%,transparent)}
.cat-card.active .cat-icon{color:#fff}
.cat-card.active::after{content:"";position:absolute;z-index:3;bottom:6px;left:50%;width:34px;height:4px;transform:translateX(-50%);border-radius:999px;background:rgba(255,255,255,.78)}
.cat-arrow{
  position:absolute;
  top:0;
  bottom:0;
  z-index:12;
  width:var(--cat-arrow-width);
  min-width:var(--cat-arrow-width);
  height:auto;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid color-mix(in srgb,var(--accent) 20%,rgba(255,255,255,.65));
  border-radius:0;
  background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.76));
  color:var(--accent-dark);
  box-shadow:0 0 0 1px rgba(255,255,255,.38) inset,0 14px 26px color-mix(in srgb,var(--accent) 13%,transparent);
  backdrop-filter:blur(12px);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.cat-prev{left:0;right:auto;border-left:0;border-radius:0 15px 15px 0}
.cat-next{right:0;left:auto;border-right:0;border-radius:15px 0 0 15px}
.category-rail-placeholder{display:none;height:0;pointer-events:none}

/* Category image cards: only category_image source, premium theme mask. */
body.category-mode-image .category-rail .cat-icon,.category-rail.category-mode-image .cat-icon{display:none}
body.category-mode-image .category-rail .cat-card,.category-rail.category-mode-image .cat-card{
  --cat-fallback-bg:linear-gradient(145deg,color-mix(in srgb,var(--accent) 38%,var(--surface)),color-mix(in srgb,var(--accent-dark) 42%,var(--surface-2)));
  color:#fff;
  justify-content:flex-end;
  isolation:isolate;
  height:var(--cat-image-card-height);
  padding:9px 8px 8px;
  background-color:color-mix(in srgb,var(--accent-dark) 30%,var(--surface-2));
  background-image:var(--cat-fallback-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border:1px solid color-mix(in srgb,var(--accent) 32%,rgba(255,255,255,.52));
  border-radius:21px;
  box-shadow:0 14px 30px color-mix(in srgb,var(--accent-dark) 12%,transparent),0 1px 0 rgba(255,255,255,.45) inset;
  transform:translateZ(0);
}
body.category-mode-image .category-rail .cat-card.has-category-image,.category-rail.category-mode-image .cat-card.has-category-image{
  background-image:var(--cat-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
body.category-mode-image .category-rail .cat-card::before,.category-rail.category-mode-image .cat-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.98;
  background:
    linear-gradient(180deg,rgba(15,23,42,0) 0%,rgba(15,23,42,0) 34%,rgba(15,23,42,.34) 62%,rgba(15,23,42,.78) 100%),
    var(--cat-image-mask),
    var(--cat-image-tint);
}
body.category-mode-image .category-rail .cat-card::after,.category-rail.category-mode-image .cat-card::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:2;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.30),rgba(255,255,255,0) 35%,rgba(255,255,255,.12) 100%);
  box-shadow:0 0 0 1px rgba(255,255,255,.22) inset;
  opacity:.72;
}
body.category-mode-image .category-rail .cat-card.active,.category-rail.category-mode-image .cat-card.active{
  border-color:rgba(255,255,255,.86);
  box-shadow:0 18px 38px color-mix(in srgb,var(--accent) 30%,transparent),0 0 0 2px color-mix(in srgb,var(--accent) 52%,rgba(255,255,255,.52)) inset,0 2px 0 rgba(255,255,255,.48) inset;
}
body.category-mode-image .category-rail .cat-card.active::before,.category-rail.category-mode-image .cat-card.active::before{opacity:.90}
body.category-mode-image .category-rail .cat-card.active::after,.category-rail.category-mode-image .cat-card.active::after{
  inset:2px;
  opacity:.96;
  background:linear-gradient(135deg,rgba(255,255,255,.40),rgba(255,255,255,.06) 42%,color-mix(in srgb,var(--accent) 16%,transparent));
}
body.category-mode-image .category-rail .cat-label,.category-rail.category-mode-image .cat-label{
  position:absolute;
  left:7px;
  right:7px;
  bottom:18px;
  z-index:4;
  width:auto;
  min-width:0;
  max-width:none;
  min-height:0;
  height:auto;
  max-height:none;
  margin:0;
  padding:0 2px;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:normal;
  word-break:keep-all;
  hyphens:none;
  line-height:1.06;
  font-size:clamp(7px,calc(var(--fs-category) * .76),11.5px);
  letter-spacing:-.035em;
  color:#fff;
  text-align:center;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  text-shadow:0 2px 7px rgba(0,0,0,.88),0 1px 2px rgba(0,0,0,.78);
  backdrop-filter:none;
}
body.category-mode-image .category-rail .cat-label.is-fit-two-line,.category-rail.category-mode-image .cat-label.is-fit-two-line{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  white-space:normal;
  line-height:1.04;
  padding:0 4px;
  overflow-wrap:normal;
  word-break:keep-all;
  text-wrap:balance;
}
body.category-mode-image .category-rail .cat-card.active .cat-label,.category-rail.category-mode-image .cat-card.active .cat-label{
  color:#fff;
  text-shadow:0 3px 9px rgba(0,0,0,.92),0 1px 2px rgba(0,0,0,.82),0 0 10px color-mix(in srgb,var(--accent) 28%,transparent);
}

/* MODULE: Sections */
.menu-section{scroll-margin-top:118px;margin-bottom:22px}
.menu-section.hidden,.product-card.hidden{display:none}
.section-title{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 10px;color:var(--text);font-family:var(--font-section);font-size:clamp(19px,var(--fs-section),25px);font-weight:900;text-transform:uppercase;letter-spacing:.01em;text-align:center}
.section-title::before,.section-title::after{content:"";height:1px;max-width:52px;flex:1 1 52px;background:linear-gradient(90deg,transparent,var(--accent))}
.section-title::after{background:linear-gradient(90deg,var(--accent),transparent)}
.section-title span{display:inline-flex;align-items:center;justify-content:center;gap:8px;position:relative}
.section-title span::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent),0 0 18px color-mix(in srgb,var(--accent) 35%,transparent)}
.category-note{width:100%;margin:0 0 13px;padding:10px 13px;text-align:center;color:color-mix(in srgb,var(--muted) 88%,var(--text));font-family:var(--font-category-note);font-size:var(--fs-category-note);font-weight:750;line-height:1.28;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,#fff),color-mix(in srgb,var(--theme-soft) 34%,var(--surface)));border:1px solid color-mix(in srgb,var(--accent) 24%,rgba(16,24,40,.04));border-radius:15px;box-shadow:0 8px 18px rgba(16,24,40,.04)}
.product-list{display:flex;flex-direction:column;gap:10px}

/* MODULE: Product Cards */
.product-card{
  min-height:var(--product-card-min-height);
  display:grid;
  grid-template-columns:var(--product-grid-columns);
  grid-template-areas:var(--product-grid-areas);
  align-items:start;
  gap:var(--product-card-gap);
  padding:var(--product-card-padding);
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 92%,var(--accent) 4%));
  border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));
  border-radius:20px;
  box-shadow:0 13px 32px color-mix(in srgb,var(--accent) 8%,transparent),0 6px 16px rgba(15,23,42,.04);
  transition:transform .18s ease,box-shadow .18s ease;
}
.product-card:hover{transform:translateY(-1px);box-shadow:0 16px 36px color-mix(in srgb,var(--accent) 10%,transparent),0 8px 18px rgba(15,23,42,.055)}
.product-image{grid-area:image;position:relative;height:var(--product-image-height);overflow:hidden;background:#eee;border-radius:var(--product-image-radius);box-shadow:0 12px 24px color-mix(in srgb,var(--accent) 12%,transparent),inset 0 0 0 1px rgba(255,255,255,.4)}
.product-image img{display:block;width:100%;height:100%;object-fit:cover}
.product-tag{position:absolute;left:7px;bottom:7px;max-width:calc(100% - 14px);padding:4px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--accent-dark);font-family:var(--font-tag);font-size:var(--fs-tag);font-weight:950;text-transform:uppercase;letter-spacing:.02em;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,#fff),color-mix(in srgb,var(--accent) 82%,#fff));border:1px solid color-mix(in srgb,var(--accent) 28%,rgba(255,255,255,.55));border-radius:999px;box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 16%,transparent),inset 0 1px 0 rgba(255,255,255,.72);backdrop-filter:blur(10px)}
html[data-theme="black_gold"] .product-tag,html[data-theme="neon"] .product-tag,html[data-theme="royal"] .product-tag{color:#fffdf7;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-dark) 72%,#000),color-mix(in srgb,var(--accent) 90%,var(--accent-dark)));border-color:color-mix(in srgb,var(--accent) 34%,rgba(255,255,255,.35))}
html[data-theme="mono"] .product-tag{color:#fff;background:linear-gradient(135deg,#1f2937,#111827);border-color:rgba(255,255,255,.18)}
.product-info{grid-area:info;min-width:0;align-self:start}
.product-info h3{margin:-.04em 0 4px;padding:.12em 0 .04em;color:var(--text);font-family:var(--font-product);font-size:clamp(16px,var(--fs-product),20px);font-weight:880;line-height:1.28;display:block;overflow:visible;overflow-wrap:anywhere}
.product-info p{margin:0;color:var(--muted);font-family:var(--font-desc);font-size:clamp(12.5px,var(--fs-desc),14.5px);line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-side{grid-area:price;position:relative;z-index:3;align-self:end;display:flex;align-items:flex-end;justify-content:space-between;gap:9px;width:100%;min-width:0;padding-top:0}
.product-side strong{flex:0 1 auto;min-width:0;color:var(--theme-ink,var(--accent-dark));font-family:var(--font-price);font-size:clamp(16px,var(--fs-price),19px);font-weight:880;line-height:1.08;white-space:nowrap;text-shadow:0 1px 0 color-mix(in srgb,var(--surface) 65%,transparent)}
.detail-dot{display:none}
.product-meta-mini{display:flex;flex-direction:column;gap:2px;margin-top:5px;color:var(--muted);font-size:clamp(10.5px,calc(var(--fs-desc) - 2px),12.5px);line-height:1.18}
.product-meta-mini span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.product-meta-mini b{color:var(--accent-dark);font-weight:900}
.product-meta-mini.product-meta-full{display:block;margin-top:8px;padding:8px 10px;color:var(--text);font-family:var(--font-meta-text);font-size:var(--fs-meta-text);line-height:1.35;background:linear-gradient(145deg,rgba(255,255,255,.78),color-mix(in srgb,var(--accent) 4%,#fff));border:1px solid color-mix(in srgb,var(--accent) 18%,rgba(16,24,40,.06));border-radius:14px}
.product-meta-mini.product-meta-full span{display:block;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;margin:0 0 3px}
.product-meta-mini.product-meta-full span:last-child{margin-bottom:0}
.product-meta-button{position:relative;z-index:5;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-height:30px;margin:0 0 1px auto;padding:6px 10px;color:var(--accent-dark);font-family:var(--font-meta-button);font-size:var(--fs-meta-button);font-weight:950;line-height:1;letter-spacing:.01em;white-space:nowrap;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,#fff),#fff 45%,color-mix(in srgb,var(--accent) 9%,#fff));border:1px solid color-mix(in srgb,var(--accent) 28%,rgba(16,24,40,.09));border-radius:999px;box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 12%,transparent),inset 0 1px 0 rgba(255,255,255,.86);cursor:pointer;touch-action:manipulation;user-select:none}
.product-meta-button::before{content:"i";width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 15%,#fff);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);border-radius:999px;font-size:10px;font-weight:950;line-height:1}
.product-meta-button:active{transform:scale(.97)}
.product-meta-button *{pointer-events:none}
body.product-meta-mode-inline .product-meta-mini{display:block}

/* MODULE: Product Meta Sheet */
.product-meta-sheet{position:fixed;inset:0;z-index:9999;display:none;pointer-events:none}
.product-meta-sheet.open{display:block;pointer-events:auto}
.product-meta-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(5px)}
.product-meta-panel{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(92vw,430px);max-height:min(70vh,520px);overflow:auto;padding:20px;color:#111827;background:#fff;border:1px solid rgba(255,255,255,.9);border-radius:26px;box-shadow:0 30px 80px rgba(15,23,42,.32)}
.product-meta-panel h3{margin:0 36px 14px 0;color:var(--text);font-size:20px;font-weight:950}
.meta-close{position:absolute;right:14px;top:12px;width:34px;height:34px;border:1px solid rgba(15,23,42,.08);border-radius:999px;background:#f8fafc;font-size:22px;line-height:1;cursor:pointer}
.meta-sheet-row{margin-top:8px;padding:12px;background:#f8fafc;border:1px solid rgba(15,23,42,.06);border-radius:16px;font-family:var(--font-meta-text);font-size:var(--fs-meta-text)}
.meta-sheet-row strong{display:block;margin-bottom:4px;color:var(--accent-dark);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.meta-sheet-row p{margin:0;color:var(--text);font-size:14px;line-height:1.38}
body.meta-open{overflow:hidden}

/* MODULE: Info Cards */
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 14px}
.info-card{position:relative;min-height:76px;padding:12px;display:flex;align-items:center;gap:10px;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,#fff),color-mix(in srgb,var(--theme-soft) 34%,var(--surface)));border:1px solid color-mix(in srgb,var(--accent) 18%,rgba(16,24,40,.055));border-radius:20px;box-shadow:0 12px 28px rgba(16,24,40,.055)}
.info-card::after{content:"";position:absolute;right:-18px;top:-24px;width:74px;height:74px;border-radius:50%;background:color-mix(in srgb,var(--accent) 8%,transparent)}
.info-icon{position:relative;z-index:1;width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-dark));border:1.8px solid var(--accent);border-radius:999px;font-size:18px;font-weight:950;box-shadow:0 7px 16px color-mix(in srgb,var(--accent) 12%,transparent)}
.info-copy{position:relative;z-index:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.info-copy small{color:var(--muted);font-family:var(--font-info-label);font-size:var(--fs-info-label);font-weight:850;line-height:1.05}
.info-copy strong{display:block;color:var(--text);font-family:var(--font-info);font-size:clamp(12px,var(--fs-info),15px);font-weight:950;line-height:1.12}
.info-card p{display:none}

/* MODULE: Google Review - isolated */
.google-review-card,.google-review-card *{font-family:Arial,Roboto,sans-serif;background-color:initial}
.google-review-card{margin:16px 0 0;padding:17px;color:#202124;background:#fff;border:1px solid #dadce0;border-radius:18px;box-shadow:0 1px 2px rgba(60,64,67,.16),0 1px 3px rgba(60,64,67,.10);color-scheme:light}
.review-kicker{display:block;margin-bottom:6px;color:#1a73e8;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.18em}
.google-review-card h2{margin:0 0 14px;color:#202124;font-size:17px;font-weight:600;line-height:1.22}
.google-public-row{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:#5f6368;font-size:13px}
.google-public-row img{width:38px;height:38px;flex:0 0 auto;border-radius:50%}
.google-public-row b{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#5f6368;border:1px solid #5f6368;border-radius:50%;font-size:11px}
.stars{display:flex;align-items:center;justify-content:center;gap:7px;margin:8px 0 12px}
.stars button{border:0;background:#fff;color:#dadce0;font-size:34px;line-height:1;cursor:pointer;filter:none}
.stars button.active,.stars button:hover,.stars button:focus{color:#fbbc04;outline:none}
.stars button:focus-visible{box-shadow:0 0 0 3px rgba(26,115,232,.16);border-radius:6px}
.low-review-form textarea{width:100%;min-height:96px;resize:vertical;padding:12px;border:1px solid #dadce0;border-radius:4px;color:#202124;background:#fff;font-size:14px;outline:none}
.low-review-form textarea:focus{border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.12)}
.review-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px}
.review-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 18px;border-radius:4px;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer}
.review-cancel{min-width:82px;color:#1a73e8;background:#fff;border:1px solid #dadce0}
.review-submit{min-width:96px;color:#fff;background:#1a73e8;border:1px solid #1a73e8}
.review-message{min-height:18px;margin:10px 0 0;color:#188038;font-size:14px;font-weight:700}
.review-message.error{color:#d93025}
.turnstile-wrap{margin:8px 0 12px;overflow:hidden}

/* MODULE: Suggestion Modal */
body.suggestion-open{overflow:hidden;position:static;left:auto;right:auto;width:auto}
.suggestion-hero-btn{position:absolute;left:12px;top:12px;z-index:8;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 15px 9px 14px;color:#0f172a;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.86));border:1px solid rgba(255,255,255,.74);border-radius:999px;box-shadow:0 16px 30px rgba(17,24,39,.16),inset 0 1px 0 rgba(255,255,255,.8);backdrop-filter:blur(16px);font-size:12.5px;font-weight:950;letter-spacing:.01em;cursor:pointer}
.suggestion-hero-btn::before{content:"✦";width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(145deg,var(--accent),var(--accent-dark));border-radius:999px;font-size:12px;line-height:1;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 28%,transparent)}
.suggestion-hero-btn:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(17,24,39,.18),inset 0 1px 0 rgba(255,255,255,.88)}
.suggestion-sheet{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;padding:14px;pointer-events:none}
.suggestion-sheet.open{display:flex;pointer-events:auto}
.suggestion-backdrop{position:absolute;inset:0;z-index:1;background:rgba(15,23,42,.48);backdrop-filter:blur(5px)}
.suggestion-panel{position:relative;z-index:2;display:flex;flex-direction:column;gap:10px;visibility:visible;opacity:1;transform:none;width:min(94vw,460px);max-height:calc(100dvh - 32px);overflow:auto;margin:0;padding:22px;color:#111827;background:#fff;border:1px solid rgba(255,255,255,.82);border-radius:26px;box-shadow:0 34px 90px rgba(15,23,42,.34)}
.suggestion-close{position:absolute;right:14px;top:12px;width:34px;height:34px;border:1px solid #e5e7eb;border-radius:999px;background:#f8fafc;font-size:22px;line-height:1;cursor:pointer}
.suggestion-kicker{color:var(--accent-dark);font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:950}
.suggestion-panel h3{margin:0 38px 0 0;color:#111827;font-size:23px;font-weight:950}
.suggestion-panel p{margin:0;color:#667085;font-size:13px;line-height:1.35}
.suggestion-panel label{display:flex;flex-direction:column;gap:6px;color:#344054;font-size:12px;font-weight:900}
.suggestion-panel label small{font-weight:800;color:#98a2b3}
.suggestion-panel input,.suggestion-panel textarea{border:1px solid #d7dee9;border-radius:15px;background:#fff;color:#111827;padding:12px 13px;outline:none;font:600 14px/1.35 Arial,Roboto,sans-serif}
.suggestion-panel textarea{min-height:108px;resize:vertical}
.suggestion-panel input:focus,.suggestion-panel textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}
.suggestion-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.suggestion-actions button{border:1px solid #d7dee9;border-radius:15px;padding:12px 14px;font-weight:950;cursor:pointer;background:#fff;color:#344054}
.suggestion-actions button[type=submit]{background:linear-gradient(145deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent}
.suggestion-message{min-height:18px;margin:0;color:#188038;font-weight:900}
.suggestion-message.error{color:#d93025}

/* MODULE: Scroll Top */
.scroll-top-btn{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:80;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--accent) 28%,rgba(255,255,255,.7));border-radius:999px;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(14px);color:var(--accent-dark);font-size:22px;font-weight:950;box-shadow:0 14px 34px rgba(15,23,42,.16);opacity:0;visibility:hidden;transform:translateY(12px);transition:.2s ease;cursor:pointer}
.scroll-top-btn.visible{opacity:.92;visibility:visible;transform:none}
.scroll-top-btn:active{transform:scale(.96)}

/* MODULE: Desktop Responsive */
@media(min-width:768px){
  .menu-shell{width:min(100%,920px);padding:18px 18px 28px}
  .hero-cover{height:170px;border-radius:0 0 30px 30px}
  .brand-row{margin-top:-48px}
  .brand-logo{width:96px;height:96px;border-radius:26px}
  .menu-main{padding:24px 16px 0}
  .search-card{height:60px;margin-bottom:22px}
  .category-rail{padding-left:44px;padding-right:44px;margin-bottom:24px}
  .category-rail::before,.category-rail::after{width:44px}
  :root{--cat-track-columns:136px;--cat-track-gap:16px;--cat-card-height:112px;--cat-image-card-height:112px;--cat-arrow-width:32px;--product-grid-columns:178px minmax(0,1fr) auto;--product-grid-areas:'image info price';--product-card-gap:22px;--product-card-padding:16px;--product-card-min-height:142px;--product-image-height:118px;--product-image-radius:20px}
  .cat-track{justify-content:safe center}
  .cat-card .cat-icon,.cat-card svg{width:30px;height:30px}
  .product-tag{left:10px;bottom:9px;padding:5px 9px}
  .product-info{align-self:center}
  .product-info h3{font-size:clamp(19px,var(--fs-product),24px)}
  .product-info p{font-size:clamp(14px,var(--fs-desc),16px);-webkit-line-clamp:3}
  .product-side{align-self:center;justify-content:flex-end;min-width:118px}
  .product-side strong{font-size:clamp(17px,var(--fs-price),23px)}
  .info-grid{gap:16px}
  .info-card{min-height:92px;padding:16px 22px}
  .info-icon{width:50px;height:50px;font-size:26px}
  .google-review-card{padding:22px 24px}
}

/* MODULE: Mobile Stabilization */
@media(max-width:760px){
  .menu-shell,.menu-main{overflow:visible}
  .category-rail{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    transform:none;
    width:100vw;
    min-width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    margin-top:0;
    margin-bottom:16px;
    padding:0;
    overflow:hidden;
    z-index:90;
    border-radius:0 0 22px 22px;
    background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,#fff),color-mix(in srgb,var(--surface-2) 88%,var(--accent) 5%));
    box-shadow:0 10px 26px rgba(15,23,42,.07);
  }
  .category-rail.is-stuck{position:fixed;top:0;left:0;right:auto;transform:none;width:100vw;min-width:100vw;max-width:100vw;margin:0;z-index:1200;box-shadow:0 14px 34px rgba(15,23,42,.13)}
  .category-rail-placeholder.active{display:block;height:var(--category-rail-height,96px)}
  .category-rail::before,.category-rail::after{top:0;bottom:0;width:32px;z-index:8}
  .category-rail::before{left:0;right:auto;background:linear-gradient(90deg,color-mix(in srgb,var(--surface-2) 92%,var(--accent) 8%) 0%,rgba(255,255,255,0) 100%)}
  .category-rail::after{right:0;left:auto;background:linear-gradient(270deg,color-mix(in srgb,var(--surface-2) 92%,var(--accent) 8%) 0%,rgba(255,255,255,0) 100%)}
  .cat-track{width:100vw;min-width:100vw;max-width:100vw;box-sizing:border-box;grid-auto-columns:calc((100vw - 92px)/3);gap:10px;padding:5px 36px 16px;scroll-padding-left:36px;scroll-padding-right:36px}
  .cat-card{height:78px;border-radius:17px}
  body.category-mode-image .category-rail .cat-card,.category-rail.category-mode-image .cat-card{height:100px}
  .cat-arrow{top:0;bottom:0;width:30px;min-width:30px;border-top:0;border-bottom:0}
  .cat-prev{left:0;right:auto;border-left:0;border-radius:0 15px 15px 0}
  .cat-next{right:0;left:auto;border-right:0;border-radius:15px 0 0 15px}
  .menu-section{scroll-margin-top:118px}
  .menu-hero .hero-cover{height:132px;border-radius:0 0 22px 22px}
  .menu-hero .brand-row{border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
  .menu-hero.header-layout-classic .brand-row,.menu-hero.header-layout-centered .brand-row{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:-40px;padding:0 14px 13px;background:transparent;box-shadow:none}
  .menu-hero.header-layout-classic .brand-logo,.menu-hero.header-layout-centered .brand-logo{width:74px;height:74px;margin:0 auto 9px}
  .menu-hero.header-layout-compact .brand-row,.menu-hero.header-layout-cover_card .brand-row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;align-items:center;text-align:left;margin:-32px 12px 14px;padding:12px 13px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.88));border:1px solid rgba(255,255,255,.78);border-radius:24px;box-shadow:0 18px 44px rgba(15,23,42,.14);backdrop-filter:blur(14px)}
  .menu-hero.header-layout-compact .brand-logo,.menu-hero.header-layout-cover_card .brand-logo{width:66px;height:66px;margin:0;border-radius:20px}
  .menu-hero.header-layout-compact .brand-text h1,.menu-hero.header-layout-cover_card .brand-text h1{font-size:clamp(18px,var(--fs-restaurant),24px);text-align:left}
  .menu-hero.header-layout-compact .brand-text p,.menu-hero.header-layout-cover_card .brand-text p{text-align:left}
  .suggestion-sheet{align-items:flex-end;padding:12px}
  .suggestion-panel{width:100%;max-height:calc(100dvh - 24px);border-radius:26px 26px 18px 18px}
  .suggestion-hero-btn{left:14px;top:14px;min-height:40px;padding:8px 13px 8px 12px;font-size:12px}
}

@media(max-width:390px){
  .menu-shell{padding-left:10px;padding-right:10px}
  .hero-cover{height:122px}
  .brand-logo{width:72px;height:72px;border-radius:21px}
  .brand-row{margin-top:-39px}
  .brand-text h1{font-size:clamp(21px,var(--fs-restaurant),28px)}
  .brand-text p{font-size:clamp(12.5px,var(--fs-slogan),15px)}
  .menu-main{padding-top:16px}
  .search-card{height:50px;padding:0 16px;margin-bottom:13px}
  :root{--cat-track-columns:calc((100vw - 84px)/3);--cat-track-gap:9px;--cat-track-padding:5px 33px 16px;--cat-card-height:76px;--cat-image-card-height:88px;--cat-arrow-width:28px;--product-grid-columns:100px minmax(0,1fr);--product-card-gap:6px 10px;--product-card-min-height:122px;--product-card-padding:9px;--product-image-height:90px;--product-image-radius:15px}
  .cat-track{scroll-padding-left:33px;scroll-padding-right:33px}
  .category-rail::before,.category-rail::after{width:30px}
  .cat-card .cat-icon,.cat-card svg{width:22px;height:22px}
  .cat-label{font-size:clamp(8px,calc(var(--fs-category) * .9),11px)}
  .menu-section{scroll-margin-top:112px}
  .section-title{font-size:clamp(18px,var(--fs-section),23px);margin-bottom:10px}
  .section-title::before,.section-title::after{max-width:42px}
  .category-note{font-size:12px}
  .product-card{border-radius:18px}
  .product-info h3{font-size:clamp(15.5px,var(--fs-product),19px)}
  .product-info p{font-size:clamp(12px,var(--fs-desc),14px);line-height:1.3}
  .product-side{gap:6px}
  .product-side strong{font-size:clamp(15.5px,var(--fs-price),18px)}
  .product-meta-button{min-height:28px;padding:6px 8px;font-size:10.5px;gap:5px}
  .product-meta-button::before{width:15px;height:15px;font-size:9.5px}
  .product-meta-mini.product-meta-full{font-size:11px;padding:7px 9px;line-height:1.32}
  .info-grid{grid-template-columns:1fr 1fr;gap:8px}
  .info-card{min-height:68px;padding:10px 9px;border-radius:17px}
  .info-icon{width:35px;height:35px;font-size:16px}
  .info-copy small{font-size:10px}
  .info-copy strong{font-size:12.5px;line-height:1.08}
  .google-review-card{padding:16px}
  .review-submit{min-width:88px}
  .review-cancel{min-width:76px}
}
@media(max-width:350px){
  :root{--product-grid-columns:92px minmax(0,1fr)}
  .product-side{align-items:flex-start;flex-direction:column;gap:5px}
  .product-side .product-meta-button{margin-left:0}
}
