/* =====================================================================
   Omakase Braga · Design System v2 "Washi"
   Papel quente, tinta sumi e madeira do balcão (v2.2: sem vermelho).
   ===================================================================== */

/* ---------- Fontes (alojadas no próprio servidor) ---------- */
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-400.woff2) format('woff2')}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/mincho-600.woff2) format('woff2')}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/gothic-400.woff2) format('woff2')}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/gothic-500.woff2) format('woff2')}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-0.woff2) format('woff2');unicode-range:U+516D}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-1.woff2) format('woff2');unicode-range:U+4E94}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-2.woff2) format('woff2');unicode-range:U+56DB}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-3.woff2) format('woff2');unicode-range:U+4E8C}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-4.woff2) format('woff2');unicode-range:U+4E09}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-6.woff2) format('woff2');unicode-range:U+4E00}
@font-face{font-family:'Zen Old Mincho';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mincho-jp-7.woff2) format('woff2');unicode-range:U+304A,U+305B}


/* ---------- Tokens ---------- */
:root{
  /* cor */
  --w-paper:#EFE6D8;      /* fundo base: papel washi quente */
  --w-paper-2:#E4D7C3;    /* fundo alternado: castanho claro */
  --w-paper-3:#F6F0E6;    /* folha sobre papel */
  --w-ink:#1A1714;        /* tinta sumi: texto e ações */
  --w-ink-2:#4A3F35;      /* texto corrido */
  --w-ink-3:#635249;      /* legendas e metadados (6:1 sobre papel) */
  --w-line:#D6C7B0;       /* filetes */
  --w-line-2:#C4AF92;     /* moldura shoji */
  --w-dot:#B89C7A;        /* pontilhado de ementa */
  --w-wood:#74501F;       /* madeira escura: acento em texto, estado ativo, hover (5,8:1 sobre papel) */
  --w-wood-2:#A47735;     /* madeira do balcão: selo e お任せ (só superfície, nunca texto) */
  --w-on-wood:#F6F0E6;
  /* tipografia */
  --w-serif:'Zen Old Mincho','Hiragino Mincho ProN','Yu Mincho',Georgia,serif;
  --w-sans:'Zen Kaku Gothic New','Hiragino Sans',system-ui,sans-serif;
  --w-t-display:clamp(2.35rem,1.35rem + 3.1vw,3.65rem);
  --w-t-h2:clamp(1.9rem,1.25rem + 2vw,3.25rem);
  --w-t-h3:clamp(1.45rem,1.15rem + .9vw,1.9rem);
  --w-t-h4:1.25rem;
  --w-t-body:1.0625rem;
  --w-t-small:.9375rem;
  --w-t-label:.8125rem;
  --w-track-label:.2em;
  /* espaço: ma */
  --w-gutter:clamp(1.25rem,.4rem + 5.4vw,7rem);
  --w-max:76rem;
  --w-section:clamp(5.5rem,3.5rem + 7vw,12.5rem);
  --w-block:clamp(2.5rem,1.8rem + 2.4vw,4.5rem);
  --w-s1:.5rem;--w-s2:.75rem;--w-s3:1rem;--w-s4:1.5rem;--w-s5:2rem;--w-s6:2.5rem;--w-s7:3.5rem;
  /* forma */
  --w-radius:0;           /* superfícies, fotografias e cartões: cantos retos */
  --w-leaf:1rem;          /* canto "folha": arredonda só em cima à esquerda e em baixo à direita */
  --w-leaf-sm:.75rem;     /* folha para elementos pequenos (≤ 2.75rem) */
  --w-hair:1px;
  --w-ctrl:3.25rem;       /* altura de botão (52px) */
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{min-width:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--w-paper);color:var(--w-ink);font-family:var(--w-sans);
  font-size:var(--w-t-body);line-height:1.85;font-weight:400;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--w-serif);font-weight:400;margin:0;line-height:1.25;letter-spacing:.005em;text-wrap:balance}
p{margin:0}
a{color:inherit;text-decoration:none}
a:hover{color:var(--w-wood)}
:focus-visible{outline:2px solid var(--w-wood);outline-offset:3px}
.w-skip{position:absolute;left:-9999px;top:0}
.w-skip:focus{left:var(--w-gutter);top:var(--w-s3);z-index:50;background:var(--w-ink);color:var(--w-paper);padding:var(--w-s2) var(--w-s4)}

/* ---------- Layout ---------- */
.w-wrap{width:100%;max-width:calc(var(--w-max) + 2 * var(--w-gutter));margin-inline:auto;padding-inline:var(--w-gutter)}
.w-section{padding-block:var(--w-section)}
.w-section--alt{background:var(--w-paper-2)}
.w-section--tight{padding-block:calc(var(--w-section) * .6)}
.w-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1rem,2vw,1.5rem)}
@media (max-width:56rem){ .w-grid{grid-template-columns:1fr;row-gap:var(--w-s6)} .w-grid>*{grid-column:1/-1!important} }

/* ---------- Tipografia utilitária ---------- */
.w-label{font-family:var(--w-sans);font-size:var(--w-t-label);letter-spacing:var(--w-track-label);
  text-transform:uppercase;color:var(--w-ink-3);font-weight:500;line-height:1.5}
.w-label--wood{color:var(--w-wood)}
.w-display{font-size:var(--w-t-display);line-height:1.2}
.w-h2{font-size:var(--w-t-h2)}
.w-h3{font-size:var(--w-t-h3)}
.w-lede{font-size:clamp(1.0625rem,1rem + .2vw,1.1875rem);line-height:1.9;color:var(--w-ink-2);max-width:34rem}
.w-body{color:var(--w-ink-2);max-width:40rem}
.w-body p+p{margin-top:var(--w-s4)}
.w-small{font-size:var(--w-t-small);color:var(--w-ink-3);line-height:1.8}
.w-kicker{display:block;font-family:var(--w-sans);font-size:var(--w-t-label);letter-spacing:var(--w-track-label);
  text-transform:uppercase;color:var(--w-ink-3);font-weight:500;line-height:1.5;margin-bottom:var(--w-s4)}
.w-center{text-align:center;margin-inline:auto}

/* ---------- Selo: as carpas do logótipo sobre madeira ---------- */
.w-seal{display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;flex:none;
  background:var(--w-wood-2);color:var(--w-on-wood)}
.w-seal::before,.w-dish__ph::before{content:"";width:68%;height:68%;background:currentColor;
  -webkit-mask:url(../img/omakase-simbolo.png) center/contain no-repeat;mask:url(../img/omakase-simbolo.png) center/contain no-repeat}
.w-seal--sm{width:2.75rem;height:2.75rem}

/* ---------- Kana vertical ---------- */
.w-tate{writing-mode:vertical-rl;font-family:var(--w-serif);color:var(--w-wood-2);
  font-size:clamp(2.75rem,1.6rem + 3.4vw,4.5rem);letter-spacing:.14em;line-height:1;flex:none}
img.w-tate{writing-mode:horizontal-tb;width:clamp(2.6rem,1.5rem + 3.1vw,4.1rem);height:auto;align-self:flex-start;margin-top:.35rem}

/* ---------- Botões ---------- */
.w-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--w-s2);min-height:var(--w-ctrl);
  padding:0 1.9rem;font-family:var(--w-sans);font-size:.875rem;letter-spacing:.1em;font-weight:500;
  border:1px solid var(--w-ink);background:var(--w-ink);color:var(--w-paper);cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease;text-align:center;line-height:1.3}
.w-btn:hover{background:var(--w-wood);border-color:var(--w-wood);color:var(--w-on-wood)}
.w-btn--line{background:transparent;color:var(--w-ink)}
.w-btn--line:hover{background:var(--w-ink);border-color:var(--w-ink);color:var(--w-paper)}
.w-btns{display:flex;flex-wrap:wrap;gap:var(--w-s3)}
.w-link{display:inline-flex;align-items:center;gap:.5em;font-size:.875rem;letter-spacing:.1em;font-weight:500;
  padding-bottom:.25rem;border-bottom:1px solid currentColor}

/* ---------- Cabeçalho ---------- */
.w-head{border-bottom:1px solid var(--w-line);background:var(--w-paper);position:relative;z-index:20}
.w-head__in{display:flex;align-items:center;justify-content:space-between;gap:var(--w-s5);min-height:clamp(4.5rem,3.9rem + 1.8vw,7rem)}
.w-head__logo img{height:clamp(26px,1.4rem + .5vw,32px);width:auto}
.w-nav{display:flex;gap:clamp(1.25rem,.5rem + 2vw,2.5rem);font-size:.875rem;letter-spacing:.06em}
.w-nav a{padding-block:.5rem;border-bottom:1px solid transparent}
.w-nav a[aria-current="page"]{border-bottom-color:var(--w-wood)}
.w-book{display:inline-flex;align-items:center;gap:var(--w-s2);font-size:.875rem;letter-spacing:.06em;font-weight:500}
.w-book:hover .w-seal{background:var(--w-ink)}
.w-burger{display:none;width:2.75rem;height:2.75rem;border:1px solid var(--w-line-2);background:none;color:var(--w-ink);
  align-items:center;justify-content:center;cursor:pointer;padding:0}
.w-burger span,.w-burger span::before,.w-burger span::after{display:block;width:18px;height:1px;background:currentColor;position:relative}
.w-burger span::before,.w-burger span::after{content:"";position:absolute;left:0}
.w-burger span::before{top:-6px}.w-burger span::after{top:6px}
.w-head__end{display:flex;align-items:center;gap:var(--w-s3)}
@media (max-width:60rem){
  .w-nav{display:none}
  .w-burger{display:inline-flex}
  .w-book__txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
.w-drawer{position:fixed;inset:0;top:0;z-index:40;background:var(--w-paper);padding:var(--w-s4) var(--w-gutter) var(--w-s6);
  display:flex;flex-direction:column;overflow:auto}
.w-drawer__top{display:flex;justify-content:space-between;align-items:center;min-height:4.5rem;border-bottom:1px solid var(--w-line)}
.w-drawer nav{display:flex;flex-direction:column;margin-top:var(--w-s4)}
.w-drawer nav a{font-family:var(--w-serif);font-size:1.6rem;padding-block:var(--w-s3);border-bottom:1px solid var(--w-line)}
.w-drawer .w-btn{margin-top:var(--w-s6)}
@media (min-width:60.0625rem){ .w-drawer{display:none!important} }

/* ---------- Moldura shoji (foto com filete desencontrado) ---------- */
.w-frame{position:relative;padding:clamp(.75rem,1.5vw,1.25rem) 0 0 clamp(.75rem,1.5vw,1.25rem)}
.w-frame::before{content:"";position:absolute;top:0;left:0;right:clamp(.75rem,1.5vw,1.25rem);bottom:clamp(2.5rem,3vw,3.5rem);
  border:1px solid var(--w-line-2);pointer-events:none}
.w-frame img{position:relative;width:100%;object-fit:cover}
.w-frame figcaption{position:relative;margin-top:var(--w-s3);font-size:var(--w-t-label);letter-spacing:.08em;color:var(--w-ink-3);text-align:right}

/* ---------- Hero da home ---------- */
.w-hero{padding-block:clamp(3rem,1.5rem + 4vw,6rem) clamp(4rem,2rem + 5vw,7.5rem)}
.w-hero__txt{grid-column:1/span 6;display:flex;flex-direction:column;justify-content:space-between;gap:var(--w-s6);padding-top:var(--w-s4)}
.w-hero__lead{display:flex;gap:clamp(1.25rem,.5rem + 2vw,2.5rem)}
.w-hero__lead>div{display:flex;flex-direction:column;gap:var(--w-s5);padding-top:.5rem}
.w-hero__media{grid-column:7/span 6}
.w-hero__media img{height:clamp(24rem,14rem + 26vw,44rem)}
.w-hero__cta{padding-left:calc(clamp(2.75rem,1.6rem + 3.4vw,4.5rem) + clamp(1.25rem,.5rem + 2vw,2.5rem))}
@media (max-width:56rem){ .w-hero__cta{padding-left:0} .w-hero__media img{height:clamp(18rem,60vw,28rem)} }

/* ---------- Pontilhado de ementa (horários, factos) ---------- */
.w-dots{display:flex;gap:var(--w-s2);align-items:baseline;font-size:var(--w-t-small)}
.w-dots::after{content:"";order:1;flex:1 1 auto;border-bottom:1px dotted var(--w-dot);min-width:1.5rem;transform:translateY(-.3em)}
.w-dots>:last-child{order:2;color:var(--w-ink-2);text-align:right}
.w-strip{border-block:1px solid var(--w-line);padding-block:var(--w-s6);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--w-s3) clamp(2rem,4vw,4rem)}

/* ---------- Filosofia ---------- */
.w-creed{display:flex;flex-direction:column;align-items:center;gap:var(--w-s6);text-align:center}
.w-creed .w-body{max-width:40rem;margin-inline:auto;line-height:2}

/* ---------- Omakase Experience ---------- */
.w-exp__img{grid-column:1/span 6}
.w-exp__img img{width:100%;height:clamp(22rem,12rem + 30vw,52rem);object-fit:cover}
.w-exp__txt{grid-column:8/span 5;display:flex;flex-direction:column;gap:var(--w-s5);padding-top:var(--w-s6)}
.w-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--w-s2) var(--w-s3);padding-bottom:var(--w-s5);border-bottom:1px solid var(--w-line)}
.w-price strong{font-family:var(--w-serif);font-weight:400;font-size:clamp(2rem,1.6rem + 1vw,2.5rem);line-height:1}
.w-price span{font-size:var(--w-t-small);color:var(--w-ink-3)}
.w-seq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--w-s3)}
.w-seq li{display:flex;gap:var(--w-s4);align-items:baseline}
.w-seq b{font-family:var(--w-serif);font-weight:400;color:var(--w-wood);width:1.75rem;flex:none}

/* ---------- Cartões do 2.º andar ---------- */
.w-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:clamp(1.5rem,3vw,3rem)}
.w-duo img{width:100%;height:clamp(18rem,10rem + 20vw,34rem);object-fit:cover}
.w-card{background:var(--w-paper-3);padding:clamp(.9rem,1.4vw,1.25rem);display:flex;flex-direction:column;gap:var(--w-s5);transition:background .25s ease}
.w-card:hover{color:inherit;background:#FBF9F5}
.w-card img{width:100%;height:clamp(16rem,10rem + 16vw,31rem);object-fit:cover}
.w-card__txt{padding:0 var(--w-s2) var(--w-s3);display:flex;flex-direction:column;gap:var(--w-s2)}
.w-card__txt h3{font-size:clamp(1.5rem,1.2rem + .8vw,1.9rem)}
.w-card__txt p{font-size:var(--w-t-small);color:var(--w-ink-2);line-height:1.8}
.w-card__more{margin-top:var(--w-s2);font-size:var(--w-t-label);letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--w-ink)}
.w-card:hover .w-card__more{color:var(--w-wood)}

/* ---------- Cabeçalho de secção ---------- */
.w-sechead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--w-s4) var(--w-s7);margin-bottom:var(--w-block)}
.w-sechead>div{display:flex;flex-direction:column;gap:var(--w-s3)}
.w-sechead>p{max-width:28rem;color:var(--w-ink-2);font-size:var(--w-t-small)}

/* ---------- Mosaico e galeria ---------- */
.w-mosaic{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(9rem,5rem + 12vw,19rem);gap:clamp(.5rem,1vw,1rem)}
.w-mosaic figure,.w-mosaic>a{display:block;margin:0;overflow:hidden}
.w-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.w-mosaic a:hover img{transform:scale(1.025)}
.w-mosaic .m-a{grid-column:1/span 3;grid-row:span 2}
.w-mosaic .m-b{grid-column:4/span 1}
.w-mosaic .m-c{grid-column:5/span 2;grid-row:span 2}
.w-mosaic .m-d{grid-column:4/span 1}
@media (max-width:40rem){
  .w-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
  .w-mosaic .m-a{grid-column:1/-1;grid-row:span 2}.w-mosaic .m-b,.w-mosaic .m-d{grid-column:span 1}
  .w-mosaic .m-c{grid-column:1/-1;grid-row:span 2}
}
.w-gal{display:flex;flex-wrap:wrap;gap:clamp(.5rem,1vw,1rem);--gh:clamp(12rem,7rem + 16vw,21rem)}
.w-gal::after{content:"";flex:999 1 0}
.w-gal figure{margin:0;height:var(--gh);flex:1 1 calc(var(--ar,.667) * var(--gh));min-width:8rem}
.w-gal button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.w-gal img{width:100%;height:100%;object-fit:cover}
.w-tabs{display:flex;flex-wrap:wrap;gap:var(--w-s2) var(--w-s5);margin-bottom:var(--w-s6);border-bottom:1px solid var(--w-line)}
.w-tabs button{background:none;border:0;border-bottom:1px solid transparent;margin-bottom:-1px;padding:var(--w-s2) 0;
  font-family:var(--w-sans);font-size:.875rem;letter-spacing:.08em;color:var(--w-ink-3);cursor:pointer;min-height:2.75rem}
.w-tabs button[aria-pressed="true"]{color:var(--w-ink);border-bottom-color:var(--w-wood)}
.w-lb{position:fixed;inset:0;z-index:60;background:rgba(26,23,20,.94);display:grid;place-items:center;padding:var(--w-s5)}
.w-lb img{max-width:min(94vw,1200px);max-height:84vh;width:auto;height:auto}
.w-lb__x,.w-lb__nav{position:absolute;width:3rem;height:3rem;border:1px solid rgba(243,238,229,.35);background:none;color:var(--w-paper);
  font-size:1.25rem;cursor:pointer;display:grid;place-items:center;font-family:var(--w-sans)}
.w-lb__x{top:var(--w-s4);right:var(--w-s4)}
.w-lb__nav{top:50%;transform:translateY(-50%)}
.w-lb__prev{left:var(--w-s4)}.w-lb__next{right:var(--w-s4)}
.w-lb__cap{position:absolute;bottom:var(--w-s4);left:0;right:0;text-align:center;color:#D9CFBF;font-size:var(--w-t-small);padding-inline:var(--w-s5)}
@media (max-width:44rem){ .w-lb__nav{top:auto;bottom:var(--w-s4);transform:none} .w-lb__prev{left:calc(50% - 3.5rem)} .w-lb__next{right:calc(50% - 3.5rem)} .w-lb__cap{bottom:5rem} }

/* ---------- Lista editorial (outras formas, blocos) ---------- */
.w-rows{border-top:1px solid var(--w-line)}
.w-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr) auto;gap:var(--w-s3) clamp(1.5rem,4vw,4rem);
  align-items:baseline;padding-block:var(--w-s5);border-bottom:1px solid var(--w-line)}
.w-row h3{font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem)}
.w-row p{color:var(--w-ink-2);font-size:var(--w-t-small)}
@media (max-width:48rem){ .w-row{grid-template-columns:1fr} }
.w-blocks{border-top:1px solid var(--w-line)}
.w-block{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--w-s3) clamp(1.5rem,4vw,5rem);
  padding-block:var(--w-s6);border-bottom:1px solid var(--w-line)}
.w-block h3{font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem)}
.w-block p{color:var(--w-ink-2)}
@media (max-width:48rem){ .w-block{grid-template-columns:1fr} }

/* ---------- Página interna: cabeçalho ---------- */
.w-phero{padding-block:clamp(3rem,1.5rem + 4vw,6rem) clamp(3.5rem,2rem + 4vw,6rem)}
.w-phero__txt{grid-column:1/span 5;display:flex;flex-direction:column;gap:var(--w-s5);justify-content:center}
.w-phero__media{grid-column:7/span 6}
.w-phero__media img{height:clamp(20rem,12rem + 22vw,40rem)}
.w-crumb{font-size:var(--w-t-label);letter-spacing:.08em;color:var(--w-ink-3)}
.w-crumb a{border-bottom:1px solid var(--w-line-2)}
.w-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:var(--w-s3) clamp(2rem,4vw,4rem)}
.w-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.5rem,1vw,1rem)}
.w-trio img{width:100%;height:clamp(14rem,8rem + 18vw,30rem);object-fit:cover}
@media (max-width:40rem){ .w-trio{grid-template-columns:1fr} }
.w-ask{display:flex;flex-direction:column;align-items:center;gap:var(--w-s5);text-align:center}

/* ---------- Ementa ---------- */
.w-menu-nav{display:flex;flex-wrap:wrap;gap:var(--w-s2) var(--w-s4);padding-block:var(--w-s4);border-block:1px solid var(--w-line);
  font-size:.875rem;letter-spacing:.04em;margin-bottom:var(--w-block)}
.w-menu-nav a{color:var(--w-ink-2);padding-block:.4rem}
.w-note{display:flex;gap:var(--w-s4);align-items:flex-start;padding:var(--w-s4) 0;border-top:1px solid var(--w-line);font-size:var(--w-t-small);color:var(--w-ink-2)}
.w-note strong{color:var(--w-ink);font-weight:500}
.w-cat{padding-top:var(--w-block);scroll-margin-top:var(--w-s5)}
.w-cat h2{font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem);margin-bottom:var(--w-s2)}
.w-cat>p{color:var(--w-ink-3);font-size:var(--w-t-small);max-width:44rem;margin-bottom:var(--w-s3)}
.w-dishes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));column-gap:clamp(2rem,5vw,5rem)}
.w-dish{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:var(--w-s4);padding-block:var(--w-s4);border-bottom:1px solid var(--w-line)}
.w-dish img,.w-dish .w-dish__ph{width:4.5rem;height:4.5rem;object-fit:cover}
.w-dish__ph{background:var(--w-paper-2);display:grid;place-items:center;color:var(--w-line-2)}
.w-dish__ph::before{width:50%;height:50%}
.w-dish__top{display:flex;flex-wrap:wrap;gap:0 var(--w-s2);align-items:baseline}
.w-dish__top h3{font-family:var(--w-serif);font-size:1.125rem;line-height:1.4;flex:0 1 auto;min-width:0;overflow-wrap:break-word}
.w-dish__top h3 span{font-family:var(--w-sans);font-size:.8125rem;color:var(--w-ink-3);margin-left:.4em}
.w-dish__top::after{content:"";flex:1 1 auto;border-bottom:1px dotted var(--w-dot);min-width:1rem;transform:translateY(-.3em);order:1}
.w-dish__price{order:2;font-family:var(--w-serif);font-size:1.0625rem;text-align:right;white-space:nowrap;display:flex;flex-direction:column;line-height:1.5}
.w-dish__price small{font-family:var(--w-sans);font-size:.8125rem;color:var(--w-ink-3)}
/* Esgotado hoje (marcado no Super): o prato fica na ementa, riscado */
.w-dish--out .w-dish__top h3,.w-dish--out .w-dish__price{text-decoration:line-through;color:var(--w-ink-3)}
.w-dish--out img{opacity:.55}
.w-dish p{font-size:.9375rem;color:var(--w-ink-2);line-height:1.7;margin-top:.15rem}
.w-dish__tags{font-size:.8125rem;color:var(--w-ink-3);margin-top:.35rem;letter-spacing:.02em}
.w-dish__tags .veg{color:var(--w-wood)}

/* ---------- Legal ---------- */
.w-legal{max-width:46rem}
.w-legal h2{font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem);margin:var(--w-s6) 0 var(--w-s3)}
.w-legal p,.w-legal li{color:var(--w-ink-2)}
.w-legal p+p{margin-top:var(--w-s3)}
.w-legal ul{padding-left:1.1rem}.w-legal li{margin-bottom:var(--w-s2)}
.w-legal table{width:100%;border-collapse:collapse;font-size:.9rem;margin-block:var(--w-s4)}
.w-legal th,.w-legal td{text-align:left;padding:var(--w-s2) var(--w-s2) var(--w-s2) 0;border-bottom:1px solid var(--w-line);vertical-align:top}
.w-legal th{font-size:var(--w-t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--w-ink-3);font-weight:500}
.w-legal .w-note{margin-top:var(--w-s6)}
@media (max-width:40rem){ .w-legal table,.w-legal tbody,.w-legal tr,.w-legal td{display:block} .w-legal thead{display:none} .w-legal td{border:0;padding:.2rem 0} .w-legal tr{border-bottom:1px solid var(--w-line);padding-block:var(--w-s3)} }

/* ---------- Rodapé ---------- */
.w-foot{border-top:1px solid var(--w-line);padding-block:clamp(3.5rem,2rem + 4vw,6rem) var(--w-s6)}
.w-foot__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--w-s6)}
.w-foot__logo img{width:clamp(150px,9rem + 3vw,200px);height:auto}
.w-foot__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--w-s5) clamp(1.5rem,3vw,3rem);flex:1 1 40rem;max-width:56rem}
.w-foot__cols div{display:flex;flex-direction:column;font-size:.9rem;line-height:2;color:var(--w-ink-2)}
.w-foot__cols .w-label{margin-bottom:var(--w-s2)}
.w-foot__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--w-s3);margin-top:var(--w-block);padding-top:var(--w-s4);
  border-top:1px solid var(--w-line);font-size:.8125rem;color:var(--w-ink-3)}
.w-foot__base nav{display:flex;gap:var(--w-s4)}

/* ---------- WhatsApp flutuante ---------- */
.w-wa{position:fixed;right:clamp(.75rem,2.5vw,1.75rem);bottom:clamp(.75rem,2.5vw,1.75rem);z-index:30;display:inline-flex;align-items:center;gap:.6rem;
  min-height:3rem;padding:0 1.1rem;background:var(--w-ink);color:var(--w-paper);font-size:.8125rem;letter-spacing:.08em;font-weight:500;
  border:1px solid var(--w-ink)}
.w-wa:hover{background:var(--w-wood);border-color:var(--w-wood);color:var(--w-on-wood)}
.w-wa svg{width:18px;height:18px;flex:none}
@media (max-width:30rem){ .w-wa span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)} .w-wa{padding:0;width:3rem;justify-content:center} }

@media (prefers-reduced-motion:reduce){ *{transition:none!important} }

/* ---------- Canto folha (v2.1, 28/09/2026) ----------
   Botões e elementos de ação: arredondados só em cima à esquerda e em baixo à direita.
   Superfícies, fotografias, cartões e filetes continuam retos. */
.w-btn,.w-wa,.w-seal,.w-lb__x,.w-lb__nav{border-radius:var(--w-leaf) 0 var(--w-leaf) 0}
.w-seal--sm,.w-burger{border-radius:var(--w-leaf-sm) 0 var(--w-leaf-sm) 0}
.w-btn:focus-visible,.w-wa:focus-visible,.w-burger:focus-visible,.w-book:focus-visible .w-seal{outline-offset:3px}

/* ---------- Reserva online (Marco 6, docs/08 §8) ---------- */
.w-booking{display:grid;gap:var(--w-s5)}
.w-booking>*{max-width:60rem}
.w-alert{display:grid;gap:var(--w-s3);justify-items:start;padding:var(--w-s4);border:var(--w-hair) solid var(--w-line-2);background:var(--w-paper-3);color:var(--w-ink)}
.w-chosen{display:grid;gap:var(--w-s2);margin:0;padding:0;list-style:none}
.w-chosen li,.w-chosen>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--w-s1) var(--w-s3);padding-bottom:var(--w-s2);border-bottom:var(--w-hair) solid var(--w-line)}
.w-chosen dd{margin:0}
.w-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--w-s4)}
.w-choice{display:grid;align-content:start;gap:var(--w-s2);padding:var(--w-s5);border:var(--w-hair) solid var(--w-line);background:var(--w-paper-3)}
.w-choice--lead{border-color:var(--w-ink)}
.w-choice__title{font-size:var(--w-t-h3)}
.w-days,.w-pills{display:grid;gap:var(--w-s2);margin:0;padding:0;list-style:none}
.w-days{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr))}
.w-pills{grid-template-columns:repeat(auto-fill,minmax(8rem,1fr))}
.w-day,.w-pill{display:flex;flex-direction:column;gap:.15rem;min-height:var(--w-ctrl);padding:var(--w-s2) var(--w-s3);border:var(--w-hair) solid var(--w-line-2);background:var(--w-paper-3);color:var(--w-ink);text-decoration:none}
.w-pill{align-items:center;justify-content:center}
a.w-day:hover,a.w-pill:hover{border-color:var(--w-wood);color:var(--w-wood)}
.w-day__state{color:var(--w-ink-3);font-size:var(--w-t-small)}
.w-day--off{background:transparent;color:var(--w-ink-3)}
.w-form{display:grid;gap:var(--w-s4)}
.w-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--w-s4)}
.w-field{display:grid;gap:var(--w-s1)}
.w-field label,.w-fieldset legend{font-weight:500}
.w-field input,.w-field select,.w-field textarea{width:100%;min-height:var(--w-ctrl);padding:var(--w-s1) var(--w-s3);border:var(--w-hair) solid var(--w-line-2);background:var(--w-paper-3);color:var(--w-ink);font:inherit}
.w-field input[aria-invalid=true]{border-color:var(--w-ink);border-width:2px}
.w-field__help{color:var(--w-ink-3);font-size:var(--w-t-small)}
.w-field__error{color:var(--w-ink);font-weight:500}
.w-field__error::before{content:"! "}
.w-fieldset{margin:0;padding:var(--w-s4);border:var(--w-hair) solid var(--w-line)}
/* Escolhas nos formulários: o input nativo fica (teclado, leitor de ecrã, sem JS) mas
   escondido; o visual é o <span> a seguir. Chips (várias), opções (uma) e interruptor (sim/não). */
.w-chip>input,.w-option>input{position:absolute;width:1px;height:1px;min-height:0;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.w-chips{display:flex;flex-wrap:wrap;gap:var(--w-s1);margin-bottom:var(--w-s3)}
.w-chip{position:relative;display:inline-flex;cursor:pointer}
.w-chip>span{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;padding:0 var(--w-s3);border:var(--w-hair) solid var(--w-line-2);background:var(--w-paper-3);color:var(--w-ink);line-height:1.2;transition:background .2s ease,color .2s ease,border-color .2s ease}
.w-chip:hover>span{border-color:var(--w-wood)}
.w-chip>input:checked+span{background:var(--w-ink);border-color:var(--w-ink);color:var(--w-paper-3)}
.w-chip>input:checked+span::before{content:"✓";font-size:.85em}
.w-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--w-s2)}
.w-option{position:relative;display:flex;cursor:pointer}
.w-option>span{display:flex;align-items:center;gap:var(--w-s2);width:100%;min-height:var(--w-ctrl);padding:var(--w-s2) var(--w-s3);border:var(--w-hair) solid var(--w-line-2);background:var(--w-paper-3);color:var(--w-ink);line-height:1.2;transition:border-color .2s ease,box-shadow .2s ease}
.w-option>span::before{content:"";flex:none;width:1.1rem;height:1.1rem;border:var(--w-hair) solid var(--w-line-2);border-radius:50%;background:var(--w-paper-3);transition:border .15s ease}
.w-option:hover>span{border-color:var(--w-wood)}
.w-option>input:checked+span{border-color:var(--w-ink);box-shadow:inset 0 0 0 1px var(--w-ink);font-weight:500}
.w-option>input:checked+span::before{border:.35rem solid var(--w-ink)}
.w-chip>input:focus-visible+span,.w-option>input:focus-visible+span{outline:2px solid var(--w-wood);outline-offset:2px}
.w-switch{display:flex;align-items:center;gap:var(--w-s3);padding:var(--w-s3);border:var(--w-hair) solid var(--w-line);background:var(--w-paper-3);cursor:pointer;line-height:1.5}
.w-switch>input{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:3rem;height:1.75rem;margin:0;border-radius:1rem;background:var(--w-line-2);cursor:pointer;transition:background .2s ease}
.w-switch>input::before{content:"";position:absolute;top:.2rem;left:.2rem;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--w-paper-3);box-shadow:0 0 0 var(--w-hair) var(--w-line-2);transition:transform .2s ease}
.w-switch>input:checked{background:var(--w-ink)}
.w-switch>input:checked::before{transform:translateX(1.25rem)}
.w-switch>input:focus-visible{outline:2px solid var(--w-wood);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.w-chip>span,.w-option>span,.w-switch>input,.w-switch>input::before{transition:none}}
.w-form>.w-btn{justify-self:start}
/* Take Away: linhas do carrinho (nome, preço, quantidade) */
.w-cart{display:grid}
.w-cart__cat{font-size:var(--w-t-h3);padding-bottom:var(--w-s2);border-bottom:var(--w-hair) solid var(--w-line-2)}
.w-cart__line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--w-s2) var(--w-s3);padding:var(--w-s3) 0;border-bottom:var(--w-hair) solid var(--w-line)}
.w-cart__name label{font-weight:500}
.w-cart__name p{margin-top:.15rem}
.w-cart__price{white-space:nowrap}
.w-cart__line--out{color:var(--w-ink-3)}
.w-cart__line--out .w-cart__name{grid-column:1 / -2}
.w-cart__qty,.w-cart__step{min-height:var(--w-ctrl);border:var(--w-hair) solid var(--w-line-2);background:var(--w-paper-3);color:var(--w-ink);font:inherit}
.w-cart__qty{width:4.5rem;padding:var(--w-s1) var(--w-s2);text-align:center}
.w-cart__stepper{display:flex}
.w-cart__stepper .w-cart__qty{width:3rem;border-inline:0;-moz-appearance:textfield;appearance:textfield}
.w-cart__stepper .w-cart__qty::-webkit-inner-spin-button,.w-cart__stepper .w-cart__qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.w-cart__step{width:var(--w-ctrl);cursor:pointer}
.w-cart__step:hover{border-color:var(--w-wood);color:var(--w-wood)}
.w-cart__total{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--w-s1) var(--w-s3);padding:var(--w-s3) var(--w-s4);border:var(--w-hair) solid var(--w-ink);background:var(--w-paper-3)}
@media (max-width:30rem){.w-cart__line{grid-template-columns:1fr auto}.w-cart__name{grid-column:1 / -1}.w-cart__line--out .w-cart__name{grid-column:1 / -1}}
