/*
Theme Name: Tamada Restaurant 2026 Multidioma
Theme URI: https://tamadarestaurant.es/
Author: Tamada Restaurant
Description: Custom WordPress theme for Tamada Restaurant in Platja d'Aro. Caucasian cuisine, grill, wine, art, music, reservations and contact pages.
Version: 2.0.15
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tamada-restaurant
*/
:root {
  --bg: #17100c;
  --bg-2: #211712;
  --card: #241914;
  --text: #f3eadb;
  --muted: #c6b7a2;
  --gold: #d1a14c;
  --wine: #662131;
  --sage: #28534b;
  --border: rgba(209, 161, 76, 0.22);
  --shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 16% 8%, rgba(102, 33, 49, 0.28), transparent 32rem),
    radial-gradient(circle at 88% 14%, rgba(40, 83, 75, 0.22), transparent 28rem),
    var(--bg);
  color: var(--text);
  font-family: "DM Sans", "Noto Sans", system-ui, sans-serif;
}
html body,
body.home,
body.front-page,
main {
  background-color: var(--bg) !important;
}

body, button, input, textarea { font: inherit; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  line-height: 0.98;
  margin: 0;
}
p { color: var(--muted); line-height: 1.75; margin: 0; }

.site-header {
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 100;
  background: linear-gradient(to bottom, rgba(0,0,0,.76), transparent);
  transition: background .25s ease, border-color .25s ease;
}
.site-header, .site-header * {
  max-width: 100%;
}
.site-header.is-scrolled {
  background: rgba(23, 16, 12, .94);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(18px);
}
.site-header__inner {
  align-items: center;
  display: flex;
  height: 88px;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 22px;
}
.brand { align-items: center; display: flex; gap: 14px; }
.brand__mark, .footer-logo {
  align-items: center;
  background: #fff;
  border-radius: 999px;
  display: flex;
  height: 60px;
  justify-content: center;
  padding: 2px;
  width: 60px;
  flex: 0 0 60px;
  overflow: hidden;
}
.brand__mark img, .footer-logo img {
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  transform: scale(1.08);
  width: 100%;
}
.brand__text { display: none; }
.brand__text span { display: block; font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 24px; line-height: .85; }
.brand__text small { color: var(--gold); display: block; font-size: 10px; letter-spacing: .28em; margin-top: 8px; text-transform: uppercase; }
.desktop-nav { align-items: center; display: flex; gap: 16px; }
.desktop-nav a, .nav-dropdown button { color: rgba(243,234,219,.82); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; transition: color .2s ease; }
.desktop-nav a:hover, .nav-dropdown button:hover { color: var(--gold); }
.nav-dropdown { position: relative; }
.nav-dropdown button {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 28px 0;
}
.nav-dropdown__panel {
  background: rgba(23,16,12,.98);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  display: none;
  min-width: 160px;
  padding: 10px;
  position: absolute;
  top: 72px;
  z-index: 150;
}
.nav-dropdown:hover .nav-dropdown__panel,
.nav-dropdown:focus-within .nav-dropdown__panel {
  display: block;
}
.nav-dropdown__panel a {
  display: block;
  padding: 12px 14px;
}
.header-actions { align-items: center; display: flex; gap: 12px; }
.header-reserve {
  align-items: center;
  background: rgba(209,161,76,.95);
  color: #17100c;
  display: inline-flex;
  font-size: 11px;
  font-weight: 900;
  justify-content: center;
  letter-spacing: .12em;
  min-height: 38px;
  padding: 0 14px;
  text-transform: uppercase;
  white-space: nowrap;
}
.language-dropdown {
  position: relative;
}
.language-dropdown summary {
  align-items: center;
  border: 1px solid rgba(209,161,76,.22);
  border-radius: 999px;
  color: rgba(243,234,219,.82);
  cursor: pointer;
  display: inline-flex;
  gap: 7px;
  min-height: 36px;
  justify-content: center;
  line-height: 1;
  padding: 0 10px 0 7px;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
  white-space: nowrap;
}
.language-dropdown summary::-webkit-details-marker { display: none; }
.language-dropdown summary::after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  content: "";
  margin-left: 1px;
}
.language-dropdown summary:hover,
.language-dropdown[open] summary {
  background: rgba(209,161,76,.12);
}
.language-dropdown__panel {
  background: rgba(23,16,12,.98);
  border: 1px solid rgba(209,161,76,.24);
  box-shadow: var(--shadow);
  display: grid;
  gap: 4px;
  min-width: 108px;
  padding: 8px;
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  z-index: 170;
}
.language-dropdown__panel a {
  align-items: center;
  border-radius: 999px;
  color: rgba(243,234,219,.82);
  display: inline-flex;
  gap: 8px;
  justify-content: flex-start;
  min-height: 36px;
  padding: 0 10px 0 7px;
  white-space: nowrap;
}
.language-dropdown__panel a:hover {
  background: rgba(209,161,76,.12);
}
.language-dropdown__panel a.is-active {
  background: var(--gold);
  color: #17100c;
}
.language-dropdown span:not(.flag) {
  font-size: 11px;
  font-weight: 700;
}
.flag {
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.18), 0 0 0 1px rgba(255,255,255,.16);
  display: block;
  height: 24px;
  overflow: hidden;
  width: 24px;
  flex: 0 0 24px;
}
.flag-ca { background: repeating-linear-gradient(to bottom, #f4c431 0 3px, #c81e1e 3px 6px); }
.flag-es { background: linear-gradient(#c81e1e 0 25%, #f4c431 25% 75%, #c81e1e 75%); }
.flag-fr { background: linear-gradient(90deg, #2446a4 0 33%, #fff 33% 66%, #c81e1e 66%); }
.flag-en {
  background:
    linear-gradient(90deg, transparent 42%, #c81e1e 42% 58%, transparent 58%),
    linear-gradient(transparent 42%, #c81e1e 42% 58%, transparent 58%),
    linear-gradient(90deg, transparent 36%, #fff 36% 64%, transparent 64%),
    linear-gradient(transparent 36%, #fff 36% 64%, transparent 64%),
    #123c7c;
}
.flag-ru { background: linear-gradient(#fff 0 33%, #2446a4 33% 66%, #c81e1e 66%); }
.header-phone { color: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: .08em; white-space: nowrap; }
.instagram-link, .whatsapp-button {
  align-items: center;
  border: 1px solid var(--border);
  color: var(--gold);
  display: inline-flex;
  justify-content: center;
  min-height: 40px;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.instagram-link { width: 42px; }
.instagram-link svg, .whatsapp-button svg { fill: currentColor; height: 19px; width: 19px; }
.whatsapp-button { gap: 9px; padding: 0 14px; text-transform: uppercase; font-size: 12px; letter-spacing: .12em; }
.instagram-link:hover, .whatsapp-button:hover { background: var(--gold); color: var(--bg); transform: translateY(-2px); }
.mobile-toggle { background: transparent; border: 0; display: none; padding: 8px; }
.mobile-toggle span { background: var(--text); display: block; height: 2px; margin: 5px 0; width: 24px; }
.mobile-nav { background: rgba(36,25,20,.98); border-top: 1px solid var(--border); display: none; padding: 24px; }
.mobile-nav a { display: block; letter-spacing: .16em; padding: 12px 0; text-transform: uppercase; }
.mobile-nav.is-open { display: block; }

.hero { min-height: 92vh; overflow: hidden; position: relative; }
.hero--restaurant {
  background: var(--bg);
  min-height: 100vh;
  padding-top: 0;
  width: 100%;
}
.hero--restaurant .hero__content {
  display: block;
  margin: 0;
  max-width: none;
  min-height: 100vh;
  padding: 0;
  width: 100%;
}
.hero--restaurant .hero__photo {
  aspect-ratio: auto;
  border: 0;
  box-shadow: none;
  height: 100%;
  inset: 0;
  margin: 0;
  max-height: none;
  position: absolute;
  width: 100%;
}
.hero--restaurant .hero__photo::after {
  background:
    linear-gradient(90deg, rgba(23,16,12,.86), rgba(23,16,12,.52), rgba(23,16,12,.18)),
    linear-gradient(to top, rgba(23,16,12,.76), transparent 54%);
}
.hero--restaurant .hero__copy {
  left: max(24px, calc((100vw - 1180px) / 2));
  max-width: min(720px, calc(100vw - 48px));
  position: absolute;
  top: 52%;
  transform: translateY(-42%);
  z-index: 4;
}
.hero--showcase {
  background:
    radial-gradient(circle at 18% 14%, rgba(102, 33, 49, .28), transparent 28rem),
    var(--bg);
  padding-top: 112px;
}
.hero--showcase .hero__content {
  align-items: center;
  display: grid;
  gap: 44px;
  grid-template-columns: .9fr 1.1fr;
  min-height: calc(92vh - 112px);
  padding: 56px 24px 64px;
}
.hero--showcase .hero__copy {
  max-width: 680px;
}
.hero--stacked {
  min-height: auto;
}
.hero--stacked .hero__content {
  display: flex;
  flex-direction: column;
  gap: 42px;
  max-width: 1180px;
  min-height: 0;
  padding: 86px 24px 82px;
}
.hero--stacked .hero__copy {
  max-width: 900px;
  text-align: center;
}
.hero--stacked .hero h1,
.hero--stacked h1 {
  margin-left: auto;
  margin-right: auto;
}
.hero--stacked .hero p,
.hero--stacked p {
  margin-left: auto;
  margin-right: auto;
}
.hero--stacked .hero__buttons {
  justify-content: center;
}
.hero--stacked .hero__photo {
  aspect-ratio: 16 / 8;
  height: auto;
  max-height: 620px;
  width: 100%;
}
.hero--overlay {
  min-height: auto;
}
.hero--overlay .hero__content {
  display: block;
  max-width: 1180px;
  min-height: 0;
  padding: 96px 24px 82px;
}
.hero--overlay .hero__photo {
  aspect-ratio: 16 / 8;
  height: auto;
  max-height: 650px;
  width: 100%;
}
.hero--overlay .hero__photo::after {
  background:
    linear-gradient(90deg, rgba(23,16,12,.82), rgba(23,16,12,.44), rgba(23,16,12,.18)),
    linear-gradient(to top, rgba(23,16,12,.58), transparent 52%);
}
.hero--overlay .hero__copy {
  left: clamp(26px, 6vw, 78px);
  max-width: min(760px, calc(100% - 52px));
  position: absolute;
  text-align: left;
  top: 50%;
  transform: translateY(-42%);
  z-index: 3;
}
.hero--overlay .hero__buttons {
  justify-content: flex-start;
}
.hero-logo {
  background: #fff;
  border-radius: 999px;
  height: 86px;
  margin: 0 0 22px;
  object-fit: contain;
  padding: 2px;
  transform: scale(1.04);
  width: 86px;
}
.hero__photo {
  border: 1px solid rgba(209,161,76,.24);
  box-shadow: 0 32px 90px rgba(0,0,0,.42);
  height: min(68vh, 620px);
  overflow: hidden;
  position: relative;
}
.hero__photo img {
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
.hero__photo::after {
  background: linear-gradient(to top, rgba(0,0,0,.25), transparent 45%);
  content: "";
  inset: 0;
  position: absolute;
}
.hero__image, .page-hero img, .reservation-hero img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.hero__image, .page-hero img, .reservation-hero img, .feature-image, .image-duo img, .culture-grid img, .wine-panel img {
  max-width: none;
}
.hero__shade {
  background:
    linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.48) 42%, rgba(0,0,0,.08) 78%),
    linear-gradient(to top, rgba(23,16,12,.82), transparent 34%);
  inset: 0;
  position: absolute;
}
.hero::after, .page-hero::after, .reservation-hero::after {
  background: linear-gradient(to top, var(--bg), transparent);
  bottom: 0;
  content: "";
  height: 180px;
  left: 0;
  position: absolute;
  right: 0;
}
.hero__content {
  align-items: end;
  display: grid;
  gap: 48px;
  grid-template-columns: 1.6fr .8fr;
  margin: 0 auto;
  max-width: 1200px;
  min-height: 92vh;
  padding: 160px 24px 70px;
  position: relative;
  z-index: 2;
}
.hero--home .hero__image {
  filter: saturate(1.08) contrast(1.05);
  object-position: center center;
}
.hero--restaurant.hero--showcase,
.hero--restaurant.hero--overlay {
  min-height: 100vh;
  padding-top: 0;
}
.hero--restaurant.hero--showcase .hero__content,
.hero--restaurant.hero--overlay .hero__content {
  display: block;
  margin: 0;
  max-width: none;
  min-height: 100vh;
  padding: 0;
  width: 100%;
}
.hero--restaurant.hero--overlay .hero__photo {
  aspect-ratio: auto;
  border: 0;
  box-shadow: none;
  height: 100%;
  inset: 0;
  max-height: none;
  position: absolute;
  width: 100%;
}
.hero--restaurant.hero--overlay .hero__copy {
  left: max(24px, calc((100vw - 1180px) / 2));
  max-width: min(720px, calc(100vw - 48px));
  top: 52%;
}
.eyebrow-list { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 34px; }
.eyebrow-list span, .section-kicker {
  color: var(--gold);
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.eyebrow-list span { border: 1px solid rgba(209,161,76,.38); background: rgba(0,0,0,.28); padding: 9px 13px; }
.hero h1 { color: #fff; font-size: clamp(46px, 7vw, 82px); letter-spacing: -0.02em; }
.hero p { color: rgba(255,255,255,.86); font-size: clamp(20px, 2vw, 24px); font-weight: 300; max-width: 720px; }
.hero-hours { color: var(--gold); display: inline-block; font-size: 14px; font-weight: 600; letter-spacing: .12em; line-height: 1.45; margin-top: 26px; max-width: 100%; text-transform: uppercase; }
.hero__buttons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 38px; }
.button {
  align-items: center;
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: .16em;
  min-height: 56px;
  padding: 0 28px;
  text-transform: uppercase;
}
.button--gold { background: var(--gold); color: #17100c; }
.button--ghost { border: 1px solid rgba(255,255,255,.46); color: #fff; }
.hero-card {
  background: rgba(0,0,0,.42);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: var(--shadow);
  padding: 28px;
}
.hero-card span { color: var(--gold); display: block; font-size: 12px; letter-spacing: .24em; margin-bottom: 18px; text-transform: uppercase; }
.hero-card p { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.8); font-size: 14px; padding: 17px 0; }
.hero-card p:first-of-type { border-top: 0; }

.section {
  margin: 0 auto;
  max-width: 1200px;
  padding: 108px 24px;
}
.section-heading {
  margin: 0 auto 42px;
  max-width: 760px;
  text-align: center;
}
.section-heading h2 {
  font-size: clamp(42px, 5vw, 72px);
  margin: 14px 0 16px;
}
.section-kicker {
  color: var(--gold);
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.dish-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dish-slider {
  border: 1px solid rgba(209,161,76,.26);
  box-shadow: var(--shadow);
  height: min(72vh, 680px);
  min-height: 520px;
  overflow: hidden;
  position: relative;
}
.dish-slide {
  inset: 0;
  opacity: 0;
  position: absolute;
  transform: scale(1.02);
  transition: opacity .8s ease, transform 1.2s ease;
  visibility: hidden;
}
.dish-slide.is-active,
.dish-slider:not(.is-ready) .dish-slide:first-child {
  opacity: 1;
  transform: scale(1);
  visibility: visible;
}
.dish-slide::after {
  background: linear-gradient(90deg, rgba(23,16,12,.9), rgba(23,16,12,.38), rgba(23,16,12,.12));
  content: "";
  inset: 0;
  position: absolute;
}
.dish-slide img {
  height: 100%;
  max-width: none;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.dish-slide__content {
  bottom: 56px;
  left: 56px;
  max-width: 520px;
  position: absolute;
  z-index: 2;
}
.dish-slide__content h3 {
  font-size: clamp(42px, 6vw, 82px);
  margin-bottom: 18px;
}
.dish-slide__content p {
  color: rgba(243,234,219,.88);
  font-size: 19px;
  margin-bottom: 26px;
}
.dish-slider__nav {
  align-items: center;
  background: rgba(17,12,9,.72);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
  color: var(--cream);
  cursor: pointer;
  display: flex;
  font-family: var(--font-serif);
  font-size: 44px;
  height: 54px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
  width: 54px;
  z-index: 4;
}
.dish-slider__nav:hover,
.dish-slider__nav:focus-visible {
  background: rgba(209,161,76,.92);
  border-color: rgba(209,161,76,1);
  color: #17100c;
  outline: none;
  transform: translateY(-50%) scale(1.06);
}
.dish-slider__nav--prev { left: 22px; }
.dish-slider__nav--next { right: 22px; }
.dish-card {
  background: rgba(23,16,12,.82);
  border: 1px solid rgba(209,161,76,.22);
  display: grid;
  min-height: 100%;
  overflow: hidden;
}
.dish-card img,
.dish-card__photo-missing {
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.dish-card__photo-missing {
  align-items: center;
  background: linear-gradient(135deg, rgba(102,33,49,.38), rgba(40,83,75,.28));
  color: rgba(243,234,219,.74);
  display: flex;
  font-size: 12px;
  font-weight: 800;
  justify-content: center;
  letter-spacing: .12em;
  padding: 24px;
  text-align: center;
  text-transform: uppercase;
}
.dish-card > div { padding: 24px; }
.dish-card h3 { font-size: 30px; margin-bottom: 10px; }
.feature-band--concepts article span {
  color: var(--gold);
  display: block;
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  font-size: 34px;
  margin-bottom: 14px;
}
.home-location { text-align: center; }
.home-location__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin: 32px 0;
}
.map-wrap--home { min-height: 420px; }
.instagram-section { text-align: center; }
.instagram-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 30px;
}
.instagram-grid img {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
}
.instagram-grid a {
  border: 1px solid rgba(209,161,76,.24);
  display: block;
  overflow: hidden;
}
.instagram-live-feed {
  margin: 0 auto 30px;
  max-width: 1200px;
}
.instagram-live-feed #sb_instagram {
  background: transparent !important;
  padding: 0 !important;
}
.instagram-live-feed #sbi_images { padding: 0 !important; }
.instagram-live-feed .sbi_item {
  overflow: hidden;
  padding: 8px !important;
}
.instagram-live-feed .sbi_photo {
  border: 1px solid rgba(209,161,76,.24);
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
}
.instagram-live-feed .sbi_follow_btn { display: none !important; }
.final-cta {
  background: linear-gradient(135deg, rgba(102,33,49,.9), rgba(23,16,12,.96));
  border-top: 1px solid var(--border);
  padding: 90px 24px;
  text-align: center;
}
.final-cta h2 {
  font-size: clamp(42px, 6vw, 78px);
  margin: 0 auto 30px;
  max-width: 900px;
}
.split { align-items: center; display: grid; gap: 56px; grid-template-columns: .86fr 1.14fr; }
.split--reverse { grid-template-columns: 1.14fr .86fr; }
.section h1, .section h2, .page-hero h1, .reservation-hero h1 {
  font-size: clamp(46px, 6vw, 82px);
  margin: 16px 0 24px;
}
.section p { font-size: 18px; }
.section-icon { color: var(--gold); display: block; font-size: 42px; margin-bottom: 24px; }
.animated-section {
  transition: transform .45s ease, filter .45s ease;
}
.animated-section:hover {
  filter: brightness(1.04);
  transform: translateY(-8px);
}
.image-duo { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.image-duo img { height: 390px; object-fit: cover; width: 100%; }
.image-duo img:last-child { margin-top: 56px; }
.feature-image { height: 520px; object-fit: cover; width: 100%; }
.feature-band {
  background: rgba(36,25,20,.76);
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(3, 1fr);
  padding: 74px max(24px, calc((100vw - 1200px) / 2));
}
.feature-band article, .menu-section, .culture-grid article, .contact-cards article, .generic-page {
  background: rgba(23,16,12,.78);
  border: 1px solid rgba(209,161,76,.18);
  padding: 34px;
}
.feature-band h3, .culture-grid h2, .contact-cards h2 { color: var(--text); font-size: 34px; margin-bottom: 14px; }
.text-link { border-bottom: 1px solid var(--gold); color: var(--gold); display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .16em; margin-top: 30px; padding-bottom: 5px; text-transform: uppercase; }

.page-top { padding-top: 160px; }
.page-hero, .reservation-hero { min-height: 620px; overflow: hidden; position: relative; }
.page-hero::before, .reservation-hero::before {
  background: rgba(23,16,12,.72);
  content: "";
  inset: 0;
  position: absolute;
  z-index: 1;
}
.page-hero > div, .reservation-hero__content {
  margin: 0 auto;
  max-width: 980px;
  padding: 180px 24px 120px;
  position: relative;
  text-align: center;
  z-index: 2;
}
.menu-list { margin: 0 auto; max-width: 1050px; padding: 0 24px 110px; }
.menu-tabs { margin: 0 auto; max-width: 1040px; padding: 80px 24px 118px; }
.menu-pdf-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 28px;
}
.button--pdf {
  gap: 10px;
  min-height: 48px;
  padding-inline: 20px;
}
.button--pdf span {
  border: 1px solid rgba(23,16,12,.34);
  font-size: 10px;
  line-height: 1;
  padding: 5px 6px;
}
.menu-pdf-download {
  margin-top: 0;
}
.pdf-viewer-page {
  padding-top: 150px;
}
.pdf-viewer-actions {
  justify-content: center;
  margin-top: 28px;
}
.pdf-viewer-frame {
  background: rgba(23,16,12,.78);
  border: 1px solid rgba(209,161,76,.2);
  box-shadow: var(--shadow);
  height: min(82vh, 940px);
  margin: 38px auto 0;
  max-width: 1120px;
  overflow: hidden;
}
.pdf-viewer-frame iframe {
  border: 0;
  height: 100%;
  width: 100%;
}
.menu-tab-nav {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  margin-bottom: 28px;
  overflow-x: auto;
  position: sticky;
  top: 96px;
  z-index: 20;
  background: rgba(23,16,12,.94);
  border: 1px solid rgba(209,161,76,.14);
  padding: 12px;
  backdrop-filter: blur(14px);
  scrollbar-width: thin;
}
.menu-tab-button {
  background: rgba(23,16,12,.72);
  border: 1px solid rgba(209,161,76,.24);
  color: var(--muted);
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  min-height: 40px;
  padding: 0 13px;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, transform .2s ease;
  white-space: nowrap;
}
.menu-tab-button:hover {
  transform: translateY(-2px);
}
.menu-tab-button.is-active {
  background: var(--gold);
  color: var(--bg);
}
.menu-tab-panel { display: none; }
.menu-tab-panel.is-active { display: block; }
.menu-item-grid {
  display: grid;
  gap: 0 34px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.menu-accordion {
  background: rgba(23,16,12,.78);
  border: 1px solid rgba(209,161,76,.22);
  margin-bottom: 16px;
}
.menu-accordion summary {
  align-items: center;
  color: var(--text);
  cursor: pointer;
  display: flex;
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  gap: 18px;
  list-style: none;
  padding: 24px 30px;
}
.menu-accordion summary::-webkit-details-marker { display: none; }
.menu-accordion summary span { color: var(--gold); min-width: 48px; }
.menu-accordion__body { border-top: 1px solid rgba(255,255,255,.1); padding: 0 30px 8px; }
.menu-section { margin-bottom: 28px; }
.menu-section__title { align-items: center; display: flex; gap: 18px; margin-bottom: 10px; min-width: 0; }
.menu-section__title span { color: var(--gold); font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 44px; }
.menu-section__title h2 { font-size: clamp(28px, 5vw, 38px); overflow-wrap: anywhere; text-transform: uppercase; }
.menu-item {
  border-top: 1px solid rgba(255,255,255,.1);
  display: block;
  padding: 24px 0;
  transition: background .22s ease, border-color .22s ease, padding .22s ease, transform .22s ease;
}
.menu-item:hover {
  background: rgba(209,161,76,.06);
  border-color: rgba(209,161,76,.34);
  padding-left: 16px;
  padding-right: 16px;
  transform: translateX(6px);
}
.menu-item h3 { font-size: 29px; }
.menu-item p { margin-top: 8px; }
.allergen-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}
.allergen-tags span {
  border: 1px solid rgba(209,161,76,.24);
  color: rgba(243,234,219,.72);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.25;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 5px 8px;
  text-transform: uppercase;
}
.menu-item__head {
  align-items: baseline;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}
.menu-price {
  color: var(--gold);
  flex: 0 0 auto;
  font-size: 16px;
  font-weight: 800;
}
.menu-price--pending {
  color: rgba(243,234,219,.62);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.menu-notes {
  background: rgba(36,25,20,.78);
  border: 1px solid rgba(209,161,76,.22);
  margin-top: 28px;
  padding: 24px;
}
.menu-notes p + p { margin-top: 12px; }
.menu-accordion .menu-item:last-child { border-bottom: 0; }

.reservation-hero__content {
  display: grid;
  gap: 58px;
  grid-template-columns: 1fr .86fr;
  max-width: 1200px;
  text-align: left;
}
.reservation-card {
  background: rgba(36,25,20,.88);
  border: 1px solid rgba(209,161,76,.28);
  box-shadow: var(--shadow);
  padding: 38px;
}
.reservation-card span { color: var(--muted); display: block; font-size: 12px; font-weight: 700; letter-spacing: .18em; margin-bottom: 10px; text-transform: uppercase; }
.reservation-card a { color: var(--text); display: block; font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; font-size: clamp(34px, 4vw, 50px); margin-bottom: 24px; }
.reservation-card hr { border: 0; border-top: 1px solid rgba(255,255,255,.12); margin: 28px 0; }
.reservation-page .page-intro { margin-left: auto; margin-right: auto; text-align: center; }
.reservation-form {
  background: rgba(23,16,12,.82);
  border: 1px solid rgba(209,161,76,.24);
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 auto;
  max-width: 920px;
  padding: 34px;
}
.reservation-form label { color: var(--muted); display: grid; gap: 9px; font-size: 14px; font-weight: 600; letter-spacing: .04em; }
.reservation-form input, .reservation-form textarea {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(209,161,76,.2);
  color: var(--text);
  min-height: 52px;
  padding: 13px 14px;
  width: 100%;
}
.reservation-form textarea { resize: vertical; }
.reservation-form__wide, .reservation-note { grid-column: 1 / -1; }
.reservation-note { color: var(--gold); font-size: 14px; }
.privacy-check {
  align-items: center;
  display: flex !important;
  gap: 12px !important;
}
.privacy-check input {
  min-height: 18px;
  width: 18px;
}
.tamada-hp {
  display: none !important;
}
.reservation-whatsapp { border-color: rgba(255,255,255,.28); }
.form-message {
  margin: 0 auto 20px;
  max-width: 920px;
  padding: 16px 20px;
}
.form-message--ok { background: rgba(40,83,75,.28); border: 1px solid rgba(40,83,75,.6); }
.form-message--error { background: rgba(102,33,49,.28); border: 1px solid rgba(102,33,49,.7); }
.reservation-booking-shell {
  background: var(--card);
  border: 1px solid rgba(209,161,76,.38);
  box-shadow: 0 32px 90px rgba(0,0,0,.46);
  margin: 0 auto;
  max-width: 1040px;
  overflow: hidden;
  position: relative;
}
.reservation-booking-shell::before {
  background: linear-gradient(90deg, var(--wine), var(--gold), var(--sage));
  content: "";
  height: 4px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 2;
}
.reservation-booking-shell--minimal { background: #fff; padding-top: 4px; }
.reservation-booking-header {
  align-items: center;
  background:
    radial-gradient(circle at 12% 0%, rgba(209,161,76,.22), transparent 24rem),
    linear-gradient(135deg, rgba(102,33,49,.48), rgba(36,25,20,.96) 48%, rgba(40,83,75,.38));
  display: grid;
  gap: 26px;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  padding: 34px 38px 30px;
}
.reservation-booking-logo {
  background: rgba(23,16,12,.64);
  border: 1px solid rgba(209,161,76,.42);
  border-radius: 50%;
  height: 92px;
  object-fit: contain;
  padding: 10px;
  width: 92px;
}
.reservation-booking-copy h2 {
  font-size: clamp(31px, 4vw, 46px);
  line-height: 1.03;
  margin: 8px 0 10px;
}
.reservation-booking-copy p { max-width: 660px; }
.reservation-booking-badge {
  color: var(--gold);
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.reservation-booking-provider {
  border: 1px solid rgba(243,234,219,.24);
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  padding: 11px 15px;
  text-transform: uppercase;
}
.thefork-reservation {
  background: #fff;
  border-top: 1px solid rgba(209,161,76,.28);
  overflow: hidden;
}
.thefork-reservation iframe {
  background: #fff;
  border: 0;
  display: block;
  min-height: 720px;
  width: 100%;
}
.thefork-fallback {
  background: var(--card);
  border-top: 1px solid rgba(209,161,76,.18);
  color: var(--muted);
  font-size: 14px;
  margin: 0;
  padding: 18px 24px;
  text-align: center;
}
.thefork-fallback a { color: var(--gold); font-weight: 700; }
.thefork-privacy {
  color: var(--muted);
  font-size: 13px;
  margin: 18px auto 0;
  max-width: 820px;
  text-align: center;
}
.reservation-actions { display: flex; justify-content: center; margin-top: 24px; }

.wine-panel { min-height: 520px; overflow: hidden; position: relative; }
.wine-panel img { height: 100%; object-fit: cover; position: absolute; width: 100%; }
.wine-panel::after { background: linear-gradient(to top, rgba(23,16,12,.88), transparent); content: ""; inset: 0; position: absolute; }
.wine-panel div { background: rgba(23,16,12,.82); border: 1px solid rgba(209,161,76,.28); bottom: 30px; left: 30px; padding: 28px; position: absolute; right: 30px; z-index: 1; }
.wine-panel h2 { font-size: 34px; margin-bottom: 12px; }
.wine-coming {
  min-height: 78vh;
  overflow: hidden;
  position: relative;
}
.wine-coming img {
  height: 100%;
  inset: 0;
  max-width: none;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.wine-coming::after {
  background: linear-gradient(90deg, rgba(23,16,12,.88), rgba(23,16,12,.54), rgba(23,16,12,.25));
  content: "";
  inset: 0;
  position: absolute;
}
.wine-coming__content {
  margin: 0 auto;
  max-width: 1200px;
  padding: 210px 24px 120px;
  position: relative;
  z-index: 1;
}
.wine-coming h1 { font-size: clamp(56px, 8vw, 104px); margin: 16px 0 18px; }
.wine-schema-preview {
  background: rgba(23,16,12,.74);
  border: 1px solid rgba(209,161,76,.28);
  margin-top: 34px;
  max-width: 660px;
  padding: 24px;
}
.wine-schema-preview h2 {
  font-size: 28px;
  margin-bottom: 10px;
}
.wine-coming p { font-size: clamp(20px, 2vw, 28px); max-width: 620px; }
.page-intro { max-width: 760px; margin-bottom: 48px; }
.culture-grid { display: grid; gap: 30px; grid-template-columns: 1fr 1fr; }
.culture-grid img { height: 340px; margin-top: 28px; object-fit: cover; width: 100%; }
.culture-grid article:nth-child(2) { margin-top: 0; }
.local-photo-strip {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr 1fr;
  margin-top: 14px;
}
.local-photo-strip img {
  height: 210px;
  margin-top: 0;
}
.art-feature img {
  height: 360px;
  margin-top: 28px;
  object-fit: cover;
  width: 100%;
}
.art-gallery {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 34px;
}
.art-gallery img {
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(209,161,76,.22);
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.feature-image,
.image-duo img,
.culture-grid img,
.local-photo-strip img,
.art-feature img,
.art-gallery img,
.instagram-grid img,
.location-photo img,
.dish-slide img {
  transition: transform .55s ease, filter .55s ease;
}
@media (hover: hover) {
  .feature-image:hover,
  .image-duo img:hover,
  .culture-grid img:hover,
  .local-photo-strip img:hover,
  .art-feature img:hover,
  .art-gallery img:hover,
  .instagram-grid img:hover,
  .location-photo img:hover {
    filter: saturate(1.08) contrast(1.04);
    transform: translateY(-6px) scale(1.018);
  }
  .dish-slide.is-active img {
    transform: scale(1.025);
  }
}
.art-cta {
  border: 1px solid var(--border);
  margin-top: 34px;
  padding: 28px;
  text-align: center;
}
.art-cta a {
  color: var(--gold);
  display: inline-block;
  font-weight: 800;
  letter-spacing: .1em;
  margin-top: 14px;
  text-transform: uppercase;
}
.contact-grid { display: grid; gap: 30px; grid-template-columns: .86fr 1.14fr; }
.contact-cards { display: grid; gap: 18px; }
.contact-cards a { color: var(--gold); }
.map-wrap { min-height: 650px; border: 1px solid rgba(209,161,76,.18); overflow: hidden; }
.map-wrap iframe { border: 0; height: 100%; width: 100%; }
.location-photo {
  border: 1px solid rgba(209,161,76,.22);
  margin: 30px 0 0;
  overflow: hidden;
}
.location-photo img {
  display: block;
  height: min(58vh, 620px);
  object-fit: cover;
  width: 100%;
}

.site-footer {
  background: #120d0a;
  border-top: 1px solid var(--border);
  padding: 70px 24px 28px;
}
.site-footer img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}
.site-footer__grid {
  display: grid;
  gap: 48px;
  grid-template-columns: .9fr .7fr 1.4fr;
  margin: 0 auto;
  max-width: 1200px;
}
.footer-logo { margin-bottom: 22px; }
.site-footer h3 { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 18px; letter-spacing: .08em; margin: 0 0 22px; text-transform: uppercase; }
.site-footer a { color: var(--muted); display: block; margin: 11px 0; }
.site-footer a:hover { color: var(--gold); }
.footer-instagram {
  align-items: center;
  display: inline-flex !important;
  gap: 9px;
}
.footer-instagram svg {
  fill: currentColor;
  height: 20px;
  width: 20px;
}
.site-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  margin: 56px auto 0;
  max-width: 1200px;
  padding-top: 24px;
}
.legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.legal-links a { margin: 0; }
.legal-page p + p { margin-top: 18px; }
.floating-whatsapp {
  align-items: center;
  background: #25d366;
  border-radius: 999px;
  bottom: 24px;
  box-shadow: 0 16px 38px rgba(0,0,0,.36);
  color: #07150c;
  display: inline-flex;
  font-size: 13px;
  font-weight: 800;
  gap: 10px;
  letter-spacing: .08em;
  min-height: 58px;
  padding: 0 22px;
  position: fixed;
  right: 24px;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease;
  z-index: 120;
}
.floating-whatsapp svg {
  fill: currentColor;
  height: 24px;
  width: 24px;
}
.floating-whatsapp:hover {
  box-shadow: 0 20px 46px rgba(0,0,0,.44);
  transform: translateY(-4px);
}
.mobile-quick-actions {
  background: rgba(23,16,12,.96);
  border-top: 1px solid var(--border);
  bottom: 0;
  display: none;
  gap: 1px;
  left: 0;
  position: fixed;
  right: 0;
  z-index: 130;
}
.mobile-quick-actions a {
  align-items: center;
  color: var(--text);
  display: flex;
  flex: 1;
  font-size: 11px;
  font-weight: 800;
  justify-content: center;
  min-height: 54px;
  padding: 0 6px;
  text-align: center;
  text-transform: uppercase;
}
.mobile-quick-actions a:first-child {
  background: var(--gold);
  color: #17100c;
}
.cookie-banner {
  align-items: center;
  background: rgba(23,16,12,.98);
  border: 1px solid var(--border);
  bottom: 18px;
  box-shadow: var(--shadow);
  display: none;
  gap: 18px;
  left: 18px;
  max-width: 760px;
  padding: 18px;
  position: fixed;
  right: 18px;
  z-index: 180;
}
.cookie-banner.is-visible { display: flex; }
.cookie-banner p { font-size: 14px; }
.cookie-banner div { display: flex; gap: 10px; margin-left: auto; }
.cookie-banner button {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  cursor: pointer;
  font-weight: 800;
  min-height: 42px;
  padding: 0 16px;
}
.cookie-banner button:last-child {
  background: var(--gold);
  color: #17100c;
}

.generic-page { margin: 0 auto; max-width: 900px; }
.generic-page h1 { font-size: 58px; margin-bottom: 24px; }

@media (max-width: 980px) {
  .desktop-nav, .header-phone, .header-reserve, .whatsapp-button span { display: none; }
  .language-dropdown summary { min-height: 34px; padding: 0 9px 0 6px; }
  .language-dropdown__panel { right: -42px; }
  .flag { height: 20px; width: 20px; }
  .mobile-toggle { display: block; }
  .hero__content, .split, .split--reverse, .reservation-hero__content, .contact-grid, .site-footer__grid {
    grid-template-columns: 1fr;
  }
  .hero__content { align-items: end; }
  .feature-band, .culture-grid { grid-template-columns: 1fr; }
  .art-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dish-grid, .instagram-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dish-slider { min-height: 520px; }
  .dish-slide__content { bottom: 34px; left: 28px; max-width: calc(100% - 56px); }
  .dish-slider__nav { height: 48px; width: 48px; }
  .culture-grid article:nth-child(2), .image-duo img:last-child { margin-top: 0; }
  .animated-section, .culture-grid article, .art-gallery img {
    animation: tamada-mobile-float both linear;
    animation-timeline: view();
    animation-range: entry 10% cover 55%;
  }
  .hero--showcase .hero__content { grid-template-columns: 1fr; padding-top: 36px; }
  .hero__photo { height: 48vh; order: -1; }
  .hero--stacked .hero__photo { height: auto; order: 0; }
  .hero--restaurant .hero__content { min-height: 100svh; padding: 0; }
  .hero--restaurant .hero__photo { height: 100%; order: 0; }
  .hero--restaurant .hero__copy {
    left: 24px;
    max-width: calc(100% - 48px);
    top: 56%;
  }
  .hero--overlay .hero__content { padding-top: 32px; }
  .hero--overlay .hero__photo { aspect-ratio: 4 / 5; height: auto; order: 0; }
  .hero--overlay .hero__copy {
    left: 24px;
    max-width: calc(100% - 48px);
    top: 54%;
  }
  .hero--restaurant.hero--overlay .hero__content { min-height: 100svh; padding: 0; }
  .hero--restaurant.hero--overlay .hero__photo { aspect-ratio: auto; height: 100%; position: absolute; width: 100%; }
  .hero--restaurant.hero--overlay .hero__copy {
    left: 24px;
    max-width: calc(100% - 48px);
    bottom: max(42px, env(safe-area-inset-bottom));
    max-height: calc(100svh - 116px);
    top: auto;
  }
}

@media (max-width: 640px) {
  .brand__text { display: none; }
  .site-header__inner { height: 82px; padding: 0 16px; }
  .brand__mark { height: 56px; width: 56px; }
  .language-dropdown summary { min-width: 64px; }
  .language-dropdown__panel { right: -46px; }
  .hero__content { padding: 132px 18px 54px; }
  .hero h1 { font-size: clamp(36px, 10.8vw, 48px); line-height: .96; }
  .hero h1, .hero p, .button { overflow-wrap: anywhere; }
  .hero--overlay .hero__content { padding: 112px 18px 58px; }
  .hero--overlay .hero h1 { font-size: clamp(34px, 10.6vw, 48px); }
  .hero--overlay .hero p { font-size: 17px; line-height: 1.45; }
  .hero--overlay .hero__copy { left: 18px; max-width: calc(100% - 36px); }
  .hero--restaurant .hero__copy {
    bottom: max(28px, env(safe-area-inset-bottom));
    left: 18px;
    max-height: calc(100svh - 104px);
    max-width: calc(100% - 36px);
    top: auto;
  }
  .hero--restaurant .hero-logo { height: 72px; width: 72px; }
  .hero--restaurant .hero-hours {
    font-size: 11px;
    letter-spacing: .07em;
    line-height: 1.45;
    margin-top: 14px;
    max-width: 100%;
  }
  body.lang-fr .hero--restaurant .hero-hours,
  body.lang-en .hero--restaurant .hero-hours {
    font-size: 10px;
    letter-spacing: .055em;
  }
  body.lang-ru .hero--restaurant .hero-logo { height: 58px; margin-bottom: 14px; width: 58px; }
  body.lang-ru .hero--restaurant h1 { font-size: clamp(29px, 8.5vw, 38px); line-height: 1.02; }
  body.lang-ru .hero--restaurant p { font-size: 15px; line-height: 1.4; }
  body.lang-ru .hero--restaurant .hero-hours {
    font-size: 11px;
    letter-spacing: .1em;
    margin-top: 14px;
  }
  body.lang-ru .hero--restaurant .hero__buttons { gap: 8px; margin-top: 16px; }
  body.lang-ru .hero--restaurant .button {
    font-size: 10px;
    letter-spacing: .1em;
    min-height: 44px;
    padding: 0 14px;
  }
  .hero-card { display: none; }
  .hero__buttons .button { width: 100%; }
  .hero__buttons { gap: 10px; margin-top: 22px; }
  .section, .page-top { padding: 72px 18px; }
  .image-duo, .menu-item { grid-template-columns: 1fr; }
  .local-photo-strip { grid-template-columns: 1fr; }
  .art-gallery { grid-template-columns: 1fr; }
  .image-duo img, .feature-image, .culture-grid img, .art-feature img { height: 300px; }
  .art-gallery img { aspect-ratio: 4 / 3; }
  .location-photo img { height: 360px; }
  .page-hero > div, .reservation-hero__content { padding: 142px 18px 80px; }
  body.lang-ru .menu-hero > div {
    overflow: visible;
    padding-left: 22px;
    padding-right: 22px;
  }
  body.lang-ru .menu-hero h1 {
    font-size: clamp(27px, 7.4vw, 36px);
    hyphens: none;
    line-height: 1.14;
    overflow: visible;
    overflow-wrap: normal;
    word-break: normal;
  }
  body.lang-ru .menu-hero .section-kicker {
    letter-spacing: .12em;
  }
  .reservation-card { padding: 28px; }
  .map-wrap { min-height: 430px; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
  .reservation-form { grid-template-columns: 1fr; padding: 24px; }
  .reservation-booking-header {
    gap: 16px;
    grid-template-columns: 64px minmax(0, 1fr);
    padding: 28px 20px 24px;
  }
  .reservation-booking-logo { height: 64px; padding: 7px; width: 64px; }
  .reservation-booking-copy h2 { font-size: clamp(27px, 8vw, 34px); }
  .reservation-booking-provider { grid-column: 2; justify-self: start; }
  .thefork-reservation iframe { min-height: 760px; }
  .thefork-fallback { padding: 16px 18px; }
  .menu-accordion summary { padding: 22px; }
  .menu-accordion__body { padding: 0 22px 8px; }
  .whatsapp-button { min-width: 42px; padding: 0; }
  .floating-whatsapp { bottom: 18px; min-height: 54px; padding: 0 16px; right: 16px; }
  .floating-whatsapp { display: none; }
  .mobile-quick-actions { display: flex; }
  body { padding-bottom: 54px; }
  .dish-grid, .instagram-grid { grid-template-columns: 1fr; }
  .dish-slider { height: 500px; min-height: 500px; }
  .dish-slide::after { background: linear-gradient(to top, rgba(23,16,12,.92), rgba(23,16,12,.24)); }
  .dish-slide__content { bottom: 28px; left: 18px; max-width: calc(100% - 36px); padding-right: 54px; }
  .dish-slide__content h3 { font-size: clamp(30px, 10vw, 42px); line-height: 1; }
  .dish-slide__content p { font-size: 16px; line-height: 1.55; }
  .dish-slider__nav { height: 42px; width: 42px; font-size: 34px; }
  .dish-slider__nav--prev { left: 10px; }
  .dish-slider__nav--next { right: 10px; }
  .menu-item-grid { grid-template-columns: 1fr; }
  .menu-tab-nav { top: 82px; }
  .menu-tab-button { font-size: 11px; letter-spacing: .05em; min-height: 38px; padding: 0 11px; }
  .menu-pdf-actions { align-items: stretch; flex-direction: column; }
  .button--pdf { width: 100%; }
  .menu-pdf-download { align-self: center; }
  .pdf-viewer-page { padding-top: 112px; }
  .pdf-viewer-frame { height: 76vh; margin-top: 26px; }
  .pdf-viewer-actions { align-items: stretch; flex-direction: column; }
  .menu-section { padding: 24px; }
  .allergen-tags { gap: 6px; }
  .allergen-tags span { font-size: 10px; letter-spacing: .04em; padding: 5px 7px; }
  .menu-section__title { align-items: flex-start; gap: 12px; }
  .menu-section__title span { font-size: 34px; min-width: 42px; }
  .menu-section__title h2 { font-size: clamp(25px, 8vw, 34px); line-height: 1.05; }
  body.lang-ru .menu-section { overflow: visible; padding-left: 28px; padding-right: 22px; }
  body.lang-ru .menu-section__title { display: grid; grid-template-columns: 42px minmax(0, 1fr); overflow: visible; }
  body.lang-ru .menu-section__title h2 {
    font-size: clamp(21px, 6.4vw, 29px);
    line-height: 1.16;
    overflow: visible;
    overflow-wrap: normal;
    text-indent: 0;
    word-break: normal;
  }
  body.lang-ru .menu-tab-button { font-size: 10px; letter-spacing: .02em; }
}

@keyframes tamada-mobile-float {
  from { opacity: .72; transform: translateY(24px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes tamada-dish-slide {
  0% { opacity: 0; transform: scale(1.035); }
  5% { opacity: 1; transform: scale(1); }
  24% { opacity: 1; transform: scale(1.01); }
  30% { opacity: 0; transform: scale(1.025); }
  100% { opacity: 0; transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
  .dish-slide { transition: none; }
}

