/* Fuentes alojadas en la propia web (subconjunto latino): sin peticiones a terceros ni parpadeo al cargar. */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700 900; font-display: swap;
  src: url('../assets/fonts/montserrat-latin.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400 500; font-display: swap;
  src: url('../assets/fonts/roboto-latin.woff2') format('woff2'); }
/* =========================================================
   My Sushi Valencia — hoja de estilos principal
   ========================================================= */

:root {
  --coral: #FF6A4D;
  --coral-light: #FF8A6E;
  --coral-hover: #E8593F;
  --green: #2E6B45;
  --ink: #1B1714;
  --ink-deep: #100D0B;
  --ivory: #F3ECE0;
  --ivory-deep: #EBE1CC;
  --cream: #FBF6EC;
  --muted: #5C5346;
  --muted-2: #9C917F;
  --border: #D8CCB4;
  --border-dark: #3A322B;

  --font-display: 'Montserrat', Arial, sans-serif;
  --font-body: 'Roboto', Arial, sans-serif;

  --header-h: 87px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body {
  margin: 0;
  font-family: var(--font-body);
  background: var(--ivory) url('../assets/papel-washi-2.webp') 0 0 / 768px 768px repeat;
  color: var(--ink);
}
img { max-width: 100%; display: block; }
a { color: var(--coral); text-decoration: none; }
a:hover { color: var(--coral-hover); }

.ms { font-family: var(--font-display); }
.container { max-width: 1280px; margin: 0 auto; padding: 0 64px; }
.eyebrow {
  font-family: var(--font-display);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: var(--coral);
  margin-bottom: 14px;
}
.section-title {
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 800;
  margin: 0;
}

/* ---------- Buttons ---------- */
.btn {
  font-family: var(--font-display);
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 16px 30px;
  border: 1.5px solid transparent;
  cursor: pointer;
  display: inline-block;
  text-align: center;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  background: none;
}
.btn-primary { background: var(--coral); color: var(--ink); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(255,106,77,.32); color: var(--ink); }
.btn-outline-light { border-color: var(--cream); color: var(--cream); }
.btn-outline-light:hover { background: var(--cream); color: var(--ink); }
.btn-outline-dark { border-color: var(--ink); color: var(--ink); }
.btn-outline-dark:hover { background: var(--ink); color: var(--ivory); }
.btn-sm { padding: 10px 22px; font-size: 12px; }

/* ---------- Reveal-on-load ---------- */
@keyframes fadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
.reveal { opacity: 0; animation: fadeUp .8s cubic-bezier(.16,1,.3,1) forwards; }
.reveal-1 { animation-delay: .05s; }
.reveal-2 { animation-delay: .22s; }
.reveal-3 { animation-delay: .38s; }
.reveal-4 { animation-delay: .52s; }

/* ---------- Header (logo centrado, menú partido a los lados) ---------- */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 14px 64px;
  background: #15120F;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.brand { display: flex; align-items: center; justify-self: center; }
.brand-logo { display: block; height: 58px; width: auto; }

/* Cabecera de la home: invisible hasta que la foto empieza a salir de
   pantalla, entonces aparece con una transición animada */
.hero-header {
  opacity: 0;
  transform: translateY(-14px);
  pointer-events: none;
  transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1), background-color .4s ease;
}
.hero-header.header-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.main-nav { display: flex; align-items: center; gap: 34px; }
.main-nav-left { justify-self: end; margin-right: 40px; }
.main-nav-right { justify-self: start; margin-left: 40px; }
.nav-link { position: relative; color: var(--cream); font-size: 13.5px; font-weight: 600; }
.nav-link::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 0; height: 2px; background: var(--coral); transition: width .25s ease, left .25s ease; }
.nav-link:hover::after { width: 100%; left: 0; }
.nav-link.active::after { width: 100%; left: 0; }

/* Cada enlace reserva el mismo ancho (el de la palabra más larga,
   "Ubicación"), así "Inicio"/"Carta" no quedan apiñados frente a
   "Ubicación"/"Reservas" por tener menos caracteres. */
.main-nav-left .nav-link, .main-nav-right .nav-link {
  display: inline-block;
  min-width: 72px;
  text-align: center;
}

/* ---------- Hero (foto a pantalla completa; la placa siempre visible
   gracias al margen dejado en las dos imágenes, ver assets/hero-desktop.jpg
   y assets/hero-mobile.jpg, servidas según el ancho de pantalla) ---------- */
.hero {
  position: relative;
  height: 100vh;
  background: #100D0B;
  overflow: hidden;
}
.hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 2;
}
.hero-scrim {
  position: absolute; inset: 0;
  z-index: 3;
  /* Escritorio: solo un velo suave arriba (cabecera) y una sombra ligera al pie
     para que los botones se lean sin tapar el suelo ni el rótulo de la foto. */
  background: linear-gradient(180deg,
    rgba(10,8,7,.45) 0%,
    rgba(10,8,7,.05) 16%,
    rgba(10,8,7,0) 72%,
    rgba(9,7,6,.38) 100%);
}
@media (max-width: 899px) {
  .hero-scrim {
    background: linear-gradient(180deg,
      rgba(10,8,7,.55) 0%,
      rgba(10,8,7,.08) 18%,
      rgba(16,13,11,.12) 46%,
      rgba(13,11,9,.78) 70%,
      rgba(9,7,6,.95) 100%);
  }
}
.hero-inner {
  position: absolute; inset: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  text-align: center;
  padding: 0 24px 26px;
}

/* Mini-carrusel de platos integrado en el hero — solo aparece en móvil,
   donde la nueva foto deja suelo de sobra entre la placa y los botones.
   Reutiliza exactamente el diseño de .dish-card (paralelogramo, número,
   badge) a menor escala, para que sea igual que en escritorio. */
.hero-dish-track {
  display: none;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  width: 100%;
}
.hero-dish-track::-webkit-scrollbar { display: none; }
.hero-dish-track .dish-card { flex: 0 0 132px; }
.hero-dish-track .dish-photo { margin-bottom: 10px; }
.hero-dish-track .dish-badge { font-size: 8px; padding: 4px 7px; top: 8px; left: 8px; }
.hero-dish-track .dish-name { font-size: 12px; }
.hero-dish-track .dish-num { font-size: 10px; padding: 2px 6px; }
.hero-ctas { display: flex; gap: 16px; justify-content: center; }

/* ---------- Dish carousel (fondo oscuro continuo) ---------- */
.carousel-section {
  position: relative;
  background: var(--ink);
  padding: 0 0 20px;
}
.carousel-wrap { position: relative; }
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 42px; height: 42px;
  border: 1px solid rgba(243,236,224,.3);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  background: rgba(16,13,11,.4);
  backdrop-filter: blur(2px);
  flex-shrink: 0;
  transition: background .2s ease, border-color .2s ease;
}
#carouselPrev { left: 36px; }
#carouselNext { right: 36px; }
.carousel-arrow svg { stroke: var(--ivory); transition: stroke .2s ease; }
.carousel-arrow:hover { background: var(--coral); border-color: var(--coral); }
.carousel-arrow:hover svg { stroke: var(--ink); }

.dish-track {
  display: flex;
  align-items: flex-start;
  gap: 42px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 40px 96px 40px;
  scroll-padding-inline: 96px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.dish-track::-webkit-scrollbar { display: none; }
.dish-card { flex: 0 0 220px; scroll-snap-align: start; }
/* Paralelogramo: el marco se inclina, la foto de dentro se inclina al
   revés y se agranda para que siga cubriendo todo el marco sin huecos */
.dish-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  margin-bottom: 22px;
  position: relative;
  border-radius: 4px;
  transform: skewX(-8deg);
}
.dish-photo img {
  width: 100%; height: 100%; object-fit: cover;
  /* skewX(8deg) necesita un mínimo de ~1.14x para tapar las esquinas del
     marco sin huecos (W*(1+tan8°)); antes iba a 1.32x, un recorte mucho
     mayor del necesario que a menudo descentraba el plato. */
  transform: skewX(8deg) scale(1.18);
  transition: transform .4s ease;
}
.dish-card:hover .dish-photo img { transform: skewX(8deg) scale(1.24); }
.dish-badge { transform: skewX(8deg); }
.dish-card { cursor: pointer; }
.dish-name { color: var(--ivory); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dish-num {
  display: inline-block; flex-shrink: 0;
  background: var(--coral); color: var(--ink);
  font-size: 11.5px; font-weight: 900; letter-spacing: 0.02em;
  padding: 3px 8px; border-radius: 3px;
}
.dish-badge {
  position: absolute; top: 12px; left: 12px;
  background: var(--coral); color: var(--ink);
  font-family: var(--font-display);
  font-size: 10px; font-weight: 800;
  padding: 5px 10px;
}
.dish-tag { font-family: var(--font-display); font-size: 10px; letter-spacing: 0.14em; color: var(--green); margin-bottom: 6px; }
.dish-name { font-family: var(--font-display); font-size: 16px; font-weight: 800; }
.dish-desc { font-size: 13px; line-height: 1.5; color: var(--muted); margin-top: 4px; }

/* ---------- Modal de plato ---------- */
.dish-modal {
  position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center;
  padding: 24px;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}
.dish-modal-backdrop { position: absolute; inset: 0; background: rgba(10,8,7,.78); backdrop-filter: blur(3px); }
.dish-modal-panel {
  position: relative;
  background: var(--ink);
  width: 100%; max-width: 860px; max-height: 88vh; max-height: calc(100dvh - 32px);
  overscroll-behavior: contain;
  display: grid; grid-template-columns: 1.1fr 1fr;
  overflow: hidden; overflow-y: auto;
  box-shadow: 0 30px 70px rgba(0,0,0,.5);
}
.dish-modal-close {
  position: absolute; top: 16px; right: 16px; z-index: 2;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(16,13,11,.6); border: 1px solid rgba(255,255,255,.15);
  color: var(--ivory);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.dish-modal-close:hover { background: var(--coral); border-color: var(--coral); color: var(--ink); }
.dish-modal-image { background: #100D0B; min-height: 280px; }
.dish-modal-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dish-modal-info { padding: 40px 36px; display: flex; flex-direction: column; }
.dish-modal-top-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.dish-modal-num {
  background: var(--coral); color: var(--ink);
  font-size: 15px; font-weight: 900; letter-spacing: 0.02em;
  padding: 7px 14px; border-radius: 3px;
}
.dish-modal-num:empty { display: none; }
.dish-modal-price { color: var(--ivory); font-size: 15px; font-weight: 800; }
.dish-modal-price:empty { display: none; }
.dish-modal-info h3 { font-size: 26px; font-weight: 800; color: var(--ivory); margin: 0 0 26px; }
.dish-modal-section { margin-bottom: 26px; }
.dish-modal-section:last-child { margin-bottom: 0; }
.dish-modal-label { font-size: 11px; font-weight: 800; letter-spacing: 0.12em; color: var(--muted-2); margin-bottom: 10px; }
.dish-modal-info p { font-size: 14.5px; line-height: 1.6; color: #D8CFC2; margin: 0; }
.dish-modal-allergens { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.allergen-pill {
  font-family: var(--font-display); font-size: 11.5px; font-weight: 700;
  padding: 6px 12px; border: 1px solid var(--border-dark); color: var(--ivory);
}
.dish-limit { color: var(--coral); font-size: 0.9em; margin-left: 2px; }
.dish-modal-limit { font-size: 13px !important; font-weight: 700; color: var(--coral) !important; margin: -14px 0 22px !important; }
.dish-modal-note { font-size: 12px !important; color: var(--muted-2) !important; margin: 4px 0 0 !important; }
.allergen-pill-muted { color: var(--muted-2); border-style: dashed; }
body.modal-open { overflow: hidden; }

/* ---------- Ubicación + mapa (tarjeta gemela de la de reseñas, misma
   franja de página, mismo fondo y esquinas — separadas por aire en vez
   de tocarse a bordes distintos, que era lo que creaba la "cápsula") ---------- */
.trust-location {
  background: var(--ivory-deep);
  margin: 0 64px 56px;
  padding: 48px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  text-align: left;
  border-radius: 4px;
  box-shadow: 0 24px 48px rgba(27,23,20,.12);
}
.trust-location-info { max-width: none; margin: 0; }
.trust-location-info h2 { font-family: var(--font-display); font-size: 26px; font-weight: 800; margin: 8px 0 20px; color: var(--ink); }
.trust-location-row { display: flex; align-items: center; justify-content: flex-start; gap: 8px; margin-bottom: 6px; }
.trust-location-name { font-family: var(--font-display); font-size: 17px; font-weight: 800; color: var(--ink); }
.trust-location-detail { font-size: 13px; color: var(--muted); line-height: 1.7; }
.trust-location-actions { display: flex; justify-content: flex-start; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.trust-location-map {
  display: block; width: 100%; height: 340px;
  border-radius: 4px;
  filter: grayscale(.15);
  box-shadow: 0 12px 28px rgba(27,23,20,.18);
}

/* ---------- Reseñas (dentro de story-copy) ---------- */
.reviews-actions { display: flex; align-items: center; gap: 14px; margin-top: 28px; }
.social-circle {
  width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  transition: border-color .2s ease, background .2s ease;
}
.social-circle svg { stroke: var(--muted); transition: stroke .2s ease; }
.social-circle:hover { background: var(--coral); border-color: var(--coral); }
.social-circle:hover svg { stroke: var(--ivory); }
.stars-row { display: flex; align-items: center; gap: 10px; margin: 14px 0 24px; }
.stars { display: flex; gap: 3px; }
.rating-number { font-family: var(--font-display); font-size: 18px; font-weight: 800; }
.rating-count { font-size: 13.5px; color: var(--muted); }
.review-carousel { min-height: 110px; }
.review-slide { transition: opacity .3s ease; min-height: 90px; }
.review-quote { font-size: 16px; line-height: 1.6; color: var(--ink); margin-bottom: 12px; }
.review-author { font-family: var(--font-display); font-size: 13px; font-weight: 700; color: var(--muted); letter-spacing: 0.02em; }
.review-dots { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.review-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--border); display: inline-block; padding: 0; border: none; cursor: pointer; }
.review-dot.active { background: var(--coral); width: 20px; border-radius: 4px; transition: width .2s ease, background .2s ease; }

/* ---------- Brand story ---------- */
.story-section { padding: 0 64px 56px; }
.story-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 56px;
  align-items: center; background: var(--ivory-deep); padding: 48px;
}
.story-copy { display: flex; flex-direction: column; }
.story-copy h2 { font-family: var(--font-display); font-size: 26px; font-weight: 800; margin: 8px 0 0; color: var(--ink); }
.story-photo { border-radius: 4px; overflow: hidden; box-shadow: 0 24px 48px rgba(27,23,20,.18); }
.story-photo img { width: 100%; height: auto; display: block; }

/* ---------- Tatami (sala privada) ---------- */
.tatami-section { padding: 0 64px 56px; }
.tatami-grid {
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px;
  align-items: center; background: var(--ivory-deep); padding: 48px;
}
.tatami-copy { display: flex; flex-direction: column; }
.tatami-copy h2 { font-family: var(--font-display); font-size: 26px; font-weight: 800; margin: 8px 0 14px; color: var(--ink); }
.tatami-copy p { font-size: 15px; line-height: 1.7; color: var(--muted); margin: 0 0 8px; max-width: 420px; }
.tatami-copy .tatami-note { font-style: italic; font-size: 13px; color: var(--muted-2); margin: 0 0 22px; }
.tatami-copy .btn { align-self: flex-start; }
.tatami-photos {
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr;
  gap: 10px; height: 380px;
}
.tatami-photos button { display: block; overflow: hidden; border-radius: 4px; box-shadow: 0 16px 32px rgba(27,23,20,.16); padding: 0; border: none; cursor: pointer; background: none; }
.tatami-photos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.tatami-photos button:hover img { transform: scale(1.05); }

/* ---------- Carrusel emergente de fotos del tatami ---------- */
.lightbox-modal { position: fixed; inset: 0; z-index: 110; display: flex; align-items: center; justify-content: center; padding: 24px; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(10,8,7,.85); backdrop-filter: blur(3px); }
.lightbox-panel { position: relative; width: 100%; max-width: 680px; }
.lightbox-img-wrap { position: relative; background: #100D0B; box-shadow: 0 30px 70px rgba(0,0,0,.5); }
.lightbox-img-wrap img { width: 100%; max-height: 76vh; object-fit: contain; display: block; margin: 0 auto; }
.lightbox-close {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(16,13,11,.6); border: 1px solid rgba(255,255,255,.15);
  color: var(--ivory);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.lightbox-close:hover { background: var(--coral); border-color: var(--coral); color: var(--ink); }
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(16,13,11,.6); border: 1px solid rgba(255,255,255,.15);
  color: var(--ivory);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.lightbox-nav:hover { background: var(--coral); border-color: var(--coral); color: var(--ink); }
.lightbox-prev { left: 14px; }
.lightbox-next { right: 14px; }
.lightbox-dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
.lightbox-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.3); border: none; padding: 0; cursor: pointer; }
.lightbox-dot.active { background: var(--coral); }

/* ---------- Footer ---------- */
.site-footer { padding: 40px 64px 22px; background: var(--ink-deep); color: var(--ivory); }
.footer-grid {
  display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr; gap: 28px;
  padding-bottom: 26px; border-bottom: 1px solid #2E2822; align-items: start;
}
.footer-logo { width: 176px; margin-bottom: 10px; }
.footer-tagline { font-size: 13.5px; line-height: 1.6; color: var(--muted-2); max-width: 260px; }
.footer-col-title { font-family: var(--font-display); font-size: 11.5px; font-weight: 800; letter-spacing: 0.12em; color: var(--coral); margin-bottom: 12px; }
.footer-col p { font-size: 13.5px; line-height: 1.7; color: #D8CFC2; margin: 0; }
.footer-bottom a { color: var(--muted); }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 16px; font-size: 12px; color: var(--muted); flex-wrap: wrap; gap: 8px; }

/* ---------- Carta page ---------- */
.carta-title { padding: 144px 64px 32px; }
.carta-title h1 { font-family: var(--font-display); font-size: 42px; font-weight: 800; margin: 0 0 12px; }
.carta-title p { font-size: 16px; color: var(--muted); max-width: 560px; margin: 0; }
.carta-title p a { border-bottom: 1px solid var(--coral); }
.carta-title-tight { padding-bottom: 22px; }
.carta-title-tight p { max-width: 680px; }

.carta-switch-link { display: inline-block; font-size: 13px; font-weight: 700; color: var(--ink); margin-top: 16px; border-bottom: 1px solid var(--coral); padding-bottom: 2px; }
.carta-switch-link:hover { color: var(--coral); }

/* ---------- Mini-menú fijo de la Carta (siempre visible bajo la
   cabecera, para moverse entre modalidades sin tener que volver atrás) ---------- */
.carta-subnav {
  position: sticky; top: var(--header-h); z-index: 15;
  margin-top: var(--header-h);
  display: flex; align-items: center; gap: 24px;
  overflow-x: auto;
  padding: 16px 64px;
  background: var(--ivory);
  border-bottom: 1px solid var(--border);
}
.carta-subnav-link {
  font-family: var(--font-display); font-size: 12px; font-weight: 700;
  letter-spacing: 0.04em; color: var(--muted); white-space: nowrap;
  flex-shrink: 0;
  padding-bottom: 4px; border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}
.carta-subnav-link:hover { color: var(--ink); }
.carta-subnav-link.active { color: var(--ink); border-bottom-color: var(--coral); }
.carta-subnav-home { color: var(--muted-2); margin-right: 4px; padding-right: 20px; border-right: 1px solid var(--border); }
.carta-title-tight { padding-top: 32px; }

/* Datos clave del bufet / para llevar, en una franja discreta bajo el título */
.carta-facts { display: flex; flex-wrap: wrap; gap: 8px 30px; list-style: none; margin: 0; padding: 4px 64px 26px; }
.carta-facts li { position: relative; font-size: 13px; line-height: 1.5; color: var(--muted); padding-left: 14px; }
.carta-facts li::before { content: ''; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--coral); }
.carta-facts a { font-weight: 700; color: var(--ink); border-bottom: 1px solid var(--coral); }
.carta-facts a:hover { color: var(--coral); }

/* ---------- Elección Bufet / A la Carta / Menú del Día ---------- */
.carta-choice-section { padding: 8px 64px 56px; }
.carta-choice-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.carta-choice-card {
  display: block;
  background: var(--ivory-deep);
  padding: 44px 40px;
  border: 1px solid transparent;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.carta-choice-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(27,23,20,.14);
  border-color: var(--coral);
}
.carta-choice-eyebrow { font-family: var(--font-display); font-size: 11.5px; font-weight: 800; letter-spacing: 0.2em; color: var(--coral); margin-bottom: 12px; }
.carta-choice-card h2 { font-family: var(--font-display); font-size: 28px; font-weight: 800; color: var(--ink); margin: 0 0 14px; }
.carta-choice-card p { font-size: 14.5px; line-height: 1.6; color: var(--muted); margin: 0 0 26px; max-width: 360px; }
.carta-choice-cta { font-family: var(--font-display); font-size: 13px; font-weight: 800; letter-spacing: 0.04em; color: var(--ink); }
.carta-choice-cta span { display: inline-block; transition: transform .2s ease; }
.carta-choice-card:hover .carta-choice-cta span { transform: translateX(4px); }
.carta-note { padding: 0 64px 32px; margin-top: -20px; font-size: 13px; color: var(--muted); max-width: 640px; }
.carta-tabs { display: flex; gap: 10px; padding: 0 64px 28px; flex-wrap: wrap; }
.carta-tab {
  font-family: var(--font-display); font-size: 13px; font-weight: 500;
  padding: 11px 22px; border: 1px solid var(--border); color: var(--muted); cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.carta-tab.active { background: var(--ink); color: var(--ivory); border-color: var(--ink); font-weight: 700; }
.carta-cat-note { padding: 0 64px 22px; margin: -6px 0 0; font-size: 14px; line-height: 1.6; color: var(--muted); max-width: 760px; }
.carta-grid { padding: 0 64px 56px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
.carta-card { cursor: pointer; }
.carta-empty { grid-column: 1 / -1; text-align: center; color: var(--muted); padding: 48px 0; }
/* Marco 5:4: ni cuadrado ni panorámico. Con el encuadre algo por debajo del
   centro se respetan casi todas las fotos (los platos suelen quedar en la
   mitad baja de las verticales) sin recortar el plato. */
.carta-card-photo { position: relative; aspect-ratio: 5 / 4; overflow: hidden; }
.carta-card-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; transition: transform .4s ease; }
.carta-card:hover .carta-card-photo img { transform: scale(1.04); }
.carta-card-num {
  position: absolute; top: 12px; right: 12px;
  background: var(--coral); color: var(--ink);
  font-family: var(--font-display); font-size: 13px; font-weight: 900;
  padding: 5px 11px; border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.carta-card-body { padding: 16px 4px 0; }
.carta-card-body .dish-tag { margin-bottom: 6px; }
.carta-card-name-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.carta-card-body .dish-name { font-size: 17px; margin-bottom: 0; color: var(--ink); display: block; }
.carta-card-price { font-family: var(--font-display); font-size: 15px; font-weight: 800; color: var(--coral); white-space: nowrap; }
.carta-card-body .dish-desc { color: var(--muted); }

.menu-dia-tile { cursor: pointer; }
.menu-dia-tile:hover .carta-card-photo img { transform: scale(1.04); }
.carta-grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.section-head { padding: 0 64px 22px; }
.section-head h2 { font-family: var(--font-display); font-size: 26px; font-weight: 800; margin: 0; color: var(--ink); }

/* ---------- Menú del Día ---------- */
.menu-dia-section { padding: 8px 64px 56px; }
.menu-dia-price-card {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px;
  color: var(--ink); padding: 32px 40px; margin-bottom: 32px;
}
.menu-dia-price-card p { font-size: 14px; color: var(--muted); margin: 6px 0 0; max-width: 460px; }
.menu-dia-price-card .ms { font-size: 22px; font-weight: 800; }
.menu-dia-price { font-family: var(--font-display); font-size: 44px; font-weight: 900; color: var(--coral); line-height: 1; }
.menu-dia-price small { font-size: 14px; font-weight: 700; color: var(--muted); display: block; margin-top: 4px; }
.menu-dia-course { margin-bottom: 36px; }
.menu-dia-course-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 18px; }
.menu-dia-card-eyebrow { font-family: var(--font-display); font-size: 11px; font-weight: 800; letter-spacing: 0.14em; color: var(--coral); }
.menu-dia-course-head h3 { font-family: var(--font-display); font-size: 22px; font-weight: 800; margin: 0; color: var(--ink); }
.menu-dia-tiles { display: grid; gap: 24px 20px; grid-template-columns: repeat(4, minmax(0,1fr)); }
.menu-dia-tiles.cols-5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.menu-dia-tile-name { font-family: var(--font-display); font-size: 14px; font-weight: 700; line-height: 1.35; color: var(--ink); margin-top: 10px; }
.menu-dia-tile-name small { display: block; font-family: var(--font-body); font-weight: 400; font-size: 12px; color: var(--muted); margin-top: 2px; }
.menu-dia-includes { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.menu-dia-includes-card { border: 1px solid var(--border); padding: 24px 26px; }
.menu-dia-includes-card h4 { font-family: var(--font-display); font-size: 13px; font-weight: 800; letter-spacing: 0.06em; color: var(--ink); margin: 0 0 12px; }
.menu-dia-includes-card p { font-size: 13.5px; line-height: 1.7; color: var(--muted); margin: 0 0 6px; }
.menu-dia-includes-card p:last-child { margin-bottom: 0; }

/* ---------- Listas de precios (Bebidas y Cafés) ---------- */
.price-list-section { padding: 8px 64px 56px; }
.price-list-block { margin-bottom: 40px; }
.price-list-block:last-child { margin-bottom: 0; }
.price-list-block h2 { font-family: var(--font-display); font-size: 22px; font-weight: 800; margin: 0 0 18px; color: var(--ink); }
.price-list { display: flex; flex-direction: column; }
.price-list-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding: 14px 0; border-bottom: 1px solid var(--border);
}
.price-list-row:last-child { border-bottom: none; }
.price-list-name { font-size: 15px; color: var(--ink); }
.price-list-sub { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }
.price-list-price { font-family: var(--font-display); font-size: 15px; font-weight: 800; color: var(--coral); white-space: nowrap; }

/* ---------- Recogida / domicilio (Para llevar) ---------- */
.promo-strip { padding: 0 64px 44px; }
.promo-strip-grid { display: grid; grid-template-columns: 1.5fr 1fr; color: var(--ink); }
.promo-strip-item { padding: 30px 38px; }
.promo-strip-item + .promo-strip-item { border-left: 1px solid var(--border); }
.promo-strip-item .ms { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; color: var(--coral); margin-bottom: 8px; display: block; }
.promo-strip-item p { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 0; }
.promo-strip-item strong { color: var(--ink); }

/* ---------- Cumpleaños (home y carta) ---------- */
.birthday-section { padding: 0 64px 56px; }
.birthday-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center;
  background: var(--ink); padding: 44px 48px;
}
.birthday-copy h2 { font-family: var(--font-display); font-size: 26px; font-weight: 800; margin: 8px 0 12px; color: var(--ink); }
.birthday-copy p { font-size: 15px; line-height: 1.7; color: var(--muted); margin: 0 0 24px; max-width: 440px; }
.birthday-list { margin: 0; padding: 0 0 0 18px; }
.birthday-list li { font-size: 14px; line-height: 1.9; color: var(--muted); }

/* ---------- Información previa del bufet (precios y normas) ---------- */
.bufet-info { padding: 0 64px 56px; }
.bufet-info-head { margin-bottom: 22px; }
.bufet-info-head h2 { font-family: var(--font-display); font-size: 26px; font-weight: 800; margin: 0; color: var(--ink); }
.bufet-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }
.bufet-info-card { background: var(--ivory-deep); padding: 30px 36px; }
.bufet-info-card h3 { font-family: var(--font-display); font-size: 17px; font-weight: 800; margin: 0 0 10px; color: var(--ink); }
.bufet-info-card .price-list-row { padding: 11px 0; }
.bufet-info-card .price-list-row:last-child { border-bottom: none; }
.bufet-info-card ul { margin: 0; padding: 0 0 0 18px; }
.bufet-info-card li { font-size: 14px; line-height: 1.75; color: var(--muted); margin-bottom: 4px; }

/* ---------- Formulario de reservas ---------- */
.reserve-section { padding: 8px 64px 96px; max-width: 760px; margin: 0 auto; }
.reserve-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; min-width: 0; }
.reserve-field { display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; color: var(--muted); min-width: 0; }
.reserve-field span { font-family: var(--font-display); font-size: 11.5px; font-weight: 700; letter-spacing: 0.06em; color: var(--ink); }
.reserve-field input, .reserve-field select, .reserve-field textarea {
  font-family: var(--font-body);
  font-size: 16px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
  resize: vertical;
  width: 100%;
  min-width: 0;
}
.reserve-field input:focus, .reserve-field select:focus, .reserve-field textarea:focus {
  outline: none;
  border-color: var(--coral);
}
.reserve-field-wide { grid-column: 1 / -1; }
.reserve-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.reserve-status { min-height: 20px; margin: 20px 0 4px; font-size: 13.5px; font-weight: 600; }
.reserve-status.ok { color: var(--green); }
.reserve-status.error { color: var(--coral-hover); }
.reserve-form .btn { width: 100%; margin-top: 8px; }
.reserve-alt { text-align: center; font-size: 13px; color: var(--muted); margin-top: 18px; }

/* ---------- Panel de administración ---------- */
.admin-login-section { min-height: 70vh; display: flex; align-items: center; justify-content: center; padding: 128px 24px 40px; }
.admin-login-form { width: 100%; max-width: 360px; display: flex; flex-direction: column; gap: 16px; }
.admin-login-form h1 { font-family: var(--font-display); font-size: 30px; font-weight: 800; margin: 0 0 8px; }
.admin-dashboard { padding: 128px 64px 96px; }
.admin-dashboard-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.admin-dashboard-head h1 { font-family: var(--font-display); font-size: 30px; font-weight: 800; margin: 0; }
.admin-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.admin-filter {
  font-family: var(--font-display); font-size: 12px; font-weight: 700;
  padding: 9px 18px; border: 1px solid var(--border); background: none; color: var(--muted); cursor: pointer;
}
.admin-filter.active { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
.admin-table-wrap { overflow-x: auto; border: 1px solid var(--border); }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 900px; }
.admin-table th {
  text-align: left; font-family: var(--font-display); font-size: 11px; font-weight: 800; letter-spacing: 0.06em;
  color: var(--muted); padding: 14px 16px; background: var(--cream); border-bottom: 1px solid var(--border);
}
.admin-table td { padding: 14px 16px; border-bottom: 1px solid var(--border); vertical-align: top; }
.admin-table tr:last-child td { border-bottom: none; }
.admin-muted { color: var(--muted); font-size: 12px; margin-top: 2px; }
.admin-notes { max-width: 220px; color: var(--muted); }
.admin-badge { font-family: var(--font-display); font-size: 11px; font-weight: 800; padding: 5px 10px; display: inline-block; }
.admin-badge-pendiente { background: #F1E4C8; color: #8A5A00; }
.admin-badge-confirmada { background: #DCEEDF; color: var(--green); }
.admin-badge-cancelada { background: #F5DAD3; color: var(--coral-hover); }
.admin-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.admin-action-btn {
  font-family: var(--font-display); font-size: 11px; font-weight: 700;
  padding: 7px 12px; border: 1px solid var(--border); background: none; color: var(--ink); cursor: pointer;
}
.admin-action-btn:hover { border-color: var(--ink); }
.admin-action-btn.danger { color: var(--coral-hover); border-color: var(--coral-hover); }

/* ---------- Tablas del panel en móvil: cada fila se convierte en una "tarjeta"
   con etiqueta + valor por línea, en vez del scroll lateral de la tabla. Cada
   <td> lleva un data-label="..." (puesto desde JS) que se pinta con ::before. ---------- */
@media (max-width: 699px) {
  .admin-table-wrap { overflow-x: visible; border: none; }
  .admin-table { min-width: 0; width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13.5px; }
  .admin-table thead {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; margin: -1px;
  }
  .admin-table tbody tr {
    display: block; background: var(--ivory-deep); border: 1px solid var(--border);
    padding: 6px 16px; margin-bottom: 14px;
  }
  .admin-table tbody tr:last-child { margin-bottom: 0; }
  .admin-table tbody td {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 14px;
    padding: 10px 0; border-bottom: 1px dashed var(--border); text-align: right; vertical-align: top;
  }
  .admin-table tbody td:last-child { border-bottom: none; }
  .admin-table tbody td::before {
    content: attr(data-label); flex: 0 0 auto; text-align: left; padding-top: 1px;
    font-family: var(--font-display); font-size: 10.5px; font-weight: 800; letter-spacing: .05em;
    color: var(--muted); text-transform: uppercase;
  }
  .admin-table tbody td:not([data-label])::before { content: none; }
  /* Notas, contacto y otros textos largos: mejor la etiqueta arriba y el texto debajo, no en la misma línea. */
  .admin-table tbody td.admin-notes, .admin-table tbody td.admin-muted, .admin-table tbody td.admin-dish-name,
  .admin-table tbody td[data-label="Contacto"], .admin-table tbody td[data-label="Descripción"] {
    flex-direction: column; align-items: flex-start; text-align: left; gap: 4px;
  }
  .admin-table tbody td.admin-notes { max-width: none; }
  /* Botones de acción: fila propia, sin etiqueta, ocupando todo el ancho. */
  .admin-table tbody td.admin-actions {
    display: flex; flex-wrap: wrap; justify-content: flex-start; text-align: left;
    border-bottom: none; border-top: 1px solid var(--border); margin-top: 4px; padding-top: 14px;
  }
  .admin-table tbody td.admin-actions::before { content: none; }
}
.admin-action-btn.danger:hover { background: var(--coral-hover); color: var(--ivory); }

.admin-tabs { display: flex; flex-wrap: wrap; row-gap: 4px; gap: 8px; margin-bottom: 28px; border-bottom: 1px solid var(--border); }
.admin-tab {
  font-family: var(--font-display); font-size: 12.5px; font-weight: 700;
  padding: 12px 4px; margin-right: 24px;
  border: none; border-bottom: 2px solid transparent; background: none; color: var(--muted); cursor: pointer;
}
.admin-tab.active { color: var(--ink); border-bottom-color: var(--coral); }
.admin-thumb { width: 52px; height: 52px; object-fit: cover; border-radius: 4px; display: block; }

/* ---------- Formulario de plato (crear / editar, sobre el modal de plato) ---------- */
.dish-form-panel {
  position: relative;
  background: var(--ivory);
  width: 100%; max-width: 640px; max-height: 88vh;
  overflow-y: auto;
  padding: 40px 36px;
}
.dish-form-panel h3 { font-size: 22px; font-weight: 800; margin: 0 0 24px; }
.dish-form-panel-sm { max-width: 420px; }
.dish-form-checkbox { display: flex; align-items: center; gap: 10px; flex-direction: row; }
.dish-form-checkbox { align-items: flex-start; cursor: pointer; line-height: 1.45; }
.dish-form-checkbox input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; min-width: 18px; padding: 0; margin: 2px 0 0; accent-color: var(--coral); }
.dish-form-checkbox > span { flex: 1 1 auto; min-width: 0; font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ink); }
.dish-form-checkbox > span strong { font-weight: 800; }
#dishForm .btn, #bufetForm .btn { width: 100%; margin-top: 4px; }
.admin-empty { padding: 32px; text-align: center; color: var(--muted); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 899px) {
  :root { --header-h: 61px; }

  .container,
  .site-header,
  .dish-track,
  .story-section,
  .tatami-section,
  .site-footer,
  .trust-location,
  .carta-facts { padding-left: 20px; padding-right: 20px; }
  .carta-cat-note { padding-left: 20px; padding-right: 20px; }
  .carta-title, .carta-tabs, .carta-note, .carta-grid, .section-head, .carta-choice-section,
  .menu-dia-section, .price-list-section, .promo-strip, .birthday-section, .bufet-info,
  .reserve-section, .admin-dashboard {
    padding-left: 20px;
    padding-right: 20px;
  }

  /* En móvil no cabe todo en una fila — en vez de scroll horizontal (fácil
     de no descubrir), se reparte en una rejilla de 3x2 que se ve entera. */
  .carta-subnav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 6px;
    overflow-x: visible;
    padding: 12px 14px;
  }
  .carta-subnav-link {
    white-space: normal;
    text-align: center;
    font-size: 10px;
    line-height: 1.3;
    letter-spacing: 0.01em;
    padding-bottom: 3px;
  }
  .carta-subnav-home {
    color: var(--muted-2);
    margin-right: 0;
    padding-right: 0;
    border-right: none;
  }
  .carta-title { padding-top: 108px; }
  .carta-title-tight { padding-top: 24px; }
  .carta-title h1 { font-size: 30px; }
  .carta-choice-grid { grid-template-columns: 1fr; }
  .carta-choice-card { padding: 32px 28px; }

  .menu-dia-tiles, .menu-dia-tiles.cols-5 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px 14px; }
  .menu-dia-course-head { flex-direction: column; gap: 4px; }
  .menu-dia-includes { grid-template-columns: 1fr; }
  .menu-dia-price-card { padding: 28px 24px; }
  .menu-dia-price { font-size: 36px; }
  .promo-strip-grid { grid-template-columns: 1fr; }
  .promo-strip-item { padding: 24px 22px; }
  .promo-strip-item + .promo-strip-item { border-left: none; border-top: 1px solid var(--border); }
  .birthday-grid { grid-template-columns: 1fr; gap: 24px; padding: 32px 22px; }
  .birthday-copy .btn { display: block; }
  .bufet-info-grid { grid-template-columns: 1fr; }
  .bufet-info-card { padding: 24px 22px; }

  /* El menú partido a los lados se encoge (en vez de ocultarse tras un
     hamburguesa) para que los 4 enlaces quepan junto al logo. */
  .site-header { padding-left: 12px; padding-right: 12px; }
  .brand-logo { height: 36px; }
  .main-nav { gap: 8px; }
  .main-nav-left { margin-right: 6px; }
  .main-nav-right { margin-left: 6px; }
  .nav-link { font-size: 10.5px; }
  .main-nav-left .nav-link, .main-nav-right .nav-link { min-width: 56px; }

  /* dvh = alto realmente visible (en Safari del iPhone 100vh incluye la barra de direcciones y cortaba la ficha por abajo) */
  .dish-modal-panel { grid-template-columns: 1fr; max-height: 92vh; max-height: calc(100dvh - 32px); }
  .dish-modal-image { min-height: 160px; max-height: 42vh; max-height: 42dvh; }
  .dish-modal-image img { max-height: 42vh; max-height: 42dvh; }
  .dish-modal-info { padding: 24px 22px 28px; }
  .dish-modal-info h3 { font-size: 22px; margin-bottom: 20px; }
  .dish-modal-section { margin-bottom: 20px; }

  .hero-ctas { flex-direction: column; width: 100%; }
  .hero-ctas .btn { width: 100%; }

  /* En móvil el mini-carrusel vive dentro del hero, así que la sección
     completa de abajo (pensada para escritorio) se oculta para no duplicar. */
  .hero-dish-track { display: flex; }
  .carousel-section { display: none; }

  /* El bloque carrusel+botones se centra en el suelo que queda libre bajo
     la placa (en vez de quedar todo apiñado pegado al borde inferior). */
  .hero-inner {
    top: 48%;
    justify-content: center;
    gap: 28px;
    padding-bottom: 34px;
  }

  .trust-location {
    margin: 0 20px 24px;
    padding: 28px 20px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .trust-location-map { height: 240px; }

  .story-grid { grid-template-columns: 1fr; }
  .tatami-grid { grid-template-columns: 1fr; padding: 28px 20px; gap: 28px; }
  .tatami-photos { height: 300px; }
  .tatami-copy .btn { align-self: stretch; text-align: center; }

  /* Contacto y horario comparten fila para aprovechar el ancho en vez de
     apilarse todo en una sola columna estrecha, y todo centrado. */
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "brand brand"
      "contact hours"
      "legal reserve";
    gap: 28px 24px;
    text-align: center;
    justify-items: center;
  }
  .footer-brand { grid-area: brand; }
  .footer-logo { margin-left: auto; margin-right: auto; }
  .footer-tagline { max-width: none; margin-left: auto; margin-right: auto; }
  .footer-contact { grid-area: contact; }
  .footer-hours { grid-area: hours; }
  .footer-legal-col { grid-area: legal; }
  .footer-reserve { grid-area: reserve; }
  .footer-reserve .btn { display: inline-block; }
  .footer-bottom { flex-direction: column; align-items: center; justify-content: center; text-align: center; }

  .carta-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .carta-grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }

  .reserve-grid { grid-template-columns: 1fr; }
  .admin-dashboard-head { align-items: flex-start; }

  /* En móvil no caben las 9 pestañas en una fila; en vez de scroll horizontal
     (fácil de no descubrir y deja el Gestor de usuarios escondido), se pasan
     a varias líneas para que se vean todas de un vistazo. */
  .admin-tabs { flex-wrap: wrap; row-gap: 6px; margin-bottom: 20px; }
  .admin-tab { margin-right: 16px; padding: 10px 2px; }
}

@media (max-width: 560px) {
  .carta-grid { grid-template-columns: 1fr; }
  .carta-grid-4 { grid-template-columns: 1fr; }
  .dish-card { flex-basis: 210px; }
}

/* ---------- Panel: categorías y editor de textos ---------- */
.admin-hint { font-size: 13.5px; line-height: 1.6; color: var(--muted); margin: 10px 0 0; max-width: 720px; }
.admin-strong { font-weight: 700; }
.admin-arrow { padding: 4px 9px; margin-right: 4px; }
.admin-arrow:disabled { opacity: .3; cursor: default; }
.content-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.content-select { font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--border); background: var(--cream); color: var(--ink); min-width: 250px; }
.content-fields { padding-bottom: 60px; }
.content-group { font-size: 17px; font-weight: 800; margin: 34px 0 12px; color: var(--ink); }
.content-group-box { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.content-field { background: var(--cream); border: 1px solid var(--border); padding: 14px 16px; min-width: 0; }
.content-field.is-dirty { border-color: var(--coral); box-shadow: 0 0 0 1px var(--coral) inset; }
.content-field-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.content-label { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.content-flag { font-size: 11px; font-weight: 700; color: var(--coral); }
.content-field input, .content-field textarea { width: 100%; font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--border); background: #fff; color: var(--ink); resize: vertical; }
.content-field input.content-price { max-width: 160px; font-weight: 700; }
.content-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 8px; }
.content-orig { font-size: 12px; color: var(--muted-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
@media (max-width: 899px) { .content-group-box { grid-template-columns: minmax(0, 1fr); } .content-select { min-width: 0; width: 100%; } }

.btn:disabled { opacity: .45; cursor: not-allowed; transform: none !important; box-shadow: none !important; }

/* ---------- Bloque destacado (p. ej. Platos Especiales en el bufet) ----------
   Panel beige como Tatami y las normas, con toques japoneses: olas (seigaiha)
   que se desvanecen bajo el título, sello hanko en coral y filete interior. */
.featured-block {
  position: relative;
  grid-column: 1 / -1;
  margin: 16px 0 8px;
  padding: 44px 48px 48px;
  background-color: var(--ivory-deep);
  background-image: linear-gradient(180deg, rgba(235,225,204,0) 0, rgba(235,225,204,.55) 110px, var(--ivory-deep) 250px), url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='40'%20height='20'%20viewBox='0%200%2040%2020'%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3C/svg%3E");
  background-size: 100% 100%, 56px 28px;
}
.featured-block::after {
  content: ''; position: absolute; inset: 10px; pointer-events: none;
  border: 1px solid rgba(255,106,77,.38);
}
.featured-seal {
  position: absolute; top: 34px; right: 40px; z-index: 1;
  width: 62px; height: 62px;
  display: flex; align-items: center; justify-content: center;
  background: var(--coral); color: var(--cream);
  font-family: 'Yu Mincho', 'Hiragino Mincho ProN', 'Noto Serif JP', 'MS Mincho', serif;
  font-size: 38px; font-weight: 700; line-height: 1;
  border-radius: 4px; transform: rotate(-4deg);
  box-shadow: inset 0 0 0 3px var(--coral), inset 0 0 0 4.5px rgba(251,246,236,.75);
}
.featured-block-head { position: relative; margin-bottom: 30px; padding-right: 90px; }
.featured-block-head h2 { font-family: var(--font-display); font-size: 28px; font-weight: 800; margin: 0; color: var(--ink); }
.featured-block-head h2::before { content: ''; display: block; width: 44px; height: 3px; background: var(--coral); margin-bottom: 16px; }
.featured-block-head p { font-size: 14.5px; line-height: 1.6; color: var(--muted); margin: 8px 0 0; max-width: 620px; }
.featured-grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.carta-card-featured .carta-card-photo { box-shadow: 0 14px 28px rgba(27,23,20,.16); }
@media (max-width: 899px) {
  .featured-block { padding: 34px 24px 32px; }
  .featured-seal { top: 26px; right: 24px; width: 46px; height: 46px; font-size: 28px; }
  .featured-block-head { padding-right: 60px; }
  .featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; }
}
@media (max-width: 560px) {
  .featured-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   Lenguaje japonés compartido por los paneles de la web:
   olas (seigaiha) que se desvanecen bajo el título, filete fino
   interior y un sello hanko coral con un kanji propio de cada
   sección asomando por la esquina.
   ========================================================= */
.tatami-grid, .trust-location, .bufet-info-card, .carta-choice-card, .featured-block {
  --fade: min(150px, 34%);
  position: relative;
  background-color: var(--ivory-deep);
  background-image: linear-gradient(180deg, rgba(235,225,204,0) 0, rgba(235,225,204,.5) calc(var(--fade) * .5), rgba(235,225,204,1) var(--fade), rgba(235,225,204,1) calc(100% - var(--fade)), rgba(235,225,204,.5) calc(100% - var(--fade) * .5), rgba(235,225,204,0) 100%), url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='40'%20height='20'%20viewBox='0%200%2040%2020'%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='20'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='15'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='10'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='5'%20fill='%23EBE1CC'%20stroke='%23D6C7A2'%20stroke-width='0.9'/%3E%3C/svg%3E");
  background-size: 100% 100%, 56px 28px;
}
/* Se alternan beige y coral suave: Tatami · Cumpleaños · Ubicación · Reseñas */
.birthday-grid, .story-grid, .promo-strip-grid, .menu-dia-price-card {
  --fade: min(150px, 34%);
  position: relative;
  background-color: #F5E1D1;
  background-image: linear-gradient(180deg, rgba(245,225,209,0) 0, rgba(245,225,209,.5) calc(var(--fade) * .5), rgba(245,225,209,1) var(--fade), rgba(245,225,209,1) calc(100% - var(--fade)), rgba(245,225,209,.5) calc(100% - var(--fade) * .5), rgba(245,225,209,0) 100%), url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='40'%20height='20'%20viewBox='0%200%2040%2020'%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='-10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='-10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='-10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='-10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='0'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='0'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='0'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='0'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='10'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='20'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='20'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='20'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='20'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='30'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='30'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='30'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='30'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-20'%20cy='40'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='20'%20cy='40'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='60'%20cy='40'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='100'%20cy='40'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='-40'%20cy='50'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='0'%20cy='50'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='20'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='15'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='10'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3Ccircle%20cx='80'%20cy='50'%20r='5'%20fill='%23F5E1D1'%20stroke='%23E7C6AE'%20stroke-width='0.9'/%3E%3C/svg%3E");
  background-size: 100% 100%, 56px 28px;
}
.tatami-grid::after, .story-grid::after, .trust-location::after, .bufet-info-card::after,
.birthday-grid::after, .promo-strip-grid::after, .menu-dia-price-card::after {
  content: ''; position: absolute; inset: 9px; pointer-events: none;
  border: 1px solid rgba(255,106,77,.34);
}
.tatami-grid::before, .story-grid::before, .trust-location::before,
.birthday-grid::before, .promo-strip-grid::before, .menu-dia-price-card::before {
  position: absolute; top: -16px; right: 34px; z-index: 2;
  width: 54px; height: 54px;
  display: flex; align-items: center; justify-content: center;
  background: var(--coral); color: var(--cream);
  font-family: 'Yu Mincho', 'Hiragino Mincho ProN', 'Noto Serif JP', 'MS Mincho', serif;
  font-size: 32px; font-weight: 700; line-height: 1;
  border-radius: 4px; transform: rotate(-4deg);
  box-shadow: inset 0 0 0 3px var(--coral), inset 0 0 0 4.5px rgba(251,246,236,.75), 0 6px 14px rgba(27,23,20,.18);
}
.tatami-grid::before { content: '畳'; }
.birthday-grid::before { content: '祝'; }
.trust-location::before { content: '訪'; }
.story-grid::before { content: '声'; }
.menu-dia-price-card::before { content: '昼'; }
.promo-strip-grid::before { content: '持'; }
.promo-strip { padding-top: 16px; }
.carta-choice-card:hover { background-position: 0 0, 0 0; }
@media (max-width: 899px) {
  .tatami-grid::before, .story-grid::before, .trust-location::before,
  .birthday-grid::before, .promo-strip-grid::before, .menu-dia-price-card::before {
    top: -14px; right: 20px; width: 42px; height: 42px; font-size: 25px;
  }
}

/* ---------- Transición de la zona oscura a la primera sección clara ----------
   Ilustración de tinta (mar, olas, sol coral): arriba es negro liso como el carrusel y
   abajo marfil liso como el fondo, así que las uniones no se notan. Los degradados
   finos de los extremos corrigen las diferencias mínimas de tono de la imagen.
   La imagen sube por debajo del carrusel (--ov) para no perder espacio: la parte
   negra de la ilustración hace de fondo de los títulos de los platos. */
:root { --ov: 7vw; }
.tatami-section { padding-top: 0; }
.tatami-section::before {
  content: ''; display: block; position: relative; z-index: -2; aspect-ratio: 2000 / 661; margin: calc(-1 * var(--ov)) -64px -44px;
  background:
    linear-gradient(180deg, #1B1714 0, rgba(27,23,20,0) 16%),
    url('../assets/transicion-mar.webp') center / 100% 100% no-repeat;
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 84%, transparent 100%);
          mask-image: linear-gradient(180deg, #000 0, #000 84%, transparent 100%);
}
.carousel-section {
  z-index: 1;
  background: linear-gradient(180deg, var(--ink) 0, var(--ink) calc(100% - var(--ov) + 2px), rgba(27,23,20,0) calc(100% - var(--ov) + 2px));
}
@media (max-width: 899px) {
  /* En móvil los botones del hero se apoyan sobre la parte negra de la imagen. */
  .hero-inner { z-index: 5; }
  .tatami-section::before {
    aspect-ratio: auto; height: 230px; margin: -72px -20px -30px;
    position: relative; z-index: 4;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 48px, #000 calc(100% - 36px), transparent 100%);
            mask-image: linear-gradient(180deg, transparent 0, #000 48px, #000 calc(100% - 36px), transparent 100%);
    background:
      linear-gradient(180deg, rgb(12,10,8) 0, rgba(12,10,8,0) 16%),
      url('../assets/transicion-mar.webp') 62% center / cover no-repeat;
  }
  .tatami-grid { z-index: 6; }
}

/* ---------- Footer con ilustración nocturna (luna sobre el mar) ----------
   Arriba es marfil liso como la página y abajo negro liso como el footer; el texto
   se apoya sobre la parte negra, bajo las olas. Se recorta el marfil sobrante de arriba
   (--crop) para no dejar un hueco enorme entre el último panel y la ilustración. */
.site-footer {
  --fh: calc(100vw / 3.0206);
  --crop: calc(var(--fh) * .14);
  position: relative; isolation: isolate;
  padding-top: calc(var(--fh) * .88 - var(--crop));
}
.site-footer::before {
  content: ''; position: absolute; z-index: -1; left: 0; right: 0; top: -2px; height: calc(var(--fh) - var(--crop) + 2px);
  background:
    linear-gradient(0deg, #100D0B 0, rgba(16,13,11,0) 26%),
    url('../assets/transicion-luna.webp') 0 100% / 100% var(--fh) no-repeat;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 12%);
          mask-image: linear-gradient(180deg, transparent 0, #000 12%);
}
.site-footer {
  background: linear-gradient(#100D0B, #100D0B) 0 100% / 100% calc(100% - var(--fh) + var(--crop) + 60px) no-repeat;
}
@media (max-width: 899px) {
  .site-footer { --fh: 230px; --crop: 32px; padding-top: 170px; }
  .site-footer::before {
    background:
      linear-gradient(0deg, #100D0B 0, rgba(16,13,11,0) 26%),
      url('../assets/transicion-luna.webp') 30% 100% / cover no-repeat;
  }
}
.story-section { padding-bottom: 24px; }

/* ---------- Pie de la portada: el suelo de la foto se oscurece hasta el negro del carrusel ----------
   Solo se oscurece el suelo (bajo la placa), sin tapar nada de la foto ni inventar otra escena. */
.hero-scrim::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: min(24vh, 200px);
  background: linear-gradient(180deg, rgba(27,23,20,0.00) 0%, rgba(27,23,20,0.04) 12%, rgba(27,23,20,0.16) 25%, rgba(27,23,20,0.32) 38%, rgba(27,23,20,0.50) 50%, rgba(27,23,20,0.68) 62%, rgba(27,23,20,0.84) 75%, rgba(27,23,20,0.96) 88%, rgba(27,23,20,1.00) 100%);
}
@media (max-width: 899px) {
  .hero-scrim::after { height: 120px; background: linear-gradient(180deg, rgba(12,10,8,0.00) 0%, rgba(12,10,8,0.04) 12%, rgba(12,10,8,0.16) 25%, rgba(12,10,8,0.32) 38%, rgba(12,10,8,0.50) 50%, rgba(12,10,8,0.68) 62%, rgba(12,10,8,0.84) 75%, rgba(12,10,8,0.96) 88%, rgba(12,10,8,1.00) 100%); }
}

/* ---------- Paneles: fondo liso, doble filete descuadrado ----------
   - Sin olas: cada panel es un color liso (beige o melocotón).
   - El panel lo marca un doble filete coral DESCUADRADO: un rectángulo desplazado hacia arriba-izquierda
     y su copia hacia abajo-derecha, de modo que cada uno queda por fuera en dos lados y por dentro en los
     otros dos, y se cruzan en las esquinas. */
.tatami-grid, .trust-location, .bufet-info-card, .carta-choice-card, .featured-block, .birthday-grid, .story-grid, .promo-strip-grid, .menu-dia-price-card {
  --mist: 72px; --dq: 12px;
  background-image: none;
  border: 0 solid transparent; border-radius: 0; box-shadow: none; outline: none;
}
.tatami-grid, .trust-location, .bufet-info-card, .carta-choice-card, .featured-block {
  background-color: rgba(227,214,184,.5);
}
.birthday-grid, .story-grid, .promo-strip-grid, .menu-dia-price-card {
  background-color: rgba(247,214,194,.5);
}
.bufet-info-card, .carta-choice-card, .menu-dia-price-card, .promo-strip-grid { --mist: 40px; --dq: 9px; }
.tatami-grid::after,
.trust-location::after,
.bufet-info-card::after,
.carta-choice-card::after,
.featured-block::after,
.birthday-grid::after,
.story-grid::after,
.promo-strip-grid::after,
.menu-dia-price-card::after {
  content: ''; position: absolute; pointer-events: none;
  inset: calc(-1 * var(--dq)) var(--dq) var(--dq) calc(-1 * var(--dq));
  border: 1px solid rgba(255,106,77,.55);
  filter: drop-shadow(calc(2 * var(--dq)) calc(2 * var(--dq)) 0 rgba(255,106,77,.55));
}
@media (max-width: 899px) {
  .tatami-grid, .trust-location, .birthday-grid, .story-grid, .featured-block { --mist: 48px; --dq: 9px; }
  .bufet-info-card, .carta-choice-card, .menu-dia-price-card, .promo-strip-grid { --mist: 34px; --dq: 7px; }
}
html, body { overflow-x: clip; }

/* Footer: el texto baja hacia el centro de la zona negra y se recorta el negro sobrante de abajo. */
.site-footer { padding-top: calc(var(--fh) * .95 - var(--crop)); padding-bottom: 14px; }
.footer-grid { padding-bottom: 16px; }
.footer-bottom { padding-top: 12px; }
@media (max-width: 899px) { .site-footer { padding-top: 178px; } }

/* Reserva la altura del carrusel de platos antes de que lleguen los datos, para que la página no salte al cargar. */
@media (min-width: 900px) { .dish-track { min-height: 342px; } }

/* Móvil: más aire entre tarjetas para que sus filetes descuadrados no se toquen, y manchas del papel más finas. */
.carta-choice-grid { gap: 40px; }
@media (max-width: 899px) {
  .carta-choice-grid { gap: 44px; }
  body { background-size: 420px 420px; }
}

/* ---------- Panel: teléfono con WhatsApp y avisos de nuevas reservas ---------- */
.admin-wa { color: var(--coral); font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255,106,77,.45); }
.admin-wa::after { content: ' ↗'; font-size: .85em; }
.admin-wa:hover { border-bottom-color: var(--coral); }
.admin-push {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding: 16px 20px; margin: 0 0 22px; background: rgba(227,214,184,.5);
  border-left: 3px solid var(--coral);
}
.admin-push[data-state="on"] { border-left-color: #4C9A6A; }
.admin-push[data-state="warn"] { border-left-color: #C9932B; }
.admin-push-text { flex: 1 1 320px; }
.admin-push-text strong { font-family: var(--font-display); font-size: 15px; font-weight: 800; }
.admin-push-text p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.admin-push-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.admin-push-main { background: var(--coral); border-color: var(--coral); color: var(--ink); }

/* Footer (escritorio): contacto, horario y reservas bajan 70 px respecto al logo y al lema. */
@media (min-width: 900px) {
  .footer-contact, .footer-hours, .footer-legal-col, .footer-reserve { padding-top: 70px; }
}

/* ---------- Panel de platos: buscador, filtros, cabecera fija, estados y foto ---------- */
.admin-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 16px; }
.admin-search, .admin-toolbar select {
  padding: 10px 12px; border: 1px solid var(--border); background: rgba(251,246,236,.85);
  font: inherit; font-size: 16px; color: var(--ink);
}
.admin-search { flex: 1 1 300px; min-width: 220px; }
.admin-count { margin-left: auto; font-size: 12.5px; color: var(--muted); }
/* Un solo scroll (el de la página): la barra de búsqueda y la cabecera de la tabla se quedan fijas bajo la cabecera del panel. */
.admin-toolbar { position: sticky; top: var(--admin-head, 87px); z-index: 4; padding: 10px 0; background: var(--ivory); }
.admin-table-sticky { overflow-x: auto; }
.admin-table-dishes { min-width: 0; }
.admin-table-dishes th, .admin-table-dishes td { padding-left: 10px; padding-right: 10px; }
.admin-table-dishes th { white-space: nowrap; }
.admin-table-dishes .admin-pill { white-space: normal; max-width: 150px; }
@media (min-width: 1280px) {
  .admin-table-sticky { overflow: visible; }
  .admin-table-dishes th { position: sticky; top: var(--admin-th-top, 150px); z-index: 3; box-shadow: 0 1px 0 var(--border); }
}
@media (max-width: 1279px) { .admin-toolbar { position: static; } }
@media (max-width: 1279px) and (min-width: 700px) { .admin-table-dishes { min-width: 1100px; } }
/* Por debajo de 700px la tabla de platos pasa a formato tarjeta, igual que el resto (ver más abajo). */
@media (max-width: 699px) { .admin-table-dishes { min-width: 0; } }
@media (max-width: 699px) { .admin-table-simple { min-width: 0; } }
.admin-table th.sortable { cursor: pointer; user-select: none; }
.admin-table th.sortable:hover { color: var(--ink); }
.admin-table th.sortable::after { content: '↕'; margin-left: 6px; opacity: .35; }
.admin-table th.sortable[aria-sort="ascending"]::after { content: '▲'; opacity: 1; color: var(--coral); font-size: 9px; }
.admin-table th.sortable[aria-sort="descending"]::after { content: '▼'; opacity: 1; color: var(--coral); font-size: 9px; }
.admin-dish-name { font-weight: 700; min-width: 160px; }
.row-inactive td { opacity: .5; }
.row-inactive td:last-child { opacity: 1; }
.admin-pill { display: inline-block; font-family: var(--font-display); font-size: 11px; font-weight: 700; padding: 4px 9px; white-space: nowrap; }
.admin-pill-on { background: #DCEEDF; color: var(--green); }
.admin-pill-off { background: #F5DAD3; color: var(--coral-hover); }
.admin-pill-warn { background: #F1E4C8; color: #8A5A00; }
.admin-pill-muted { background: rgba(27,23,20,.07); color: var(--muted); }
.admin-thumb-empty { display: flex; align-items: center; justify-content: center; border: 1px dashed var(--border); font-size: 9px; text-align: center; color: var(--muted); }
.dish-form-photo-row { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.dish-form-photo-box {
  width: 132px; aspect-ratio: 5 / 4; flex: 0 0 auto; overflow: hidden;
  border: 1px solid var(--border); background: rgba(227,214,184,.4);
  display: flex; align-items: center; justify-content: center;
}
.dish-form-photo-box img { width: 100%; height: 100%; object-fit: cover; }
.dish-form-photo-empty { font-size: 12px; color: var(--muted); }
.dish-form-photo-actions { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; min-width: 200px; flex: 1 1 200px; max-width: 100%; }
.dish-form-photo-actions input[type="file"] { max-width: 100%; }

/* ---------- Carta: platos sin foto y agotados; ficha sin foto ---------- */
.carta-card-photo-empty {
  display: flex; align-items: center; justify-content: center;
  background: rgba(227,214,184,.55); box-shadow: inset 0 0 0 1px rgba(255,106,77,.25);
}
.photo-empty-mark { font-family: 'Yu Mincho', 'Hiragino Mincho ProN', 'Noto Serif JP', 'MS Mincho', serif; font-size: 54px; color: rgba(255,106,77,.5); }
.carta-card-soldout .carta-card-photo img { filter: grayscale(.85) brightness(.85); }
.carta-card-soldout .dish-name, .carta-card-soldout .dish-desc, .carta-card-soldout .carta-card-price { opacity: .6; }
.soldout-tag {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  background: var(--ink); color: var(--ivory); font-size: 10.5px; font-weight: 800; letter-spacing: .1em; padding: 6px 10px;
}
.dish-modal-nophoto { grid-template-columns: 1fr; max-width: 520px; }
.dish-modal-soldout { font-size: 13px !important; font-weight: 800; color: var(--coral) !important; margin: -14px 0 18px !important; letter-spacing: .04em; }

/* ---------- Botón flotante "volver arriba" ---------- */
.to-top {
  position: fixed; z-index: 60;
  right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom));
  width: 46px; height: 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--coral); color: var(--ink); border: none; cursor: pointer;
  box-shadow: 0 8px 20px rgba(27,23,20,.28);
  opacity: 0; transform: translateY(10px); transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.to-top.is-visible { opacity: 1; transform: none; }
.to-top:hover { background: var(--coral-hover); color: var(--ivory); }
.to-top:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.to-top[hidden] { display: none; }
body.modal-open .to-top { display: none; }

/* Sello de los contenedores de la carta: asoma sobre el borde, igual que los de la home. */
.featured-seal {
  top: -16px; right: 34px; width: 54px; height: 54px; font-size: 32px;
  box-shadow: inset 0 0 0 3px var(--coral), inset 0 0 0 4.5px rgba(251,246,236,.75), 0 6px 14px rgba(27,23,20,.18);
}
.featured-block-head { padding-right: 0; }
@media (max-width: 899px) { .featured-seal { top: -14px; right: 20px; width: 42px; height: 42px; font-size: 25px; } }

/* ---------- Bebidas, combos y menú del día: público y panel ---------- */
.price-list-name { display: flex; align-items: center; gap: 12px; }
.price-list-text { display: flex; flex-direction: column; }
.price-list-thumb { width: 46px; height: 46px; object-fit: cover; border-radius: 4px; flex: 0 0 auto; }
.price-list-soldout { background: var(--ink); color: var(--ivory); font-size: 10px; font-weight: 800; letter-spacing: .1em; padding: 4px 8px; }
.price-list-row-soldout .price-list-text, .price-list-row-soldout .price-list-price { opacity: .55; }
.menu-dia-tile .soldout-tag { top: 10px; left: 10px; }
.admin-head-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-help { max-width: 780px; margin: -8px 0 22px; font-size: 13.5px; line-height: 1.6; color: var(--muted); }
.admin-group { margin: 0 0 36px; }
.admin-group-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 10px; }
.admin-group-head h2 { font-family: var(--font-display); font-size: 18px; font-weight: 800; margin: 0; }
.admin-group-actions { display: flex; gap: 8px; flex-wrap: wrap; }
@media (min-width: 700px) { .admin-table-simple { min-width: 720px; } }
.menudia-price-row { max-width: 220px; margin: 0 0 24px; }
.menudia-course { margin: 0 0 32px; }
.menudia-course h2 { font-family: var(--font-display); font-size: 18px; font-weight: 800; margin: 0 0 4px; }
.menudia-row { display: grid; grid-template-columns: minmax(200px, 1.4fr) minmax(160px, 1fr) minmax(160px, 1fr) auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.menudia-row select, .menudia-row input { padding: 9px 10px; border: 1px solid var(--border); background: rgba(251,246,236,.85); font: inherit; font-size: 16px; min-width: 0; width: 100%; }
.menudia-row-actions { display: flex; gap: 6px; }
@media (max-width: 899px) { .menudia-row { grid-template-columns: 1fr; } }

/* ---------- Login: casilla de "recordarme", y "Mi cuenta" en la cabecera ---------- */
.admin-remember { flex-direction: row; align-items: center; gap: 10px; margin: -4px 0 4px; }
.admin-remember input { width: 16px; height: 16px; }
.admin-remember span { font-size: 13px; color: var(--muted); }
#whoamiLabel { color: var(--muted); cursor: default; }

/* ---------- Mi cuenta: dos formularios en el mismo modal ---------- */
.account-section { margin: 0 0 4px; }
.account-sep { border: none; border-top: 1px solid var(--border); margin: 22px 0 18px; }

/* ---------- Firma del creador de la web (pie) ---------- */
.footer-credit { display: inline-flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; }
.footer-credit::before, .footer-credit::after { content: ''; width: 22px; height: 1px; background: var(--coral); opacity: .8; flex: 0 0 auto; }
.footer-credit-label {
  font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: var(--muted-2);
}
.footer-credit-name {
  font-family: var(--font-display); font-size: 13px; font-weight: 800; letter-spacing: .04em;
  color: var(--cream); transition: color .2s ease;
}
.footer-bottom a.footer-credit-name { color: var(--cream); }
.footer-bottom a.footer-credit-name:hover { color: var(--coral); }
@media (max-width: 899px) {
  .footer-credit { gap: 8px; max-width: 100%; }
  .footer-credit::before, .footer-credit::after { width: 14px; }
  .footer-credit-label { letter-spacing: .12em; }
}

/* En escritorio el pie va en rejilla 1fr · auto · 1fr: la firma queda centrada de verdad (no entre © e Instagram),
   con o sin firma, y © e Instagram siguen en sus extremos. */
@media (min-width: 900px) {
  .footer-bottom { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; column-gap: 16px; }
  .footer-bottom > :first-child { grid-column: 1; justify-self: start; }
  .footer-bottom > .footer-credit { grid-column: 2; justify-self: center; }
  .footer-bottom > a { grid-column: 3; justify-self: end; }
}

/* Sin estilos incrustados (la política CSP no los permite). */
.account-credit-title { margin: 0 0 6px; }
.admin-hint.account-credit-hint { margin: 0 0 14px; }
.menudia-add { margin-top: 12px; }

/* ---------- Modo mantenimiento y reservas cerradas (los activa el panel) ---------- */
html.is-maint body > *:not(.maint-screen) { display: none !important; }
.maint-screen {
  position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center;
  padding: 24px; box-sizing: border-box; text-align: center; background: #100D0B; color: var(--cream);
}
.maint-inner { max-width: 520px; }
.maint-eyebrow { font-family: var(--font-display); font-size: 12px; font-weight: 800; letter-spacing: .3em; color: var(--coral); text-transform: uppercase; }
.maint-screen h1 { font-family: var(--font-display); font-size: 30px; line-height: 1.25; font-weight: 800; margin: 18px 0 14px; color: var(--cream); }
.maint-screen p { color: #D8CFC2; line-height: 1.7; margin: 0 0 10px; font-size: 17px; }
.maint-rule { width: 60px; height: 1px; background: var(--coral); margin: 22px auto; }
.maint-screen .maint-contact { font-size: 14px; color: var(--muted-2); }
.maint-contact a { color: var(--cream); border-bottom: 1px solid var(--coral); }
.reserve-closed { max-width: 560px; margin: 0 auto; padding: 32px 28px; text-align: center; background: var(--ivory-deep); border: 1px solid var(--border); }
.reserve-closed h2 { font-family: var(--font-display); font-size: 22px; font-weight: 800; margin: 0 0 12px; color: var(--ink); }
.reserve-closed p { margin: 0 0 8px; color: var(--muted); line-height: 1.7; }
.reserve-closed .maint-contact { font-size: 15px; color: var(--ink); }
.reserve-closed .maint-contact a { color: var(--coral-hover); border-bottom: 1px solid var(--coral); }

/* ---------- Panel de soporte: tarjetas de cifras, gráfico de visitas y seguridad ---------- */
.admin-group-title { font-family: var(--font-display); font-size: 18px; font-weight: 800; margin: 30px 0 12px; color: var(--ink); }
.stat-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 0 0 26px; }
.stat-card { background: var(--ivory-deep); border: 1px solid var(--border); padding: 18px 20px; }
.stat-card b { display: block; font-family: var(--font-display); font-size: 32px; font-weight: 800; line-height: 1.1; color: var(--ink); }
.stat-card span { display: block; margin-top: 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.visit-chart-block { margin: 0 0 18px; }
.visit-chart-label { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 0 0 6px; }
.visit-chart { display: flex; align-items: flex-end; gap: 4px; height: 110px; padding: 8px; background: var(--ivory-deep); border: 1px solid var(--border); }
.visit-bar { flex: 1 1 0; min-height: 2px; background: var(--coral); }
.sec-ip { font-family: ui-monospace, Consolas, monospace; font-size: 13px; }
.sec-json { margin: 6px 0 0; padding: 8px; max-width: 320px; overflow: auto; font-size: 11.5px; white-space: pre-wrap; word-break: break-all; background: rgba(27,23,20,.06); }
.sec-ban-form { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 14px; }
.sec-ban-form input, .sec-ban-form select { flex: 1 1 180px; min-width: 0; padding: 10px 12px; border: 1px solid var(--border); background: rgba(251,246,236,.85); font: inherit; font-size: 16px; color: var(--ink); }
.admin-empty[hidden] { display: none; }

/* ---------- Aviso de cookies discreto, mapa con consentimiento y página legal ---------- */
.cookie-notice {
  position: fixed; left: 16px; bottom: 16px; z-index: 900; max-width: 340px; box-sizing: border-box;
  padding: 14px 16px; background: rgba(16,13,11,.94); color: #D8CFC2; border: 1px solid rgba(255,106,77,.35);
  box-shadow: 0 10px 28px rgba(0,0,0,.35); font-size: 12.5px; line-height: 1.55;
}
.cookie-notice p { margin: 0 0 10px; }
.cookie-notice-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cookie-notice-more { color: var(--muted-2); border-bottom: 1px solid rgba(255,106,77,.5); font-size: 12px; }
.cookie-notice-more:hover { color: var(--cream); }
.cookie-notice-ok {
  font-family: var(--font-display); font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  padding: 8px 14px; background: var(--coral); color: var(--ink); border: 0; cursor: pointer;
}
.cookie-notice-ok:hover { background: var(--coral-light); }
@media (max-width: 899px) { .cookie-notice { left: 10px; right: 10px; bottom: 10px; max-width: none; } }
.map-consent { display: flex; align-items: center; justify-content: center; padding: 24px; box-sizing: border-box; text-align: center; background: var(--ivory-deep); border: 1px solid var(--border); filter: none; }
.map-consent-inner { max-width: 320px; }
.map-consent p { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.map-consent a { display: inline-block; margin-top: 12px; font-size: 13px; color: var(--ink); border-bottom: 1px solid var(--coral); }
.legal-section { padding: 8px 64px 56px; }
.legal-prose { max-width: 760px; margin: 0 auto; }
.legal-prose h2 { font-family: var(--font-display); font-size: 20px; font-weight: 800; margin: 34px 0 10px; color: var(--ink); }
.legal-prose p, .legal-prose li { font-size: 15px; line-height: 1.75; color: var(--muted); }
.legal-prose ul { padding-left: 20px; }
.legal-prose a { color: var(--ink); border-bottom: 1px solid var(--coral); }
.legal-table { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 13.5px; }
.legal-table th { text-align: left; font-family: var(--font-display); font-size: 11px; font-weight: 800; letter-spacing: .06em; color: var(--muted); padding: 10px 12px; background: var(--cream); border-bottom: 1px solid var(--border); }
.legal-table td { padding: 12px; border-bottom: 1px solid var(--border); vertical-align: top; color: var(--muted); line-height: 1.6; }
@media (max-width: 899px) { .legal-section { padding-left: 20px; padding-right: 20px; } }
@media (max-width: 699px) {
  .legal-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .legal-table tr { display: block; margin-bottom: 14px; padding: 6px 14px; background: var(--ivory-deep); border: 1px solid var(--border); }
  .legal-table td { display: block; padding: 8px 0; border-bottom: 1px dashed var(--border); }
  .legal-table td:last-child { border-bottom: 0; }
  .legal-table td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ink); }
}

/* ---------- Enlaces legales del pie y datos legales ---------- */
.legal-data { list-style: none; padding: 0; margin: 12px 0; }
.legal-data li { padding: 6px 0; border-bottom: 1px dashed var(--border); }
.legal-missing { color: var(--coral-hover); font-weight: 700; }
.reserve-privacy { margin: 16px 0 12px; font-size: 12px; line-height: 1.6; color: var(--muted); }
.reserve-privacy a { color: var(--ink); border-bottom: 1px solid var(--coral); }

/* Páginas legales: no llevan submenú, así que el título baja por debajo de la cabecera fija */
.carta-title.carta-title-legal { padding-top: calc(var(--header-h) + 40px); }

.cookie-notice-buttons { display: flex; gap: 8px; }
.cookie-notice-no {
  font-family: var(--font-display); font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  padding: 8px 14px; background: transparent; color: #D8CFC2; border: 1px solid rgba(216,207,194,.5); cursor: pointer;
}
.cookie-notice-no:hover { color: #fff; border-color: #fff; }
.footer-legal-links { list-style: none; margin: 0; padding: 0; }
.footer-legal-links li { margin: 0 0 6px; }
.footer-legal-links a { font-size: 13.5px; line-height: 1.7; color: #D8CFC2; }
.footer-legal-links a:hover { color: var(--coral); }
