/* AFC Menu public menu. Components from the Ruhi digital menu, colours and fonts come from the per-brand theme block. */
:root{
  --sold-out-opacity:0.6;
  --fs-display:34px;--fs-h1:26px;--fs-h2:20px;--fs-h3:18px;--fs-body:16px;--fs-body-ar:17px;--fs-small:14px;--fs-small-ar:15px;--fs-caps:12px;--fs-price:17px;
  --lh-tight:1.15;--lh-body:1.5;--lh-body-ar:1.7;--tracking-caps:0.12em;--fw-regular:400;--fw-medium:500;--fw-bold:600;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--gutter:20px;
  --topbar-h:56px;--chipbar-h:52px;--tap-min:48px;--thumb:88px;--tile-h:112px;--sheet-max-h:85vh;--content-max:560px;
  --radius-xs:4px;--radius-sm:8px;--radius-pill:999px;--radius-sheet:20px;--content-wide:1200px;--gutter-wide:40px;--sidebar-w:248px;--modal-w:920px;--radius-modal:12px;
  --shadow-hover:0 6px 18px rgba(36,37,42,.10);--shadow-card:0 1px 2px rgba(36,37,42,.06);--shadow-bar:0 1px 0 var(--line);--shadow-sheet:0 -8px 32px rgba(0,0,0,.22);
  --ease:cubic-bezier(0.2,0.7,0.2,1);--dur-fast:150ms;--dur-sheet:280ms;
  --font-display:"Montserrat",sans-serif;--font-body:"Open Sans",sans-serif;--font-display-ar:"Cairo",sans-serif;--font-body-ar:"IBM Plex Sans Arabic",sans-serif;
  --brand-deep:#1f2a44;--surface:#fff;--surface-raised:#fff;--surface-sunken:#f2f2f2;--ink:#1a1a1a;--ink-strong:#000;--ink-muted:#555;--ink-on-deep:#fff;--accent:#7a5a1e;--accent-line:#8a6a2f;--accent-on-deep:#e6cf9a;--ink-on-deep-muted:#e6cf9a;--line:rgba(0,0,0,.14);--scrim:rgba(0,0,0,.5);--focus-ring:#1f2a44;--tag-veg:#2f6b45;
  --deep-a20:rgba(0,0,0,.2);--deep-a85:rgba(0,0,0,.85);--deep-a82:rgba(0,0,0,.82);--deep-a15:rgba(0,0,0,.15);
}
:root:lang(ar){--font-display:var(--font-display-ar);--font-body:var(--font-body-ar);--fs-body:var(--fs-body-ar);--fs-small:var(--fs-small-ar);--lh-body:var(--lh-body-ar);--tracking-caps:0}
@media (prefers-reduced-motion: reduce){:root{--dur-fast:0ms;--dur-sheet:0ms}}
/* ===== components (from Brian's mockup, logical properties only) ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;min-height:100vh}
#app{max-width:var(--content-max);margin-inline:auto;background:var(--surface);min-height:100vh}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
img{max-width:100%}
[hidden]{display:none !important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tbd{display:inline-block;border:1px dashed #b3403a;color:#8a2f2a;padding:2px 8px;border-radius:4px;font:12px/1.4 "Open Sans",sans-serif;direction:ltr;text-align:left;letter-spacing:0;text-transform:none}
noscript p{padding:var(--space-6) var(--gutter);margin:0}

/* landing */
body.is-landing{background:var(--brand-deep)}
.landing{min-height:100vh;min-height:100dvh;background:var(--brand-deep);color:var(--ink-on-deep);position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-12) var(--gutter) var(--space-8);overflow:hidden}
.landing::before{content:"";position:absolute;inset:0;background:var(--cover,none) center/cover;opacity:.28;mix-blend-mode:luminosity}
.landing::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--deep-a20) 0%,var(--deep-a85) 100%)}
.landing>*{position:relative;z-index:1}
.landing .logo{width:150px;height:auto;margin-top:96px}
.landing .rule{width:40px;height:1px;background:var(--accent-on-deep);margin:var(--space-10) auto var(--space-6)}
.landing .tag{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-display);line-height:var(--lh-tight);margin:0}
.landing .sub{font-size:var(--fs-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-on-deep-muted);margin:var(--space-3) 0 0}
.landing .actions{margin-top:auto;padding-top:var(--space-8);width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--space-4);align-items:center}
.seg{display:inline-flex;border:1px solid color-mix(in srgb,var(--accent-on-deep) 60%,transparent);border-radius:var(--radius-pill);padding:3px}
.seg a{min-width:96px;min-height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);color:var(--ink-on-deep);text-decoration:none;font-size:15px}
.seg a[aria-current]{background:rgba(255,255,255,.12)}
.seg a:lang(ar){font-family:var(--font-body-ar);font-size:16px}
.btn-primary{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;text-decoration:none;border-radius:var(--radius-pill);background:var(--accent-on-deep);color:var(--brand-deep);font-weight:var(--fw-bold);font-size:16px;letter-spacing:.04em}
html[dir=rtl] .btn-primary{letter-spacing:0}

/* top bar */
.topbar{position:sticky;top:0;z-index:5;height:var(--topbar-h);background:var(--brand-deep);color:var(--ink-on-deep);display:grid;grid-template-columns:var(--tap-min) 1fr auto;align-items:center;padding-inline:var(--space-1) var(--space-3)}
.topbar .back{color:var(--ink-on-deep);width:var(--tap-min);height:var(--tap-min);display:grid;place-items:center}
.topbar .back svg{width:22px;height:22px}
html[dir=rtl] .topbar .back svg{transform:scaleX(-1)}
.topbar .title{font-family:var(--font-display);font-size:20px;font-weight:var(--fw-medium);text-align:center;margin:0}
.topbar .title img{height:30px;width:auto;display:block;margin:auto}
.topbar .lang{min-height:var(--tap-min);padding-inline:var(--space-3);display:flex;align-items:center;color:var(--accent-on-deep);font-size:15px;text-decoration:none}
.topbar .lang:lang(ar){font-family:var(--font-body-ar);font-size:16px}
.topbar .lang:lang(en){font-family:"Open Sans",sans-serif}
svg.i{width:1em;height:1em}

/* menu home */
.home{padding:var(--space-6) var(--gutter) var(--space-10)}
.tiles{display:flex;flex-direction:column;gap:var(--space-3)}
.tile{position:relative;height:var(--tile-h);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:flex-end;text-decoration:none;color:#fff;background:var(--brand-deep)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--deep-a82) 0%,var(--deep-a15) 70%)}
html[dir=rtl] .tile::after{background:linear-gradient(270deg,var(--deep-a82) 0%,var(--deep-a15) 70%)}
.tile span{position:relative;z-index:1;padding:var(--space-4) var(--space-5);font-family:var(--font-display);font-size:24px;letter-spacing:.08em;text-transform:uppercase}
html[dir=rtl] .tile span{letter-spacing:0;font-size:26px}
.tile span::after{content:"";display:block;width:28px;height:1px;background:var(--accent-on-deep);margin-top:6px}
.kicker{font-size:var(--fs-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent);font-weight:var(--fw-bold);margin:var(--space-10) 0 var(--space-3)}
html[dir=rtl] .kicker{font-size:15px}
.home h2{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-h1);color:var(--ink-strong);margin:0 0 var(--space-3);line-height:var(--lh-tight)}
.home p{margin:0 0 var(--space-3);font-size:15px}
.home p.kicker{margin:var(--space-10) 0 var(--space-3)}
.home .welcome>.kicker:first-child{margin-top:var(--space-8)}
html[dir=rtl] .home p{font-size:16px}
.info{margin:0;padding:0;list-style:none;border-top:1px solid var(--accent-line)}
.info li{padding:var(--space-4) 0;border-bottom:1px solid var(--line)}
.info .lbl{font-size:var(--fs-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted);margin:0 0 2px}
html[dir=rtl] .info .lbl{font-size:14px}
.info a{color:var(--accent);font-weight:var(--fw-bold);text-decoration:none;min-height:var(--tap-min);display:inline-flex;align-items:center}
.info .v{margin:0;font-size:15px}
html[dir=rtl] .info .v{font-size:16px}
.legal{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--accent-line);font-size:13px;color:var(--ink-muted)}
.legal p{font-size:13px;margin:0 0 var(--space-2)}
html[dir=rtl] .legal p{font-size:14px}

/* menu page */
.tools{display:flex;gap:var(--space-2);padding:var(--space-4) var(--gutter) var(--space-2)}
.search{flex:1;min-width:0;min-height:var(--tap-min);display:flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-4);background:var(--surface-sunken);border-radius:var(--radius-pill);color:var(--ink-muted)}
.search svg{width:18px;height:18px;flex:none}
.search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:16px;color:var(--ink);min-height:44px;outline:0}
.search:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}
.search input::placeholder{color:var(--ink-muted);opacity:1}
.search input::-webkit-search-cancel-button{display:none}
.filter-btn{min-height:var(--tap-min);padding-inline:var(--space-4);border:1px solid var(--accent-line);border-radius:var(--radius-pill);display:flex;align-items:center;gap:var(--space-2);font-size:14px;color:var(--ink);white-space:nowrap}
.filter-btn svg{width:18px;height:18px}
.badge{min-width:20px;height:20px;border-radius:10px;background:var(--brand-deep);color:#fff;font-size:12px;display:inline-grid;place-items:center;padding-inline:5px}
.banner{margin:var(--space-2) var(--gutter) 0;padding:var(--space-3) var(--space-4);background:var(--surface-sunken);border-radius:var(--radius-sm);font-size:14px;display:flex;gap:var(--space-3);align-items:center;justify-content:space-between}
.banner button{color:var(--accent);font-weight:var(--fw-bold);min-height:var(--tap-min);padding-inline:var(--space-2)}
.chips{position:sticky;top:var(--topbar-h);z-index:4;background:var(--surface);height:var(--chipbar-h);display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;padding:var(--space-2) var(--gutter);box-shadow:var(--shadow-bar);margin-top:var(--space-2);align-items:center}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:36px;padding-inline:var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--line);display:flex;align-items:center;white-space:nowrap;font-size:var(--fs-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink);text-decoration:none;font-weight:var(--fw-bold)}
html[dir=rtl] .chip{font-size:14px;font-weight:var(--fw-regular)}
.chip[aria-current]{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--ink-on-deep)}
.section{padding:var(--space-8) var(--gutter) var(--space-2);scroll-margin-top:calc(var(--topbar-h) + var(--chipbar-h))}
.section.no-chips{scroll-margin-top:var(--topbar-h)}
.section h2{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-h2);line-height:1.3;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-strong);margin:0}
html[dir=rtl] .section h2{letter-spacing:0;font-size:22px}
.section h2::after{content:"";display:block;width:32px;height:1px;background:var(--accent-line);margin-top:var(--space-3)}
.section.untitled{padding-top:var(--space-4)}
.items{list-style:none;margin:var(--space-4) 0 0;padding:0}
.section.untitled .items{margin-top:0}
.card{display:flex;gap:var(--space-4);width:100%;text-align:start;padding:var(--space-4) 0;border-bottom:1px solid var(--line);min-height:72px;align-items:flex-start}
.card .txt{flex:1;min-width:0;display:block}
.card .row1{display:flex;align-items:baseline;gap:var(--space-3)}
.card .h3{flex:1;display:block;margin:0;font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:1.25;color:var(--ink-strong)}
html[dir=rtl] .card .h3{font-size:19px;font-weight:var(--fw-medium)}
.en2{display:block;font-family:var(--font-body);font-size:var(--fs-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent);font-weight:var(--fw-bold);margin-top:3px}
.price{font-size:var(--fs-price);font-weight:var(--fw-bold);color:var(--ink-strong);white-space:nowrap;font-family:"Open Sans",sans-serif;font-variant-numeric:tabular-nums}
.price small{font-size:11px;letter-spacing:.08em;color:var(--ink-muted);font-weight:var(--fw-bold);margin-inline-end:3px}
html[dir=rtl] .price small{font-family:var(--font-body-ar);letter-spacing:0;font-size:13px;margin-inline:3px 0}
.sold{font-size:13px;font-weight:var(--fw-bold);color:var(--ink-muted);white-space:nowrap;border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px 10px}
.card.is-sold{opacity:var(--sold-out-opacity)}
.desc{margin:var(--space-2) 0 0;font-size:var(--fs-small);color:var(--ink-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;flex-wrap:wrap;gap:6px var(--space-3);margin-top:var(--space-2);align-items:center;font-size:12px;color:var(--ink-muted)}
html[dir=rtl] .meta{font-size:13px}
.alg{display:inline-flex;align-items:center;gap:4px}
.alg svg{width:14px;height:14px;color:var(--accent-line);flex:none}
.veg{color:var(--tag-veg);border:1px solid var(--tag-veg);border-radius:var(--radius-pill);padding:0 8px;font-size:12px}
.thumb{flex:none;width:var(--thumb);height:var(--thumb);border-radius:var(--radius-xs);object-fit:cover;background:var(--surface-sunken)}
.empty{padding:var(--space-10) var(--gutter);text-align:center;color:var(--ink-muted)}
.empty button{margin-top:var(--space-3);color:var(--accent);font-weight:var(--fw-bold);min-height:var(--tap-min);padding-inline:var(--space-4)}
.page-foot{padding:var(--space-8) var(--gutter) var(--space-12);font-size:13px;color:var(--ink-muted)}
html[dir=rtl] .page-foot{font-size:14px}
.page-foot p{margin:0 0 var(--space-2)}
.page-foot .rule{width:32px;height:1px;background:var(--accent-line);margin-bottom:var(--space-4)}

/* sheets */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:10}
.sheet{position:fixed;inset-inline:0;margin-inline:auto;max-width:var(--content-max);bottom:0;max-height:var(--sheet-max-h);z-index:11;background:var(--surface-raised);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-sheet);display:flex;flex-direction:column;overflow:hidden;animation:up var(--dur-sheet) var(--ease)}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:rgba(0,0,0,.25);position:absolute;inset-inline:0;margin-inline:auto;top:8px;z-index:2}
.sheet .body{overflow-y:auto;overscroll-behavior:contain}
.sheet .photo{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--surface-sunken)}
.sheet .inner{padding:var(--space-5) var(--gutter) var(--space-4)}
.sheet h2{margin:0;font-family:var(--font-display);font-size:24px;font-weight:var(--fw-medium);line-height:1.2;color:var(--ink-strong)}
.sheet .row1{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}
.sheet .price{font-size:20px;padding-top:4px}
.sheet .full{margin:var(--space-4) 0;font-size:15px;color:var(--ink)}
html[dir=rtl] .sheet .full{font-size:16px}
.pills{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-3)}
.pill{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding-inline:var(--space-3);border:1px solid var(--accent-line);border-radius:var(--radius-pill);font-size:13px;color:var(--ink)}
.pill svg{width:16px;height:16px;color:var(--accent-line)}
.pill.veg{border-color:var(--tag-veg);color:var(--tag-veg)}
.sheet .note{font-size:13px;color:var(--ink-muted);border-top:1px solid var(--line);padding-top:var(--space-3);margin:var(--space-3) 0 0}
html[dir=rtl] .sheet .note{font-size:14px}
.sheet .foot{display:flex;justify-content:flex-start;padding:var(--space-2) var(--space-3) var(--space-4);border-top:1px solid var(--line);background:var(--surface-raised)}
.sheet .close{width:var(--tap-min);height:var(--tap-min);border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}
.sheet .close svg{width:20px;height:20px}
.fsheet .inner{padding-top:var(--space-6)}
.fsheet h2{font-size:22px}
.toggles{list-style:none;margin:var(--space-4) 0 0;padding:0}
.toggles label{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-min);border-bottom:1px solid var(--line);cursor:pointer}
.toggles input{width:22px;height:22px;accent-color:var(--brand-deep);flex:none}
.toggles svg{width:18px;height:18px;color:var(--accent-line)}
.clear-link{color:var(--accent);font-weight:var(--fw-bold);min-height:var(--tap-min);padding-inline:var(--space-2)}
.fhead{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}


/* ===== phone-neutral wrappers ===== */
.side,.list,.welcome,.infocol{display:contents}

/* ===== tablet >= 768 ===== */
@media (min-width:768px){
  :root{--gutter:0px}
  #app{max-width:var(--content-wide);padding-inline:var(--gutter-wide)}
  .topbar{margin-inline:calc(-1*var(--gutter-wide));padding-inline:var(--gutter-wide);box-shadow:0 0 0 100vmax var(--brand-deep);clip-path:inset(0 -100vmax)}
  body.is-landing #app{max-width:none;padding:0}
  .landing{padding-inline:var(--space-8)}
  .landing .logo{width:200px}
  .landing .tag{font-size:44px}
  .tiles{flex-direction:row;gap:var(--space-4)}
  .tile{flex:1;height:220px}
  .home{display:grid;grid-template-columns:1.2fr 1fr;column-gap:var(--space-12);padding-block:var(--space-8) var(--space-12)}
  .tiles,.legal{grid-column:1/-1}
  .home p{font-size:16px;max-width:62ch}
  .home .legal p{font-size:13px;max-width:none}
  html[dir=rtl] .legal p{font-size:14px}
  .welcome,.infocol{display:block}
  .welcome>.kicker:first-child,.infocol>.kicker:first-child{margin-top:var(--space-8)}
  .items{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-8)}
  .chips{padding-inline:0}
  .card{align-self:stretch}
  /* item modal replaces the bottom sheet */
  .sheet{inset:0;margin:auto;max-width:none;width:min(var(--modal-w),calc(100vw - 2*var(--gutter-wide)));height:min(80vh,560px);border-radius:var(--radius-modal);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr);animation:fade var(--dur-sheet) var(--ease)}
  .sheet.nophoto{grid-template-columns:1fr;width:min(560px,calc(100vw - 2*var(--gutter-wide)));height:fit-content;max-height:80vh}
  .sheet.fsheet{grid-template-columns:1fr;width:min(480px,calc(100vw - 2*var(--gutter-wide)));height:fit-content;max-height:80vh}
  .sheet .grab{display:none}
  .sheet .body,.sheet .foot{display:contents}
  .sheet .photo{height:100%;aspect-ratio:auto;object-fit:cover;min-height:0}
  .sheet .inner{padding:var(--space-10);overflow-y:auto;min-height:0;overscroll-behavior:contain}
  .sheet .close{position:absolute;inset-block-start:var(--space-3);inset-inline-end:var(--space-3);background:var(--surface-raised);z-index:3}
  .sheet .row1{padding-inline-end:var(--space-8)}
  @keyframes fade{from{opacity:0}to{opacity:1}}
}

/* ===== desktop >= 1100 ===== */
@media (min-width:1100px){
  .topbar{height:64px}
  body.is-menu .topbar{grid-template-columns:auto 1fr auto auto auto;column-gap:var(--space-3)}
  .topbar .title{text-align:start;font-size:22px}
  .topbar .title img{margin:0}
  .topbar :focus-visible{outline-color:var(--accent-on-deep)}
  .topbar .search{width:280px;flex:none;min-height:44px;background:rgba(255,255,255,.10);color:var(--ink-on-deep)}
  .topbar .search input{color:var(--ink-on-deep)}
  .topbar .search input::placeholder{color:var(--accent-on-deep)}
  .topbar .filter-btn{min-height:44px;border-color:color-mix(in srgb,var(--accent-on-deep) 60%,transparent);color:var(--ink-on-deep)}
  .topbar .badge{background:var(--accent-on-deep);color:var(--brand-deep)}
  .tools{display:none}
  body.is-menu #app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;column-gap:var(--space-12);align-content:start}
  body.is-menu.no-side #app{grid-template-columns:1fr}
  body.is-menu .topbar,body.is-menu .banner{grid-column:1/-1}
  .side{display:block;position:sticky;top:calc(64px + var(--space-8));align-self:start;max-height:calc(100vh - 64px - var(--space-12));overflow-y:auto;margin-top:var(--space-8)}
  .list{display:block;min-width:0}
  .chips{display:flex;flex-direction:column;align-items:stretch;gap:2px;height:auto;padding:0;box-shadow:none;position:static;overflow:visible;margin:0;background:none}
  .chip{border:0;border-radius:0;min-height:40px;padding-inline:var(--space-4);white-space:normal;line-height:1.35;text-align:start;border-inline-start:1px solid var(--line);text-transform:none;letter-spacing:.04em}
  html[dir=rtl] .chip{letter-spacing:0;font-size:15px}
  .chip[aria-current]{background:none;color:var(--brand-deep);border-inline-start:2px solid var(--accent-line)}
  .section{padding-inline:0;scroll-margin-top:calc(64px + var(--space-6))}
  .section.no-chips{scroll-margin-top:calc(64px + var(--space-6))}
  .section h2{font-size:24px}
  html[dir=rtl] .section h2{font-size:26px}
  .thumb{width:104px;height:104px}
  .tile{height:280px}
  .tile span{font-size:30px}
}

/* ===== hover (pointer devices only) ===== */
@media (min-width:768px) and (hover:hover){
  .card{transition:background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);padding-inline:var(--space-3);margin-inline:calc(-1*var(--space-3));border-radius:var(--radius-sm)}
  .card:hover{background:var(--surface-raised);box-shadow:var(--shadow-hover)}
  .card .thumb{transition:transform var(--dur-fast) var(--ease)}
  .card:hover .thumb{transform:scale(1.03)}
  .tile img{transition:transform 400ms var(--ease)}
  .tile:hover img{transform:scale(1.04)}
  .tile span::after{transition:width 400ms var(--ease)}
  .tile:hover span::after{width:48px}
  .chip:hover{color:var(--brand-deep)}
  .chip[aria-current]:hover{color:var(--brand-deep)}
  .info a:hover,.topbar .lang:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent-line)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto !important}.sheet{animation:none}.tile img,.tile span::after,.card,.card .thumb{transition:none !important}.tile:hover img,.card:hover .thumb{transform:none}}

.landing .logo-text{font-family:var(--font-display);font-weight:500;font-size:40px;line-height:1.1;margin:96px 0 0}
.landing .logo{max-height:160px;object-fit:contain}
