@font-face {
font-family:Titillium;
  src:url('fonts/titillium-400.ttf') format('truetype');
  font-weight:400;
  font-display:swap
}

@font-face {
font-family:Titillium;
  src:url('fonts/titillium-700.ttf') format('truetype');
  font-weight:700;
  font-display:swap
}

:root {
color-scheme:dark;
  --accent:#afd625;
  --ink:#212121;
  --surface:#292929;
  --paper:#fff;
  --muted:#bdbdbd
}

* {
box-sizing:border-box
}

html {
scroll-behavior:smooth;
  scroll-padding-top:110px
}

body {
margin:0;
  background:var(--ink);
  color:#fff;
  font:400 17px/1.65 Titillium,Arial,sans-serif
}

h1, h2, h3, p, ul, ol {
margin-top:0
}

h1, h2, h3 {
line-height:1.25
}

h2 {
font-size:2rem
}

h3 {
font-size:1.4rem
}

p {
margin-bottom:1.2rem
}

a {
color:var(--accent);
  text-decoration:none
}

a:hover {
text-decoration:underline
}

button, summary {
cursor:pointer
}

button, a, summary {
-webkit-tap-highlight-color:transparent
}

button {
font:inherit
}

img {
max-width:100%;
  height:auto;
  vertical-align:middle
}

svg {
vertical-align:middle
}

.icon-svg {
width:1.3em;
  height:1.3em;
  flex-shrink:0
}

a:focus-visible, button:focus-visible, summary:focus-visible {
outline:3px solid #789600;
  outline-offset:5px
}

.container {
width:min(1100px,calc(100% - 48px));
  margin-inline:auto
}

.visually-hidden, .skip-link:not(:focus) {
position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}

.skip-link:focus {
position:fixed;
  top:8px;
  left:8px;
  padding:12px 20px;
  background:#fff;
  color:#212121;
  z-index:200
}

.section-title {
text-align:center;
  margin:0 0 2rem;
  font-size:clamp(1.8rem,4vw,2.5rem)
}

[hidden] {
display:none!important
}

nav.header {
position:sticky;
  top:0;
  z-index:30;
  background:rgba(41,41,41,.86);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  box-shadow:0 4px 18px #0002
}

nav ul {
display:flex;
  align-items:center;
  gap:6px;
  list-style:none;
  padding:12px 20px;
  margin:0;
  min-height:90px
}

nav a {
display:flex;
  align-items:center;
  min-height:48px;
  padding:8px 16px;
  color:#fff
}

nav a:hover {
color:var(--accent);
  text-decoration:none
}

nav li.home {
margin-right:auto
}

nav li.home a {
width:140px;
  background:url('images/logo_small.svg') center/contain no-repeat
}

.menu-toggle-box {
display:none
}

.about {
padding:100px 24px 80px;
  background:url('images/about_bg.webp') center top/2600px auto no-repeat
}

.about-body {
max-width:710px;
  margin:auto;
  text-align:center
}

.about h2 {
margin-bottom:1.5rem
}

.about h3 {
margin:2rem 0 1rem
}

.about-gallery {
margin-top:35px;
  text-align:center
}

.gallery-wrapper {
display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px
}

.about-gallery .image {
width:240px;
  aspect-ratio:1;
  border:8px solid #130f0e;
  border-radius:50%;
  overflow:hidden;
  display:block
}

.about-gallery img {
width:100%;
  height:100%;
  object-fit:cover
}

.about-gallery a:hover {
outline:2px solid var(--accent)
}

.food-menu {
padding:80px 0;
  background:#1d1d1d;
  color:#212121;
  color-scheme:light
}

.nav-tabs {
display:flex;
  list-style:none;
  margin:0;
  padding:0
}

.nav-item {
flex:1;
  min-width:0
}

.nav-link {
display:flex;
  justify-content:center;
  gap:14px;
  align-items:center;
  padding:25px 10px;
  font-size:1.5rem;
  font-weight:700;
  color:#fff;
  border-radius:12px 12px 0 0
}

.nav-link.active {
background:#fff;
  color:#212121
}

.nav-link:not(.active):hover {
background:#333;
  color:#fff;
  text-decoration:none
}

.tab-content {
padding:40px;
  background:white;
  border-radius:0 0 12px 12px
}

.tab-pane:not([hidden]) {
display:block
}

.menu-box .content {
min-width:0
}

#daily-menu .row {
display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px 40px
}

#daily-menu h3 {
font-size:1.6rem;
  padding-bottom:10px;
  border-bottom:1px solid #ddd;
  margin:0 0 12px
}

#daily-menu table {
width:100%;
  border-collapse:collapse;
  font-size:1rem;
  margin-bottom:20px
}

#daily-menu td {
padding:6px 3px;
  vertical-align:top
}

#daily-menu .no {
width:22px
}

#daily-menu .prize {
min-width:66px;
  text-align:right;
  white-space:nowrap;
  font-weight:700
}

#daily-menu .soup {
font-style:italic
}

#daily-menu .info {
font-size:.9rem;
  background:#f4f4f4
}

em[title] {
font-size:.85em;
  color:#606060;
  display:inline-block;
  margin-left:4px;
  font-style:normal;
  cursor:help
}

#bill-of-fare h3 {
font-size:1.25rem;
  margin:0;
  border-top:1px solid #ddd
}

#bill-of-fare h3:first-child {
border-top:0
}

.category-toggle {
display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  width:100%;
  text-align:left;
  font-weight:700;
  color:#212121;
  background:#fff;
  border:0;
  padding:18px 0
}

.category-toggle::after {
content:'＋';
  font-size:1.3rem
}

.category-toggle[aria-expanded=true]::after {
content:'−'
}

.category-toggle:hover {
color:#526800
}

#bill-of-fare .menu {
display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 32px;
  padding:10px 0 28px
}

#bill-of-fare .main {
display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:15px;
  padding:10px 0
}

#bill-of-fare .no {
display:none
}

#bill-of-fare .prize {
font-weight:700;
  white-space:nowrap
}

.menu-source {
text-align:center;
  font-size:.9rem;
  margin:32px 0 18px
}

.food-menu a:not(.nav-link) {
color:#4f6500;
  text-decoration:underline
}

.menu-info {
background:#f5f5f5;
  padding:16px
}

.allergens {
border-top:1px solid #ddd;
  padding-top:16px
}

.allergens summary {
font-weight:700;
  min-height:44px;
  padding:8px
}

.allergens[open] summary {
margin-bottom:15px
}

.allergens li {
padding:3px 0
}

.allergens p {
margin-top:15px
}

.icons {
padding:80px 0
}

.icons .row {
display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:25px;
  max-width:800px;
  margin:auto
}

.icons .col-sm-2:empty {
display:none
}

.icon {
text-align:center
}

.icon>div {
border:3px solid var(--accent);
  width:85px;
  height:85px;
  border-radius:50%;
  display:grid;
  place-items:center;
  margin:0 auto 15px
}

.icon-svg {
width:1.25em;
  height:1.25em
}

.icon .icon-svg {
width:32px;
  height:32px
}

.gallery {
padding-bottom:25px
}

.card-columns {
columns:3;
  column-gap:18px
}

.card {
display:block;
  margin:0 0 18px;
  break-inside:avoid;
  border-radius:5px;
  overflow:hidden
}

.card img {
width:100%
}

.card:hover {
outline:2px solid var(--accent)
}

.services {
padding:70px 0 0
}

.services>.main {
text-align:center;
  font-size:2.5rem;
  margin-bottom:35px
}

.service-box>.row {
display:grid;
  grid-template-columns:1fr 1fr
}

.service-box .image {
order:2;
  display:grid;
  place-items:center;
  min-height:330px;
  background:url('images/interier10-10.webp') center/cover
}

.service-box h3 {
background:#212121e8;
  color:#fff;
  padding:16px 24px;
  font-weight:400;
  margin:0
}

.service-box .description {
padding:25px;
  background:#1c1c1c;
  display:flex;
  align-items:center
}

.description-in {
padding:30px;
  border:1px solid #383838
}

.description p:last-child {
margin:0
}

.contact {
padding:90px 0 60px
}

.contact .row {
display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px
}

.contact h3 {
font-size:1.5rem;
  margin-bottom:16px
}

.contact table {
border-collapse:collapse;
  width:100%
}

.contact th {
text-align:left;
  font-weight:400
}

.text-right {
text-align:right
}

.contact td[colspan] {
font-size:.9rem;
  padding-top:12px
}

.contact a {
overflow-wrap:anywhere
}

.contact .cards {
width:180px;
  margin:0 0 20px;
  display:block
}

.contact .menicka {
width:140px;
  margin-bottom:18px
}

.contact .foodora {
display:block;
  width:120px;
  margin-bottom:18px
}

.contact .wolt {
width:72px
}

#iframe-map {
height:400px;
  background:#292929
}

#iframe-map iframe {
width:100%;
  height:100%;
  border:0;
  display:block
}

footer {
text-align:center;
  padding:28px 20px;
  color:#bdbdbd
}

footer a {
color:#bdbdbd;
  margin-inline:12px
}

.lightbox {
padding:0;
  border:1px solid #555;
  border-radius:8px;
  background:#161616;
  color:white;
  max-width:95vw;
  max-height:95dvh
}

.lightbox::backdrop {
background:#000d
}

.lightbox img {
display:block;
  max-width:90vw;
  max-height:78dvh;
  width:auto;
  height:auto;
  margin:auto
}

.lightbox-controls {
display:flex;
  justify-content:space-between;
  padding:8px;
  gap:10px
}

.lightbox button {
background:#333;
  color:white;
  border:1px solid #777;
  border-radius:4px;
  min-width:48px;
  min-height:44px;
  padding:6px 14px
}

.lightbox button:hover {
background:#494949
}

@media(max-width:1050px) {
nav a {
padding:8px 10px;
    font-size:.95rem
}

nav li.home a {
width:105px
}

.contact .row {
grid-template-columns:repeat(2,minmax(0,1fr));
    gap:40px
}
}

@media(max-width:767px) {
html {
scroll-padding-top:75px
}

body {
font-size:16px
}

.container {
width:calc(100% - 32px)
}

.menu-toggle-box {
display:none
}

.js .menu-toggle-box {
display:block;
    position:fixed;
    right:14px;
    top:14px;
    z-index:60
}

#menu-toggle {
display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:48px;
    height:48px;
    border:1px solid #777;
    border-radius:8px;
    background:#292929;
    color:#fff;
    padding:12px
}

#menu-toggle span {
display:block;
    height:2px;
    width:22px;
    background:currentColor
}

#menu-toggle.open span:nth-child(1) {
transform:translateY(7px) rotate(45deg)
}

#menu-toggle.open span:nth-child(2) {
opacity:0
}

#menu-toggle.open span:nth-child(3) {
transform:translateY(-7px) rotate(-45deg)
}

nav.header {
position:static
}

nav ul {
flex-wrap:wrap;
    padding:12px;
    gap:0
}

nav li {
width:50%
}

nav li.home {
display:none
}

nav a {
justify-content:center;
    font-size:1rem;
    min-height:48px
}

.js nav.header {
display:none;
    position:fixed;
    inset:74px 14px auto;
    border:1px solid #555;
    border-radius:10px;
    max-height:calc(100dvh - 90px);
    overflow:auto
}

.js nav.header.set {
display:block
}

.js nav ul {
display:block;
    padding:10px
}

.js nav li {
width:100%
}

.js nav a {
min-height:54px
}

.about {
padding:65px 20px 50px;
    background-size:auto 700px
}

.about-body {
text-align:left
}

.about h2 {
text-align:center
}

.gallery-wrapper {
gap:12px
}

.about-gallery .image {
width:calc((100% - 24px)/3);
    border-width:3px;
    max-width:180px
}

.food-menu {
padding:45px 0
}

.nav-link {
font-size:1.1rem;
    gap:8px;
    padding:18px 8px
}

.tab-content {
padding:22px 16px
}

#daily-menu .row {
grid-template-columns:1fr;
    gap:24px
}

#daily-menu h3 {
font-size:1.4rem
}

#daily-menu td {
padding:7px 3px
}

#bill-of-fare .menu {
grid-template-columns:1fr;
    gap:0
}

#bill-of-fare .main {
padding:12px 0
}

.category-toggle {
min-height:58px;
    font-size:1.15rem
}

.icons {
padding:50px 0
}

.icons .row {
grid-template-columns:repeat(2,1fr);
    gap:30px 12px
}

.icon>div {
width:70px;
    height:70px
}

.card-columns {
columns:2;
    column-gap:12px
}

.card {
margin-bottom:12px
}

.services {
padding-top:45px
}

.services>.main {
font-size:2rem
}

.service-box>.row {
grid-template-columns:1fr
}

.service-box .image {
order:0;
    min-height:250px
}

.service-box .description {
padding:16px
}

.description-in {
padding:20px
}

.contact {
padding:60px 0 35px
}

.contact .row {
gap:30px 20px
}

.contact h3 {
font-size:1.3rem
}

.contact .row>div {
min-width:0
}

.contact .cards {
width:140px
}

.contact .menicka {
width:120px
}

#iframe-map {
height:320px
}

footer a {
display:block;
    margin-top:12px
}
}

@media(max-width:420px) {
.contact .row {
grid-template-columns:1fr
}

.contact table {
max-width:300px
}

.contact .row>div:last-child {
display:flex;
    flex-wrap:wrap;
    gap:16px;
    align-items:center
}

.contact .row>div:last-child br {
display:none
}

.contact .cards {
width:110px;
    margin:0
}

.contact .menicka, .contact .foodora {
width:100px;
    margin:0
}

.contact .wolt {
width:55px
}

.allergens ol {
padding-left:25px
}
}

@media(prefers-reduced-motion:reduce) {
html {
scroll-behavior:auto
}

*, *::before, *::after {
transition:none!important;
    animation:none!important
}
}

.contact address {
font-style: normal;
  margin-bottom: 1.2rem;
}

.eyebrow {
margin: 0 0 18px; color: #afd625; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}

.service-box {
overflow: hidden; border-radius: 18px;
}

.service-box .description {
align-items: stretch; padding: 24px;
}

.service-box .description-in {
display: flex; align-items: center; width: 100%; height: 100%; min-height: 100%; padding: 35px; border-color: #41453b; border-radius: 8px;
}

.service-box .image h3 {
border: 1px solid #ffffff4a; border-radius: 40px; backdrop-filter: blur(8px); background: #172019bb;
}

.contact {
background: #171a16; margin-top: 90px; padding: 85px 0 35px; border-top: 1px solid #ffffff12;
}

.contact-shell {
width: min(1100px, calc(100% - 64px));
}

.contact-intro {
display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; padding-bottom: 40px; border-bottom: 1px solid #ffffff26;
}

.contact-intro .eyebrow {
margin-bottom: 12px;
}

.contact-intro h2 {
font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.03em; margin: 0;
}

.contact-book {
display: inline-flex; gap: 28px; align-items: center; white-space: nowrap; background: #afd625; border: 1px solid #afd625; color: #1b2400; border-radius: 40px; padding: 13px 23px; font-weight: 700;
}

.contact-book:hover {
background: #c7ed42; text-decoration: none;
}

.contact-grid {
display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 48px; padding: 45px 0;
}

.contact-grid h3 {
font-size: 1rem; color: #d1d6cb; font-weight: 400; margin: 0 0 18px;
}

.contact-reservations > a {
display: block; width: fit-content; color: #f3f5ef; line-height: 1.5;
}

.contact-reservations .primary-phone {
font-size: clamp(1.8rem, 3vw, 2.3rem); font-weight: 700; letter-spacing: -.02em; white-space: nowrap;
}

.contact-reservations p {
font-size: .85rem; color: #aeb5a5; margin: 6px 0 20px;
}

.contact-reservations .secondary-phone {
margin-bottom: 3px;
}

.contact-address address {
font-size: 1.2rem; line-height: 1.6;
}

.contact-address address span {
font-size: 1rem; color: #aeb5a5;
}

.directions-link {
font-size: .9rem;
}

.contact-hours table {
width: 100%; font-size: 1rem;
}

.contact-hours table td {
text-align: right; white-space: nowrap; padding-bottom: 6px;
}

.contact-hours table th {
color: #c9d0c0;
}

.contact-hours .hours-note {
font-size: .82rem; color: #aeb5a5; line-height: 1.55; margin: 13px 0 0; max-width: 240px;
}

.delivery-row {
display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; border-top: 1px solid #ffffff26;
}

.delivery-row .eyebrow {
font-size: .7rem;
}

.delivery-row p {
font-size: .9rem; margin: 6px 0 0; color: #aeb5a5;
}

.delivery-links {
display: flex; gap: 10px; flex-wrap: wrap;
}

.delivery-links a {
border: 1px solid #626b57; border-radius: 30px; color: #edf1e6; padding: 9px 16px; font-size: .9rem; background: #242a20;
}

.delivery-links a span {
margin-left: 18px; color: #afd625;
}

.delivery-links a:hover {
background: #35402a; text-decoration: none;
}

.contact #iframe-map {
height: 280px; border-radius: 16px; overflow: hidden; border: 1px solid #ffffff26; margin-top: 10px;
}

.site-footer {
padding: 30px 0 40px; background: #171a16; text-align: left;
}

.footer-inner {
display: flex; justify-content: space-between; align-items: center; gap: 30px; width: min(1100px, calc(100% - 64px));
}

.site-footer .footer-brand {
display: block; margin: 0; font-size: 1.8rem; line-height: 1; font-weight: 700; color: #f1f5eb; letter-spacing: -.04em;
}

.footer-brand > span {
color: #afd625;
}

.footer-brand small {
display: block; font-size: .7rem; font-weight: 400; letter-spacing: .08em; color: #aeb5a5; margin-top: 10px;
}

.footer-friends {
display: flex; flex-wrap: wrap; align-items: center; gap: 10px 25px; font-size: .85rem;
}

.footer-friends > span {
color: #aeb5a5;
}

.site-footer .footer-friends a {
margin: 0; color: #f1f5eb;
}

.site-footer .back-to-top {
width: 46px; height: 46px; margin: 0; border: 1px solid #626b57; background: #242a20; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 1.3rem; flex-shrink: 0;
}

.lightbox {
inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; border: 0; border-radius: 0; padding: 0; background: #11150ff5; color: #fff; overflow: hidden;
}

.lightbox[open] {
display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
}

.lightbox::backdrop {
background: #080c08eb; backdrop-filter: blur(16px);
}

.lightbox-top {
display: flex; align-items: center; justify-content: space-between; padding: 20px 28px; gap: 20px;
}

.lightbox-title {
display: flex; align-items: center; gap: 15px; font-size: .85rem; color: #c7cfc0;
}

.lightbox-title strong {
font-size: 1.2rem; color: #fff; letter-spacing: -.04em;
}

.lightbox .viewer-counter {
font-size: .85rem; color: #c7cfc0; font-variant-numeric: tabular-nums; margin-left: auto;
}

.lightbox button {
display: grid; place-items: center; width: 46px; height: 46px; min-width: 46px; min-height: 46px; padding: 0; border: 1px solid #ffffff45; border-radius: 50%; background: #30382b; color: #fff;
}

.lightbox button:hover {
border-color: #afd625; background: #404d34;
}

.lightbox button svg {
width: 20px; height: 20px;
}

.lightbox-stage {
position: relative; display: grid; place-items: center; min-height: 0; padding: 10px 90px; touch-action: pan-y pinch-zoom;
}

.lightbox .lightbox-image {
max-width: 100%; max-height: 100%; width: auto; height: auto; min-height: 0; border-radius: 8px; box-shadow: 0 18px 80px #0007; object-fit: contain; transition: opacity .15s;
}

.lightbox.is-loading .lightbox-image {
opacity: .4;
}

.lightbox .viewer-prev, .lightbox .viewer-next {
position: absolute; top: 50%; transform: translateY(-50%);
}

.lightbox .viewer-prev {
left: 24px;
}

.lightbox .viewer-next {
right: 24px;
}

.lightbox-bottom {
text-align: center; padding: 20px 24px 24px;
}

.lightbox-caption {
margin: 0 0 14px; color: #d1d8ca; font-size: .9rem;
}

.lightbox-thumbnails {
display: flex; justify-content: center; gap: 8px; overflow-x: auto; padding: 4px;
}

.lightbox .viewer-thumbnail {
width: 58px; height: 48px; min-width: 58px; border: 2px solid transparent; border-radius: 8px; background: #30382b; overflow: hidden; opacity: .55;
}

.lightbox .viewer-thumbnail[aria-current=true] {
border-color: #afd625; opacity: 1;
}

.lightbox .viewer-thumbnail img {
display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; border-radius: 4px;
}

body.viewer-open {
overflow: hidden;
}

@media (max-width: 1000px) {
.contact-grid {
grid-template-columns: 1fr 1fr; gap: 35px;
}

.contact-hours {
grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0 35px;
}

.contact-hours h3 {
grid-column: 1 / -1;
}

.delivery-row {
align-items: flex-start; flex-direction: column; gap: 18px;
}
}

@media (max-width: 767px) {
.service-box .description {
padding: 16px;
}

.service-box .description-in {
padding: 25px; min-height: 210px;
}

.contact {
margin-top: 55px; padding-top: 55px;
}

.contact-shell, .footer-inner {
width: calc(100% - 40px);
}

.contact-intro {
display: block; padding-bottom: 28px;
}

.contact-intro h2 {
font-size: 2.1rem;
}

.contact-book {
margin-top: 24px;
}

.contact-grid {
grid-template-columns: 1fr; padding: 32px 0; gap: 35px;
}

.contact-grid h3 {
margin-bottom: 12px;
}

.contact-reservations .primary-phone {
font-size: 2.3rem;
}

.contact-hours {
display: block; grid-column: auto;
}

.contact-hours .hours-note {
max-width: none;
}

.contact-hours table {
max-width: none;
}

.delivery-row {
padding-block: 25px;
}

.delivery-links {
gap: 8px;
}

.delivery-links a {
padding: 9px 13px; font-size: .85rem;
}

.delivery-links a span {
margin-left: 9px;
}

.contact #iframe-map {
height: 240px;
}

.site-footer {
padding-top: 15px;
}

.footer-inner {
display: grid; grid-template-columns: 1fr auto; gap: 28px;
}

.footer-friends {
grid-row: 2; grid-column: 1 / -1; display: grid; gap: 12px;
}

.site-footer .footer-friends a {
margin: 0;
}

.site-footer .back-to-top {
grid-column: 2; grid-row: 1;
}

.lightbox-top {
padding: 16px; gap: 14px;
}

.lightbox-title {
display: block; line-height: 1.4;
}

.lightbox-title strong {
display: block;
}

.lightbox-stage {
padding: 0 14px 65px;
}

.lightbox .viewer-prev, .lightbox .viewer-next {
top: auto; bottom: 0; transform: none;
}

.lightbox .viewer-prev {
left: calc(50% - 54px);
}

.lightbox .viewer-next {
right: calc(50% - 54px);
}

.lightbox-bottom {
padding: 16px 10px 20px;
}

.lightbox-thumbnails {
justify-content: flex-start; max-width: max-content; margin: auto;
}

.lightbox .viewer-thumbnail {
min-width: 44px; width: 44px; height: 42px; min-height: 42px;
}
}

.lightbox {
grid-template-columns: minmax(0, 1fr);
}

.lightbox > * {
min-width: 0;
}

.lightbox-stage {
grid-template-columns: minmax(0, 1fr);
}

.lightbox-thumbnails {
width: max-content; max-width: 100%;
}

.lightbox.is-loading .lightbox-stage::after {
content: ''; position: absolute; width: 28px; height: 28px; border: 2px solid #ffffff33; border-top-color: #afd625; border-radius: 50%; animation: viewer-loading .8s linear infinite; pointer-events: none;
}

@keyframes viewer-loading {
to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
.lightbox .lightbox-image {
transition: none;
}

.lightbox.is-loading .lightbox-stage::after {
animation: none;
}
}

.lightbox-thumbnails {
scrollbar-width: thin; scrollbar-color: #64734f transparent;
}

.lightbox-thumbnails::-webkit-scrollbar {
height: 4px;
}

.lightbox-thumbnails::-webkit-scrollbar-thumb {
background: #64734f; border-radius: 4px;
}

.lightbox-thumbnails::-webkit-scrollbar-track {
background: transparent;
}

.contact-intro {
padding-bottom: 30px;
}

.contact-reservations .primary-phone, .contact-reservations .secondary-phone {
font-size: clamp(1.25rem, 2.3vw, 1.8rem); font-weight: 700; letter-spacing: -.02em; margin: 0 0 8px; white-space: nowrap;
}

.contact-reservations a[href^="mailto:"] {
margin-top: 20px; font-size: 1rem; font-weight: 400;
}

.partner-row {
display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid #ffffff26; padding: 25px 0;
}

.payment-cards {
width: 150px; height: auto; flex-shrink: 0;
}

.partner-logos {
display: flex; align-items: center; justify-content: flex-end; gap: 32px;
}

.partner-logos a {
display: grid; place-items: center; min-height: 60px; border-radius: 6px;
}

.partner-logos a:hover {
outline: 1px solid #afd625; outline-offset: 8px;
}

.partner-menicka {
width: 140px;
}

.partner-foodora {
width: 120px;
}

.partner-wolt {
width: 64px;
}

.site-footer .footer-brand {
width: 150px;
}

.site-footer .footer-brand img {
display: block; width: 100%; height: auto;
}

@media (max-width: 1000px) {
.partner-logos {
gap: 24px;
}

.partner-menicka {
width: 120px;
}

.partner-foodora {
width: 110px;
}
}

@media (max-width: 767px) {
.contact-reservations .primary-phone, .contact-reservations .secondary-phone {
font-size: 1.7rem;
}

.partner-row {
flex-direction: column; align-items: flex-start; gap: 18px;
}

.payment-cards {
width: 140px;
}

.partner-logos {
justify-content: flex-start; gap: 20px; flex-wrap: wrap; width: 100%;
}

.partner-menicka {
width: 112px;
}

.partner-foodora {
width: 100px;
}

.partner-wolt {
width: 52px;
}
}

@media (max-width: 360px) {
.partner-logos {
gap: 16px;
}

.partner-menicka {
width: 100px;
}

.partner-foodora {
width: 94px;
}

.partner-wolt {
width: 48px;
}
}

@media (max-width: 767px) {
.partner-logos {
display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 48px; gap: 16px;
}

.partner-logos a {
min-width: 0;
}
}

/* Hero: one central brand, one action, supporting details on a shared baseline. */
.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  height: calc(100svh - 90px);
  min-height: 650px;
  max-height: 900px;
  color: #fff;
  background: #161b17 url('images/interier10-01.webp') 58% 52% / cover no-repeat;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, #0c130f55 0%, #0c130f44 32%, #0c130f77 72%, #0c130fee 100%);
}
.hero-top, .hero-info {
  width: min(1160px, calc(100% - 96px));
  margin-inline: auto;
  flex-shrink: 0;
}
.hero-top {
  padding-block: 28px 0;
  text-align: center;
}
.hero-location {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding-inline: 10px;
  color: #f3f3eb;
  font-size: .85rem;
  letter-spacing: .035em;
}
.hero-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 36px 24px 50px;
}
.hero-logo {
  margin: 0 0 34px;
  line-height: 1;
}
.hero-logo .logo {
  display: block;
  width: clamp(255px, 23vw, 325px);
  height: auto;
  filter: drop-shadow(0 6px 20px #0003);
}
.hero .food-menu-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  min-height: 50px;
  padding: 12px 23px;
  border: 1px solid #afd625;
  border-radius: 8px;
  background: #afd625;
  color: #1a2400;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.4;
  transition: background .15s, border-color .15s;
}
.hero .food-menu-link svg {
  width: 17px;
  height: 17px;
}
.hero .food-menu-link:hover {
  border-color: #c8e953;
  background: #c8e953;
  text-decoration: none;
}
.hero-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 24px 0 28px;
  border-top: 1px solid #ffffff36;
}
.hero-reservation-label {
  margin: 0 0 7px;
  font-size: .68rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #c6cec2;
}
.hero-phones {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 26px;
}
.hero-phones a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  color: #fff;
  font-size: 1.15rem;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: .015em;
  white-space: nowrap;
  text-underline-offset: 6px;
}
.hero-phones a + a {
  padding-left: 26px;
  border-left: 1px solid #ffffff40;
}
.hero-delivery {
  display: flex;
  align-items: center;
  gap: 18px;
}
.hero-delivery a {
  display: grid;
  align-items: center;
  min-height: 44px;
  border-radius: 5px;
}
.hero-delivery a:first-child {
  padding: 5px 8px;
  background: #fff;
}
.hero-delivery a:first-child img { width: 82px; }
.hero-delivery a:last-child img { width: 42px; }
@media (max-width: 767px) {
  .hero {
    height: 94svh;
    min-height: 650px;
    max-height: 850px;
    background-position: 44% center;
  }
  .hero::before {
    background: linear-gradient(180deg, #0c130f88, #0c130f55 38%, #0c130f99 70%, #0c130ff5);
  }
  .hero-top, .hero-info { width: calc(100% - 40px); }
  .hero-top { padding-top: 25px; text-align: left; }
  .hero-location { padding: 0; font-size: .75rem; max-width: calc(100% - 48px); }
  .hero-content { padding: 32px 20px 35px; }
  .hero-logo { margin-bottom: 28px; }
  .hero-logo .logo { width: clamp(220px, 62vw, 260px); }
  .hero .food-menu-link { min-height: 48px; padding: 11px 21px; font-size: .9rem; }
  .hero-info { flex-direction: column; gap: 17px; padding: 20px 0 22px; }
  .hero-reservations { width: 100%; text-align: center; }
  .hero-reservation-label { margin-bottom: 6px; font-size: .65rem; }
  .hero-phones { justify-content: center; gap: 0 14px; }
  .hero-phones a { font-size: .95rem; min-height: 40px; letter-spacing: 0; }
  .hero-phones a + a { padding-left: 14px; }
  .hero-delivery { gap: 16px; }
  .hero-delivery a { min-height: 38px; }
  .hero-delivery a:first-child img { width: 72px; }
  .hero-delivery a:last-child img { width: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero .food-menu-link { transition: none; }
}
@media (max-width: 360px) {
  .hero-phones { flex-direction: column; }
  .hero-phones a + a { padding-left: 0; border-left: 0; }
}
.hero-location {
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid #ffffff40;
  border-radius: 6px;
  background: #121a14e6;
  color: #fff;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .015em;
}
.hero-location:hover { background: #253023; text-decoration: none; }
@media (max-width: 767px) {
  .hero-location { font-size: .82rem; padding: 8px 11px; max-width: calc(100% - 46px); }
}
/* Reuse the original payment artwork as five crops on one baseline. */
.payment-methods { --payment-scale: .65; display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; flex-shrink: 0; }
.payment-methods span { display: block; flex-shrink: 0; width: calc(var(--w) * var(--payment-scale) * 1px); height: calc(var(--h) * var(--payment-scale) * 1px); background: url('images/cards.webp') no-repeat; background-size: calc(262px * var(--payment-scale)) calc(158px * var(--payment-scale)); background-position: calc(var(--x) * var(--payment-scale) * -1px) calc(var(--y) * var(--payment-scale) * -1px); }
@media (max-width: 767px) { .payment-methods { --payment-scale: .5; gap: 8px; } }
@media (min-width: 768px) and (max-width: 1000px) { .payment-methods { --payment-scale: .55; } }
.hero .hero-logo { margin-bottom: 20px; }
.hero-content > .hero-location { margin-bottom: 28px; max-width: 100%; }
@media (max-width: 767px) {
  .hero .hero-logo { margin-bottom: 18px; }
  .hero-content > .hero-location { margin-bottom: 24px; }
}
.hero-content > .hero-location {
  gap: 9px;
  min-height: 36px;
  margin-bottom: 32px;
  padding: 5px 4px;
  border: 0;
  border-radius: 0;
  background: none;
  color: #fff;
  font-size: .95rem;
  font-weight: 400;
  letter-spacing: .035em;
  text-shadow: 0 1px 6px #000, 0 1px 18px #0008;
}
.hero-content > .hero-location:hover { background: none; text-decoration: underline; text-underline-offset: 5px; }
.hero-location svg { width: 17px; height: 20px; flex-shrink: 0; color: #c5df70; filter: drop-shadow(0 1px 3px #000); }
.hero-location .address-divider { margin-inline: 5px; color: #c5df70; }
@media (max-width: 767px) { .hero-content > .hero-location { font-size: .85rem; letter-spacing: .02em; margin-bottom: 28px; } }
.hero-content > .hero-location { font-size: 1.15rem; }
.hero-location svg { width: 20px; height: 23px; }
@media (max-width: 767px) { .hero-content > .hero-location { font-size: 1rem; } }
/* Shared section rhythm; the benefits and gallery form one visual sequence. */
:root { --section-space: 72px; --section-title-space: 32px; }
.about { padding-block: var(--section-space); }
.food-menu { padding-block: var(--section-space); }
.icons { padding-block: 48px; }
.gallery { padding-bottom: var(--section-space); }
.services { padding-top: 0; }
.services > .main, .section-title { margin-bottom: var(--section-title-space); }
.contact { margin-top: var(--section-space); padding-top: var(--section-space); }
@media (max-width: 767px) {
  :root { --section-space: 40px; --section-title-space: 24px; }
  .icons { padding-block: 32px; }
  .about-gallery { margin-top: 24px; }
  }
#food-menu:focus { outline: none; }

#daily-menu .today-label { float: right; margin: 3px 0 0 12px; padding: 3px 9px; border-radius: 4px; background: #000; color: #fff; font-size: .85rem; line-height: 1.5; font-weight: 700; }
.nav-link .original-icon { height: 1.5em; width: auto; max-width: 1.9em; }
.icon .original-icon { height: 32px; width: auto; max-width: 46px; }
.lightbox .lightbox-title { display: flex; align-items: center; gap: 14px; }
.lightbox .lightbox-logo { display: block; width: 68px; height: auto; max-height: none; margin: 0; }
@media (max-width: 767px) {
  .lightbox .lightbox-logo { width: 52px; }
  .lightbox-title > span { font-size: .75rem; max-width: 80px; }
}
/* Restore the original bill-of-fare layout and category transitions. */
#bill-of-fare h3 { margin: 0; border-top: 1px solid #eaeaea; font-size: 1.3em; }
#bill-of-fare h3:first-of-type { border-top: 0; }
#bill-of-fare .category-toggle { position: relative; display: block; min-height: 0; padding: 12px 48px 10px 1rem; color: #212121; font-size: inherit; line-height: 1.25; transition: padding 300ms ease-in-out, font-size 300ms ease-in-out; }
#bill-of-fare .category-toggle::after { content: none; }
#bill-of-fare .category-toggle:hover { padding-left: 1.5rem; color: #212121; }
#bill-of-fare .category-toggle[aria-expanded=true] { padding-top: 2rem; padding-left: 2rem; font-size: 2rem; }
#bill-of-fare .category-chevron { position: absolute; right: 19px; top: 13px; width: 16px; height: 16px; transition: transform 300ms ease; }
#bill-of-fare .category-toggle[aria-expanded=true] .category-chevron { transform: rotate(180deg); }
#bill-of-fare .menu { display: table; width: 100%; padding-top: 1em; padding-bottom: 2em; }
#bill-of-fare .main { position: relative; display: inline-block; width: 46%; margin: 0 1.5%; padding: 1rem 1.5rem; vertical-align: top; }
#bill-of-fare .food { width: calc(100% - 70px); font-size: 1em; font-weight: 400; }
#bill-of-fare .prize { position: absolute; top: 1rem; right: 0; width: 4.5em; text-align: right; font-weight: 700; }
#bill-of-fare em { color: #777; }
@media (max-width: 767px) {
  #bill-of-fare .category-toggle, #bill-of-fare .category-toggle:hover, #bill-of-fare .category-toggle[aria-expanded=true] { padding-left: 0; }
  #bill-of-fare .main { display: block; width: 100%; margin: 0; padding-left: 0; padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #bill-of-fare .category-toggle, #bill-of-fare .category-chevron { transition: none; }
}
#bill-of-fare .menu-note { margin: 20px 0 0; padding: 18px 16px 0; border-top: 1px solid #eaeaea; color: #606060; font-size: .9rem; line-height: 1.6; font-weight: 400; }
@media (max-width: 767px) { #bill-of-fare .menu-note { padding-inline: 0; } }
.food-menu .nav-link:not(.active) { background: #333; color: #fff; }
.food-menu .nav-link:not(.active):hover { background: #3c3c3c; }

/* Keep outside-click dismissal behind the original mobile menu. */
.navigation-backdrop { display: none; }
@media (max-width: 767px) {
  .navigation-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 25; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; }
}

/* An editorial layout for the restaurant's original story and photographs. */
.about { position: relative; isolation: isolate; padding-inline: 0; background: #212121; }
.about::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url('images/about_bg.webp') center top / 2600px auto no-repeat; opacity: .09; }
@media (max-width: 767px) { .about::before { background-size: auto 700px; opacity: .07; } }
.about-layout { display: grid; gap: clamp(48px, 7vw, 100px); }
.about-intro, .about-chapter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 5vw, 80px); }
.about .about-copy { min-width: 0; text-align: left; }
.about .about-copy p { margin: 0 0 1.2em; color: #c9c9c9; line-height: 1.8; }
.about .about-copy p:last-child { margin-bottom: 0; }
.about .about-copy h2 { margin: 0 0 28px; text-align: left; font-size: clamp(2.2rem, 3.6vw, 3.5rem); line-height: 1.12; letter-spacing: -.025em; }
.about .about-intro .about-copy > p:first-of-type { color: #f3f3f3; font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.65; }
.about .about-copy h3 { margin: 0 0 24px; font-size: clamp(1.65rem, 2.4vw, 2.2rem); line-height: 1.2; }
.about .about-copy h3::before { content: ''; display: block; width: 40px; height: 3px; margin-bottom: 22px; background: var(--accent); }
.about-photo { display: block; min-width: 0; overflow: hidden; border-radius: 14px; background: #222; }
.about-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.about-photo:hover img { transform: scale(1.025); }
.about-photo:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.about-intro .about-photo { aspect-ratio: 4 / 3; }
.about-architecture { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.about-architecture .about-photo { aspect-ratio: 330 / 480; max-width: 400px; width: 100%; justify-self: center; }
.about-art { padding-top: clamp(32px, 4vw, 56px); border-top: 1px solid #ffffff18; }
.about-art .about-photo { aspect-ratio: 4 / 3; }
@media (max-width: 767px) {
  .about-layout { gap: 44px; }
  .about-intro, .about-chapter { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .about .about-copy h2 { margin-bottom: 22px; }
  .about .about-copy p { line-height: 1.75; }
  .about-architecture .about-photo { grid-row: 2; aspect-ratio: 4 / 3; max-width: none; }
  .about-architecture .about-photo img { object-position: center 55%; }
  .about-art { padding-top: 36px; }
}
@media (prefers-reduced-motion: reduce) { .about-photo img { transition: none; } }

.hero.hero-parallax { overflow: clip; background-image: none; }
.hero.hero-parallax::after { content: ''; position: absolute; inset: -80px 0; z-index: -2; pointer-events: none; background: url('images/interier10-01.webp') 58% 52% / cover no-repeat; transform: translate3d(0, var(--hero-parallax-y, 0px), 0); }
@media (max-width: 767px) { .hero.hero-parallax::after { background-position: 44% center; } }
@media (prefers-reduced-motion: reduce) { .hero.hero-parallax::after { transform: none; } }
