/* Ava Cyril menus: print stylesheet shared by the inside (A4) and outside (420 x 590 mm) menus.
   Sizes are in mm/pt on purpose: the same rules drive the on-screen preview and the printed PDF. */
@font-face{font-family:Pag;src:url(/assets/fonts/pagella-regular.ttf)}
@font-face{font-family:Pag;font-style:italic;src:url(/assets/fonts/pagella-italic.ttf)}
@font-face{font-family:Pag;font-weight:700;src:url(/assets/fonts/pagella-bold.ttf)}
@font-face{font-family:Pag;font-weight:700;font-style:italic;src:url(/assets/fonts/pagella-bolditalic.ttf)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-print-color-adjust:exact;print-color-adjust:exact}
html,body{background:var(--paper);width:100%}
body{font-family:Pag,serif;color:var(--ink);font-kerning:normal;font-feature-settings:"kern","liga","lnum";text-rendering:geometricPrecision}

/* ── themes ── */
html.paper,body.paper{--edge:rgba(126,88,30,.11);--orn:#84601F;--orn-l:#84601F;--orn-d:#84601F;--hair2:rgba(14,32,24,.50);--paper:#F0E4C5;--ink:#0E2018;--muted:#2B3A31;--accent:#9C2A1F;--leaf:#245C37;--hair:rgba(14,32,24,.46);
  --tg:#1F6A45;--tw:#FBF6E8;--tr:#BE3A2C;--twb:rgba(23,53,42,.55)}
html.verde,body.verde{--tex:url(/assets/tex_verde.jpg);--orn:#E2C489;--orn-l:#E2C489;--orn-d:#E2C489;--hair2:rgba(247,241,227,.36);--paper:#14362A;--ink:#F7F1E3;--muted:#C5CDBD;--accent:#E2C489;--leaf:#A8D4A6;--hair:rgba(247,241,227,.30);
  --tg:#46A66E;--tw:#F7F1E3;--tr:#D5412F;--twb:transparent}

/* ── page furniture (shared) ── */
.page{width:var(--pw);height:var(--ph);position:relative;background:var(--paper);overflow:hidden;break-after:page;
  display:flex;flex-direction:column;align-items:center}
.page:last-child{break-after:auto}
.frame{position:absolute;inset:var(--inset);border:var(--fr1) solid var(--ink)}
.frame::after{content:"";position:absolute;inset:var(--fr-gap);border:var(--fr2) solid var(--ink);opacity:.7}
.tri{position:absolute;top:var(--tri-top);left:50%;transform:translateX(-50%);display:flex;background:var(--paper);
  padding:var(--tri-pad) calc(var(--tri-w)*.28)}
.tri i{display:block;width:var(--tri-w);height:var(--tri-h)}
.tri .g{background:var(--tg)} .tri .r{background:var(--tr)}
.tri .w{background:var(--tw);border-top:1px solid var(--twb);border-bottom:1px solid var(--twb)}
.mast{text-align:center}
.wm{line-height:1;letter-spacing:.3em;margin-right:-.3em}
.sub{font-variant-caps:all-small-caps;letter-spacing:.42em;margin-right:-.42em;line-height:1}
h2{font-weight:400;font-style:italic;line-height:1}
.echo{font-style:italic;color:var(--accent);line-height:1}
.note{font-style:italic;color:var(--muted)}
.row{display:flex;justify-content:space-between;align-items:baseline}
.name{flex:1 1 auto;min-width:0}
.price{flex:none;font-feature-settings:"tnum","lnum";text-align:right;white-space:nowrap}
.desc{font-style:italic;color:var(--muted)}
.ic{width:.86em;height:.86em;vertical-align:-.1em;color:var(--muted)}
.ic-veg{color:var(--leaf)}
.nw{white-space:nowrap}
.ics{margin-left:.42em}
.ics .ic+.ic{margin-left:.22em}
.lg{display:inline-flex;align-items:center;font-variant-caps:all-small-caps;letter-spacing:.16em;white-space:nowrap}
.lg .ic{width:1.4em;height:1.4em;margin-right:.45em;vertical-align:0}

/* ══════════ inside · A4 ══════════ */
.a4{--pw:210mm;--ph:297mm;--inset:34px;--fr1:1px;--fr2:1px;--fr-gap:4px;--tri-w:34px;--tri-h:6px;--tri-pad:7px;--tri-top:27px;padding:var(--inset)}
.a4 .mast{margin-top:14.500mm}
.a4 .wm{font-size:23pt}
.a4 .sub{font-size:8.600pt;margin-top:2.800mm}
.a4 .head{text-align:center;margin-top:11.500mm}
.a4 h2{font-size:58pt}
.a4 .echo{font-size:12.500pt;margin-top:3mm}
.a4 .note{font-size:10.800pt;margin-top:4.200mm}
.a4 .contains{margin-top:3.400mm;font-size:9pt;color:var(--muted);display:flex;justify-content:center;gap:4.500mm;align-items:center}
.a4 .contains .lead{font-variant-caps:all-small-caps;letter-spacing:.16em}
.a4 .content{flex:1 1 0;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;padding:5mm 0 4mm}
.a4 .stack{width:116mm}
.a4 .two{width:176mm;display:grid;grid-template-columns:1fr 1fr;column-gap:12mm;position:relative}
.a4 .two::before{content:"";position:absolute;left:50%;top:1mm;bottom:1mm;border-left:.13mm solid var(--hair)}
.a4 .item+.item{margin-top:calc(6.800mm + var(--ax,0px))}
.a4.double .item+.item{margin-top:calc(5.800mm + var(--ax,0px))}
.a4 .name,.a4 .price{font-size:13.600pt;line-height:1.22}
.a4 .price{padding-left:3.500mm}
.a4 .desc{font-size:10.400pt;line-height:1.36;margin-top:.700mm;max-width:88%}
.a4 .groups{width:176mm}
.a4 .group+.group{margin-top:calc(11mm + var(--ax,0px))}
.ghead{display:flex;align-items:baseline;justify-content:space-between;border-bottom:.13mm solid var(--hair);padding-bottom:2mm;margin-bottom:calc(5mm + var(--ax,0px)*.5)}
.ghead h3{font-weight:400;font-style:italic;font-size:24pt;line-height:1}
.a4 .ghead .echo{font-size:12pt;margin:0}
.a4 footer{width:100%;text-align:center;padding-bottom:6.500mm}
.a4 .legend{display:flex;justify-content:center;gap:5.400mm;font-size:8.800pt;color:var(--ink)}
/* drinks */
.a4 .two.drinks{column-gap:16mm;align-items:start}
.dblock+.dblock{margin-top:4.700mm}
.dhead{display:flex;align-items:baseline;border-bottom:.13mm solid var(--hair);padding-bottom:1.200mm;margin-bottom:1.500mm}
.dhead h3{flex:1;font-weight:400;font-style:italic;font-size:16.500pt;line-height:1}
.dhead .c{font-variant-caps:all-small-caps;letter-spacing:.1em;font-size:10.500pt;color:var(--muted)}
.drow{display:flex;align-items:baseline;font-size:10.600pt;line-height:1.31}
.dn{flex:1}
.dn em{color:var(--muted);font-size:9.400pt;margin-left:.3em}
.c{width:12.500mm;text-align:right;font-feature-settings:"tnum","lnum";flex:none}
.dnote{font-style:italic;color:var(--muted);font-size:9.600pt;margin-bottom:1.200mm}
.dsub{font-style:italic;font-size:10pt;color:var(--accent);margin-top:1.700mm;line-height:1.4}

/* ══════════ outside · 420 × 590 mm ══════════ */
.poster{--pw:420mm;--ph:590mm;--inset:42px;--fr1:3px;--fr2:1px;--fr-gap:7px;--tri-w:90px;--tri-h:12px;--tri-pad:14px;--tri-top:28px;padding:var(--inset);--gap:4mm;--x:0px}
.poster .mast{margin-top:27mm}
.poster .wm{font-size:112pt}
.poster .sub{font-size:19pt;margin-top:8.500mm}
.poster .cols{flex:1 1 0;min-height:0;width:100%;padding:0 8.500mm;margin-top:15mm;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:minmax(0,1fr)}
.poster .col{display:flex;flex-direction:column;padding:0 5.500mm;min-height:0}
.poster .col+.col{border-left:.2mm solid var(--hair)}
.poster .sec+.sec{margin-top:calc(9mm + var(--x)*2.500 + var(--y,0px))}
.poster .head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--orn);padding-bottom:2.600mm}
.poster h2{font-size:38pt;white-space:nowrap}
.poster .echo{white-space:nowrap}
.poster .echo{font-size:14.500pt}
.poster .note{font-size:11.500pt;margin-top:2.600mm;line-height:1.3}
.poster .list{margin-top:4.800mm}
.poster .item+.item{margin-top:calc(var(--gap) + var(--x) + var(--xs,0px))}
.poster .name,.poster .price{font-size:16.400pt;line-height:1.2}
.poster .price{padding-left:3mm}
.poster .desc{font-size:12.100pt;line-height:1.3;margin-top:.500mm;max-width:90%}
.poster footer{width:100%;display:flex;justify-content:center;align-items:center;gap:18mm;padding:6.500mm 0 7.500mm;font-size:13.500pt}

.a4.drinkpage .head{margin-top:9.500mm}
.a4.drinkpage .content{align-items:flex-start;padding-top:6mm}

/* page title flanked by two rules (from direction A) */
.a4 .head{width:100%}
.trow{display:flex;align-items:center;justify-content:center;gap:16px;width:650px;margin:0 auto}
.trow h2{margin:0 10px;white-space:nowrap}
.trow .ln{flex:1 1 0;height:1px;background:var(--orn-l,#B08D4C);opacity:var(--orn-o,1)}
.trow .dm{flex:none;width:7px;height:7px;background:var(--orn-d,#B08D4C);transform:rotate(45deg)}

/* hairline under each dish name, running to the right edge of the price */
.a4 .item .row{border-bottom:1px solid var(--hair);padding-bottom:1.100mm}
.a4 .item .desc{margin-top:1.500mm}

.ilabel{font-style:italic;color:var(--accent);font-size:11.500pt;line-height:1;margin:3.500mm 0 4.500mm}

/* ── outside menu, shared pieces ── */
.poster .mast{width:100%}
.poster .subrow{display:flex;align-items:center;gap:26px;width:calc(100% - 28mm);margin:8.500mm auto 0}
.poster .subrow .sub{margin-top:0;margin-left:14px;margin-right:calc(14px - .42em)}
.poster .subrow .ln{flex:1 1 0;height:2px;background:var(--orn)}
.poster .subrow .dm{flex:none;width:12px;height:12px;background:var(--orn);transform:rotate(45deg)}
.poster .head .ln,.poster .head .dm{display:none}
.noecho .poster .head .echo{display:none}
.hl .poster .item .row{border-bottom:1px solid var(--hair2);padding-bottom:.900mm}
.hl .poster .item .desc{margin-top:1.100mm}
.hl .poster .col+.col{border-left:0}
/* starters in a narrower, lightly tinted side column; three wider columns for the rest */
.side .poster .cols{grid-template-columns:repeat(4,1fr);padding:0 8mm;column-gap:0;margin-top:13mm}
.side .poster .col{padding:0 4.800mm}
.side .poster .col:first-child{position:relative;z-index:0;padding:0 5mm;margin-right:3mm}
.side .poster .col:first-child::before{content:"";position:absolute;left:0;right:0;top:-7mm;bottom:-7mm;background:var(--panel,rgba(247,241,227,.07));z-index:-1}
/* subtle texture on the green */
.tex .poster,.verde .a4{background:var(--paper) var(--tex) center/100% 100% no-repeat}
/* light menus: a flat warm cream with slightly deeper corners, no texture image */
.paper.tex .poster,.paper .a4{background:radial-gradient(ellipse farthest-corner at center,transparent 58%,var(--edge) 100%),var(--paper)}
/* light menus carry more ink: a slightly heavier cut of the same typeface (same letter widths, thicker strokes; see tools/make_ink_font.py) */
@font-face{font-family:PagInk;src:url(/assets/fonts/pagella-regular-ink.ttf)}
@font-face{font-family:PagInk;font-style:italic;src:url(/assets/fonts/pagella-italic-ink.ttf)}
@font-face{font-family:PagInk;font-weight:700;src:url(/assets/fonts/pagella-bold.ttf)}
@font-face{font-family:PagInk;font-weight:700;font-style:italic;src:url(/assets/fonts/pagella-bolditalic.ttf)}
body.paper{font-family:PagInk,Pag,serif}
.paper .ic{stroke-width:2}
/* the frame lines stop a little before the flag: a notch is cut out of the frame instead of covering it with a patch of flat colour */
.a4 .tri{background:none}
.a4 .frame{--n:calc(var(--tri-w)*1.78);--d:calc(var(--tri-top) + var(--tri-h) + var(--tri-pad)*2 - var(--inset));
  clip-path:polygon(0 0,calc(50% - var(--n)) 0,calc(50% - var(--n)) var(--d),calc(50% + var(--n)) var(--d),calc(50% + var(--n)) 0,100% 0,100% 100%,0 100%)}

/* restaurant name with a little depth: sheen gradient, gold edge, short shadow beneath */
.poster .wm{background:linear-gradient(180deg,var(--wm1,#FFFEF8) 0%,var(--wm2,#F7F1E3) 42%,var(--wm3,#E4D8BC) 100%);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;padding-bottom:3mm;
  filter:drop-shadow(0 1.500px 0 var(--wme1,#D8BC82)) drop-shadow(0 1.500px 0 var(--wme2,#A9884A)) drop-shadow(0 3px 0 var(--wms,rgba(0,0,0,.42)))}
html.paper,body.paper{--wm1:#2B5A47;--wm2:#17352A;--wm3:#0E221A;--wme1:#B8914A;--wme2:#83621F;--wms:rgba(60,40,10,.26);--panel:rgba(122,88,30,.13)}

/* A · inlay: the tricolore fills the channel between the two frame lines along the whole top edge */
.fA .poster .tri{top:calc(var(--inset) + var(--fr1));left:calc(var(--inset) + var(--fr1));right:calc(var(--inset) + var(--fr1));transform:none;width:auto;height:var(--fr-gap);padding:0;background:none}
.fA .poster .tri i{flex:1 1 0;width:auto;height:100%}
.fA .poster .tri::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 45%,rgba(0,0,0,.20))}
.fA .poster{--fr-gap:11px}

/* outside wordmark: letters set closer together */
.poster .wm{letter-spacing:.15em;margin-right:-.15em;font-size:126pt}
.poster .mast{margin-top:25mm}

/* inside menu: nothing below 10 pt except the strapline under the name; allergen information made easier to read */
.a4 .legend{font-size:10.200pt;gap:5mm}
.a4 .contains{font-size:10.200pt}
.dn em{font-size:10pt}
.dnote{font-size:10pt}
