@font-face{font-family:"DM Serif Display";src:url(../fonts/dmserif-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Serif Display";src:url(../fonts/dmserif-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"DM Sans";src:url(../fonts/dmsans.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
:root{--page:#f0dccf;--card:#f9f1ec;--text:#2a1c13;--mute:#65564b;--dk:#2b1a12;--dk-t:#f0dccf;--ac:#d08f45;--ac-t:#2b1a12;--ac2:#8a3b1f;--ac2-t:#f0dccf;--hi:#d08f45;--ey:#8a3b1f;--star:#bf7d33;--wa:#1e6b3a;--demo-bg:#2b1a12;--demo-t:#f0dccf;--page-rgb:240,220,207;--text-rgb:42,28,19;--dk-rgb:43,26,18;--dk-t-rgb:240,220,207;--ac-rgb:208,143,69;--ac2-rgb:138,59,31;--hi-rgb:208,143,69;--line:rgba(42,28,19,.16);--pat:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2214%22%20viewBox%3D%220%200%2048%2014%22%3E%3Cpath%20d%3D%22M0%207c6%200%206-5%2012-5s6%205%2012%205%206-5%2012-5%206%205%2012%205%22%20fill%3D%22none%22%20stroke%3D%22%232a1c13%22%20stroke-opacity%3D%220.09%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");--pat-dk:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2214%22%20viewBox%3D%220%200%2048%2014%22%3E%3Cpath%20d%3D%22M0%207c6%200%206-5%2012-5s6%205%2012%205%206-5%2012-5%206%205%2012%205%22%20fill%3D%22none%22%20stroke%3D%22%23f0dccf%22%20stroke-opacity%3D%220.1%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");--r:14px;--hero-r:28px;--btn-r:999px;--btn-tt:none;--btn-ls:0;--dw:400;--hlh:1.06;--hls:-.01em;--htt:none;--tilt1:-1.4deg;--tilt2:1.2deg;--gut:clamp(1rem,4.5vw,3rem);--ease:cubic-bezier(.2,.7,.2,1);--grain:0.04;--disp:"DM Serif Display",Georgia,"Times New Roman",serif;--body:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5.5rem}
@media(min-width:1800px){html{font-size:112.5%}}@media(min-width:2400px){html{font-size:137.5%}}@media(min-width:3200px){html{font-size:175%}}
body{font-family:var(--body);font-size:1.0625rem;line-height:1.65;color:var(--text);background:var(--page);-webkit-font-smoothing:antialiased;overflow-x:hidden;min-width:320px}
img,svg{display:block;max-width:100%;height:auto}
picture{display:contents}
a{color:inherit;text-underline-offset:.2em}
h1,h2,h3,h4{font-family:var(--disp);font-weight:var(--dw);line-height:var(--hlh);letter-spacing:var(--hls);text-transform:var(--htt);font-optical-sizing:auto;text-wrap:balance}
p{text-wrap:pretty}
.wrap{width:min(75rem,100% - 2*var(--gut));margin-inline:auto}
.narrow{width:min(46rem,100% - 2*var(--gut));margin-inline:auto}.narrow.prose{width:min(38rem,100% - 2*var(--gut))}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:.5rem;transform:translateY(-200%);z-index:100;background:var(--text);color:var(--page);padding:.7rem 1.1rem;border-radius:999px;transition:transform .2s var(--ease)}
.skip:focus{transform:none}
:focus-visible{outline:3px solid var(--text);outline-offset:3px;box-shadow:0 0 0 6px var(--ac)}
/* demo marker */
.demo{background:var(--demo-bg);color:var(--demo-t);font-size:.8rem;padding:.55rem var(--gut);line-height:1.45;display:flex;gap:.5rem .8rem;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}
.demo b{background:var(--demo-t);color:var(--demo-bg);padding:.12rem .6rem;border-radius:999px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.demo a{color:inherit;font-weight:700}
.demo-d{display:contents}.demo-s{display:none}
.demo-x{font:inherit;font-weight:700;color:inherit;background:none;border:1px solid currentColor;border-radius:999px;padding:0 .9rem;min-height:36px;cursor:pointer;margin:0;display:inline-flex;align-items:center}
.demo.c{padding-block:.25rem}.demo.c .demo-d{display:none}.demo.c .demo-s{display:inline}
@media(max-width:720px){.demo{padding-block:.3rem;justify-content:space-between;text-align:left;gap:.3rem .7rem}.demo-d{flex-basis:100%;order:3;display:flex;flex-direction:column;gap:.4rem}
.demo.c{flex-wrap:nowrap}.demo.c b{display:none}.demo.c .demo-s{flex:1 1 auto;font-size:.78rem;line-height:1.25}.demo.c .demo-x{min-height:44px;flex:none}}
.demo-pill{display:inline-flex;align-items:center;flex:none;background:var(--demo-bg);color:var(--demo-t);font:700 .72rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;padding:.38rem .6rem;border-radius:999px;text-decoration:none;border:1.5px solid var(--demo-t)}
.demo-box{border:2px dashed currentColor;border-radius:12px;padding:1rem 1.2rem;font-size:.9rem;margin-bottom:2rem}
.demo-box p+p{margin-top:.5rem}.demo-box a{font-weight:700}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(var(--page-rgb),.93);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.hdr.scrolled{border-color:var(--line);box-shadow:0 8px 30px rgba(0,0,0,.12)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:.6rem;height:5.3rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-family:var(--disp);font-weight:var(--dw);font-size:1.15rem;line-height:1.1;min-width:0;text-transform:var(--htt);letter-spacing:var(--hls)}
.brand .mk{width:3.1rem;height:3.1rem;flex:none;transition:transform .5s var(--ease)}@media(hover:hover) and (pointer:fine){.brand:hover .mk{transform:rotate(-6deg) scale(1.06)}}
.brand .nm{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:clamp(.92rem,3.8vw,1.15rem)}
.hdr .wrap>.demo-pill{margin-left:auto}
.nav{display:flex;align-items:center;gap:.3rem}
.nav a{text-decoration:none;padding:.5rem .8rem;border-radius:999px;font-weight:500;font-size:.98rem;position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.25rem;height:2px;background:var(--ey);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a[aria-current=page]::after{transform:scaleX(1)}@media(hover:hover) and (pointer:fine){.nav a:not(.btn):hover::after{transform:scaleX(1)}}
.nav .lang{border:1.5px solid var(--text);font-weight:700;font-size:.82rem;padding:.3rem .65rem;margin-left:.4rem}@media(hover:hover) and (pointer:fine){.nav .lang:hover{background:var(--text);color:var(--page)}}
.nav .btn{margin-left:.4rem}
.nav-toggle{display:none;background:none;border:0;width:2.9rem;height:2.9rem;border-radius:50%;cursor:pointer;color:var(--text);flex:none}
.nav-toggle span{display:block;width:1.5rem;height:2px;background:currentColor;margin:5px auto;transition:transform .3s,opacity .3s}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1010px){
 .js .nav-toggle{display:block}
 .js .nav{justify-content:flex-start;position:absolute;top:100%;left:0;right:0;height:calc(100vh - 5.3rem);height:calc(100dvh - 5.3rem);background:var(--page);flex-direction:column;align-items:stretch;padding:1.5rem var(--gut) 6rem;gap:.2rem;transform:translateY(-1rem);opacity:0;visibility:hidden;transition:opacity .3s,transform .4s var(--ease),visibility .3s;overflow:auto}
 .js .nav.open{opacity:1;visibility:visible;transform:none}
 .js .nav a{font-family:var(--disp);font-size:1.7rem;padding:.7rem 0;border-bottom:1px solid var(--line);border-radius:0;font-weight:var(--dw)}
 .js .nav a::after{display:none}
 .js .nav .btn{margin:1rem 0 0;justify-content:center;font-family:var(--body);font-size:1.1rem;border-radius:var(--btn-r);border:0;padding:1rem}
 .js .nav .lang{margin:1rem 0 0;text-align:center;font-family:var(--body);font-size:1rem;border:1.5px solid var(--text);border-radius:var(--btn-r)}
 .nav{flex-wrap:wrap;justify-content:flex-end}
 .nav a{font-size:.9rem;padding:.4rem .5rem}
}
/* buttons */
.btn{--b-bg:var(--ac);--b-fg:var(--ac-t);display:inline-flex;align-items:center;justify-content:center;gap:.55rem;background:var(--b-bg);color:var(--b-fg);padding:.85rem 1.45rem;border-radius:var(--btn-r);font-weight:700;text-decoration:none;border:2px solid var(--b-bg);cursor:pointer;font:inherit;font-weight:700;text-transform:var(--btn-tt);letter-spacing:var(--btn-ls);position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),background .25s,color .25s}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);z-index:-1}@media(hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-2px)}}@media(hover:hover) and (pointer:fine){.btn:hover::before{transform:translateX(120%);transition:transform .8s var(--ease)}}
.btn:active{transform:translateY(0) scale(.98)}
.btn.dark{--b-bg:var(--text);--b-fg:var(--page)}
.btn.ghost{--b-bg:transparent;--b-fg:currentColor;border-color:currentColor}@media(hover:hover) and (pointer:fine){.btn.ghost:hover{background:var(--text);color:var(--page);border-color:var(--text)}}@media(hover:hover) and (pointer:fine){.on-dark .btn.ghost:hover,.hero[data-v=photo] .btn.ghost:hover,.hero[data-v=center] .btn.ghost:hover{background:var(--dk-t);color:var(--dk);border-color:var(--dk-t)}}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn.wa{--b-bg:var(--wa);--b-fg:#fff;border-color:var(--wa)}
.accent-bg .btn.dark{--b-bg:var(--ac-t);--b-fg:var(--ac)}@media(hover:hover) and (pointer:fine){.accent-bg .btn.ghost:hover{background:var(--ac-t);color:var(--ac);border-color:var(--ac-t)}}
.accent2-bg .btn:not(.ghost):not(.wa){--b-bg:var(--hi);--b-fg:var(--dk)}@media(hover:hover) and (pointer:fine){.accent2-bg .btn.ghost:hover{background:#fff;color:var(--ac2);border-color:#fff}}
.cta{display:flex;flex-wrap:wrap;gap:.8rem}
/* hero */
.hero{position:relative;color:#fff;min-height:clamp(34rem,calc(100svh - 7rem),62rem);display:flex;align-items:flex-end;overflow:hidden;background:var(--dk)}
.hero-media{position:absolute;inset:-6% 0 -6%;will-change:transform;transform:translate3d(0,var(--py,0),0)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 60%);animation:kb var(--kb,26s) ease-out both}
@keyframes kb{from{transform:scale(1.14)}to{transform:scale(1.02)}}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(var(--dk-rgb),.66) 0%,rgba(var(--dk-rgb),.42) 38%,rgba(var(--dk-rgb),.86) 100%),radial-gradient(120% 80% at 0 100%,rgba(var(--dk-rgb),.65),transparent 60%)}
.hero-in{position:relative;z-index:4;/* above the hero decorations (seams, grain, ::before/::after at z<=3): buttons always on top */ padding-block:6rem clamp(2.5rem,7vh,5rem)}
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:1rem;letter-spacing:.01em;font-weight:700;color:var(--hi)}
.hero:not([data-v=split]):not([data-v=typo]) .kicker{text-shadow:0 1px 12px rgba(0,0,0,.7)}
.kicker::before{content:"";width:2.4rem;height:2px;background:currentColor;flex:none}
.hero h1{font-size:clamp(2.7rem,8.4vw,7.2rem);margin:.9rem 0 1.1rem;max-width:14ch;text-shadow:0 4px 40px rgba(0,0,0,.35)}
.hero h1 .w{display:inline-block;animation:rise var(--rise,1s) var(--ease) both;animation-delay:calc(.15s + var(--i)*.09s)}
@keyframes rise{from{opacity:0;transform:translateY(.6em) rotate(1.5deg)}to{opacity:1;transform:none}}
.hero .lead{font-size:clamp(1.1rem,2.2vw,1.45rem);max-width:36rem;margin-bottom:1.8rem;text-shadow:0 2px 18px rgba(0,0,0,.5);animation:rise 1s .7s var(--ease) both}
.hero .cta{animation:rise 1s .85s var(--ease) both}
.badge{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.4rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.38);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.4rem .95rem;border-radius:999px;font-size:.92rem;animation:rise 1s 1s var(--ease) both}
.dot{width:.65rem;height:.65rem;border-radius:50%;background:#8a8a8a;flex:none}
.badge[data-state=open] .dot{background:#5fd07a;box-shadow:0 0 0 0 rgba(95,208,122,.7);animation:pulse 2s infinite}
.badge[data-state=closed] .dot{background:#ff8a6b}
@keyframes pulse{70%{box-shadow:0 0 0 .6rem rgba(95,208,122,0)}100%{box-shadow:0 0 0 0 rgba(95,208,122,0)}}
.scroll-cue{position:absolute;right:var(--gut);bottom:2rem;z-index:2;width:1.6rem;height:2.6rem;border:2px solid rgba(255,255,255,.7);border-radius:1rem}
.scroll-cue::after{content:"";position:absolute;left:50%;top:.45rem;width:4px;height:.55rem;margin-left:-2px;border-radius:2px;background:#fff;animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(.9rem)}}
@media(max-width:700px){.scroll-cue{display:none}.hero-in{padding-top:4rem}}
/* hero variant: center */
.hero[data-v=center]{align-items:center;text-align:center}
.hero[data-v=center]::before{background:radial-gradient(90% 70% at 50% 50%,rgba(var(--dk-rgb),.55),rgba(var(--dk-rgb),.85))}
.hero[data-v=center] .hero-in{display:flex;flex-direction:column;align-items:center;padding-block:5rem}
.hero[data-v=center] h1{max-width:16ch;margin-inline:auto}
.hero[data-v=center] .lead{margin-inline:auto}
.hero[data-v=center] .cta{justify-content:center}
.hero[data-v=center] .kicker::after{content:"";width:2.4rem;height:2px;background:currentColor}
/* hero variant: split */
.hero[data-v=split]{color:var(--text);background:var(--page);min-height:0;display:block;overflow:visible}
.hero[data-v=split]::before,.hero[data-v=split] .scroll-cue{display:none}
.hero[data-v=split] .hero-in{display:grid;gap:2rem;align-items:center;padding-block:clamp(2rem,6vw,4.5rem)}
@media(min-width:900px){.hero[data-v=split] .hero-in{grid-template-columns:1.05fr .95fr;gap:4rem}}
.hero[data-v=split] .hero-media{position:relative;inset:auto;order:2;border-radius:var(--hero-r);overflow:hidden;aspect-ratio:5/4;transform:none;box-shadow:0 30px 60px -28px rgba(0,0,0,.5);will-change:auto}
@media(min-width:900px){.hero[data-v=split] .hero-media{aspect-ratio:4/5;max-height:38rem}}
.hero[data-v=split] .hero-media img{position:absolute;inset:0}
.hero[data-v=split] .kicker{color:var(--ey)}
.hero[data-v=split] h1{text-shadow:none;font-size:clamp(2.6rem,7vw,5.6rem);max-width:12ch}
.hero[data-v=split] .lead{text-shadow:none}
.hero[data-v=split] .badge{background:var(--card);border-color:var(--line);color:var(--text)}
.phero{position:relative;color:var(--dk-t);background:var(--dk);padding:clamp(3.5rem,9vw,7rem) 0 clamp(2.5rem,6vw,4.5rem);overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background:var(--bg-img,none) center/cover;opacity:.32}
.phero.noimg::before{background:radial-gradient(60% 120% at 100% 0,rgba(var(--ac-rgb),.28),transparent 70%),radial-gradient(50% 100% at 0 100%,rgba(var(--ac2-rgb),.35),transparent 70%);opacity:1}
.phero .wrap{position:relative}
.phero .eyebrow{color:var(--hi)}.phero:not(.noimg) .eyebrow{color:var(--dk-t)}
.phero h1{font-size:clamp(2.4rem,6.5vw,5rem);margin-top:.7rem;max-width:18ch}.phero h1.long{font-size:clamp(2rem,4.6vw,3.6rem);max-width:26ch}
.phero p{max-width:40rem;margin-top:1rem;font-size:1.15rem;opacity:.92}
/* sections */
section{padding:clamp(3.5rem,9vw,7.5rem) 0}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:1rem;letter-spacing:.01em;font-weight:700;color:var(--ey)}.eyebrow::before{content:"";width:1.5rem;height:2px;background:currentColor;opacity:.75;flex:none}
.on-dark .eyebrow{color:var(--hi)}
.accent-bg .eyebrow{color:var(--ac-t)}
.accent2-bg .eyebrow{color:var(--ac2-t)}
h2{font-size:clamp(2rem,5vw,3.6rem);margin:.5rem 0 1.2rem}
h3{font-size:clamp(1.3rem,2.4vw,1.7rem)}
.lead{font-size:1.2rem;max-width:40rem}
.split{display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(min-width:880px){.split{grid-template-columns:1fr 1fr}.split.flip>:first-child{order:2}}
.frame{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:0 30px 60px -25px rgba(0,0,0,.5)}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}@media(hover:hover) and (pointer:fine){.frame:hover img{transform:scale(1.04)}}
.tilt{rotate:var(--tilt1,-1.4deg)}.tilt2{rotate:var(--tilt2,1.2deg)}
.stack{position:relative}
.stack .mark-badge{position:absolute;right:-.5rem;bottom:-1.5rem;width:clamp(6rem,16vw,9rem);background:var(--page);border-radius:50%;padding:.7rem;box-shadow:0 12px 30px rgba(0,0,0,.3);aspect-ratio:1;display:grid;place-items:center}
.mark-badge svg,.mark-badge img{width:100%}
blockquote{font-family:var(--disp);font-style:italic;font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.3;border-left:4px solid var(--ac);padding-left:1.2rem;margin:1.8rem 0 0}
blockquote footer{font-family:var(--body);font-style:normal;font-size:.9rem;margin-top:.7rem;color:var(--mute);padding:0;background:none}
.on-dark blockquote footer{color:rgba(var(--dk-t-rgb),.8)}
.dark{background:var(--dk);color:var(--dk-t)}
.accent-bg{background:var(--ac);color:var(--ac-t)}
.accent2-bg{background:var(--ac2);color:var(--ac2-t)}
.accent2-bg .lead{opacity:.96}
/* marquee */
.marquee{position:relative;background:var(--ac);color:var(--ac-t);overflow:hidden;padding:1rem 0;border-block:2px solid var(--ac-t);font-family:var(--disp);font-weight:var(--dw);text-transform:var(--htt);font-size:clamp(1.2rem,2.6vw,1.8rem);white-space:nowrap;-webkit-user-select:none;user-select:none}
.marquee ul{display:inline-flex;list-style:none;padding:0;animation:mq 38s linear 3}
.marquee li{padding:0 1.4rem;display:inline-flex;align-items:center;gap:2.8rem}
.marquee li::after{content:"✦";font-size:.7em}@media(hover:hover) and (pointer:fine){.marquee:hover ul{animation-play-state:paused}}
@keyframes mq{to{transform:translateX(-50%)}}
/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.5rem 2rem}
.stat b{display:block;font-family:var(--disp);font-weight:var(--dw);font-size:clamp(2.6rem,6vw,4.4rem);line-height:1;color:var(--hi)}
.stat span{display:block;margin-top:.4rem;font-size:.95rem;opacity:.92}
.stat small{display:block;opacity:.78;font-size:.78rem;margin-top:.2rem}
.award{display:inline-flex;gap:.6rem;align-items:center;border:1.5px solid var(--hi);color:var(--hi);padding:.45rem 1rem;border-radius:999px;font-weight:700;font-size:.9rem;margin-top:2rem}
/* gallery */
.mosaic{display:grid;gap:.8rem;grid-template-columns:repeat(2,1fr)}
.mosaic a{display:block;border-radius:14px;overflow:hidden;position:relative;aspect-ratio:1}
.mosaic a:nth-child(1){grid-column:span 2;aspect-ratio:16/9}
@media(min-width:760px){.mosaic{grid-template-columns:repeat(4,1fr)}.mosaic a:nth-child(1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}
.mosaic img,.gal img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .4s}@media(hover:hover) and (pointer:fine){.mosaic a:hover img,.gal a:hover img{transform:scale(1.07)}}
.gal{columns:1;column-gap:1rem}
@media(min-width:560px){.gal{columns:2}}@media(min-width:960px){.gal{columns:3}}
.gal figure{break-inside:avoid;margin:0 0 1rem;position:relative}
.gal a{display:block;border-radius:14px;overflow:hidden;position:relative;cursor:zoom-in}
.gal figcaption{font-size:.88rem;color:var(--mute);padding:.5rem .2rem 0}
.gal a::after,.mosaic a::after{content:"";position:absolute;inset:0;background:transparent;transition:background .4s}@media(hover:hover) and (pointer:fine){.gal a:hover::after,.mosaic a:hover::after{background:rgba(0,0,0,.18)}}
.gal figure[hidden]{display:none}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.2rem 0 2rem}
.chip{border:1.5px solid var(--text);background:transparent;color:var(--text);padding:.5rem 1.1rem;border-radius:999px;font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .25s,color .25s}

.chip[aria-pressed=true]{background:var(--text);color:var(--page)}@media(hover:hover) and (pointer:fine){.chip:hover{background:var(--text);color:var(--page)}}
dialog.lb{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;max-height:100dvh;width:100%;height:100%;color:#fff}
dialog.lb::backdrop{background:rgba(10,8,6,.94)}
.lb-in{display:grid;grid-template-rows:1fr auto;height:100%;padding:3.5rem 1rem 1.2rem;gap:.8rem}
.lb-in figure{display:grid;place-items:center;min-height:0}
.lb-in img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px;animation:zin .45s var(--ease)}
@keyframes zin{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.lb-in p{text-align:center;font-size:.95rem;max-width:44rem;margin:0 auto}
.lb button{position:absolute;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);color:#fff;width:3rem;height:3rem;border-radius:50%;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:background .2s}@media(hover:hover) and (pointer:fine){.lb button:hover{background:var(--ac);color:var(--ac-t)}}
.lb .x{top:.8rem;right:.8rem}.lb .pv{left:.8rem;top:50%}.lb .nx{right:.8rem;top:50%}
/* menu */
.menu-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem;position:relative;isolation:isolate;transition:transform .4s var(--ease)}.mcard::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 22px 40px -24px rgba(0,0,0,.5);opacity:0;transition:opacity .4s;pointer-events:none;z-index:-1}@media(hover:hover) and (pointer:fine){.mcard:hover{transform:translateY(-5px)}.mcard:hover::after{opacity:1}}
.mcard h2{font-size:1.5rem;display:flex;align-items:center;gap:.6rem;margin:0 0 .9rem}
.mcard h2 svg{width:1.7rem;height:1.7rem;color:var(--ey);flex:none}
.mcard ul{list-style:none;padding:0}
.mcard li{padding:.55rem 0;border-bottom:1px dashed var(--line)}
.mcard li:last-child{border:0}
.mcard li small{display:block;color:var(--mute);font-size:.86rem}
.mcard p{color:var(--mute);font-size:.95rem;margin-top:.8rem}
.note{background:var(--card);background:color-mix(in srgb,var(--ey) 7%,var(--card));border:1px solid var(--line);padding:1rem 1.3rem;border-radius:12px;margin-top:2rem;font-size:.98rem}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin-top:1rem}
.tags li{border:1.5px solid var(--text);padding:.3rem .85rem;border-radius:999px;font-size:.92rem;font-weight:500}
/* reviews */
.revs{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.rev{background:var(--card);border-radius:var(--r);padding:1.8rem;border:1px solid var(--line);position:relative;display:flex;flex-direction:column;gap:.9rem}
.rev::before{content:"“";position:absolute;right:1.2rem;top:-.2rem;font-family:var(--disp);font-size:6rem;line-height:1;color:var(--ac);opacity:.6}
.stars{color:var(--star);letter-spacing:.15em;font-size:1.1rem}
.rev blockquote{border:0;padding:0;margin:0;font-style:normal;font-family:var(--body);font-size:1.02rem;line-height:1.6}
.rev cite{font-style:normal;font-weight:700;margin-top:auto}
.rev cite small{display:block;font-weight:400;color:var(--mute)}
.reply{font-size:.9rem;background:rgba(var(--ac-rgb),.18);padding:.6rem .9rem;border-radius:10px}
.snap{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem var(--gut) 1.5rem;margin-inline:calc(-1*var(--gut));scrollbar-width:thin}
.snap>*{flex:0 0 min(88%,24rem);scroll-snap-align:center}
@media(min-width:1000px){.snap{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible;margin:0;padding:.5rem 0}.snap>*{flex:initial}}
/* info */
.info-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
table.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:.7rem 0;border-bottom:1px solid var(--line);text-align:left;font-weight:500}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr.today th,.hours tr.today td{color:var(--ey);font-weight:800}
.hours tr.today th::after{content:attr(data-today);margin-left:.6rem;font-size:.72rem;background:var(--ey);color:var(--page);padding:.12rem .5rem;border-radius:999px;vertical-align:middle}
.hours .closed{color:var(--mute)}
.feat{display:grid;gap:.7rem;list-style:none;padding:0;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.feat li{display:flex;gap:.7rem;align-items:flex-start}
.feat li::before{content:"✓";flex:none;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--dk);color:var(--hi);display:grid;place-items:center;font-size:.85rem;font-weight:800;margin-top:.15rem}
.map{position:relative;border-radius:var(--r);overflow:hidden;min-height:22rem;background:var(--dk) var(--bg-img,none) center/cover;display:grid;place-items:center;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.map::before{content:"";position:absolute;inset:0;background:rgba(var(--dk-rgb),.66)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-ph{position:relative;text-align:center;color:var(--dk-t);padding:1.5rem;max-width:26rem}
.map-ph p{margin:.6rem 0 1.2rem;font-size:.95rem}
.map-ph .cta{justify-content:center}
address{font-style:normal}
.big-contact{font-family:var(--disp);font-weight:var(--dw);font-size:clamp(1.8rem,5.5vw,3.6rem);text-decoration:none;line-height:1.1;display:inline-block;border-bottom:3px solid var(--ac)}@media(hover:hover) and (pointer:fine){.big-contact:hover{background:var(--ac);color:var(--ac-t)}}
form.book{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);background:var(--card);padding:clamp(1.3rem,3vw,2.2rem);border-radius:var(--r);border:1px solid var(--line)}
form.book .full{grid-column:1/-1}
label{display:block;font-weight:700;font-size:.92rem;margin-bottom:.3rem}
input,select{width:100%;font:inherit;padding:.8rem 1rem;border-radius:12px;border:1.5px solid rgba(var(--text-rgb),.55);background:var(--page);color:var(--text);min-height:3rem}
input:focus-visible,select:focus-visible{border-color:var(--text)}
@media(max-width:520px){form.book{grid-template-columns:1fr}}
.timeline{list-style:none;padding:0;margin:2rem 0 0;border-left:2px solid var(--hi);display:grid;gap:2rem}
.timeline li{position:relative;padding-left:1.8rem}
.timeline li::before{content:"";position:absolute;left:-.55rem;top:.5rem;width:1rem;height:1rem;border-radius:50%;background:var(--hi);border:3px solid var(--dk)}
.timeline b{font-family:var(--disp);font-weight:var(--dw);font-size:1.3rem;display:block;color:var(--hi)}
.sources{font-size:.85rem;color:var(--mute);margin-top:1.5rem;max-width:30rem}
.dark .sources,.on-dark .sources{color:rgba(var(--dk-t-rgb),.78)}
.accent-bg .sources{color:var(--ac-t)}
.sources a{color:inherit}
.prose h2{font-size:1.7rem;margin-top:2.2rem}
.prose p,.prose ul{margin-top:.9rem}
.prose ul{padding-left:1.3rem}
.ph{background:repeating-linear-gradient(45deg,rgba(var(--ac-rgb),.4),rgba(var(--ac-rgb),.4) 6px,rgba(var(--ac-rgb),.18) 6px,rgba(var(--ac-rgb),.18) 12px);padding:.05rem .4rem;border-radius:4px;font-weight:700}
/* footer */
.ftr{background:var(--dk);color:rgba(var(--dk-t-rgb),.9);padding:4rem 0 6.5rem;font-size:.95rem}
.ftr .wrap{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.ftr .brand-f{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;font-family:var(--disp);font-weight:var(--dw);font-size:1.4rem;line-height:1.1;color:var(--dk-t);text-transform:var(--htt)}
.ftr .brand-f .mk{width:3.6rem;height:3.6rem;flex:none}
.ftr h2{font-family:var(--body);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--hi);margin:0 0 .8rem}
.ftr ul{list-style:none;padding:0;display:grid;gap:.35rem}
.ftr a{text-decoration:none}@media(hover:hover) and (pointer:fine){.ftr a:hover{text-decoration:underline;color:#fff}}
.legal{grid-column:1/-1;border-top:1px solid rgba(var(--dk-t-rgb),.22);padding-top:1.5rem;font-size:.82rem}
.legal p+p{margin-top:.5rem}
.legal a{text-decoration:underline}
/* sticky call */
.callbar{position:fixed;z-index:60;left:.7rem;right:.7rem;bottom:calc(.7rem + env(safe-area-inset-bottom));display:flex;align-items:center;gap:.45rem;background:rgba(var(--dk-rgb),.95);padding:.4rem;border-radius:999px;box-shadow:0 14px 40px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .4s var(--ease);max-width:30rem;margin:0 auto}
.cb-note{position:absolute;left:.4rem;right:.4rem;bottom:calc(100% + .5rem);margin:0;padding:.7rem 1rem;border-radius:1rem;background:var(--text);color:var(--page);font-size:.92rem;font-weight:600;text-align:center;box-shadow:0 10px 30px -8px rgba(0,0,0,.45)}
.callbar a,.callbar button{font:inherit;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.45rem;border-radius:999px;text-decoration:none;font-weight:700;color:var(--dk-t);min-height:3rem;-webkit-tap-highlight-color:transparent}
.callbar .cb-ic{flex:none;width:3rem;height:3rem;padding:0;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.callbar .cb-ic svg{width:1.35rem;height:1.35rem}
.callbar a.wa{background:var(--wa);color:#fff;box-shadow:none}.callbar a.wa svg{width:1.55rem;height:1.55rem}
.callbar .cb-main{flex:1 1 auto;min-width:0;padding:0 1.1rem;background:var(--ac);color:var(--ac-t);font-size:1rem;letter-spacing:.01em;white-space:nowrap}
.callbar .cb-main span,.callbar .cb-menu span{overflow:hidden;text-overflow:ellipsis}
.callbar .cb-menu{flex:none;padding:0 1.1rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);font-size:.95rem}
.callbar .cb-main svg,.callbar .cb-menu svg{width:1.15rem;height:1.15rem;flex:none}
.callbar a:focus-visible,.callbar button:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
.callbar .cb-ic:focus-visible{outline-color:#fff}
@media(max-width:350px){.callbar .cb-main{padding:0 .8rem;font-size:.94rem}.callbar .cb-main svg{display:none}}
.callbar.hide{transform:translateY(150%)}
@media(min-width:1011px){.callbar{display:none}.ftr{padding-bottom:3rem}}
/* reveal */
.js .rv{opacity:0;transform:translateY(var(--rv-y,1.6rem));transition:opacity .45s var(--ease),transform var(--rv-t,.7s) var(--ease);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .rv-img{clip-path:inset(0 0 100% 0);transition:clip-path .85s var(--ease)}
.js .rv-img.in{clip-path:inset(0)}
.d1{--d:.1s}.d2{--d:.2s}.d3{--d:.3s}.d4{--d:.4s}
.notfound{min-height:60vh;display:grid;place-items:center;text-align:center;padding:4rem 0}
.notfound .mk{width:8rem;height:8rem;margin:0 auto 1.5rem}
@media(forced-colors:active){.btn{border:2px solid ButtonText}}
/* ---- brand / logo variants ---- */
.mk-img{object-fit:contain;display:block}
.brand .mk.mk-img{width:auto;height:3.1rem;max-width:10rem}
.ftr .brand-f .mk.mk-img{width:auto;height:3.6rem;max-width:12rem}
.mk-img.plate-l,.mk-img.plate-d{box-sizing:content-box;height:2.5rem;padding:.3rem .55rem;border-radius:.6rem}
.ftr .brand-f .mk-img.plate-l,.ftr .brand-f .mk-img.plate-d{height:2.9rem}
.mk-img.plate-l{background:#fff}.mk-img.plate-d{background:var(--dk)}
.mark-badge .mk-img{width:100%;height:auto;max-height:6.5rem}
.notfound .mk.mk-img{width:auto;height:8rem;max-width:80%}
.brand.wm .nm{font-size:clamp(1.1rem,4.4vw,1.6rem);border-bottom:3px solid var(--ac);padding-bottom:.18rem}
.ftr .brand-f.wm .nm{border-bottom:3px solid var(--ac);padding-bottom:.2rem}
/* decoration set (pattern chosen in business.yaml: design.pattern) */
.dark,.ftr,.phero.noimg{background-image:var(--pat-dk)}
.phero.noimg::after{content:"";position:absolute;inset:0;background:var(--pat-dk);pointer-events:none}
/* hero: typographic (no photo, centered, decorative pattern) */
.hero[data-v=typo]{color:var(--text);background:var(--page);background-image:var(--pat);min-height:clamp(30rem,calc(88svh - 6rem),50rem);align-items:center;text-align:center;isolation:isolate}
.hero[data-v=typo]::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 70% at 12% 0,rgba(var(--ac-rgb),.24),transparent 70%),radial-gradient(55% 65% at 100% 100%,rgba(var(--ac2-rgb),.18),transparent 70%)}
.hero[data-v=typo]::after{content:"";position:absolute;inset:clamp(.6rem,2vw,1.3rem);border:1.5px solid var(--line);border-radius:var(--r);pointer-events:none}
.hero[data-v=typo] .hero-in{display:flex;flex-direction:column;align-items:center;padding-block:clamp(4rem,9vw,6.5rem)}
.hero[data-v=typo] .orn{display:flex;align-items:center;gap:.9rem;color:var(--ey);margin-bottom:1rem;font-size:1.1rem}
.hero[data-v=typo] .orn i{width:clamp(2rem,8vw,4.5rem);height:1.5px;background:currentColor;opacity:.7}
.hero[data-v=typo] .kicker{color:var(--ey)}
.hero[data-v=typo] h1{text-shadow:none;font-size:clamp(2.8rem,9.5vw,7.8rem);max-width:13ch;margin-inline:auto;line-height:var(--hlh)}
.hero[data-v=typo] .lead{text-shadow:none;margin-inline:auto;color:var(--mute)}
.hero[data-v=typo] .cta{justify-content:center}
.hero[data-v=typo] .badge{background:var(--card);border-color:var(--line);color:var(--text)}
.hero[data-v=typo] .scroll-cue{display:none}
/* hero: split, side + shape options */
@media(min-width:900px){.hero[data-v=split][data-side=left] .hero-in{grid-template-columns:.95fr 1.05fr}.hero[data-v=split][data-side=left] .hero-media{order:-1}}
.hero[data-v=split][data-shape=circle] .hero-media{aspect-ratio:1;justify-self:center;width:min(100%,34rem);max-height:none}
.hero[data-v=split][data-shape=pill] .hero-media{aspect-ratio:3/4;justify-self:center;width:min(100%,26rem)}
@media(min-width:900px){.hero[data-v=split][data-shape=pill] .hero-media{aspect-ratio:3/4;max-height:38rem}}
/* menu: list (printed-menu look) */
.mcard li .it,.ml-cat li .it,.mt-items li .it{display:flex;align-items:baseline;gap:.6rem}
.mcard li .pr{margin-left:auto;font-weight:700;color:var(--ey)}
.menu-list{max-width:64rem;margin-inline:auto}
@media(min-width:900px){.menu-list{columns:2;column-gap:5rem}}
.ml-cat{break-inside:avoid;margin-bottom:2.8rem}
.ml-cat h2{font-size:clamp(1.5rem,3vw,2.1rem);display:flex;align-items:center;gap:.7rem;margin:0;padding-bottom:.55rem;border-bottom:2px solid var(--text)}
.ml-ic svg{width:1.5rem;height:1.5rem;color:var(--ey);display:block}
.ml-note{color:var(--mute);font-style:italic;font-size:.95rem;margin-top:.55rem}
.ml-cat ul{list-style:none;padding:0;margin-top:.7rem}
.ml-cat li{padding:.62rem 0}
.ml-cat .n{font-weight:700;font-size:1.08rem}
.ml-cat li small{display:block;color:var(--mute);font-size:.9rem;margin-top:.1rem}
.ml-cat .pr{flex:1;display:flex;justify-content:flex-end;gap:.6rem;font-weight:700;color:var(--ey)}
.ml-cat .pr::before{content:"";flex:1;border-bottom:2px dotted var(--line);transform:translateY(-.35em)}
/* menu: tabs (sticky category bar + one band per category) */
.mnav{position:sticky;top:5.3rem;z-index:20;display:flex;gap:.5rem;overflow-x:auto;padding:.75rem 0;margin-bottom:1.2rem;background:rgba(var(--page-rgb),.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);scrollbar-width:thin}
.mnav a{flex:none;padding:.5rem 1.05rem;border:1.5px solid var(--line);border-radius:var(--btn-r);text-decoration:none;font-weight:700;color:var(--text);white-space:nowrap}
.mnav a:focus-visible{background:var(--ac);color:var(--ac-t);border-color:var(--ac)}@media(hover:hover) and (pointer:fine){.mnav a:hover{background:var(--ac);color:var(--ac-t);border-color:var(--ac)}}
.mt-cat{display:grid;gap:1.2rem 3rem;padding:2.2rem 0;border-top:1px solid var(--line);scroll-margin-top:calc(var(--hdr-h,4.3rem) + 4.5rem)}
@media(min-width:900px){.mt-cat{grid-template-columns:minmax(13rem,.8fr) 2.2fr}}
.mt-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem);margin:.3rem 0 0}
.mt-head p{color:var(--mute);margin-top:.6rem;font-size:.97rem}
.mt-ic svg{width:2.6rem;height:2.6rem;color:var(--ey);display:block}
.mt-items{list-style:none;padding:0;display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15.5rem),1fr))}
.mt-items li{padding:1rem 1.1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.mt-items .n{font-weight:700}
.mt-items li small{display:block;color:var(--mute);font-size:.88rem;margin-top:.25rem}
.mt-items .pr{margin-left:auto;font-weight:700;color:var(--ey)}
/* print */
@media print{
 @page{margin:1.6cm}
 body{background:#fff;color:#000;font-size:11pt}
 .hdr,.callbar,.ftr,.skip,.scroll-cue,.cta,.btn,.chips,.marquee,.phero::before,.noprint,.map,form,.nav-toggle{display:none!important}
 .demo{background:none;color:#000;border:1px solid #000;font-size:9pt}
 .phero{background:none;color:#000;padding:0 0 1rem}
 section{padding:1rem 0;break-inside:avoid}
 .dark,.accent-bg,.accent2-bg{background:#fff;color:#000}
 .mcard{border:1px solid #999;background:#fff;color:#000;break-inside:avoid;box-shadow:none}
 .menu-grid{grid-template-columns:1fr 1fr}
 a{text-decoration:none}
 .js .rv,.js .rv-img{opacity:1!important;transform:none!important;clip-path:none!important}
 .hero{min-height:0;color:#000;background:#fff}.hero-media,.hero::before{display:none}
 a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt}
}

/* touch craft: no grey tap flash, no 300 ms delay, press feedback on pointer-down (hover is gated to fine pointers above) */
html{-webkit-tap-highlight-color:transparent}
a,button,summary,label,input,select,textarea,.chip,[role=button]{touch-action:manipulation}
@media(prefers-reduced-motion:no-preference){.btn,.chip,.mnav a,.callbar a{transition-property:transform,background,color,border-color}.btn:active,.callbar a:active,.callbar button:active{transform:scale(.97);transition-duration:.1s}.chip:active{transform:scale(.96);transition-duration:.1s}}
.t-ttl,.mi .n,.mi h3,.mi h4,.mcard h3{overflow-wrap:anywhere}
h1,h2,h3,.h2,.hero .lead,.phero .lead{text-wrap:balance}
p,li,blockquote{text-wrap:pretty}
.marquee li{text-wrap:nowrap} /* p,li pretty above reset the inherited nowrap: dish names in the marquee wrapped word by word */

.gal figcaption,.pf-q figcaption,figcaption{text-wrap:balance}
/* UI UX Pro Max checklist (touch targets >=24px, WCAG 2.5.8): enlarge hit area of small standalone links without moving layout */
footer a:not(.btn),figcaption a,.demo-d a,.sources a{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding-block:.4em;margin-block:-.4em}
.split>*{min-width:0}.split ul>li{min-width:0;overflow-wrap:anywhere} /* 320px: booking form grid item overflowed by 31px */
.bk-split>form,.bk-split>.bw{order:-1}@media(min-width:880px){.bk-split>form,.bk-split>.bw{order:2}}
@media(max-width:879px){.bk-sec{padding-top:1.5rem}}
/* review 30 Oct: on phones the split hero showed no photo above the fold; photo first, shorter, text tighter */
@media(max-width:899px){.hero[data-v=split] .hero-in{gap:1.2rem;padding-block:1rem 2rem}.hero[data-v=split] .hero-media{order:-1;aspect-ratio:16/11;margin-inline:calc(var(--gut)*-.5)}
.hero[data-v=split] h1{font-size:clamp(2.3rem,10.5vw,3.4rem);max-width:none}.hero[data-v=split] .lead{font-size:1.02rem}.hero[data-v=split] .cta{margin-top:1.1rem}}
/* venue-type selector of a showcase group (lib/variants.py): one compact row under the demo bar */
.vt{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.25rem var(--gut);background:var(--card);color:var(--text);border-bottom:1px solid var(--line);font:600 .78rem/1.2 var(--body)}
.vt-p{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;flex:none}.vt-i{flex:none;color:var(--ac)}
.vt-cs{display:flex;gap:.3rem;min-width:0;overflow-x:auto;scrollbar-width:none}.vt-cs::-webkit-scrollbar{display:none}
.vt-c{display:inline-flex;align-items:center;flex:none;min-height:32px;padding:0 .75rem;border-radius:999px;border:1.5px solid var(--line);color:var(--text);text-decoration:none;white-space:nowrap;transition:background .2s,border-color .2s}
.vt-c:hover{border-color:var(--ac)}.vt-c[aria-current]{background:var(--ac);border-color:var(--ac);color:var(--ac-t)}
.vt-shared .vt{display:none}
.vt-x{position:relative;flex:none}.vt-xs{list-style:none;cursor:pointer;gap:.25rem;border-style:dashed}.vt-xs::-webkit-details-marker{display:none}.vt-xs svg{transition:transform .2s}.vt-x[open] .vt-xs svg{transform:rotate(180deg)}.vt-x[open] .vt-xs{border-color:var(--ac);border-style:solid}
.vt-xm{position:absolute;right:0;top:calc(100% + .4rem);z-index:60;width:min(300px,calc(100vw - 2*var(--gut)));max-height:min(70vh,520px);overflow:auto;padding:.4rem;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.22);display:grid;gap:.1rem}
.vt-xa{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.6rem .7rem;border-radius:9px;color:var(--text);text-decoration:none;font-weight:600}.vt-xa span{font-weight:500;opacity:.65;font-size:.72rem;white-space:nowrap}.vt-xa:hover,.vt-xa:focus-visible{background:color-mix(in srgb,var(--ac) 14%,transparent)}.vt-xa[aria-current]{background:var(--ac);color:var(--ac-t)}.vt-xa[aria-current] span{opacity:.85}
@media(max-width:720px){.vt{justify-content:flex-start;padding-block:.2rem}.vt-cs{flex:1 1 auto;padding-inline:.6rem 1.4rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 .6rem,#000 calc(100% - 1.6rem),transparent);mask-image:linear-gradient(90deg,transparent,#000 .6rem,#000 calc(100% - 1.6rem),transparent)}.vt-c{padding:0 .65rem}.vt-pt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
button.demo-pill{cursor:pointer;min-height:32px}button.demo-pill[aria-expanded=true]{background:var(--demo-t);color:var(--demo-bg)}
.demo-pop{position:absolute;top:calc(100% + .4rem);right:var(--gut);width:min(26rem,calc(100% - 2 * var(--gut)));background:var(--demo-bg);color:var(--demo-t);border-radius:14px;padding:1rem 2.8rem 1rem 1.1rem;font-size:.86rem;line-height:1.5;box-shadow:0 14px 40px rgba(0,0,0,.35);z-index:60;display:grid;gap:.55rem}
.demo-pop[hidden]{display:none}.demo-pop .demo-s{display:inline}.demo-pop b{background:var(--demo-t);color:var(--demo-bg);padding:.12rem .55rem;border-radius:999px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.demo-pop a{color:inherit;font-weight:700}.demo-close{position:absolute;top:.4rem;right:.4rem;width:44px;height:44px;border:0;background:none;color:inherit;font-size:1.5rem;line-height:1;cursor:pointer;border-radius:50%}
/* stacked button groups never touch (central rule) */
.cta+.cta{margin-top:.8rem}
.cta .btn{position:relative;z-index:1}

/* ===== sections: interactive menu, booking, picker, voucher, events, FAQ, proof, news, area, QR page, 404, voucher print ===== */
[hidden]{display:none!important}
/* menu items */
.mi{position:relative;list-style:none}
.mi .it{display:flex;align-items:baseline;gap:.6rem;flex-wrap:nowrap}
.mi .it .n{min-width:0}
.mi .it .pr,.mi .it .p-price{margin-left:auto;font-weight:700;color:var(--ey);white-space:nowrap;min-width:0;max-width:48%}.mi .it .pr.long{white-space:normal;text-align:right;overflow-wrap:anywhere}
.ml-cat .mi .it .pr{margin-left:0}
button.n.mi-open{font:inherit;font-weight:inherit;color:inherit;background:none;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline dotted transparent;text-underline-offset:.25em;text-decoration-thickness:1.5px}
button.n.mi-open:focus-visible{text-decoration-color:currentColor}@media(hover:hover) and (pointer:fine){button.n.mi-open:hover{text-decoration-color:currentColor}}
.mi-fav{flex:none;align-self:center;width:2.75rem;height:2.75rem;margin:-.7rem -.55rem -.7rem 0;display:grid;place-items:center;background:none;border:0;color:var(--mute);cursor:pointer;border-radius:50%}
.mi-fav svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8}@media(hover:hover) and (pointer:fine){.mi-fav:hover{color:var(--ac)}}
.mi-fav[aria-pressed=true]{color:var(--ac)}.mi-fav[aria-pressed=true] svg{fill:currentColor}
.mi-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .7rem;margin-top:.6rem}
.bd{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.18rem .55rem;border-radius:999px;border:1.5px solid var(--line);color:var(--text);background:rgba(var(--text-rgb),.04)}
.bd-daily{background:var(--ac);color:var(--ac-t);border-color:var(--ac)}
.bd-pick{border-color:var(--ey);color:var(--text)}.bd-pick span{color:var(--ey)}
.ai{display:inline-flex;align-items:center;gap:.3rem;color:var(--mute);font-size:.8rem}
.ai svg,.ci{width:1.15rem;height:1.15rem;flex:none}
.ai.di-vegan,.ai.di-vegetarian,.ai.di-glutenfree{color:var(--text)}
.ai.al{opacity:.9}
/* interactive toolbar */
.no-js .mtool,.no-js .bw,.no-js .t-fab,.no-js .pk-cta .btn[data-picker],.no-js .mi-fav{display:none}
.mtool{display:none}.js .mtool{display:block;position:sticky;top:var(--hdr-h,4.3rem);z-index:30;margin:0 -.2rem 1rem;padding:.45rem .4rem;background:rgba(var(--page-rgb),.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:top .3s var(--ease)}
.js .hdr{transition:transform .3s var(--ease),border-color .3s}
.hdr-off .hdr{transform:translateY(-105%)}.hdr-off .mtool{top:0}
.mt-bar{display:flex;align-items:center;gap:.4rem;min-height:2.9rem}
.mt-cats{flex:1 1 auto;min-width:0;display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.6rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 1.6rem),transparent);padding:.15rem 1.4rem .15rem .1rem;scroll-padding-inline:.5rem}
.mt-cats::-webkit-scrollbar{display:none}
.mt-cats a{flex:none;display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .95rem;border-radius:999px;text-decoration:none;font-weight:700;font-size:.92rem;white-space:nowrap;color:var(--mute)}
.mt-cats a[aria-current=true]{background:var(--text);color:var(--page)}
.mt-cats a:focus-visible,.mt-ib:focus-visible,.mt-fbtn:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.mt-ib{flex:none;width:2.75rem;height:2.75rem;display:grid;place-items:center;border:1.5px solid var(--line);border-radius:50%;background:var(--card);color:var(--text);cursor:pointer;font:inherit;font-size:1rem;padding:0}
.mt-ib svg{width:1.2rem;height:1.2rem}
.mt-sbtn[aria-expanded=true]{background:var(--text);color:var(--page);border-color:var(--text)}
.mt-fbtn{flex:none;position:relative;display:inline-flex;align-items:center;gap:.35rem;height:2.75rem;padding:0 .9rem;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer}
.mt-fbtn svg{width:1.15rem;height:1.15rem}.mt-fbtn.on{border-color:var(--text)}
.mt-badge{min-width:1.3rem;height:1.3rem;padding:0 .3rem;border-radius:99px;background:var(--ac);color:var(--ac-t);font-size:.75rem;display:inline-grid;place-items:center;line-height:1}
@media(max-width:374px){.mt-fl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.mt-fbtn{padding:0 .7rem}}
.mt-search{display:flex;gap:.4rem;align-items:center;margin-top:.45rem}
.mt-search[hidden]{display:none}
.mq{flex:1;min-width:0;font:inherit;font-size:1rem;height:2.75rem;padding:0 1rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--text)}
.mq::placeholder{color:var(--mute)}
.mt-active{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;margin-top:.45rem;padding-bottom:.1rem}
.mt-active[hidden]{display:none}.mt-active::-webkit-scrollbar{display:none}
.mt-x{flex:none;display:inline-flex;align-items:center;gap:.35rem;min-height:2.2rem;padding:.2rem .75rem;font-size:.82rem;background:var(--text);color:var(--page);border-color:var(--text)}
.mt-x.all{background:none;color:var(--text);border-style:dashed}
.mt-btn{flex:none;font:inherit;font-weight:700;padding:.7rem 1.1rem;border-radius:var(--btn-r);border:2px solid var(--ac);background:var(--ac);color:var(--ac-t);cursor:pointer;white-space:nowrap;margin-top:1.2rem}
.mt-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.fc,.mt-filters .chip{display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;padding:.3rem .95rem;font-size:.92rem}
.fc[aria-pressed=true]{background:var(--text);color:var(--page);border-color:var(--text)}
.mt-sheet{position:fixed;inset:auto 0 0 0;margin:0 auto;width:100%;max-width:34rem;max-height:85vh;max-height:85dvh;border:0;padding:0;border-radius:1.4rem 1.4rem 0 0;background:var(--page);color:var(--text);box-shadow:0 -20px 60px rgba(0,0,0,.35)}
.mt-sheet::backdrop{background:rgba(0,0,0,.45)}
@media(prefers-reduced-motion:no-preference){.mt-sheet[open]{animation:mtUp .28s var(--ease)}@keyframes mtUp{from{transform:translateY(40%);opacity:.4}}}
.mt-sh-in{display:flex;flex-direction:column;max-height:inherit}
.mt-sh-hd{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem .6rem;border-bottom:1px solid var(--line)}
.mt-sh-hd h2{font-size:1.35rem;margin:0}
.mt-sh-bd{overflow:auto;padding:.4rem 1.2rem 1.2rem;overscroll-behavior:contain}
.mt-sh-bd h3{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:1.1rem 0 .6rem}
.mt-sh-p{font-size:.88rem;color:var(--mute);margin:-.3rem 0 .6rem}
.mt-sh-ft{display:flex;gap:.6rem;padding:.8rem 1.2rem calc(.8rem + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.mt-sh-ft .btn{flex:1 1 auto;white-space:nowrap;padding-inline:1rem}.mt-sh-ft [data-reset]{flex:0 0 auto}.mt-sh-ft .btn[hidden]{display:none}
@media(min-width:900px){.mt-sheet{inset:0;margin:auto;border-radius:1.2rem;max-height:80vh}}
.mt-sheet-open .callbar{transform:translateY(150%)}
.mt-empty{color:var(--mute);font-size:.9rem;margin:.6rem 0}.mt-note{color:var(--mute);font-size:.78rem;line-height:1.35;margin:.4rem .2rem .1rem}
.mt-empty{padding:2rem 0;text-align:center;font-size:1.05rem}
.mcat{scroll-margin-top:12rem}
.mi[hidden],.mcat[hidden],.mt-cats a[hidden]{display:none!important}
/* today / recommended */
.daily{margin:0 0 2rem;border:2px solid var(--ac);border-radius:var(--r);background:var(--card);overflow:hidden}
.dl-in{display:grid;gap:1.2rem;align-items:center}
.dl-in>div:last-child{padding:1.3rem}
.dl-img{aspect-ratio:16/10;overflow:hidden}.dl-img img{width:100%;height:100%;object-fit:cover}
@media(min-width:760px){.dl-in{grid-template-columns:minmax(0,.9fr) 1.1fr}.dl-img{aspect-ratio:auto;height:100%;min-height:15rem}}
.dl-t{font-size:clamp(1.5rem,3vw,2.1rem);margin:.2rem 0}
.dl-pr{font-weight:700;color:var(--ey);font-size:1.2rem}
/* dialogs */
html.dlg-open{overflow:hidden}
.mdlg{border:0;padding:0;margin:auto;width:min(40rem,calc(100vw - 1.4rem));max-height:min(90svh,48rem);overflow:auto;background:var(--page);color:var(--text);border-radius:var(--r);box-shadow:0 40px 90px -20px rgba(0,0,0,.55);overscroll-behavior:contain}
.mdlg::backdrop{background:rgba(var(--dk-rgb),.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.md-in{position:relative;padding:1.6rem 1.4rem 1.5rem}
.md-in h2{font-size:clamp(1.5rem,3.2vw,2.1rem);margin:0 2.5rem .6rem 0}
.md-x{position:absolute;top:.6rem;right:.6rem;width:2.75rem;height:2.75rem;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--text);font-size:1rem;cursor:pointer;z-index:2}@media(hover:hover) and (pointer:fine){.md-x:hover{background:var(--text);color:var(--page)}}
.d-dlg .md-in{padding:0}.md-fig{margin:0;position:relative}.md-img{width:100%;height:auto;aspect-ratio:4/3;max-height:min(42svh,20rem);object-fit:cover;display:block;background:var(--card)}.md-fig figcaption{position:absolute;left:.5rem;bottom:.45rem;max-width:calc(100% - 1rem);font-size:.68rem;line-height:1.3;padding:.2rem .5rem;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.md-fig figcaption a{color:inherit;text-decoration:none}.md-b{padding:1.25rem 1.25rem .5rem}
.d-dlg .md-x{background:rgba(var(--page-rgb),.9)}
.md-bd{display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:center;margin-bottom:.6rem}
.md-b h2{margin:0 2.75rem .25rem 0;line-height:1.15}.md-fig+.md-b h2{margin-right:0}
.md-pr{color:var(--ey);font-weight:700;font-size:1.15rem;margin:0 0 .5rem}
.md-d{margin:0 0 .8rem;color:var(--mute);line-height:1.5}.md-tags{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin:0 0 .4rem}.md-ft{position:sticky;bottom:0;padding:.75rem 1.25rem calc(.9rem + env(safe-area-inset-bottom));background:linear-gradient(rgba(var(--page-rgb),0),var(--page) 30%)}.md-ft .btn{width:100%;min-height:3rem;justify-content:center}
.md-b h3{font-size:1.05rem;margin:1rem 0 .4rem;font-family:var(--body);font-weight:700;text-transform:none;letter-spacing:0}
.md-al{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .5rem}
.md-al li{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border:1.5px solid var(--line);border-radius:999px;font-size:.88rem}
.md-al-u{font-size:.9rem;color:var(--mute);margin-top:.8rem;padding:.7rem .9rem;border-left:3px solid var(--line);background:var(--card)}
.t-list{list-style:none;padding:0;margin:1rem 0}
.t-list li{display:flex;align-items:center;gap:.75rem;padding:.55rem 0;border-bottom:1px dotted var(--line)}
.t-rm{width:2.75rem;height:2.75rem;border:0;background:none;color:var(--mute);cursor:pointer;font-size:1rem}@media(hover:hover) and (pointer:fine){.t-rm:hover{color:var(--text)}}
.t-note,.p-disc,.p-intro{font-size:.88rem;color:var(--mute)}
.md-in .cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem}
.t-fab{flex:none;display:inline-flex;align-items:center;gap:.3rem;height:2.75rem;padding:0 .85rem;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;white-space:nowrap}
.t-fab>span[aria-hidden]{color:var(--ac)}.t-fab .t-n{font-weight:600;color:var(--mute)}
.t-fab.t-float{position:fixed;z-index:55;right:.9rem;bottom:calc(5.7rem + env(safe-area-inset-bottom))}
@media(max-width:520px){.t-fab .t-lb{display:none}.t-fab{padding:0 .7rem}}
/* picker */
.p-dlg fieldset{border:0;padding:0;margin:1.1rem 0 0;min-width:0}
.p-dlg legend{font-weight:700;margin-bottom:.45rem;padding:0}
.rads{display:flex;flex-wrap:wrap;gap:.45rem}
.rad{position:relative}
.rad input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.rad span{display:inline-block;padding:.5rem 1rem;border:1.5px solid var(--text);border-radius:999px;font-weight:600;font-size:.95rem}
.rad input:checked+span{background:var(--text);color:var(--page)}
.rad input:focus-visible+span{outline:3px solid var(--text);outline-offset:3px;box-shadow:0 0 0 6px var(--ac)}
.p-dlg form .btn{margin-top:1.4rem}
.p-res{list-style:none;padding:0;display:grid;gap:.8rem;margin:1rem 0}
.p-res li{padding:1rem 1.1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.p-r{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ey)}
.p-n{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;font-size:1.1rem}
.p-pr{color:var(--ey);font-weight:700}.p-w{font-size:.92rem;margin-top:.35rem}
.link{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--text);text-decoration:underline;cursor:pointer;margin-top:.4rem;min-height:2.75rem}
.pk-cta{display:flex;gap:1rem 2rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:clamp(1.6rem,4vw,2.6rem);margin-block:1rem;border:1.5px solid var(--line);border-radius:var(--r);background:var(--card)}
.pk-cta h2{font-size:clamp(1.5rem,3.2vw,2.2rem);margin:.2rem 0}
.pk-cta p{max-width:34rem;color:var(--mute)}
/* booking + voucher forms */
.bw{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.3rem,3vw,2rem);max-width:40rem}
.bw h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:.8rem}
.bw-demo{background:none;padding:0 0 .8rem;font-size:.9rem;margin:0 0 1rem;border-bottom:1px dashed var(--line);color:var(--text)}.bw-demo b{letter-spacing:.04em}
.bw-note,.bw-hint{font-size:.85rem;color:var(--mute);margin:.9rem 0 0}
.bw-g{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.bw-g .full,.bw .full{grid-column:1/-1}
@media(max-width:520px){.bw-g{grid-template-columns:1fr}}
.bw label,.bw .lbl{display:block;font-weight:700;font-size:.92rem;margin-bottom:.3rem}
.bw input,.bw select,.bw textarea{width:100%;font:inherit;padding:.75rem .9rem;border-radius:10px;border:1.5px solid var(--line);background:var(--page);color:var(--text);min-height:2.9rem}
.step{display:flex;align-items:center;gap:.5rem;max-width:12rem}
.step input{text-align:center;flex:1;min-width:0;-moz-appearance:textfield}
.step input::-webkit-outer-spin-button,.step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.st-b{flex:none;width:2.9rem;height:2.9rem;border-radius:50%;border:1.5px solid var(--text);background:none;color:var(--text);font-size:1.3rem;line-height:1;cursor:pointer}@media(hover:hover) and (pointer:fine){.st-b:hover{background:var(--text);color:var(--page)}}
.bw-err{margin:.9rem 0 0;padding:.65rem .9rem;border-radius:8px;background:#fde8e6;color:#7a1710;font-weight:600;font-size:.92rem}
.bw .btn.full{margin-top:1rem;width:100%}
.bw-out{margin-top:1.3rem;padding-top:1.1rem;border-top:1px dashed var(--line)}
.bw-out h3{font-size:1.2rem;margin-bottom:.6rem}
.bw-out dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.6rem;margin-bottom:.8rem}
.bw-out dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}.bw-out dd{margin:0;font-weight:700}
.bw-pend{font-size:.9rem;font-weight:600;margin:.4rem 0}
.bw-out textarea{margin-top:.6rem;font-size:1rem}
.bw-out .cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}
.gcard{position:relative;max-width:26rem;aspect-ratio:3/2;padding:1.6rem;border-radius:var(--r);background:var(--dk);color:var(--dk-t);background-image:var(--pat-dk);border:2px solid var(--hi);box-shadow:0 30px 60px -28px rgba(0,0,0,.6);display:flex;flex-direction:column;justify-content:center;gap:.4rem;text-align:center;outline:1px solid rgba(var(--hi-rgb),.4);outline-offset:-10px}
.gc-mk{display:block;width:3.4rem;height:3.4rem;margin:0 auto .2rem}.gc-mk svg,.gc-mk img{width:100%;height:100%}
.gc-t{font-family:var(--disp);font-size:1.45rem;line-height:1.15}.gc-to{font-weight:700;color:var(--hi)}.gc-m{font-style:italic;opacity:.92}.gc-f{font-size:.9rem;opacity:.85}
/* events / news / proof / faq */
.evs{list-style:none;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.ev{position:relative;padding:1.3rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;gap:.35rem}
.ev-w{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ey)}
.ev h3{font-size:1.35rem}.ev-next{font-size:.85rem;color:var(--mute)}
.ev-l{font-weight:700;margin-top:.3rem}
.ev-cal{align-self:flex-start;margin-top:.5rem;font:inherit;font-weight:700;font-size:.9rem;padding:.55rem 1rem;border-radius:999px;border:1.5px solid var(--text);background:none;color:var(--text);cursor:pointer;min-height:2.75rem}@media(hover:hover) and (pointer:fine){.ev-cal:hover{background:var(--text);color:var(--page)}}
.news{background:var(--ac);color:var(--ac-t);padding:.9rem 0}
.news .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:center}
.news .eyebrow{color:inherit;opacity:.85}
.news ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1.6rem;font-weight:600}
.news time{opacity:.8;font-weight:700;margin-right:.3rem}
.news a{color:inherit;font-weight:800}
.proof{padding:clamp(1.8rem,5vw,3rem) 0;border-block:1px solid var(--line);background:var(--card)}
.pf-in{display:grid;gap:1.5rem 3rem;align-items:center}
@media(min-width:900px){.pf-in{grid-template-columns:auto 1fr}}
.pf-in.solo .pf-l{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 3rem;text-align:center}
.pf-in.solo .pf-as{flex-basis:100%;margin:0}
.pf-r{display:flex;align-items:baseline;gap:.7rem;margin:0}
.pf-r b{font-family:var(--disp);font-size:clamp(2.6rem,6vw,4rem);line-height:1;color:var(--ey)}
.pf-r span{font-size:.92rem;color:var(--mute)}
.pf-as{font-size:.78rem;color:var(--mute);margin-top:.3rem}
.pf-qs{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.pf-q{margin:0;padding-left:1rem;border-left:3px solid var(--ac)}
.pf-q blockquote{font-family:var(--disp);font-size:1.1rem;line-height:1.4}
.pf-q figcaption{font-size:.8rem;color:var(--mute);margin-top:.4rem}
.faq{display:grid;gap:.6rem;margin-top:1.2rem}
.faq-i{border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.faq-i summary{cursor:pointer;padding:1rem 3rem 1rem 1.2rem;font-weight:700;list-style:none;position:relative;min-height:2.9rem}
.faq-i summary::-webkit-details-marker{display:none}
.faq-i summary::after{content:"+";position:absolute;right:1.1rem;top:50%;translate:0 -50%;font-size:1.4rem;transition:rotate .3s var(--ease)}
.faq-i[open] summary::after{rotate:45deg}
.faq-i>div{padding:0 1.2rem 1.1rem}
.faq-src{font-size:.82rem;color:var(--mute);margin-top:.5rem}
.exc{margin-top:1.2rem;padding:1rem 1.2rem;border:1px solid color-mix(in srgb,var(--ac) 45%,transparent);background:var(--card);border-radius:var(--r)}
.exc h3{font-size:1.1rem}.exc ul{margin:.5rem 0 0 1.1rem}
/* area illustration */
.area-fig{margin:0;max-width:40rem}
.area-svg{width:100%;height:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--card)}
.area-s{font-size:.82rem;color:var(--mute);margin-top:.5rem}
.art-bg{fill:rgba(var(--ac-rgb),.07)}.art-park{fill:rgba(var(--ac2-rgb),.2)}.art-road{stroke:var(--line);stroke-width:7;fill:none;stroke-linecap:round}.art-main{stroke:rgba(var(--text-rgb),.28);stroke-width:11;fill:none;stroke-linecap:round}
.art-st{fill:var(--text);stroke:var(--page);stroke-width:2}.art-pin,.art-dot{fill:var(--ac)}.art-halo{fill:rgba(var(--ac-rgb),.25)}
.art-n,.art-t,.art-t2,.art-c{fill:var(--text);font:600 13px var(--body)}.art-t2{fill:var(--mute);font-weight:400;font-size:12px}
.transit{list-style:none;padding:0;display:grid;gap:.7rem;margin-top:1rem}
.transit li{display:flex;gap:.8rem;align-items:flex-start}
/* standalone QR table-menu page */
body.qr-page .hdr .nav,body.qr-page .hdr .nav-toggle{display:none}
.qrm{padding:clamp(1.8rem,6vw,3rem) 0 1rem;text-align:center}
.qrm h1{font-size:clamp(2.2rem,9vw,3.6rem);margin:.4rem 0 .6rem}
.qrm .cta{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem}
.qrm-menu{padding-bottom:6rem}
.qr-page .mtool{top:0}
/* 404 */
.nf-mark{display:flex;align-items:center;justify-content:center;gap:.08em;margin:0 auto 1.2rem;font-family:var(--disp);font-weight:var(--dw);font-size:clamp(5rem,20vw,9.5rem);line-height:1;color:var(--ey,var(--ac))}
.nf-mark svg,.nf-mark img{width:.86em;height:.86em;flex:none}
@media(prefers-reduced-motion:no-preference){.nf-mark svg,.nf-mark img{animation:nfs 5s ease-in-out infinite}@keyframes nfs{50%{rotate:-6deg;translate:0 -.05em}}}
/* skeleton: pictures keep their ratio and show the inline blurred placeholder while loading */
img[style*=background]{background-size:cover;background-position:center}
/* print: vouchers print cleanly (the menu has no print/PDF feature) */
@media print{
 .cz-launch,.cz-welcome,.cur,.ptc,.grain,.glow,.sdiv,.news,.sc-dots,.proof .pf-qs{display:none!important}
 .dark::after,.ftr::after{display:none}
 .faq-i{break-inside:avoid}
 .faq-i[open] summary::after,.faq-i summary::after{display:none}
 .scrolly .sc-stage{position:static}.sc-frame{aspect-ratio:auto;max-height:none;box-shadow:none}.sc-img{position:static;opacity:1}.sc-ch{min-height:0;opacity:1!important}
 body:has(#gcard) .phero,body:has(#gcard) form.bw,body:has(#gcard) header,body:has(#gcard) .ftr{display:none!important}
 body:has(#gcard) .gcard{background:#fff;color:#000;border:3px double #000;margin:2cm auto;max-width:15cm;box-shadow:none;outline:0}
 .gc-to{color:#000}
}

/* booking: message preview (a chat bubble) and WhatsApp send */
.bw-pv{margin:1.1rem 0 0}.bw-pv .lbl{margin:0 0 .4rem}
.bw-pv{padding:.9rem .8rem;border-radius:16px;background:#ece5dd linear-gradient(rgba(255,255,255,.35),rgba(255,255,255,.35))}.bw-pv .lbl{color:#3b4a54}
.bw-pv blockquote,#bw-pv{font-style:normal;font-family:var(--body,system-ui),system-ui,sans-serif!important;font-weight:400;letter-spacing:0;quotes:none;margin:0 0 0 auto;width:fit-content;max-width:92%;padding:.7rem .9rem 1.4rem;border:0;border-radius:14px 4px 14px 14px;background:#fff;box-shadow:0 1px 1.5px rgba(0,0,0,.13);position:relative;font-size:.95rem;line-height:1.5;color:var(--mute);font-style:italic;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
#bw-pv.on,.bw-pv blockquote.on{color:#111b21!important;background:#d9fdd3!important;font-style:normal!important}#bw-pv.on::after{content:"\2713\2713";position:absolute;right:.7rem;bottom:.35rem;font-size:.75rem;letter-spacing:-.15em;color:#53bdeb}
.btn.wa svg{width:1.25rem;height:1.25rem;flex:none}
#bw-send{display:flex;align-items:center;justify-content:center;gap:.55rem;margin-top:1rem}#bw-send svg{width:1.25rem;height:1.25rem;flex:none}
.bw-tag{font-size:.75rem;font-weight:700;padding:.1rem .55rem;border-radius:99px;background:rgba(0,0,0,.32);color:#fff}
.bw-fb{font-size:.9rem;margin:.4rem 0 0;color:var(--mute)}
.bw-more{margin-top:.9rem}.bw-more summary{cursor:pointer;font-weight:700;font-size:.92rem;padding:.4rem 0;min-height:44px;display:flex;align-items:center}
/* allergens: dish numbers + annex II legend (review 30 Oct) */
.al-n{display:block;font-size:.82rem;color:var(--mute);margin-top:.3rem;letter-spacing:.01em}.al-n abbr{text-decoration:none}
.al-leg{margin-top:2.5rem;padding:1.2rem 1.4rem;border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:var(--r);font-size:.92rem}
.al-leg h2{font-size:1.3rem;margin:0 0 .5rem}.al-leg ol{list-style:none;padding:0;margin:.8rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.3rem 1rem}
.al-leg li b{display:inline-block;min-width:1.6em}.al-leg p{margin:.4rem 0;max-width:70ch}
/* channels: Google rating, Instagram, TheFork, delivery (review 30 Oct) */
.chs{margin-top:1.6rem}.ch-h{font-size:.9rem;font-weight:700;margin:0 0 .5rem}
.ch-row{display:flex;flex-wrap:wrap;gap:.5rem}
.ch{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:.35rem .95rem;border-radius:999px;border:1.5px solid currentColor;font-weight:700;font-size:.9rem;text-decoration:none;color:inherit}
.ch i{font-style:normal;font-weight:400;font-size:.8rem}.ch-rate span{color:var(--ac)}.ch-ex{border-style:dashed}
@media(hover:hover) and (pointer:fine){a.ch:hover{background:color-mix(in srgb,currentColor 10%,transparent)}}
.map-ex{background:var(--page);color:var(--text)}.map-ex::before{display:none}.map-ex svg{position:absolute;inset:0;width:100%;height:100%;color:var(--text)}
.map-ex .map-ph{color:var(--text);background:color-mix(in srgb,var(--page) 90%,transparent);border-radius:var(--r);margin:1rem}.map-ex .btn[aria-disabled]{cursor:default;opacity:.75}
#bw-send>span:not(.bw-tag){white-space:nowrap}
@media(max-width:1010px){body:has(#mtool) main{padding-bottom:5.5rem}}
.mtool #mlive{position:absolute}

.d-dlg .md-x{box-shadow:0 2px 10px rgba(0,0,0,.25);display:grid;place-items:center}
.mi[data-th]{display:grid;grid-template-columns:1fr 4rem;column-gap:.85rem;align-items:start}.mi[data-th]>*{grid-column:1}.mi[data-th]>.mi-th{grid-column:2;grid-row:1/span 4;width:4rem;height:4rem;object-fit:cover;border-radius:calc(var(--r)*.7);background:var(--card);cursor:pointer}
.mi-meta .ai{cursor:default;user-select:none}
@media(max-width:899px){.d-dlg{margin:auto 0 0;width:100vw;max-width:100vw;max-height:92svh;border-radius:1.2rem 1.2rem 0 0}}
#bw-pv,.bw-pv blockquote{white-space:pre-line}

.t-img{flex:none;width:3.5rem;height:3.5rem;border-radius:.5rem;object-fit:cover;background:var(--line)}.t-nm{flex:1;font-weight:600;line-height:1.3}.t-pr{font-weight:700;color:var(--ey);white-space:nowrap}

/* Scarpettiamo invitation (fictional showcase demos only) */
.sc-invite{padding:3.5rem 0 4rem}.sc-card{max-width:44rem;margin:0 auto;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2.2rem 1.4rem}.sc-eb{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ac);margin:0 0 .6rem}.sc-card h2{margin:0 0 .7rem}.sc-card p{margin:0 auto .6rem;max-width:34rem}.sc-act{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;justify-content:center;margin-top:1.2rem!important}.sc-more{font-weight:700}.sc-con{font-size:.9rem;opacity:.85;margin-top:1rem!important}
/* booking: quick day chips (Oggi / Domani / Altro…) */
.bw-qd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.bw .qd,.bw .qd.bw-dbtn{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.1rem;min-height:3.4rem;padding:.55rem .8rem;border-radius:12px;border:1.5px solid var(--line);background:var(--page);color:var(--text);font:inherit;text-align:left;cursor:pointer;position:relative;width:auto;transition:border-color .2s,background-color .2s,color .2s}
.bw .qd b{font-weight:700;font-size:.98rem;line-height:1.15}
.bw .qd small{font-size:.76rem;line-height:1.2;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-height:1.2em}
.bw .qd.bw-dbtn svg{position:absolute;right:.6rem;top:.6rem;opacity:.6}
.bw .qd[aria-pressed=true]{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 14%,var(--page))}
.bw .qd[aria-pressed=true] small{color:var(--text)}
.bw .qd.off{cursor:not-allowed;opacity:.55;border-style:dashed}.bw .qd.off b{text-decoration:line-through;text-decoration-thickness:1.5px}
@media(hover:hover) and (pointer:fine){.bw .qd:not(.off):hover{border-color:color-mix(in srgb,var(--ac) 60%,var(--line))}}
.bw .qd:focus-visible{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 22%,transparent)}
.bw-dwrap .bw-cal{right:0;left:auto;margin-inline:auto}
@media(max-width:520px){.bw-dwrap .bw-cal{left:0;right:0;max-width:none}}
.bw .qd.bw-dbtn{padding-right:1.9rem}.bw .qd.bw-dbtn svg{right:.55rem;top:.7rem;width:16px;height:16px}

/* home.gallery.surface: paper — the dish gallery on a lifted "paper" band (works on light and dark pages) */
section.g-paper{background:color-mix(in srgb,var(--page) 88%,#fff);padding-block:clamp(3rem,7vw,5.5rem);border-block:1px solid color-mix(in srgb,var(--text) 8%,transparent)}

/* elevate: typographic rhythm, menu presentation, section seams, micro-motion (transform/opacity only). Uses each type's own tokens. */
h1,h2,h3{text-wrap:balance}
p,.lead,small{text-wrap:pretty}
.hero h1{letter-spacing:-.02em;line-height:.98}
.hero .lead{max-width:34ch}
h2{letter-spacing:-.015em}
section h2+.lead,section h2+p{margin-top:.7rem}
/* section seams: a short accent rule opens each titled section */
section>.wrap>.eyebrow:first-child,section>.wrap>h2:first-child{position:relative}
section>.wrap>h2:first-child::before{content:"";display:block;width:2.6rem;height:.22rem;border-radius:1rem;background:var(--ac);margin-bottom:1.1rem;transform-origin:left}
/* menu: card categories, clearer dish rows */
.mcat>h2{display:flex;align-items:center;gap:.6rem;padding-bottom:.85rem;margin-bottom:.4rem;border-bottom:2px solid color-mix(in srgb,var(--ac) 45%,transparent)}
.mcat>h2 svg{width:1.6rem;height:1.6rem;flex:none;color:var(--ac)}
.mcat ul{display:grid;gap:0}
.mi{padding:.95rem 0;border-bottom:1px dashed color-mix(in srgb,currentColor 14%,transparent)}
.mi:last-child{border-bottom:0}
.mi .it .n{font-weight:650;letter-spacing:-.005em}
.mi .it .pr{font-variant-numeric:tabular-nums}
.mi>small{display:block;margin-top:.25rem;opacity:.82;line-height:1.45}
.mi[data-th]>.mi-th{box-shadow:0 .5rem 1.2rem -.6rem rgba(0,0,0,.45)}
@media (prefers-reduced-motion:no-preference){
  .btn{transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .25s}
  @media (hover:hover) and (pointer:fine){
    .btn:hover{transform:translateY(-2px)}
    .mi[data-th]>.mi-th{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
    .mi:hover>.mi-th{transform:scale(1.06) rotate(-1.5deg)}
    .frame img,.mosaic a img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
    .frame:hover img,.mosaic a:hover img{transform:scale(1.04)}
  }
  .btn:active{transform:scale(.97)}
  .mi-fav[aria-pressed=true] svg{animation:fav-pop .45s cubic-bezier(.3,1.6,.5,1)}
  @keyframes fav-pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
  .rv.in section>.wrap>h2:first-child::before,section.in>.wrap>h2:first-child::before{animation:seam .8s cubic-bezier(.2,.8,.2,1) both .15s}
  @keyframes seam{from{transform:scaleX(0);opacity:0}}
}

/* ===== cinema: grain, light, dividers, masks, line reveal, pinned story, cursor, particles, per-theme micro-interactions ===== */
:root{--grain-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.grain,.glow{position:absolute;inset:0;z-index:1;pointer-events:none}
.grain{background:var(--grain-img) 0 0/180px 180px;opacity:var(--grain,.05)}
.glow{inset:-8%;background:linear-gradient(112deg,rgba(var(--hi-rgb),.2),transparent 56%);transform:translate3d(calc((var(--gx,50) - 50)*.12%),calc((var(--gy,30) - 30)*.1%),0);transition:transform .7s var(--ease)}
.hero[data-v=split] .grain,.hero[data-v=split] .glow{display:none}
.hero[data-v=typo] .grain{filter:invert(1);opacity:calc(var(--grain,.05)*.8)}
.hero[data-v=typo] .glow{background:linear-gradient(112deg,rgba(var(--ac-rgb),.14),transparent 56%)}
.dark,.ftr{position:relative}
.dark::after,.ftr::after{content:"";position:absolute;inset:0;background:var(--grain-img) 0 0/180px 180px;opacity:var(--grain,.05);pointer-events:none}
.ptc{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
/* dividers */
.sdiv{display:flex;justify-content:center;padding:clamp(1.4rem,4vw,3rem) var(--gut) 0;color:var(--ey)}
.sdiv svg{width:min(30rem,100%);height:auto;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sdiv[data-k=wave] svg{width:min(75rem,100%);height:2rem}
.sdiv[data-k=zigzag] svg{width:min(26rem,100%)}
.sdiv.flip[data-k=wave]{transform:scaleY(-1)}
/* pinned storytelling */
.scrolly{padding-block:clamp(2rem,5vw,4.5rem)}
.sc-grid{display:grid;gap:1rem}
.sc-stage{position:sticky;top:4.9rem;z-index:2;align-self:start;background:var(--page);padding:.4rem 0 .2rem}
.sc-frame{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/9;max-height:34svh;width:100%;background:var(--dk);box-shadow:0 24px 50px -28px rgba(0,0,0,.55)}
.sc-img{position:absolute;inset:0;opacity:0}.sc-img.on{opacity:1}
.sc-img img{width:100%;height:100%;object-fit:cover}
.sc-dots{display:flex;gap:.45rem;justify-content:center;margin-top:.55rem}
.sc-dots i{width:.5rem;height:.5rem;border-radius:50%;background:rgba(var(--text-rgb),.22)}.sc-dots i.on{background:var(--ac);transform:scale(1.5)}
.sc-chs{display:grid}
.sc-ch{padding-block:clamp(1.4rem,6vh,3rem);min-height:48svh;display:flex;flex-direction:column;justify-content:center;gap:.9rem}
.sc-ch h2{font-size:clamp(1.9rem,4.4vw,3rem)}
.sc-ch blockquote{font-family:var(--disp);font-size:clamp(1.25rem,2.6vw,1.7rem);line-height:1.35;border-left:3px solid var(--ac);padding-left:1rem}
.sc-ch blockquote footer{font-family:var(--body);font-size:.9rem;color:var(--text);opacity:.82;margin-top:.6rem}
.sc-on .sc-ch:not(.on){opacity:.88}.sc-on .sc-ch:not(.on) h2{opacity:.82}.sc-on .sc-ch:not(.on) blockquote{border-left-color:var(--line,rgba(128,128,128,.4))}
@media(min-width:900px){
 .sc-grid{grid-template-columns:1.05fr .95fr;gap:4.5rem;align-items:start}
 .sc-stage{order:2;top:6.5rem;background:none;padding:0}
 .sc-frame{aspect-ratio:4/5;max-height:min(40rem,78svh)}
 .sc-ch{min-height:78svh}
}
.no-js .sc-stage{position:static}.no-js .sc-frame{aspect-ratio:auto;max-height:none;display:grid;gap:1rem;background:none;box-shadow:none}.no-js .sc-img{position:static;opacity:1}
/* parallax */
[data-par].par:not(.mark-badge) img{scale:1.12;translate:0 var(--pp,0)}
.mark-badge.par{translate:0 var(--pp,0)}
/* soft cursor */
.cur{position:fixed;left:-19px;top:-19px;width:38px;height:38px;border-radius:50%;border:2px solid var(--ac);background:rgba(var(--ac-rgb),.1);pointer-events:none;z-index:9998;opacity:0;scale:1;transition:opacity .25s,scale .25s var(--ease),background .25s}
.cur.vis{opacity:.85}.cur.act{scale:1.7;background:rgba(var(--ac-rgb),.18)}
@media(hover:none),(pointer:coarse){.cur{display:none}}
/* magnetic */
.btn{translate:var(--mx,0) var(--my,0)}
@media(prefers-reduced-motion:no-preference){
html:not([data-motion=off]) .btn{transition:transform .25s var(--ease),background .25s,color .25s,translate .35s var(--ease)}
/* line-by-line headings */
html:not([data-motion=off]) .lines .ln{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
html:not([data-motion=off]) .lines .ln>span{display:block;translate:0 112%;transition:translate .75s var(--ease);transition-delay:calc(var(--i)*.08s)}
html:not([data-motion=off]) .lines.in .ln>span{translate:0 0}
/* image reveal masks (final state = unclipped) */
html[data-mask=arch]:not([data-motion=off]) .js .rv-img{clip-path:inset(34% 16% 0 16% round 999px 999px 0 0);transition:clip-path 1s var(--ease)}
html[data-mask=arch]:not([data-motion=off]) .js .rv-img.in{clip-path:inset(0 round 0)}
html[data-mask=circle]:not([data-motion=off]) .js .rv-img{clip-path:circle(0% at 50% 50%);transition:clip-path 1s var(--ease)}
html[data-mask=circle]:not([data-motion=off]) .js .rv-img.in{clip-path:circle(75% at 50% 50%)}
html[data-mask=diag]:not([data-motion=off]) .js .rv-img{clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:clip-path 1s var(--ease)}
html[data-mask=diag]:not([data-motion=off]) .js .rv-img.in{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
/* dividers draw themselves */
html:not([data-motion=off]) .js .sdiv .dr{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s var(--ease)}
html:not([data-motion=off]) .js .sdiv .dr2{stroke-dasharray:170;stroke-dashoffset:170;transition:stroke-dashoffset 1.1s .35s var(--ease)}
html:not([data-motion=off]) .js .sdiv.in .dr,html:not([data-motion=off]) .js .sdiv.in .dr2{stroke-dashoffset:0}
/* pinned story */
html:not([data-motion=off]) .sc-img{transition:opacity .9s var(--ease)}
html:not([data-motion=off]) .sc-ch{transition:opacity .6s}
html:not([data-motion=off]) .sc-dots i{transition:transform .4s var(--ease),background .4s}
/* smooth focus + blur-up */
html:not([data-motion=off]) :where(a,button,input,select,textarea,summary,.chip){outline:3px solid transparent;outline-offset:0;transition-property:outline-color,outline-offset,box-shadow,transform,background,color,border-color,translate}
html:not([data-motion=off]) :where(a,button,input,select,textarea,summary,.chip):focus-visible{outline-color:var(--text);outline-offset:3px}
html:not([data-motion=off]) img{transition:filter .7s var(--ease)}
html:not([data-motion=off]) img.lz{filter:blur(12px)}
/* page transition fallback */
html.vt-out body{opacity:0;transition:opacity .17s ease}
/* per-theme, sound-free micro-interactions */
[data-theme=osteria] .mcard,[data-theme=osteria] .ml-cat li{transition:transform .35s var(--ease)}
[data-theme=osteria] .mi .n{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .4s var(--ease)}@media(hover:hover) and (pointer:fine){[data-theme=osteria] .mi:hover .n{background-size:100% 1.5px}}@media(hover:hover) and (pointer:fine){[data-theme=pizzeria] .btn:hover{rotate:-1.6deg}}
[data-theme=pizzeria] .mi-fav[aria-pressed=true] svg{animation:pop .45s var(--ease)}
[data-theme=enoteca] .eyebrow::before{display:none}[data-theme=enoteca] .eyebrow{background:linear-gradient(currentColor,currentColor) 0 100%/1.6rem 1px no-repeat;padding-bottom:.35rem;transition:background-size .6s var(--ease)}
[data-theme=enoteca] .rv.in .eyebrow,[data-theme=enoteca] .eyebrow.in{background-size:100% 1px}@media(hover:hover) and (pointer:fine){[data-theme=cafe] .btn:hover{transform:translateY(-3px) scale(1.03)}}@media(hover:hover) and (pointer:fine){[data-theme=cafe] .frame:hover{rotate:-.6deg}}@media(hover:hover) and (pointer:fine){[data-theme=pub] .btn:not(.ghost):hover{box-shadow:0 0 0 2px var(--ac),0 0 26px rgba(var(--ac-rgb),.6)}}@media(hover:hover) and (pointer:fine){[data-theme=pub] .mi:hover .n{color:var(--ey)}}
@keyframes pop{0%{scale:1}40%{scale:1.45}100%{scale:1}}
}

.marquee.mq-js{contain:paint}/* ===== React Bits ports (MIT + Commons Clause, (c) David Haz), vanilla rewrite: see LICENSES-THIRD-PARTY.md ===== */
/* ScrollVelocity: JS drives the marquee */
/* (ScrollVelocity: the JS-driven marquee turns its CSS animation off) */
.marquee.mq-js ul{will-change:transform}
/* SpotlightCard */
.mcard .spl{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .3s ease-out;background:radial-gradient(22rem circle at var(--sx,50%) var(--sy,0),rgba(var(--hi-rgb),.13),transparent 70%)}
.mcard:hover .spl{opacity:1}
/* CircularText stamp */
.stamp{position:relative;width:7.5rem;height:7.5rem;margin-top:1.1rem;color:var(--hi,currentColor)}
.stamp>svg{width:100%;height:100%;display:block;fill:currentColor;font-family:var(--disp);font-weight:var(--dw);letter-spacing:.06em;text-transform:uppercase;overflow:visible}
.stamp-c{position:absolute;inset:0;display:grid;place-items:center}.stamp-c .mk{width:2.9rem;height:2.9rem}.stamp-c :not(svg){font-size:.9rem}
/* GlareHover */
.gcard{overflow:hidden;isolation:isolate}
.gcard .glr{position:absolute;inset:-20%;pointer-events:none;z-index:2;opacity:0;background:linear-gradient(-30deg,transparent 42%,rgba(255,255,255,.28) 50%,transparent 58%) no-repeat;background-size:250% 100%;background-position:var(--gp,100%) 0;transition:opacity .25s ease-out}
.gcard.gl-h .glr{opacity:1}
@media(prefers-reduced-motion:no-preference){.marquee.mq-js ul{animation:none}.gcard.gl-in:not(.gl-h) .glr{animation:glsw 1.1s cubic-bezier(.23,1,.32,1) .2s 1 both}
@keyframes glsw{0%{opacity:1;background-position:100% 0}100%{opacity:0;background-position:0 0}}}
@media(prefers-reduced-motion:reduce){.stamp>svg{transform:none!important}.gcard .glr,.mcard .spl{display:none}}
@media print{.stamp{display:none}}

/* redesign (30 Oct): immersive full-bleed heroes, per-type shaped section seams, editorial rhythm, appetising menu, motion on transform/opacity only.
   Keyed on html[data-kind] (showcase venue type); colours always come from the active theme/Personalizza tokens. */
:root{--seam:2.2rem}
/* ---------- HERO: full-bleed photo, oversized headline ---------- */
.hero[data-v=photo]{min-height:calc(100svh - 4.5rem);align-items:flex-end;isolation:isolate}
.hero[data-v=photo] .hero-in{padding-top:7rem;padding-bottom:clamp(4.5rem,10vh,7rem);position:relative;z-index:4}
.hero[data-v=photo] h1{font-size:clamp(3.1rem,12.5vw,7.6rem);line-height:.92;letter-spacing:-.035em;max-width:14ch;text-shadow:0 .1em .6em rgba(0,0,0,.35)}
.hero[data-v=photo] .lead{font-size:clamp(1.05rem,3.9vw,1.3rem);max-width:36ch;opacity:.94;margin-top:1.1rem}
.hero[data-v=photo] .kicker{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;letter-spacing:.02em}
.hero[data-v=photo]::before{background:linear-gradient(180deg,rgba(var(--dk-rgb),.25) 0%,rgba(var(--dk-rgb),.08) 30%,rgba(var(--dk-rgb),.55) 62%,rgba(var(--dk-rgb),.94) 100%)}
.hero[data-v=photo]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:var(--seam);z-index:3;background:var(--page);pointer-events:none}
.hero[data-v=photo] .scroll-cue{z-index:4}
.hero[data-v=photo]:is(:has(+.marquee),:has(+.bento+.marquee))::after{background:var(--ac)}
.ftr h2,.ftr h3{font-size:clamp(1.8rem,7vw,2.6rem);letter-spacing:-.02em}
/* ---------- SEAMS: each home/story section bites into the previous one with a type-specific edge ---------- */
.pg-index main>section:not(.hero):not(.sc-invite),.pg-storia main>section:not(.phero):not(.sc-invite){position:relative}
main>section:not([class]),main>section.scrolly{background-color:var(--page)}
/* default (ristorante): soft hand-drawn wave */
html{--m-edge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='36' viewBox='0 0 160 36'%3E%3Cpath d='M0 20C20 6 40 6 60 18s40 16 60 4 30-12 40-6V36H0z'/%3E%3C/svg%3E");--m-w:160px}
html[data-deco=pizzeria]{--m-edge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='36' viewBox='0 0 64 36'%3E%3Cpath d='M0 36V22C8 22 10 4 16 2c2 8 6 14 10 14 4 0 4-10 10-14 4 6 2 14 8 18 6 4 10-8 14-14 2 8 6 14 6 16V36z'/%3E%3C/svg%3E");--m-w:64px}
html[data-deco=enoteca]{--m-edge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='36' viewBox='0 0 1200 36' preserveAspectRatio='none'%3E%3Cpath d='M0 36C300 0 900 0 1200 36z'/%3E%3C/svg%3E");--m-w:100%}
html[data-deco=bar]{--m-edge:radial-gradient(circle at 50% 0,transparent 0 17px,#000 18px);--m-w:40px}
html[data-deco=pub]{--m-edge:linear-gradient(to bottom right,transparent 49.6%,#000 50%);--m-w:100%}
/* essenziale: straight, clean seams (no shaped edge) */
html[data-deco=nessuna]{--m-edge:linear-gradient(#000,#000);--m-w:100%}
html[data-deco=nessuna] .pg-index main>section:not(.hero):not(.sc-invite)+section:not(.sc-invite)::before{height:1px}
.hero[data-v=photo]::after,
.pg-index main>section:not(.hero):not(.sc-invite)+section:not(.sc-invite)::before{-webkit-mask:var(--m-edge) 0 100%/var(--m-w) var(--seam) repeat-x;mask:var(--m-edge) 0 100%/var(--m-w) var(--seam) repeat-x}
.pg-index main>section:not(.hero):not(.sc-invite)+section:not(.sc-invite)::before{content:"";position:absolute;left:0;right:0;top:calc(var(--seam)*-1 + 1px);height:var(--seam);background:inherit;background-image:none;z-index:2;pointer-events:none}
.pg-index main>section:not(.hero):not(.sc-invite)+section.accent2-bg::before{background:var(--ac2)}
.pg-index main>section:not(.hero):not(.sc-invite)+section.dark::before{background:var(--dk)}
/* ---------- EDITORIAL rhythm ---------- */
.pg-index main>section:not(.hero){padding-block:clamp(4.5rem,11vw,8rem)}
.pg-index h2{font-size:clamp(2.2rem,8.4vw,4.4rem);line-height:.98;letter-spacing:-.03em;max-width:16ch}
.pg-index .eyebrow{font-size:.95rem}
.pg-index .mosaic{gap:.6rem}
@media(min-width:760px){.pg-index .mosaic a:nth-child(3n+2){translate:0 1.4rem}}
.pg-index .mosaic img{border-radius:calc(var(--r)*1.4)}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote){position:relative;padding-top:3.4rem;border:0!important;margin-inline:0}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote)::before{content:"“";position:absolute;left:-.2rem;top:-.9rem;font:400 7rem/1 var(--disp);color:var(--ac);opacity:.9}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote) p{font-family:var(--disp);font-size:clamp(1.6rem,6.2vw,2.5rem);line-height:1.12;letter-spacing:-.015em}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote) footer{margin-top:1rem;font-weight:700;font-size:.92rem}
.stat b{font-size:clamp(3rem,13vw,5.5rem);line-height:.9;letter-spacing:-.04em;color:var(--ac)}
.ev{border-radius:calc(var(--r)*1.6);padding:1.4rem 1.4rem 1.5rem;background:rgba(var(--text-rgb),.05);border:1px solid var(--line)}
.ev h3{font-size:1.55rem}
.ev-w{display:inline-block;background:var(--ac);color:var(--ac-t);padding:.25rem .7rem;border-radius:2rem;font-weight:700;font-size:.82rem;margin-bottom:.7rem}
/* CTA band: the striking "vieni a trovarci" block */
.pg-index section.accent2-bg h2{font-size:clamp(2.6rem,10.5vw,5.2rem)}
.chs .ch{border-radius:2rem}
/* ---------- MENU: premium tabs, bigger photos, cards ---------- */
.phero{min-height:clamp(20rem,52svh,30rem);display:flex;align-items:flex-end}
.phero h1{font-size:clamp(2.7rem,11vw,5.6rem);line-height:.94;letter-spacing:-.03em}
.mt-cats a{border-radius:3rem;padding:.55rem 1.05rem;font-weight:700;border:1.5px solid var(--line);transition:background-color .25s,color .25s,border-color .25s}
.mt-cats a.mt-active,.mt-cats a[aria-current]{background:var(--ac);color:var(--ac-t);border-color:var(--ac)}
.mcat>h2{font-size:clamp(1.9rem,7.4vw,2.8rem);letter-spacing:-.02em}
.mi[data-th]{grid-template-columns:1fr 6.6rem;column-gap:1rem}
.mi[data-th]>.mi-th{width:6.6rem;height:6.6rem;border-radius:calc(var(--r)*1.2)}
.mi .it .n{font-size:1.12rem}
.mi .it .pr{font-family:var(--disp);font-size:1.25rem;color:var(--ac)}
/* ---------- PER-TYPE CHARACTER ---------- */
/* ristorante: warm, rustic, italic serif accents */
html[data-pair=editorial] .hero[data-v] h1{font-style:italic;letter-spacing:-.02em}
html[data-deco=ristorante] .hero[data-v] .kicker::after{content:"";width:2.4rem;height:.6rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 10'%3E%3Cpath d='M1 6c6-5 10 3 16 0s10-5 22 0' fill='none' stroke='%23d08f45' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
html[data-pair=editorial] .pg-index h2{font-style:italic}
/* pizzeria: fiery, condensed, heat glow */
html[data-pair=modern] .hero[data-v] h1{text-transform:uppercase;font-stretch:78%;font-weight:800;letter-spacing:-.02em;line-height:.88}
html[data-deco=pizzeria] .hero[data-v=photo]::before{background:radial-gradient(90% 55% at 50% 108%,rgba(var(--ac-rgb),.75),transparent 70%),linear-gradient(180deg,rgba(var(--dk-rgb),.2),rgba(var(--dk-rgb),.1) 35%,rgba(var(--dk-rgb),.9))}
html[data-deco=pizzeria] .hero[data-v] .kicker{background:var(--ac);color:var(--ac-t);padding:.4rem .9rem;border-radius:2rem;transform:rotate(-3deg)}
html[data-pair=modern] .pg-index h2{text-transform:uppercase;font-stretch:80%;font-weight:800}
/* enoteca: dark, elegant, centred, hairline gold frame */
html[data-deco=enoteca] .hero[data-v=photo] .hero-in{text-align:center;display:flex;flex-direction:column;align-items:center}
html[data-pair=elegant] .hero[data-v] h1{font-weight:300;font-style:italic;max-width:12ch;letter-spacing:-.01em}
html[data-deco=enoteca] .hero[data-v=photo]::before{background:linear-gradient(180deg,rgba(var(--dk-rgb),.55),rgba(var(--dk-rgb),.72) 45%,rgba(var(--dk-rgb),.96))}
html[data-deco=enoteca] .hero:is([data-v=photo],[data-v=center])>.hero-media::after{content:"";position:absolute;inset:clamp(.9rem,3vw,1.6rem) clamp(.9rem,3vw,1.6rem) calc(var(--seam) + 6%);border:1px solid rgba(var(--ac-rgb),.7);border-radius:12rem 12rem 0 0;z-index:2}
html[data-pair=elegant] .pg-index h2{font-weight:300;font-style:italic;letter-spacing:-.01em}
html[data-pair=elegant] .mi .it .pr{font-style:italic}
/* bar: bright café, sticker card over the photo, awning stripes */
html[data-deco=bar] .hero[data-v=photo]{padding-top:1.4rem!important}
html[data-deco=bar] .hero[data-v=photo]>i.grain{position:absolute;inset:0 0 auto;height:1.4rem;z-index:3;background:repeating-linear-gradient(90deg,var(--ac) 0 2.2rem,var(--page) 2.2rem 4.4rem);opacity:1;--aw:linear-gradient(#000 0 0) 0 0/100% .5rem no-repeat,radial-gradient(circle at 50% 0,#000 0 1.1rem,transparent 1.15rem) 0 0/2.2rem 1.4rem repeat-x;-webkit-mask:var(--aw);mask:var(--aw);animation:none!important}
html[data-deco=bar] .hero[data-v=photo]::before{background:linear-gradient(180deg,transparent 40%,rgba(var(--dk-rgb),.35))}
html[data-deco=bar] .hero[data-v=photo] .hero-in{width:auto;margin-inline:1rem;margin-bottom:calc(var(--seam) + 1rem);padding:1.5rem 1.4rem 1.6rem!important;background:var(--page);color:var(--text);padding:1.5rem 1.4rem 1.6rem;border-radius:1.8rem;box-shadow:0 1.4rem 3rem -1rem rgba(0,0,0,.45);transform:rotate(-1.2deg)}
html[data-deco=bar] .hero[data-v=photo] h1{text-shadow:none;font-size:clamp(2.6rem,11vw,5.6rem)}
html[data-deco=bar] .hero[data-v=photo] .btn.ghost{color:var(--text)}
html[data-deco=bar] .hero[data-v=photo] .kicker{color:var(--ey)}
/* pub: bold, condensed caps, block highlight */
html[data-pair=condensed] .hero[data-v] h1{font-size:clamp(3.4rem,15vw,8.4rem);line-height:.86;letter-spacing:-.01em;max-width:11ch}
html[data-deco=pub] .hero[data-v] .kicker{background:var(--ac);color:var(--ac-t);padding:.35rem .8rem}
html[data-pair=condensed] .hero[data-v] .kicker{text-transform:uppercase;letter-spacing:.08em}
html[data-deco=pub] .hero[data-v] .hero-in::before{content:"";position:absolute;left:var(--gut,1.25rem);top:5.2rem;width:4.5rem;height:.5rem;background:var(--ac)}
html[data-pair=condensed] .pg-index h2{font-size:clamp(2.6rem,11vw,5rem);line-height:.9}
html[data-pair=condensed] .stat b{font-family:var(--disp)}
/* ---------- MOTION (transform/opacity only) ---------- */
@media (prefers-reduced-motion:no-preference){
  .hero[data-v=photo] .hero-media img{animation:rd-in 1.6s cubic-bezier(.2,.8,.2,1) both}
  @keyframes rd-in{from{opacity:0;transform:scale(1.14)}}
  .hero[data-v=photo] .lead,.hero[data-v=photo] .cta,.hero[data-v=photo] .badge{animation:rd-up .9s cubic-bezier(.2,.8,.2,1) both .55s}
  .hero[data-v=photo] .cta{animation-delay:.7s}.hero[data-v=photo] .badge{animation-delay:.85s}
  @keyframes rd-up{from{opacity:0;transform:translateY(1.2rem)}}
  html[data-deco=bar] .hero[data-v=photo] .hero-in{animation:rd-stick .9s cubic-bezier(.3,1.4,.5,1) both .2s}
  @keyframes rd-stick{from{opacity:0;transform:translateY(2rem) rotate(4deg)}}
  @supports (animation-timeline:view()){
    .hero[data-v=photo]>.hero-media{animation:rd-par linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    @keyframes rd-par{to{transform:translate3d(0,18%,0)}}
    .mosaic a img,.frame img,.sc-ch img{animation:rd-zoom linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes rd-zoom{from{transform:scale(1.12) translateY(-3%)}to{transform:scale(1) translateY(3%)}}
    .mi{animation:rd-mi linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
    @keyframes rd-mi{from{opacity:0;transform:translateY(1.6rem)}}
    .mi:nth-child(2n){animation-range:entry 8% entry 78%}
    .stat b{animation:rd-pop linear both;animation-timeline:view();animation-range:entry 10% cover 35%}
    @keyframes rd-pop{from{opacity:0;transform:scale(.7)}}
  }
}
/* scrolly: the sticky photo goes edge to edge on phones, with a per-type silhouette */
@media (max-width:879px){
  .sc-frame{margin-inline:calc(var(--gut,1.25rem)*-1);width:auto;border-radius:0;aspect-ratio:4/3;max-height:44svh;box-shadow:none}
  html[data-deco=ristorante] .sc-frame{border-radius:0 0 50% 50%/0 0 14% 14%}
  html[data-deco=enoteca] .sc-frame{margin-inline:0;border-radius:14rem 14rem 0 0;aspect-ratio:4/5;max-height:46svh}
  html[data-deco=bar] .sc-frame{margin-inline:0;border-radius:2rem;transform:rotate(1deg)}
  html[data-deco=pub] .sc-frame{border-bottom:.45rem solid var(--ac)}
  html[data-deco=pizzeria] .sc-frame{box-shadow:0 1.5rem 2.5rem -1.2rem rgba(var(--ac-rgb),.8)}
}
html[data-pair=elegant] .hero[data-v] h1{font-size:clamp(3.4rem,14vw,7.8rem);line-height:.9}
html[data-deco=enoteca] .hero:is([data-v=photo],[data-v=center])>.hero-media::after{border-color:var(--ac);inset:.9rem .9rem calc(var(--seam) + 7%)}
html[data-deco=bar] .hero[data-v=photo] h1{font-size:clamp(2.2rem,9.4vw,5rem)}
html[data-deco=bar] .hero[data-v=photo] .lead{font-size:1rem;margin-top:.6rem}
html[data-deco=bar] .hero[data-v=photo] .badge{display:none}

/* polish 2 (30 Oct): menu rows on a grid, premium category headers, tidy sticky tabs, editorial mid-home, desktop fixes. Colours always from theme tokens. */

/* ---------- MENU: category headers ---------- */
.menu-grid{counter-reset:mcat}
.mcard{padding:clamp(1.3rem,4.5vw,2.4rem)}
.mcard h2{counter-increment:mcat;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"no no" "ic tt";align-items:center;column-gap:.6rem;row-gap:.15rem;font-size:clamp(2rem,8.4vw,2.9rem);line-height:1;letter-spacing:-.025em;margin:0 0 1.2rem;padding-bottom:1rem;border-bottom:0;position:relative}
.mcard h2::before{content:counter(mcat,decimal-leading-zero);grid-area:no;font:700 .78rem/1 var(--body);letter-spacing:.22em;color:var(--ey);display:flex;align-items:center;gap:.6rem}
.mcard h2::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--ac) 0 3.2rem,var(--line) 3.2rem)}
.mcard h2 svg{grid-area:ic;width:1.6rem;height:1.6rem}
.mcard h2>:not(svg){grid-area:tt}
/* ---------- MENU: dish rows on a grid; name never touches price or heart ---------- */
.mcard .mi{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"n p f" "d d d" "a a a" "m m m";column-gap:.9rem;align-items:start;padding:1.1rem 0}
.mcard .mi .it{display:contents}
.mcard .mi .n{grid-area:n;text-wrap:balance;line-height:1.25;padding-top:.05rem}
.mcard .mi .it .pr{grid-area:p;margin:0;max-width:none;text-align:right;line-height:1.2;white-space:nowrap}
.mcard .mi .it .pr.long{white-space:normal;max-width:9rem;text-wrap:balance}
.mcard .mi .mi-fav{grid-area:f;margin:-.6rem -.6rem 0 -.2rem;align-self:start}
.mcard .mi>small:not(.al-n){grid-area:d;margin-top:.35rem}
.mcard .mi>.al-n{grid-area:a}
.mcard .mi>.mi-meta{grid-area:m}
/* with a photo: photo on the right, name/notes on the left, a clean "price ... heart" foot under the text */
.mcard .mi[data-th]{grid-template-columns:minmax(0,1fr) auto 6.6rem;grid-template-areas:"n n th" "d d th" "a a a" "m m m" "p p f";grid-template-rows:auto 1fr auto auto auto;column-gap:1rem}
.mcard .mi[data-th]>*{grid-column:auto}
.mcard .mi[data-th]>.mi-th{grid-area:th;width:6.6rem;height:6.6rem;align-self:start}
.mcard .mi[data-th] .it .pr{text-align:left;align-self:center;margin-top:.75rem}
.mcard .mi[data-th] .mi-fav{align-self:center;justify-self:end;margin:.75rem -.55rem 0 0}
@media(max-width:400px){.mcard .mi[data-th]{grid-template-columns:minmax(0,1fr) auto 5.4rem;column-gap:.85rem}.mcard .mi[data-th]>.mi-th{width:5.4rem;height:5.4rem}}
.pr .eur,.dl-pr .eur,.md-pr .eur{font-family:var(--body);font-weight:500;font-size:.68em;font-style:normal;opacity:.75;letter-spacing:0;vertical-align:.12em}
/* allergens + icons: one tidy, quiet line */
.mcard .al-n{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;opacity:.75;margin-top:.45rem}
.mcard .al-n abbr{font-weight:700}
.mcard .mi-meta{gap:.35rem .4rem;margin-top:.55rem}
.mcard .mi-meta .ai{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:rgba(var(--text-rgb),.06);color:var(--mute)}
.mcard .mi-meta .ai svg{width:1rem;height:1rem}
.mcard .mi-meta .ai[class*=di-]{background:rgba(var(--ac-rgb),.14);color:var(--ey)}
.mcard .mi-meta .bd{font-size:.68rem;letter-spacing:.08em;padding:.28rem .6rem}
/* desktop: one wide card per category, dishes in two columns */
@media(min-width:900px){
 .menu-grid{grid-template-columns:1fr;gap:2rem}
 .mcard ul{display:grid;grid-template-columns:1fr 1fr;column-gap:3.5rem}
 .mcard .mi:nth-last-child(2):nth-child(odd){border-bottom:0}
 .mcard h2{grid-template-columns:auto auto 1fr;grid-template-areas:"ic tt no";column-gap:.9rem}
 .mcard h2::before{justify-self:end;align-self:center}
}
/* ---------- MENU: sticky category bar ---------- */
.js .mtool{border-radius:999px;padding:.4rem;margin-inline:0;box-shadow:0 10px 30px -18px rgba(0,0,0,.45);border:1px solid var(--line)}
.mt-cats{padding-inline:.5rem;scroll-padding-inline:1.5rem;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.1rem,#000 calc(100% - 1.6rem),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 1.1rem,#000 calc(100% - 1.6rem),transparent)}
.mt-cats a{border:0;background:none;padding:0 .95rem}
.mt-cats a.mt-active,.mt-cats a[aria-current]{box-shadow:0 6px 16px -8px rgba(var(--ac-rgb),.9)}
/* ---------- piatto del giorno ---------- */
.daily .dl-t{font-size:clamp(1.7rem,6.5vw,2.4rem);line-height:1.05}
.daily .dl-pr{font-family:var(--disp);font-size:1.6rem;color:var(--ac)}

/* ---------- HOME: story + carousel ---------- */
.sc-stage{position:sticky}
.sc-dots{position:absolute;left:1rem;bottom:1rem;margin:0;gap:.35rem;z-index:3;justify-content:flex-start}
.sc-dots i{width:1.4rem;height:3px;border-radius:3px;background:rgba(255,255,255,.5);transform:none!important}
.sc-dots i.on{width:2.6rem;background:#fff}
@media(max-width:899px){
 html[data-kind] .sc-frame{margin-inline:0;border-radius:calc(var(--r)*1.4)}
 html[data-deco=enoteca] .sc-frame{border-radius:10rem 10rem calc(var(--r)*1.4) calc(var(--r)*1.4)}
 html[data-deco=pub] .sc-frame{border-radius:var(--r)}
 .sc-dots{left:1.2rem;bottom:1.2rem}
 html[data-deco=pub] .sc-dots{bottom:1.5rem}
}
/* quotes: editorial pull-quote, glyph hangs quietly */
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote){padding-top:2.4rem;margin-top:2.2rem}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote)::before{content:"“";font-size:4.6rem;top:-.6rem;left:-.1rem;opacity:.55}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote) p{font-size:clamp(1.45rem,5.4vw,2.2rem);text-wrap:balance}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote) footer{display:flex;align-items:center;gap:.7rem;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
blockquote:not(#bw-pv):not(.bw-pv blockquote):not(.rev blockquote) footer::before{content:"";width:1.8rem;height:2px;background:var(--ac);flex:none}
/* stats: hairline dividers */
.stats{gap:0}
.stat{padding:1.1rem 0;border-top:1px solid rgba(var(--dk-t-rgb),.18)}
@media(min-width:760px){.stat{border-top:0;border-left:1px solid rgba(var(--dk-t-rgb),.18);padding:0 1.5rem}.stat:first-child{border-left:0;padding-left:0}}
/* "Ci trovi anche su" + location: an editorial list instead of loose pills */
.accent2-bg .chs .ch-row{display:grid;gap:0}
.accent2-bg .chs .ch{border:0;border-bottom:1px solid rgba(var(--ac2-t-rgb,255,255,255),.28);border-radius:0;background:none;padding:.75rem 0;justify-content:flex-start}
.accent2-bg .chs .ch-h{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85;margin-bottom:.2rem}
.accent2-bg .split>div>p>a[href*=dove]{display:inline-flex;font-family:var(--disp);font-size:1.35rem;text-underline-offset:.25em}
/* news strip */
.news .eyebrow{font-size:.74rem;letter-spacing:.18em}
.news li{font-family:var(--disp);font-size:clamp(1.25rem,4.6vw,1.7rem);line-height:1.2}

/* ---------- FOOTER: calmer headings ---------- */
.ftr h2,.ftr h3{font-family:var(--disp);font-size:clamp(1.3rem,4.5vw,1.55rem)!important;letter-spacing:-.01em;text-transform:none;white-space:nowrap;font-style:normal;margin-bottom:.7rem}
@media(min-width:1011px){.ftr .wrap{grid-template-columns:1.3fr 1fr 1.2fr 1fr}}

/* ---------- desktop ---------- */
@media(min-width:1100px){
 .hero[data-v=photo] .hero-in{padding-bottom:clamp(5rem,12vh,8rem)}
 .evs{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))!important}
 .accent2-bg .split{align-items:center;column-gap:6rem}
}
/* ---------- ENOTECA: a title that owns the screen ---------- */
html[data-pair=elegant] .hero[data-v] h1{font-size:clamp(4.4rem,20.5vw,11rem);line-height:.86;letter-spacing:-.03em;max-width:11ch;font-weight:300;text-shadow:0 .08em .5em rgba(0,0,0,.5)}
html[data-deco=enoteca] .hero[data-v] h1::after{content:"";display:block;width:4.5rem;height:1px;margin:1.3rem auto 0;background:var(--ac);box-shadow:0 0 0 0 transparent}
html[data-pair=elegant] .hero[data-v] .kicker{letter-spacing:.28em;text-transform:uppercase;font-size:.74rem}
html[data-deco=enoteca] .hero[data-v=photo] .cta{justify-content:center}

/* wa send button: never clip the icon */
#bw-send{flex-wrap:wrap;row-gap:.4rem;padding-inline:1rem;max-width:100%}
#bw-send>span:not(.bw-tag){white-space:normal;text-align:center;min-width:0}
#bw-send svg{flex:none}

/* booking calendar */
.bw-dwrap{position:relative}
.bw-dnat{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none}
.bw-dbtn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.6rem;font:inherit;text-align:left;padding:.75rem .9rem;border-radius:10px;border:1.5px solid var(--line);background:var(--page);color:color-mix(in srgb,var(--text) 65%,transparent);min-height:2.9rem;cursor:pointer}
.bw-dbtn.set{color:var(--text)}.bw-dbtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.bw-dbtn svg{flex:none;opacity:.7}
.bw-dbtn:focus-visible,.bw-dbtn[aria-expanded=true]{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 22%,transparent)}
.bw-cal{position:absolute;z-index:40;top:calc(100% + .4rem);left:0;width:100%;max-width:22rem;box-sizing:border-box;background:var(--page);color:var(--text);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.22);padding:.8rem}
@media(min-width:521px){.bw-g>.bw-dwrap .bw-cal{left:0}}
.cal-h{display:flex;align-items:center;gap:.3rem;margin-bottom:.5rem}.cal-h strong{flex:1;text-align:center;text-transform:capitalize;font-size:1rem}
.cal-nav,.cal-x{width:2.3rem;height:2.3rem;border-radius:50%;border:0;background:color-mix(in srgb,var(--text) 7%,transparent);color:inherit;font-size:1.3rem;line-height:1;cursor:pointer}
.cal-nav[disabled]{opacity:.3;cursor:default}.cal-x{margin-left:.2rem;font-size:1.4rem}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.15rem}
.cal-w{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;opacity:.6;text-align:center;padding:.2rem 0}
.cal-d{aspect-ratio:1;min-height:2.3rem;min-width:0;width:100%;padding:0;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:.95rem;font-variant-numeric:tabular-nums;cursor:pointer}
.cal-d:not([disabled]):hover{background:color-mix(in srgb,var(--ac) 14%,transparent)}
.cal-d.today{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ac) 60%,transparent)}
.cal-d.sel{background:var(--ac);color:var(--ac-t);font-weight:700}
.cal-d[disabled]{opacity:.32;cursor:not-allowed}.cal-d.closed{text-decoration:line-through}
.cal-d:focus-visible,.cal-nav:focus-visible,.cal-x:focus-visible{outline:2px solid var(--ac);outline-offset:1px}
.cal-k{display:flex;align-items:center;gap:.45rem;font-size:.75rem;opacity:.7;margin:.6rem 0 0}.cal-sw{width:1.2rem;height:1px;background:currentColor}

/* tappable drawn map */
.map-hit{display:block;color:inherit;cursor:pointer}.map-hit:focus-visible{outline:3px solid var(--ac);outline-offset:3px}
.addr-map{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}

/* hours modal */
.badge-btn{cursor:pointer;-webkit-tap-highlight-color:transparent}.badge-btn:focus-visible{outline:2px solid var(--ac);outline-offset:3px}
.badge-btn::after{content:"›";margin-left:.35rem;opacity:.7;font-weight:700}
html.hrs-lock{overflow:hidden}
dialog.hrs-m{position:fixed;inset:0;margin:auto;height:fit-content;border:0;padding:0;box-sizing:border-box;background:transparent;max-width:min(26rem,calc(100vw - 1.6rem));width:100%;max-height:calc(100dvh - 2rem);color:var(--text);overflow:visible}
dialog.hrs-m::backdrop{background:rgba(10,8,6,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.hrs-in{position:relative;background:var(--page);border:1px solid var(--line);border-radius:22px;padding:1.5rem 1.3rem 1.3rem;box-shadow:0 30px 80px rgba(0,0,0,.35);max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain}
dialog.hrs-m[open] .hrs-in{animation:hrsIn .28s cubic-bezier(.2,.8,.2,1)}
@keyframes hrsIn{from{opacity:0;transform:translateY(14px) scale(.98)}}
@media(prefers-reduced-motion:reduce){dialog.hrs-m[open] .hrs-in{animation:none}}
.hrs-x{position:absolute;top:.8rem;right:.8rem;width:2.4rem;height:2.4rem;border-radius:50%;border:0;background:color-mix(in srgb,var(--text) 8%,transparent);color:inherit;font-size:1rem;cursor:pointer}
.hrs-x:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.hrs-k{display:inline-flex;align-items:center;gap:.5rem;margin:0 2.6rem .5rem 0;font-size:.82rem;font-weight:600;padding:.35rem .75rem;border-radius:99px;background:color-mix(in srgb,var(--text) 6%,transparent)}
.hrs-k .dot{width:.55rem;height:.55rem;border-radius:50%;background:#c0392b;flex:none}.hrs-k[data-state=open] .dot{background:#2e9e5b}
.hrs-in h2{font-family:var(--display,inherit);font-size:clamp(1.6rem,6vw,2rem);margin:.3rem 0 .9rem;line-height:1.1}
.hrs-in h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin:1.1rem 0 .3rem}
.hrs-l{list-style:none;margin:0;padding:0}
.hrs-l li{display:flex;justify-content:space-between;gap:1rem;padding:.62rem .1rem;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.hrs-l li:last-child{border-bottom:0}.hrs-l li b{font-weight:600;text-align:right}
.hrs-l li.off{opacity:.55}.hrs-l li.on{color:var(--ac);font-weight:700;margin:0 -.6rem;padding-inline:.7rem;border-radius:10px;background:color-mix(in srgb,var(--ac) 10%,transparent);border-bottom-color:transparent}
.hrs-l li em{font-style:normal;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;margin-left:.3rem;opacity:.85}
.hrs-a{display:flex;gap:.6rem;margin-top:1.2rem;flex-wrap:wrap}.hrs-a .btn{flex:1 1 9rem;justify-content:center}

/* menu toolbar: two rows (search · Filtri · heart) / (category chips) */
.js .mtool{border-radius:20px;padding:.45rem}
.mtool .mt-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"s f h" "c c c";gap:.45rem .4rem;align-items:center}
.mtool .mt-sbtn{grid-area:s;width:auto;border-radius:999px;display:flex;justify-content:flex-start;gap:.5rem;padding:0 1rem;color:color-mix(in srgb,var(--text) 62%,transparent);font-weight:500;font-size:.92rem;min-width:0}
.mtool .mt-sbtn svg{flex:none}.mt-sl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.mtool .mt-fbtn{grid-area:f}.mtool .mt-favb{grid-area:h;margin:0}
.mtool .mt-cats{grid-area:c;margin:0 -.45rem;padding:.1rem .45rem .05rem;scroll-padding-inline:2.2rem;-webkit-mask-image:none;mask-image:none;border-top:1px solid var(--line);padding-top:.45rem}
.mtool .mt-cats.fl{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2rem);mask-image:linear-gradient(90deg,transparent 0,#000 2rem)}
.mtool .mt-cats.fr{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),transparent)}
.mtool .mt-cats.fl.fr{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2rem,#000 calc(100% - 2rem),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 2rem,#000 calc(100% - 2rem),transparent)}
.mtool .mt-cats a{min-height:2.4rem}
.mtool .mt-cats::after{content:"";flex:0 0 .6rem}
.mt-s-open .mtool .mt-sbtn{display:none}.mt-s-open .mtool .mt-bar{grid-template-areas:"f f h" "c c c";grid-template-columns:1fr auto auto}
.mt-s-open .mtool .mt-fbtn{justify-self:end}
.mtool .mt-search{margin:.45rem 0 .1rem}
/* whole dish row opens the detail */
.mi.mi-click{cursor:pointer;border-radius:14px;transition:background-color .2s}
@media(hover:hover){.mi.mi-click:hover{background:color-mix(in srgb,var(--text) 3.5%,transparent)}}
.mi.mi-click:has(.mi-open:focus-visible){outline:2px solid var(--ac);outline-offset:4px}
.js .mtool{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"s f h" "q q q" "c c c";column-gap:.4rem}
.js .mtool>*{grid-column:1/-1}
.mtool .mt-bar{display:contents}
.mtool .mt-cats{margin-top:.45rem}
.mtool .mt-search{grid-area:q;margin:.45rem 0 0}
.mt-s-open .mtool{grid-template-areas:"q q h" "c c c"}
.mt-s-open .mtool .mt-search{margin:0;grid-column:1/3}
.mt-s-open .mtool .mt-fbtn{display:none}
.js .mtool #mlive{position:absolute}
.mtool .mt-search{display:flex;gap:.4rem;min-width:0}.mtool .mt-search[hidden]{display:none}
.mtool .mt-search .mq{flex:1 1 auto;min-width:0;width:auto;height:2.75rem;border-radius:999px;padding:0 1rem;border:1.5px solid var(--ac);background:var(--card);color:var(--text);font:inherit;font-size:1rem}
.mtool .mt-search .mq:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 22%,transparent)}
.hrs-l li b{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.hrs-l li b i{font-style:normal;white-space:nowrap}
.hrs-l li>span{white-space:nowrap}
/* batch3: dish rows tighter */
.mcard .mi{padding:.9rem 0}
.mcard .mi[data-th]{grid-template-areas:"n n th" "d d th" "a a th" "m m m" "p p f";grid-template-rows:auto auto 1fr auto auto}
.mcard .mi>small:not(.al-n){margin-top:.25rem}
.mcard .al-n{margin-top:.35rem}.mcard .mi-meta{margin-top:.45rem}
.mcard .mi[data-th] .it .pr{margin-top:.5rem}.mcard .mi[data-th] .mi-fav{margin-top:.5rem}
dialog.hrs-m .hrs-in h2{font-size:clamp(1.5rem,5.5vw,1.9rem)!important;letter-spacing:0;padding-right:2.4rem;overflow-wrap:anywhere}
.cal-w{letter-spacing:0;font-size:.62rem;overflow:hidden}.cal-d{min-height:2.1rem}
/* feedback 31 Oct: one send button, demo caption outside it */
.bw .bw-tag{display:block;margin:1rem 0 .5rem;padding:0;background:none;border-radius:0;color:var(--mute);font-size:.82rem;font-weight:500;line-height:1.4;text-align:center}
.bw .bw-tag b{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:.12rem .5rem;border-radius:99px;border:1px solid var(--line);color:var(--text);margin-right:.2rem;vertical-align:.1em}
.bw .bw-tag+#bw-send{margin-top:0}
.bw .bw-fb{text-align:center;margin:.5rem 0 0}
.bw .bw-out:not([hidden]){margin:1.2rem 0 .4rem;padding-top:1rem;border-top:1px dashed var(--line)}
/* menu: nav and sticky toolbar move together (no overlap, no jump) */
.hdr{transition:border-color .3s,box-shadow .3s,transform .3s var(--ease,ease)}
.js .mtool{transition:top .3s var(--ease,ease)}
@media(prefers-reduced-motion:reduce){.hdr,.js .mtool{transition:none}}
/* feedback 31 Oct: legible prices everywhere (number in text colour, discreet € on the baseline in the AA-safe eyebrow colour) */
.mi .it .pr,.mcard li .pr,.ml-cat .pr,.daily .dl-pr,.dl-pr,.md-pr{color:var(--text)}
.pr .eur,.dl-pr .eur,.md-pr .eur{vertical-align:baseline;color:var(--ey);opacity:1;font-size:.72em;margin-right:.08em}
.ml-cat .pr{align-items:baseline}
.ml-cat .pr::before{align-self:center;transform:none}
.ml-cat{margin-bottom:1.6rem}.ml-cat li:last-child{padding-bottom:0}
.sc-eb{color:var(--ey)}
section.ml-cat.mcat{padding-top:1.6rem;padding-bottom:.4rem;margin-bottom:0}
.ml-cat .mi .it .n{min-width:0;overflow-wrap:anywhere}.ml-cat .mi .it .pr{flex:1 0 auto;white-space:nowrap}
.ml-cat .mi .it .pr{flex:1 0 auto;gap:.18rem}.ml-cat .mi .it .pr::before{margin-right:.4rem}
.ml-cat .mi[data-th] .it .pr{flex:0 0 auto;margin-left:auto}.ml-cat .mi[data-th] .it .pr::before{display:none}
.ml-cat .mi .it .n{line-height:1.25}
/* perf (31 Oct): on phones the sticky/fixed bars are already ~95% opaque, so the live blur behind them was paid on every scrolled frame for an invisible gain */
@media (max-width:900px){.hdr,.mtool,.js .mtool,.mnav,.callbar,.cz-fab{-webkit-backdrop-filter:none;backdrop-filter:none}.hdr{background:rgba(var(--page-rgb),.985)}.js .mtool,.mnav{background:rgba(var(--page-rgb),.99)}}
html:not(.hdr-off) body.qr-page .mtool{top:var(--hdr-h,0px)}
/* menu badges: small and discreet; dishes in a row never stretch each other (Gianluca, 2 Nov) */
.mi-meta .bd,.mcard .mi-meta .bd{font-size:.6rem;letter-spacing:.06em;font-weight:650;padding:.1rem .42rem;border-width:1px;line-height:1.35;gap:.2rem}
.mi-meta .bd span{font-size:.9em}
.mcard ul,html[data-layout=bacheca] .mcard ul,.mt-items{align-items:start}

/* desktop (Oct 31): real wide-screen layouts. Everything here is inside min-width queries, so phones (<=430px) are untouched. */
@media(min-width:1100px){
/* menu: sticky sidebar (search, filters, favourites, categories) beside the dishes */
.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool){display:grid;grid-template-columns:15rem minmax(0,1fr);column-gap:2.6rem;align-items:start}
.js body:not(.qr-page) .wrap[data-menu]:where(:has(>#mtool))>*{grid-column:1/-1}
.js body:not(.qr-page) .wrap[data-menu]>#cosa-ordino{grid-row:1}
.js body:not(.qr-page) .wrap[data-menu]>.daily{grid-row:2}
.js body:not(.qr-page) .wrap[data-menu]>#mtool{grid-column:1;grid-row:3/span 2;align-self:stretch;position:relative;top:auto;margin:0;padding:0;background:none;border:0;box-shadow:none;border-radius:0;display:block;-webkit-backdrop-filter:none;backdrop-filter:none}
.js body:not(.qr-page) .wrap[data-menu]>.mt-empty{grid-column:2;grid-row:3}
.js body:not(.qr-page) .wrap[data-menu]>.mt-empty+*,.js body:not(.qr-page) .wrap[data-menu]>.menu-grid,.js body:not(.qr-page) .wrap[data-menu]>.menu-list,.js body:not(.qr-page) .wrap[data-menu]>.menu-tabs{grid-column:2;grid-row:4;min-width:0}
.js body:not(.qr-page) #mtool .mt-bar{position:sticky;top:calc(var(--hdr-h,5.3rem) + 1.2rem);display:flex;flex-direction:column;align-items:stretch;gap:.6rem;padding:1rem;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:0 18px 40px -30px rgba(0,0,0,.45);max-height:calc(100vh - var(--hdr-h,5.3rem) - 2.4rem);overflow:auto;scrollbar-width:thin;transition:top .3s var(--ease,ease)}
.js.hdr-off body:not(.qr-page) #mtool .mt-bar{top:1.2rem;max-height:calc(100vh - 2.4rem)}
.js body:not(.qr-page) #mtool .mt-bar>*{order:5;margin:0}
.js body:not(.qr-page) #mtool .mt-sbtn{order:1;width:100%;height:2.9rem;border-radius:999px}
.js body:not(.qr-page) #mtool .mt-search{order:1;margin:0}
.js body:not(.qr-page) #mtool .mt-fbtn{order:2;width:100%;justify-content:center;display:inline-flex}
.js body:not(.qr-page) #mtool .mt-favb{order:3;width:100%;justify-content:center;position:static}
.js body:not(.qr-page) #mtool .mt-active{order:4;flex-wrap:wrap;overflow:visible}
.js body:not(.qr-page) #mtool .mt-cats{order:6;flex-direction:column;gap:.15rem;overflow:visible;margin:.3rem -.3rem 0;padding:.75rem .3rem 0;border-top:1px solid var(--line);-webkit-mask-image:none!important;mask-image:none!important}
.js body:not(.qr-page) #mtool .mt-cats::after{display:none}
.js body:not(.qr-page) #mtool .mt-cats a{justify-content:flex-start;min-height:2.6rem;padding:0 1rem;white-space:normal;line-height:1.2;transition:background-color .2s,color .2s}
.js body:not(.qr-page) #mtool .mt-cats a:not([aria-current=true]):hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}
.js body:not(.qr-page) #mtool #mlive{position:absolute}
.mt-s-open body:not(.qr-page) #mtool .mt-fbtn{display:inline-flex}
/* hover affordances */
.mt-fbtn,.mt-ib,.mi-fav{transition:border-color .2s,background-color .2s,transform .2s}
.mt-fbtn:hover,.mt-ib:hover{border-color:var(--text)}
.mi-fav:hover{transform:scale(1.08)}
}
@media(min-width:1600px){
.wrap{width:min(84rem,100% - 2*var(--gut),1440px)}
.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool){grid-template-columns:17rem minmax(0,1fr);column-gap:3.2rem}
}
/* very large screens (32" monitor): type stops growing at 106.25% (17px) from 1800px up, content column capped at 1440px; photos may stay full-bleed */
@media(min-width:1800px){html{font-size:106.25%}}
@media(min-width:1800px){.wrap{width:min(100% - 2*var(--gut),1440px)}}
/* desktop hover: text never touches the highlight edge (padding inside, matching negative margin keeps the columns aligned) */
@media(min-width:1100px){
.mcard ul{column-gap:3.6rem;row-gap:.6rem}
.mcard .mi,.mcard .mi[data-th]{padding:1.1rem 1rem;margin-inline:-1rem}
.mcard .mi.mi-click{border-radius:16px}
.js body:not(.qr-page) #mtool .mt-cats a{padding:0 1.1rem;min-height:2.75rem}
.js body:not(.qr-page) #mtool .mt-bar{padding:1.1rem;gap:.7rem}
.js body:not(.qr-page) #mtool .mt-sbtn{padding:0 1.1rem}
}
/* themed scrollbars (desktop pointers only; phones keep their native overlay bars): thin, rounded, in the venue palette */
@media(min-width:760px) and (hover:hover) and (pointer:fine){
html{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ac) 75%,var(--page)) var(--page)}
.cz-bd,#mt-sheet,#mt-sheet *,dialog,dialog *,.cz-panel *{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ac) 65%,var(--page)) transparent}
::-webkit-scrollbar{width:12px;height:12px;background:transparent}
html::-webkit-scrollbar{background:var(--page)}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ac) 70%,var(--page));border-radius:99px;border:3px solid transparent;background-clip:padding-box;min-height:40px}
::-webkit-scrollbar-thumb:hover{background:var(--ac);background-clip:padding-box}
::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}
}
@media(min-width:1100px){.js body:not(.qr-page) #mtool .mt-bar>.mt-search{display:flex;gap:.45rem;align-items:center}.js body:not(.qr-page) #mtool .mt-bar>.mt-search[hidden]{display:none}.js body:not(.qr-page) #mtool .mt-bar .mq{flex:1;min-width:0;width:auto;height:2.9rem}.js body:not(.qr-page) #mtool .mt-bar>.mt-active[hidden]{display:none}}
@media(min-width:1100px){.bw-out dl{grid-template-columns:repeat(3,minmax(0,1fr))}.bw-out dl>div:first-child{grid-column:1/-1}.bw-out dd{overflow-wrap:anywhere}}
/* blocks after the dishes (allergens, notes, sources) always sit below them, even on days without a daily special */
@media(min-width:1100px){.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool)>:is(.menu-grid,.menu-list,.menu-tabs)~*{grid-row:5}.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool)>:is(.menu-grid,.menu-list,.menu-tabs)~*~*{grid-row:6}.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool)>:is(.menu-grid,.menu-list,.menu-tabs)~*~*~*{grid-row:7}.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool)>:is(.menu-grid,.menu-list,.menu-tabs)~*~*~*~*{grid-row:8}.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool)>:is(.menu-grid,.menu-list,.menu-tabs)~*~*~*~*~*{grid-row:9}.js body:not(.qr-page) .wrap[data-menu]:has(>#mtool)>:is(.menu-grid,.menu-list,.menu-tabs)~*~*~*~*~*~*{grid-row:10}}
/* pub hero headline: on wide screens use the width (3 lines, not 5) */
@media(min-width:1100px){html[data-pair=condensed] .hero[data-v] h1{font-size:clamp(5rem,6.2vw,7rem);max-width:15ch}}
/* selects: Safari/WebKit draws a light native box (unreadable on dark venues); draw our own (desktop + mobile, approved 31 Oct) */
.bw select,.cz-sel select{-webkit-appearance:none;appearance:none;background-color:var(--page);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 1.25rem) 52%,calc(100% - .9rem) 52%;background-size:.36rem .36rem;background-repeat:no-repeat;padding-right:2.4rem;color:var(--text)}
.cz-sel select{background-color:var(--card)}
.bw select:disabled{opacity:.55;cursor:not-allowed}

/* phones: keep the native control height (font-dependent) so nothing below moves */
@media not all and (min-width:760px) and (hover:hover) and (pointer:fine){.bw select{line-height:normal;min-height:calc(round(nearest,1lh + 9px,1px) + 27px);padding-top:16px;padding-bottom:8px}}

/* ===== Page structures (design.layout / Personalizza → Struttura). Same content, different arrangement.
   classica = the original: NOTHING below may match it (pixel-identical guarantee). Only html[data-layout=editoriale|bacheca]. ===== */

/* ---------- EDITORIALE: a magazine. Numbered chapters, hairline rules, big left-aligned headlines, light sections, ruled lists instead of boxes ---------- */
html[data-layout=editoriale] main{counter-reset:ch}
html[data-layout=editoriale] main>section:not(.hero):not(.phero):not(.news):not(.sc-invite):not(.scrolly){counter-increment:ch;border-top:1px solid var(--line)}
html[data-layout=editoriale] main>section:not(.hero):not(.phero):not(.news):not(.sc-invite):not(.scrolly)>.wrap>.eyebrow:first-child::before,
html[data-layout=editoriale] main>section:not(.hero):not(.phero):not(.news):not(.sc-invite):not(.scrolly)>.wrap>div:first-child .eyebrow::before{content:counter(ch,decimal-leading-zero) " —";display:inline;width:auto;height:auto;background:none;opacity:1;margin-right:.6rem;font-variant-numeric:tabular-nums;white-space:pre}
html[data-layout=editoriale] .sdiv{display:none}
/* dark band (numbers) becomes a light, ruled band */
html[data-layout=editoriale] main>section.dark{background:var(--page);background-image:none;color:var(--text)}
html[data-layout=editoriale] main>section.dark .eyebrow{color:var(--ey)}
html[data-layout=editoriale] main>section.dark .stat b{color:var(--ey)}
html[data-layout=editoriale] .stats{gap:0;border-block:1px solid var(--line);margin-top:2.5rem}
html[data-layout=editoriale] .stat{padding:1.6rem 1.4rem 1.6rem 0}
html[data-layout=editoriale] .stat+.stat{border-left:1px solid var(--line);padding-left:1.4rem}
@media(max-width:759px){html[data-layout=editoriale] .stats{grid-template-columns:1fr 1fr}html[data-layout=editoriale] .stat:nth-child(odd){border-left:0;padding-left:0}html[data-layout=editoriale] .stat:nth-child(n+3){border-top:1px solid var(--line)}}
/* headings: bigger, tighter, left */
html[data-layout=editoriale] main section:not(.hero):not(.sc-invite)>.wrap h2{font-size:clamp(2.1rem,5.4vw,4.2rem);line-height:1.02;max-width:20ch}
/* mosaic: asymmetric three-column spread on desktop */
@media(min-width:960px){html[data-layout=editoriale] .mosaic{grid-template-columns:1.4fr 1fr 1fr;gap:1rem}html[data-layout=editoriale] .mosaic a:nth-child(1){grid-column:1;grid-row:span 2;aspect-ratio:auto}html[data-layout=editoriale] .mosaic a{border-radius:4px}}
/* events: ruled programme, not cards */
html[data-layout=editoriale] .evs{gap:0}
html[data-layout=editoriale] .ev{background:none;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:1.4rem 0}
@media(min-width:900px){html[data-layout=editoriale] .evs{grid-template-columns:1fr!important}html[data-layout=editoriale] .ev{display:grid;grid-template-columns:16rem 1fr;column-gap:2.5rem}html[data-layout=editoriale] .ev>.ev-w{grid-row:1/span 3}html[data-layout=editoriale] .ev>*:not(.ev-w){grid-column:2}}
/* menu: flat typographic cards with a rule on top */
html[data-layout=editoriale] .mcard{background:none;border:0;border-top:2px solid var(--text);border-radius:0;box-shadow:none;padding:1.3rem 0 0}
html[data-layout=editoriale] .mcard:hover{transform:none}
html[data-layout=editoriale] .phero{padding-bottom:clamp(2rem,5vw,3.5rem)}
html[data-layout=editoriale] .phero h1{max-width:16ch;letter-spacing:-.01em}


/* EDITORIALhtml[data-layout=editoriale] hero: split cover. Headline set on paper on one side, the photo framed on the other */
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]){background:var(--page);color:var(--text);display:grid;min-height:0;align-items:stretch}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])::before,html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.grain,html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.glow,html[data-hero=cover] .hero .scroll-cue{display:none}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.hero-media{position:relative;inset:auto;transform:none;will-change:auto;margin:var(--gut) var(--gut) 0;border-radius:var(--hero-r,18px);overflow:hidden;aspect-ratio:4/3}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.hero-media img{position:absolute;inset:0}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.hero-in{padding:1.8rem 0 2.6rem;text-align:left;align-items:flex-start}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) :is(.kicker,h1,.lead){text-shadow:none;color:inherit}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) .kicker{color:var(--ey)}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) h1{max-width:12ch;letter-spacing:-.015em;font-size:clamp(2.7rem,7.2vw,6.4rem);line-height:.98}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) .lead{color:var(--mute);font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:32rem}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) .btn.ghost{color:var(--text);border-color:currentColor;background:transparent}
@media(hover:hover) and (pointer:fine){html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) .btn.ghost:hover{background:var(--text);color:var(--page);border-color:var(--text)}}
html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]) .badge{color:var(--text);background:none;border:1px solid var(--line);text-shadow:none}
@media(min-width:960px){
 html[data-hero=cover] .hero:is([data-v=photo],[data-v=center]){grid-template-columns:var(--bp-e) minmax(0,1.05fr) minmax(0,.95fr) var(--bp-e);min-height:clamp(34rem,calc(100svh - 6rem),54rem);border-bottom:1px solid var(--line)}
 html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.hero-media{grid-column:3;grid-row:1;aspect-ratio:auto;margin:clamp(1rem,1.6vw,1.6rem) 0}
 html[data-hero=cover] .hero:is([data-v=photo],[data-v=center])>.hero-in{grid-column:2;grid-row:1;width:auto;margin:0;align-self:center;padding:3rem clamp(2rem,4vw,4.5rem) 3rem 0;display:flex;flex-direction:column}
}
html{--bp-e:max(var(--gut),calc((100vw - 1440px)/2))}
/* EDITORIALhtml[data-layout=editoriale] story: drop cap and pull quotes */
html[data-layout=editoriale] .sc-ch:first-child>p:first-of-type:not(.nodrop)::first-letter,html[data-layout=editoriale] main>section:not(.hero) .split .lead:first-of-type:not(.nodrop)::first-letter{float:left;font-family:var(--disp);font-size:3.6em;line-height:.82;padding:.28rem .55rem 0 0;color:var(--ey);font-weight:400}
html[data-layout=editoriale] .sc-ch blockquote,html[data-layout=editoriale] main blockquote{border:0;border-block:1px solid currentColor;padding:1.1rem 0;font-style:italic;font-size:clamp(1.4rem,2.8vw,2.1rem);line-height:1.25;position:relative}
html[data-layout=editoriale] .sc-ch blockquote::before,html[data-layout=editoriale] main blockquote::before{content:"“";display:block;font-family:var(--disp);font-size:3.4em;line-height:.6;height:.42em;color:var(--ey);font-style:normal}
html[data-layout=editoriale] .sc-on .sc-ch:not(.on) blockquote{border-left:0}
/* EDITORIALhtml[data-layout=editoriale] menu: a printed carta. Chapters, two columns, dotted leaders, photos on demand (tap the dish) */
html[data-layout=editoriale] .menu-grid{grid-template-columns:1fr!important;gap:clamp(2.4rem,5vw,4rem)}
html[data-layout=editoriale] .mcard{border-top:0;padding:0;text-align:left}
html[data-layout=editoriale] .mcard h2{justify-content:center;text-align:center;font-size:clamp(1.9rem,3.4vw,2.8rem);font-style:italic;font-weight:400;gap:1.1rem;margin:0 0 1.4rem}
html[data-layout=editoriale] .mcard h2 svg{display:none}
html[data-layout=editoriale] .mcard h2::before,html[data-layout=editoriale] .mcard h2::after{content:"";flex:1 1 2rem;max-width:12rem;height:0;border-top:1px solid currentColor;opacity:.45}
@media(min-width:800px){html[data-layout=editoriale] .mcard ul{columns:2;column-gap:clamp(2.5rem,5vw,4.5rem)}html[data-layout=editoriale] .mcard .mi{break-inside:avoid}}
html[data-layout=editoriale] .mcard .mi,html[data-layout=editoriale] .mcard .mi[data-th]{grid-template-columns:minmax(0,max-content) minmax(1.2rem,1fr) auto auto;grid-template-areas:"n l p f" "d d d d" "a a a a" "m m m m";grid-template-rows:auto;column-gap:.5rem;border-bottom:0;padding:.75rem 1rem}
html[data-layout=editoriale] .mcard .mi::before{content:"";grid-area:l;align-self:end;margin-bottom:.42em;border-bottom:2px dotted color-mix(in srgb,currentColor 40%,transparent)}
html[data-layout=editoriale] .mcard .mi[data-th]>.mi-th{display:none}
html[data-layout=editoriale] .mcard .mi .n{font-family:var(--disp);font-weight:400;font-size:1.18rem}
html[data-layout=editoriale] .mcard .mi .it .pr,html[data-layout=editoriale] .mcard .mi[data-th] .it .pr{grid-area:p;text-align:right;align-self:end;margin:0;font-variant-numeric:oldstyle-nums tabular-nums}
html[data-layout=editoriale] .mcard .mi .mi-fav,html[data-layout=editoriale] .mcard .mi[data-th] .mi-fav{grid-area:f;align-self:center;margin:-.5rem -.6rem -.5rem 0}
html[data-layout=editoriale] .mcard .mi>small:not(.al-n){font-style:italic}
html[data-layout=editoriale] .mcard .mi-meta .bd{background:none;border:0;padding:0;font-style:italic}
html[data-layout=editoriale] .daily{border:0;border-block:2px solid var(--text);border-radius:0;background:none}
html[data-layout=editoriale] .phero{text-align:center}
html[data-layout=editoriale] .phero .wrap{display:flex;flex-direction:column;align-items:center}
html[data-layout=editoriale] .phero h1{max-width:18ch}

/* ---------- BACHECA: an app-like board. Bento tiles beside the hero (hours, menu, story, map, what's on), every section a rounded tile on the page,
   menu as a grid of big photo cards. Fast, punchy, everything one tap away. ---------- */
.bento{display:none}
html{--bp:max(var(--gut),calc((100vw - 1440px)/2));--bg:clamp(.6rem,1vw,.9rem);--tr:clamp(18px,1.6vw,26px)}
html[data-layout=bacheca] .sdiv{display:none}
html[data-layout=bacheca] .bento{display:grid;grid-template-columns:1fr 1fr;gap:var(--bg);grid-auto-flow:dense;margin:var(--bg) var(--gut) 0}
html[data-layout=bacheca] .bt{position:relative;display:flex;flex-direction:column;gap:.3rem;min-width:0;overflow:hidden;border-radius:var(--tr);background:var(--card);border:1px solid var(--line);padding:1rem 1.1rem;color:var(--text);text-decoration:none;line-height:1.3;transition:transform .25s var(--ease,ease),box-shadow .25s}
@media(hover:hover) and (pointer:fine){html[data-layout=bacheca] .bt:hover{transform:translateY(-3px);box-shadow:0 18px 34px -22px rgba(0,0,0,.45)}}
html[data-layout=bacheca] .bt-k{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ey)}
html[data-layout=bacheca] .bt b{font-family:var(--disp);font-size:clamp(1.15rem,1.6vw,1.45rem);font-weight:inherit;line-height:1.15;overflow-wrap:anywhere}
html[data-layout=bacheca] .bt-go{margin-top:auto;padding-top:.5rem;font-weight:700;font-size:.9rem}
html[data-layout=bacheca] .bt-hrs{grid-column:1/-1;background:var(--ac);color:var(--ac-t);border-color:transparent}
html[data-layout=bacheca] .bt-hrs .bt-k{color:inherit;opacity:.85}
html[data-layout=bacheca] .bt-hrs .badge{all:unset;display:flex;gap:.55rem;align-items:baseline;font-weight:650;font-size:.95rem;line-height:1.4}
html[data-layout=bacheca] .bt-hrs .badge .dot{flex:none;width:.6rem;height:.6rem;border-radius:50%;background:currentColor;transform:translateY(-.05rem)}
html[data-layout=bacheca] .bt-menu ul{list-style:none;padding:0;margin:.2rem 0 0;display:grid;gap:.2rem;font-family:var(--disp);font-size:clamp(1.02rem,1.3vw,1.2rem);line-height:1.2}
html[data-layout=bacheca] .bt-menu li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-layout=bacheca] .bt-pic{overflow:visible;clip-path:inset(0 round var(--tr));padding:0;min-height:10rem;justify-content:flex-end;background:var(--dk)}
html[data-layout=bacheca] .bt-pic picture{display:block}
html[data-layout=bacheca] .bt-pic picture,html[data-layout=bacheca] .bt-pic>img{position:absolute;inset:0}
html[data-layout=bacheca] .bt-pic img{width:100%;height:100%;object-fit:cover}
html[data-layout=bacheca] .bt-pic .bt-k{position:relative;margin:.7rem;align-self:flex-start;background:rgba(var(--dk-rgb),.82);color:var(--dk-t);padding:.4rem .7rem;border-radius:999px}
html[data-layout=bacheca] .bt-ev{background:color-mix(in srgb,var(--ac) 16%,var(--card))}
html[data-layout=bacheca] .bento>.bt:last-child:nth-child(even){grid-column:1/-1}
html[data-hero=tile] .hero .scroll-cue{display:none}
html[data-layout=bacheca] .bt-hl{margin:0;font-weight:650;font-size:.92rem;line-height:1.4}
/* hero = the big tile */
html[data-hero=tile] .hero:not([data-v=split]):not([data-v=typo]){margin:var(--bg) var(--gut) 0;border-radius:var(--tr);min-height:clamp(26rem,62svh,34rem)}
html[data-hero=tile] .hero:not([data-v=split]):not([data-v=typo]) .hero-in{width:auto;margin:0;padding:3rem clamp(1.3rem,4vw,3rem) clamp(1.6rem,4vw,2.6rem)}
html[data-hero=tile] .hero h1{font-size:clamp(2.4rem,5.2vw,4.6rem);max-width:15ch;margin:.6rem 0 .8rem}
html[data-hero=tile] .hero .lead{font-size:clamp(1rem,1.5vw,1.2rem);max-width:34rem;margin-bottom:1.2rem}
@media(min-width:960px){
 html[data-layout=bacheca] main:has(>.bento){display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);column-gap:var(--bg)}
 html[data-layout=bacheca] main:has(>.bento)>*{grid-column:1/-1;min-width:0}
 html[data-layout=bacheca] main:has(>.bento)>.hero{grid-column:1;grid-row:1;margin:var(--bg) 0 0 var(--bp)!important;min-height:clamp(32rem,calc(100svh - 7.5rem),46rem)!important}
 html[data-layout=bacheca] main:has(>.bento)>.bento{grid-column:2;grid-row:1;margin:var(--bg) var(--bp) 0 0;grid-template-rows:auto 1fr 1fr auto}
 html[data-layout=bacheca] .bt{padding:1.15rem 1.3rem}
}
/* every following section is a tile on the page */
html[data-layout=bacheca] main>.marquee{margin:var(--bg) var(--bp) 0;border-radius:var(--tr)}
html[data-layout=bacheca] main>section:not(.hero):not(.scrolly):not(.news){padding-block:var(--bg) 0}
html[data-layout=bacheca] main>section:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap{width:auto;margin-inline:var(--bp);background:var(--card);border:1px solid var(--line);border-radius:var(--tr);padding:clamp(1.4rem,3.4vw,3rem)}
html[data-layout=bacheca] main>section:is(.dark,.accent2-bg){margin:var(--bg) var(--bp) 0;border-radius:var(--tr);padding-block:clamp(1.6rem,3.6vw,3rem)}
html[data-layout=bacheca] main>section:is(.dark,.accent2-bg)>.wrap{width:auto;margin-inline:clamp(1.4rem,3.4vw,3rem)}
html[data-layout=bacheca] main>section.sc-invite{padding-bottom:var(--bg)}
html[data-layout=bacheca] main>section.scrolly{margin:var(--bg) var(--bp) 0;border-radius:var(--tr);background:var(--card);border:1px solid var(--line)}
html[data-layout=bacheca] main>section.scrolly>.wrap{width:auto;margin-inline:clamp(1.2rem,3vw,2.6rem)}
html[data-layout=bacheca] main section:not(.hero):not(.sc-invite)>.wrap h2{font-size:clamp(1.8rem,3.4vw,2.8rem);max-width:24ch}
html[data-layout=bacheca] .sc-ch{min-height:0;padding-block:clamp(1.2rem,3vh,2rem)}
@media(min-width:900px){html[data-layout=bacheca] .sc-ch{min-height:min(24rem,50svh)}html[data-layout=bacheca] .sc-frame{max-height:min(30rem,64svh)}}
html[data-layout=bacheca] .stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:var(--bg)}
html[data-layout=bacheca] .stat{background:rgba(var(--dk-t-rgb),.08);border:1px solid rgba(var(--dk-t-rgb),.16);border-radius:calc(var(--tr) - 6px);padding:1rem 1.1rem}
@media(max-width:759px){html[data-layout=bacheca] .stats{grid-template-columns:1fr 1fr}}
/* gallery: bento mosaic, first photo big */
html[data-layout=bacheca] .mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--bg)}
html[data-layout=bacheca] .mosaic a,html[data-layout=bacheca] .mosaic a:nth-child(n){aspect-ratio:1;border-radius:calc(var(--tr) - 6px);grid-row:auto;grid-column:auto;translate:none}
html[data-layout=bacheca] .mosaic a:first-child{grid-column:1/-1;aspect-ratio:16/10}
@media(min-width:900px){html[data-layout=bacheca] .mosaic{grid-template-columns:repeat(4,minmax(0,1fr))}html[data-layout=bacheca] .mosaic a:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}
/* events: swipe strip on phones, tiles on desktop */
html[data-layout=bacheca] .ev{border-radius:calc(var(--tr) - 6px)}
@media(max-width:759px){html[data-layout=bacheca] .evs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;gap:.7rem;padding-bottom:.5rem;scrollbar-width:none}html[data-layout=bacheca] .evs::-webkit-scrollbar{display:none}html[data-layout=bacheca] .ev{flex:0 0 84%;scroll-snap-align:start}}
@media(max-width:959px){html[data-layout=bacheca] main>.marquee,html[data-layout=bacheca] main>section:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap,html[data-layout=bacheca] main>section:is(.dark,.accent2-bg),html[data-layout=bacheca] main>section.scrolly{margin-inline:var(--bg)}
 html[data-layout=bacheca] .bento,html[data-hero=tile] .hero:not([data-v=split]):not([data-v=typo]){margin-inline:var(--bg)}
 html[data-layout=bacheca] main>section:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap{padding:1.5rem 1.2rem}
 html[data-layout=bacheca] main>section:is(.dark,.accent2-bg)>.wrap,html[data-layout=bacheca] main>section.scrolly>.wrap{margin-inline:1.2rem}}
/* inner pages: header band as a tile */
html[data-layout=bacheca] .phero{margin:var(--bg) var(--bp) 0;border-radius:var(--tr);padding:clamp(2.2rem,5vw,3.6rem) 0 clamp(1.8rem,4vw,2.6rem)}
html[data-layout=bacheca] .phero h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}
@media(max-width:959px){html[data-layout=bacheca] .phero{margin-inline:var(--bg)}}
/* MENU: grid of big photo cards, categories as tiles headers */
html[data-layout=bacheca] .menu-grid{grid-template-columns:1fr!important;gap:clamp(1.6rem,3vw,2.4rem)}
html[data-layout=bacheca] .mcard{background:none;border:0;padding:0;box-shadow:none}
html[data-layout=bacheca] .mcard::after{display:none}
@media(hover:hover) and (pointer:fine){html[data-layout=bacheca] .mcard:hover{transform:none}}
html[data-layout=bacheca] .mcard h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0 0 .9rem}
html[data-layout=bacheca] .mcard ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:var(--bg)}
@media(max-width:599px){html[data-layout=bacheca] .mcard ul{grid-template-columns:1fr 1fr}}
html[data-layout=bacheca] .mcard .mi,html[data-layout=bacheca] .mcard .mi[data-th]{position:relative;margin:0;padding:1rem;background:var(--card);border:1px solid var(--line);border-radius:calc(var(--tr) - 6px);overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"th th" "n n" "d d" "a a" "m m" "p f";grid-template-rows:auto auto 1fr auto auto auto;column-gap:.5rem;align-content:start}
html[data-layout=bacheca] .mcard .mi:last-child{border-bottom:1px solid var(--line)}
html[data-layout=bacheca] .mcard .mi[data-th]>.mi-th{grid-area:th;width:calc(100% + 2rem);height:auto;aspect-ratio:4/3;margin:-1rem -1rem .85rem;border-radius:0;box-shadow:none;max-width:none}
@media(hover:hover) and (pointer:fine){html[data-layout=bacheca] .mi:hover>.mi-th{transform:scale(1.04)}}
html[data-layout=bacheca] .mcard .mi .n{font-size:1.05rem}
html[data-layout=bacheca] .mcard .mi .it .pr,html[data-layout=bacheca] .mcard .mi[data-th] .it .pr{grid-area:p;text-align:left;align-self:center;margin-top:.6rem;font-weight:800;font-size:1.05rem}
html[data-layout=bacheca] .mcard .mi .mi-fav,html[data-layout=bacheca] .mcard .mi[data-th] .mi-fav{grid-area:f;align-self:center;justify-self:end;margin:.45rem -.4rem 0 0}
html[data-layout=bacheca] .mcard .mi>small:not(.al-n){font-size:.86rem}
@media(max-width:599px){html[data-layout=bacheca] .mcard .mi,html[data-layout=bacheca] .mcard .mi[data-th]{padding:.8rem}html[data-layout=bacheca] .mcard .mi[data-th]>.mi-th{width:calc(100% + 1.6rem);margin:-.8rem -.8rem .7rem}html[data-layout=bacheca] .mcard .mi .n{font-size:.95rem}html[data-layout=bacheca] .mcard .mi-meta .ai{width:1.5rem;height:1.5rem}}
html[data-layout=bacheca] .daily{border-radius:var(--tr)}
html[data-layout=editoriale] .js body:not(.qr-page) #mtool .mt-bar,html.js[data-layout=editoriale] body:not(.qr-page) #mtool .mt-bar{background:none;box-shadow:none;border:0;border-radius:0;border-right:1px solid var(--line)}
/* decorations x structures: hero-specific signature touches that would fight a structure's own hero are toned down there */
html[data-hero=cover] .hero .hero-in::before{display:none}
html[data-hero=cover][data-deco=bar] .hero[data-v=photo]{padding-top:0!important}
html[data-hero=cover][data-deco=bar] .hero[data-v=photo] .hero-in{background:none;box-shadow:none;transform:none;animation:none;border-radius:0;margin:0;padding:1.8rem 0 2.6rem!important}
@media(min-width:960px){html[data-hero=cover][data-deco=bar] .hero[data-v=photo] .hero-in{padding:3rem clamp(2rem,4vw,4.5rem) 3rem 0!important}}
html[data-hero=cover][data-deco=enoteca] .hero[data-v] h1::after{margin-left:0}
html[data-hero=tile] .hero .hero-in::before{display:none}
html[data-hero=cover]:is([data-deco=pub],[data-deco=pizzeria]) .hero:is([data-v=photo],[data-v=center]) .kicker{color:var(--ac-t)}

/* ===== v3: lower sections get each structure's own composition ===== */
/* EDITORIALE — long-read story: full-bleed photo plate, narrow column, giant chapter numerals, pull quote breaking out */
html[data-layout=editoriale] .scrolly .sc-chs{counter-reset:sc}
html[data-layout=editoriale] .scrolly .sc-ch{counter-increment:sc;min-height:0;opacity:1!important;padding-block:clamp(2.4rem,6vw,4.5rem) 0}
html[data-layout=editoriale] .scrolly .sc-ch::before{content:counter(sc,upper-roman);font-family:var(--disp);font-size:clamp(4.5rem,11vw,9rem);line-height:.8;color:var(--ey);opacity:.9;font-style:italic;font-weight:400}
html[data-layout=editoriale] .scrolly .sc-grid{display:block}
html[data-layout=editoriale] .scrolly .sc-stage{position:relative;top:auto;padding:0;margin-inline:calc(50% - 50vw);background:none}
html[data-layout=editoriale] .scrolly .sc-frame{aspect-ratio:21/9;max-height:none;margin:0;border-radius:0!important;box-shadow:none;width:100%}
html[data-layout=editoriale] .scrolly .sc-dots{display:none}
html[data-layout=editoriale] .scrolly .sc-chs{max-width:40rem;margin-inline:auto}
html[data-layout=editoriale] .scrolly .sc-ch .lead{font-size:clamp(1.12rem,1.4vw,1.28rem);line-height:1.7}
html[data-layout=editoriale] .scrolly .sc-ch h2{max-width:none}
@media(min-width:900px){html[data-layout=editoriale] .scrolly .sc-ch blockquote{width:min(66rem,92vw);margin:1.6rem 0 1.6rem calc(50% - min(33rem,46vw));text-align:center;font-size:clamp(2rem,3.4vw,3rem);padding:2rem 0}
 html[data-layout=editoriale] .scrolly .sc-ch blockquote::before{margin-inline:auto}}
@media(max-width:899px){html[data-layout=editoriale] .scrolly .sc-frame{aspect-ratio:4/3}html[data-layout=editoriale] .scrolly .sc-stage{margin-inline:calc(var(--gut,1.25rem)*-1)}}
/* chapter numerals for every section head: huge, set above the eyebrow */
html[data-layout=editoriale] main>section:not(.hero):not(.phero):not(.news):not(.sc-invite):not(.scrolly)>.wrap>.eyebrow:first-child::before,
html[data-layout=editoriale] main>section:not(.hero):not(.phero):not(.news):not(.sc-invite):not(.scrolly)>.wrap>div:first-child .eyebrow::before{display:block;font-family:var(--disp);font-size:clamp(4rem,9vw,7.5rem);line-height:.9;letter-spacing:-.03em;margin:0 0 .6rem;font-style:italic;font-weight:400;content:counter(ch,decimal-leading-zero)}
/* numbers: one big typographic line, no cards */
html[data-layout=editoriale] main>section.dark{background:var(--text);color:var(--page)}
html[data-layout=editoriale] main>section.dark .eyebrow,html[data-layout=editoriale] main>section.dark .stat b{color:inherit}
html[data-layout=editoriale] main>section.dark .stats{display:flex;flex-wrap:wrap;border:0;gap:0 clamp(1.5rem,4vw,4rem);align-items:baseline}
html[data-layout=editoriale] main>section.dark .stat{border:0!important;padding:0!important;background:none;display:flex;flex-direction:column}
html[data-layout=editoriale] main>section.dark .stat b{font-family:var(--disp);font-size:clamp(4rem,9vw,8.5rem);line-height:.95;font-weight:400;letter-spacing:-.03em}
html[data-layout=editoriale] main>section.dark .stat span,html[data-layout=editoriale] main>section.dark .stat small{font-style:italic;opacity:.8;max-width:14ch}
/* gallery: magazine spread, heading left column, captioned mosaic right */
html[data-layout=editoriale] .mosaic a{position:relative;overflow:visible}
html[data-layout=editoriale] .mosaic a::after{content:attr(data-cap);position:absolute;left:0;right:0;top:100%;padding-top:.45rem;font-size:.82rem;font-style:italic;color:var(--mute);line-height:1.3}
html[data-layout=editoriale] .mosaic{row-gap:3.2rem!important;margin-bottom:2.4rem}
html[data-layout=editoriale] .mosaic img{border-radius:2px}
@media(min-width:960px){
 html[data-layout=editoriale] main>section:has(.mosaic)>.wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2.2fr);gap:clamp(2rem,4vw,4rem);align-items:start}
 html[data-layout=editoriale] main>section:has(.mosaic)>.wrap>div:first-child{position:sticky;top:7rem}
 html[data-layout=editoriale] main>section:has(.mosaic) h2{font-size:clamp(2rem,3.4vw,3.2rem)!important}
 html[data-layout=editoriale] .mosaic{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)!important;margin-top:0!important}
 html[data-layout=editoriale] .mosaic a:nth-child(1){grid-row:span 2}
 html[data-layout=editoriale] .mosaic a:last-child:nth-child(even){grid-column:1/-1;aspect-ratio:21/9}
 /* events: printed programme, heading on the right (alternating spread) */
 html[data-layout=editoriale] main>section:has(.evs)>.wrap{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,.8fr);column-gap:clamp(2rem,4vw,4rem);align-items:start}
 html[data-layout=editoriale] main>section:has(.evs)>.wrap>:not(.evs){grid-column:2;text-align:right;justify-self:end}
 html[data-layout=editoriale] main>section:has(.evs)>.wrap>.evs{grid-column:1;grid-row:1/span 3}
 html[data-layout=editoriale] .ev{grid-template-columns:11rem 1fr!important}
}
html[data-layout=editoriale] .ev-w{font-family:var(--disp);font-style:italic;font-size:1.15rem;color:var(--ey)}
html[data-layout=editoriale] .ev h3{font-size:clamp(1.5rem,2.4vw,2.1rem)}

/* BACHECA — the whole home is one bento board (6 columns on desktop) */
@media(min-width:960px){
 html[data-layout=bacheca] main:has(>.bento){grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--bg);padding:var(--bg) var(--bp);grid-auto-flow:row dense;align-items:stretch}
 html[data-layout=bacheca] main:has(>.bento)>*{margin:0!important}
 html[data-layout=bacheca] main:has(>.bento)>.hero{grid-column:1/5}
 html[data-layout=bacheca] main:has(>.bento)>.bento{grid-column:5/7}
 html[data-layout=bacheca] main:has(>.bento)>section:not(.hero){padding:0}
 html[data-layout=bacheca] main:has(>.bento)>section:not(.hero)>.wrap{margin-inline:0!important;height:100%;box-sizing:border-box}
 html[data-layout=bacheca] main:has(>.bento)>section:is(.dark,.accent2-bg)>.wrap{padding:clamp(1.4rem,2.4vw,2.2rem)}
 html[data-layout=bacheca] main:has(>.bento)>section.scrolly{grid-column:1/5}
 html[data-layout=bacheca] main:has(>.bento)>section.dark{grid-column:5/7}
 html[data-layout=bacheca] main:has(>.bento)>section:has(.mosaic){grid-column:1/5}
 html[data-layout=bacheca] main:has(>.bento)>section:has(.evs){grid-column:5/7}
 html[data-layout=bacheca] main:has(>.bento)>section.news{grid-column:1/3}
 html[data-layout=bacheca] main:has(>.bento)>section.accent2-bg{grid-column:3/7}
 html[data-layout=bacheca] main:has(>.bento)>section.accent2-bg:not(:has(~.news)):not(.news~*){grid-column:1/-1}
 html[data-layout=bacheca] main:has(>.bento)>section.sc-invite{grid-column:1/-1}
 html[data-layout=bacheca] main:has(>.bento)>section:is(.dark,:has(.evs)) h2{font-size:clamp(1.5rem,2vw,1.9rem)}
 html[data-layout=bacheca] main:has(>.bento)>section.dark .stats{grid-template-columns:1fr 1fr}
 html[data-layout=bacheca] main:has(>.bento)>section:has(.evs) .evs{grid-template-columns:1fr!important;gap:var(--bg)}
 html[data-layout=bacheca] main:has(>.bento)>section:has(.evs) .ev{padding:1rem 1.1rem}
 html[data-layout=bacheca] main:has(>.bento)>section:has(.evs) .ev p{display:none}
 html[data-layout=bacheca] main:has(>.bento)>section.accent2-bg .split{grid-template-columns:1fr 1fr}
}
html[data-layout=bacheca] main>section.news>.wrap{width:auto;background:color-mix(in srgb,var(--ac) 14%,var(--card));border:1px solid var(--line);border-radius:var(--tr);padding:clamp(1.2rem,2.4vw,2rem)}
@media(max-width:959px){html[data-layout=bacheca] main>section.news{padding:var(--bg) 0 0}html[data-layout=bacheca] main>section.news>.wrap{margin-inline:var(--bg)}
 html[data-layout=bacheca] main>section.dark .stats{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}html[data-layout=bacheca] main>section.dark .stat{flex:0 0 44%;scroll-snap-align:start}}
html[data-layout=editoriale] main>section.scrolly{overflow-x:clip}
@media(min-width:960px){html[data-layout=bacheca] main:has(>.bento):not(:has(.evs))>section:has(.mosaic){grid-column:1/-1}html[data-layout=bacheca] main:has(>.bento):not(:has(.evs))>section:has(.mosaic) .mosaic{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:960px){html[data-layout=bacheca] main:has(>.bento)>section.scrolly>.wrap{padding-inline:clamp(1.2rem,2.6vw,2.4rem)}html[data-layout=bacheca] main:has(>.bento)>section.dark>.wrap{display:flex;flex-direction:column}html[data-layout=bacheca] main:has(>.bento)>section.dark .stats{flex:1;align-content:center}}
html[data-layout=editoriale] .scrolly .sc-ch{min-width:0;max-width:100%}
@media(min-width:900px){html[data-layout=editoriale] .scrolly .sc-ch blockquote{margin-inline:0!important;position:relative;left:50%;transform:translateX(-50%)}}
html[data-layout=editoriale] .scrolly .sc-stage{contain:paint}
html[data-layout=editoriale] .mosaic a>picture{display:block;width:100%;height:100%;overflow:hidden;border-radius:inherit}
@media(min-width:960px){html[data-layout=bacheca] main:has(>.bento)>:is(.hero,.bento){margin:0!important;min-width:0}
 html[data-layout=bacheca] main:has(>.bento)>.hero .hero-in{max-width:100%;box-sizing:border-box}}

/* modulare (1 Nov): Bacheca arranges only what is below the first screen. The hero docks beside the bento only when it is itself a tile (Prima schermata: Riquadro); any other hero keeps its own look on a full row above the board */
@media(min-width:960px){html[data-layout=bacheca]:not([data-hero=tile]) main:has(>.bento)>.hero{grid-column:1/-1;grid-row:auto;margin:calc(var(--bg)*-1) calc(var(--bp)*-1) 0!important;border-radius:0}
 html[data-layout=bacheca]:not([data-hero=tile]) main:has(>.bento)>.bento{grid-column:1/-1;grid-row:auto;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none}}
/* spazi-nov1: spacing/overlap round */
:where(main [id],main h2){scroll-margin-top:calc(var(--hdr-h,4.5rem) + 1rem)}
.wrap>.sources:first-child{margin-top:0}
@media(max-width:899px){html:not([data-layout=editoriale]) .scrolly .sc-stage{position:relative;top:auto}}
html[data-layout=bacheca] main:not(:has(>.bento))>section:is(.dark,.accent2-bg):not(.hero):not(.scrolly):not(.news){padding-block:clamp(1.6rem,3.6vw,3rem)}
@media(max-width:959px){html[data-layout=bacheca] main>section:is(.dark,.accent2-bg):not(.hero):not(.scrolly):not(.news){padding-block:1.6rem}
 html[data-layout=bacheca] main>section.dark .stat{padding:1.1rem 1.25rem}}
html[data-layout=bacheca] main>section.phero:not(.hero):not(.scrolly):not(.news){padding-block:clamp(2.2rem,5vw,3.6rem) clamp(1.8rem,4vw,2.6rem)}
/* combos-nov1: module contracts (test_combos.py). Sections expose their surface as --sec-bg; the Forme edge paints with it
   instead of assuming the theme dark; edges and seams only exist where a block is full-bleed (cards own rounded edges). */
.pg-index main>section:not(.hero):not(.sc-invite)+section.dark::before{background:var(--sec-bg,var(--dk))}
html[data-layout=editoriale] main>section.dark{--sec-bg:var(--text)}
html[data-layout=bacheca] .pg-index main>section:not(.hero)+section::before{display:none}
html[data-hero=tile] .hero:not([data-v=split]):not([data-v=typo])::after{display:none}
/* mobile-nov2: one spacing scale for phones (review pair-2). out = page gutter, card = card inner padding, gap = space between stacked blocks */
@media(max-width:959px){
 html{--sp-out:clamp(16px,5vw,20px);--sp-card:clamp(22px,6.2vw,24px);--sp-gap:16px}
 html[data-layout=bacheca]{--bg:var(--sp-gap)}
 html[data-layout=bacheca] main>.marquee,html[data-layout=bacheca] main>section:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap,
 html[data-layout=bacheca] main>section:is(.dark,.accent2-bg),html[data-layout=bacheca] main>section.scrolly,html[data-layout=bacheca] .phero,
 html[data-layout=bacheca] main>section.news>.wrap,html[data-layout=bacheca] .bento,html[data-hero=tile] .hero:not([data-v=split]):not([data-v=typo]){margin-inline:var(--sp-out)}
 html[data-layout=bacheca] main>section:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap{padding:var(--sp-card)}
 html[data-layout=bacheca] main>section:is(.dark,.accent2-bg)>.wrap,html[data-layout=bacheca] main>section.scrolly>.wrap{margin-inline:var(--sp-card)}
 html[data-layout=bacheca] main>section:is(.dark,.accent2-bg):not(.hero):not(.scrolly):not(.news){padding-block:calc(var(--sp-card) + 4px)}
 html[data-layout=bacheca] .bt{padding:18px 20px}html[data-layout=bacheca] .bt-hrs{padding:20px 24px}
 html[data-layout=bacheca] main>section.news{background:none;padding:var(--sp-gap) 0 0}
 html[data-layout=bacheca] main>section.news>.wrap{background:var(--ac);color:var(--ac-t);border:0;padding:20px var(--sp-card)}
 /* horizontal card rows: bleed to the card edge, start aligned with the text, deliberate peek of the next item */
 html[data-layout=bacheca] main>section.dark .stats,html[data-layout=bacheca] .evs{margin-inline:calc(-1*var(--sp-card));padding-inline:var(--sp-card);scroll-padding-inline:var(--sp-card);gap:12px}
 html[data-layout=bacheca] main>section.dark .stat{flex:0 0 calc((100% - 12px)/2.35)}
 html[data-layout=bacheca] .ev{flex:0 0 82%}
 html[data-layout=bacheca] main>section.scrolly{padding-block:var(--sp-card)}
 html[data-layout=bacheca] main>section.scrolly .sc-ch{padding-block:28px}
 html[data-layout=bacheca] main>section.scrolly .sc-ch:last-child{padding-bottom:0}
 html[data-layout=bacheca] main>section.sc-invite:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap{background:none;border:0;padding:0}
}
/* mobile-nov2: slimmer sticky header once scrolled (headings and menu filters follow --hdr-h, measured by main.js) */
@media(max-width:899px){.hdr .wrap{transition:height .25s var(--ease)}.hdr.scrolled .wrap{height:4rem}
 .hdr.scrolled .brand .mk{width:2.5rem;height:2.5rem}.hdr.scrolled .brand .mk.mk-img{width:auto;height:2.5rem}
 .js .hdr.scrolled .nav{height:calc(100vh - 4rem);height:calc(100dvh - 4rem)}}
/* editoriale drop cap on coloured bands (accent/dark): it took the accent colour and vanished into the band */
html[data-layout=editoriale] main>section:is(.dark,.accent2-bg) .split .lead:first-of-type::first-letter{color:inherit}
/* bacheca phones: an accent band (.accent-bg) becomes an accent card like the others, not a full-bleed stripe behind a card */
@media(max-width:959px){html[data-layout=bacheca] main>section.accent-bg{background:none}
 html[data-layout=bacheca] main>section.accent-bg:not(.hero):not(.scrolly):not(.news):not(.dark):not(.accent2-bg):not(.phero):not(:has(>.wrap[data-menu]))>.wrap{background:var(--ac);color:var(--ac-t);border-color:transparent}}

@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}.hdr{view-transition-name:hdr}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition-property:opacity,color,background-color,border-color,outline-color!important;transition-duration:.15s!important;transition-delay:0s!important}
.js .rv,.js .rv-img{opacity:1;transform:none;clip-path:none}
.hero-media{transform:none!important}
.marquee{white-space:normal;text-align:center}.marquee ul{display:flex;flex-wrap:wrap;justify-content:center;transform:none}.marquee li{text-wrap:wrap}.marquee li:nth-child(n+11){display:none}
.btn::before{display:none}

.marquee .mq-d{display:none}
}