@charset "utf-8";
:root { --forest:#1e2e25; --forest-light:#273b30; --paper:#f5efe6; --paper-bright:#fffaf1; --ink:#202d27; --muted:#77796f; --line:rgba(30,46,37,.17); --copper:#b97b4d; --rust:#9b3b26; --serif:Georgia,"Times New Roman",serif; --sans:"Plus Jakarta Sans","Segoe UI",Arial,sans-serif; --display:Impact,"Arial Narrow",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:92px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
button,input { font:inherit; }
a { color:inherit; }
[hidden] { display:none!important; }
.classic-page { min-height:100vh; }
.landing-shell { min-height:100svh; position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:clamp(23px,5vw,56px) clamp(22px,7vw,98px) 24px; background:radial-gradient(ellipse at 50% 44%,rgba(86,105,78,.34),transparent 43%),linear-gradient(135deg,#18271f,#1e3026 53%,#17271f); color:#f5efe6; }
.landing-shell::before,.landing-shell::after { content:""; width:31vw; height:31vw; position:absolute; border:1px solid rgba(203,151,100,.12); border-radius:50%; pointer-events:none; }
.landing-shell::before { left:-14vw; top:10vh; box-shadow:0 0 0 24px rgba(203,151,100,.018),0 0 0 66px rgba(203,151,100,.02); }
.landing-shell::after { right:-19vw; bottom:-20vw; width:50vw; height:50vw; }
.landing-ring { width:min(58vw,650px); aspect-ratio:1; position:absolute; left:50%; top:49%; border:1px solid rgba(203,151,100,.12); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; }
.landing-ring-two { width:min(48vw,535px); border-color:rgba(245,239,230,.06); }
.landing-top,.landing-footer { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; }
.landing-brand,.top-brand { display:flex; align-items:center; gap:11px; text-decoration:none; font-family:var(--display); letter-spacing:.13em; }
.brand-oval { width:38px; height:38px; display:grid; place-items:center; border:1px solid #bc8d5e; border-radius:50%; color:#ead9b9; font:italic 28px/1 var(--serif); letter-spacing:0; transform:rotate(-9deg); }
.landing-brand > span:last-child,.top-brand > span:last-child { display:grid; gap:2px; }
.landing-brand small,.top-brand small { color:#bcae92; font:8px var(--sans); letter-spacing:.22em; }
.landing-location,.landing-footer { color:rgba(245,239,230,.52); font-size:8px; letter-spacing:.2em; }
.landing-center { position:relative; z-index:1; width:min(100%,700px); margin:24px auto; display:flex; align-items:center; flex-direction:column; text-align:center; }
.landing-spark { color:#c58b59; font-size:27px; animation:slow-turn 18s linear infinite; }
.landing-overline { margin:20px 0 9px; color:#c1ad8a; font:9px var(--sans); letter-spacing:.25em; }
.landing-center h1 { margin:0; color:#f4eee1; font:clamp(72px,13vw,151px)/.81 var(--serif); font-weight:400; letter-spacing:-.09em; }
.landing-center h1 span { display:block; margin-top:13px; color:#c58b59; font:clamp(20px,3vw,32px)/1 var(--display); letter-spacing:.32em; text-transform:uppercase; }
.landing-subtitle { margin:24px 0 29px; color:rgba(245,239,230,.58); font-size:8px; letter-spacing:.2em; }
.landing-subtitle i { padding:0 8px; color:#c58b59; font-style:normal; }
.landing-rule { display:flex; align-items:center; gap:15px; color:#d4c4a6; font-size:8px; letter-spacing:.2em; }
.landing-rule span { width:56px; height:1px; background:rgba(197,139,89,.53); }
.landing-actions { margin-top:27px; display:flex; gap:11px; }
.landing-menu-button { min-width:142px; height:48px; padding:0 16px; display:flex; align-items:center; justify-content:space-between; gap:21px; border:1px solid rgba(214,188,146,.7); color:#f7f1e5; text-decoration:none; font-size:10px; letter-spacing:.13em; transition:background .2s,border-color .2s,transform .2s; }
.landing-menu-button:hover { transform:translateY(-2px); border-color:#c58b59; background:rgba(197,139,89,.13); }
.landing-menu-button span:last-child { color:#cf9768; font-size:17px; }
.landing-campaign { margin-top:19px; color:#dbad75; font-size:10px; text-decoration:none; }
.landing-campaign:hover { color:#f3d4a4; }
.landing-share { margin-top:16px; border:0; background:transparent; color:rgba(245,239,230,.67); cursor:pointer; font-size:9px; letter-spacing:.08em; }
.landing-share:hover { color:#e0b37d; }
.landing-footer { padding-top:14px; border-top:1px solid rgba(245,239,230,.13); }
.landing-footer a { text-decoration:none; }
.landing-footer a:hover { color:#e2bd8e; }
.landing-footer span { font-size:7px; }
.top-controls { min-height:65px; position:sticky; top:0; z-index:5; display:grid; grid-template-columns:minmax(170px,1fr) minmax(160px,330px) minmax(100px,1fr); align-items:center; gap:25px; padding:10px clamp(18px,5vw,66px); border-bottom:1px solid rgba(245,239,230,.1); background:rgba(30,46,37,.97); color:#f5efe6; backdrop-filter:blur(14px); }
.top-brand { justify-self:start; font-size:12px; }
.top-brand .brand-oval { width:32px; height:32px; font-size:23px; }
.top-brand small { font-size:6px; }
.search-wrapper { height:37px; display:flex; align-items:center; gap:9px; padding:0 11px; border:1px solid rgba(245,239,230,.24); border-radius:3px; background:rgba(255,255,255,.035); }
.search-icon { color:#c58b59; font:24px/1 var(--serif); transform:rotate(-20deg); }
.search-input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#fffaf1; font-size:10px; }
.search-input::placeholder { color:rgba(245,239,230,.48); }
.lang-switcher { justify-self:end; display:flex; align-items:center; gap:7px; color:rgba(245,239,230,.38); font-size:9px; }
.lang-btn { padding:7px 5px; border:0; background:transparent; color:rgba(245,239,230,.62); cursor:pointer; font-size:9px; letter-spacing:.11em; }
.lang-btn.active,.lang-btn:hover { color:#d9a16e; }
.menu-canvas { width:min(100%,1130px); min-height:60vh; margin:0 auto; padding:0 clamp(18px,5vw,68px) 63px; }
.hero-header { min-height:285px; position:relative; display:grid; grid-template-columns:115px 1fr 115px; align-items:center; gap:18px; overflow:hidden; border-bottom:1px solid var(--line); background:radial-gradient(ellipse at 53% 50%,rgba(196,147,95,.16),transparent 36%); }
.hero-header::after { content:""; width:280px; height:280px; position:absolute; right:7%; top:50%; border:1px solid rgba(130,87,55,.14); border-radius:50%; transform:translateY(-50%); box-shadow:0 0 0 26px rgba(130,87,55,.025),0 0 0 62px rgba(130,87,55,.022); pointer-events:none; }
.hero-emblem { width:82px; height:82px; position:relative; display:grid; place-items:center; border:1px solid #9e744d; border-radius:50%; color:var(--forest); font:italic 60px/.8 var(--serif); transform:rotate(-9deg); }
.hero-emblem i { position:absolute; right:-10px; bottom:0; color:#a35b39; font:18px var(--sans); }
.hero-copy { position:relative; z-index:1; text-align:center; }
.hero-overline { margin:0 0 12px; color:#825737; font-size:8px; letter-spacing:.28em; }
.hero-copy h1 { margin:0; color:var(--forest); font:clamp(44px,8vw,85px)/.84 var(--display); letter-spacing:.055em; }
.hero-copy h1 span { display:block; margin-top:10px; color:#8d5b39; font:clamp(13px,2vw,19px)/1 var(--sans); letter-spacing:.4em; }
.hero-manifesto { margin:15px 0 0; color:#858173; font:italic 13px var(--serif); letter-spacing:.13em; }
.hero-rule { width:68px; height:1px; display:block; margin:16px auto 0; background:#bd8152; }
.hero-coordinate { position:relative; z-index:1; color:#978f7e; font:9px/1.8 var(--display); letter-spacing:.16em; text-align:right; }
.menu-intro { padding:42px 0 19px; display:flex; align-items:end; justify-content:space-between; border-bottom:1px solid var(--line); }
.menu-label,.section-kicker { margin:0; color:#9b3b26; font-size:8px; font-weight:700; letter-spacing:.2em; }
.menu-intro h2 { margin:7px 0 0; color:var(--forest); font:35px/1 var(--serif); font-weight:400; }
.menu-count { display:grid; justify-items:end; color:var(--forest); }
.menu-count strong { font:24px var(--serif); }
.menu-count small { color:#888475; font-size:7px; letter-spacing:.18em; }
.campaigns-section { padding:24px 0 0; }
.campaign-heading { margin-bottom:13px; display:flex; align-items:center; justify-content:space-between; }
.section-kicker { margin-bottom:4px; color:#9b3b26; }
.campaign-title { margin:0; color:var(--forest); font:25px/1 var(--display); letter-spacing:.07em; }
.section-spark { color:#b97b4d; font-size:23px; }
.campaign-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.campaign-item { min-height:112px; position:relative; display:flex; flex-direction:column; justify-content:space-between; padding:15px 15px 12px; border:1px solid rgba(130,87,55,.19); background:linear-gradient(135deg,rgba(255,250,241,.94),rgba(235,225,208,.54)); transition:transform .18s,border-color .18s; }
.campaign-item:hover { transform:translateY(-2px); border-color:rgba(130,87,55,.47); }
.campaign-item strong { max-width:92%; color:var(--forest); font:19px/1.05 var(--serif); font-weight:400; }
.campaign-item p { margin:6px 0 0; color:#777; font-size:9px; line-height:1.5; }
.campaign-price { align-self:end; color:#9b3b26; font:20px var(--display); letter-spacing:.04em; }
.category-section { margin-top:37px; scroll-margin-top:90px; }
.category-heading { margin-bottom:4px; padding-bottom:10px; display:flex; align-items:end; justify-content:space-between; border-bottom:1px solid rgba(30,46,37,.35); }
.category-heading h2 { margin:0; color:var(--forest); font:27px/.95 var(--display); letter-spacing:.055em; }
.category-heading small { color:#898578; font-size:8px; letter-spacing:.1em; }
.items-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:26px; }
.dish-card { min-height:81px; position:relative; padding:13px 0 11px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-content:start; column-gap:14px; border-bottom:1px dotted rgba(30,46,37,.23); }
.dish-header { min-width:0; display:flex; align-items:baseline; gap:8px; }
.dish-title { margin:0; color:#222; font:18px/1.12 var(--serif); font-weight:600; }
.dish-desc { grid-column:1; max-width:95%; margin:5px 0 0; color:#74756e; font-size:9px; line-height:1.55; }
.dish-price { grid-column:2; grid-row:1/span 2; color:#202d27; font:18px/1.2 var(--display); letter-spacing:.025em; text-align:right; white-space:nowrap; }
.dish-meta { display:flex; align-items:center; gap:5px; margin-top:6px; color:#888; font-size:8px; }
.calorie-tag { color:#827a68; font-size:8px; }
.ribbon-badge,.soldout-badge { padding:3px 5px; background:#9b3b26; color:white; font-size:6px; font-weight:700; letter-spacing:.08em; }
.soldout-badge { background:#777; }
.dish-photo { width:45px; height:45px; grid-column:1; grid-row:1/span 3; align-self:start; float:left; margin-right:10px; border-radius:3px; object-fit:cover; }
.dish-card.has-photo { grid-template-columns:45px minmax(0,1fr) auto; }
.dish-card.has-photo .dish-header,.dish-card.has-photo .dish-desc,.dish-card.has-photo .dish-meta { grid-column:2; }
.dish-card.has-photo .dish-price { grid-column:3; }
.price-variants { display:grid; gap:4px; }
.price-variants span { display:flex; justify-content:space-between; gap:10px; color:#77756a; font:8px var(--sans); }
.price-variants b { color:var(--forest); font:14px var(--display); }
.empty-search { padding:70px 20px; text-align:center; }
.empty-search > span { color:#9b3b26; font:38px var(--serif); }
.empty-search strong { display:block; margin-top:7px; font:24px var(--serif); }
.empty-search p { color:#777; font-size:11px; }
.menu-footer { padding:23px clamp(18px,5vw,68px) 74px; background:#e9e2d6; }
.legal-notice { max-width:980px; margin:0 auto 16px; display:flex; align-items:start; gap:10px; color:#65675e; }
.legal-notice > span { color:#9b3b26; }
.legal-notice p { margin:0; font-size:9px; line-height:1.6; }
.legal-notice small { margin-left:auto; flex:0 0 auto; color:#6b6d62; font-size:8px; }
.footer-links { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.footer-btn { min-height:35px; padding:0 12px; display:inline-flex; align-items:center; gap:12px; border:1px solid rgba(30,46,37,.28); border-radius:2px; text-decoration:none; color:var(--forest); font-size:9px; transition:background .15s; }
.footer-btn:hover { background:rgba(255,255,255,.52); }
.footer-btn span:last-child { color:#9b3b26; }
.menu-copyright { display:block; margin-top:17px; color:#8b867a; font-size:7px; letter-spacing:.17em; text-align:center; }
.sticky-cat-nav-wrapper { position:sticky; z-index:6; bottom:0; padding:8px clamp(12px,4vw,42px); border-top:1px solid rgba(30,46,37,.13); background:rgba(245,239,230,.96); backdrop-filter:blur(15px); }
.sticky-cat-nav { width:min(100%,1260px); margin:0 auto; display:flex; justify-content:center; gap:6px; overflow-x:auto; scrollbar-width:none; }
.sticky-cat-nav::-webkit-scrollbar { display:none; }
.cat-pill { min-height:32px; flex:0 0 auto; padding:0 11px; border:1px solid rgba(30,46,37,.2); border-radius:2px; background:transparent; color:#596057; cursor:pointer; font-size:8px; letter-spacing:.05em; white-space:nowrap; transition:background .15s,color .15s; }
.cat-pill:hover,.cat-pill.active { border-color:var(--forest); background:var(--forest); color:#f5efe6; }
.campaign-reopen { position:fixed; z-index:7; right:18px; bottom:62px; min-height:41px; padding:0 13px; display:flex; align-items:center; gap:8px; border:1px solid #945333; border-radius:25px; background:#9b3b26; color:#fff8ea; box-shadow:0 8px 24px rgba(69,42,25,.2); cursor:pointer; font-size:10px; transition:transform .18s,background .18s; }
.campaign-reopen:hover { transform:translateY(-2px); background:#81321f; }
.campaign-overlay { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:18px; background:rgba(16,28,22,.78); backdrop-filter:blur(8px); animation:fade-in .2s ease both; }
.campaign-overlay[hidden] { display:none; }
.campaign-dialog { width:min(720px,100%); max-height:92vh; position:relative; display:grid; grid-template-columns:1fr; overflow:auto; border:1px solid rgba(197,139,89,.55); background:var(--paper-bright); box-shadow:0 28px 90px rgba(0,0,0,.35); }
.campaign-overlay.has-image .campaign-dialog { grid-template-columns:minmax(0,1fr) minmax(260px,.9fr); }
.campaign-image-wrap { min-height:310px; position:relative; overflow:hidden; background:#e1d4bd; }
.campaign-image-wrap img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.campaign-dialog-copy { min-height:310px; padding:clamp(28px,6vw,55px); display:flex; flex-direction:column; align-items:start; justify-content:center; background:radial-gradient(ellipse at 100% 0,rgba(185,123,77,.11),transparent 40%),var(--paper-bright); }
.campaign-dialog-kicker { color:#9b3b26; font-size:8px; font-weight:700; letter-spacing:.2em; }
.campaign-dialog-kicker i { margin-right:6px; font-size:14px; font-style:normal; }
.campaign-dialog-copy h2 { margin:20px 0 12px; color:var(--forest); font:clamp(34px,6vw,55px)/.98 var(--serif); font-weight:400; }
.campaign-dialog-copy p { margin:0; color:#74746a; font-size:12px; line-height:1.75; white-space:pre-line; }
.campaign-dialog-copy > small { margin-top:28px; color:#929081; font-size:7px; letter-spacing:.19em; }
.campaign-action { min-height:42px; margin-top:20px; padding:0 14px; display:inline-flex; align-items:center; gap:22px; background:var(--forest); color:#fff8ea; text-decoration:none; font-size:10px; }
.campaign-action span:last-child { color:#d9a16e; font-size:16px; }
.campaign-close { width:34px; height:34px; position:absolute; z-index:2; top:10px; right:10px; display:grid; place-items:center; border:1px solid rgba(30,46,37,.18); border-radius:50%; background:rgba(255,250,241,.94); color:var(--forest); cursor:pointer; font:25px var(--serif); }
.campaign-close:hover { background:#efe4d1; }
@keyframes fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes slow-turn { to { transform:rotate(360deg); } }
@media (max-width:760px) {
  .top-controls { grid-template-columns:minmax(100px,1fr) minmax(95px,auto); gap:9px 15px; padding:9px 16px; }
  .search-wrapper { grid-row:2; grid-column:1/-1; height:34px; }
  .lang-switcher { grid-row:1; grid-column:2; }
  .hero-header { min-height:238px; grid-template-columns:54px 1fr 51px; gap:6px; }
  .hero-emblem { width:48px; height:48px; font-size:35px; }
  .hero-coordinate { font-size:7px; }
  .hero-header::after { right:-3%; }
  .campaign-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .items-grid { grid-template-columns:1fr; }
  .dish-card { min-height:75px; }
  .sticky-cat-nav { justify-content:flex-start; }
  .campaign-reopen { bottom:60px; right:12px; }
  .landing-location { font-size:7px; }
}
@media (max-width:540px) {
  .landing-shell { padding:19px 19px 17px; }
  .landing-location { max-width:105px; line-height:1.6; text-align:right; }
  .landing-brand { gap:8px; font-size:11px; }
  .brand-oval { width:34px; height:34px; font-size:25px; }
  .landing-overline { font-size:7px; letter-spacing:.16em; }
  .landing-center h1 { font-size:clamp(68px,18vw,98px); }
  .landing-center h1 span { font-size:21px; letter-spacing:.22em; }
  .landing-footer { gap:8px; font-size:7px; letter-spacing:.1em; }
  .landing-footer span { display:none; }
  .landing-menu-button { min-width:min(41vw,150px); height:44px; }
  .menu-canvas { padding:0 17px 38px; }
  .hero-header { min-height:205px; grid-template-columns:39px 1fr 38px; }
  .hero-emblem { width:36px; height:36px; font-size:27px; }
  .hero-emblem i { right:-7px; font-size:12px; }
  .hero-copy h1 { font-size:clamp(36px,10vw,55px); }
  .hero-copy h1 span { font-size:11px; letter-spacing:.28em; }
  .hero-overline { font-size:7px; }
  .hero-manifesto { font-size:10px; }
  .hero-coordinate { font-size:6px; }
  .menu-intro { padding-top:31px; }
  .menu-intro h2 { font-size:30px; }
  .campaign-item { min-height:107px; padding:12px 10px 10px; }
  .campaign-item strong { font-size:16px; }
  .campaign-item p { font-size:8px; }
  .campaign-price { font-size:18px; }
  .category-section { margin-top:30px; scroll-margin-top:102px; }
  .category-heading h2 { font-size:24px; }
  .dish-title { font-size:17px; }
  .dish-desc { font-size:8px; }
  .menu-footer { padding:18px 16px 70px; }
  .legal-notice { flex-wrap:wrap; }
  .legal-notice small { margin-left:22px; }
  .footer-btn { min-height:32px; padding:0 8px; font-size:8px; }
  .campaign-overlay.has-image .campaign-dialog { grid-template-columns:1fr; }
  .campaign-image-wrap { min-height:0; height:clamp(150px,27vh,220px); }
  .campaign-dialog-copy { min-height:0; padding:27px 23px 22px; }
  .campaign-dialog-copy h2 { margin-top:14px; font-size:38px; }
  .campaign-dialog-copy p { font-size:11px; }
  .campaign-dialog-copy > small { margin-top:20px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
