/* MENUVO brand colors: evergreen #031A0D, green #569B78, lime #E5F9B3. */
.menu-vivo {
  --mv-black: #031A0D;
  --mv-green: #569B78;
  --mv-lime: #E5F9B3;
  --mv-accent: #569B78;
  --mv-bg: #f5f7f3;
  --mv-ink: #031A0D;
  --mv-muted: #526257;
  --mv-line: #dce4dc;
  --mv-gutter: clamp(20px, 4vw, 72px);
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  background: var(--mv-bg);
  color: var(--mv-ink);
  text-align: left;
  font: 400 15px/1.6 ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
.menu-vivo *, .menu-vivo *::before, .menu-vivo *::after { box-sizing: border-box; }
.menu-vivo [hidden] { display: none !important; }
.menu-vivo button, .menu-vivo input, .menu-vivo select, .menu-vivo textarea { font: inherit; letter-spacing: normal; text-transform: none; }
.menu-vivo button { cursor: pointer; transition: background-color .16s ease, color .16s ease, box-shadow .16s ease; }
.menu-vivo button:disabled { opacity: .45; cursor: default; }
.menu-vivo button:focus-visible, .menu-vivo a:focus-visible, .menu-vivo input:focus-visible, .menu-vivo select:focus-visible, .menu-vivo textarea:focus-visible { outline: 3px solid #267044; outline-offset: 4px; }
.menu-vivo h1, .menu-vivo h2, .menu-vivo h3, .menu-vivo p { color: inherit; text-transform: none; }
.menu-vivo h1, .menu-vivo h2, .menu-vivo h3 { font-family: inherit; font-weight: 650; letter-spacing: -.04em; }
.menu-vivo ul { list-style: none; padding: 0; margin: 0; }
.menu-vivo svg { width: 22px; height: 22px; flex: none; }
.menu-vivo img { max-width: 100%; }
.menu-vivo dialog:not([open]) { display: none; }
.mv-catalog { width: 100%; margin: 0; }
.mv-header { padding: 0; background: var(--mv-black); color: white; }
.mv-topline { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 76px; padding: 14px var(--mv-gutter); border-bottom: 1px solid #ffffff18; }
.mv-restaurant-identity { display: flex; align-items: center; gap: 12px; min-width: 0; font-size: 14px; font-weight: 650; letter-spacing: -.02em; }
.mv-restaurant-identity > span:last-child { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mv-restaurant-logo, .mv-restaurant-monogram { flex: none; width: 46px; height: 46px; border-radius: 50%; }
.mv-restaurant-logo { object-fit: contain; background: white; padding: 5px; border: 1px solid var(--mv-line); }
.mv-restaurant-monogram { display: grid; place-items: center; background: var(--mv-lime); color: var(--mv-black); font-weight: 650; font-size: 23px; }
.mv-provider { display: flex; align-items: center; gap: 11px; flex: none; }
.mv-provider > span { font-size: 10px; color: #cbd7cd; }
.mv-provider img { display: block; width: 105px; max-height: 30px; object-fit: contain; }
.mv-hero { position: relative; isolation: isolate; display: flex; align-items: center; overflow: hidden; min-height: 300px; background: var(--mv-black); color: white; }
.mv-hero-copy { position: relative; z-index: 2; width: 100%; padding: 48px var(--mv-gutter) 52px; }
.mv-hero.has-cover { min-height: clamp(400px, 47vw, 600px); }
.mv-hero.has-cover::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #031a0de8 0%, #031a0d99 48%, #031a0d18 100%), linear-gradient(0deg, #031a0d80, transparent 55%); pointer-events: none; }
.mv-hero.has-cover .mv-hero-copy { padding-top: 64px; padding-bottom: 64px; }
.mv-cover { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mv-eyebrow { display: inline-block; font-size: 10px; letter-spacing: .15em; font-weight: 650; color: var(--mv-lime); }
.menu-vivo .mv-hero h1 { max-width: 22ch; margin: 14px 0 16px; color: white; font-size: clamp(34px, 4.6vw, 64px); font-weight: 650; line-height: 1.06; letter-spacing: -.045em; overflow-wrap: anywhere; text-wrap: balance; }
.menu-vivo .mv-welcome { max-width: 580px; margin: 0 0 22px; color: #d5e1d6; font-size: 15px; line-height: 1.7; }
.mv-menu-status { display: flex; gap: 8px; align-items: center; width: fit-content; max-width: 100%; padding: 7px 10px; border-radius: 7px; background: #031a0d55; color: #e1e9de; font-size: 11px; }
.mv-status-dot { display: inline-block; width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--mv-lime); }
.menu-vivo .mv-header-cart { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; margin-top: 20px; padding: 9px 16px; border: 1px solid var(--mv-lime); border-radius: 8px; background: var(--mv-lime); color: var(--mv-black); font-size: 12px; font-weight: 650; }
.mv-header-cart svg { width: 17px; height: 17px; }
.mv-business-details { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 21px; max-width: 600px; font-size: 10px; color: #cad7ca; }
.mv-business-details a { color: inherit; text-underline-offset: 3px; }
.mv-navigation { position: sticky; top: var(--menuvo-sticky-offset, 0px); z-index: 8; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 14px var(--mv-gutter); background: #f5f7f3f5; border-bottom: 1px solid var(--mv-line); backdrop-filter: blur(14px); }
.mv-search { order: 2; display: flex; align-items: center; gap: 10px; width: 260px; flex: none; margin: 0; padding: 0 14px; min-height: 44px; border: 1px solid #d6dfd2; border-radius: 100px; background: white; color: #5a6d5d; box-shadow: none; }
.mv-search svg { width: 18px; height: 18px; }
.menu-vivo .mv-search input { display: block; appearance: none; -webkit-appearance: none; min-width: 0; width: 100%; min-height: 42px; margin: 0; padding: 9px 0; border: 0; border-radius: 0; background: transparent; color: var(--mv-black); font: inherit; font-size: 13px; line-height: 1.5; box-shadow: none; }
.menu-vivo .mv-search input:focus { outline: 0; box-shadow: none; }
.mv-search:focus-within { outline: 3px solid #267044; outline-offset: 2px; }
.mv-search input::placeholder { color: #647064; opacity: 1; }
.mv-filters { display: flex; flex: 1; align-items: center; gap: 7px; min-width: 0; overflow-x: auto; scrollbar-width: thin; padding: 3px 0; }
.menu-vivo .mv-filter { min-height: 44px; padding: 9px 16px; flex: none; border: 1px solid transparent; border-radius: 100px; background: transparent; color: #485a4c; font-size: 12px; font-weight: 550; line-height: 1.5; white-space: nowrap; }
.menu-vivo .mv-filter:hover { background: #e6ede3; color: var(--mv-black); }
.menu-vivo .mv-filter.is-selected { background: var(--mv-black); color: var(--mv-lime); border-color: var(--mv-black); }
.mv-view-bar { display: flex; justify-content: space-between; align-items: center; gap: 18px; max-width: 1744px; margin: 0 auto; padding: 24px var(--mv-gutter) 20px; }
.menu-vivo .mv-results-count { margin: 0; color: var(--mv-muted); font-size: 12px; }
.menu-vivo .mv-feed-open, .menu-vivo .mv-text-button { display: inline-flex; justify-content: center; align-items: center; gap: 7px; min-height: 42px; padding: 8px 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; color: var(--mv-black); font-size: 11px; font-weight: 600; line-height: 1.4; }
.mv-feed-open svg, .mv-text-button svg { width: 15px; height: 15px; }
.mv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 1744px; margin: 0 auto; padding: 0 var(--mv-gutter) 52px; }
.mv-dish { display: flex; flex-direction: column; min-width: 0; background: white; border: 1px solid #e1e7de; border-radius: 18px; overflow: hidden; scroll-margin-top: 130px; }
.mv-dish:focus { outline: 3px solid #267044; outline-offset: 4px; }
.mv-dish-media { position: relative; aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; background: #eaf0e4; }
.mv-dish-media > img, .mv-dish-media > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; border-radius: 0; }
.mv-dish-media > video { z-index: 2; background: var(--mv-black); }
.mv-photo-fallback { padding: 24px; color: #52694f; text-align: center; font-size: 12px; }
.menu-vivo .mv-video-play { display: inline-flex; align-items: center; justify-content: center; position: absolute; right: 13px; bottom: 13px; z-index: 3; min-height: 44px; padding: 9px 13px; border: 1px solid #ffffff88; border-radius: 100px; background: #031a0de8; color: white; font-size: 11px; font-weight: 550; line-height: 1.4; backdrop-filter: blur(8px); }
.mv-dish-copy { display: flex; flex-direction: column; flex: 1; padding: 22px; }
.mv-dish-title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 11px; }
.menu-vivo .mv-dish-title h2 { flex: 1; min-width: 130px; margin: 0; color: var(--mv-black); font-size: 21px; font-weight: 650; line-height: 1.2; letter-spacing: -.035em; overflow-wrap: anywhere; }
.mv-dish-title > strong { padding-top: 2px; color: var(--mv-black); font-size: 14px; font-weight: 650; white-space: nowrap; }
.menu-vivo .mv-dish-description { margin: 12px 0 16px; color: var(--mv-muted); font-size: 12px; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.mv-availability { display: flex; align-items: center; gap: 6px; width: fit-content; margin: auto 0 17px; padding-top: 5px; color: #3b6746; font-size: 10px; }
.mv-availability::before { content: ""; display: block; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.mv-availability.is-sold { color: #9d493c; }
.mv-dish-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; padding-top: 15px; border-top: 1px solid #edf0ea; }
.menu-vivo .mv-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid var(--mv-black); border-radius: 9px; box-shadow: none; background: var(--mv-black); color: white; font-size: 12px; font-weight: 600; line-height: 1.45; }
.menu-vivo .mv-primary:hover:not(:disabled) { background: #173e23; border-color: #173e23; }
.menu-vivo .mv-add { min-width: 104px; }
.mv-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; padding: 34px var(--mv-gutter) 110px; border-top: 1px solid var(--mv-line); color: var(--mv-muted); font-size: 11px; }
.mv-footer-name { display: grid; gap: 7px; }
.mv-footer-name strong { color: var(--mv-black); font-size: 13px; font-weight: 650; }
.mv-footer-name span { font-size: 10px; }
.mv-powered { width: 145px; max-height: 40px; object-fit: contain; }
.menu-vivo .mv-footer > p { width: 100%; margin: 0; font-size: 10px; }
.mv-empty { grid-column: 1 / -1; padding: 65px 25px; border: 1px dashed #c7d4c6; border-radius: 17px; text-align: center; }
.menu-vivo .mv-empty h2 { margin: 0 0 11px; font-size: 25px; }
.menu-vivo .mv-empty p { margin: 0 0 20px; color: var(--mv-muted); font-size: 13px; }
.menu-vivo .mv-cart-toggle { position: fixed; right: max(24px, calc((100vw - 1264px) / 2)); bottom: calc(env(safe-area-inset-bottom, 0px) + 24px); z-index: 999990; display: flex; align-items: center; gap: 11px; min-height: 56px; max-width: calc(100vw - 32px); margin: 0; padding: 14px 19px; border: 1px solid #ffffff30; border-radius: 14px; background: var(--mv-black); color: var(--mv-lime); font-size: 12px; font-weight: 600; line-height: 1.4; box-shadow: 0 7px 28px #031a0d33; }
.mv-cart-toggle > svg { width: 19px; height: 19px; }
.mv-cart-toggle > svg:last-child { width: 16px; height: 16px; }
.mv-cart-count { display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 5px; border-radius: 6px; background: var(--mv-lime); color: var(--mv-black); font-size: 10px; }
.mv-cart-total { margin-left: 7px; padding-left: 15px; border-left: 1px solid #e5f9b33d; font-size: 12px; font-weight: 600; color: white; }
/* Checkout: native top-layer dialogs and matching inert fallback. */
.mv-cart-backdrop { position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; padding: 18px; background: #031a0d80; color: var(--mv-black); overscroll-behavior: contain; }
.mv-cart-dialog { position: relative; display: flex; flex-direction: column; width: min(100%, 570px); max-width: 100%; max-height: 92vh; max-height: 92dvh; margin: 0; padding: 25px; border: 1px solid #ffffff; border-radius: 22px; background: #fbfcf8; color: var(--mv-black); box-shadow: 0 22px 80px #031a0d30; outline: none; }
.mv-cart-dialog[data-mv-native="true"] { position: fixed; inset: 50% 0 auto; margin: 0 auto; transform: translateY(-50%); }
.mv-cart-dialog::backdrop { background: #031a0d99; backdrop-filter: blur(4px); }
.mv-cart-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 0 0 22px; border-bottom: 1px solid var(--mv-line); }
.menu-vivo .mv-cart-header p { margin: 0 0 7px; color: var(--mv-muted); font-size: 10px; }
.menu-vivo .mv-cart-header h2 { margin: 0; color: var(--mv-black); font-size: 30px; line-height: 1.15; letter-spacing: -.04em; }
.menu-vivo .mv-cart-close { display: grid; place-items: center; flex: none; width: 40px; height: 40px; min-height: 40px; padding: 0; border: 1px solid #d4dfd2; border-radius: 50%; box-shadow: none; background: #fff; color: var(--mv-black); font-size: 25px; font-weight: 400; line-height: 1; }
.mv-cart-scroll { overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; scrollbar-width: thin; }
.mv-cart-lines > li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 21px 0; border-bottom: 1px solid var(--mv-line); }
.mv-cart-lines > li > div:first-child { display: grid; align-content: center; gap: 7px; min-width: 0; }
.mv-cart-lines strong { color: var(--mv-black); font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.mv-cart-lines small { color: var(--mv-muted); font-size: 10px; }
.mv-quantity { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; flex: none; gap: 5px; max-width: 145px; }
.menu-vivo .mv-quantity button { display: flex; align-items: center; justify-content: center; width: 34px; min-height: 38px; padding: 4px; border: 1px solid #d4dfd2; border-radius: 7px; background: white; color: var(--mv-black); font-size: 17px; line-height: 1; }
.mv-quantity output { min-width: 20px; text-align: center; font-size: 12px; }
.menu-vivo .mv-quantity .mv-remove { width: auto; padding: 4px 7px; border: 0; background: none; color: var(--mv-muted); font-size: 10px; }
.menu-vivo .mv-total { display: flex; justify-content: space-between; gap: 16px; margin: 23px 0; padding: 16px; border: 1px solid #d5e2cc; border-radius: 10px; background: #edf5e5; color: var(--mv-black); font-size: 13px; }
.mv-total strong { font-size: 17px; font-weight: 650; }
.mv-fields { display: grid; gap: 8px; min-width: 0; margin: 28px 0 20px; padding: 0; border: 0; }
.mv-fields legend { margin-bottom: 20px; color: var(--mv-black); font-size: 16px; font-weight: 650; letter-spacing: -.025em; }
.mv-fields label { margin-top: 9px; color: #2c4330; font-size: 11px; font-weight: 550; }
.menu-vivo .mv-fields input, .menu-vivo .mv-fields select, .menu-vivo .mv-fields textarea { display: block; width: 100%; min-width: 0; min-height: 46px; margin: 0; padding: 11px 12px; border: 1px solid #c5d3c0; border-radius: 9px; box-shadow: none; background: white; color: var(--mv-black); font: 400 16px/1.5 ui-sans-serif, system-ui, sans-serif; }
.menu-vivo .mv-fields textarea { resize: vertical; }
.mv-fields:disabled { opacity: .65; }
.menu-vivo .mv-hint { margin: 18px 0; color: var(--mv-muted); font-size: 11px; line-height: 1.7; }
.menu-vivo .mv-submit { width: 100%; min-height: 49px; margin: 0; border-color: var(--mv-black); background: var(--mv-black); color: var(--mv-lime); font-size: 12px; }
.menu-vivo .mv-continue { display: block; width: 100%; min-height: 44px; margin-top: 8px; padding: 11px; border: 0; border-radius: 0; box-shadow: none; background: none; color: #37533e; font-size: 11px; }
.menu-vivo .mv-cart-error, .menu-vivo .mv-error-text { color: #9a372d; font-size: 12px; line-height: 1.6; }
.menu-vivo .mv-cart-error { padding: 12px; border-left: 2px solid #bc5945; background: #fff1ed; border-radius: 0 7px 7px 0; }
.menu-vivo .mv-refresh { min-height: 44px; margin: 7px 0; padding: 10px 13px; border: 1px solid #adc4a0; border-radius: 8px; background: #edf5e5; color: var(--mv-black); font-size: 11px; }
.mv-honeypot, .mv-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; padding: 0; margin: -1px; border: 0; }
.menu-vivo .mv-confirmation h3 { margin: 28px 0 14px; font-size: 27px; line-height: 1.25; letter-spacing: -.04em; overflow-wrap: anywhere; }
.menu-vivo .mv-receipt-status { display: inline-block; padding: 9px 12px; border-radius: 7px; background: var(--mv-lime); color: var(--mv-black); font-size: 11px; font-weight: 600; }
.mv-receipt-items > li { display: flex; justify-content: space-between; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--mv-line); font-size: 12px; }
.mv-receipt-items > li > span { overflow-wrap: anywhere; }
/* Discovery puts the complete photograph or video first; playback is still explicit. */
.mv-feed { position: fixed; inset: 0; z-index: 999980; width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #07120b; color: white; isolation: isolate; outline: none; }
.mv-feed::backdrop { background: #07120b; }
.mv-feed-top { position: absolute; inset: 0 0 auto; z-index: 6; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: calc(env(safe-area-inset-top, 0px) + 10px) 20px 20px; background: linear-gradient(#031a0dd9, transparent); pointer-events: none; }
.menu-vivo .mv-feed-back { min-height: 44px; padding: 9px 14px; border: 1px solid #ffffff35; border-radius: 100px; background: #031a0d88; color: white; font-size: 12px; backdrop-filter: blur(12px); pointer-events: auto; }
.mv-feed-top > span { max-width: 60%; overflow: hidden; color: #fff; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 8px #0009; }
.mv-feed-scroll { height: 100%; overflow-y: auto; scroll-snap-type: y mandatory; overscroll-behavior-y: contain; scrollbar-width: none; }
.mv-feed-scroll::-webkit-scrollbar { display: none; }
.mv-reel { position: relative; height: 100vh; height: 100dvh; overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; background: #07120b; }
.mv-reel .mv-dish-media { position: absolute; inset: 0; aspect-ratio: auto; background: #07120b; }
.mv-reel .mv-dish-media { overflow: hidden; }
.mv-reel .mv-dish-media::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; background: linear-gradient(180deg, #07120bb3 0%, #07120b33 13%, transparent 24%, transparent 50%, #07120bb8 74%, #07120bf2 100%); }
/* Pantalla completa, como un reel: la foto o el video llenan el teléfono de borde a borde. */
.mv-reel .mv-dish-media > img, .mv-reel .mv-dish-media > video { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; background: transparent; transform: translate3d(0, var(--mv-shift, 0%), 0) scale(var(--mv-zoom, 1)); transform-origin: center; will-change: transform; backface-visibility: hidden; }
.mv-reel .mv-dish-media > img { z-index: 1; }
.mv-reel .mv-dish-media > video { z-index: 2; pointer-events: none; }
.mv-reel .mv-photo-fallback { position: relative; z-index: 1; max-width: 240px; margin-bottom: 160px; color: #bccdbc; font-size: 13px; }
.mv-reel .mv-video-play { top: calc(env(safe-area-inset-top, 0px) + 70px); right: 20px; bottom: auto; z-index: 5; }
.mv-reel-copy { position: absolute; z-index: 5; left: max(24px, calc((100vw - 1000px) / 2)); right: max(80px, calc((100vw - 1100px) / 2)); bottom: calc(env(safe-area-inset-bottom, 0px) + 78px); max-width: 900px; pointer-events: none; }
.mv-reel-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; }
.menu-vivo .mv-reel-copy h2 { min-width: 0; margin: 0; color: white; font-size: clamp(23px, 3vw, 37px); font-weight: 650; line-height: 1.15; letter-spacing: -.035em; text-shadow: 0 2px 12px #0004; overflow-wrap: anywhere; text-wrap: balance; }
.mv-reel-price { flex: none; color: var(--mv-lime); font-size: clamp(18px, 2vw, 23px); font-weight: 600; white-space: nowrap; }
.mv-reel-copy .mv-availability { margin: 0 0 8px; padding: 0; color: #d5e9c9; font-size: 10px; }
.mv-reel-copy .mv-availability.is-sold { color: #ffd4c7; }
.mv-reel-details { margin-top: 5px; width: fit-content; max-width: 100%; pointer-events: auto; }
.mv-reel-details summary { display: flex; align-items: center; gap: 8px; min-height: 44px; width: fit-content; padding: 7px 0; color: #c9d8c5; font-size: 12px; cursor: pointer; list-style: none; }
.mv-reel-details summary::-webkit-details-marker { display: none; }
.mv-reel-details summary::after { content: "+"; color: var(--mv-lime); font-size: 17px; }
.mv-reel-details[open] summary::after { content: "−"; }
.mv-reel-details summary:focus-visible { outline: 3px solid var(--mv-lime); outline-offset: 3px; border-radius: 3px; }
.menu-vivo .mv-reel-details p { max-height: 24dvh; max-width: 650px; overflow: auto; margin: 0 0 10px; padding: 12px 15px; border: 1px solid #ffffff25; border-radius: 12px; background: #07120bf5; color: #e0e9db; font-size: 13px; line-height: 1.65; white-space: pre-line; overscroll-behavior: contain; }
.mv-reel-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 10px; }
.menu-vivo .mv-reel-copy .mv-primary { min-width: 110px; min-height: 44px; margin: 0; padding: 10px 20px; border-color: var(--mv-lime); border-radius: 100px; background: var(--mv-lime); color: var(--mv-black); pointer-events: auto; }
.mv-feed-controls { position: absolute; z-index: 6; top: 50%; right: 16px; display: grid; gap: 9px; transform: translateY(-50%); }
.menu-vivo .mv-feed-nav { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff35; border-radius: 50%; background: #031a0d66; color: white; font-size: 19px; backdrop-filter: blur(10px); }
.mv-feed-position { position: absolute; z-index: 6; left: max(24px, calc((100vw - 1000px) / 2)); bottom: calc(env(safe-area-inset-bottom, 0px) + 23px); color: #d5e9c9; font-size: 11px; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.menu-vivo .mv-feed-hint { position: absolute; z-index: 6; left: max(24px, calc((100vw - 1000px) / 2)); bottom: calc(env(safe-area-inset-bottom, 0px) + 43px); margin: 0; color: #a7b7a1; font-size: 10px; }
/* Server-rendered, crawlable fallback uses the same restaurant identity. */
.mv-ssr-catalog { width: min(100%, 1264px); margin: 0 auto; padding: 48px; }
.mv-ssr-header { padding: 38px; border-radius: 22px; background: var(--mv-black); color: white; }
.mv-ssr-header h1 { margin: 12px 0; font-size: clamp(36px, 5vw, 64px); line-height: 1.1; }
.mv-ssr-header p { max-width: 600px; color: #e0e9da; font-size: 14px; }
.mv-ssr-categories { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0; }
.mv-ssr-categories a { display: inline-block; padding: 10px 16px; border: 1px solid var(--mv-line); border-radius: 9px; background: white; color: var(--mv-black); font-size: 12px; text-decoration: none; }
.mv-ssr-section { margin-top: 36px; scroll-margin-top: 24px; }
.mv-ssr-section > h2 { font-size: 26px; }
.mv-ssr-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.mv-ssr-dish { overflow: hidden; padding: 21px; border: 1px solid var(--mv-line); border-radius: 17px; background: white; scroll-margin-top: 30px; }
.mv-ssr-dish > img, .mv-ssr-dish figure > img { display: block; width: 100%; height: 220px; object-fit: cover; border-radius: 10px; }
.mv-ssr-dish h3 { margin: 19px 0 11px; font-size: 21px; }
.mv-ssr-dish p { color: var(--mv-muted); font-size: 12px; }
@media (max-width: 1100px) {
  .mv-navigation { padding: 14px 32px; }
  .mv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 32px 40px; }
  .mv-view-bar { padding: 24px 32px 20px; }
  .mv-footer { padding-left: 32px; padding-right: 32px; }
  .mv-search { width: 220px; }
}
@media (max-width: 760px) {
  .mv-provider { gap: 7px; }
  .mv-provider > span { display: none; }
  .mv-provider img { width: 88px; }
  .mv-restaurant-identity { gap: 9px; font-size: 12px; }
  .mv-restaurant-identity > span:last-child { max-width: 200px; }
  .mv-restaurant-logo, .mv-restaurant-monogram { width: 37px; height: 37px; }
  .mv-restaurant-monogram { font-size: 19px; }
  .menu-vivo .mv-welcome { font-size: 13px; }
  .mv-eyebrow { font-size: 9px; }
  .mv-navigation { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 12px 20px 9px; }
  .mv-search { order: 0; width: 100%; min-height: 44px; }
  .menu-vivo .mv-search input { font-size: 14px; padding: 10px 0; }
  .mv-filters { flex: auto; width: 100%; padding: 2px 0; scrollbar-width: none; }
  .menu-vivo .mv-filter { min-height: 44px; font-size: 11px; padding: 9px 14px; }
  .mv-view-bar { padding: 21px 20px 18px; gap: 12px; }
  .menu-vivo .mv-results-count { font-size: 10px; }
  .menu-vivo .mv-feed-open { font-size: 10px; gap: 4px; }
  .mv-grid { gap: 17px; padding: 0 20px 32px; }
  .mv-dish-copy { padding: 18px; }
  .menu-vivo .mv-dish-title h2 { font-size: 20px; }
  .mv-dish-title > strong { font-size: 13px; }
  .mv-dish-title { display: grid; gap: 9px; }
  .mv-dish-actions { gap: 6px; }
  .menu-vivo .mv-add { min-width: 85px; padding: 10px 13px; }
  .menu-vivo .mv-text-button { font-size: 10px; }
  .mv-footer { padding: 29px 20px 110px; }
  .mv-powered { width: 115px; }
  .mv-ssr-catalog { padding: 20px; }
  .mv-ssr-header { padding: 27px; }
  .mv-ssr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
  .mv-cart-dialog[data-mv-native="true"] { inset: auto 0 0; margin: 0; transform: none; }
  .mv-cart-backdrop { align-items: flex-end; padding: 0; }
  .mv-cart-dialog { width: 100%; max-width: 100%; max-height: 93vh; max-height: 93dvh; padding: 23px 20px calc(env(safe-area-inset-bottom, 0px) + 18px); border-radius: 23px 23px 0 0; }
  .menu-vivo .mv-cart-toggle { right: 16px; bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); gap: 10px; min-height: 54px; padding: 13px 16px; border-radius: 13px; }
  .mv-cart-total { padding-left: 12px; margin-left: 2px; font-size: 11px; }
}
@media (max-width: 520px) {
  .mv-grid { grid-template-columns: 1fr; gap: 22px; }
  .mv-dish { border-radius: 17px; }
  .mv-dish-media { aspect-ratio: 16 / 11; }
  .mv-dish-copy { padding: 21px; }
  .mv-dish-title { display: flex; gap: 12px; }
  .menu-vivo .mv-dish-title h2 { font-size: 24px; }
  .mv-dish-title > strong { font-size: 14px; }
  .menu-vivo .mv-dish-description { font-size: 13px; }
  .mv-availability { font-size: 11px; margin-bottom: 16px; }
  .menu-vivo .mv-primary { min-height: 46px; }
  .mv-restaurant-identity > span:last-child { max-width: 153px; }
  .mv-provider img { width: 75px; }
  .mv-quantity { max-width: 135px; gap: 3px; }
  .mv-cart-lines > li { gap: 10px; }
  .mv-ssr-grid { grid-template-columns: 1fr; }
}
@media (max-height: 560px) and (pointer: coarse) {
}
@media (prefers-reduced-motion: reduce) {
  .menu-vivo * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

.mv-ssr-brand{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:24px}.mv-ssr-brand img{display:block;flex:none}.mv-ssr-brand span{font-size:13px;color:var(--mv-lime)}.mv-ssr-cover{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin-bottom:26px}

.mv-hero,.mv-ssr-header{border-top:4px solid var(--mv-accent)}

/* Social actions use the visitor cookie from the API; no personal details go to storage. */
.mv-social-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.menu-vivo .mv-social-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 9px 11px; border: 1px solid #cdd9ca; border-radius: 9px; background: #f7faf4; color: var(--mv-black); font: 550 11px/1.4 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.mv-social-button svg { width: 18px; height: 18px; flex: none; }
.menu-vivo .mv-social-button.is-liked { border-color: #43815e; background: #e5f9b3; color: #163b24; }
.mv-social-button.is-liked svg { fill: currentColor; }
.mv-like-count { min-width: 12px; font-variant-numeric: tabular-nums; }
.mv-social-feedback { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; padding: 16px 24px; border-top: 1px solid var(--mv-line); background: #edf5e5; color: var(--mv-black); font-size: 12px; }
.mv-reel-social { flex-wrap: nowrap; gap: 8px; margin: 0; pointer-events: auto; }
.mv-reel-social .mv-social-button > span:not(.mv-like-count) { display: none; }
.menu-vivo .mv-reel-social .mv-social-button { min-width: 44px; min-height: 44px; padding: 10px; border-radius: 100px; }
.menu-vivo .mv-reel-social .mv-social-button { background: #031a0dbd; border-color: #ffffff66; color: white; }
.menu-vivo .mv-reel-social .mv-social-button.is-liked { background: var(--mv-lime); border-color: var(--mv-lime); color: var(--mv-black); }
.menu-vivo .mv-feed-cart { position: absolute; z-index: 7; right: 20px; bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); max-width: calc(100vw - 160px); min-height: 44px; margin: 0; padding: 10px 15px; border: 1px solid #d4e4c8; border-radius: 100px; background: var(--mv-lime); color: var(--mv-black); font-size: 11px; font-weight: 650; line-height: 1.4; }
.menu-vivo .mv-feed-feedback { position: absolute; z-index: 8; left: 20px; right: 20px; top: calc(env(safe-area-inset-top, 0px) + 66px); height: fit-content; max-width: 520px; margin: 0 auto; padding: 0; color: var(--mv-lime); font-size: 12px; line-height: 1.5; text-align: center; pointer-events: none; }
.menu-vivo .mv-feed-feedback:not(:empty) { padding: 11px 16px; border: 1px solid #ffffff25; border-radius: 12px; background: #07120bed; }
.mv-feed-social-status { position: absolute; z-index: 8; left: 23px; right: 23px; top: calc(env(safe-area-inset-top, 0px) + 78px); display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; max-width: 480px; padding: 12px 16px; border: 1px solid #ffffff55; border-radius: 10px; background: #031a0ded; color: white; font-size: 12px; line-height: 1.5; }
.menu-vivo .mv-feed-social-retry { min-height: 44px; padding: 8px 10px; border: 1px solid var(--mv-lime); border-radius: 7px; background: transparent; color: var(--mv-lime); font-size: 11px; }
.menu-vivo .mv-cost-line { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 15px 0; color: var(--mv-muted); font-size: 12px; }
.mv-cost-line strong { color: var(--mv-black); font-weight: 600; }
.mv-delivery-location { margin-top: 12px; padding: 19px; border: 1px solid #bdd5b5; border-radius: 12px; background: #f2f7ed; }
.menu-vivo .mv-delivery-location h4 { margin: 0 0 10px; font: 600 19px/1.3 ui-sans-serif, system-ui, sans-serif; color: var(--mv-black); }
.menu-vivo .mv-location-gps { display: inline-flex; align-items: center; justify-content: center; gap: 9px; width: 100%; margin: 10px 0; }
.mv-location-gps svg { width: 20px; height: 20px; flex: none; }
.mv-location-status, .mv-location-point, .mv-location-accuracy { overflow-wrap: anywhere; }
.menu-vivo .mv-location-point { font-size: 13px; line-height: 1.7; color: var(--mv-black); }
.mv-location-manual { margin: 15px 0; padding-top: 13px; border-top: 1px solid #c7d8be; }
.mv-location-manual summary { min-height: 44px; padding: 10px 0; color: #163b24; font-size: 13px; font-weight: 600; cursor: pointer; }
.mv-location-manual input { margin: 6px 0 12px; }
.menu-vivo .mv-location-confirm { display: flex; align-items: flex-start; gap: 11px; min-height: 44px; margin: 18px 0 8px; font-size: 13px; font-weight: 500; line-height: 1.6; }
.menu-vivo .mv-location-confirm input { width: 22px; min-width: 22px; height: 22px; min-height: 22px; padding: 0; margin: 1px 0 0; accent-color: #275c3e; }
.mv-location-status:empty, .mv-location-point:empty, .mv-location-accuracy:empty { display: none; }
.mv-delivery-receipt { margin: 20px 0; padding: 16px; border: 1px solid var(--mv-line); border-radius: 10px; overflow-wrap: anywhere; }
.menu-vivo .mv-delivery-receipt p { margin: 9px 0 0; font-size: 12px; line-height: 1.7; }
.menu-vivo .mv-whatsapp-order { width: 100%; text-decoration: none; margin: 8px 0; background: #134f2b; border-color: #134f2b; color: white; }
.menu-vivo .mv-share-dialog { position: fixed; inset: 50% 0 auto; transform: translateY(-50%); width: min(92vw, 540px); max-width: 92vw; max-height: 88vh; max-height: 88dvh; overflow-y: auto; margin: 0 auto; padding: 23px; border: 1px solid white; border-radius: 18px; background: #fbfcf8; color: var(--mv-black); z-index: 1000000; box-shadow: 0 20px 80px #031a0d55; }
.mv-share-dialog::backdrop { background: #031a0dbb; }
.mv-share-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.menu-vivo .mv-share-heading h2 { margin: 0; color: var(--mv-black); font-size: 23px; line-height: 1.2; overflow-wrap: anywhere; }
.menu-vivo .mv-copy-text { display: block; width: 100%; max-width: 100%; min-height: 100px; max-height: 45vh; padding: 13px; border: 1px solid #b8cdb0; border-radius: 9px; background: white; color: var(--mv-black); font: 400 16px/1.5 ui-sans-serif, system-ui, sans-serif; resize: vertical; user-select: text; -webkit-user-select: text; }
@media (max-width: 760px) {
  .menu-vivo .mv-feed-cart { right: 16px; max-width: calc(100vw - 150px); padding: 11px 13px; font-size: 11px; }
  .menu-vivo .mv-feed-feedback { font-size: 11px; }
  .menu-vivo .mv-social-button { font-size: 11px; }
}
@media (max-height: 650px) {
}

@media (max-width: 760px) {
  .mv-topline { min-height: 66px; padding: 11px 20px; gap: 13px; }
  .mv-hero-copy, .mv-hero.has-cover .mv-hero-copy { padding: 36px 22px; }
  .mv-hero.has-cover { min-height: 440px; align-items: flex-end; }
  .mv-hero.has-cover::after { background: linear-gradient(0deg, #031a0df2 0%, #031a0da3 52%, #031a0d08 100%); }
  .menu-vivo .mv-hero h1 { max-width: 19ch; font-size: clamp(31px, 7.5vw, 47px); }
  .mv-business-details { gap: 7px 14px; margin-top: 17px; font-size: 11px; }
  .mv-menu-status { font-size: 10px; }
  .mv-reel-copy { left: 20px; right: 20px; bottom: calc(env(safe-area-inset-bottom, 0px) + 80px); }
  .mv-reel-heading { gap: 14px; }
  .menu-vivo .mv-reel-copy h2 { font-size: clamp(22px, 5.8vw, 30px); max-width: 21ch; }
  .mv-reel-price { font-size: 18px; }
  .mv-reel-actions { margin-top: 8px; gap: 12px; }
  .mv-feed-controls { right: 10px; top: 43%; gap: 6px; }
  .menu-vivo .mv-feed-nav { width: 44px; height: 44px; background: #031a0d80; }
  .mv-feed-position, .menu-vivo .mv-feed-hint { left: 20px; }
  .mv-reel .mv-video-play { top: calc(env(safe-area-inset-top, 0px) + 64px); right: 16px; }
  .mv-feed-top { padding-left: 16px; padding-right: 16px; }
}
@media (max-height: 600px) {
  .mv-reel-copy { bottom: calc(env(safe-area-inset-bottom, 0px) + 65px); }
  .menu-vivo .mv-reel-copy h2 { font-size: 21px; }
  .mv-reel-price { font-size: 17px; }
  .mv-reel-details { position: absolute; bottom: 100%; left: 0; }
  .mv-reel-details[open] { width: min(80vw, 620px); }
  .mv-reel-details[open] summary { background: #07120bf5; padding: 8px 13px; border-radius: 10px 10px 0 0; }
  .mv-reel-copy .mv-availability { margin-bottom: 5px; }
  .menu-vivo .mv-feed-hint { display: none; }
}

/* 1.5: movimiento envolvente del feed, sonido del video y estados de disponibilidad. */
.mv-reel.is-active .mv-dish-media > img, .mv-reel.is-active .mv-dish-media > video { animation: mv-breathe 14s ease-in-out infinite alternate; }
@keyframes mv-breathe { from { scale: 1; } to { scale: 1.05; } }
.mv-reel-copy { opacity: var(--mv-copy, 1); transform: translate3d(0, var(--mv-copy-shift, 0px), 0); will-change: opacity, transform; }
.mv-reel.is-active .mv-reel-copy > * { animation: mv-rise .55s cubic-bezier(.2, .7, .2, 1) both; }
.mv-reel.is-active .mv-reel-copy > :nth-child(2) { animation-delay: .07s; }
.mv-reel.is-active .mv-reel-copy > :nth-child(3) { animation-delay: .14s; }
.mv-reel.is-active .mv-reel-copy > :nth-child(4) { animation-delay: .21s; }
@keyframes mv-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.menu-vivo .mv-reel-sound { position: absolute; z-index: 5; top: calc(env(safe-area-inset-top, 0px) + 66px); right: 16px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff59; border-radius: 50%; background: #031a0d99; color: #fff; font-size: 18px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); cursor: pointer; }
.menu-vivo .mv-reel-sound:focus-visible { outline: 3px solid var(--mv-lime); outline-offset: 3px; }
.mv-availability.is-low, .menuvo-site .menu-vivo .mv-availability.is-low { color: #b45f06; font-weight: 750; }
.mv-reel-copy .mv-availability.is-low, .menuvo-site .menu-vivo .mv-feed .mv-reel .mv-availability.is-low { width: fit-content; margin-bottom: 10px; padding: 6px 12px 6px 10px; border-radius: 100px; background: #ff9f0a; color: #1d1200; font-size: 12px; font-weight: 800; letter-spacing: .01em; box-shadow: 0 6px 22px #ff9f0a55; animation: mv-pulse 1.8s ease-in-out infinite; }
.mv-reel-copy .mv-availability.is-low::before { width: 7px; height: 7px; background: #1d1200; }
@keyframes mv-pulse { 0%, 100% { transform: scale(1); box-shadow: 0 6px 22px #ff9f0a55; } 50% { transform: scale(1.05); box-shadow: 0 6px 30px #ff9f0a99; } }
.mv-reel.is-sold .mv-dish-media > img, .mv-reel.is-sold .mv-dish-media > video { filter: grayscale(1) brightness(.62); }
.mv-reel-copy .mv-availability.is-sold, .menuvo-site .menu-vivo .mv-feed .mv-reel .mv-availability.is-sold { width: fit-content; margin-bottom: 10px; padding: 6px 12px; border-radius: 100px; background: #ffffffe6; color: #7d2e22; font-size: 12px; font-weight: 800; }
@media (prefers-reduced-motion: reduce) {
  .mv-reel .mv-dish-media > img, .mv-reel .mv-dish-media > video, .mv-reel-copy { transform: none !important; animation: none !important; opacity: 1 !important; }
  .mv-reel-copy .mv-availability.is-low, .mv-reel.is-active .mv-reel-copy > * { animation: none !important; }
}

/* 1.6: aviso de privacidad de la medición anónima. */
.mv-privacy-note { position: fixed; left: 16px; right: 16px; bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); z-index: 999970; display: flex; align-items: center; justify-content: space-between; gap: 14px; max-width: 620px; margin: 0 auto; padding: 14px 16px; border: 1px solid #ffffff1f; border-radius: 18px; background: #031a0df2; color: #e9f2e4; font-size: 12px; line-height: 1.5; box-shadow: 0 16px 40px #0004; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); animation: mv-rise .4s ease both; }
.menu-vivo .mv-privacy-note p { margin: 0; color: inherit; font-size: 12px; }
.mv-privacy-actions { display: flex; flex: none; gap: 8px; }
.menu-vivo .mv-privacy-actions button { min-height: 38px; padding: 8px 14px; border-radius: 100px; font-size: 12px; font-weight: 700; cursor: pointer; }
.menu-vivo .mv-privacy-ok { border: 1px solid var(--mv-lime); background: var(--mv-lime); color: var(--mv-black); }
.menu-vivo .mv-privacy-no { border: 1px solid #ffffff4d; background: transparent; color: #fff; }
@media (max-width: 520px) { .mv-privacy-note { flex-direction: column; align-items: stretch; } .mv-privacy-actions button { flex: 1; } }

/* 1.10: pago con tarjeta directo al restaurante. */
.mv-payment-choice { display: grid; gap: 8px; margin: 14px 0 6px; padding: 0; border: 0; }
.mv-payment-choice legend { margin-bottom: 6px; font-weight: 700; font-size: 14px; }
.mv-payment-option { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1.5px solid #d6dfd2; border-radius: 14px; cursor: pointer; transition: border-color .2s, background .2s; }
.mv-payment-option.is-selected { border-color: var(--mv-accent, #569B78); background: #f2f8ee; }
.mv-payment-option input { margin-top: 3px; accent-color: var(--mv-accent, #569B78); width: 18px; height: 18px; }
.mv-payment-option span { display: grid; gap: 2px; } .mv-payment-option strong { font-size: 15px; } .mv-payment-option small { font-size: 12px; color: #5d6b61; }
.mv-payment-redirect { position: fixed; inset: 0; z-index: 2147483647; display: grid; place-content: center; gap: 8px; padding: 24px; background: #031a0df2; color: #fff; text-align: center; font-size: 15px; }
.mv-payment-redirect strong { font-size: 22px; }
.mv-payment-result { position: relative; display: grid; gap: 4px; margin: 12px auto 18px; max-width: 760px; padding: 16px 18px; border-radius: 16px; font-size: 14px; }
.mv-payment-result.is-ok { background: #e3f4e1; color: #1f5a32; } .mv-payment-result.is-warn { background: #fff1dd; color: #5c3200; }
.mv-payment-result strong { font-size: 17px; }
.menu-vivo .mv-payment-result-close { justify-self: start; margin-top: 6px; padding: 6px 14px; border: 1px solid currentColor; border-radius: 100px; background: transparent; color: inherit; font-weight: 700; cursor: pointer; }
