/* ===============================================================
   Pizza Metro
   Prata (titles) + Oswald (interface) + Lora (text), all Cyrillic.
   =============================================================== */
:root{
  --paper:#f4ecdf; --paper-2:#eae0cf; --ink:#1d1512; --ink-soft:#6b584c;
  --rust:#9c3b23; --rust-dk:#752916; --olive:#5c6b46; --gold:#c08b36;
  --char:#151010;
  --line:rgba(29,21,18,.16); --line-soft:rgba(29,21,18,.08);
  /* three faces, three jobs */
  --display:"Prata",Georgia,serif;                 /* titles, wordmark, numbers */
  --ui:"Oswald","Arial Narrow",sans-serif;         /* nav, buttons, labels, chips */
  --body:"Lora",Georgia,serif;                     /* running text, dish names */
  --nav-h:64px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:18px; line-height:1.62; overflow-x:hidden;
}
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image: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='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button,.btn{ max-width:100%; }
.wolt-mark{ height:.95em; width:auto; fill:currentColor; stroke:none; display:block; flex:none; }
.ico{ width:1.25em; height:1.25em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.ico .fill{ fill:currentColor; stroke:none; }
::selection{ background:var(--rust); color:var(--paper); }
h1,h2,h3{ font-family:var(--display); font-weight:400; line-height:1.02; margin:0; letter-spacing:-.005em; }
p{ margin:0 0 1em; }
main,header,footer,section{ position:relative; z-index:1; }

.wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
.narrow{ max-width:720px; }
.page-col{ max-width:940px; margin:0 auto; }
.page-col.tight{ max-width:660px; text-align:center; }
section{ padding:58px 0; }
@media (max-width:640px){ section{ padding:40px 0; } }

.kicker{
  font-family:var(--ui); font-size:.8rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--rust); font-weight:500; margin-bottom:18px;
}
.kicker.pale{ color:var(--gold); }

/* ---- navbar: hidden until you scroll past the cover ------------- */
.nav{
  position:fixed; top:0; left:0; right:0; height:var(--nav-h); z-index:90;
  display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:0 24px;
  background:rgba(244,236,223,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
  transform:translateY(-101%);
}
.nav.show{ transform:none; }
.nav .logo{ display:block; height:34px; width:auto; }
.nav .logo-fallback{
  font-family:var(--display); font-weight:400; font-size:1.15rem; letter-spacing:-.02em;
}
.nav .sp{ display:none; }
.nav nav{ display:flex; justify-content:flex-end; align-items:center; gap:0; min-width:0; }
.nav nav a{
  font-family:var(--ui); font-weight:400;
  padding:9px 10px; font-size:.88rem; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap;
  color:var(--ink-soft);
}
.nav nav a:hover{ color:var(--ink); }
.nav nav a.on{ color:var(--rust); }
.nav .call{
  font-family:var(--ui); padding:10px 17px; background:var(--rust); color:var(--paper);
  font-size:.92rem; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap;
}
.nav .call:hover{ background:var(--rust-dk); }
.nav .call.wolt{ background:transparent; color:var(--ink); border:1px solid var(--line); }
.nav .call.wolt:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.nav .call.wolt .wolt-mark{ height:1.05em; }
.lang-menu{ position:relative; font-family:var(--ui); }
.lang-menu summary{ display:flex; align-items:center; gap:7px; padding:9px; cursor:pointer; list-style:none; white-space:nowrap; color:var(--ink-soft); }
.lang-menu summary::-webkit-details-marker{display:none}.lang-menu .chev{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;opacity:.7}.lang-menu .chev svg{width:14px;height:14px;display:block}.lang-menu[open] .chev{opacity:1}
.lang-menu .fi,.gate-acts .fi{ width:1.35em; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.14); flex:none; }
.lang-options{ position:absolute; z-index:20; right:0; top:calc(100% + 10px); min-width:190px; padding:7px; background:var(--paper); border:1px solid var(--line); box-shadow:0 14px 40px rgba(28,20,16,.2); }
.lang-options a{display:flex;align-items:center;gap:10px;padding:9px 11px!important;color:var(--ink)!important;white-space:nowrap}.lang-options a:hover,.lang-options a.on{background:var(--paper-2);color:var(--rust)!important}
@media (max-width:900px){
  .lang-menu{ border-top:1px solid var(--line); margin-top:4px; width:100%; }
  .lang-menu summary{ justify-content:center; padding:12px 14px; font-size:1rem; }
  .lang-menu summary .lang-name{ display:none; }
  .lang-options{ position:static; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); min-width:0; margin:0 10px 8px; box-shadow:none; }
  .lang-options a{justify-content:center}.lang-options a span:last-child{display:none}
}
.nav nav a.only-mobile{ display:none; }
@media (max-width:1100px){
  .nav nav a.only-mobile{ display:block; color:#0a7d92; }
}
.burger{ display:none; width:40px; height:40px; background:none; border:1px solid var(--line); font-size:17px; cursor:pointer; color:inherit; }
@media (max-width:900px){
  .nav{ grid-template-columns:minmax(0,1fr) auto; }
  .nav nav{ display:none; }
  .nav.open nav{
    display:flex; flex-direction:column; position:absolute; left:0; right:0; top:100%;
    background:var(--paper); border-bottom:1px solid var(--line); padding:6px 0;
  }
  .nav nav a{ padding:15px 24px; font-size:.9rem; }
  .burger{ display:grid; place-items:center; }
  .nav .call{ display:none; }
}

/* ---- cover: owns the first screen ------------------------------- */
.cover{
  position:relative; min-height:100vh; min-height:100svh;
  display:grid; grid-template-rows:1fr auto;
  background:var(--char) center/cover no-repeat; color:var(--paper);
  padding:34px 24px 26px; overflow:hidden;
}
.cover::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(21,16,16,.35), transparent 60%),
    linear-gradient(180deg, rgba(21,16,16,.45), rgba(21,16,16,.8));
}
.cover > *{ position:relative; z-index:2; }

/* the only moving thing on the site: the cover changes photo with a soft
   diagonal sweep, like a cloth drawn across the picture. One layer, one
   animated property - nothing to measure, nothing to get out of step. */
.cover-fx{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  -webkit-mask-image:linear-gradient(105deg, transparent 0 20%, #000 48% 100%);
          mask-image:linear-gradient(105deg, transparent 0 20%, #000 48% 100%);
  -webkit-mask-repeat:no-repeat;  mask-repeat:no-repeat;
  -webkit-mask-size:240% 100%;    mask-size:240% 100%;
  -webkit-mask-position:0% center; mask-position:0% center;
  transition:-webkit-mask-position 1100ms cubic-bezier(.45,.05,.2,1),
                     mask-position 1100ms cubic-bezier(.45,.05,.2,1);
}
.cover-fx.sweep{ -webkit-mask-position:100% center; mask-position:100% center; }

.cover-top{ display:flex; align-items:flex-start; justify-content:flex-start; gap:20px; }
.cover-top .mark{ height:64px; width:auto; }
.cover-top .where{
  font-family:var(--ui); text-align:right; font-size:.86rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(244,236,223,.7); line-height:1.9;
}

.cover-mid{ display:grid; place-items:center; text-align:center; padding:24px 0; }
.wordmark{
  font-family:var(--display); font-weight:400; color:var(--paper);
  font-size:clamp(3rem,13vw,9.5rem); line-height:.95; letter-spacing:-.01em;
  text-shadow:0 10px 60px rgba(0,0,0,.45); white-space:nowrap;
}
.cover-mid .since{
  font-family:var(--ui); margin-top:22px; font-size:.95rem; letter-spacing:.3em;
  text-transform:uppercase; color:rgba(244,236,223,.75);
  display:flex; align-items:center; justify-content:center; gap:18px;
}
/* each side: a tapered rule, a small solid diamond, then an open diamond.
   All three sit in normal flow, so they cannot drift out of alignment. */
.cover-mid .since .flo{
  display:flex; align-items:center; gap:9px;
  flex:0 0 clamp(60px,15vw,170px);
}
.cover-mid .since .flo::before{
  content:""; flex:1 1 auto; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.cover-mid .since .flo b{
  flex:none; width:5px; height:5px; background:var(--gold);
  transform:rotate(45deg); opacity:.8;
}
.cover-mid .since .flo::after{
  content:""; flex:none; width:8px; height:8px;
  border:1px solid var(--gold); transform:rotate(45deg);
}
/* the right-hand side mirrors it */
.cover-mid .since .flo.rev{ flex-direction:row-reverse; }
.cover-mid .since .flo.rev::before{ background:linear-gradient(90deg,var(--gold),transparent); }

@media (max-width:520px){
  .cover-mid .since{ gap:12px; font-size:.82rem; letter-spacing:.2em; }
  .cover-mid .since .flo{ flex-basis:40px; gap:7px; }
  .cover-mid .since .flo b{ display:none; }
}

/* phone and buttons read as one centred row: equal gaps, equal heights,
   and the same margin on the left and the right */
.cover-bottom{
  display:flex; align-items:stretch; justify-content:center; gap:12px; flex-wrap:wrap;
}
/* the phone keeps its own shape - icon, label, number - inside a framed block */
.phone-big{
  display:inline-flex; align-items:center; gap:14px; padding:9px 20px 9px 9px;
  border:1px solid rgba(244,236,223,.45); color:var(--paper);
  flex:0 1 auto;
}
.phone-big:hover{ border-color:var(--gold); background:rgba(192,139,54,.14); }
.phone-big,.ct-tile-call{touch-action:manipulation}
.phone-big > *{pointer-events:none}
.phone-big > span:last-child{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.phone-big .phone-icon{
  flex:none; width:46px; height:46px; display:grid; place-items:center;
  border:1px solid rgba(244,236,223,.45); color:var(--gold);
}
.phone-big:hover .phone-icon{ background:var(--gold); color:var(--char); border-color:var(--gold); }
.phone-big .phone-icon .ico{ width:22px; height:22px; }
.phone-big small{
  font-family:var(--ui); display:block; font-size:.86rem; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(244,236,223,.7); margin:0; line-height:1;
}
.phone-big b{
  display:block; font-family:var(--display); font-weight:400; font-size:clamp(1.4rem,3.2vw,2rem);
  color:var(--paper); letter-spacing:-.01em; line-height:1;
}
.phone-big:hover b{ color:var(--gold); }

.cover-acts{ display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; flex:0 1 auto; }
.cover-acts .btn{
  flex:0 1 auto; min-width:210px; justify-content:center; text-align:center;
  padding:15px 18px; gap:12px;
  /* contents at 1.5x - the icons and the Wolt mark are sized in em, so they follow */
  font-size:1.5rem; letter-spacing:.06em; line-height:1.15;
}
.cover-acts .btn .ico{ width:1.2em; height:1.2em; }
.cover-acts .btn.call{ background:var(--gold); border-color:var(--gold); color:var(--char); }
.cover-acts .btn.call:hover{ background:#a97a2c; border-color:#a97a2c; }


.scroll-cue{
  position:absolute; left:50%; bottom:14px; transform:translateX(-50%); z-index:2;
  font-family:var(--ui); font-size:.8rem; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(244,236,223,.55);
}
@media (max-width:640px){
  .cover-bottom{ flex-direction:column; align-items:stretch; }

  .cover-top .where{ font-size:.6rem; letter-spacing:.2em; }
  .scroll-cue{ display:none; }
}

/* ---- ornament: a ruled band with diamonds, used above sections ------ */
.rule-band{ display:flex; align-items:center; justify-content:center; gap:10px; color:var(--gold); padding:4px 0; }
.rule-band::before,.rule-band::after{ content:""; height:1px; flex:1; background:currentColor; opacity:.45; }
.rule-band b{ font-family:var(--ui); font-weight:400; font-size:.78rem; letter-spacing:.3em;
              text-transform:uppercase; color:var(--ink-soft); }

/* ---- language chooser, shown once on a first visit ------------------ */
.cover.gate{ display:grid; place-items:center; padding:40px 24px; }
.gate-inner{ position:relative; z-index:2; text-align:center; max-width:640px; width:100%; }
.gate-logo{ height:clamp(56px,11vw,92px); width:auto; margin:0 auto 30px; }
.cover.gate .since{ justify-content:center; margin-bottom:34px; }
.gate-acts{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.gate-acts .btn{ flex:1 1 auto; min-width:200px; justify-content:center; gap:10px; font-size:1.3rem; padding:16px 26px; }
.gate-note{
  margin:30px 0 0; font-family:var(--ui); font-size:.9rem; line-height:1.9;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(244,236,223,.6);
}
@media (max-width:520px){
  .gate-acts .btn{ flex:1 1 100%; min-width:0; }
  .gate-note{ font-size:.78rem; letter-spacing:.08em; }
}

/* ---- buttons ---------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; gap:9px; padding:14px 28px;
  background:var(--rust); color:var(--paper); border:1px solid var(--rust);
  font-family:var(--ui); font-weight:400; font-size:1rem; letter-spacing:.1em; text-transform:uppercase;
  cursor:pointer; white-space:nowrap;
}
.btn:hover{ background:var(--rust-dk); border-color:var(--rust-dk); }
.btn.ghost{ background:transparent; border-color:rgba(244,236,223,.5); color:var(--paper); }
.btn.ghost:hover{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.btn.dark-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn.dark-ghost:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.btn.wolt .wolt-mark{ height:1.15em; }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }
/* long label, so let it break rather than overflow */
.btn.maps{ white-space:normal; text-align:center; line-height:1.25; }
.cover-acts .btn span{ white-space:normal; }

/* ---- category index: list on the left, live panel on the right ---- */
.index-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:26px; }
.index-head h2{ font-size:clamp(2rem,5.5vw,4rem); }
.index-head h2::before{ content:""; display:inline-block; width:9px; height:9px; margin-right:16px;
                        border:1px solid var(--gold); transform:rotate(45deg); vertical-align:middle; }
/* a hairline that runs off the heading */
.index-head{ border-bottom:1px solid var(--line-soft); padding-bottom:14px; }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:0; } }

.idx{ border-top:1px solid var(--line); }
.idx a{
  display:block;
  padding:15px 4px; border-bottom:1px solid var(--line);
}
.idx a:hover,.idx a.live{ background:var(--rust); color:var(--paper); }
.idx .nm{ font-family:var(--display); font-weight:400; font-size:clamp(1.3rem,2.8vw,2rem); line-height:1.15; }

/* the panel shows whichever category is active */
.panel{ position:sticky; top:calc(var(--nav-h) + 24px); }
.panel .shot{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--char); }
.panel .shot img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0;
}
.panel .shot img.on{ opacity:1; }
.panel .shot::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 45%,rgba(21,16,16,.72));
}
.panel .shot .tag{
  position:absolute; left:22px; bottom:16px; z-index:2; color:var(--paper);
  font-family:var(--display); font-size:1.7rem; line-height:1.1;
}
.panel .peek{ border:1px solid var(--line); border-top:0; background:var(--paper); }
.panel .peek{ max-height:min(48vh,520px); overflow:auto; overscroll-behavior:contain; }
.panel .peek .row{
  display:flex; align-items:baseline; gap:8px; padding:12px 18px;
  border-bottom:1px dotted var(--line); font-size:1.02rem; min-width:0;
}
.panel .peek .row > span:first-child{ min-width:0; overflow-wrap:anywhere; }
.panel .peek .row:last-child{ border-bottom:0; }
.panel .peek .dots{ flex:1; border-bottom:1.5px dotted rgba(29,21,18,.28); transform:translateY(-4px); }
.panel .peek .pr{ font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.panel .peek .grp{ display:none; }
.panel .peek .grp.on{ display:block; }

@media (max-width:900px){
  .panel{ display:none; }
}

/* ---- home menu: image-led category cards -------------------------- */
.menu-grid{ display:flex; flex-wrap:wrap; gap:14px; }
.menu-tile{
  flex:1 1 300px;   /* grows to close the last row, so no empty slots */
  position:relative; min-height:220px; overflow:hidden; isolation:isolate;
  display:flex; align-items:flex-end; padding:22px; color:var(--paper); background:var(--rust-dk);
  border:1px solid rgba(29,21,18,.12);
}
.menu-tile:nth-child(4n+2),.menu-tile:nth-child(4n+3){ min-height:270px; }
.menu-tile.all{ background:var(--rust); align-items:center; justify-content:center; text-align:center; }
.menu-tile.all .nm{ padding:0; }
.menu-tile.all .menu-tile-icon{ border-color:rgba(244,236,223,.6); }
.menu-tile img{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.menu-tile .shade{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(21,16,16,.06) 25%,rgba(21,16,16,.9)); }
.menu-tile.no-image{ background:linear-gradient(135deg,var(--rust-dk),var(--char)); }
.menu-tile-icon{ position:absolute; top:18px; left:18px; width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(244,236,223,.45); transform:rotate(45deg); }
.menu-tile-icon .ico{ transform:rotate(-45deg); }
.menu-tile .nm{ font-family:var(--display); font-size:clamp(1.25rem,2.3vw,1.9rem); line-height:1.08; padding-right:38px; }
.menu-tile .go{ position:absolute; right:18px; bottom:23px; }
@media (max-width:820px){ .menu-tile{ flex:1 1 260px; } }
@media (max-width:520px){
  .menu-grid{ gap:8px; }
  .menu-tile{ flex:1 1 calc(50% - 8px); }
  .menu-tile,.menu-tile:nth-child(4n+2),.menu-tile:nth-child(4n+3){ min-height:165px; padding:15px; }
  .menu-tile .nm{ font-size:1.08rem; padding-right:0; }
  .menu-tile-icon{ top:12px; left:12px; width:32px; height:32px; }
  .menu-tile .go{ display:none; }
}

/* ---- signature 80cm slab ---------------------------------------- */
.slab{ background:var(--char); color:var(--paper); overflow:hidden; position:relative; }
/* corner ticks */
.slab::before,.slab::after{
  content:""; position:absolute; width:26px; height:26px; border:1px solid var(--gold); opacity:.65;
}
.slab::before{ top:22px; left:22px; border-right:0; border-bottom:0; }
.slab::after{ right:22px; bottom:22px; border-left:0; border-top:0; }
.slab .inner{ display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:48px; }
.slab .num{
  font-family:var(--display); font-weight:400; line-height:.76;
  font-size:clamp(6rem,22vw,17rem); letter-spacing:-.05em;
  color:transparent; -webkit-text-stroke:2px var(--gold);
}
.slab .num span{ color:var(--gold); -webkit-text-stroke:0; }
.slab h2{ font-size:clamp(1.8rem,4.4vw,3.2rem); color:var(--paper); margin-bottom:18px; }
.slab p{ color:rgba(244,236,223,.72); max-width:34ch; }
@media (max-width:900px){
  .slab .inner{ grid-template-columns:1fr; gap:22px; text-align:left; }
}

/* ---- contact details: one ribbon, used on every page -------------- */
/* 1px gaps over a tinted background draw the rules, so they stay correct
   however many cells there are and however the row wraps. */
.contact-ribbon,.contact-list{
  display:flex; flex-wrap:wrap; gap:1px; background:var(--line);
  border-top:3px double var(--line); border-bottom:3px double var(--line);
}
.contact-ribbon > *,.contact-list > *{
  flex:1 1 auto; min-width:0; background:var(--paper);
  display:flex; align-items:center; gap:16px; padding:18px 22px;
}
.contact-ribbon small,.contact-list small{
  display:block; font-family:var(--ui); color:var(--rust);
  font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:4px;
}
.contact-ribbon strong,.contact-list strong{
  display:block; font-family:var(--display); font-weight:400;
  font-size:1.08rem; line-height:1.35; overflow-wrap:normal;
}
/* opening hours must never break mid-line, so that cell keeps its own width */
.contact-ribbon .hours,.contact-list .hours{ flex:0 0 auto; min-width:auto; }
.contact-ribbon .hours strong,.contact-list .hours strong{ white-space:nowrap; font-size:1rem; }
/* a long street name may break, it has nowhere else to go */
.contact-ribbon .addr strong,.contact-list .addr strong{ overflow-wrap:anywhere; }
.contact-ribbon .ci,.contact-list .ci{
  width:46px; height:46px; flex:none; display:grid; place-items:center;
  color:var(--rust); border:1px solid var(--line); transform:rotate(45deg);
}
.contact-ribbon .ci .ico,.contact-list .ci .ico{ transform:rotate(-45deg); }
.contact-ribbon a:hover strong,.contact-list a:hover strong{ color:var(--rust); }
.contact-ribbon + *,.contact-list + *{ margin-top:24px; }
.wrap > iframe,.wrap > div > iframe{ max-width:100%; }
@media (max-width:640px){
  .contact-ribbon > *,.contact-list > *{ flex:1 1 100%; padding:20px 10px; }
  .contact-ribbon .hours,.contact-list .hours{ flex:1 1 100%; min-width:0; }
  .contact-ribbon .hours strong,.contact-list .hours strong{ white-space:normal; }
}

/* ---- map ------------------------------------------------------------ */
.map-frame{ position:relative; border:1px solid var(--line); padding:8px; background:var(--paper-2); }
.map-frame::after{ content:""; position:absolute; inset:16px; border:1px solid var(--gold); opacity:.5; pointer-events:none; }
.map-frame iframe{ display:block; width:100%; height:clamp(260px,42vw,440px); border:0; filter:sepia(.18) saturate(.92); }

/* ---- photo strip (horizontal scroll) ------------------------------ */
.strip{ display:flex; gap:12px; overflow-x:auto; padding:0 24px 8px; scroll-snap-type:x mandatory; scrollbar-width:none; }
.strip::-webkit-scrollbar{ display:none; }
.strip figure{ margin:0; flex:none; width:min(400px,76vw); aspect-ratio:4/3; scroll-snap-align:center; overflow:hidden; background:var(--paper-2); position:relative; }
.strip figure::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(244,236,223,.5); pointer-events:none; }
.strip img,.strip video{ width:100%; height:100%; object-fit:cover; }

/* ---- printed menu -------------------------------------------------- */
.cat-strip{
  position:sticky; top:var(--nav-h); z-index:50;
  width:100%; max-width:100vw; overflow-x:auto; overflow-y:hidden; contain:inline-size; scrollbar-width:none;
  padding:10px 0; background:rgba(244,236,223,.97);
  border-bottom:1px solid var(--line-soft); backdrop-filter:blur(8px);
}
.cat-strip::-webkit-scrollbar{ display:none; }
.cat-strip-inner{ width:max-content; min-width:100%; margin:0 auto; padding:0 18px; display:flex; flex-wrap:nowrap; justify-content:center; gap:1px; }
.cat-strip a{ font-family:var(--ui); flex:none; padding:7px 8px; font-size:clamp(.7rem,1.08vw,.84rem); letter-spacing:.025em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
.cat-strip a.on{ color:var(--paper); background:var(--rust); }

.cat-block{ padding-top:44px; scroll-margin-top:130px; }
.cat-title{ display:grid; grid-template-columns:minmax(30px,1fr) auto minmax(30px,1fr); align-items:center; gap:20px; text-align:center; margin-bottom:28px; }
.cat-title h2{ font-size:clamp(1.9rem,5vw,3.2rem); max-width:20ch; }
.cat-title > span{ height:1px; background:linear-gradient(90deg,transparent,var(--gold)); position:relative; }
.cat-title > span:last-child{ background:linear-gradient(90deg,var(--gold),transparent); }
.cat-title > span::after{ content:""; position:absolute; right:-5px; top:-4px; width:9px; height:9px; border:1px solid var(--gold); transform:rotate(45deg); background:var(--paper); }
.cat-title > span:last-child::after{ right:auto; left:-5px; }
.head h1{ text-align:center; }
.cat-shot{ width:100%; height:clamp(150px,26vw,290px); object-fit:cover; margin-bottom:26px;
           outline:1px solid var(--gold); outline-offset:-10px; }

.dishes{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
@media (max-width:780px){ .dishes{ grid-template-columns:1fr; } }
.dish{ min-width:0; padding:14px; border:1px solid var(--line-soft); background:rgba(255,255,255,.2); display:flex; gap:16px; align-items:flex-start; }
.dish.no-photo{ border-left:3px solid var(--gold); }
.dish{ position:relative; }
.dish::after{
  content:""; position:absolute; right:6px; top:6px; width:10px; height:10px;
  border-top:1px solid var(--gold); border-right:1px solid var(--gold); opacity:.45;
}
.dish .body{ flex:1; min-width:0; }
.dish .shot{
  flex:none; width:152px; height:152px; object-fit:cover; background:var(--paper-2);
  cursor:zoom-in;
}
@media (max-width:900px){ .dish .shot{ width:128px; height:128px; } }
@media (max-width:520px){ .dish .shot{ width:104px; height:104px; } }
.dish .top{ display:flex; align-items:baseline; gap:8px; }
.dish .nm{ font-family:var(--body); font-weight:700; font-size:1.18rem; line-height:1.3; min-width:0; overflow-wrap:anywhere; }
.dish .dots{ flex:1; border-bottom:1.5px dotted rgba(29,21,18,.3); transform:translateY(-4px); min-width:16px; }
.dish .pr{ display:inline-flex; align-items:baseline; gap:4px; white-space:nowrap;
           font-family:var(--body); font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.dish .pr b{ font-size:1.15rem; font-weight:700; }
/* the euro line repeats the denar line's shape: bold figure, small unit,
   one step down and muted so it reads as secondary */
.dish .pr .eur,.size-price .eur{
  display:inline-flex; align-items:baseline; gap:3px;
  font-style:normal; color:var(--ink-soft); font-variant-numeric:tabular-nums;
}
/* sits directly beside the denar figure */
.dish .pr .eur,.size-price .eur{ margin-left:.45em; }
.dish .pr .eur b,.size-price .eur b{
  font-family:var(--body); font-weight:700; color:var(--ink-soft);
}
.dish .pr .eur b{ font-size:.95rem; }
.size-price .eur b{ font-size:.86rem; }
.dish .pr .eur small,.size-price .eur small{ font-size:.74rem; color:var(--ink-soft); }
/* the price is one unbreakable unit; the dish name shrinks instead */
.dish .pr{ flex-wrap:nowrap; flex:none; justify-content:flex-end; text-align:right; }
.dish .top .nm{ flex:1 1 auto; }
.size-price{ flex-wrap:nowrap; white-space:nowrap; }
.size{ flex:none; white-space:nowrap; }
.dish .pr small,.size-price small{ font-size:.78rem; font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink-soft); }
.dish .ds{ font-style:italic; color:var(--ink-soft); font-size:1rem; margin-top:3px; line-height:1.45; }
.dish .badge{ font-family:var(--ui); display:inline-block; margin-left:8px; padding:2px 9px; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; background:var(--gold); color:var(--char); vertical-align:2px; }
.sizes{ display:flex; flex-wrap:wrap; gap:4px 26px; margin-top:10px; }
.size{ display:inline-flex; align-items:baseline; gap:8px; font-variant-numeric:tabular-nums; }
.diameter{ font-family:var(--ui); font-size:.85rem; letter-spacing:.04em; color:var(--ink-soft); }
.size-price{ display:inline-flex; align-items:baseline; gap:3px; font-family:var(--body); font-weight:700; color:var(--ink); }
.size-price b{ font-size:1.02rem; font-weight:700; }
.menu-call{ padding:40px 0; }
@media (max-width:520px){
  .wrap{ padding-left:16px; padding-right:16px; }
  .nav{ padding:0 16px; }
  .cat-strip-inner{ padding-left:16px; padding-right:16px; }
  .nav .logo{ max-width:150px; object-fit:contain; }
  .wordmark{ font-size:clamp(2.35rem,12vw,4rem); }
  .cover{ padding-left:16px; padding-right:16px; }
  .cover-acts{ gap:8px; flex:1 1 100%; }
  .cover-acts .btn{ flex:1 1 calc(50% - 8px); min-width:0; padding:13px 10px; font-size:1.35rem; }
  .phone-big{ width:100%; justify-content:center; padding:9px 12px 9px 9px; }
  .cover-acts .btn{ width:100%; padding-left:12px; padding-right:12px; }
  .index-head{ align-items:center; }
  .index-head .btn{ padding:11px 14px; font-size:.86rem; }
  .dish .top{ flex-wrap:wrap; }
  .dish .dots{ display:none; }
  .dish .pr{ margin-left:auto; }
  .sizes{ gap:4px 18px; }
  .facts{ grid-template-columns:1fr; }
}

@media (max-width:720px){
  .cat-strip{
    scroll-snap-type:x proximity; padding:9px 0;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);
  }
  .cat-strip-inner{ justify-content:flex-start; padding-left:14px; padding-right:14px; gap:8px; }
  .cat-strip a{
    font-size:.95rem; letter-spacing:.03em; padding:0 16px; min-height:46px;
    display:flex; align-items:center; scroll-snap-align:center;
    border:1px solid var(--line); background:var(--paper);
  }
  .cat-strip a.on{ border-color:var(--rust); }
}

.dish:hover{ border-color:rgba(156,59,35,.35); }
.contact-ribbon > *:hover,.contact-list > *:hover{ background:rgba(192,139,54,.08); }
/* image viewer shared by menu and gallery */
.lightbox{
  position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px;
  background:rgba(21,16,16,.94); cursor:zoom-out;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s ease,visibility .25s ease;
}
.lightbox.on{ opacity:1; visibility:visible; pointer-events:auto; }
.lightbox figure{ margin:0; text-align:center; transform:scale(.96); opacity:0; transition:transform .3s ease,opacity .3s ease; }
.lightbox.on figure{ transform:scale(1); opacity:1; }
.lightbox img{ max-width:min(900px,92vw); max-height:80vh; object-fit:contain; margin:0 auto; }
.lightbox figcaption{ color:var(--paper); margin-top:16px; font-family:var(--display); font-size:1.2rem; }
.lightbox-description{display:block;max-width:72ch;margin:6px auto 0;font-family:var(--body);font-size:1rem;line-height:1.45;color:rgba(244,236,223,.82)}
.lightbox-description:empty{display:none}
.lightbox-close{position:absolute;top:18px;right:22px;z-index:2;width:44px;height:44px;border:1px solid rgba(244,236,223,.55);background:rgba(32,23,16,.5);color:var(--paper);font-size:1.8rem;line-height:1;cursor:pointer;transition:background-color .18s ease,border-color .18s ease}
.lightbox-close:hover,.lightbox-close:focus-visible{background:var(--rust);border-color:var(--gold)}

/* ---- page headers (inner pages) ------------------------------------- */
.head{ padding:calc(var(--nav-h) + 40px) 0 4px; }
.head h1{ font-size:clamp(2.6rem,8vw,5.6rem); }
/* a diamond under every page title */
.head h1::after{
  content:"\2756";                       /* ❖ flanked by tapered rules */
  display:block; width:min(340px,78%); margin:18px auto 0;
  color:var(--gold); font-size:1rem; line-height:1; text-align:center;
  background:
    linear-gradient(90deg,transparent,var(--gold)) left center/calc(50% - 30px) 1px no-repeat,
    linear-gradient(90deg,var(--gold),transparent) right center/calc(50% - 30px) 1px no-repeat,
    radial-gradient(circle,var(--gold) 50%,transparent 52%) left center/4px 4px no-repeat,
    radial-gradient(circle,var(--gold) 50%,transparent 52%) right center/4px 4px no-repeat;
}

/* ---- ornamental rule between sections -------------------------------- */
.orn{ display:flex; align-items:center; justify-content:center; gap:16px; color:var(--gold); }
.orn::before,.orn::after{ content:""; height:1px; flex:1; max-width:220px; }
.orn::before{ background:linear-gradient(90deg,transparent,var(--gold)); }
.orn::after{ background:linear-gradient(90deg,var(--gold),transparent); }
.orn i{ width:9px; height:9px; border:1px solid var(--gold); transform:rotate(45deg); flex:none; }
.orn i + i{ margin-left:-4px; }
.orn.tight{ margin:0 auto; max-width:540px; }
section > .wrap > .orn{ margin-bottom:26px; }

/* ---- forms ------------------------------------------------------------ */
label{ font-family:var(--ui); display:block; font-size:.88rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; }
input,select,textarea,button{ font-family:var(--body); font-size:1.02rem; }
input[type=text],input[type=tel],input[type=date],input[type=time],input[type=number],
input[type=email],select,textarea{
  width:100%; padding:13px 14px; background:var(--paper); border:1px solid var(--line); color:var(--ink); outline:none;
}
input:focus,select:focus,textarea:focus{ border-color:var(--rust); box-shadow:0 0 0 3px rgba(156,59,35,.12); }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:620px){ .grid2{ grid-template-columns:1fr; } }
.stack > * + *{ margin-top:18px; }
.notice{ padding:13px 16px; border-left:3px solid var(--rust); background:var(--paper-2); font-size:.92rem; }
.notice.ok{ border-color:var(--olive); }
.muted{ color:var(--ink-soft); }

/* ---- news / gallery ---------------------------------------------------- */
.posts{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); }
.post{ background:var(--paper); display:grid; grid-template-columns:200px 1fr; gap:28px; align-items:center; padding:26px; }
.post img{ width:200px; height:140px; object-fit:cover; }
.post .date{ font-family:var(--ui); font-size:.85rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rust); }
.post h3{ font-size:1.6rem; margin:8px 0; }
.post p{ color:var(--ink-soft); margin:0; }
@media (max-width:640px){ .post{ grid-template-columns:1fr; gap:16px; padding:20px; } .post img{ width:100%; } }

.gal{ columns:3; column-gap:12px; }
@media (max-width:860px){ .gal{ columns:2; } }
@media (max-width:520px){ .gal{ columns:1; } }
.gal figure{ margin:0 0 12px; break-inside:avoid; position:relative; background:var(--paper-2); }
.gal img,.gal video{ width:100%; }
.gal img[data-full]{cursor:zoom-in}
.gal figcaption{ position:absolute; left:0; right:0; bottom:0; padding:12px 14px; color:var(--paper); background:linear-gradient(transparent,rgba(21,16,16,.8)); font-size:.82rem; font-style:italic; }

/* ---- floor plan --------------------------------------------------------- */
.plan-wrap{ border:1px solid var(--line); background:var(--paper-2); overflow:hidden; }
.plan{ position:relative; width:100%; aspect-ratio:16/10; background-size:cover; background-position:center; }
.plan.grid-on{
  background-image:linear-gradient(rgba(29,21,18,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(29,21,18,.06) 1px,transparent 1px);
  background-size:5% 5%;
}
.tbl{
  position:absolute; display:grid; place-items:center; text-align:center; padding:4px;
  background:#8a6a4a; color:#fff7ea; border:2px solid rgba(255,255,255,.3);
  font-size:.76rem; line-height:1.12; cursor:pointer; user-select:none;
}
.tbl.round{ border-radius:50%; }
.tbl small{ display:block; font-size:.64rem; opacity:.85; }
.tbl:hover{ background:#75583d; }
.tbl.sel{ background:var(--olive); border-color:var(--gold); }
.tbl.busy{ background:#bcae9c; color:rgba(255,255,255,.75); cursor:not-allowed; }
.tbl.busy:hover{ background:#bcae9c; }
.tbl.off{ background:#cec2b1; color:rgba(29,21,18,.5); cursor:default; }
.legend{ font-family:var(--ui); display:flex; gap:20px; flex-wrap:wrap; font-size:.92rem; color:var(--ink-soft); padding:12px 2px; }
.legend i{ display:inline-block; width:12px; height:12px; margin-right:7px; vertical-align:-1px; }

/* ---- booking timeline --------------------------------------------- */
.tl .bar{ position:relative; height:48px; background:var(--paper-2); border:1px solid var(--line); overflow:hidden; }
.tl .hour{ position:absolute; top:0; bottom:0; width:1px; background:rgba(29,21,18,.12); }
.tl .hour span{ font-family:var(--ui); position:absolute; top:3px; left:4px; font-size:.76rem; color:var(--ink-soft); }
.tl .blk{
  font-family:var(--ui); position:absolute; top:17px; bottom:5px; background:var(--olive); color:var(--paper);
  font-size:.86rem; display:flex; align-items:center; padding:0 8px; overflow:hidden; white-space:nowrap;
}
.tl .blk.pending{ background:var(--gold); color:var(--char); }
.tl .blk.mine{ background:var(--rust); outline:2px solid var(--char); z-index:2; }
.tl .empty{ padding:10px 0 0; color:var(--ink-soft); font-size:.88rem; }

/* ---- footer -------------------------------------------------------------- */
footer.site{ background:var(--char); color:rgba(244,236,223,.66); padding:64px 0 28px; }
footer.site .top{ display:flex; justify-content:space-between; align-items:flex-end; gap:28px; flex-wrap:wrap; margin-bottom:40px; }
footer.site .big{ font-family:var(--display); font-weight:400; color:var(--paper); font-size:clamp(2rem,6vw,3.6rem); line-height:.95; }
footer.site .cols{ display:grid; grid-template-columns:1fr 1.1fr 1.55fr auto; gap:34px; align-items:start; }
footer.site .k{ font-family:var(--ui); font-size:.85rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(244,236,223,.5); margin-bottom:9px; }
footer.site .k::before{ content:""; display:inline-block; width:6px; height:6px; margin-right:9px; border:1px solid var(--gold); transform:rotate(45deg); vertical-align:1px; }
footer.site a:hover{ color:var(--paper); }
.foot-contact > div:not(.k){ display:flex; align-items:flex-start; gap:9px; margin-top:6px; min-width:0; }
.foot-contact .ico{ color:var(--gold); margin-top:.25em; }
.foot-contact.hours span{ display:block; min-width:0; line-height:1.55; }
.social-icons{ display:flex; gap:10px; }
.social-icons a{ width:42px; height:42px; border:1px solid rgba(244,236,223,.25); display:grid; place-items:center; color:var(--paper); }
.social-icons a:hover{ background:var(--paper); color:var(--char); }
.social-icons .ico{ width:20px; height:20px; }
footer.site .base::before{ content:"\2756"; position:absolute; top:-11px; left:50%; transform:translateX(-50%);
                           background:var(--char); padding:0 12px; color:var(--gold); font-size:.85rem; }
footer.site .base{ position:relative; font-family:var(--ui); margin-top:44px; padding-top:20px; border-top:1px solid rgba(244,236,223,.14); display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.88rem; }
@media (max-width:900px){ footer.site .cols{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ footer.site .cols{ grid-template-columns:1fr; gap:26px; } }

/* ---- rustic finish and responsive interaction ----------------------- */
:root{
  --paper:#f2e8d7;
  --paper-2:#e6d7bd;
  --rust:#873c25;
  --rust-dk:#672b1a;
  --gold:#ae7a3c;
  --char:#201710;
  --line:rgba(72,43,24,.25);
  --line-soft:rgba(72,43,24,.13);
}
body{
  background-color:var(--paper);
  background-image:radial-gradient(ellipse at 12% 16%,rgba(255,250,237,.68),transparent 48%),
                   radial-gradient(ellipse at 82% 72%,rgba(170,116,62,.09),transparent 54%),
                   repeating-linear-gradient(4deg,transparent 0 37px,rgba(99,63,38,.018) 38px 39px,transparent 40px 83px);
}
body::before{opacity:.38}
::selection{background:var(--rust);color:#fff7e9}

.nav{
  background:linear-gradient(180deg,rgba(250,242,227,.97),rgba(242,232,215,.97));
  border-bottom:1px solid rgba(104,65,35,.3);
  box-shadow:0 3px 0 rgba(174,122,60,.12),0 8px 25px rgba(38,25,17,.06);
}
.nav nav > a{position:relative;transition:color .16s ease,background-color .16s ease}
.nav nav > a::after{content:"";position:absolute;left:10px;right:10px;bottom:5px;height:1px;background:var(--gold);opacity:0;transition:opacity .18s ease}
.nav nav > a:hover,.nav nav > a:focus-visible{color:var(--rust);background:rgba(174,122,60,.08)}
.nav nav > a:hover::after,.nav nav > a:focus-visible::after,.nav nav > a.on::after{opacity:1}
.nav .call,.burger,.lang-menu summary{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.nav > a:first-child .logo,.nav > a:first-child .logo-fallback{transition:opacity .17s ease,filter .17s ease}
.nav > a:first-child:hover .logo,.nav > a:first-child:focus-visible .logo{filter:sepia(.35) saturate(1.25)}
.nav > a:first-child:hover .logo-fallback,.nav > a:first-child:focus-visible .logo-fallback{opacity:.68}
.nav .call:hover,.nav .call:focus-visible{box-shadow:inset 0 0 0 1px rgba(255,245,226,.42),0 3px 12px rgba(72,43,24,.16)}
.lang-menu summary:hover,.lang-menu summary:focus-visible{background:rgba(174,122,60,.14);color:var(--rust)}
.lang-options{background:#f7eedf;border:1px solid rgba(104,65,35,.35);box-shadow:0 18px 35px rgba(38,25,17,.2),inset 0 0 0 3px #f7eedf,inset 0 0 0 4px rgba(174,122,60,.3)}
.lang-options a{transition:background-color .14s ease,color .14s ease}
.lang-options a:hover,.lang-options a:focus-visible{box-shadow:inset 2px 0 0 var(--gold)}
.burger:hover,.burger:focus-visible{background:var(--rust);border-color:var(--rust);color:var(--paper)}

.cover::before{content:"";position:absolute;inset:13px;border:1px solid rgba(246,225,189,.4);z-index:2;pointer-events:none}
.cover::after{background:linear-gradient(180deg,rgba(25,17,12,.36),rgba(25,17,12,.18) 43%,rgba(25,17,12,.75))}
.cover-mid .wordmark{text-shadow:0 4px 30px rgba(18,11,7,.55)}
.cover-acts .btn,.phone-big{box-shadow:inset 0 0 0 1px rgba(255,243,221,.12);transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.cover-acts .btn:hover,.cover-acts .btn:focus-visible,.phone-big:hover,.phone-big:focus-visible{box-shadow:inset 0 0 0 1px rgba(255,243,221,.38),0 5px 16px rgba(18,11,7,.26)}

.btn{position:relative;transition:background-color .17s ease,border-color .17s ease,color .17s ease,box-shadow .17s ease}
.btn:hover,.btn:focus-visible{box-shadow:0 4px 13px rgba(72,43,24,.19)}
.btn.dark-ghost{border-color:rgba(104,65,35,.34);box-shadow:inset 0 0 0 3px var(--paper),inset 0 0 0 4px rgba(174,122,60,.18)}
.btn.dark-ghost:hover{box-shadow:0 6px 16px rgba(72,43,24,.18)}
:where(a,button,summary,img[data-full]):focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.orn::before,.orn::after{height:2px;opacity:.7}
.orn i{border-width:2px;background:var(--paper)}
.orn i:first-child{box-shadow:0 0 0 4px var(--paper),0 0 0 5px rgba(174,122,60,.4)}
.index-head{border-bottom:1px solid rgba(104,65,35,.3)}
.index-head h2::before{background:var(--gold);box-shadow:0 0 0 3px var(--paper),0 0 0 4px rgba(174,122,60,.45)}

.menu-tile{border:2px solid rgba(255,242,215,.28);box-shadow:0 4px 12px rgba(49,27,15,.12);transition:border-color .2s ease,box-shadow .2s ease}
.menu-tile::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,232,192,.27);pointer-events:none;z-index:1;transition:border-color .2s ease}
.menu-tile img{transition:filter .2s ease}
.menu-tile .shade{transition:background .2s ease}
.menu-tile .nm,.menu-tile-icon{position:relative;z-index:2;transition:color .2s ease,border-color .2s ease}
.menu-tile-icon{position:absolute}
.menu-tile .go{position:absolute;right:20px;bottom:20px;z-index:2;width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(255,238,205,.65);color:var(--paper);transition:color .2s ease,border-color .2s ease,background-color .2s ease}
.menu-tile .go .ico{width:19px;height:19px}
.menu-tile:hover .go,.menu-tile:focus-visible .go{background:var(--gold);border-color:var(--gold);color:var(--char)}
.menu-tile:hover,.menu-tile:focus-visible{border-color:var(--gold);box-shadow:0 7px 18px rgba(49,27,15,.22)}
.menu-tile:hover::before,.menu-tile:focus-visible::before{border-color:rgba(255,238,205,.58)}
.menu-tile:hover img,.menu-tile:focus-visible img{filter:saturate(1.12) brightness(1.04)}
.menu-tile.all{background:linear-gradient(145deg,#9b492a,#642b1a)}
.menu-tile.no-image{background:repeating-linear-gradient(35deg,transparent 0 30px,rgba(255,218,164,.06) 31px 32px,transparent 33px 65px),linear-gradient(145deg,#8b4028,#4b2519)}

.slab{background-color:var(--char);background-image:repeating-linear-gradient(3deg,transparent 0 25px,rgba(180,118,65,.045) 26px 27px,transparent 28px 56px),radial-gradient(ellipse at 85% 20%,rgba(151,84,45,.16),transparent 55%);border-top:2px solid var(--gold);border-bottom:2px solid var(--gold)}
.slab::before,.slab::after{width:34px;height:34px;opacity:.85}

.contact-ribbon,.contact-list{border-top-color:rgba(104,65,35,.5);border-bottom-color:rgba(104,65,35,.5);box-shadow:0 4px 15px rgba(72,43,24,.06)}
.contact-ribbon > *,.contact-list > *{transition:background-color .18s ease,box-shadow .18s ease}
.contact-ribbon a:hover,.contact-list a:hover,.contact-ribbon a:focus-visible,.contact-list a:focus-visible{background:#f9efdc;box-shadow:inset 0 0 0 1px rgba(174,122,60,.35)}
.contact-ribbon a .ci,.contact-list a .ci{transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.contact-ribbon a:hover .ci,.contact-list a:hover .ci{background:var(--rust);border-color:var(--rust);color:var(--paper)}

.cat-strip{background:rgba(246,236,218,.97);border-bottom:2px solid rgba(174,122,60,.38);box-shadow:0 5px 14px rgba(72,43,24,.07)}
.cat-strip a{position:relative;transition:background-color .15s ease,color .15s ease}
.cat-strip a:hover,.cat-strip a:focus-visible{background:rgba(174,122,60,.2);color:var(--rust)}
.cat-strip a.on:hover,.cat-strip a.on:focus-visible{background:var(--rust-dk);color:var(--paper)}
.cat-title > span{height:2px}.cat-title > span::after{background:var(--gold);box-shadow:0 0 0 4px var(--paper),0 0 0 5px rgba(174,122,60,.45)}
.cat-shot{outline:1px solid rgba(255,233,189,.38);outline-offset:-11px;border:1px solid rgba(104,65,35,.16);filter:saturate(.9) sepia(.08)}
.cat-shot{cursor:zoom-in;transition:filter .2s ease,box-shadow .2s ease}
.cat-shot:hover{filter:saturate(1.08);box-shadow:0 5px 18px rgba(72,43,24,.2)}
.dish{background:rgba(255,251,241,.5);border-color:rgba(104,65,35,.2);box-shadow:inset 0 0 0 3px rgba(255,251,241,.48);transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.dish:hover{background:#faf0de;border-color:rgba(135,60,37,.6);box-shadow:inset 0 0 0 3px rgba(255,251,241,.58),0 4px 12px rgba(72,43,24,.08)}
.dish .shot{border:1px solid rgba(104,65,35,.14);transition:filter .2s ease,box-shadow .2s ease}
.dish .shot:hover,.dish .shot:focus-visible{filter:saturate(1.16);box-shadow:0 0 0 2px var(--paper),0 0 0 3px rgba(174,122,60,.42)}
.dish .pr b,.size-price b{color:var(--rust-dk)}
.size{border-bottom:1px solid rgba(174,122,60,.28)}

.strip figure,.gal figure{border:1px solid rgba(104,65,35,.16);box-shadow:0 3px 10px rgba(72,43,24,.08)}
.strip img,.gal img{transition:filter .2s ease}
.strip figure:hover img,.gal figure:hover img{filter:saturate(1.12) brightness(1.04)}
.strip figure::after{border-color:rgba(255,232,192,.26)}
.post{background:rgba(255,250,239,.7);border-left:2px solid transparent;transition:background-color .18s ease,border-color .18s ease}
.post:hover{background:#fcf3e4;border-left-color:var(--gold)}
.post img{border:1px solid rgba(104,65,35,.22);filter:saturate(.9)}
.map-frame{border-color:rgba(104,65,35,.35);box-shadow:0 8px 24px rgba(72,43,24,.1)}

footer.site{background-color:var(--char);background-image:repeating-linear-gradient(4deg,transparent 0 34px,rgba(182,128,73,.045) 35px 36px,transparent 37px 66px);border-top:3px solid var(--gold)}
footer.site .top{border-bottom:1px solid rgba(174,122,60,.35);padding-bottom:22px}
footer.site a{transition:color .16s ease,text-decoration-color .16s ease}
footer.site a:hover,footer.site a:focus-visible{color:#f8d69d;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.social-icons a{transition:background-color .17s ease,color .17s ease,border-color .17s ease}
.social-icons a:hover,.social-icons a:focus-visible{background:var(--gold);border-color:var(--gold);color:var(--char)}

@media(prefers-reduced-motion:reduce){.nav nav > a,.lang-options a,.btn,.cover-acts .btn,.phone-big,.menu-tile,.menu-tile img,.menu-tile .nm,.menu-tile .go,.contact-ribbon > *,.contact-list > *,.cat-strip a,.cat-shot,.dish,.dish .shot,.strip img,.gal img,.social-icons a,.lightbox,.lightbox figure{transition:none!important}}

/* The finish relies on colour and fine rules rather than drop shadows. */
*,*::before,*::after{box-shadow:none!important;text-shadow:none!important}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* Homepage photography has no inset picture frames. */
.cover::before,.menu-tile::before,.strip figure::after{display:none}

/* A restrained engraved motif shared by the public pages. */
.index-head{align-items:center;border-bottom:1px solid rgba(104,65,35,.3)}
.index-head h2{display:flex;align-items:center;gap:14px;min-width:0}
.index-head h2::before{flex:none;width:10px;height:10px;margin:0;border:1px solid var(--rust);background:transparent;transform:rotate(45deg)}
.orn{gap:14px}
.orn::before,.orn::after{height:1px;opacity:1}
.orn i{width:9px;height:9px;border:1px solid var(--gold);background:var(--paper)}
.orn i + i{width:5px;height:5px;margin-left:-7px;background:var(--gold)}
.head h1::after{margin-top:20px;color:var(--rust);font-size:.9rem}
.cat-title{gap:18px}
.cat-title > span{height:1px}
.cat-title > span::after{width:8px;height:8px;top:-4px;background:var(--paper);border-color:var(--rust)}
.cat-title h2{line-height:1.08}
.slab::before,.slab::after{width:28px;height:28px;opacity:.7}
.dish::after{width:12px;height:12px;right:8px;top:8px;opacity:.55}
footer.site .top{position:relative}
footer.site .top::after{content:"";position:absolute;bottom:-5px;left:50%;width:8px;height:8px;border:1px solid var(--gold);background:var(--char);transform:translateX(-50%) rotate(45deg)}
footer.site .k::before{vertical-align:2px}
@media (max-width:520px){
  .index-head h2{gap:10px}
  .cat-title{gap:10px}
  .menu-tile .go{display:none}
}

/* Mirror every decorative element about its centre line. */
.orn{gap:12px}
.orn i{width:10px;height:10px;margin:0!important;background:var(--paper);border:1px solid var(--gold)}
.orn i + i{width:10px;height:10px;background:var(--paper)}
.orn::before,.orn::after{max-width:220px;opacity:1}
.cat-title > span:first-child::after{right:-4px}
.cat-title > span:last-child::after{left:-4px}
.index-head h2::after{content:"";flex:none;width:10px;height:10px;border:1px solid var(--rust);transform:rotate(45deg)}

/* Calm cream controls; the section label itself stays undecorated. */
.index-head h2::before,.index-head h2::after{content:none}
.index-head h2{display:block}
.gate-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.gate-acts .btn{width:100%;min-width:0;min-height:68px;background:var(--paper);border-color:var(--paper);color:var(--char);font-size:1.1rem;padding:12px}
.gate-acts .btn.ghost{background:var(--paper);border-color:var(--paper);color:var(--char)}
.btn:hover,.btn:focus-visible,.btn.ghost:hover,.btn.ghost:focus-visible,
.btn.dark-ghost:hover,.btn.dark-ghost:focus-visible,
.gate-acts .btn:hover,.gate-acts .btn:focus-visible{
  background:#fff7e9;border-color:#fff7e9;color:var(--char);
}
.phone-big,.phone-big:hover,.phone-big:focus-visible{border:0;background:transparent}
.phone-big .phone-icon,.phone-big:hover .phone-icon,.phone-big:focus-visible .phone-icon{
  border:0;background:transparent;color:var(--paper);
}
.phone-big:hover b,.phone-big:focus-visible b{color:#fff7e9}
@media(max-width:700px){.gate-acts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.gate-acts{grid-template-columns:1fr}}

/* The phone remains a button; only its pictogram loses the inner frame. */
.phone-big,.phone-big:hover,.phone-big:focus-visible{border:1px solid rgba(244,236,223,.55)}
.phone-big:hover,.phone-big:focus-visible{background:#fff7e9;border-color:#fff7e9;color:var(--char)}
.phone-big:hover small,.phone-big:focus-visible small,
.phone-big:hover b,.phone-big:focus-visible b,
.phone-big:hover .phone-icon,.phone-big:focus-visible .phone-icon{color:var(--char)}
.menu-tile:hover .go,.menu-tile:focus-visible .go{background:#fff7e9;border-color:#fff7e9;color:var(--char)}

.dish{scroll-margin-top:calc(var(--nav-h) + 76px)}
.dish-pairs{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-top:12px;padding-top:9px;border-top:1px solid var(--line-soft);font-size:.78rem;line-height:1.4}
.pair-label{font-family:var(--ui);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);white-space:nowrap}
.pair-links{display:inline-flex;flex-wrap:wrap;gap:4px 7px;min-width:0}
.pair-links a{color:var(--ink-soft);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;overflow-wrap:anywhere}
.pair-links a:hover,.pair-links a:focus-visible{color:var(--rust);text-decoration-color:var(--rust)}
.lightbox figure{max-height:calc(100dvh - 48px);overflow-y:auto;cursor:default;max-width:min(900px,92vw)}
.lightbox img{max-height:60dvh}
.lightbox-pairs{display:block;margin-top:12px;font-family:var(--body);font-size:.9rem}
.lightbox-pairs:empty{display:none}
.lightbox-pairs .dish-pairs{justify-content:center;border-color:rgba(244,236,223,.3);padding-top:12px}
.lightbox-pairs .pair-label{color:var(--gold)}
.lightbox-pairs .pair-links a{color:var(--paper)}
.lightbox-pairs .pair-links a:hover,.lightbox-pairs .pair-links a:focus-visible{color:#fff7e9}

/* Menu image viewer: photograph and readable editorial panel. */
.menu-lightbox{padding:clamp(12px,3vw,32px)}
.menu-lightbox figure{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(285px,.65fr);width:min(1080px,96vw);max-width:none;max-height:calc(100dvh - 64px);overflow:auto;background:#211a15;border:1px solid rgba(244,236,223,.35)}
.menu-lightbox img{width:100%;height:min(74dvh,720px);max-width:none;max-height:none;object-fit:contain;background:#211a15}
.menu-lightbox figcaption{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;margin:0;padding:clamp(24px,3vw,42px);text-align:left;background:var(--paper);color:var(--ink)}
.menu-lightbox #lbCap{display:block;width:100%;font-size:clamp(1.35rem,2.6vw,2.25rem);line-height:1.2;overflow-wrap:anywhere}
.menu-lightbox figcaption::before{content:"";display:block;width:44px;height:2px;background:var(--gold);margin-bottom:23px}
.menu-lightbox .lightbox-description{margin:12px 0 0;color:var(--ink-soft);font-size:1rem;line-height:1.55;text-align:left}
.menu-lightbox .lightbox-pairs{width:100%;margin-top:24px}
.menu-lightbox .lightbox-pairs .dish-pairs{justify-content:flex-start;display:block;margin:0;padding-top:17px;border-color:var(--line)}
.menu-lightbox .lightbox-pairs .pair-label{display:block;color:var(--rust);margin-bottom:10px}
.menu-lightbox .lightbox-pairs .pair-links{display:flex;gap:8px}
.menu-lightbox .lightbox-pairs .pair-links a{display:inline-flex;padding:8px 11px;border:1px solid var(--line);color:var(--ink);background:#f9f1e4;font:500 .84rem var(--body);text-decoration:none;transition:background-color .15s ease,border-color .15s ease}
.menu-lightbox .lightbox-pairs .pair-links a:hover,.menu-lightbox .lightbox-pairs .pair-links a:focus-visible{background:#fff7e9;border-color:var(--gold);color:var(--rust)}
.menu-lightbox .lightbox-close{top:clamp(12px,3vw,32px);right:clamp(12px,3vw,32px);background:var(--paper);border-color:var(--gold);color:var(--ink)}
.menu-lightbox .lightbox-close:hover,.menu-lightbox .lightbox-close:focus-visible{background:#fff7e9;color:var(--rust)}
@media(max-width:740px){
  .menu-lightbox figure{grid-template-columns:1fr;width:min(560px,96vw);max-height:calc(100dvh - 24px)}
  .menu-lightbox img{height:min(45dvh,420px)}
  .menu-lightbox figcaption{padding:22px}
  .menu-lightbox figcaption::before{margin-bottom:14px}
}

/* Static opening hours have the same visual hover as adjacent contact cells. */
.contact-ribbon .hours:hover,.contact-list .hours:hover{background:#f9efdc}
.contact-ribbon .hours:hover strong,.contact-list .hours:hover strong{color:var(--rust)}
.contact-ribbon .hours:hover .ci,.contact-list .hours:hover .ci{background:var(--rust);border-color:var(--rust);color:var(--paper)}
.contact-ribbon .hours,.contact-list .hours{flex:1 1 235px;min-width:0}
.contact-ribbon .hours strong,.contact-list .hours strong{white-space:normal;overflow-wrap:anywhere;font-size:.9rem;line-height:1.45}

.open-status{padding:0;background:#e8dcc7;border-block:1px solid var(--line)}
.open-status-inner{display:flex;align-items:center;gap:17px;min-height:82px;padding-block:12px}
.open-status-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border:1px solid var(--rust);color:var(--rust)}
.open-status-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.open-status-copy strong{font-family:var(--display);font-weight:400;font-size:1.12rem;line-height:1.25}
.open-status-copy small{font-family:var(--ui);font-size:.83rem;color:var(--ink-soft);letter-spacing:.04em}
.open-status-place{margin-left:auto;font-family:var(--ui);font-size:.77rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.open-status.is-open .open-status-icon{background:var(--rust);color:var(--paper)}
@media(max-width:600px){.open-status-inner{gap:12px}.open-status-place{display:none}}

.hero-status{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;padding:8px 16px;border:1px solid rgba(244,236,223,.55);background:rgba(25,17,12,.48);color:var(--paper);font:500 .88rem var(--ui);letter-spacing:.14em;text-transform:uppercase}
.hero-status-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#d69d79}
.hero-status.is-open .hero-status-dot{background:#b6cc8d}
.contact-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:transparent;border:0}
.contact-page-grid > *{flex:none;min-width:0;min-height:116px;border:1px solid var(--line);background:rgba(255,251,242,.55);padding:22px}
.contact-page-grid .hours{flex:none}
.contact-page-grid .hours strong{font-size:1rem}
.contact-page-grid .contact-online{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}
.contact-page-grid .contact-online a{display:flex;align-items:center;gap:14px;min-width:0;padding:18px}
.contact-page-grid .contact-online a+a{border-left:1px solid var(--line)}
.contact-page-grid .contact-online a:hover,.contact-page-grid .contact-online a:focus-visible{background:#f9efdc}
.contact-page-grid .contact-online a:hover .ci,.contact-page-grid .contact-online a:focus-visible .ci{background:var(--rust);border-color:var(--rust);color:var(--paper)}
.contact-page-grid .contact-online strong{overflow-wrap:anywhere}
.cover-acts{width:100%;justify-content:center}
@media(max-width:700px){.contact-page-grid{grid-template-columns:1fr}.contact-page-grid > *{min-height:0;padding:18px}}
@media(max-width:530px){.contact-page-grid .contact-online{grid-template-columns:1fr;padding:0}.contact-page-grid .contact-online a+a{border-left:0;border-top:1px solid var(--line)}}
.lang-menu summary .lang-name,.lang-options a span:last-child{display:inline}
@media (max-width:820px){
  .lang-menu summary .lang-name{display:inline}
  .lang-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lang-options a{justify-content:flex-start;min-width:0}
  .lang-options a span:last-child{display:inline;overflow:hidden;text-overflow:ellipsis}
}

/* =================================================================
   Language chooser — first visit (rustic card over the house photo)
   ================================================================= */
.lg-body{ margin:0; min-height:100vh; background:var(--char); }
.lg-body::before{ display:none; }
.lg-page{
  position:relative; min-height:100vh; min-height:100dvh; display:grid; place-items:center;
  padding:clamp(18px,5vw,56px) 16px; overflow:hidden; isolation:isolate;
}
.lg-page::before{
  content:""; position:absolute; inset:-20px; z-index:-2;
  background:var(--lg-photo, none) center/cover no-repeat, var(--char);
  filter:saturate(.85) blur(2px); transform:scale(1.04);
  animation:lgDrift 24s ease-in-out infinite alternate;
}
.lg-page::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(ellipse at center,rgba(21,16,16,.45) 0%,rgba(21,16,16,.88) 75%);
}
@keyframes lgDrift{ to{ transform:scale(1.12) translate(-1.5%,-1%); } }
.lg-card{
  position:relative; width:min(560px,100%); padding:clamp(28px,5vw,48px) clamp(20px,4.5vw,44px) clamp(24px,4vw,36px);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 50% 0%,#f8f1e6 0%,var(--paper) 55%,#e6d8c1 100%);
  color:var(--ink); text-align:center;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7), inset 0 0 0 1px rgba(156,59,35,.25), inset 0 0 0 7px var(--paper), inset 0 0 0 8px rgba(156,59,35,.4), inset 0 0 60px rgba(120,80,40,.18);
  animation:lgIn .7s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes lgIn{ from{ opacity:0; transform:translateY(18px) scale(.98); } }
.lg-corner{ position:absolute; width:18px; height:18px; border:1.5px solid var(--rust); }
.lg-corner.tl{ top:16px; left:16px; border-right:0; border-bottom:0; }
.lg-corner.tr{ top:16px; right:16px; border-left:0; border-bottom:0; }
.lg-corner.bl{ bottom:16px; left:16px; border-right:0; border-top:0; }
.lg-corner.br{ bottom:16px; right:16px; border-left:0; border-top:0; }
.lg-logo{ height:clamp(52px,10vw,76px); width:auto; margin:0 auto; filter:brightness(0) saturate(100%) invert(10%) sepia(20%) saturate(900%) hue-rotate(330deg); }
.lg-wordmark{ font-family:var(--display); font-size:clamp(2.2rem,7vw,3.2rem); line-height:1; color:var(--ink); }
.lg-est{ display:flex; align-items:center; justify-content:center; gap:12px; margin:14px 0 8px; color:var(--rust);
  font-family:var(--ui); font-size:.72rem; letter-spacing:.38em; text-transform:uppercase; }
.lg-est i{ width:42px; height:1px; background:currentColor; position:relative; }
.lg-est i::after{ content:""; position:absolute; top:-3px; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); }
.lg-est i:first-child::after{ right:-3px; } .lg-est i:last-child::after{ left:-3px; }
.lg-title{ font-family:var(--body); font-style:italic; font-weight:400; font-size:clamp(1.15rem,3.4vw,1.4rem); color:var(--ink-soft); margin:6px 0 24px; line-height:1.3; }
.lg-list{ display:grid; grid-template-columns:1fr 1fr; gap:0 22px; text-align:left; border-top:1px solid var(--line); }
.lg-opt{
  position:relative; display:flex; align-items:center; gap:12px; padding:13px 6px; min-height:52px;
  border-bottom:1px dashed rgba(29,21,18,.2); color:var(--ink);
  animation:lgIn .5s calc(.25s + var(--i) * .04s) both;
  transition:color .15s, padding .2s;
}
.lg-opt .fi{ width:1.45em; height:1.1em; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.18), 0 2px 4px rgba(0,0,0,.15); flex:none; filter:sepia(.25) saturate(.9); transition:filter .2s; }
.lg-name{ flex:1; min-width:0; font-family:var(--display); font-size:1.12rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lg-code{ font-family:var(--ui); font-size:.68rem; letter-spacing:.2em; color:var(--ink-soft); opacity:.7; }
.lg-go{ width:18px; height:18px; flex:none; color:var(--rust); opacity:0; transform:translateX(-6px); transition:opacity .2s, transform .2s; }
.lg-opt:hover,.lg-opt:focus-visible{ color:var(--rust); padding-left:12px; outline:none; }
.lg-opt:hover .fi,.lg-opt:focus-visible .fi{ filter:none; }
.lg-opt:hover .lg-go,.lg-opt:focus-visible .lg-go{ opacity:1; transform:none; }
.lg-opt:hover .lg-code,.lg-opt:focus-visible .lg-code{ display:none; }
.lg-opt.is-suggested{ grid-column:1/-1; justify-content:center; margin:14px 0 6px; padding:15px 18px; border:0; background:var(--rust); color:var(--paper); box-shadow:0 8px 20px -10px rgba(117,41,22,.8); }
.lg-opt.is-suggested .lg-name{ flex:0 1 auto; font-size:1.3rem; }
.lg-opt.is-suggested .lg-code{ color:var(--gold); opacity:1; }
.lg-opt.is-suggested .lg-go{ color:var(--paper); opacity:1; transform:none; }
.lg-opt.is-suggested:hover,.lg-opt.is-suggested:focus-visible{ background:var(--rust-dk); color:var(--paper); padding-left:18px; }
.lg-opt.is-suggested:hover .lg-code{ display:inline; }
.lg-list .lg-opt.is-suggested{ order:-1; }
.lg-note{ margin:22px 0 0; font-family:var(--ui); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); line-height:1.8; }
@media(max-width:460px){ .lg-list{ grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce){ .lg-page::before,.lg-card,.lg-opt{ animation:none!important; } }

/* =================================================================
   Menu item lightbox — rustic menu card
   ================================================================= */
.lightbox.lb-rustic{ background:rgba(18,12,10,.86); backdrop-filter:blur(6px) sepia(.3); padding:clamp(10px,3vw,36px); }
.lb-rustic figure{
  position:relative; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  width:min(1100px,96vw); max-width:none; max-height:calc(100dvh - 40px); overflow:hidden;
  background:#1c1411; border:0; padding:10px;
  box-shadow:0 40px 90px -20px rgba(0,0,0,.8), inset 0 0 0 1px rgba(192,139,54,.35);
  transform:translateY(16px) scale(.97);
}
.lb-rustic.on figure{ transform:none; }
.lb-rustic .lb-photo{ position:relative; min-height:0; overflow:hidden; background:#120d0b; }
.lb-rustic .lb-photo::after{ content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 80px rgba(0,0,0,.55); background:linear-gradient(90deg,transparent 80%,rgba(28,20,17,.5)); }
.lb-rustic img{ width:100%; height:min(76dvh,740px); max-width:none; max-height:none; object-fit:cover; filter:saturate(1.05) contrast(1.03); transform:scale(1.04); transition:transform 6s ease-out; }
.lb-rustic.on img{ transform:scale(1); }
.lb-rustic figcaption{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  margin:0; padding:clamp(28px,3.5vw,48px) clamp(22px,3vw,40px); overflow-y:auto; min-width:0;
  color:var(--ink);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.1'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 50% 30%,#f9f2e7 0%,var(--paper) 50%,#e3d3ba 100%);
  box-shadow:inset 0 0 0 6px var(--paper), inset 0 0 0 7px rgba(156,59,35,.45), inset 0 0 50px rgba(120,80,40,.22);
}
.lb-rustic figcaption::before{ content:none; }
.lb-kicker{ font-family:var(--ui); font-size:.72rem; letter-spacing:.34em; text-transform:uppercase; color:var(--rust); margin-bottom:12px; }
.lb-kicker:empty{ display:none; }
.lb-rustic #lbCap{ display:block; font-family:var(--display); font-size:clamp(1.5rem,2.8vw,2.3rem); line-height:1.15; color:var(--ink); overflow-wrap:anywhere; }
.lb-orn{ display:flex; align-items:center; gap:10px; margin:16px 0 4px; color:var(--gold); }
.lb-orn i{ width:48px; height:1px; background:currentColor; }
.lb-orn b{ width:8px; height:8px; border:1px solid var(--rust); transform:rotate(45deg); }
.lb-rustic .lightbox-description{ margin:12px auto 0; max-width:34ch; font-family:var(--body); font-style:italic; font-size:1.02rem; line-height:1.6; color:var(--ink-soft); text-align:center; }
.lb-price:empty{ display:none; }
.lb-price{ display:block; width:100%; margin-top:22px; }
.lb-price > .pr{ display:inline-flex; align-items:baseline; gap:6px; padding:10px 22px; border:1.5px solid var(--rust); color:var(--rust); outline:1px solid rgba(156,59,35,.35); outline-offset:3px; transform:rotate(-2deg); }
.lb-price > .pr b{ font-family:var(--display); font-weight:400; font-size:1.8rem; }
.lb-price small{ font-family:var(--ui); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; }
.lb-price .eur{ font-style:normal; margin-left:8px; padding-left:10px; border-left:1px solid rgba(156,59,35,.35); opacity:.8; }
.lb-price .eur b{ font-size:1.1rem; }
.lb-price > .sizes{ display:grid; gap:0; width:100%; max-width:320px; margin:0 auto; text-align:left; }
.lb-price .size{ display:flex; align-items:baseline; gap:10px; padding:8px 0; border-bottom:1px dashed rgba(29,21,18,.22); }
.lb-price .size::after{ content:none; }
.lb-price .diameter{ font-family:var(--ui); font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); flex:1; }
.lb-price .size-price b{ font-family:var(--display); font-weight:400; font-size:1.2rem; color:var(--rust); }
.lb-rustic .lightbox-pairs{ width:100%; margin-top:24px; }
.lb-rustic .lightbox-pairs .dish-pairs{ display:block; margin:0; padding-top:16px; border-top:1px solid var(--line); text-align:center; }
.lb-rustic .lightbox-pairs .pair-label{ display:block; margin-bottom:10px; color:var(--rust); }
.lb-rustic .lightbox-pairs .pair-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.lb-rustic .lightbox-pairs .pair-links a{ padding:7px 12px; border:1px solid rgba(156,59,35,.35); background:rgba(255,250,242,.6); color:var(--ink); font:500 .86rem var(--body); text-decoration:none; transition:background-color .15s,color .15s,border-color .15s; }
.lb-rustic .lightbox-pairs .pair-links a:hover,.lb-rustic .lightbox-pairs .pair-links a:focus-visible{ background:var(--rust); border-color:var(--rust); color:var(--paper); }
.lb-rustic .lightbox-close{
  position:absolute; top:20px; right:20px; z-index:3; width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(156,59,35,.5); background:var(--paper); color:var(--rust); font-size:1.6rem; line-height:1;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.lb-rustic .lightbox-close:hover,.lb-rustic .lightbox-close:focus-visible{ background:var(--rust); border-color:var(--rust); color:var(--paper); }
@media(max-width:820px){
  .lb-rustic figure{ grid-template-columns:1fr; width:min(560px,96vw); max-height:calc(100dvh - 20px); overflow-y:auto; padding:8px; }
  .lb-rustic img{ height:min(42dvh,400px); }
  .lb-rustic .lb-photo::after{ background:linear-gradient(180deg,transparent 80%,rgba(28,20,17,.45)); }
  .lb-rustic figcaption{ overflow:visible; padding:26px 20px 28px; }
  .lb-rustic .lightbox-close{ top:16px; right:16px; }
}

/* =================================================================
   v3 — status, buttons, contact, arched gallery
   ================================================================= */

/* ---- live status: closing soon ---------------------------------- */
.hero-status.is-soon .hero-status-dot,.ct-status.is-soon i{ background:var(--gold); box-shadow:0 0 0 0 rgba(192,139,54,.6); animation:ctPulse 1.8s ease-out infinite; }
.hero-status.is-soon{ border-color:rgba(192,139,54,.8); }
@keyframes ctPulse{ 70%{ box-shadow:0 0 0 8px rgba(192,139,54,0); } 100%{ box-shadow:0 0 0 0 rgba(192,139,54,0); } }

/* ---- buttons: a slow ink fill that sweeps in, plus a stamped inner rule */
.btn{
  isolation:isolate; overflow:hidden;
  transition:color .35s ease, border-color .35s ease, box-shadow .35s ease, transform .2s ease;
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:var(--rust-dk);
  transform:scaleX(0); transform-origin:right center;
  transition:transform .45s cubic-bezier(.7,0,.2,1);
}
.btn:hover::before,.btn:focus-visible::before{ transform:scaleX(1); transform-origin:left center; }
.btn:hover,.btn:focus-visible{
  background:var(--rust); border-color:var(--rust-dk); color:var(--paper);
  box-shadow:inset 0 0 0 3px var(--rust-dk), inset 0 0 0 4px rgba(192,139,54,.75), 0 8px 18px -8px rgba(72,43,24,.55);
  transform:translateY(-1px);
}
.btn:active{ transform:translateY(0); }
.btn .ico,.btn .wolt-mark{ transition:transform .35s ease; }
.btn:hover .ico:last-child{ transform:translateX(3px); }

.btn.ghost::before{ background:var(--paper); }
.btn.ghost:hover,.btn.ghost:focus-visible{
  background:transparent; border-color:var(--paper); color:var(--char);
  box-shadow:inset 0 0 0 3px var(--paper), inset 0 0 0 4px rgba(156,59,35,.55), 0 8px 18px -8px rgba(0,0,0,.6);
}
.btn.dark-ghost::before{ background:var(--char); }
.btn.dark-ghost:hover,.btn.dark-ghost:focus-visible{
  background:transparent; border-color:var(--char); color:var(--paper);
  box-shadow:inset 0 0 0 3px var(--char), inset 0 0 0 4px rgba(192,139,54,.7), 0 8px 18px -8px rgba(72,43,24,.5);
}
.cover-acts .btn:hover,.cover-acts .btn:focus-visible{ color:var(--char); }
.phone-big{ transition:background-color .35s ease,border-color .35s ease,color .35s ease,box-shadow .35s ease; }
.phone-big:hover,.phone-big:focus-visible{ box-shadow:inset 0 0 0 3px #fff7e9, inset 0 0 0 4px rgba(156,59,35,.5), 0 8px 18px -8px rgba(0,0,0,.6); }
@media(prefers-reduced-motion:reduce){ .btn::before{ transition:none; } .btn:hover{ transform:none; } }

/* ---- shared contact bits ---------------------------------------- */
.ct-ic{ flex:none; width:44px; height:44px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; color:var(--rust); transition:background-color .3s,color .3s,border-color .3s; }
.ct-ic .ico{ width:1.15em; height:1.15em; }
.ct-kicker{ display:block; font-family:var(--ui); font-size:.76rem; letter-spacing:.32em; text-transform:uppercase; color:var(--rust); margin-bottom:14px; }
.ct-status{ display:inline-flex; align-items:center; gap:10px; padding:7px 14px; border:1px solid var(--line); background:rgba(255,251,242,.7); font-family:var(--ui); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.ct-status i{ width:8px; height:8px; border-radius:50%; background:#c2674a; flex:none; }
.ct-status.is-open i{ background:#7f9a55; }

/* ---- contact page ----------------------------------------------- */
.ct-page{ padding-top:34px; }
.ct-grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:22px; align-items:stretch; }
.ct-panel{ position:relative; padding:clamp(26px,4vw,48px); }
.ct-dark{
  color:var(--paper);
  background-color:var(--char);
  background-image:repeating-linear-gradient(3deg,transparent 0 25px,rgba(180,118,65,.05) 26px 27px,transparent 28px 56px),radial-gradient(ellipse at 90% 0%,rgba(156,59,35,.35),transparent 60%);
  box-shadow:0 20px 50px -24px rgba(21,16,16,.8);
}
.ct-dark .ct-kicker{ color:var(--gold); }
.ct-bigphone{ display:block; font-family:var(--display); font-size:clamp(2.2rem,5.4vw,3.8rem); line-height:1.05; color:var(--paper); letter-spacing:-.01em; overflow-wrap:anywhere; transition:color .3s; }
.ct-bigphone:hover{ color:var(--gold); }
.ct-actions{ display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 30px; }
.ct-actions .btn{ gap:10px; }
.ct-lines{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(244,236,223,.16); }
.ct-lines li{ border-bottom:1px solid rgba(244,236,223,.16); }
.ct-lines a{ display:flex; align-items:center; gap:16px; padding:16px 4px; color:var(--paper); transition:padding .3s, background-color .3s; }
.ct-lines .ct-ic{ color:var(--gold); border-color:rgba(192,139,54,.55); }
.ct-lines small{ display:block; font-family:var(--ui); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(244,236,223,.55); }
.ct-lines strong{ display:block; font-family:var(--body); font-weight:500; font-size:1.05rem; overflow-wrap:anywhere; }
.ct-lines a:hover,.ct-lines a:focus-visible{ padding-left:12px; background:rgba(244,236,223,.05); }
.ct-lines a:hover .ct-ic{ background:var(--gold); border-color:var(--gold); color:var(--char); }

.ct-paper{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 50% 0%,#fbf5ea,#efe3cf 90%);
  box-shadow:inset 0 0 0 1px rgba(156,59,35,.25), inset 0 0 0 7px #f7efe2, inset 0 0 0 8px rgba(156,59,35,.35), 0 20px 50px -28px rgba(72,43,24,.5);
  text-align:center;
}
.ct-corner{ position:absolute; width:16px; height:16px; border:1.5px solid var(--rust); }
.ct-corner.tl{ top:18px; left:18px; border-right:0; border-bottom:0; } .ct-corner.tr{ top:18px; right:18px; border-left:0; border-bottom:0; }
.ct-corner.bl{ bottom:18px; left:18px; border-right:0; border-top:0; } .ct-corner.br{ bottom:18px; right:18px; border-left:0; border-top:0; }
.ct-paper .ct-status{ margin-bottom:22px; }
.ct-hours{ list-style:none; margin:0; padding:0; text-align:left; }
.ct-hours li{ display:flex; align-items:baseline; gap:10px; padding:10px 12px; font-size:1rem; }
.ct-hours li span{ font-family:var(--ui); letter-spacing:.08em; text-transform:uppercase; font-size:.86rem; color:var(--ink-soft); }
.ct-hours li i{ flex:1; border-bottom:1px dotted rgba(29,21,18,.3); transform:translateY(-4px); }
.ct-hours li b{ font-family:var(--display); font-weight:400; white-space:nowrap; }
.ct-hours li.is-closed b{ color:var(--ink-soft); font-style:italic; font-family:var(--body); }
.ct-hours li.is-today{ background:var(--rust); color:var(--paper); box-shadow:0 6px 14px -8px rgba(117,41,22,.8); }
.ct-hours li.is-today span{ color:var(--paper); }
.ct-hours li.is-today i{ border-color:rgba(244,236,223,.45); }
.ct-hours li.is-today b{ color:var(--paper); }

.ct-mapsec{ padding-top:10px; }
.ct-map{ position:relative; padding:10px; background:var(--paper-2); box-shadow:inset 0 0 0 1px rgba(104,65,35,.3), 0 14px 40px -20px rgba(72,43,24,.5); }
.ct-map iframe{ display:block; width:100%; height:clamp(320px,46vw,500px); border:0; filter:sepia(.22) saturate(.9) contrast(.98); }
.ct-map-card{
  position:absolute; left:34px; bottom:34px; max-width:min(380px,calc(100% - 68px));
  display:flex; align-items:center; gap:16px; padding:18px 22px;
  background:var(--paper); color:var(--ink); box-shadow:inset 0 0 0 4px var(--paper), inset 0 0 0 5px rgba(156,59,35,.35), 0 14px 30px -12px rgba(0,0,0,.45);
  transition:transform .3s;
}
.ct-map-card small{ display:block; font-family:var(--ui); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--rust); }
.ct-map-card strong{ display:block; font-family:var(--display); font-weight:400; font-size:1.15rem; line-height:1.25; }
.ct-map-card em{ display:block; margin-top:4px; font-size:.88rem; color:var(--ink-soft); }
.ct-map-card:hover{ transform:translateY(-3px); }
.ct-map-card:hover .ct-ic{ background:var(--rust); color:var(--paper); border-color:var(--rust); }
@media(max-width:860px){ .ct-grid{ grid-template-columns:1fr; } }
@media(max-width:560px){
  .ct-map-card{ position:relative; left:auto; bottom:auto; max-width:none; margin-top:10px; }
  .ct-hours li{ padding:9px 8px; }
}

/* ---- contact on the home page ----------------------------------- */
.ct-home-grid{ display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:16px; }
.ct-tile{
  position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  padding:28px 26px 24px; min-height:220px; color:var(--ink);
  background:rgba(255,251,242,.6); box-shadow:inset 0 0 0 1px var(--line), inset 0 0 0 6px rgba(255,251,242,.6), inset 0 0 0 7px rgba(156,59,35,.18);
  transition:transform .35s ease, box-shadow .35s ease, background-color .35s ease;
}
.ct-tile .ct-ic{ margin-bottom:10px; }
.ct-tile small{ font-family:var(--ui); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); }
.ct-tile strong{ font-family:var(--display); font-weight:400; font-size:1.3rem; line-height:1.25; overflow-wrap:anywhere; }
.ct-tile .ct-status{ margin-top:6px; font-size:.72rem; padding:5px 11px; }
.ct-link{ margin-top:auto; padding-top:14px; display:inline-flex; align-items:center; gap:8px; font-family:var(--ui); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rust); }
.ct-link .ico{ width:1em; height:1em; transition:transform .3s; }
.ct-tile:hover{ transform:translateY(-4px); background:#fbf4e7; box-shadow:inset 0 0 0 1px rgba(156,59,35,.35), inset 0 0 0 6px #fbf4e7, inset 0 0 0 7px rgba(156,59,35,.4), 0 18px 36px -20px rgba(72,43,24,.55); }
.ct-tile:hover .ct-ic{ background:var(--rust); border-color:var(--rust); color:var(--paper); }
.ct-tile:hover .ct-link .ico{ transform:translateX(4px); }
.ct-tile-call{ color:var(--paper); background-color:var(--char); background-image:radial-gradient(ellipse at 100% 0%,rgba(156,59,35,.45),transparent 65%); box-shadow:0 18px 36px -22px rgba(21,16,16,.8); }
.ct-tile-call small{ color:var(--gold); }
.ct-tile-call .ct-ic{ color:var(--gold); }
.ct-phone{ font-size:clamp(1.7rem,3.4vw,2.4rem) !important; margin-top:auto; }
.ct-more{ position:absolute; right:24px; top:28px; width:44px; height:44px; display:grid; place-items:center; color:var(--gold); transition:transform .3s; }
.ct-tile-call:hover{ background-color:#1f1714; box-shadow:0 22px 40px -20px rgba(21,16,16,.9), inset 0 0 0 6px var(--char), inset 0 0 0 7px rgba(192,139,54,.5); }
.ct-tile-call:hover .ct-ic{ background:var(--gold); border-color:var(--gold); color:var(--char); }
.ct-tile-call:hover .ct-more{ transform:translateX(4px) rotate(-45deg); }
@media(max-width:900px){ .ct-home-grid{ grid-template-columns:1fr 1fr; } .ct-tile-call{ grid-column:1/-1; min-height:0; } }
@media(max-width:560px){ .ct-home-grid{ grid-template-columns:1fr; } .ct-tile{ min-height:0; } }

/* ---- home gallery: a row of arched windows ---------------------- */
.arch-gallery{ padding-top:10px; overflow:hidden; }
.arch-gallery .index-head{ margin-bottom:28px; }
.arches{
  display:flex; justify-content:center; align-items:flex-end; gap:clamp(10px,1.6vw,20px);
  padding:0 24px 10px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x mandatory;
}
.arches::-webkit-scrollbar{ display:none; }
.arch{
  --h:320px; position:relative; flex:0 0 clamp(150px,15vw,200px); height:var(--h);
  border-radius:999px 999px 6px 6px; overflow:hidden; scroll-snap-align:center;
  background:var(--paper-2); box-shadow:0 18px 30px -18px rgba(72,43,24,.6);
  transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s;
}
.arch::after{
  content:""; position:absolute; inset:9px; border-radius:inherit; pointer-events:none;
  border:1px solid rgba(255,238,210,.65); transition:inset .5s, border-color .5s;
}
.arch::before{
  content:""; position:absolute; left:0; right:0; bottom:0; height:40%; z-index:1; pointer-events:none;
  background:linear-gradient(transparent,rgba(21,16,16,.35));
}
.arch img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .5s; filter:saturate(.95) sepia(.08); }
.arch.a0{ --h:270px; } .arch.a1{ --h:330px; } .arch.a2{ --h:380px; } .arch.a3{ --h:420px; flex-basis:clamp(170px,17vw,230px); }
.arch.a4{ --h:380px; } .arch.a5{ --h:330px; } .arch.a6{ --h:270px; }
.arch:hover{ transform:translateY(-10px); box-shadow:0 28px 40px -20px rgba(72,43,24,.7); }
.arch:hover img{ transform:scale(1.14); filter:saturate(1.1) sepia(0); }
.arch:hover::after{ inset:14px; border-color:var(--gold); }
@media(max-width:900px){
  .arches{ justify-content:flex-start; }
  .arch{ flex-basis:170px; }
  .arch.a0,.arch.a6{ --h:280px; } .arch.a1,.arch.a5{ --h:320px; } .arch.a2,.arch.a4{ --h:350px; } .arch.a3{ --h:380px; flex-basis:180px; }
}
.arches{ justify-content:center; }
.arch{ flex:1 1 0; min-width:0; max-width:200px; }
.arch.a3{ max-width:230px; flex-grow:1.15; }
.ct-paper{ display:flex; flex-direction:column; align-items:center; justify-content:center; }
.ct-paper .ct-hours{ width:100%; }
@media(max-width:900px){ .arches{ justify-content:flex-start; } .arch{ flex:0 0 170px; max-width:none; } .arch.a3{ flex-basis:180px; } }

/* ---- average preparation time on a dish, with a note on hover/focus ---- */
.prep{ position:relative; display:inline-flex; align-items:center; gap:5px; margin-top:6px; padding:2px 9px 2px 7px; border:1px dashed rgba(156,59,35,.35); border-radius:99px; font-family:var(--ui); font-size:.72rem; letter-spacing:.08em; color:var(--ink-soft); cursor:help; outline:none; }
.prep svg{ width:13px; height:13px; fill:none; stroke:var(--rust); stroke-width:1.8; stroke-linecap:round; }
.prep-tip{
  position:absolute; left:0; bottom:calc(100% + 10px); z-index:30; width:max-content; max-width:240px; padding:10px 12px;
  background:var(--char); color:var(--paper); font-family:var(--body); font-size:.82rem; letter-spacing:0; line-height:1.45; text-transform:none;
  box-shadow:inset 0 0 0 1px rgba(192,139,54,.45), 0 10px 24px -8px rgba(0,0,0,.5);
  opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .2s, transform .2s, visibility .2s; pointer-events:none;
}
.prep-tip::after{ content:""; position:absolute; left:16px; top:100%; border:6px solid transparent; border-top-color:var(--char); }
.prep:hover .prep-tip,.prep:focus .prep-tip,.prep:focus-within .prep-tip{ opacity:1; visibility:visible; transform:none; }
.prep:hover,.prep:focus{ border-color:var(--rust); color:var(--rust); }

/* ---- moving from one dish to another inside the lightbox ------------- */
.lb-rustic figure.lb-out .lb-photo img{ opacity:0; transform:scale(1.08) translateX(-3%); transition:opacity .22s ease, transform .22s ease; }
.lb-rustic figure.lb-out figcaption > *{ opacity:0; transform:translateX(-18px); transition:opacity .2s ease, transform .2s ease; }
.lb-rustic figure.lb-in .lb-photo img{ animation:lbImgIn .55s cubic-bezier(.2,.7,.2,1) both; }
.lb-rustic figure.lb-in figcaption > *{ animation:lbTxtIn .45s cubic-bezier(.2,.7,.2,1) both; }
.lb-rustic figure.lb-in figcaption > :nth-child(2){ animation-delay:.05s; }
.lb-rustic figure.lb-in figcaption > :nth-child(3){ animation-delay:.1s; }
.lb-rustic figure.lb-in figcaption > :nth-child(4){ animation-delay:.14s; }
.lb-rustic figure.lb-in figcaption > :nth-child(n+5){ animation-delay:.18s; }
@keyframes lbImgIn{ from{ opacity:0; transform:scale(1.1) translateX(3%); filter:sepia(.6); } }
@keyframes lbTxtIn{ from{ opacity:0; transform:translateX(22px); } }
@media(prefers-reduced-motion:reduce){ .lb-rustic figure.lb-out *,.lb-rustic figure.lb-in *{ animation:none!important; transition:none!important; } }

/* ---- home cover: phones ------------------------------------------------ */
.lbl-short{ display:none; }
@media(max-width:640px){
  .cover{
    grid-template-rows:auto 1fr auto; min-height:100svh;
    padding:18px 16px calc(18px + env(safe-area-inset-bottom));
  }
  .cover::after{ background:linear-gradient(180deg, rgba(21,16,16,.35) 0%, rgba(21,16,16,.25) 35%, rgba(21,16,16,.82) 72%, rgba(21,16,16,.94) 100%); }
  .cover-top .mark{ height:44px; }
  .cover-mid{ align-self:end; padding:0 0 22px; }
  .cover-mid .wordmark{ font-size:clamp(3rem,16vw,4.4rem); line-height:.95; }
  .cover-mid .since{ margin-top:14px; font-size:.68rem; letter-spacing:.24em; gap:10px; }
  .cover-mid .since .flo{ flex-basis:26px; }
  .hero-status{ margin-top:18px; padding:7px 14px; font-size:.74rem; letter-spacing:.12em; }

  .cover-bottom{ display:block; }
  .cover-acts{ display:grid !important; grid-template-columns:repeat(3,1fr); gap:8px; width:100%; }
  .phone-big{
    grid-column:1/-1; width:100% !important; justify-content:flex-start; gap:14px; padding:10px 16px 10px 10px !important;
    background:var(--rust) !important; border:0 !important; border-radius:2px; box-shadow:inset 0 0 0 3px var(--rust), inset 0 0 0 4px rgba(244,236,223,.35) !important;
  }
  .phone-big .phone-icon{ width:46px; height:46px; border:0 !important; background:rgba(21,16,16,.25) !important; color:var(--paper) !important; border-radius:50%; }
  .phone-big small{ color:rgba(244,236,223,.8) !important; font-size:.66rem; }
  .phone-big b{ color:var(--paper) !important; font-size:1.55rem; }
  .phone-big::after{ content:"→"; margin-left:auto; font-size:1.3rem; color:var(--paper); opacity:.8; }
  .cover-acts .btn{
    flex-direction:column; justify-content:center; gap:6px; width:auto !important; min-height:74px; padding:10px 6px !important;
    font-size:.7rem !important; letter-spacing:.12em; line-height:1.15; text-align:center;
    background:rgba(21,16,16,.45) !important; border:1px solid rgba(244,236,223,.3) !important; backdrop-filter:blur(4px);
  }
  .cover-acts .btn .ico{ width:1.5em; height:1.5em; }
  .cover-acts .btn.wolt .wolt-mark{ height:1.35em; }
  .cover-acts .btn span{ white-space:nowrap; }
  .lbl-long{ display:none; }
  .lbl-short{ display:inline; }
}
@media(max-width:360px){ .phone-big b{ font-size:1.3rem; } .cover-acts .btn{ min-height:66px; } }
@media(max-height:640px) and (max-width:640px){ .cover-mid .wordmark{ font-size:2.8rem; } .cover-mid{ padding-bottom:14px; } .hero-status{ margin-top:12px; } }

/* home menu on phones: one wide card per row */
@media (max-width:520px){
  .menu-grid{ flex-direction:column; gap:10px; }
  .menu-tile{ flex:0 0 auto; width:100%; }
  .menu-tile,.menu-tile:nth-child(4n+2),.menu-tile:nth-child(4n+3){ min-height:128px; padding:16px 18px; align-items:flex-end; }
  .menu-tile .shade{ background:linear-gradient(90deg,rgba(21,16,16,.85) 0%,rgba(21,16,16,.45) 55%,rgba(21,16,16,.15)); }
  .menu-tile .nm{ font-size:1.45rem; padding-right:48px; }
  .menu-tile-icon{ top:14px; left:16px; width:30px; height:30px; }
  .menu-tile .go{ display:grid; right:16px; bottom:50%; transform:translateY(50%); }
  .menu-tile.all{ min-height:84px; }
}

/* hover animations: quick */
.btn,.btn::before,.btn .ico,.btn .wolt-mark,.phone-big,.cover-acts .btn,.menu-tile,.menu-tile::before,.menu-tile img,.menu-tile .shade,.menu-tile .nm,.menu-tile-icon,.menu-tile .go,
.add-cart,.ct-tile,.ct-tile .ct-ic,.ct-link .ico,.arch,.arch img,.arch::after,.lg-opt,.lg-go,.nav nav a,.contact-ribbon > *,.ct-lines a,.ct-map-card,.cart-x,.rv-day,.rv-time,.rv-t,.cart-seg span{
  transition-duration:.12s !important;
}
.btn:hover::before,.btn:focus-visible::before{ transition-duration:.14s !important; }

/* =====================================================================
   Menu page on phones: photo-first cards, tidy price rows
   ===================================================================== */
@media (max-width:560px){
  .head h1{ font-size:clamp(2.4rem,13vw,3.4rem); }
  .cat-strip a{ padding:8px 12px !important; font-size:.72rem !important; border-radius:99px; }
  .cat-block{ margin-top:6px; }
  .cat-title h2{ font-size:1.7rem; }
  .cat-shot{ height:150px; margin-bottom:14px; border-radius:10px; }
  .dishes{ gap:12px; }
  .dish{
    display:block; padding:0 !important; overflow:hidden; border-radius:12px;
    background:rgba(255,251,241,.75) !important; box-shadow:0 1px 0 rgba(104,65,35,.08), 0 10px 24px -18px rgba(72,43,24,.5) !important;
  }
  .dish::after{ display:none; }
  .dish.no-photo{ border-left:3px solid var(--gold); }
  .dish .shot{ width:100% !important; height:auto !important; aspect-ratio:16/9; object-fit:cover; margin:0; border:0 !important; border-radius:0; display:block; }
  .dish .body{ padding:14px 14px 14px 16px; }
  .dish .top{ display:grid !important; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:4px 10px; flex-wrap:nowrap !important; }
  .dish .top .dots{ display:none; }
  .dish .nm{ font-size:1.12rem; line-height:1.25; }
  .dish .pr{ margin:0 !important; flex-direction:column; align-items:flex-end; gap:0 !important; line-height:1.1; }
  .dish .pr .eur{ margin-left:0 !important; font-size:.85em; }
  .dish .top .add-cart{ margin-left:0; width:38px; height:38px; font-size:1.3rem; }
  .dish .ds{ font-size:.95rem; margin-top:6px; }
  .dish .prep{ margin-top:8px; }
  .dish .sizes{ margin-top:10px; display:grid; gap:0; }
  .dish .size{ display:grid !important; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:7px 0; border-bottom:1px dashed rgba(29,21,18,.14); }
  .dish .size:last-child{ border-bottom:0; }
  .dish .size .add-cart{ width:34px; height:34px; margin-left:0; }
  .dish .size-price{ justify-content:flex-end; }
  .dish-pairs{ margin-top:12px; padding-top:10px; font-size:.82rem; }
  .dish-pairs .pair-links{ gap:6px; }
  .dish-pairs .pair-links a{ padding:4px 0; }
  .add-cart.pair-add{ width:26px; height:26px; }
}
@media (max-width:560px){
  .dish .pr{ display:grid !important; grid-template-columns:auto auto; column-gap:3px; align-items:baseline; justify-items:end; }
  .dish .pr .eur{ grid-column:1/-1; }
}

/* ---- extras ("extra cheese") on dishes: sits above "Pairs well with" ---- */
.dish-extras{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 8px;margin-top:12px;padding-top:9px;border-top:1px solid var(--line-soft);font-size:.78rem;line-height:1.4}
.dish-extras + .dish-pairs{margin-top:8px}
.ex-chips{display:inline-flex;flex-wrap:wrap;gap:6px;min-width:0}
.xc{display:inline-flex;align-items:baseline;gap:5px;padding:4px 10px;border:1px solid rgba(156,59,35,.3);border-radius:99px;background:rgba(255,250,242,.7);color:var(--ink);font:500 .8rem var(--body);line-height:1.3}
.xc small{font-family:var(--ui);font-size:.7rem;color:var(--ink-soft);letter-spacing:.02em}
.xw{display:inline-flex;align-items:stretch;border-radius:99px}
.xw .xc{cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.xw .xc::before{content:"+";font-family:var(--ui);font-weight:700;color:var(--rust)}
.xw .xc:hover{border-color:var(--rust)}
.xn{font-family:var(--ui);font-weight:700;font-size:.78rem}
.xm{display:none;margin-left:-1px;padding:0 10px;border:1px solid var(--rust);border-radius:0 99px 99px 0;background:var(--paper);color:var(--rust);font:700 .95rem var(--ui);cursor:pointer;line-height:1}
.xm:hover{background:var(--rust);color:var(--paper)}
.xw:not([data-n="0"]) .xc{background:var(--rust);border-color:var(--rust);color:var(--paper);border-radius:99px 0 0 99px}
.xw:not([data-n="0"]) .xc small{color:rgba(244,236,223,.85)}
.xw:not([data-n="0"]) .xc::before{color:var(--paper)}
.xw:not([data-n="0"]) .xm{display:inline-block}
.lb-extras{padding-top:16px;margin-bottom:16px;border-top:1px solid var(--line);text-align:center}
.lb-extras .pair-label{display:block;margin-bottom:10px;color:var(--rust)}
.lb-extras .ex-chips{display:flex;justify-content:center}
.lb-extras .xc{padding:7px 12px;font-size:.86rem}
/* extras on dish cards: label then all chips */
.dish-extras{display:block}
.dish-extras .ex-chips{display:flex;margin-top:8px}
.lb-extras .ex-chips{display:flex !important;flex-wrap:wrap;gap:6px}
/* photo popup: price, then one big "Add to order" button */
.lb-price{display:flex;flex-direction:column;align-items:center;gap:16px}
.lb-price .size .add-cart{display:none}
.lb-price .size{cursor:pointer;padding-left:10px;padding-right:10px;border-left:3px solid transparent;transition:background .2s,border-color .2s}
.lb-price .size.is-sel{background:rgba(156,59,35,.08);border-left-color:var(--rust)}
#lightbox .lb-add{margin:6px auto 20px !important;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:320px;height:auto;min-height:54px;margin:0;padding:12px 22px;border-radius:0;
  background:var(--rust);border:1px solid var(--rust);color:var(--paper);font:500 .95rem var(--ui);letter-spacing:.14em;text-transform:uppercase;
  box-shadow:inset 0 0 0 3px var(--rust),inset 0 0 0 4px rgba(244,236,223,.45);transform:none !important}
#lightbox .lb-add:hover,#lightbox .lb-add:focus-visible{background:var(--rust-dk,#7d2e1a);border-color:var(--rust-dk,#7d2e1a);transform:none}
.lb-add .lb-add-ic{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid rgba(244,236,223,.6);border-radius:50%;font-size:1.1rem;line-height:1}


span.tx{ display:inline !important; position:relative !important; top:-.05em !important; padding:0 !important; margin:0 !important; border:0 !important; background:none !important; box-shadow:none !important; min-height:0 !important; height:auto !important; width:auto !important; flex:none !important; transform:none !important; font:inherit !important; letter-spacing:inherit !important; color:inherit !important; }

/* home buttons: phone | wolt | menu | directions — outer pair and inner pair share a width, so the row is symmetric */
@media (min-width:641px){
  .cover-acts{ display:grid !important; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr); gap:12px; width:min(1100px,100%); margin:0 auto; }
  .cover-acts > *{ width:100% !important; box-sizing:border-box; min-width:0; margin:0 !important; justify-content:center; justify-self:stretch; }
  .cover-acts .phone-big b{ white-space:nowrap; }
  .cover-acts .btn{ min-height:70px; }
}

/* photo popup: the whole photo always fits its area (no cropping), over a blurred copy of itself */
.lb-rustic .lb-photo{ display:flex; align-items:center; justify-content:center; background:#120d0b; height:min(76dvh,740px); }
.lb-rustic .lb-photo::before{ content:""; position:absolute; inset:-30px; background:var(--lb-bg) center/cover no-repeat; filter:blur(24px) brightness(.45); }
.lb-rustic .lb-photo img{ position:relative; width:100%; height:100%; max-height:calc(100dvh - 60px); object-fit:contain; transform:none !important; transition:none; }
.lb-rustic.on .lb-photo img{ transform:none; }
@media(max-width:820px){
  .lb-rustic .lb-photo{ height:min(46dvh,420px); }
  .lb-rustic .lb-photo img{ height:100%; max-height:none; }
}
@keyframes lbImgIn{ from{ opacity:0; filter:sepia(.6); } }
.lb-rustic figure.lb-out .lb-photo img{ transform:none !important; }
/* "Pairs well with" in the popup: a small photo of each dish */
.pair-thumb{ width:34px; height:34px; border-radius:50%; object-fit:cover; flex:none; box-shadow:0 0 0 1px rgba(156,59,35,.35); }
#lightbox .pair-links a{ display:inline-flex !important; align-items:center; gap:8px; padding:4px 12px 4px 4px !important; }

.lb-rustic img.pair-thumb{ width:34px; height:34px; max-height:none; object-fit:cover; transform:none; filter:none; }
@media(min-width:821px){
  .lb-rustic figure{ height:min(82dvh,760px); }
  .lb-rustic .lb-photo{ height:100%; }
  .lb-rustic figcaption{ overflow-y:auto; }
}
@media (min-width:641px){ .cover-acts .btn,.cover-acts .phone-big{ min-width:0 !important; } }

/* photo popup: photo fills its panel edge to edge, no frame around the popup */
.lb-rustic .lb-photo img{ object-fit:cover; }
.lb-rustic .lb-photo::before{ display:none; }
.lb-rustic figure{ padding:0 !important; border:0 !important; box-shadow:0 40px 90px -20px rgba(0,0,0,.8) !important; }
@media(max-width:820px){ .lb-rustic figure{ padding:0 !important; } }
/* phone: home buttons with bigger labels, tighter boxes */
@media(max-width:640px){
  .cover-acts{ gap:6px !important; }
  .cover-acts .btn{ min-height:64px; padding:6px 4px !important; gap:4px !important; font-size:.86rem !important; letter-spacing:.06em !important; }
  .cover-acts .btn .ico{ width:1.35em; height:1.35em; }
  .cover-acts .btn.wolt .wolt-mark{ height:1.6em; }
  .phone-big{ padding:8px 14px 8px 8px !important; gap:12px !important; }
  .phone-big small{ font-size:.72rem !important; }
  .phone-big b{ font-size:1.7rem !important; }
}
