/* Guest menu templates – shared by the app (screen + A4 print) and the landing-page previews.
   Everything is sized in em on .gm (set --gfs). Accent colour comes from the restaurant (--mc, already darkened to pass WCAG AA on white). */
.gm{--ink:#20201E;--soft:#4A4944;--rule:#DEDDD5;font-size:var(--gfs,16px);color:var(--ink);background:#FFFEFB;padding:2.6em 2.8em 2em;line-height:1.4;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-feature-settings:"kern","liga";text-align:left;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
.gm *{box-sizing:border-box}
.gm :where(h1,h2,h3,p){margin:0;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit}
.gm-head{margin-bottom:1.8em}
.gm-logo{display:block;max-height:4em;max-width:13em;width:auto;object-fit:contain;margin-bottom:.8em;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.gm-center{text-align:center}.gm-center .gm-logo{margin-left:auto;margin-right:auto}
.gm-name{font-weight:600;font-size:.82em;letter-spacing:.14em;text-transform:uppercase;color:var(--mc)}
.gm-line{font-size:.78em;color:var(--soft);margin-top:.3em}
.gm-tw{margin-top:.7em}
.gm-title{font-family:Fraunces,Georgia,"Times New Roman",serif;font-weight:400;font-size:2.6em;line-height:1.02;letter-spacing:-.015em;font-variation-settings:"opsz" 96;color:var(--ink)}
.gm-date{font-size:.86em;color:var(--soft);margin-top:.5em}
.gm-course{margin-top:1.5em;break-inside:avoid-page}
.gm-course:first-child{margin-top:0}
.gm-ch{font-size:.78em;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mc);margin-bottom:.55em;break-after:avoid}
.gm-item{display:flex;gap:.8em;padding:.6em 0;break-inside:avoid}
.gm-body{flex:1;min-width:0}
.gm-row{display:flex;align-items:baseline;gap:.5em}
.gm-dn{font-family:Fraunces,Georgia,serif;font-size:1.18em;font-weight:500;line-height:1.2;min-width:0}
.gm-lead{flex:1;min-width:1em;border-bottom:1px dotted #A9A79D;transform:translateY(-.25em)}
.gm-pr{font-variant-numeric:tabular-nums lining-nums;font-weight:600;white-space:nowrap;font-size:1em}
.gm-desc{color:var(--soft);font-size:.9em;margin-top:.2em}
.gm-al{font-size:.78em;color:#3E3D39;margin-top:.35em;line-height:1.45}
.gm-alk{font-weight:600;color:var(--ink)}
.gm-code{color:var(--soft)}
.gm-unrev{display:inline-block;color:#7A3412;background:#FFF1E4;border:1px solid #E7B994;border-radius:4px;padding:.15em .5em;font-weight:600;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.gm-item.is-unrev .gm-dn{color:#5A4A3C}
.gm-empty{color:var(--soft);font-style:italic;padding:1.4em 0;text-align:center;border:1px dashed var(--rule);border-radius:6px}
.gm-foot{margin-top:2em;padding-top:.9em;border-top:1px solid var(--rule);font-size:.72em;color:var(--soft)}
.gm-ask{font-weight:600;color:var(--ink);font-size:1.12em;margin-bottom:.35em}
.gm-legal{line-height:1.45}

/* 1 · Neighborhood Bistro – classic, centred, serif, dotted leaders */
.tpl-bistro .gm-title{font-style:italic;font-size:2.9em}
.tpl-bistro .gm-head{padding-bottom:1.2em;border-bottom:1px solid var(--mc-line)}
.tpl-bistro .gm-ch{display:flex;align-items:center;gap:.9em;justify-content:center;text-align:center;font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;font-size:1.3em;margin:0 0 .4em}
.tpl-bistro .gm-ch:before,.tpl-bistro .gm-ch:after{content:"";flex:1;max-width:5em;border-top:1px solid var(--mc-line)}
.tpl-bistro .gm-desc{font-style:italic;font-family:Fraunces,Georgia,serif;font-size:.95em}
.tpl-bistro .gm-foot{text-align:center}

/* 2 · Modern Café – sans, airy, coloured course tabs, no leaders */
.tpl-cafe{font-family:Inter,system-ui,sans-serif}
.tpl-cafe .gm-head{border-left:.35em solid var(--mc);padding-left:1em}
.tpl-cafe .gm-head.gm-center{border-left:0;padding-left:0;border-top:.3em solid var(--mc);padding-top:1em}
.tpl-cafe .gm-title{font-family:Inter,system-ui,sans-serif;font-weight:700;font-size:2.3em;letter-spacing:-.03em;line-height:1.05}
.tpl-cafe .gm-ch{display:inline-block;font-weight:700;font-size:.74em;background:var(--mc-soft);color:var(--mc);border-radius:99px;padding:.35em .9em;letter-spacing:.1em;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tpl-cafe .gm-item{border-bottom:1px solid #ECEBE4}
.tpl-cafe .gm-course .gm-item:last-child{border-bottom:0}
.tpl-cafe .gm-dn{font-family:Inter,system-ui,sans-serif;font-weight:600;font-size:1.06em;letter-spacing:-.01em}
.tpl-cafe .gm-lead{border:0}
.tpl-cafe .gm-pr{color:var(--mc)}

/* 3 · Daily Specials – bold serif headline band, numbered dishes */
.tpl-specials .gm-head{background:var(--mc);color:#fff;padding:1.3em 1.4em 1.2em;border-radius:4px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tpl-specials .gm-name{color:#fff;opacity:.92}
.tpl-specials .gm-line,.tpl-specials .gm-date{color:#fff;opacity:.9}
.tpl-specials .gm-title{color:#fff;font-weight:600;font-size:3em;letter-spacing:-.025em}
.tpl-specials .gm-ch{font-family:Fraunces,Georgia,serif;font-weight:600;text-transform:none;letter-spacing:-.005em;font-size:1.35em;color:var(--ink);border-bottom:2px solid var(--mc);padding-bottom:.2em}
.tpl-specials .gm-no{flex:none;width:1.9em;height:1.9em;border-radius:50%;border:1.5px solid var(--mc);color:var(--mc);display:grid;place-items:center;font-weight:700;font-size:.9em;margin-top:.1em;font-variant-numeric:tabular-nums}
.tpl-specials .gm-dn{font-weight:600}
.tpl-specials .gm-lead{border-bottom:1px solid var(--rule)}
.tpl-specials .gm-pr{font-family:Fraunces,Georgia,serif;font-size:1.15em}

/* print + off-screen measuring clone (see fitGuestPrint in app.js) */
.gm-measure{font-size:10.5pt!important;padding:0!important;background:#fff!important}
@media print{
  .guest-menu .gm{--gfs:calc(10.5pt * var(--gz,1));padding:0;background:#fff}
}

/* Staff allergen chart (A4 landscape) – shared by the app sheet view and landing previews. */
.sheet{background:#fff;width:277mm;min-height:190mm;margin:0 auto;padding:10mm 10mm 8mm;color:#000;box-shadow:0 2px 10px rgba(0,0,0,.15);transform-origin:top left}
.sh-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #000;padding-bottom:3mm;margin-bottom:4mm}
.sh-title{font-size:20pt;font-weight:800;margin:0;line-height:1.1}
.sh-sub{font-size:11pt;margin-top:1mm}
.sh-date{font-size:14pt;font-weight:700;text-align:right}
.sh-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10.5pt}
.sh-table th,.sh-table td{border:1px solid #444;padding:1.6mm 1mm;text-align:center;vertical-align:middle}
.sh-table th.dish,.sh-table td.dish{text-align:left;width:31%;padding-left:2mm}
.sh-table thead th{background:#F1F0EA;font-weight:700;vertical-align:bottom}
.sh-table thead th .vh{display:block;writing-mode:vertical-rl;transform:rotate(180deg);font-size:8.5pt;font-weight:600;margin:0 auto;height:30mm;white-space:nowrap;text-align:left}
.sh-table thead th .lt{display:block;font-size:11pt;font-weight:800;margin-top:1mm}
.sh-table td.x{font-size:13pt;font-weight:800}
.sh-table td .dn{font-weight:700}
.sh-table td .nt{font-size:8.5pt;color:#333}
.sh-table td .cd{font-size:8.5pt;color:#333;letter-spacing:.3px}
.sh-table tbody tr:nth-child(even) td{background:#fafafa}
.sh-legend{margin-top:4mm;font-size:8.5pt;columns:3;column-gap:6mm}
.sh-legend div{break-inside:avoid}
.sh-foot{margin-top:3mm;font-size:8pt;border-top:1px solid #999;padding-top:2mm;display:flex;justify-content:space-between;gap:6mm}
.sh-none{font-size:12pt;padding:10mm;text-align:center;color:#555}
.sheet.many .sh-table{font-size:9pt}
.sheet.many .sh-table th.dish,.sheet.many .sh-table td.dish{width:24%}
.sheet.many .sh-table thead th .vh{font-size:7.5pt;height:26mm}
.sheet.many .sh-table thead th .lt{font-size:9.5pt}
.sheet.many .sh-table td.x{font-size:11pt}
.sheet.many .sh-legend{font-size:7.5pt}
.brand-prev{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;padding:0}
.bp-inner{width:257mm;padding:4mm 6mm 1mm;transform-origin:top left;color:#000}
.bp-inner .sh-head{margin-bottom:0}
.sh-head.branded{align-items:center;gap:6mm}
.sh-brand{display:flex;align-items:center;gap:4mm;min-width:0}
.sh-logo{display:block;height:18mm;max-width:60mm;width:auto;object-fit:contain;flex:none}
.sh-bt{min-width:0}
.sh-bname{font-size:18pt;font-weight:800;line-height:1.1}
.sh-bline{font-size:9.5pt;color:#333;margin-top:.6mm}
.sh-head.branded .sh-title{font-size:15pt}
.sh-head.branded .sh-sub{font-size:10pt}
.pos-left .sh-right{text-align:right;flex:none;max-width:55%}
.pos-left .sh-date{font-size:12pt;margin-top:1.2mm}
.sh-head.pos-center{flex-direction:column;align-items:stretch;gap:2mm}
.pos-center .sh-brand{flex-direction:column;justify-content:center;text-align:center;gap:1.2mm}
.pos-center .sh-logo{height:16mm;margin:0 auto}
.pos-center .sh-row{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm}
.pos-center .sh-date{font-size:12pt}
@media print{.sh-logo{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.sh-table tr.unrev td{background:#FFF1E4!important}
.sh-table td.unrev-c{color:#7A3412;font-weight:700;text-align:left;padding-left:3mm}
.sh-table td .cd.warn{color:#7A3412}
