/* ===== MenuQR — public menu (mobile first, 5 themes) ===== */
:root{
  --brand:#c8102e;
  --bg:#faf8f5; --surface:#fff; --ink:#171310; --ink2:#6b635c; --line:#ece6df;
  --w:760px; --radius:16px; --font:'Plus Jakarta Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --serif:Georgia,'Times New Roman',serif;
}
.theme-dark{--bg:#131110;--surface:#1c1917;--ink:#f5f1ec;--ink2:#a49b92;--line:#2c2724}
.theme-warm{--bg:#fdf6f0;--surface:#fff;--ink:#3a241a;--ink2:#8a6a58;--line:#f0dfd2}
.theme-fresh{--bg:#f4f9f4;--surface:#fff;--ink:#12291a;--ink2:#5c7264;--line:#dceadf}
.theme-luxe{--bg:#100f0c;--surface:#1a1814;--ink:#f4ecdc;--ink2:#b0a288;--line:#2e2a22}

*{box-sizing:border-box}
/* l'attribut hidden doit toujours gagner sur nos display:flex/grid (sheet, plats filtres, sections) */
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;padding-bottom:40px}
a{color:inherit}
h1,h2,h3{margin:0;letter-spacing:-.02em}

/* hero */
.m-hero{position:relative;background:var(--surface);border-bottom:1px solid var(--line);overflow:hidden}
.m-hero .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}
.m-hero.has-cover .m-hero-in{background:linear-gradient(to bottom,transparent,var(--surface) 92%)}
.m-hero-in{position:relative;padding:26px 20px 20px;text-align:center;max-width:var(--w);margin:0 auto}
.langsw{display:flex;gap:5px;justify-content:flex-end;margin-bottom:6px}
.langsw a{padding:4px 10px;border-radius:999px;font-size:11.5px;text-decoration:none;background:var(--bg);color:var(--ink2);border:1px solid var(--line)}
.langsw a.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.m-hero .logo{width:74px;height:74px;object-fit:cover;border-radius:20px;margin-bottom:12px;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.m-hero h1{font-size:26px;line-height:1.15}
.tagline{margin:7px 0 0;color:var(--ink2);font-size:14px;font-family:var(--serif);font-style:italic}
.hours{margin:12px 0 0;font-size:12.5px;color:var(--ink2)}
.quickbar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.quickbar a{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--bg);border:1px solid var(--line);
  text-decoration:none;font-size:12.5px;font-weight:600;color:var(--ink)}
.quickbar a span{font-size:14px}

/* search + tabs */
.m-search{padding:14px 16px 6px;position:sticky;top:0;background:var(--bg);z-index:9}
.m-search input{width:100%;max-width:var(--w);margin:0 auto;display:block;padding:11px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);font:inherit;font-size:14px}
.m-search input:focus{outline:2px solid color-mix(in srgb,var(--brand) 35%,transparent);border-color:var(--brand)}
.m-tabs{position:sticky;top:56px;z-index:8;display:flex;gap:8px;overflow-x:auto;padding:8px 16px 12px;background:var(--bg);max-width:calc(var(--w) + 32px);margin:0 auto;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.m-tabs::-webkit-scrollbar{display:none}
.m-tabs a{white-space:nowrap;padding:8px 15px;border-radius:999px;background:var(--surface);border:1px solid var(--line);
  text-decoration:none;font-size:13px;font-weight:600;color:var(--ink2)}
.m-tabs a.on{background:var(--brand);border-color:var(--brand);color:#fff}

/* body */
.m-body{padding:6px 16px 30px;max-width:var(--w);margin:0 auto}
.cat{margin-bottom:26px}
.cat h2,.featured h2{font-size:17px;margin:18px 0 12px;display:flex;align-items:center;gap:8px}
.cat h2::after{content:'';flex:1;height:1px;background:var(--line)}
.list{display:flex;flex-direction:column;gap:10px}
.dish{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px;cursor:pointer;transition:.15s;align-items:flex-start}
.dish:active{transform:scale(.99)}
.dish .d-txt{flex:1;min-width:0}
.dish h3{font-size:15px;line-height:1.3;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dish p{margin:5px 0 0;font-size:13px;line-height:1.5;color:var(--ink2)}
.dish .price{margin-top:8px;font-size:14.5px}
.dish .price b{color:var(--brand);letter-spacing:-.01em}
.dish .price s{color:var(--ink2);font-size:12.5px;margin-inline-end:6px}
.dish .price b.promo{color:#0f9d58}
.d-img{flex:0 0 88px;width:88px;height:88px;border-radius:12px;overflow:hidden;background:var(--bg)}
.d-img img{width:100%;height:100%;object-fit:cover;display:block}
.bdg{font-size:10px;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--ink2);border:1px solid var(--line);font-weight:600}
.b-spicy{background:#fde8e5;color:#b23a1e;border-color:#f7cfc7}
.b-veggie{background:#e6f5ea;color:#1a7a3d;border-color:#c9e8d3}
.b-new{background:#e7efff;color:#2b56b8;border-color:#cddcf8}
.b-halal{background:#eaf6ec;color:#1c6b32;border-color:#cfe8d5}
.b-gluten_free{background:#fdf3e0;color:#8a5a00;border-color:#f2e1bd}

/* featured carousel */
.featured{margin-top:6px}
.feat-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.feat-scroll::-webkit-scrollbar{display:none}
.fcard{flex:0 0 150px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px;cursor:pointer;text-align:center}
.fimg{height:104px;border-radius:11px;overflow:hidden;background:var(--bg);display:grid;place-items:center;font-size:30px;margin-bottom:9px}
.fimg img{width:100%;height:100%;object-fit:cover}
.fcard b{display:block;font-size:13px;line-height:1.3}
.fcard i{font-style:normal;display:block;margin-top:5px;font-size:13px;font-weight:700;color:var(--brand)}
.noresult{text-align:center;color:var(--ink2);padding:30px 0}

/* footer */
.m-foot{text-align:center;max-width:var(--w);margin-left:auto;margin-right:auto;padding:28px 20px 10px;border-top:1px solid var(--line);color:var(--ink2);font-size:13px;margin-top:20px}
.m-foot p{margin:5px 0}
.m-foot .social{display:flex;gap:14px;justify-content:center;margin-bottom:10px}
.m-foot .social a{font-size:12.5px;text-decoration:none;padding:6px 14px;border:1px solid var(--line);border-radius:999px}
.powered{font-size:11.5px;opacity:.7;margin-top:14px!important}
.powered a{color:var(--brand);text-decoration:none}

/* sheet */
.sheet{position:fixed;inset:0;background:rgba(10,8,6,.55);display:flex;align-items:flex-end;justify-content:center;z-index:50;backdrop-filter:blur(2px)}
.sheet-in{background:var(--surface);width:100%;max-width:560px;border-radius:22px 22px 0 0;overflow:hidden;position:relative;
  max-height:88vh;overflow-y:auto;animation:up .22s ease}
@keyframes up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.sh-img img{width:100%;max-height:290px;object-fit:cover;display:block}
.sh-body{padding:20px 20px 30px;position:relative}
.sh-body h3{font-size:20px;padding-inline-end:36px}
.sh-body p{color:var(--ink2);line-height:1.6;font-size:14px;margin:10px 0 0}
.sh-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.sh-meta{margin-top:12px;font-size:12.5px;color:var(--ink2);border-top:1px solid var(--line);padding-top:10px}
.sh-price{margin-top:14px;font-size:20px;font-weight:700;color:var(--brand)}
.sh-price s{color:var(--ink2);font-size:15px;font-weight:400;margin-inline-end:8px}
.sh-close{position:absolute;top:14px;inset-inline-end:14px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);
  background:var(--bg);color:var(--ink);font-size:15px;cursor:pointer}
.wifi-l{font-size:17px!important;font-weight:700;color:var(--ink)!important;margin-top:14px!important}
.wifi-p{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px!important;letter-spacing:.06em;
  background:var(--bg);padding:11px;border-radius:11px;text-align:center;color:var(--ink)!important}

/* RTL / arabic */
[dir=rtl] body,[dir=rtl] .m-body{font-family:'Noto Kufi Arabic','Segoe UI',Tahoma,var(--font)}
[dir=rtl] .tagline{font-style:normal;font-family:inherit}
[dir=rtl] .dish{flex-direction:row}
[dir=rtl] .price,[dir=rtl] .sh-price{direction:ltr;unicode-bidi:isolate;text-align:right}
[dir=rtl] .fcard i{direction:ltr;unicode-bidi:isolate}

@media (min-width:1000px){
  :root{--w:1060px}
  .list{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
  .cat h2,.featured h2{font-size:19px}
  .m-hero-in{padding-bottom:32px}
  .fcard{flex-basis:172px}
}
@media (min-width:640px){
  .m-hero-in{padding:40px 20px 26px}
  .m-hero h1{font-size:32px}
  .dish{padding:16px}
  .d-img{flex-basis:104px;width:104px;height:104px}
  .sheet{align-items:center}
  .sheet-in{border-radius:22px;max-height:84vh}
}
