:root {
  --paper: #f4eddd;
  --paper-light: #fffaf0;
  --ink: #29271f;
  --olive: #5b641c;
  --olive-dark: #30370d;
  --olive-soft: #d7d5b4;
  --tomato: #b93326;
  --tomato-dark: #8f2118;
  --gold: #b98a43;
  --chalk: #18382e;
  --line: rgba(59, 54, 37, .22);
  --shadow: 0 18px 50px rgba(45, 35, 20, .16);
  --radius: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 176px; overflow-x: clip; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 15% 20%, rgba(98, 86, 45, .055) 0 1px, transparent 1.5px) 0 0 / 18px 18px,
    linear-gradient(180deg, #f8f1e4, var(--paper));
  font-family: "Lora", Georgia, serif;
  line-height: 1.55;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  opacity: .2;
  pointer-events: none;
  z-index: 99;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
}

img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Bodoni Moda", Didot, Georgia, serif; line-height: 1.03; }
h1 { font-size: clamp(3.2rem, 15vw, 7.5rem); letter-spacing: -.055em; margin-bottom: 1.25rem; }
h2 { font-size: clamp(2.55rem, 10vw, 5.5rem); letter-spacing: -.045em; margin-bottom: 1rem; }
h3 { letter-spacing: -.02em; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: -100px;
  z-index: 300;
  background: var(--paper-light);
  padding: .75rem 1rem;
}
.skip-link:focus { top: 1rem; }

.demo-switcher {
  position: relative;
  z-index: 102;
  background: var(--olive-dark);
  color: #fffbed;
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.demo-switcher[hidden] { display: none !important; }
.demo-switcher__inner {
  width: min(1180px, calc(100% - 24px));
  min-height: 60px;
  margin: auto;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 14px;
  align-items: center;
  padding: 8px 0;
}
.demo-kicker {
  font-family: Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .65rem;
  font-weight: 800;
  color: #d9da9d;
}
.demo-switcher p {
  grid-column: 1 / -1;
  margin: 0;
  font: .7rem/1.2 Arial, sans-serif;
  color: rgba(255,255,255,.7);
}
.mode-toggle {
  justify-self: end;
  display: flex;
  padding: 3px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
}
.mode-toggle__button {
  min-height: 34px;
  border: 0;
  border-radius: 999px;
  padding: 5px 10px;
  color: rgba(255,255,255,.75);
  background: transparent;
  font: 700 .7rem/1 Arial, sans-serif;
  cursor: pointer;
}
.mode-toggle__button.is-active { background: #fff9eb; color: var(--olive-dark); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px clamp(16px, 4vw, 48px);
  background: rgba(248, 242, 229, .92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.brand img { width: clamp(142px, 28vw, 220px); }
.desktop-nav { display: none; }
.open-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper-light);
  font: 700 .66rem/1.15 Arial, sans-serif;
}
.open-pill__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.open-pill.is-open .open-pill__dot { background: #2f8f4e; box-shadow: 0 0 0 4px rgba(47,143,78,.14); }
.open-pill.is-closed .open-pill__dot { background: var(--tomato); }

.hero {
  width: min(1180px, calc(100% - 32px));
  min-height: calc(100svh - 136px);
  margin: 0 auto;
  padding: clamp(48px, 11vw, 100px) 0 72px;
  display: grid;
  gap: 46px;
  align-items: center;
}
.hero__copy { position: relative; z-index: 2; }
.eyebrow {
  margin-bottom: .6rem;
  color: var(--olive);
  font: 800 .72rem/1.1 Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.handwritten {
  margin: 0 0 -.3rem;
  color: var(--tomato);
  font-family: "Caveat", cursive;
  font-size: clamp(2.3rem, 10vw, 4.5rem);
  line-height: .9;
  transform: rotate(-3deg);
}
.hero h1 em { color: var(--olive); font-weight: 500; }
.hero__lead { max-width: 580px; font-size: clamp(1rem, 2vw, 1.24rem); color: #5b5547; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0; }
.button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 12px 20px;
  text-decoration: none;
  font: 800 .82rem/1 Arial, sans-serif;
  letter-spacing: .035em;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button--tomato { background: var(--tomato); color: white; box-shadow: 0 9px 22px rgba(185,51,38,.24); }
.button--tomato:hover { background: var(--tomato-dark); }
.button--paper { background: var(--paper-light); border-color: var(--line); color: var(--ink); }
.button--olive { background: var(--olive); color: #fff; }
.button--full { width: 100%; }
.hero__meta { display: grid; gap: 6px; padding-top: 18px; border-top: 1px solid var(--line); color: #66604f; font-size: .8rem; }
.hero__visual { position: relative; min-height: 445px; }
.arch-photo {
  position: absolute;
  inset: 0 0 55px 7%;
  overflow: hidden;
  border: 9px solid var(--paper-light);
  border-bottom-width: 16px;
  border-radius: 48% 48% 18px 18px / 34% 34% 18px 18px;
  box-shadow: var(--shadow);
  background: #786e56;
}
.arch-photo img { width: 100%; height: 100%; object-fit: cover; }
.pizza-plate {
  position: absolute;
  z-index: 1;
  width: min(70%, 370px);
  height: auto;
  right: 3%;
  bottom: 0;
  filter: drop-shadow(0 14px 18px rgba(41,31,17,.22));
  transform: rotate(-6deg);
}
.stamp {
  position: absolute;
  left: 0;
  bottom: 22px;
  width: 86px;
  height: 86px;
  display: grid;
  place-content: center;
  text-align: center;
  border: 2px solid var(--olive);
  border-radius: 50%;
  background: rgba(248,242,229,.9);
  color: var(--olive);
  font: 700 .58rem/1.15 Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: .12em;
  transform: rotate(-9deg);
}
.stamp strong { font-family: "Bodoni Moda", serif; font-size: 1.25rem; letter-spacing: 0; }

.trust-strip {
  padding: 22px 16px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  background: var(--olive);
  color: #fff;
  text-align: center;
}
.trust-strip div { padding: 0 6px; border-right: 1px solid rgba(255,255,255,.22); }
.trust-strip div:last-child { border: 0; }
.trust-strip span, .trust-strip strong, .trust-strip small { display: block; }
.trust-strip__icon { color: #e6d9a6; font-size: 1.1rem; margin-bottom: 4px; }
.trust-strip strong { font-family: "Bodoni Moda", serif; font-size: .9rem; }
.trust-strip small { display: none; opacity: .68; font-size: .68rem; }

.intro, .gallery, .visit {
  width: min(1080px, calc(100% - 32px));
  margin: 0 auto;
  padding: clamp(78px, 13vw, 150px) 0;
}
.intro { position: relative; display: grid; gap: 24px; }
.section-heading { text-align: center; margin-bottom: 38px; }
.section-heading--left { text-align: left; margin-bottom: 0; }
.section-heading p:last-child { color: #6b6352; }
.intro__copy { color: #554f42; font-size: 1.03rem; }
.drop-cap::first-letter {
  float: left;
  margin: .08em .12em 0 0;
  color: var(--tomato);
  font: 700 4.2rem/.75 "Bodoni Moda", serif;
}
.olive-branch { position: absolute; right: 1rem; bottom: 3rem; color: var(--olive); font-size: 5rem; opacity: .14; transform: rotate(-28deg); }

.menu-section { padding: clamp(76px, 11vw, 130px) 0; background: var(--paper-light); border-block: 1px solid var(--line); }
.menu-section > *:not(.category-tabs) { width: min(1080px, calc(100% - 32px)); margin-left: auto; margin-right: auto; }
.menu-section .section-heading { max-width: 700px; }
.menu-section .handwritten { margin-bottom: 0; }
.menu-tools { display: grid; gap: 10px; margin-bottom: 18px; }
.menu-search {
  min-height: 50px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
}
.menu-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); }
.filter-group { display: flex; gap: 8px; }
.filter-chip {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  padding: 8px 14px;
  font: 800 .72rem/1 Arial, sans-serif;
  cursor: pointer;
}
.filter-chip[aria-pressed="true"] { background: var(--olive); color: #fff; border-color: var(--olive); }
.category-tabs {
  position: sticky;
  top: 76px;
  z-index: 90;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 12px max(16px, calc((100vw - 1080px) / 2));
  margin-bottom: 20px;
  background: rgba(255,250,240,.94);
  border-block: 1px solid var(--line);
  backdrop-filter: blur(10px);
  scrollbar-width: none;
}
.category-tabs::-webkit-scrollbar { display: none; }
.category-tab {
  flex: 0 0 auto;
  min-height: 38px;
  border: 0;
  border-radius: 999px;
  padding: 8px 14px;
  background: transparent;
  color: #625b4a;
  font: 800 .73rem/1 Arial, sans-serif;
  cursor: pointer;
}
.category-tab.is-active { background: var(--olive); color: white; }
.menu-category { padding: 38px 0 10px; scroll-margin-top: 180px; }
.menu-category__heading { margin-bottom: 20px; display: flex; align-items: end; gap: 15px; }
.menu-category__heading h2 { margin: 0; font-size: clamp(2rem, 7vw, 3.6rem); }
.menu-category__heading p { margin: 0 0 .25rem; color: var(--tomato); font: 1.5rem/1 "Caveat", cursive; }
.menu-grid { display: grid; gap: 6px; }
.dish-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  padding: 18px 0;
  border-bottom: 1px dashed rgba(69,63,43,.28);
}
.dish-card__image-wrap {
  width: 76px;
  height: 76px;
  overflow: hidden;
  border: 5px solid #fff;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.13);
  background: #eee8db;
}
.dish-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.52);
  transform-origin: center;
}
.dish-card__body { min-width: 0; }
.dish-card:has(.dish-card__image-wrap[hidden]) { grid-template-columns: minmax(0, 1fr); }
.dish-card__headline { display: flex; align-items: baseline; gap: 8px; }
.dish-card__headline h3 { margin: 0; font-size: 1.05rem; max-width: 68%; }
.dish-card__dots { flex: 1; min-width: 10px; border-bottom: 1px dotted #8e846d; transform: translateY(-3px); }
.dish-card__price { white-space: nowrap; font-family: "Bodoni Moda", serif; font-size: 1rem; }
.dish-card__description { margin: 6px 0 0; color: #716958; font-size: .78rem; line-height: 1.45; }
.dish-card__footer { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-top: 10px; }
.dish-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.dish-tag { padding: 4px 7px; border-radius: 999px; background: #ecebd7; color: var(--olive-dark); font: 800 .58rem/1 Arial, sans-serif; }
.dish-order { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.gf-option { display: flex; align-items: center; gap: 5px; font: 700 .64rem/1.2 Arial, sans-serif; color: #655d4c; }
.gf-option input { accent-color: var(--olive); }
.add-button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: var(--tomato);
  color: #fff;
  font: 700 1.4rem/1 Arial, sans-serif;
  cursor: pointer;
  box-shadow: 0 5px 12px rgba(185,51,38,.25);
}
.order-mini {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  padding: 7px 10px;
  font: 800 .65rem/1 Arial, sans-serif;
  cursor: pointer;
}
.menu-empty { padding: 34px; text-align: center; border: 1px dashed var(--line); }

.chef-board { padding: clamp(78px, 12vw, 140px) 16px; background: #d2c29c; }
.chef-board__frame {
  position: relative;
  width: min(900px, 100%);
  margin: auto;
  padding: clamp(32px, 7vw, 70px);
  border: 13px solid #704429;
  border-image: linear-gradient(45deg, #4f2c18, #976443, #56311b) 1;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.035), transparent 28%),
    var(--chalk);
  color: #f4edd7;
  box-shadow: 0 22px 45px rgba(42,28,12,.24), inset 0 0 45px rgba(0,0,0,.25);
  text-align: center;
}
.chef-board .handwritten { color: #f0d982; transform: rotate(-2deg); }
.chef-board h2 { font-size: clamp(2rem, 7vw, 4.8rem); overflow-wrap: break-word; }
.chef-picks { display: grid; gap: 20px; text-align: left; }
.chef-pick { padding: 18px 0; border-block: 1px dashed rgba(255,255,255,.26); }
.chef-pick + .chef-pick { border-top: 0; }
.chef-pick div { display: flex; gap: 12px; align-items: baseline; }
.chef-pick h3, .chef-pick strong { margin: 0; font-size: 1.1rem; }
.chef-pick i { flex: 1; border-bottom: 1px dotted rgba(255,255,255,.55); }
.chef-pick p { margin: 7px 0 0; color: rgba(255,255,255,.7); font-size: .8rem; }
.chalk-art { margin-top: 26px; color: rgba(255,255,255,.48); font-size: 1.25rem; }

.gallery { overflow: hidden; }
.polaroid-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 14px 4px 26px; }
.polaroid {
  margin: 0;
  padding: 8px 8px 24px;
  background: #fff;
  box-shadow: 0 10px 25px rgba(49,39,25,.18);
  transform: rotate(-3deg);
}
.polaroid:nth-child(even) { transform: rotate(3deg) translateY(16px); }
.polaroid img { width: 100%; aspect-ratio: 1 / .85; object-fit: cover; filter: saturate(.85) contrast(1.03); }
.polaroid figcaption { margin-top: 8px; text-align: center; color: #5f584a; font: 1.1rem/1 "Caveat", cursive; }

.booking { padding: 0; overflow: hidden; }
.booking__cloth {
  position: relative;
  min-height: 570px;
  display: grid;
  place-items: center;
  padding: 55px 20px;
  background-color: #a7372f;
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.72) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.72) 75%),
    linear-gradient(rgba(255,255,255,.72) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.72) 75%);
  background-size: 64px 64px;
}
.booking__napkin {
  position: relative;
  z-index: 2;
  width: min(530px, 100%);
  padding: clamp(36px, 8vw, 72px);
  background: #fffaf0;
  box-shadow: 0 18px 45px rgba(55,20,15,.25);
  text-align: center;
  transform: rotate(-1deg);
}
.booking__napkin::before, .booking__napkin::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid #c9b68e;
  pointer-events: none;
}
.booking__napkin::after { inset: 13px; border-style: dashed; opacity: .45; }
.booking__napkin > * { position: relative; z-index: 1; }
.booking h2 {
  font-size: clamp(2rem, 6vw, 3.5rem);
}
.phone-link { display: block; margin: 20px 0 0; color: var(--tomato); font-family: "Bodoni Moda", serif; font-size: clamp(1.6rem, 7vw, 2.7rem); font-weight: 700; text-decoration: none; }
.phone-link--secondary { margin-top: 2px; color: var(--ink); font-size: clamp(1.25rem, 5vw, 2rem); }
.booking__note { margin: 24px 0 0; font-size: .82rem; }
.booking__plate { display: none; }

.visit { display: grid; gap: 30px; }
.visit address { margin: 24px 0 12px; font-style: normal; line-height: 1.8; }
.visit__info > p { color: #655e50; }
.map-consent {
  min-height: 390px;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 35px;
  text-align: center;
  border: 1px solid var(--line);
  background: #d5d0bb;
  overflow: hidden;
}
.map-consent__pattern { font-size: 5rem; color: var(--olive); }
.map-consent iframe { width: 100%; min-height: 390px; border: 0; }

.site-footer { padding: 58px 20px 100px; background: var(--olive-dark); color: #f6f0dc; text-align: center; }
.site-footer img { width: 205px; margin: 0 auto 20px; filter: brightness(0) invert(1); opacity: .92; }
.site-footer p { color: rgba(255,255,255,.7); }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; margin: 26px 0; font: 700 .75rem Arial, sans-serif; }
.site-footer small { color: rgba(255,255,255,.42); }

.cart-bar {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  bottom: max(12px, env(safe-area-inset-bottom));
  z-index: 150;
}
.cart-bar button {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  border: 0;
  border-radius: 16px;
  padding: 10px 16px;
  background: var(--tomato);
  color: #fff;
  box-shadow: 0 12px 30px rgba(92,30,20,.34);
  text-align: left;
  cursor: pointer;
}
.cart-bar span strong, .cart-bar span small { display: block; }
.cart-bar span small { opacity: .74; }
.cart-bar__icon { font-size: 1.35rem; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 180; background: rgba(24,22,17,.56); backdrop-filter: blur(3px); }
.cart-drawer {
  position: fixed;
  z-index: 190;
  inset: 0 0 0 auto;
  width: min(100%, 480px);
  overflow-y: auto;
  padding: 24px 20px calc(30px + env(safe-area-inset-bottom));
  background: var(--paper-light);
  box-shadow: -10px 0 45px rgba(0,0,0,.23);
  transform: translateX(102%);
  transition: transform .28s ease;
}
.cart-drawer.is-open { transform: translateX(0); }
.drawer__header { display: flex; justify-content: space-between; align-items: start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.drawer__header h2 { margin: 0; font-size: 2.5rem; }
.icon-button { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper-light); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.cart-item { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 16px 0; border-bottom: 1px dashed var(--line); }
.cart-item h3 { margin: 0 0 4px; font-size: 1rem; }
.cart-item p { margin: 0; color: #746b59; font-size: .72rem; }
.cart-item__price { font-weight: 700; }
.quantity { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; padding: 3px; border: 1px solid var(--line); border-radius: 999px; }
.quantity button { width: 29px; height: 29px; border: 0; border-radius: 50%; background: #ebe5d8; cursor: pointer; }
.delivery-choice { margin: 22px 0; padding: 0; border: 0; }
.delivery-choice legend, .cart-note { font-weight: 700; }
.delivery-choice label { display: flex; gap: 10px; margin-top: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.delivery-choice input { accent-color: var(--olive); }
.delivery-choice strong, .delivery-choice small { display: block; }
.delivery-choice small { color: #706858; }
.cart-note textarea { width: 100%; margin-top: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; resize: vertical; }
.cart-summary { display: grid; gap: 8px; margin: 22px 0; padding-top: 18px; border-top: 1px solid var(--line); }
.cart-summary > div { display: flex; justify-content: space-between; gap: 12px; }
.cart-summary__total { margin-top: 8px; padding-top: 12px; border-top: 2px solid var(--ink); font-size: 1.16rem; }
.secure-note { margin: 12px 0 0; color: #756d5c; text-align: center; font-size: .72rem; }

.modal {
  width: min(92%, 540px);
  padding: clamp(30px, 7vw, 54px);
  border: 0;
  border-radius: 20px;
  background: var(--paper-light);
  color: var(--ink);
  box-shadow: var(--shadow);
}
.modal::backdrop { background: rgba(29,26,20,.62); backdrop-filter: blur(5px); }
.modal__close { position: absolute; right: 14px; top: 14px; }
.modal h2 { font-size: 2.7rem; }
.order-options { display: grid; gap: 10px; margin-top: 25px; }
.order-option { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 66px; padding: 16px; border-radius: 13px; text-decoration: none; color: white; font-family: Arial, sans-serif; }
.order-option span { font-size: .72rem; opacity: .82; }
.order-option--wolt { background: #08c5d1; }
.order-option--foodora { background: #d70f64; }
.order-option--phone { background: var(--olive); }
.modal__check { width: 60px; height: 60px; display: grid; place-items: center; margin-bottom: 20px; border-radius: 50%; background: var(--olive); color: white; font-size: 2rem; }
.demo-notice { padding: 12px; border-radius: 10px; background: #efe4bf; font-weight: 700; }

@media (min-width: 700px) {
  .demo-switcher__inner { grid-template-columns: auto auto 1fr; }
  .demo-switcher p { grid-column: auto; justify-self: end; font-size: .74rem; }
  .mode-toggle { justify-self: start; }
  .mode-toggle__button { padding-inline: 15px; }
  .hero { grid-template-columns: minmax(0, 1.02fr) minmax(340px, .98fr); }
  .hero h1 { font-size: clamp(3.2rem, 8.2vw, 6rem); }
  .hero__visual { min-height: 560px; }
  .intro { grid-template-columns: .9fr 1.1fr; align-items: start; }
  .menu-tools { grid-template-columns: 1fr auto; }
  .menu-grid { grid-template-columns: 1fr 1fr; column-gap: 38px; }
  .dish-card { min-height: 150px; }
  .chef-picks { grid-template-columns: 1fr 1fr; gap: 35px; }
  .chef-pick + .chef-pick { border-top: 1px dashed rgba(255,255,255,.26); }
  .polaroid-grid { grid-template-columns: repeat(4, 1fr); gap: 22px; }
  .polaroid:nth-child(even) { transform: rotate(3deg) translateY(25px); }
  .booking__cloth { place-items: center start; min-height: 680px; padding-left: 10%; }
  .booking__plate { position: absolute; display: grid; place-items: center; right: 9%; top: 15%; width: min(36vw, 390px); aspect-ratio: 1; border: 18px solid #fff; border-radius: 50%; background: #f3eee2; box-shadow: 0 20px 42px rgba(59,18,13,.26), inset 0 0 0 2px #d5cfc0; }
  .booking__plate span { width: 42%; aspect-ratio: 1; display: grid; place-items: center; border: 2px solid var(--olive); border-radius: 50%; color: var(--olive); font: 700 2.5rem "Bodoni Moda", serif; }
  .visit { grid-template-columns: .8fr 1.2fr; align-items: stretch; }
  .site-footer { padding-bottom: 50px; }
  .cart-bar { left: auto; width: 390px; }
}

@media (min-width: 980px) {
  .site-header { padding-inline: max(40px, calc((100vw - 1180px) / 2)); }
  .desktop-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; font: 800 .74rem/1 Arial, sans-serif; }
  .desktop-nav a { text-decoration: none; }
  .desktop-nav a:hover { color: var(--tomato); }
  .hero__meta { grid-template-columns: 1fr 1fr; }
  .trust-strip small { display: block; }
  .trust-strip strong { font-size: 1.05rem; }
  .dish-card__image-wrap { width: 92px; height: 92px; }
  .dish-card__headline h3 { font-size: 1.12rem; }
}

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