/* V20 menu only. Every selector begins at .v20-menu to isolate the V19 cascade. */
.v20-menu {
  width: 100%;
  min-width: 0;
  overflow: visible;
  background: var(--lt-crema);
  color: var(--lt-tinta);
  font-family: var(--font-body);
}

.v20-menu :where(h1, h2, h3, p, ul, figure) { margin-top: 0; }
.v20-menu :where(section, div, article, li, header, nav) { min-width: 0; }
.v20-menu picture,
.v20-menu picture img { display: block; width: 100%; }
.v20-menu picture img { height: 100%; object-fit: cover; }
.v20-menu .v20-display {
  margin-bottom: 0;
  overflow: visible;
  font-family: var(--font-display) !important;
  font-feature-settings: "liga" 0, "clig" 0;
  font-weight: 400;
  font-variant-ligatures: none;
  line-height: 1.12;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-wrap: balance;
}
.v20-menu .v20-menu-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--lt-rosa-deep);
  font-weight: 700;
  text-decoration-thickness: 2px;
}
.v20-menu .v20-menu-link:hover { text-decoration: underline; }
.v20-menu .v20-menu-link--on-dark { color: var(--lt-crema); }

/* M1: compact answer-first header and three dealt mini-cartas. */
.v20-menu .v20-menu-header {
  min-height: 25rem;
  padding-block: var(--sp-6) var(--sp-7);
  overflow: clip;
  background: var(--lt-crema);
}
.v20-menu .v20-menu-header__grid { display: grid; gap: var(--sp-6); }
.v20-menu .v20-menu-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-bottom: var(--sp-4);
  color: var(--lt-ink-soft);
  font-size: var(--fs-caption);
}
.v20-menu .v20-menu-breadcrumb a,
.v20-menu .v20-menu-breadcrumb [aria-current="page"] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.v20-menu .v20-menu-breadcrumb a { color: var(--lt-rosa-deep); font-weight: 700; }
.v20-menu .v20-menu-header h1 {
  width: 100%;
  max-width: 22ch;
  margin-bottom: var(--sp-4);
  color: var(--lt-tinta);
  font-size: min(var(--fs-title), 7.9vw);
}
.v20-menu .v20-menu-header__lead {
  max-width: 62ch;
  margin-bottom: var(--sp-5);
  color: var(--lt-ink-soft);
  font-size: var(--fs-body-lg);
}
.v20-menu .v20-menu-header__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2) var(--sp-5);
}
.v20-menu .v20-menu-header__actions .v20-button {
  display: inline-flex;
  flex-direction: row;
  gap: var(--sp-2);
}
.v20-menu .v20-menu-header__actions small { color: var(--lt-ink-soft); font-size: var(--fs-fine); }
.v20-menu .v20-menu-fan {
  position: relative;
  width: min(100%, 21rem);
  height: 10rem;
  margin-inline: auto;
}
.v20-menu .v20-menu-fan figure {
  position: absolute;
  top: 0;
  left: 50%;
  width: 8.25rem;
  aspect-ratio: 4 / 5;
  margin: 0;
  padding: 5px;
  overflow: hidden;
  border: var(--bw-frame);
  border-radius: var(--r-card);
  background: var(--lt-blanco);
  box-shadow: var(--shadow-card);
  transform-origin: 50% 100%;
}
.v20-menu .v20-menu-fan figure:nth-child(1) { z-index: 1; transform: translateX(-96%) rotate(-3deg); }
.v20-menu .v20-menu-fan figure:nth-child(2) { z-index: 2; transform: translateX(-50%); }
.v20-menu .v20-menu-fan figure:nth-child(3) { z-index: 1; transform: translateX(-4%) rotate(3deg); }
.v20-menu .v20-menu-fan picture { height: 100%; overflow: hidden; border-radius: calc(var(--r-card) - 5px); }

/* M2: sticky 12-pill jump nav, fully useful without JavaScript. */
.v20-menu .v20-menu-chips {
  position: sticky;
  top: var(--v20-header-h);
  z-index: 90;
  height: 56px;
  border-bottom: var(--bw-hair);
  background: rgba(255,247,236,.98);
}
.v20-menu .v20-menu-chips__track {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  height: 100%;
  padding: 6px max(var(--gutter), calc((100vw - var(--wrap)) / 2));
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-padding-inline: var(--gutter);
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.v20-menu .v20-menu-chips__control { display: none; }
.v20-menu .v20-menu-chips a {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding-inline: var(--sp-4);
  scroll-snap-align: start;
  border: 2px solid var(--lt-tinta);
  border-radius: var(--r-pill);
  background: var(--lt-crema);
  color: var(--lt-tinta);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: background var(--duration-state) var(--ease-out), color var(--duration-state) var(--ease-out);
}
.v20-menu .v20-menu-chips a:hover,
.v20-menu .v20-menu-chips a:focus-visible,
.v20-menu .v20-menu-chips a.is-active,
.v20-menu .v20-menu-chips a[aria-current="location"] { background: var(--lt-tinta); color: var(--lt-crema); }

/* M3-M14: dense printed-menu rows, with three featured cartas only. */
.v20-menu .v20-menu-food {
  padding-block: var(--section-y);
  scroll-margin-top: calc(var(--v20-header-h) + 56px + 12px);
  background: var(--lt-crema);
}
.v20-menu .v20-menu-food:nth-of-type(even) { background: var(--lt-blanco); }
.v20-menu .v20-menu-food:target .v20-menu-food__index { background: var(--lt-marigold-bright); }
.v20-menu .v20-menu-food__head {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  margin-bottom: var(--sp-6);
  padding-bottom: var(--sp-4);
  border-bottom: 2px solid var(--lt-tinta);
}
.v20-menu .v20-menu-food__index {
  display: inline-grid;
  flex: 0 0 44px;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 2px solid var(--lt-tinta);
  border-radius: var(--r-stamp);
  background: var(--lt-marigold);
  color: var(--lt-tinta);
  font-family: var(--font-display);
  font-feature-settings: "liga" 0, "clig" 0;
  font-size: var(--fs-label);
  font-variant-ligatures: none;
  letter-spacing: .06em;
}
.v20-menu .v20-menu-food__head h2 { color: var(--lt-tinta); }
.v20-menu .v20-menu-food__head p { margin: var(--sp-2) 0 0; color: var(--lt-ink-soft); font-size: var(--fs-caption); }
.v20-menu .v20-menu-featured {
  display: grid;
  gap: var(--sp-5);
  width: min(100%, 48rem);
  margin: 0 0 var(--sp-7);
  padding: 8px;
  border: var(--bw-frame);
  border-radius: var(--r-card);
  background: var(--lt-blanco);
  box-shadow: inset 0 0 0 1px var(--lt-tinta), var(--shadow-card);
}
.v20-menu .v20-menu-featured__media { height: min(112vw, 28rem); overflow: hidden; border-radius: var(--r-media); }
.v20-menu .v20-menu-featured__body { align-self: center; padding: 0 var(--sp-3) var(--sp-4); }
.v20-menu .v20-menu-featured__body h3 { margin-bottom: var(--sp-3); color: var(--lt-rouge); }
.v20-menu .v20-menu-featured__body p { color: var(--lt-ink-soft); }
.v20-menu .v20-menu-list { display: block; padding: 0; margin: 0; list-style: none; }
.v20-menu .v20-menu-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 64px;
  padding-block: var(--sp-3);
  break-inside: avoid;
  border-bottom: var(--bw-hair);
}
.v20-menu .v20-menu-item--thumb { grid-template-columns: 72px minmax(0, 1fr); gap: var(--sp-3); }
.v20-menu .v20-menu-item__thumb {
  width: 72px;
  height: 54px;
  overflow: hidden;
  border-radius: var(--r-media);
  background: var(--lt-crema-deep);
}
.v20-menu .v20-menu-item__thumb picture { height: 100%; }
.v20-menu .v20-menu-item__content { align-self: center; min-width: 0; }
.v20-menu .v20-menu-item__line,
.v20-menu .v20-menu-item__variant {
  display: flex;
  align-items: baseline;
  min-width: 0;
  gap: var(--sp-2);
}
.v20-menu .v20-menu-item h3 {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--lt-tinta);
  font-family: var(--font-body) !important;
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: 1.3;
}
.v20-menu .v20-menu-item__dots {
  flex: 1 1 2rem;
  min-width: 1rem;
  border-bottom: 1px dotted var(--lt-ink-soft);
}
.v20-menu .v20-menu-item__price {
  flex: 0 0 auto;
  color: var(--lt-tinta) !important;
  font-size: var(--fs-body);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.v20-menu .v20-menu-item__description {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	gap: var(--sp-2);
	min-height: 1.75rem;
	margin-top: var(--sp-1);
	font-size: var(--fs-caption);
	line-height: 1.35;
}
.v20-menu .v20-menu-item__description-text {
	min-width: 0;
	overflow: hidden;
	color: var(--lt-ink-soft);
	text-overflow: ellipsis;
	white-space: nowrap;
}
.v20-menu .v20-menu-item__description.is-expanded .v20-menu-item__description-text {
	overflow: visible;
	white-space: normal;
}
.v20-menu .v20-menu-item__description-toggle {
	display: none;
	align-items: center;
	gap: var(--sp-1);
	min-height: 44px;
	padding: 0 var(--sp-1);
	border: 0;
	background: transparent;
	color: var(--lt-rosa-deep);
	font: inherit;
	font-weight: 700;
	line-height: inherit;
	white-space: nowrap;
	cursor: pointer;
}
.v20-menu .v20-menu-item__description-toggle.is-truncated { display: inline-flex; }
.v20-menu .v20-menu-item__description-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; transition: transform var(--duration-state) var(--ease-out); }
.v20-menu .v20-menu-item__description-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.v20-menu .v20-menu-item__description-toggle:focus-visible {
	outline: 3px solid var(--lt-marigold-bright);
	outline-offset: 3px;
}
.v20-menu .v20-menu-item__description-empty {
	display: block;
	min-height: 1.35em;
}
/* Kept for old cached markup while the server-rendered description control rolls out. */
.v20-menu .v20-menu-item__content > p {
  max-width: 100%;
  margin: var(--sp-1) 0 0;
  overflow: hidden;
  color: var(--lt-ink-soft);
  font-size: var(--fs-caption);
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v20-menu .v20-menu-item__variants { display: grid; gap: var(--sp-1); margin-top: var(--sp-2); }
.v20-menu .v20-menu-item__variant { color: var(--lt-ink-soft); font-size: var(--fs-caption); font-variant-numeric: tabular-nums; }
.v20-menu .v20-menu-item__variant .v20-menu-item__price { font-size: var(--fs-caption); }

/* Full-bleed field interludes break the long scan without gating it. */
.v20-menu .v20-menu-interlude { padding-block: var(--sp-8); }
.v20-menu .v20-menu-interlude--ayce { min-height: 18.75rem; background: var(--lt-rouge); color: var(--lt-crema); }
.v20-menu .v20-menu-interlude__ayce-grid { display: grid; align-items: center; min-height: 10.75rem; gap: var(--sp-6); }
.v20-menu .v20-menu-interlude__ayce-copy { justify-self: start; }
.v20-menu .v20-menu-interlude__stamp {
  display: inline-block;
  max-width: 18ch;
  margin-bottom: var(--sp-4);
  padding: var(--sp-4);
  border: 2px solid var(--lt-tinta);
  border-radius: var(--r-stamp);
  background: var(--lt-marigold);
  color: var(--lt-tinta);
  font-family: var(--font-display);
  font-feature-settings: "liga" 0, "clig" 0;
  font-size: var(--fs-card);
  font-variant-ligatures: none;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
  transform: rotate(-2deg);
}
.v20-menu .v20-menu-interlude__ayce-media {
  width: min(82vw, 24rem);
  aspect-ratio: 4 / 3;
  margin: 0 auto;
  padding: 6px;
  overflow: hidden;
  border: 2px solid rgba(255,247,236,.9);
  border-radius: var(--r-card);
  transform: rotate(2deg);
}
.v20-menu .v20-menu-interlude__ayce-media picture { height: 100%; overflow: hidden; border-radius: calc(var(--r-card) - 6px); }
.v20-menu .v20-menu-interlude__ayce-media img { width: 100%; height: 100%; object-fit: cover; }
.v20-menu .v20-menu-interlude--bar { min-height: 20rem; background: var(--lt-noche); color: var(--lt-crema); }
.v20-menu .v20-menu-interlude__grid { display: grid; align-items: center; gap: var(--sp-7); }
.v20-menu .v20-menu-interlude--bar h2 { margin-bottom: var(--sp-4); color: var(--lt-crema); }
.v20-menu .v20-menu-interlude--bar p { color: var(--lt-crema-soft); font-size: var(--fs-body-lg); }
.v20-menu .v20-menu-interlude--bar figure {
  width: min(62vw, 17rem);
  aspect-ratio: 4 / 5;
  margin: 0 auto;
  padding: 6px;
  overflow: hidden;
  border: 2px solid rgba(255,247,236,.9);
  border-radius: var(--r-card);
  transform: rotate(2deg);
}
.v20-menu .v20-menu-interlude--bar figure picture { height: 100%; border-radius: calc(var(--r-card) - 6px); overflow: hidden; }

/* M15: the only rosa surface on the page. */
.v20-menu .v20-menu-closing { min-height: 21.25rem; padding-block: var(--sp-8); background: var(--lt-rosa); color: var(--lt-tinta); }
.v20-menu .v20-menu-closing__grid { display: grid; gap: var(--sp-6); }
.v20-menu .v20-menu-closing h2 { margin-bottom: var(--sp-4); color: var(--lt-tinta); }
.v20-menu .v20-menu-closing p { max-width: 48ch; font-size: var(--fs-body-lg); }
.v20-menu .v20-menu-closing__actions { display: grid; gap: var(--sp-2); }
.v20-menu .v20-menu-closing__actions .v20-button { width: 100%; }
.v20-menu .v20-menu-closing__primary { border-color: var(--lt-tinta); background: var(--lt-tinta); color: var(--lt-crema); }
.v20-menu .v20-menu-closing__primary:hover { background: var(--lt-noche); color: var(--lt-crema); }
.v20-menu .v20-menu-closing__secondary { border-color: var(--lt-tinta); background: transparent; color: var(--lt-tinta); }
.v20-menu .v20-menu-closing__secondary:hover { background: var(--lt-tinta); color: var(--lt-crema); }
.v20-menu .v20-menu-closing__pdf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  color: var(--lt-tinta);
  font-weight: 700;
  text-underline-offset: .18em;
}

@media (min-width: 640px) {
  .v20-menu .v20-menu-featured { grid-template-columns: minmax(0, 42%) minmax(0, 1fr); }
  .v20-menu .v20-menu-featured__media { height: 25rem; }
  .v20-menu .v20-menu-featured__body { padding: var(--sp-5); }
  .v20-menu .v20-menu-closing__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v20-menu .v20-menu-closing__pdf { grid-column: 1 / -1; }
}

@media (min-width: 768px) {
  .v20-menu .v20-menu-header__grid { grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr); align-items: center; }
  .v20-menu .v20-menu-fan { height: 13.75rem; }
  .v20-menu .v20-menu-fan figure { width: 10.5rem; }
  .v20-menu .v20-menu-interlude__grid { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); }
	.v20-menu .v20-menu-interlude__ayce-grid { grid-template-columns: minmax(0, 1fr) minmax(16rem, 24rem); }
	.v20-menu .v20-menu-interlude__ayce-media { width: min(100%, 24rem); }
  .v20-menu .v20-menu-interlude--bar figure { width: min(100%, 20rem); }
}

@media (min-width: 1024px) {
  .v20-menu .v20-menu-header { min-height: 22.5rem; padding-block: var(--sp-7); }
  .v20-menu .v20-menu-header__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .v20-menu .v20-menu-header__copy { grid-column: 1 / span 7; }
  .v20-menu .v20-menu-fan { grid-column: 8 / span 5; width: 100%; }
  .v20-menu .v20-menu-chips.is-overflowing {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: var(--sp-2);
    padding-inline: max(var(--gutter), calc((100vw - var(--wrap)) / 2));
  }
  .v20-menu .v20-menu-chips.is-overflowing .v20-menu-chips__track {
    justify-content: flex-start;
    padding-inline: 0 2px;
    scroll-padding-inline: 0;
  }
  .v20-menu .v20-menu-chips.is-overflowing .v20-menu-chips__control {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 2px solid var(--lt-tinta);
    border-radius: 50%;
    background: var(--lt-crema);
    color: var(--lt-tinta);
    cursor: pointer;
  }
  .v20-menu .v20-menu-chips__control:hover { background: var(--lt-tinta); color: var(--lt-crema); }
  .v20-menu .v20-menu-chips__control:disabled { cursor: default; opacity: .38; }
  .v20-menu .v20-menu-chips__control svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
  .v20-menu .v20-menu-list { columns: 2; column-gap: 48px; }
  .v20-menu .v20-menu-item { min-height: 64px; }
  .v20-menu .v20-menu-closing { min-height: 16.25rem; }
  .v20-menu .v20-menu-closing__grid { grid-template-columns: minmax(0, 1fr) minmax(30rem, .9fr); align-items: center; }
  .v20-menu .v20-menu-closing__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 359px) {
  .v20-menu .v20-menu-header__actions { align-items: stretch; flex-direction: column; }
  .v20-menu .v20-menu-header__actions > * { width: 100%; justify-content: center; }
  .v20-menu .v20-menu-item--thumb { grid-template-columns: 60px minmax(0, 1fr); gap: var(--sp-2); }
  .v20-menu .v20-menu-item__thumb { width: 60px; height: 45px; }
  .v20-menu .v20-menu-item h3,
  .v20-menu .v20-menu-item__price { font-size: .9375rem; }
}

@media (prefers-reduced-motion: reduce) {
  .v20-menu .v20-menu-chips a { transition: none; }
}
