/* Restaurant platform — guest QR ordering (mobile first, light brand UI; tokens from the child theme's main.css). */
/* Client colours: rs_brand()["colors"] (child theme) overrides these, see rs_pf_render_shell(). */
:root{--rs-brand:#7A0610;--rs-accent:#D67B27;--rs-brand-deep:#1A0204;--rs-brand-line:#2a0a0d;--rs-brand-soft:#FDF1EF;--rs-accent-soft:#F8E8D6}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body.guest{margin:0;min-height:100vh;background:var(--bone-100,#F7F5F0);color:#1E1E1E;font:400 15px/1.5 var(--font-sans);padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.guest *{box-sizing:border-box}
.guest button{font:inherit;cursor:pointer}
.guest :focus-visible{outline:3px solid var(--rs-accent);outline-offset:2px}
.ic{display:inline-flex}
.ghead{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 16px;background:linear-gradient(180deg,var(--rs-brand-deep),var(--rs-brand-mid,#5E0309));color:#fff}
.ghead__logo{width:92px;height:auto}
.ghead__table{flex:1;margin:0;text-align:center;font:400 22px/1 'Bebas Neue',Impact,sans-serif;letter-spacing:.08em}
[dir=rtl] .ghead__table{font-family:var(--font-arabic);font-weight:700;font-size:18px;letter-spacing:0}
.ghead__lang{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:transparent;color:#fff;font-weight:700}
.gapp{max-width:720px;margin:0 auto}
.gcats{position:sticky;top:60px;z-index:15;display:flex;gap:8px;overflow-x:auto;padding:10px 16px;background:rgba(247,245,240,.96);border-bottom:1px solid #E5E0D8;scrollbar-width:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.gcats::-webkit-scrollbar{display:none}
.gcats a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid #E5E0D8;border-radius:999px;background:#fff;color:#1E1E1E;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}
.gcats a.is-active{background:var(--rs-brand);border-color:var(--rs-brand);color:#fff}
.gtools{display:flex;gap:8px;padding:12px 16px 0}
.gtools button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid #E5E0D8;border-radius:10px;background:#fff;font-size:13px;font-weight:700;color:var(--rs-brand)}
.gtools button:disabled{opacity:.55}
.gsec{padding:20px 16px 4px}
.gsec h2{display:flex;align-items:center;gap:10px;margin:0 0 6px;font:400 26px/1.1 'Bebas Neue',Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--rs-brand)}
.gsec h2::after{content:"";flex:1;height:1px;background:#E5E0D8}
[dir=rtl] .gsec h2{font-family:var(--font-arabic);font-weight:700;font-size:20px;text-transform:none;letter-spacing:0}
.gpart{margin:28px 16px 0;padding:10px 0;text-align:center;font:400 46px/1 var(--font-script);color:var(--rs-brand-bright,#9B2022)}
.gdish{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #EFEBE4}
.gdish__txt{flex:1;min-width:0}
.gdish__name{font:600 16px/1.3 var(--font-serif)}
.gdish__desc{display:block;margin-top:2px;font-size:12.5px;color:#5A5A5A}
.gdish__price{display:block;margin-top:4px;font-weight:700;color:var(--rs-brand);font-size:14px}
.gbadge{display:inline-block;margin-inline-start:6px;padding:1px 6px;border-radius:4px;background:var(--rs-accent-soft);color:#9A5214;font:700 10px/1.5 'Montserrat',sans-serif;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.gadd{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--rs-brand);color:#fff;box-shadow:0 4px 10px color-mix(in srgb,var(--rs-brand) 25%,transparent);transition:transform .12s}
.gadd:active{transform:scale(.92)}
.gdish--off{opacity:.5}
.gdish--off .gadd{display:none}
.gqty{min-width:22px;text-align:center;font-weight:800;color:var(--rs-brand)}
.gcart{position:fixed;inset-inline:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:25;display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 8px 8px 16px;border:0;border-radius:16px;background:var(--rs-brand);color:#fff;box-shadow:0 12px 30px color-mix(in srgb,var(--rs-brand-deep) 35%,transparent);transform:translateY(160%);transition:transform .35s cubic-bezier(.2,.7,.2,1);max-width:696px;margin:0 auto}
[dir=rtl] .gcart{padding:8px 16px 8px 8px}
.gcart.is-on{transform:none}
.gcart__n{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:999px;background:#fff;color:var(--rs-brand);font-weight:800}
.gcart__lbl{flex:1;font-weight:700;text-align:start}
.gcart__tot{padding:10px 14px;border-radius:12px;background:rgba(0,0,0,.2);font-weight:800}
.sheet{width:100%;max-width:640px;max-height:90vh;margin:auto auto 0;padding:0;border:0;border-radius:20px 20px 0 0;background:#fff;color:#1E1E1E;overflow:auto}
@media (min-width:700px){.sheet{margin:auto;border-radius:20px}}
.sheet[open]{animation:up .3s cubic-bezier(.2,.7,.2,1)}
.sheet::backdrop{background:rgba(18,18,18,.5)}
.sheet__head{position:sticky;top:0;display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border-bottom:1px solid #EFEBE4;z-index:1}
.sheet__head h2{flex:1;margin:0;font:600 20px/1.25 var(--font-serif)}
.sheet__body{padding:16px}
.sheet__foot{position:sticky;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #EFEBE4}
.x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:#F7F5F0}
.lbl{display:block;margin:4px 0 8px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5A5A5A}
[dir=rtl] .lbl{letter-spacing:0}
.opts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.opt{min-height:44px;padding:0 14px;border:1px solid #E5E0D8;border-radius:999px;background:#fff;font-weight:600;font-size:14px}
.opt[aria-pressed=true]{background:var(--rs-brand);border-color:var(--rs-brand);color:#fff}
.gbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border:0;border-radius:12px;background:var(--rs-brand);color:#fff !important;font-weight:700;font-size:16px}
.gbtn:disabled{opacity:.5}
.gbtn--ghost{background:#F7F5F0;color:var(--rs-brand) !important}
.cl{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #EFEBE4}
.cl__n{flex:1;min-width:0;font-weight:600}
.cl__n small{display:block;font-weight:500;color:#5A5A5A}
.cl__p{min-width:72px;text-align:end;font-weight:700}
.step{display:inline-flex;align-items:center;border:1px solid #E5E0D8;border-radius:999px}
.step button{width:40px;height:40px;border:0;background:transparent;border-radius:50%}
.step span{min-width:22px;text-align:center;font-weight:800}
.gnote{width:100%;min-height:72px;margin-top:12px;padding:10px 12px;border:1px solid #E5E0D8;border-radius:10px;font:inherit;resize:vertical}
.gtotal{display:flex;justify-content:space-between;margin:12px 0 4px;font-size:20px;font-weight:800}
.gvat{margin:0 0 12px;font-size:12px;color:#5A5A5A}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gdone{padding:40px 24px 24px;text-align:center}
.gdone img{width:180px;margin:0 auto 12px}
.gdone h2{margin:0 0 8px;font:400 34px/1 'Bebas Neue',Impact,sans-serif;letter-spacing:.04em;color:var(--rs-brand)}
[dir=rtl] .gdone h2{font-family:var(--font-arabic);font-weight:700;font-size:26px}
.ground{margin-bottom:12px;padding:12px;border:1px solid #EFEBE4;border-radius:12px}
.ground__head{display:flex;justify-content:space-between;font-weight:700;margin-bottom:8px}
.progress{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.progress span{height:6px;border-radius:3px;background:#EFEBE4}
.progress span.on{background:#27AE60}
.progress-lbl{margin-top:6px;font-size:13px;font-weight:700;color:#1B7A45}
.ginvalid{padding:60px 24px;text-align:center}
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:100;transform:translateX(-50%);max-width:min(92vw,520px);padding:12px 18px;border-radius:12px;background:#1E1E1E;color:#fff;font-weight:600;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.toast--error{background:#C0392B}.toast--ok{background:#1B7A45}
@keyframes up{from{transform:translateY(40px);opacity:0}}
@media (prefers-reduced-motion:reduce){.guest *,.guest *::before,.guest *::after{animation:none!important;transition:none!important}}
.dim{color:#5A5A5A;font-size:13px}

/* Pickup (/commander/) */
.gpick{margin:12px 16px 0;padding:12px 14px;border-radius:12px;background:#F7F5F0;border:1px solid #E5E0D8}
.gpick>p{margin:0;font-size:14px;color:#1A1A1A}
.gpick .gtools{padding:10px 0 0}
.gpick--off{background:var(--rs-brand-soft);border-color:#E8B4AD}
.gpick--off>p{color:var(--rs-brand);font-weight:700}
.gtools__a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid #E5E0D8;border-radius:10px;background:#fff;font-size:13px;font-weight:700;color:var(--rs-brand);text-decoration:none}
.gform{margin-top:16px;padding-top:12px;border-top:1px solid #EFEBE4}
.gin{display:block;width:100%;min-height:48px;margin-bottom:12px;padding:0 12px;border:1px solid #E5E0D8;border-radius:10px;background:#fff;font:inherit;font-size:16px;color:#1A1A1A}
.gin:focus{outline:2px solid var(--rs-accent);outline-offset:1px}
.gconsent{display:flex;align-items:flex-start;gap:10px;margin:4px 0 10px;font-size:13px;color:#3A3A3A}
.gconsent input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--rs-brand)}
.gtrack{margin-bottom:14px;padding:14px;border-radius:12px;background:#F7F5F0}
.gtrack__msg{margin:0;font-size:17px;font-weight:700;color:#1A1A1A}
.gtrack--ready{background:#E8F6EE}.gtrack--ready .gtrack__msg{color:#1B7A45}
.gtrack--rejected{background:var(--rs-brand-soft)}.gtrack--rejected .gtrack__msg{color:var(--rs-brand)}
.gtrack+.progress{margin-bottom:16px;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.guest--pickup .sheet__foot{gap:8px}
.gmode{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:14px;padding:4px;border-radius:12px;background:#EFEBE4}
.gmode button{min-height:44px;border:0;border-radius:9px;background:transparent;font:inherit;font-weight:700;color:#5A5A5A}
.gmode button[aria-pressed=true]{background:var(--rs-brand);color:#fff}
.gloc{margin:0 0 12px;min-height:44px;font-size:14px}
.gsub{display:flex;justify-content:space-between;font-size:14px;color:#3A3A3A;margin-top:6px}
.gwarn{color:var(--rs-brand);font-weight:700}

/* Booking (/reserver/) */
.rbook{max-width:640px;margin:0 auto;padding-bottom:40px}
.rsec{display:grid;gap:4px;margin:12px 16px;padding:16px;border-radius:14px;background:#fff;border:1px solid #E5E0D8}
.rsec .lbl{margin-top:12px}
.rtitle{margin:0;font:400 32px/1.05 'Bebas Neue',Impact,sans-serif;letter-spacing:.03em;color:var(--rs-brand)}
.rparty{display:flex;align-items:center;gap:18px}
.rparty b{min-width:36px;text-align:center;font-size:26px}
.rparty__b{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #E5E0D8;border-radius:50%;background:#F7F5F0;color:var(--rs-brand)}
.rparty__b:disabled{opacity:.4}
.rdays{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.rday{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:86px;min-height:56px;padding:6px 10px;border:1px solid #E5E0D8;border-radius:12px;background:#fff;font:inherit;font-size:13px;font-weight:700;color:#1A1A1A;text-transform:capitalize}
.rday small{font-weight:600;color:#8A8A8A;text-transform:none}
.rday:disabled{opacity:.5}
.rday[aria-pressed=true],.rslot[aria-pressed=true]{background:var(--rs-brand);border-color:var(--rs-brand);color:#fff}
.rslots{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.rslot{min-height:46px;border:1px solid #E5E0D8;border-radius:10px;background:#fff;font:inherit;font-weight:700;color:#1A1A1A}
.rslot:disabled{background:#F2EFEA;color:#B0AAA0;text-decoration:line-through}
.rsum{margin:0;font-size:16px;font-weight:700}
.rsec .gbtn{margin-top:10px}
.rdone{justify-items:center;text-align:center}
.rdone img{width:150px;height:auto}
.rdone--cancelled .rtitle,.rdone--rejected .rtitle{color:#5A5A5A}
.rdone .gbtn{width:100%}

/* Review (/avis/) */
.wstars{display:flex;justify-content:center;gap:2px;margin-top:10px}
.wstars .wstar{flex:0 1 48px;height:52px;padding:0;border:0;background:none;font:400 42px/1 Arial,sans-serif;color:#DDD5C8;cursor:pointer}
.wstars .wstar.is-on{color:var(--rs-accent)}
.wstars__lbl{margin:0;text-align:center;font-weight:700;color:var(--rs-brand)}
.wtags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.wtags .rday{min-height:44px;min-width:0}
.rsec{min-width:0}.rsec .gin,.rsec .gnote{box-sizing:border-box;max-width:100%}
.gpromo{display:inline-block;margin-inline-end:6px;padding:1px 7px;border-radius:999px;background:var(--rs-accent);color:#fff;font-size:12px;font-weight:800}
.gdish__was{margin-inline-end:6px;color:#9A938A;font-weight:400}

/* Loyalty / gift card (/carte/) */
.lcardwrap{justify-items:stretch}
.lcard{position:relative;display:grid;gap:10px;padding:20px;border-radius:18px;background:linear-gradient(135deg,var(--rs-brand) 0%,var(--rs-brand-dark,#3d0308) 100%);color:#fff;box-shadow:0 10px 30px color-mix(in srgb,var(--rs-brand) 30%,transparent);aspect-ratio:1.586/1}
.lcard__top{display:flex;justify-content:space-between;align-items:center}
.lcard__prog{font:400 26px/1 'Bebas Neue',Impact,sans-serif;letter-spacing:.05em}
.lcard__tag{padding:2px 8px;border-radius:999px;background:var(--rs-accent);color:var(--rs-brand-deep);font-size:11px;font-weight:800;text-transform:uppercase}
.lcard__name{margin:0;font-size:15px;opacity:.9}
.lcard__nums{display:flex;gap:24px;align-self:end}
.lcard__nums div{display:grid}
.lcard__nums b{font:400 34px/1 'Bebas Neue',Impact,sans-serif;letter-spacing:.03em;color:var(--rs-accent-soft)}
.lcard__nums span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.lcard__code{margin:0;font:600 15px/1 'Courier New',monospace;letter-spacing:.12em;opacity:.9}
.lcard__scan{display:grid;justify-items:center;margin-top:8px}
.lcard__qr{width:180px;height:180px;padding:10px;background:#fff;border-radius:12px}
.wbtn{display:flex;align-items:center;justify-content:center;min-height:52px;margin-top:10px;border-radius:12px;background:#000;color:#fff !important;font-weight:700;text-decoration:none}
.wbtn--google{background:#1f1f1f}
.lrew--ok .cl__p{color:#1B7A45;font-weight:700}
/* Menu photos (only when the restaurant added them) */
.gdish__img{flex:0 0 72px;width:72px;height:72px;padding:0;border:0;border-radius:12px;overflow:hidden;background:#EFEBE4;cursor:pointer}
.gdish__img img{display:block;width:100%;height:100%;object-fit:cover}
.gsec__img{display:block;width:100%;height:auto;aspect-ratio:4/3;max-height:220px;margin:4px 0 8px;border-radius:14px;object-fit:cover;background:#EFEBE4}
.gsheet__img{display:block;width:100%;height:auto;aspect-ratio:4/3;margin:0 0 12px;border-radius:14px;object-fit:cover;background:#EFEBE4}
.gsheet__img--sm{max-height:180px}
