/* ============================================================
   DOM — evening landing page
   One stylesheet for both language routes (/evening, /en/evening).
   Dark "beetroot ink" ground, single amber accent (orange wine).
   ============================================================ */

:root{
  /* palette */
  --ink:      #150A10;   /* ground — beetroot black */
  --ink-2:    #241219;   /* raised surface */
  --paper:    #F2EAE2;   /* primary text — warm off-white */
  --muted:    #A88F96;   /* secondary text — dusty rose */
  --amber:    #E08A2B;   /* accent — orange wine (Uivo Curtido) */
  --herb:     #7E9166;   /* vegetarian tag only */

  --line:     rgba(242,234,226,.13);
  --line-2:   rgba(242,234,226,.28);

  /* type */
  --f-display:'Bricolage Grotesque',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --f-text:'Instrument Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  /* layout */
  --pad: clamp(1.25rem, 5vw, 3rem);
  --wrap: 64rem;

  color-scheme: dark;
}

/* ---------- fonts (self-hosted, no third-party request) ---------- */
@font-face{
  font-family:'Bricolage Grotesque';font-style:normal;font-weight:500 800;font-display:swap;
  src:url(/assets/fonts/bricolage-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Bricolage Grotesque';font-style:normal;font-weight:500 800;font-display:swap;
  src:url(/assets/fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Instrument Sans';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(/assets/fonts/instrument-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Instrument Sans';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(/assets/fonts/instrument-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,p,dl,dd,dt,ul,li,figure{margin:0;padding:0}
ul{list-style:none}
img{display:block;max-width:100%;height:auto}
a{color:inherit}

body{
  font-family:var(--f-text);
  font-size:1rem;
  line-height:1.5;
  color:var(--paper);
  background-color:var(--ink);
  /* wine stain behind the hero + fine grain over everything */
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"),
    radial-gradient(58% 30% at 6% 1%, rgba(171,26,86,.20), transparent 68%),
    radial-gradient(46% 24% at 96% 14%, rgba(224,138,43,.07), transparent 70%);
  background-repeat:repeat,no-repeat,no-repeat;
  background-size:160px 160px,auto,auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* clip, not hidden: overflow:hidden would make <body> a scroll container
     and break position:sticky on the header. */
  overflow-x:clip;
}

.wrap{width:min(100% - (var(--pad) * 2),var(--wrap));margin-inline:auto}

/* ---------- a11y ---------- */
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}
.skip{
  position:absolute;left:-9999px;top:0;z-index:99;
  background:var(--amber);color:var(--ink);padding:.75rem 1rem;font-weight:600;
}
.skip:focus{left:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- header ---------- */
.bar{
  /* Not sticky on phones: the fixed .dock already occupies screen chrome
     there, and a translucent bar over the menu reads as a smudge. */
  position:relative;z-index:20;
  background:transparent;
  border-bottom:1px solid var(--line);
}
@media (min-width:48rem){
  .bar{position:sticky;top:0;background:rgba(21,10,16,.97)}
}
.bar__in{
  display:flex;align-items:center;gap:1rem;
  min-height:56px;
}
.brand{
  font-family:var(--f-display);font-weight:700;font-size:1.25rem;
  letter-spacing:.02em;text-decoration:none;margin-right:auto;
}
.brand span{color:var(--amber)}
.lang{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase}
.lang a,.lang strong{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:2.25rem;min-height:2.25rem;text-decoration:none;font-weight:500;
}
.lang strong{color:var(--amber)}
.lang a{color:var(--muted)}
.lang a:hover{color:var(--paper)}
.lang i{font-style:normal;color:var(--line-2)}
.bar .btn--sm{display:none}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:.875rem 1.75rem;
  font-family:var(--f-display);font-weight:700;font-size:1.0625rem;
  letter-spacing:-.01em;text-decoration:none;
  background:var(--amber);color:var(--ink);
  border:1px solid var(--amber);border-radius:999px;
  transition:background .18s ease,color .18s ease;
}
.btn:hover{background:#F0A045;border-color:#F0A045}
.btn--ghost{background:transparent;color:var(--paper);border-color:var(--line-2)}
.btn--ghost:hover{background:transparent;color:var(--amber);border-color:var(--amber)}
.btn--sm{min-height:40px;padding:.5rem 1.125rem;font-size:.9375rem}

/* ---------- hero ---------- */
.hero{padding-block:clamp(1.25rem,4vw,2.5rem) clamp(2.5rem,7vw,4.5rem)}
.hero__media{
  position:relative;margin-bottom:clamp(1.5rem,4vw,2.25rem);
  aspect-ratio:16/10;border-radius:3px;overflow:hidden;
  background:linear-gradient(150deg,#2A1017 0%,#160A11 55%,#1E0E14 100%);
}
.hero__media img{width:100%;height:100%;object-fit:cover}
.kicker{
  font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--amber);font-weight:500;margin-bottom:1rem;
  display:flex;align-items:center;gap:.75rem;
}
.kicker::after{content:"";flex:1;height:1px;background:var(--line);max-width:8rem}
h1{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(2.5rem,11.5vw,5rem);
  line-height:.94;letter-spacing:-.035em;text-wrap:balance;
  margin-bottom:1.125rem;
}
.hours{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(1.0625rem,4vw,1.375rem);
  letter-spacing:-.01em;margin-bottom:1rem;
}
.hours em{font-style:normal;color:var(--amber)}
.lede{
  color:var(--muted);font-size:clamp(1rem,3.6vw,1.125rem);
  line-height:1.55;max-width:34rem;margin-bottom:1.75rem;text-wrap:pretty;
}
.lede strong{color:var(--paper);font-weight:500}
.cta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
/* On phones the fixed .dock carries the primary action, so the hero button
   would only duplicate it one thumb-length higher. Shown from 48rem up,
   where .dock is hidden. */
.cta .btn{display:none;flex:1 1 auto;min-width:14rem}
.cta__alt{display:flex;gap:1.25rem;flex-wrap:wrap;margin-top:1rem;width:100%}
.cta__alt a{
  color:var(--muted);font-size:.9375rem;text-decoration:none;
  border-bottom:1px solid var(--line-2);padding-block:.5rem .125rem;
  display:inline-flex;align-items:center;gap:.4rem;
}
.cta__alt a:hover{color:var(--amber);border-color:var(--amber)}

/* Tighten the first screen on small phones so the hero's secondary links
   clear the fixed .dock at 360x740. */
@media (max-width:26rem){
  .hero{padding-block:.75rem 2rem}
  .hero__media{aspect-ratio:16/10;margin-bottom:1.125rem}
  .kicker{margin-bottom:.75rem}
  h1{margin-bottom:.875rem}
  .hours{margin-bottom:.75rem}
  .lede{margin-bottom:1.25rem}
}

/* ---------- section frame ---------- */
.sec{padding-block:clamp(2.5rem,8vw,4.5rem);border-top:1px solid var(--line)}
.sec__num{
  font-family:var(--f-display);font-weight:600;font-size:.8125rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--amber);
  margin-bottom:.875rem;
}
h2{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(1.75rem,7vw,2.75rem);
  line-height:1;letter-spacing:-.03em;margin-bottom:.75rem;
}
.sec__note{color:var(--muted);font-size:.9375rem;max-width:36rem;margin-bottom:2rem}

/* ---------- menu ---------- */
.grp{margin-bottom:clamp(2rem,5vw,2.75rem)}
.grp:last-child{margin-bottom:0}
h3{
  font-family:var(--f-display);font-weight:600;font-size:1rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  padding-bottom:.625rem;margin-bottom:.25rem;border-bottom:1px solid var(--line-2);
}
.menu{display:grid;gap:0}
@media (min-width:56rem){
  .menu{grid-template-columns:1fr 1fr;column-gap:clamp(2rem,5vw,4rem)}
}
.item{
  display:grid;grid-template-columns:1fr auto;column-gap:1rem;
  padding-block:.9375rem;border-bottom:1px solid var(--line);
  break-inside:avoid;
}
.item__name{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(1.0625rem,4.2vw,1.1875rem);
  line-height:1.2;letter-spacing:-.015em;
}
.item__price{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(1.0625rem,4.2vw,1.1875rem);
  font-variant-numeric:tabular-nums;color:var(--amber);
  line-height:1.2;
}
.item__price::before{content:"€";font-size:.7em;margin-right:.1em;opacity:.75}
.item__desc{
  grid-column:1/-1;color:var(--muted);
  font-size:.9375rem;line-height:1.45;margin-top:.3125rem;max-width:38ch;
}
.veg{
  display:inline-block;margin-left:.5rem;vertical-align:.12em;
  font-family:var(--f-text);font-size:.6875rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--herb);border:1px solid currentColor;border-radius:2px;
  padding:.0625rem .3125rem;white-space:nowrap;
}
/* drinks: same rhythm, no descriptions */
.menu--drinks .item{padding-block:.75rem}

/* ---------- practical info ---------- */
.info{display:grid;gap:clamp(1.5rem,4vw,2.5rem)}
@media (min-width:44rem){.info{grid-template-columns:1fr 1fr}}
.info dt{
  font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.375rem;
}
.info dd{
  font-family:var(--f-display);font-weight:600;font-size:1.125rem;
  line-height:1.35;letter-spacing:-.01em;margin-bottom:1.5rem;
}
.info dd:last-child{margin-bottom:0}
.info a{color:var(--paper);text-decoration:none;border-bottom:1px solid var(--amber)}
.info a:hover{color:var(--amber)}
.info__sub{
  display:block;font-family:var(--f-text);font-weight:400;font-size:.9375rem;
  color:var(--muted);margin-top:.25rem;
}

/* ---------- booking ---------- */
.widget{
  margin-top:1.5rem;padding:clamp(1.25rem,4vw,2rem);
  background:var(--ink-2);border:1px solid var(--line);border-radius:4px;
}
.widget__fallback{display:grid;gap:1rem;justify-items:start}
.widget__fallback p{color:var(--muted);font-size:.9375rem;max-width:34rem}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);padding-block:2rem 6.5rem}
.foot__row{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;margin-bottom:1.5rem}
.foot__row a{
  color:var(--paper);text-decoration:none;font-family:var(--f-display);font-weight:600;
  border-bottom:1px solid var(--line-2);
}
.foot__row a:hover{color:var(--amber);border-color:var(--amber)}
.legal{
  color:var(--muted);font-size:.6875rem;line-height:1.5;letter-spacing:.01em;
  text-transform:uppercase;opacity:.75;
}

/* ---------- mobile sticky booking bar ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  padding:.625rem var(--pad) calc(.625rem + env(safe-area-inset-bottom));
  background:rgba(21,10,16,.96);border-top:1px solid var(--line);
  display:flex;gap:.625rem;align-items:center;
}
.dock .btn{flex:1}
.dock__call{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:52px;min-height:52px;border:1px solid var(--line-2);border-radius:999px;
  color:var(--paper);text-decoration:none;
}
.dock__call:hover{color:var(--amber);border-color:var(--amber)}
@media (min-width:48rem){
  .dock{display:none}
  .cta .btn{display:inline-flex}
  .foot{padding-bottom:2.5rem}
  .bar .btn--sm{display:inline-flex}
}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}

/* ---------- hero layout + photo strips ---------- */
.hero__media{aspect-ratio:3/2}
.hero__media img{object-position:50% 44%}
.hero__text{max-width:36rem}
@media (min-width:56rem){
  .hero__in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
  .hero__media{aspect-ratio:4/5;margin-bottom:0;order:2}
  .hero__text{order:1;max-width:none}
}
.strip{
  position:relative;overflow:hidden;border-radius:3px;background:#1E0E14;
  aspect-ratio:16/10;margin-bottom:clamp(1.75rem,4vw,2.5rem);
}
.strip img{width:100%;height:100%;object-fit:cover}
.strip--room img{object-position:50% 60%}
.strip--sharing img{object-position:50% 48%}
@media (min-width:56rem){.strip{aspect-ratio:21/9}}
