/* Le Bistro: built by Last Page Studio engine 2.0.0. Tokens and fonts from site/design.py. */
@font-face{font-family:"Gloock";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/gloock-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/albert-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/albert-sans-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/albert-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/albert-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/albert-sans-latin-700-normal.woff2) format("woff2")}
:root{--c-paper:#14080D;--c-raised:#1F0E16;--c-raised-hover:#2B1420;--c-slate:#1A0B12;--c-card:#1F0E16;--c-ink:#F6EBDD;--c-soft:#CDB9B2;--c-rule:#3E2432;--c-rule-dark:#3E2432;--c-dark:#0E0509;--c-on-dark:#F6EBDD;--c-on-dark-soft:#CDB9B2;--c-gold:#DAB656;--c-accent:#E58BAA;--c-mark:#DAB656;--c-focus:#E58BAA;--c-focus-dark:#E58BAA;--c-link-hover:#DAB656;--c-btn:#B23A63;--c-btn-fg:#FFF7EC;--c-btn-hover:#8E2750;--c-btn-line:#F6EBDD;--c-btn-dark:#B23A63;--c-btn-dark-fg:#FFF7EC;--c-btn-dark-hover:#8E2750;--c-bar-lunch:#DAB656;--c-bar-brunch:#F2E4CF;--c-bar-aw:#6B1E3B;--c-bar-ala:#B23A63;--c-bar-ink:#1A0B12;--c-bar-fg:#FFF7EC;--hero-shade:14,5,9;--hero-pos:50% 0;--f-display:"Gloock","Iowan Old Style","Palatino Linotype",Georgia,serif;--f-text:"Albert Sans","Helvetica Neue",Arial,sans-serif;--t-body:400 17px/1.55 var(--f-text);--num:lining-nums tabular-nums;--u-thick:1px;--t-k:600 12px/1.25 var(--f-text);--k-track:.16em;--c-k:#DAB656;--k-gap:10px;--t-tl:600 15px/1 var(--f-text);--tl-track:.06em;--tl-case:none;--c-tl:#DAB656;--c-tl-hover:#F6EBDD;--tl-offset:5px;--t-btn:600 15px/1.1 var(--f-text);--btn-track:.01em;--btn-bw:1.5px;--btn-h:50px;--btn-px:22px;--t-fold:600 16px/1.2 var(--f-text);--t-nav:500 15px/1 var(--f-text);--nav-track:.01em;--focus-w:3px;--gut:20px}
@media (min-width:768px){:root{--t-body:400 18px/1.55 var(--f-text)}}
@media (min-width:960px){:root{--gut:64px}}
@media (min-width:2000px){:root{--max:1880px;--t-body:400 21px/1.55 var(--f-text)}}
/* ---- engine base: the same on every site, every value that gives a site its look comes from the tokens ---- */
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--c-paper);color:var(--c-ink);font:var(--t-body);-webkit-font-smoothing:antialiased;font-variant-numeric:var(--num,lining-nums)}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:var(--u-thick,auto)}
a:hover{color:var(--c-link-hover,inherit)}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-weight:var(--h-weight,400);text-wrap:balance}
em{font-style:italic}
:focus-visible{outline:var(--focus-w,2px) solid var(--c-focus);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--c-focus-dark,var(--c-accent))}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed!important;top:8px;left:8px;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;background:var(--c-ink);color:var(--c-paper);padding:12px 16px;z-index:20}
.wrap{max-width:var(--max,1440px);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.nb{white-space:nowrap}
.today[hidden]{display:none}

/* labels, text links, buttons */
.k{font:var(--t-k);letter-spacing:var(--k-track,.18em);text-transform:uppercase;color:var(--c-k,inherit);margin:0 0 var(--k-gap,12px)}
.k--mark{color:var(--c-mark)}
.tl{display:inline-flex;align-items:center;min-height:44px;font:var(--t-tl);letter-spacing:var(--tl-track,normal);text-transform:var(--tl-case,none);color:var(--c-tl,inherit);text-decoration:underline;text-underline-offset:var(--tl-offset,4px)}
.tl:hover{color:var(--c-tl-hover,inherit)}
.cta{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;flex:var(--btn-flex,1 1 auto);min-width:var(--btn-min-w,0);min-height:var(--btn-h,50px);padding:0 var(--btn-px,24px);
 font:var(--t-btn);letter-spacing:var(--btn-track,.14em);text-transform:uppercase;text-decoration:none;white-space:var(--btn-ws,normal);
 border:var(--btn-bw,1.5px) solid var(--c-btn);transition:background-color .2s,color .2s,border-color .2s}
.btn--fill{background:var(--c-btn);color:var(--c-btn-fg)}
.btn--fill:hover{background:var(--c-btn-hover);border-color:var(--c-btn-hover);color:var(--c-btn-fg)}
.btn--line{color:var(--c-btn-line,var(--c-btn))}
.btn--line:hover{background:var(--c-btn);color:var(--c-btn-fg)}
/* a dark section turns the buttons round */
.on-dark{--c-btn:var(--c-btn-dark);--c-btn-fg:var(--c-btn-dark-fg);--c-btn-hover:var(--c-btn-dark-hover);--c-btn-line:var(--c-on-dark)}

/* a typed white card with a thin rim line (a menu sheet, a sign, an hours card): rim colour from the tokens */
.card{background:var(--c-card,#fff);color:var(--c-ink);position:relative;box-shadow:0 30px 60px -28px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.06)}
.card::before{content:"";position:absolute;inset:8px;border:1.5px solid var(--c-mark);pointer-events:none}

/* phone folds: <details class="fold" data-open-from="960"> opens and stops folding from that width (core.js) */
.fold>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 16px;cursor:pointer;list-style:none;border:2px solid currentColor;font:var(--t-fold,inherit);letter-spacing:.08em;text-transform:uppercase}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:"+";flex:0 0 auto;font-size:1.6em;line-height:1;transition:transform .25s ease}
.fold[open]>summary::after{transform:rotate(45deg)}
.fs-t{flex:1 1 auto}
.fs-n{flex:0 0 auto;letter-spacing:.06em}
@supports selector(::details-content){
 :root{interpolate-size:allow-keywords}
 details.fold::details-content{block-size:0;overflow-y:clip;transition:block-size .3s ease,content-visibility .3s allow-discrete}
 details.fold[open]::details-content{block-size:auto}
}
html.fold-fixed details.fold>summary{display:none}

@keyframes lp-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---- pattern header.goldlogo ---- */
.hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 var(--gut);height:64px;max-width:var(--max,1440px);margin:0 auto}
.hdr:not(.hdr--over){border-bottom:1px solid var(--c-rule-dark)}
.brand{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.brand img{width:116px;height:auto}
.nav{display:flex;align-items:center}
.nav a{font:var(--t-nav);letter-spacing:var(--nav-track,.01em);text-transform:none;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;transition:text-decoration-color var(--d-base,.55s) var(--ease-out,ease-out)}
.nav a:hover{text-decoration-color:var(--c-gold)}
.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px;text-decoration-color:var(--c-gold)}
.nav .hbook{display:none}
.hdr--over{position:absolute;top:0;left:0;right:0;z-index:5;color:var(--c-on-dark)}
.hdr--over :focus-visible{outline-color:var(--c-focus-dark,var(--c-accent))}
@media (min-width:720px){
 .nav .hbook{display:inline-flex;background:var(--c-btn);color:var(--c-btn-fg);border:1.5px solid var(--c-btn);margin-left:10px;padding:0 20px;min-height:46px;text-decoration:none}
 .nav .hbook{text-decoration:none}
 .nav .hbook:hover{background:var(--c-btn-hover);border-color:var(--c-btn-hover)}
}
@media (min-width:1100px){
 .hdr{height:92px}
 .brand img{width:170px}
 .nav a{padding:0 14px}
}
@media (min-width:900px) and (max-height:940px){.hdr--over{height:76px}.hdr--over .brand img{width:140px}}
@media (max-width:380px){.brand img{width:100px}.nav a{padding:0 6px}}
@media print{.hdr{display:none}}

/* ---- pattern footer.wordmark ---- */
.ftr{background:var(--c-dark);color:var(--c-on-dark);padding:40px var(--gut) 28px}
.ftr-in{max-width:1312px;margin:0 auto}
.ftr .wm{display:block;min-height:0;font:600 clamp(36px,12.4vw,60px)/1 var(--f-display);letter-spacing:.12em;text-transform:uppercase;color:var(--c-accent);text-decoration:none;margin-bottom:22px;white-space:nowrap}
.ftr ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:0 18px}
.ftr a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px;font-size:16px}
.ftr .meta{font-size:16px;color:var(--c-on-dark-soft);margin-bottom:6px}
@media (min-width:1100px){
 .ftr{padding:56px var(--gut) 32px}
 .ftr-in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end}
 .ftr .wm{grid-column:1/8;font-size:clamp(64px,7.2vw,104px);margin:0}
 .ftr-r{grid-column:8/13;justify-self:end;text-align:right}
 .ftr ul{justify-content:flex-end}
 .ftr .meta,.ftr a{font-size:18px}
}
@media print{.ftr{display:none}}

/* ---- pattern hero.slate ---- */
.hero--slate{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;background:var(--c-dark);color:var(--c-on-dark);overflow:hidden}
.hero--slate .hero__ph{position:absolute;inset:0}
.hero--slate .hero__ph picture{position:absolute;inset:0}
.hero--slate .hero__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos,50% 0)}
@media (prefers-reduced-motion:no-preference){.hero--slate .hero__ph img{animation:lp-in var(--d-slow,1.1s) var(--ease-out,ease-out) both}}
.hero--slate .hero__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--hero-shade),.88) 0,rgba(var(--hero-shade),.4) 12%,rgba(var(--hero-shade),0) 26%)}
.hero--slate .hero__in{position:relative;z-index:2;padding-bottom:16px;width:100%}
.slate{position:relative;background:var(--c-slate);padding:24px 22px 22px;box-shadow:0 30px 60px -30px rgba(0,0,0,.75)}
.slate h1{font:400 clamp(34px,9.4vw,40px)/.96 var(--f-display);letter-spacing:-.025em;text-wrap:balance;max-width:12em}
.sl-f{margin:18px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:14px;font-size:17px;line-height:1.2}
.sl-k{color:var(--c-on-dark-soft)}
.sl-p{font:400 clamp(40px,11vw,46px)/1 var(--f-display);letter-spacing:-.025em;color:var(--c-gold)}
.slate .today{margin:12px 0 20px;font:400 15px/1.4 var(--f-text);color:var(--c-on-dark-soft)}
.slate .cta{flex-wrap:nowrap;align-items:center;gap:6px 22px}
.slate .btn{flex:1 1 auto;min-height:52px}
.slate .sl-call{flex:0 0 auto;color:var(--c-gold);padding:0 2px;font-size:15px;white-space:nowrap}
/* phone: the card hangs under the header and the board shows below it (the sliced salami is in the lower half of their photo) */
@media (max-width:599px){
 .hero--slate{align-items:flex-start}
 .hero--slate .hero__in{padding-top:70px;padding-bottom:0}
 .hero--slate .hero__ph img{object-position:50% 100%}
}
@media (max-width:480px) and (max-height:700px){.slate{padding:18px 20px 16px}.slate h1{font-size:30px}.sl-f{margin-top:12px}.sl-p{font-size:38px}.slate .today{margin:8px 0 12px}.slate .btn{min-height:46px}}
@media (min-width:600px) and (max-width:899px){
 .hero--slate .hero__in{display:flex;justify-content:flex-start;padding-bottom:32px}
 .slate{width:min(500px,100%);padding:32px 34px 30px}
 .slate h1{font-size:44px}
}
@media (min-width:900px){
 .hero--slate{align-items:center}
 .hero--slate .hero__in{display:flex;justify-content:flex-end;padding-top:96px;padding-bottom:40px}
 .slate{width:clamp(400px,28vw,720px);padding:38px 40px 34px}
 .slate h1{font-size:clamp(46px,3.6vw,88px)}
 .sl-f{margin-top:22px;font-size:clamp(17px,1.25vw,28px)}
 .sl-p{font-size:clamp(44px,3.6vw,88px)}
 .slate .today{font-size:clamp(15px,1.1vw,24px);margin-bottom:24px}
 .slate .btn{min-height:clamp(52px,3.6vw,84px);font-size:clamp(15px,1vw,22px)}
 .slate .sl-call{font-size:clamp(15px,1.1vw,24px)}
}
@media (min-width:900px) and (max-height:940px){.slate{padding:28px 32px 26px}.sl-f{margin-top:14px}.slate .today{margin-bottom:16px}.hero--slate .hero__in{padding-top:84px;padding-bottom:28px}}
@media (min-width:1700px){.hero--slate .hero__ph::after{background:linear-gradient(180deg,rgba(var(--hero-shade),.9) 0,rgba(var(--hero-shade),.5) 14%,rgba(var(--hero-shade),0) 30%)}}
@media print{.hero--slate{min-height:0}}

/* ---- pattern story.rings ---- */
.shp{background:var(--c-raised);padding:64px 0 72px}
.shp__in{display:grid;gap:40px}
.shp h2{font:400 clamp(36px,9.6vw,44px)/.98 var(--f-display);letter-spacing:-.025em;margin-bottom:22px;text-wrap:balance}
.shp .k{color:var(--c-gold)}
.shp__tx p:not(.k){margin-bottom:16px;max-width:32em}
.shp__tx .cta{margin-top:26px;max-width:460px;align-items:center;gap:6px 24px}
.shp__tx .cta .btn{flex:0 1 auto}
.shp__grid{display:grid;grid-template-columns:1.1fr .9fr;grid-template-areas:"a b" "a c";gap:18px 16px;align-items:start}
.shp__f{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.shp__f figcaption{font-size:14px;line-height:1.35;color:var(--c-on-dark-soft)}
/* photos sit small in a thin straight brass line; only the chair's arch is a shape */
.shp__ring{display:block;padding:6px;border:1px solid var(--c-gold)}
.shp__ph{display:block;overflow:hidden;position:relative}
.shp__ph img{width:100%;height:100%;object-fit:cover}
.shp__f--arch{align-self:stretch}
.shp__f--arch .shp__ring{flex:1 1 auto;display:flex;border-radius:999px 999px 0 0}
.shp__f--arch .shp__ph{flex:1 1 auto;border-radius:999px 999px 0 0;min-height:260px}
.shp__f--arch .shp__ph img{position:absolute;inset:0}
.shp__f--crop .shp__ph{aspect-ratio:1}
@media (min-width:600px){.shp__grid{gap:24px 22px;max-width:600px}.shp__f figcaption{font-size:15px}}
@media (min-width:960px){
 .shp{padding:136px 0 144px}
 .shp__in{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center}
 .shp__tx{grid-column:1/6}
 .shp__grid{grid-column:7/13;gap:28px 24px;grid-template-columns:1.12fr .88fr;max-width:none}
 .shp h2{font-size:clamp(46px,4vw,84px)}
 .shp__f--arch .shp__ph{min-height:420px}
 .shp__f figcaption{font-size:15px}
}

/* ---- pattern band.board ---- */
.bb{position:relative;height:clamp(240px,46svh,640px);background:var(--c-dark);overflow:hidden}
.bb picture,.bb img{display:block;width:100%;height:100%}
.bb img{object-fit:cover;object-position:88% 55%}
@media (min-width:600px){.bb img{object-position:50% 50%}}
@media (min-width:960px){.bb{height:clamp(380px,62svh,860px)}}
@media print{.bb{height:auto}}

/* ---- pattern week.ribbon ---- */
.rb{background:var(--c-paper);padding:64px 0 56px;border-top:1px solid var(--c-rule-dark)}
.rb__in{display:grid;gap:30px}
.rb h2{font:400 clamp(36px,9.6vw,44px)/.98 var(--f-display);letter-spacing:-.025em;text-wrap:balance}
.rb .lede{margin-top:14px;max-width:30em;color:var(--c-on-dark-soft)}
.rb .lunch-t{margin-top:10px;max-width:34em;color:var(--c-on-dark-soft)}
/* the chart: day names at left, the time axis above the lanes */
.rb__axis{display:grid;grid-template-columns:48px 1fr;column-gap:8px;margin-bottom:6px}
.rb__axis i{font-style:normal;font:500 14px/18px var(--f-text);color:var(--c-on-dark-soft)}
.rb__axis div{position:relative;height:18px}
.rb__axis span{position:absolute;left:var(--a);transform:translateX(-50%);font:500 14px/18px var(--f-text);color:var(--c-on-dark-soft);font-variant-numeric:tabular-nums}
.rb__axis span:first-child{transform:none}
.rb__axis span:last-child{transform:translateX(-100%)}
.rb__rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--c-rule-dark)}
.rb__row{display:grid;grid-template-columns:48px 1fr;column-gap:8px;align-items:stretch;padding:5px 0;border-bottom:1px solid var(--c-rule-dark);position:relative}
.rb__day{display:flex;align-items:center;padding-left:6px;font:600 14px/1 var(--f-text);color:var(--c-on-dark-soft)}
.rb__lanes{position:relative;display:grid;gap:3px;background-image:linear-gradient(90deg,var(--c-rule-dark) 1px,transparent 1px);background-size:20% 100%;background-position:0 0}
.rb__lane{position:relative;height:26px}
.rb__bar{position:absolute;top:0;bottom:0;left:var(--a);width:var(--w);display:flex;align-items:center;padding:0 8px;overflow:hidden;white-space:nowrap;font:600 14px/1 var(--f-text);border-radius:2px;outline:1px solid var(--c-paper);outline-offset:-1px}
.rb__bar--lunch{background:var(--c-bar-lunch);color:var(--c-bar-ink)}
.rb__bar--brunch{background:var(--c-bar-brunch);color:var(--c-bar-ink)}
.rb__bar--aw{background:var(--c-bar-aw);color:var(--c-bar-fg);box-shadow:inset 0 0 0 1px var(--c-gold)}
.rb__bar--ala{background:var(--c-bar-ala);color:var(--c-bar-fg)}
.rb__now{position:absolute;top:-4px;bottom:-4px;left:var(--now,0);width:2px;margin-left:-1px;background:var(--c-on-dark);display:none;pointer-events:none}
.rb__row.has-now .rb__now{display:block}
.rb__row.is-today{background:var(--c-raised)}
.rb__row.is-today .rb__day{color:var(--c-gold)}
.rb__row.is-today::before{content:"";position:absolute;left:-6px;top:0;bottom:0;width:3px;background:var(--c-gold)}
/* the key: four typed rows, a colour swatch, no cards */
.rb__cards{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--c-rule-dark)}
.rb__cards li{border-bottom:1px solid var(--c-rule-dark)}
.rb__card{display:grid;grid-template-columns:6px 1fr auto;column-gap:16px;row-gap:2px;align-items:baseline;padding:16px 0;text-decoration:none;color:var(--c-on-dark);transition:color var(--d-base,.55s) var(--ease-out,ease-out)}
.rb__card:hover{color:var(--c-gold)}
.rb__sw{grid-row:1/3;align-self:stretch;background:var(--c-gold)}
.rb__card b{font:400 22px/1.15 var(--f-display);letter-spacing:-.005em}
.rb__when{font:500 15px/1.3 var(--f-text);color:var(--c-on-dark-soft);text-align:right;font-variant-numeric:tabular-nums}
.rb__line{grid-column:2/4;font-size:15px;line-height:1.35;color:var(--c-on-dark-soft)}
.rb__card--lunch .rb__sw{background:var(--c-bar-lunch)}
.rb__card--aw .rb__sw{background:var(--c-bar-aw);box-shadow:inset 0 0 0 1px var(--c-gold)}
.rb__card--ala .rb__sw{background:var(--c-bar-ala)}
.rb__card--brunch .rb__sw{background:var(--c-bar-brunch)}
@media (min-width:600px){.rb__lane{height:30px}}
@media (min-width:960px){
 .rb{padding:136px 0 128px}
 .rb__in{grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:48px;align-items:start}
 .rb__hd{grid-column:1/13;grid-row:1;max-width:30em}
 .rb h2{font-size:clamp(46px,4vw,84px)}
 .rb__chart{grid-column:1/9;grid-row:2}
 .rb__cards{grid-column:9/13;grid-row:2;align-self:start}
 .rb__card{grid-template-columns:6px 1fr;padding:18px 0}
 .rb__sw{grid-row:1/4}
 .rb__when{grid-column:2;grid-row:2;text-align:left}
 .rb__line{grid-column:2;grid-row:3}
 .rb__lane{height:38px}
 .rb__row{padding:8px 0}
 .rb__axis,.rb__row{grid-template-columns:64px 1fr;column-gap:12px}
 .rb__day{font-size:14px}
}
@media (min-width:1400px){.rb__lane{height:44px}.rb__row{padding:10px 0}.rb__bar,.rb__axis span,.rb__day,.rb__axis i{font-size:16px}.rb__when,.rb__line{font-size:16px}}

/* ---- pattern party.figures ---- */
.pf{background:var(--c-paper);padding:72px 0 80px;border-top:1px solid var(--c-rule-dark)}
.pf__in{display:grid;gap:40px}
.pf h2{font:400 clamp(36px,9.6vw,44px)/.98 var(--f-display);letter-spacing:-.025em;margin-bottom:12px;text-wrap:balance}
.pf__lede{font-size:20px;color:var(--c-on-dark-soft)}
.pf__ph{margin:0;width:min(62%,240px)}
.pf__ring{display:block;padding:6px;border:1px solid var(--c-gold)}
.pf__circ{display:block;aspect-ratio:1;overflow:hidden}
.pf__circ img{width:100%;height:100%;object-fit:cover}
.pf__nums{list-style:none;margin:30px 0 26px;padding:0;display:grid;border-top:1px solid var(--c-rule-dark)}
.pf__nums li{display:grid;grid-template-columns:112px 1fr;column-gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--c-rule-dark)}
.pf__n{grid-column:1;grid-row:1/3;font:400 64px/1 var(--f-display);color:var(--c-on-dark);text-align:right;letter-spacing:-.025em}
.pf__pre{grid-column:2;grid-row:1;font-size:15px;color:var(--c-gold)}
.pf__post{grid-column:2;grid-row:2;font-size:17px;line-height:1.4;color:var(--c-on-dark-soft)}
.pf__p{max-width:32em;margin-bottom:24px}
.pf .cta{max-width:460px;align-items:center;gap:6px 24px}
.pf .cta .btn{flex:0 1 auto}
.pf__call{color:var(--c-gold)}
@media (min-width:960px){
 .pf{padding:136px 0 144px}
 .pf__in{grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center}
 .pf__ph{grid-column:1/5;width:min(100%,400px);justify-self:start}
 .pf__tx{grid-column:6/13}
 .pf--text{min-height:88svh;display:flex;align-items:center;padding:160px 0}
 .pf--text .pf__in{width:100%}
 .pf--text .pf__tx{grid-column:3/12}
 .pf h2{font-size:clamp(46px,4vw,84px)}
 .pf__nums li{grid-template-columns:clamp(150px,12vw,300px) 1fr;column-gap:32px;padding:18px 0}
 .pf__n{font-size:clamp(84px,8vw,200px)}
 .pf__post{font-size:clamp(17px,1.3vw,30px)}
 .pf__lede{font-size:clamp(20px,1.5vw,34px)}
}

/* ---- pattern visit.door ---- */
.vd{background:var(--c-raised);padding:64px 0 56px}
.vd__in{display:grid;gap:24px}
.vd h2{font:400 clamp(36px,9.6vw,44px)/.98 var(--f-display);letter-spacing:-.025em}
.vd__addr{font-style:normal;display:grid;gap:2px;font-size:18px;color:var(--c-on-dark-soft)}
.vd__st{font:400 clamp(36px,10vw,44px)/.98 var(--f-display);color:var(--c-gold);letter-spacing:-.025em;margin-bottom:8px}
.vd__act{display:grid;gap:16px}
.vd__act .cta{max-width:460px;align-items:center;gap:6px 24px}
.vd__act .cta .btn{flex:0 1 auto}
.vd__map{color:var(--c-gold)}
.vd__note{position:relative;margin:0;padding:14px 16px;border:1px solid var(--c-gold);font-size:17px;line-height:1.45;max-width:30em}
.vd__links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 22px}
.vd__links a{display:inline-flex;align-items:center;min-height:44px;color:var(--c-gold);text-underline-offset:5px}
@media (min-width:960px){
 .vd{padding:128px 0 120px}
 .vd__in{grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:28px;align-items:start}
 .vd__hd{grid-column:1/5;grid-row:1}
 .vd__addr{grid-column:1/7;grid-row:2;font-size:20px}
 .vd__st{font-size:clamp(46px,4vw,84px)}
 .vd__act{grid-column:8/13;grid-row:1/3;align-self:end;gap:18px}
 .vd h2{font-size:clamp(46px,4vw,84px)}
}

/* ---- pattern menupage.services ---- */
.mh{padding-top:40px;padding-bottom:28px}
.mh h1{margin:0;font:400 clamp(48px,14vw,72px)/.95 var(--f-display);letter-spacing:-.03em}
.mh .k{color:var(--c-gold)}
.mh .lede{margin-top:16px;max-width:32em;color:var(--c-on-dark-soft)}
.mc{display:grid;gap:36px;padding-bottom:64px}
/* the service index */
.mc__idx ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mc__idx a{display:grid;gap:2px;min-height:60px;padding:10px 12px;text-decoration:none;background:var(--c-raised);border-top:3px solid var(--c-gold);align-content:center}
.mc__idx a{transition:background-color var(--d-base,.55s) var(--ease-out,ease-out)}
.mc__idx a:hover{background:var(--c-raised-hover)}
.mc__idx b{font:400 19px/1.15 var(--f-display)}
.mc__idx span{font:600 13px/1.3 var(--f-text);color:var(--c-gold)}
/* one service */
.sv{padding:28px 0 8px;scroll-margin-top:12px}
.sv+.sv{border-top:1px solid var(--c-rule-dark);margin-top:28px}
.sv__hd{display:grid;gap:22px}
.sv__tx .k{color:var(--c-gold)}
.sv__tx h2{font:400 clamp(36px,9.6vw,44px)/.98 var(--f-display);letter-spacing:-.025em;margin-bottom:14px}
.sv__tx p:not(.k){margin-bottom:12px;max-width:32em}
.sv__tx .cta{margin-top:18px;max-width:420px}
.sv__ph{margin:0;width:min(62%,250px)}
.sv__ring{display:block;padding:6px;border:1px solid var(--c-gold)}
.sv__shape{display:block;overflow:hidden;position:relative}
.sv__shape img{width:100%;height:100%;object-fit:cover}
.sv__ph--arch .sv__ring{border-radius:999px 999px 0 0}
.sv__ph--arch .sv__shape{aspect-ratio:3/4;border-radius:999px 999px 0 0}
.sv__ph--crop .sv__shape{aspect-ratio:1}
/* their carte: centred rows, boxed groups, a thin brass rim */
.sv__fold{margin-top:26px}
.sv__fold>summary{color:var(--c-gold);background:var(--c-raised)}
.carte{position:relative;background:var(--c-raised);padding:26px 18px 12px;margin-top:14px;text-align:center}
.carte::before{content:"";position:absolute;inset:7px;border:1px solid var(--c-gold);opacity:.55;pointer-events:none}
.carte>*{position:relative}
.carte__cols{display:grid;gap:8px}
.grp{padding:18px 0 14px}
.grp+.grp{border-top:1px solid var(--c-rule-dark)}
.carte__col+.carte__col>.grp:first-child:not(.grp--box){border-top:1px solid var(--c-rule-dark)}
.grp--box{margin:14px 0;padding:18px 12px 14px;border:1px solid var(--c-gold)}
.grp--box+.grp,.grp+.grp--box{border-top-color:var(--c-gold)}
.gt{margin:0 0 10px;font:400 25px/1.15 var(--f-display);letter-spacing:.005em}
.dish{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:10px;padding:8px 0}
.dish .dn{order:1;margin:0;font:700 17px/1.3 var(--f-text);letter-spacing:.01em}
.dish .price{order:2;font:600 17px/1.3 var(--f-text);color:var(--c-gold);font-variant-numeric:lining-nums tabular-nums}
.dish .price:empty{display:none}
.dish .gl{order:3;flex:0 0 100%;margin:3px auto 0;font-size:15px;line-height:1.45;color:var(--c-on-dark-soft);max-width:30em}
.dish--head{padding:0 0 10px}
.dish--head .dn{font:400 25px/1.15 var(--f-display);letter-spacing:.005em}
.dish--head .price{font:400 25px/1.15 var(--f-display)}
.dish--head .gl{font-style:italic}
.mclose{border-top:1px solid var(--c-rule-dark);padding:56px 0 64px}
.mclose h2{margin:0;font:400 clamp(36px,9.6vw,44px)/.98 var(--f-display);letter-spacing:-.025em}
.mclose-in p{margin:14px 0 22px;max-width:30em;color:var(--c-on-dark-soft)}
@media (min-width:600px){
 .mc__idx ul{grid-template-columns:repeat(4,1fr)}
 .sv__hd{grid-template-columns:200px 1fr;column-gap:36px;align-items:center}
 .sv__ph{width:100%}
 .carte{padding:34px 36px 18px}
 .carte__cols{grid-template-columns:1fr 1fr;column-gap:0}
 .carte__cols--one{grid-template-columns:1fr 1fr}
 .carte__col+.carte__col{border-left:1px solid var(--c-rule-dark);padding-left:28px;margin-left:28px}
 .carte__col+.carte__col>.grp:first-child:not(.grp--box){border-top:0}
 .carte__col:first-child .grp:first-child{padding-top:6px}
}
@media (min-width:960px){
 .mh{padding-top:72px;padding-bottom:40px}
 .mc{grid-template-columns:repeat(12,1fr);column-gap:24px;padding-bottom:112px}
 .mc__idx{grid-column:1/4;align-self:start;position:sticky;top:28px}
 .mc__idx ul{grid-template-columns:1fr}
 .mc__idx a{min-height:72px;padding:14px 16px}
 .mc__idx b{font-size:22px}
 .mc__body{grid-column:4/13}
 .sv{padding:56px 0 24px}
 .sv+.sv{margin-top:48px}
 .sv__hd{grid-template-columns:240px 1fr;column-gap:48px}
 .sv__tx h2{font-size:clamp(46px,4vw,72px)}
 .carte{padding:48px 56px 28px}
 .carte__col+.carte__col{padding-left:44px;margin-left:44px}
 .dish .dn{font-size:18px}
 .dish .price{font-size:18px}
 .dish .gl{font-size:16px}
 .gt,.dish--head .dn,.dish--head .price{font-size:30px}
 .mclose{padding:96px 0 112px}
 .mclose-in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end}
 .mclose h2{grid-column:1/6;font-size:clamp(46px,4vw,72px)}
 .mclose-in p{grid-column:6/10;margin:0}
 .mclose-in .cta{grid-column:10/13;flex-direction:column}
}
@media (min-width:1440px){.sv__hd{grid-template-columns:280px 1fr}}
@media print{.mc__idx{display:none}}

/* ---- pattern visit.split ---- */
/* shared by visit.split and visitpage.rules */
.visit{background:var(--c-paper);padding:64px var(--gut) 56px}
.vi-in{max-width:1312px;margin:0 auto}
.visit h2,.vpage h1{font:300 clamp(40px,11vw,52px)/1.05 var(--f-display);margin-bottom:24px}
.hrs{list-style:none;padding:0;margin:0 0 24px;border-top:2px solid var(--c-ink)}
.hrs li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--c-rule-strong,var(--c-rule));font-size:18px}
.hrs b{font:600 14px/1.4 var(--f-display);letter-spacing:.14em;text-transform:uppercase}
.hrs span{font-variant-numeric:lining-nums tabular-nums;text-align:right}
.addr{font-style:normal;margin-bottom:20px}
.addr b{display:block;font:600 14px/1.4 var(--f-display);letter-spacing:.14em;text-transform:uppercase;margin-bottom:2px}
.addr a{text-underline-offset:4px}
.vi-cta{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.note{font-size:16px;margin-bottom:4px}
@media (min-width:1100px){
 .visit{padding:128px var(--gut) 112px}
 .visit .vi-in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
 .vi-hd{grid-column:1/6}
 .vi-tx{grid-column:7/13}
 .visit h2,.vpage h1{font-size:72px}
 .hrs li{font-size:21px;padding:16px 0}
 .hrs b{font-size:15px}
 .addr{font-size:20px}
 .note{font-size:18px}
}

/* ---- pattern visitpage.rules ---- */
.vpage .vi-in{display:block}
.visit .rules-h{font:300 28px/1.15 var(--f-display);margin:8px 0 18px;text-wrap:balance}
.rules{margin:0 0 24px}
.rules div{padding:15px 0;border-bottom:1px solid var(--c-rule-strong,var(--c-rule))}
.rules div:first-child{border-top:2px solid var(--c-ink)}
.rules dt{font:600 13px/1.3 var(--f-display);letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}
.rules dd{margin:0;font-size:17px}
.more-links{list-style:none;padding:0;margin:0 0 20px}
.more-links a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
@media (min-width:1100px){
 .vpage .vi-in{display:grid}
 .visit .rules-h{font-size:36px;margin:0 0 24px}
 .rules dt{font-size:14px}
 .rules dd{font-size:19px}
}

/* ---- pattern notfound.figure ---- */
.nf{padding:72px var(--gut) 96px;max-width:1440px;margin:0 auto}
.nf h1{font:300 clamp(40px,11vw,64px)/1.05 var(--f-display);margin-bottom:20px}
.nf p{margin-bottom:12px}
.nf-dish{margin:32px 0 0;max-width:420px}
.nf-dish img{filter:drop-shadow(0 18px 18px rgba(0,0,0,.35))}
@media (min-width:1100px){
 .nf{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center;padding:64px var(--gut) 96px;min-height:70vh}
 .nf-t{grid-column:1/7}
 .nf-dish{grid-column:8/13;width:min(100%,520px);margin:0 0 0 auto}
 .nf p{font-size:20px}
}

/* ---- motion: calm ---- */
:root{--lp-reveal-dur-block:1s;--lp-reveal-dur-image:1.1s;--rv-dist:14px;--rv-stagger:.09s;--rv-ease:cubic-bezier(.22,.61,.36,1)}
/* ---- engine motion kit (Rasmus 3 Nov: the restaurangag.se feeling, blocks arrive as you scroll) ----
   .rv       a block fades up into place when it scrolls into view; style="--rv-i:n" staggers it inside its group
   .rv-img   a picture fades in and settles from a slight zoom
   .px       a photo band that moves slower than the page (parallax; CSS scroll-driven, no script)
   Hidden only when the script runs (html.js, set in <head>, taken back after 2.5 s if site.js never loads) and only when
   the visitor has not asked for less motion. Never put .rv on an element that has its own transform: wrap it. */
@media (prefers-reduced-motion:no-preference){
 html.js .rv{opacity:0;transform:translate3d(0,var(--rv-dist,14px),0);
  transition:opacity var(--lp-reveal-dur-block) var(--rv-ease),transform var(--lp-reveal-dur-block) var(--rv-ease);
  transition-delay:calc(var(--rv-i,0) * var(--rv-stagger,.08s))}
 html.js .rv.in{opacity:1;transform:none}
 html.js .rv-img img{opacity:0;transform:scale(1.04);
  transition:opacity var(--lp-reveal-dur-image) var(--rv-ease),transform calc(var(--lp-reveal-dur-image) * 1.6) var(--rv-ease)}
 html.js .rv-img.in img{opacity:1;transform:none}
 @supports (animation-timeline:view()){
  .px{overflow:clip}
  .px img{animation:lp-px linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
 }
}
@keyframes lp-px{from{transform:translate3d(0,calc(var(--px,5%) * -1),0) scale(var(--px-scale,1.12))}to{transform:translate3d(0,var(--px,5%),0) scale(var(--px-scale,1.12))}}
@media print{html.js .rv,html.js .rv-img img{opacity:1!important;transform:none!important}}

/* ---- engine feel kit (5 Nov 2026, from runs/2026-11-05-quality-bar.md: the "smoother" layer) ----
   On when site/design.py says FEEL = True (default from the engine version that turns it on for all).
   - expo easing tokens for every state change (no plain "ease", no .2 s colour flips)
   - page transitions between our own pages (cross-document View Transitions; browsers without them just navigate)
   - text links draw their underline away and back; buttons fill on the same slow curve
   - the glide on wheel scroll lives in feel.js; this file only hands scroll-behavior over to it
   Patterns may read html.lp-scrolled (page moved past 80 px) and html.lp-down (scrolling down) for a header that behaves. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.625,.05,0,1);--d-fast:.25s;--d-base:.55s;--d-slow:1.1s;
 --rv-ease:var(--ease-out)}
html.lp-smooth{scroll-behavior:auto}
@media (prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root){animation:lp-vt-out .32s var(--ease-io) both}
 ::view-transition-new(root){animation:lp-vt-in .6s var(--ease-out) both}
 .btn{transition:background-color var(--d-base) var(--ease-out),color var(--d-base) var(--ease-out),border-color var(--d-base) var(--ease-out)}
 .tl{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 10px)/100% 1px no-repeat;
  transition:background-size var(--d-base) var(--ease-io),color var(--d-base) var(--ease-out)}
 .tl:hover{background-size:0 1px;background-position:100% calc(100% - 10px)}
 .fold>summary::after{transition:transform var(--d-base) var(--ease-out)}
}
@keyframes lp-vt-out{to{opacity:0;transform:translate3d(0,-10px,0)}}
@keyframes lp-vt-in{from{opacity:0;transform:translate3d(0,18px,0)}}

/* ---- this site only (site/extra.css) ---- */
/* Le Bistro only: Gloock has one weight, so every heading that a shared pattern sets in bold display type is turned back to
   400 (no faux bold), and small labels use the text face. One label voice only (the tracked-caps .k); buttons, tabs and
   summaries are sentence case. */
.btn,.fold>summary{text-transform:none;letter-spacing:.01em}
.fold>summary{font-weight:600}
.ftr .wm{font-weight:400;letter-spacing:.06em;color:var(--c-gold)}
.hrs b,.addr b,.rules dt{font-family:var(--f-text);font-weight:600}
.visit{background:var(--c-raised)}
.visit h2,.vpage h1{font-weight:400;letter-spacing:-.025em}
.visit .addr a,.visit .note a{color:var(--c-gold)}
.vpage .visit{background:var(--c-paper)}
.more-links a{color:var(--c-gold)}
.addr a{display:inline-block;padding:11px 0;line-height:22px}
.hrs li{border-bottom-color:var(--c-rule-dark)}
.hrs{border-top-color:var(--c-gold)}
.rules div{border-bottom-color:var(--c-rule-dark)}
.rules div:first-child{border-top-color:var(--c-gold)}
.nf{padding-top:56px}
.nf h1{font-weight:400}
.nf-dish{width:min(320px,70%)}
.nf-dish img{filter:none;aspect-ratio:1;object-fit:cover;border:6px solid transparent;outline:1px solid var(--c-gold);outline-offset:6px}
@media (min-width:1100px){.nf-dish{width:min(440px,100%)}}

