/*
 * ESCAPARATE (v0.5.52) — el tema de siempre, el de fabrica. Ordenado y tranquilo, oscuro o
 * claro, portada a pantalla completa. La idea: la web es el escaparate de la tienda.
 *   - la portada es la luna: la foto, el titular y el NOMBRE ROTULADO a lo ancho del cristal;
 *   - el CARTEL DE LA PUERTA cuelga de su cordel y dice si esta abierto (y se da la vuelta);
 *   - cada precio lleva su ETIQUETA colgada, que se balancea al pasar;
 *   - el horario es la puerta (el campo se invierte) y el cierre va en el color de la casa.
 * Todo con los colores y la letra que eligio la empresa (--site-*, --font-*): este fichero
 * no trae ni un color propio salvo el blanco y negro de las fotos.
 *
 * Dos capas: .esc-home (la portada, que ya no carga app.css) y las piezas comunes .site-* /
 * .sw-* que usan las paginas interiores (reservar, alojarse, carta...) con app.css.
 */

.esc {
  --ground: var(--site-bg);
  --field: var(--site-bg-2);
  --ink: var(--site-fg);
  --muted: var(--site-muted);
  --accent: var(--site-accent);
  --accent-ink: var(--site-accent-ink);
  --accent-text: var(--site-accent-text, var(--site-accent));
  --display: var(--font-display);
  --text: var(--font-body);
  --g: clamp(1rem, 3.4vw, 2rem);
  --max: 84rem;
  --gap: clamp(5.5rem, 11vw, 10rem);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --r-img: .5rem;
  margin: 0;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
.site { font-family: var(--font-body); background: var(--site-bg); color: var(--site-fg); overflow-x: clip; -webkit-font-smoothing: antialiased; font-size: 1.0625rem; line-height: 1.6; }
.site h1, .site h2, .site h3, .sw-display { font-family: var(--font-display); letter-spacing: -0.02em; font-optical-sizing: auto; }
::selection { background: var(--site-accent); color: var(--site-accent-ink); }

/* ---------------------------------------------------------------- la portada sin app.css */
/* Sin especificidad (:where): cualquier clase del tema manda sobre el reinicio. */
:where(.esc-home) *, :where(.esc-home) *::before, :where(.esc-home) *::after { box-sizing: border-box; }
:where(.esc-home) :where(h1, h2, h3, p, figure, blockquote, ul, ol, dl, dd) { margin: 0; }
:where(.esc-home) :where(ul, ol) { list-style: none; padding: 0; }
:where(.esc-home) :where(img, svg, iframe) { display: block; max-width: 100%; }
:where(.esc-home) :where(a) { color: inherit; text-decoration: none; }
:where(.esc-home) :where(button, input, textarea, select) { font: inherit; color: inherit; }
:where(.esc-home) :where(fieldset) { border: 0; margin: 0; padding: 0; min-width: 0; }
:where(.esc-home) :where(legend) { padding: 0; }
.esc-home [hidden] { display: none !important; }

.esc-wrap { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--g); }
.esc-section { padding-top: var(--gap); }
.esc-section.esc-field, .esc-section.esc-ink { padding-bottom: var(--gap); margin-top: var(--gap); }
.esc-field { background: var(--field); }
.esc-ink { background: var(--ink); color: var(--ground); --muted: color-mix(in srgb, var(--ground) 72%, var(--ink)); --field: color-mix(in srgb, var(--ground) 10%, var(--ink)); }
.esc-skip { position: absolute; left: 1rem; top: -5rem; z-index: 100; padding: .7rem 1rem; border-radius: .5rem; background: var(--ink); color: var(--ground); font-weight: 700; }
.esc-skip:focus { top: 1rem; }

/* ---------------------------------------------------------------- letra */
.esc-h1 {
  font-family: var(--display); font-weight: 800; line-height: .98; letter-spacing: -.03em; text-wrap: balance;
  font-size: clamp(2.4rem, calc(150vw / var(--n, 24)), 6.75rem);
}
@supports (font-size: 1cqi) {
  .esc-h1 { font-size: clamp(2.4rem, calc(290cqi / var(--n, 24)), 6.75rem); }
}
.esc-h2 { font-family: var(--display); font-weight: 800; font-size: clamp(2.25rem, 4.6vw, 4.25rem); line-height: 1; letter-spacing: -.028em; text-wrap: balance; }
.esc-h3 { font-family: var(--display); font-weight: 800; font-size: 1.5rem; line-height: 1.15; letter-spacing: -.015em; }
.esc-lead { font-size: 1.25rem; line-height: 1.5; max-width: 38rem; }
.esc-sub { margin-top: .85rem; font-size: 1.25rem; line-height: 1.4; color: var(--muted); }
.esc-link { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: var(--accent-text); transition: transform .2s var(--ease); }
.esc-link:hover { transform: translateX(3px); }

/* ---------------------------------------------------------------- botones */
.esc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.25rem; padding: .7rem 1.6rem;
  border: 0; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font: 700 1.0625rem/1.15 var(--text); text-align: center;
  cursor: pointer; text-decoration: none; transition: transform .2s var(--ease), background-color .2s ease, color .2s ease;
}
.esc-btn:hover { transform: translateY(-2px); }
.esc-btn:active { transform: translateY(0) scale(.98); }
.esc-btn:focus-visible, .esc-chip:focus-visible > span, .esc-chip input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 3px; }
.esc-btn-ghost { background: var(--field); color: var(--ink); }
.esc-btn-ghost:hover { background: color-mix(in srgb, var(--ink) 9%, var(--field)); }
.esc-btn-sm { min-height: 2.75rem; padding: .5rem 1.15rem; }
.esc-btn-wide { width: 100%; }
.esc-btn[aria-disabled="true"] { opacity: .55; pointer-events: none; }
.esc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }

/* ---------------------------------------------------------------- cabecera y menu */
.esc-bar { position: sticky; top: 0; z-index: 60; background: var(--ground); color: var(--ink); transition: background-color .3s ease; }
.esc-bar.is-scrolled { background: var(--field); }
.esc-bar-in { max-width: var(--max); margin: 0 auto; padding: .8rem var(--g); min-height: 4.5rem; display: flex; align-items: center; gap: 1.5rem; }
.esc-mark { display: flex; align-items: center; gap: .75rem; min-width: 0; margin-right: auto; color: inherit; text-decoration: none; }
.esc-mark-logo { height: 2.5rem; width: auto; max-width: 10rem; object-fit: contain; }
.esc-mark-dot { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--accent); color: var(--accent-ink); font: 800 1.0625rem/1 var(--display); }
.esc-mark-name { font-family: var(--display); font-weight: 800; font-size: 1.25rem; line-height: 1.15; letter-spacing: -.015em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-nav { display: none; align-items: center; gap: 1.75rem; font-size: 1.0625rem; font-weight: 600; }
.esc-nav a { position: relative; color: inherit; text-decoration: none; padding-block: .35rem; }
.esc-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.esc-nav a:hover::after, .esc-nav a:focus-visible::after { transform: scaleX(1); }
.esc-bar-end { display: flex; align-items: center; gap: .6rem; flex: none; }
.esc-langs { display: none; gap: .15rem; }
.esc-langs a, .esc-sheet-langs a { display: inline-flex; align-items: center; min-height: 2.25rem; padding: 0 .55rem; border-radius: 999px; font-size: 1.0625rem; font-weight: 600; color: var(--muted); text-decoration: none; }
.esc-langs a[aria-current], .esc-sheet-langs a[aria-current] { color: var(--ink); font-weight: 800; background: var(--field); }
.esc-bar.is-scrolled .esc-langs a[aria-current] { background: var(--ground); }
.esc-bar-cta { display: none; }
.esc-burger { display: inline-flex; flex-direction: column; justify-content: center; gap: 6px; width: 2.85rem; height: 2.85rem; padding: 0 .8rem; border: 0; border-radius: 50%; background: var(--field); color: var(--ink); cursor: pointer; }
.esc-bar.is-scrolled .esc-burger { background: var(--ground); }
.esc-burger i { display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s var(--ease); }
.esc-burger[aria-expanded="true"] i:first-child { transform: translateY(4px) rotate(45deg); }
.esc-burger[aria-expanded="true"] i:last-child { transform: translateY(-4px) rotate(-45deg); }
@media (min-width: 640px) { .esc-bar-cta { display: inline-flex; } .esc-langs { display: flex; } }
@media (min-width: 960px) { .esc-nav { display: flex; } .esc-burger { display: none; } }

.esc-sheet { position: fixed; inset: 0; z-index: 55; display: flex; flex-direction: column; padding: 6rem var(--g) 2rem; background: var(--ground); color: var(--ink); overflow-y: auto; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity .25s ease, transform .25s var(--ease), visibility 0s linear .25s; }
.esc-sheet.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .25s ease, transform .25s var(--ease); }
.esc-sheet-link { font-family: var(--font-display); font-size: clamp(2rem, 9vw, 2.75rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; padding: .45rem 0; color: inherit; text-decoration: none; }
.esc-sheet-foot { margin-top: auto; padding-top: 2.5rem; display: grid; gap: 1.25rem; justify-items: start; }
.esc-sheet-phone { font-weight: 700; font-size: 1.125rem; color: inherit; }
.esc-sheet-langs { display: flex; flex-wrap: wrap; gap: .35rem; }
@media (min-width: 960px) { .esc-sheet { display: none; } }

/* ---------------------------------------------------------------- la luna (portada) */
.esc-hero { position: relative; isolation: isolate; min-height: calc(100svh - 4.5rem); display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; overflow: clip; background: var(--ground); color: var(--ink); }
.esc-hero.has-photo { background: #0c0c0e; color: #fff; }
.esc-hero-pic { position: absolute; inset: 0; z-index: -2; overflow: hidden; animation: esc-zoom 28s ease-in-out infinite alternate; }
.esc-hero-pic img { width: 100%; height: 118%; object-fit: cover; will-change: transform; }
.esc-hero.has-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(10, 10, 12, .38) 0%, rgba(10, 10, 12, .46) 45%, rgba(10, 10, 12, .78) 100%); } /* taste-skill-ignore: neutral scrim under text on a photograph */
.esc-hero-in { display: grid; grid-template-columns: minmax(0, 1fr); align-content: end; gap: 2.5rem; padding-top: 3.5rem; padding-bottom: clamp(5rem, 11.5vw, 10rem); }
.esc-hero:not(:has(.esc-vinyl)) .esc-hero-in { padding-bottom: clamp(3rem, 6vw, 5rem); }
@media (max-width: 639px) { .esc-hero:has(.esc-vinyl.is-long) .esc-hero-in { padding-bottom: 3rem; } }
.esc-hero-copy { container-type: inline-size; max-width: 54rem; }
.esc-hero .esc-lead { margin-top: 1.4rem; }
.esc-hero .esc-actions { margin-top: 2rem; }
.esc-hero.has-photo .esc-btn-ghost { background: #fff; color: #111; }
.esc-hero.has-photo .esc-btn-ghost:hover { background: #ececec; }
.esc-plate { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; font-size: 1.0625rem; font-weight: 600; }
.esc-plate a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.esc-vinyl {
  min-width: 0; font-family: var(--display); font-weight: 800; line-height: .84; letter-spacing: -.04em; white-space: nowrap;
  padding: 0 var(--g) .06em; margin: 0; color: var(--accent-text);
  font-size: clamp(2.75rem, calc(168vw / var(--n, 16)), 15rem);
}
.esc-hero.has-photo .esc-vinyl { color: #fff; }
.esc-vinyl.is-long { display: none; }
.esc-vinyl.is-tiny { visibility: hidden; height: 0; padding: 0; }
@media (min-width: 640px) { .esc-vinyl.is-long { display: block; } }
/* El cartel cuelga del canto de arriba del cristal, a la derecha; el texto nunca se le mete
   debajo (en el movil, el hueco de arriba es suyo). */
.esc-hero-in { position: relative; }
.esc-hero-in > .esc-sign { position: absolute; top: 0; right: var(--g); }
.esc-hero.has-sign .esc-hero-in { padding-top: 16.5rem; }
@media (min-width: 900px) {
  .esc-hero-in, .esc-hero.has-sign .esc-hero-in { padding-top: 7rem; }
  .esc-hero.has-sign .esc-hero-copy { max-width: min(54rem, calc(100% - 18rem)); }
}

/* ---------------------------------------------------------------- el cartel de la puerta */
.esc-sign { position: relative; width: max-content; max-width: 19rem; min-width: 13.5rem; transform-origin: 50% 0; animation: esc-swing-in 2.8s var(--ease) .35s both; cursor: default; }
.esc-sign.is-swinging { animation: esc-swing 2.2s var(--ease) both; }
.esc-sign-cord { display: block; width: 7rem; height: auto; margin: 0 auto -3px; color: inherit; overflow: visible; }
.esc-sign-card { position: relative; padding: 1.05rem 1.35rem 1.15rem; border-radius: .7rem; text-align: center; background: var(--ground); color: var(--ink); }
.esc-sign.is-open .esc-sign-card { background: var(--accent); color: var(--accent-ink); }
.esc-sign-card.is-flipping { animation: esc-flip .7s var(--ease); }
.esc-sign-word { font-family: var(--display); font-size: 2.1rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.esc-sign-line { margin-top: .55rem; font-size: 1.0625rem; font-weight: 700; line-height: 1.3; }
.esc-sign-hours { margin-top: .3rem; font-size: .9375rem; font-weight: 500; line-height: 1.35; }
.esc-hero .esc-sign-hero { margin-top: 0; }
/* Sin foto, la luna es un campo de color (un paso de tono sobre el fondo): el cristal. */
.esc-hero.no-photo { background: var(--field); }
.esc-hero.no-photo .esc-btn-ghost { background: var(--ground); }
@media (max-width: 899px) {
  .esc-hero-in > .esc-sign { min-width: 11.5rem; }
  .esc-hero-in > .esc-sign .esc-sign-word { font-size: 1.5rem; }
  .esc-hero-in > .esc-sign .esc-sign-cord { width: 5rem; }
}

/* ---------------------------------------------------------------- la cinta (el toldo) */
.esc-ribbon { overflow: hidden; background: var(--field); color: var(--ink); white-space: nowrap; }
.esc-ribbon-track { display: inline-flex; animation: esc-marquee 52s linear infinite; will-change: transform; }
.esc-ribbon:hover .esc-ribbon-track { animation-play-state: paused; }
.esc-ribbon-track span { display: inline-flex; align-items: center; gap: 1.4rem; padding: 1.05rem 1.4rem 1.05rem 0; font: 700 1.25rem/1 var(--display); letter-spacing: -.01em; }
.esc-ribbon-track span::after { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--accent); }

/* ---------------------------------------------------------------- el mostrador */
.esc-counter { padding-top: var(--gap); }
.esc-counter-in { display: grid; gap: 2.25rem; align-items: start; }
.esc-counter-head .esc-lead { margin-top: 1.25rem; }
.esc-counter-pic { display: none; margin-top: 2.5rem; }
.esc-counter-pic img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--r-img); }
@media (min-width: 960px) { .esc-counter-pic { display: block; } }
@media (min-width: 960px) {
  .esc-counter-in { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4.5rem; }
  .esc-counter-head { position: sticky; top: 7rem; }
}
.esc-desk { display: grid; gap: 1.6rem; padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: 1.25rem; background: var(--field); }
.esc-desk-step { display: grid; gap: .7rem; min-width: 0; }
.esc-desk-label { font-weight: 800; font-size: 1.0625rem; line-height: 1.3; }
.esc-desk-note { font-size: 1.0625rem; }
.esc-desk-live { display: grid; gap: 1.6rem; min-width: 0; }
.esc-desk-live:empty { display: none; }
.esc-desk-when { font-family: var(--display); font-weight: 800; font-size: 1.5rem; line-height: 1.2; }
.esc-desk-deposit { font-weight: 600; }
.esc-desk-go { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.esc-desk-more { font-weight: 600; font-size: 1.0625rem; color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.esc-desk-more:hover { color: var(--accent-text); }
.esc-desk textarea, .esc-desk input[type="date"] { width: 100%; min-height: 3rem; padding: .75rem 1rem; border: 0; border-radius: .75rem; background: var(--ground); color: var(--ink); font-size: 1.0625rem; line-height: 1.45; resize: vertical; }
.esc-desk textarea:focus, .esc-desk input:focus { outline: 3px solid var(--accent); outline-offset: 1px; }
.esc-desk-text { display: grid; gap: .7rem; }
.site-dark .esc-desk input[type="date"], .site-ink .esc-desk input[type="date"] { color-scheme: dark; }

.esc-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.esc-chip { position: relative; display: inline-flex; padding: 0; border: 0; background: none; color: inherit; text-decoration: none; cursor: pointer; text-align: left; font: inherit; }
.esc-chip:focus-visible { outline: none; }
.esc-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.esc-chip > span { display: inline-flex; flex-direction: column; justify-content: center; min-height: 2.85rem; padding: .55rem 1.05rem; border-radius: 1.45rem; background: var(--ground); color: var(--ink); font-weight: 700; font-size: 1.0625rem; line-height: 1.2; transition: background-color .15s ease, color .15s ease, transform .15s var(--ease); }
.esc-chip > span small { display: block; margin-top: .2rem; font-size: .9375rem; font-weight: 500; color: var(--muted); }
.esc-chip:hover > span { transform: translateY(-2px); }
.esc-chip:active > span { transform: scale(.97); }
.esc-chip input:checked + span, .esc-chip[aria-pressed="true"] > span { background: var(--accent); color: var(--accent-ink); }
.esc-chip input:checked + span small, .esc-chip[aria-pressed="true"] > span small { color: inherit; }
.esc-chip.is-day > span { align-items: center; min-width: 4.4rem; padding-inline: .7rem; }
.esc-chip.is-day > span b { font-size: 1.25rem; font-family: var(--display); }
.esc-chip.is-day > span small { margin-top: .05rem; }
.esc-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: .45rem; }
.esc-times .esc-chip > span { width: 100%; align-items: center; font-variant-numeric: tabular-nums; }

.esc-stepper { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem; border-radius: 999px; background: var(--ground); justify-self: start; }
.esc-stepper button { width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: var(--field); color: var(--ink); font-size: 1.25rem; font-weight: 700; line-height: 1; cursor: pointer; transition: transform .15s var(--ease); }
.esc-stepper button:active { transform: scale(.92); }
.esc-stepper button:disabled { opacity: .4; cursor: default; }
.esc-stepper input { width: 3.2rem; border: 0; background: transparent; text-align: center; font: 800 1.5rem/1 var(--display); color: var(--ink); -moz-appearance: textfield; appearance: textfield; }
.esc-stepper input::-webkit-inner-spin-button, .esc-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.esc-dates { grid-template-columns: 1fr 1fr; gap: .9rem; }
.esc-dates label { display: grid; gap: .5rem; }
.esc-who { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1.25rem; }
.esc-who-one { display: grid; gap: .6rem; }

.esc-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; }
.esc-cal-wd { text-align: center; font-size: .9375rem; font-weight: 700; color: var(--muted); }
.esc-cal-day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; min-height: 3.6rem; padding: .35rem .15rem; border: 0; border-radius: .6rem; background: var(--ground); color: var(--ink); cursor: pointer; transition: transform .15s var(--ease), background-color .15s ease; }
.esc-cal-day b { font: 800 1.0625rem/1 var(--display); }
.esc-cal-day small { font-size: .9375rem; letter-spacing: -.02em; font-weight: 600; color: var(--muted); font-variant-numeric: tabular-nums; }
.esc-cal-day:hover { transform: translateY(-2px); }
.esc-cal-day:disabled { cursor: default; background: transparent; transform: none; }
.esc-cal-day:disabled b { text-decoration: line-through; color: var(--muted); }
.esc-cal-day.is-between { background: color-mix(in srgb, var(--accent) 22%, var(--ground)); }
.esc-cal-day.is-in, .esc-cal-day.is-out { background: var(--accent); color: var(--accent-ink); }
.esc-cal-day.is-in small, .esc-cal-day.is-out small { color: inherit; }
.esc-cal-day.is-cheap small { color: var(--accent-text); }
.esc-cal-day.is-in.is-cheap small, .esc-cal-day.is-out.is-cheap small { color: inherit; }
.esc-cal-gap { visibility: hidden; }

.esc-offers { display: grid; gap: .65rem; }
.esc-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem 1rem; align-items: center; padding: 1rem 1.15rem; border-radius: 1rem; background: var(--ground); }
.esc-offer-name { font: 800 1.5rem/1.15 var(--display); letter-spacing: -.01em; }
.esc-offer-meta { grid-column: 1 / -1; color: var(--muted); font-size: .9375rem; }
.esc-offer .esc-btn { grid-column: 1 / -1; justify-self: start; }
.esc-offer.is-out { opacity: .6; }

/* ---------------------------------------------------------------- la etiqueta del precio */
.esc-tag {
  position: relative; display: inline-flex; align-items: center; justify-self: end; align-self: start; min-height: 2.45rem;
  padding: .4rem 1rem .4rem 1.65rem; background: var(--field); color: var(--ink); white-space: nowrap;
  font: 800 1.25rem/1 var(--display); letter-spacing: -.01em; font-variant-numeric: tabular-nums;
  clip-path: polygon(1rem 0, 100% 0, 100% 100%, 1rem 100%, 0 50%);
  -webkit-mask: radial-gradient(circle at .78rem 50%, transparent .19rem, #000 .22rem); /* taste-skill-ignore: mask that punches the hole of the price tag, not a visible gradient */
  mask: radial-gradient(circle at .78rem 50%, transparent .19rem, #000 .22rem); /* taste-skill-ignore: mask that punches the hole of the price tag, not a visible gradient */
  transform: rotate(-3deg); transform-origin: .78rem 50%; transition: transform .55s var(--ease), background-color .2s ease, color .2s ease;
}
a.esc-item-in:hover .esc-tag, a.esc-item-in:focus-visible .esc-tag { background: var(--accent); color: var(--accent-ink); animation: esc-tag-swing 1.1s var(--ease); }

/* ---------------------------------------------------------------- el genero (servicios) */
.esc-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem 3rem; margin-bottom: clamp(2.25rem, 5vw, 3.75rem); }
.esc-groups { display: grid; gap: clamp(3rem, 6vw, 5rem); }
.esc-group > .esc-h3 { margin-bottom: .75rem; color: var(--accent-text); }
.esc-list { display: grid; gap: .15rem 3.5rem; }
@media (min-width: 1024px) {
  /* Grupos cortos, de dos en dos; uno largo ocupa el ancho y va a dos columnas. */
  .esc-groups { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 3.5rem; align-items: start; }
  .esc-group.is-long, .esc-groups > .esc-group:only-child { grid-column: 1 / -1; }
  .esc-group.is-long .esc-list { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.esc-item-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1.25rem; align-items: start; padding: 1.1rem 1.15rem; margin-inline: -1.15rem; border-radius: 1rem; color: inherit; text-decoration: none; transition: background-color .2s ease; }
.esc-item.with-photo .esc-item-in { grid-template-columns: 5.25rem minmax(0, 1fr) auto; align-items: center; }
a.esc-item-in:hover, a.esc-item-in:focus-visible { background: var(--field); outline: none; }
.esc-item-photo { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-img); background: var(--field); }
.esc-item-main { display: block; min-width: 0; }
.esc-item-name { display: block; font: 800 1.5rem/1.15 var(--display); letter-spacing: -.018em; }
.esc-item-desc { display: block; margin-top: .4rem; max-width: 34rem; font-size: 1.0625rem; line-height: 1.5; }
.esc-item-meta { display: flex; flex-wrap: wrap; gap: .2rem 1rem; margin-top: .5rem; font-size: 1rem; font-weight: 600; color: var(--muted); }
.esc-item-go { color: var(--accent-text); opacity: 0; transform: translateX(-6px); transition: opacity .2s ease, transform .2s var(--ease); }
a.esc-item-in:hover .esc-item-go, a.esc-item-in:focus-visible .esc-item-go { opacity: 1; transform: none; }
@media (hover: none) { .esc-item-go { opacity: 1; transform: none; } }
.esc-item-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .6rem; }
.esc-item-tags span { padding: .2rem .65rem; border-radius: 999px; background: var(--field); font-size: 1rem; font-weight: 600; }
a.esc-item-in:hover .esc-item-tags span { background: var(--ground); }
.esc-item-tags .is-diet { background: var(--accent); color: var(--accent-ink); }
.esc-item-tags .is-trace { font-style: italic; }
.esc-item-note { display: block; margin-top: .4rem; font-size: .9375rem; font-weight: 700; }
.esc-item-note:empty { display: none; }
.esc-item.is-no .esc-item-in { opacity: .42; }
.esc-item.is-no .esc-item-note { color: var(--ink); }
.esc-item.is-maybe .esc-item-note { color: var(--accent-text); }
.esc-item.is-picked .esc-item-in { background: var(--field); }

.esc-filter { display: grid; gap: .75rem; margin-bottom: clamp(2rem, 4vw, 3rem); padding: 1.25rem clamp(1rem, 2.5vw, 1.75rem); border-radius: 1.25rem; background: var(--field); }
.esc-filter-q { font-weight: 800; font-size: 1.25rem; }
.esc-filter-count { font-weight: 600; }
.esc-filter-count:empty { display: none; }

/* ---------------------------------------------------------------- quienes somos */
.esc-about-in { display: grid; gap: 2.5rem; }
.esc-about-pic img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-img); }
.esc-statement { margin-top: 1.75rem; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.55; white-space: pre-line; max-width: 40rem; }
@media (min-width: 900px) {
  .esc-about.with-photo .esc-about-in { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(3rem, 6vw, 6rem); }
  .esc-about:not(.with-photo) .esc-about-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 1rem 4rem; }
  .esc-about:not(.with-photo) .esc-statement { margin-top: 0; grid-column: 2; grid-row: 1 / span 2; }
}

/* ---------------------------------------------------------------- galeria */
.esc-shots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.esc-shot { position: relative; display: block; overflow: hidden; aspect-ratio: 1; border-radius: var(--r-img); background: var(--field); }
.esc-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.esc-shot:hover img, .esc-shot:focus-visible img { transform: scale(1.05); }
.esc-shot-title { position: absolute; left: .65rem; right: .65rem; bottom: .65rem; padding: .4rem .7rem; border-radius: .5rem; background: var(--ground); color: var(--ink); font-size: .9375rem; font-weight: 700; opacity: 0; transform: translateY(8px); transition: opacity .25s ease, transform .25s var(--ease); }
.esc-shot:hover .esc-shot-title, .esc-shot:focus-visible .esc-shot-title { opacity: 1; transform: none; }
.esc-shot-video { grid-column: span 2; }
.esc-shot-video img { position: absolute; inset: 0; }
.esc-shot-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.esc-play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; border: 0; background: rgba(10, 10, 12, .5); color: #fff; font-weight: 800; font-size: 1.0625rem; cursor: pointer; }
.esc-play-dot { display: flex; align-items: center; justify-content: center; width: 4.25rem; height: 4.25rem; border-radius: 50%; background: var(--accent); color: var(--accent-ink); transition: transform .25s var(--ease); }
.esc-play:hover .esc-play-dot { transform: scale(1.08); }
.esc-play-dot svg { width: 1.8rem; height: 1.8rem; margin-left: .2rem; }
@media (min-width: 768px) {
  .esc-shots { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
  .esc-shot.is-wide { grid-column: span 2; aspect-ratio: auto; }
  .esc-shot-video { grid-row: span 2; aspect-ratio: auto; }
}

/* ---------------------------------------------------------------- equipo */
.esc-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 3rem 2rem; }
.esc-face { display: flex; align-items: center; justify-content: center; width: 7rem; height: 7rem; border-radius: 50%; object-fit: cover; color: #fff; font: 800 2.125rem/1 var(--display); transition: transform .4s var(--ease); }
.esc-person:hover .esc-face { transform: rotate(-4deg) scale(1.03); }
.esc-person .esc-h3 { margin-top: 1.25rem; }
.esc-person-does { margin-top: .35rem; color: var(--muted); font-size: 1.0625rem; }
.esc-person .esc-link { margin-top: 1rem; }
@media (max-width: 639px) {
  .esc-people { gap: 2.25rem; }
  .esc-person { display: grid; grid-template-columns: 5rem minmax(0, 1fr); column-gap: 1.1rem; align-items: start; }
  .esc-person .esc-face { grid-row: span 3; width: 5rem; height: 5rem; font-size: 1.75rem; }
  .esc-person .esc-h3 { margin-top: .2rem; }
  .esc-person .esc-link { grid-column: 2; }
}

/* ---------------------------------------------------------------- resenas */
.esc-reviews-in { display: grid; gap: 3rem; }
.esc-score { margin-top: 2rem; display: grid; gap: .6rem; justify-items: start; }
.esc-score-n { font: 800 clamp(5rem, 10vw, 8.25rem)/.85 var(--display); letter-spacing: -.045em; }
.esc-stars { display: inline-flex; gap: .15rem; color: var(--accent-text); }
.esc-stars svg { width: 1.25rem; height: 1.25rem; }
.esc-stars .is-off { opacity: .25; }
.esc-score-count { color: var(--muted); font-weight: 600; }
.esc-reviews-score .esc-btn { margin-top: 2rem; }
.esc-reviews .esc-btn-ghost { background: var(--ground); }
.esc-quotes { display: grid; gap: 2.75rem 3.5rem; align-content: start; }
.esc-quote blockquote { margin: .8rem 0 0; font-size: 1.25rem; line-height: 1.55; }
.esc-quote figcaption { margin-top: 1rem; font-weight: 800; }
.esc-quote figcaption span { font-weight: 600; color: var(--muted); }
@media (min-width: 768px) { .esc-quotes { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .esc-reviews-in { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 5rem; align-items: start; } }

/* ---------------------------------------------------------------- horario: la puerta */
.esc-hours-in { display: grid; gap: 3rem; }
.esc-status { display: flex; align-items: center; gap: .75rem; margin-top: 1.75rem; font-size: 1.25rem; font-weight: 800; }
.esc-status i { flex: none; width: .7rem; height: .7rem; border-radius: 50%; background: currentColor; opacity: .5; }
.esc-status.is-open i { background: #22c55e; opacity: 1; animation: esc-beat 2s ease-in-out infinite; }
.esc-sign-door { margin-top: 2.25rem; margin-left: 1rem; }
.esc-ink .esc-sign.is-closed .esc-sign-card { background: var(--ground); color: var(--ink); }
.esc-week { display: grid; gap: .35rem; align-content: start; }
.esc-week li { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1.1rem; border-radius: .75rem; font-size: 1.0625rem; }
.esc-week li > span:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 .9rem; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.esc-week li > span:last-child span { white-space: nowrap; }
.esc-week li.is-closed > span:last-child { color: var(--muted); font-weight: 600; }
.esc-week li.is-today { background: var(--accent); color: var(--accent-ink); font-weight: 800; }
.esc-week li.is-today > span:last-child { color: inherit; }
@media (min-width: 900px) { .esc-hours-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; align-items: start; } }
.esc-hours-pic { grid-column: 1 / -1; margin-top: 1rem; }
.esc-hours-pic img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-img); }
@media (min-width: 768px) { .esc-hours-pic img { aspect-ratio: 21 / 8; } }

/* ---------------------------------------------------------------- donde estamos */
.esc-contact-in { display: grid; gap: 3rem; }
.esc-address { margin-top: 2rem; max-width: 22ch; font: 800 clamp(1.75rem, 2.6vw, 2.125rem)/1.15 var(--display); letter-spacing: -.02em; }
.esc-ways { margin-top: 1.5rem; display: grid; gap: .5rem; font-size: 1.0625rem; }
.esc-ways div { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.esc-ways dt { min-width: 5.5rem; color: var(--muted); }
.esc-ways dd a { font-weight: 700; overflow-wrap: anywhere; }
.esc-ways dd a:hover { color: var(--accent-text); }
.esc-contact .esc-actions { margin-top: 2rem; }
.esc-contact .esc-actions:empty { display: none; }
.esc-socials { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 1.5rem; }
.sw-social { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: 999px; background: var(--site-bg-2); color: var(--site-fg); transition: transform .2s var(--ease), color .2s ease; }
.sw-social svg { width: 1.25rem; height: 1.25rem; }
.sw-social:hover { color: var(--site-accent); transform: translateY(-2px); }
.sw-social-sm { width: 2.5rem; height: 2.5rem; }
.sw-social-sm svg { width: 1.05rem; height: 1.05rem; }
.esc-form { display: grid; gap: 1rem; padding: clamp(1.25rem, 3vw, 2rem); border-radius: 1.25rem; background: var(--field); }
.esc-form label > span { display: block; margin-bottom: .4rem; font-size: .9375rem; font-weight: 700; }
.esc-home .site-field { width: 100%; min-height: 3rem; padding: .7rem 1rem; border: 0; border-radius: .75rem; background: var(--ground); color: var(--ink); font-size: 1rem; }
.esc-home textarea.site-field { resize: vertical; }
.esc-home .site-field:focus { outline: 3px solid var(--accent); outline-offset: 1px; }
.esc-form-two { display: grid; gap: 1rem; }
@media (min-width: 640px) { .esc-form-two { grid-template-columns: 1fr 1fr; } }
.esc-form-legal { font-size: .9375rem; line-height: 1.45; }
.esc-form-error { padding: .8rem 1rem; border-radius: .75rem; background: #fde2e1; color: #7f1d1d; font-weight: 700; }
.esc-sent { padding: 1.5rem; border-radius: 1.25rem; background: var(--field); font-weight: 700; font-size: 1.25rem; }
.esc-map { overflow: hidden; aspect-ratio: 4 / 3; border-radius: 1rem; background: var(--field); }
.esc-map iframe { width: 100%; height: 100%; border: 0; }
.site-dark .esc-map iframe, .site-ink .esc-map iframe { filter: invert(.9) hue-rotate(180deg) saturate(.45) brightness(.9); }
.esc-contact-pic img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-img); }
@media (min-width: 900px) { .esc-contact-in.is-two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; align-items: start; } }

/* ---------------------------------------------------------------- el cierre */
.esc-close { margin-top: var(--gap); background: var(--accent); color: var(--accent-ink); }
.esc-close-in { display: grid; gap: 2.5rem; align-items: center; padding-block: clamp(4.5rem, 9vw, 8rem); }
.esc-close .esc-lead { margin-top: 1.25rem; }
.esc-close .esc-actions { margin-top: 2.25rem; }
.esc-close .esc-btn { background: var(--accent-ink); color: var(--accent); }
.esc-close .esc-btn-ghost { background: color-mix(in srgb, var(--accent-ink) 14%, var(--accent)); color: var(--accent-ink); }
.esc-close-pic img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-img); }
@media (min-width: 900px) { .esc-close.with-photo .esc-close-in { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 5rem; } }

/* ---------------------------------------------------------------- pie */
.esc-foot { background: var(--site-bg); color: var(--site-fg); padding-top: clamp(4rem, 7vw, 6rem); }
.esc-inner .esc-foot { margin-top: 4rem; background: var(--site-bg-2); }
.esc-foot-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.esc-foot .esc-mark-name { white-space: normal; }
.esc-foot .esc-mark { margin: 0; }
.esc-foot-claim { margin-top: 1rem; max-width: 24rem; font-size: 1.0625rem; line-height: 1.55; color: var(--site-muted); }
.esc-foot-h { margin: 0; font-weight: 800; font-size: 1.0625rem; }
.esc-foot-list { margin: 1rem 0 0; padding: 0; list-style: none; display: grid; gap: .5rem; font-size: 1.0625rem; }
.esc-foot-list a, .esc-foot-legal a { color: inherit; text-decoration: none; }
.esc-foot-list a:hover, .esc-foot-legal a:hover { color: var(--site-accent-text, var(--site-accent)); }
.esc-foot-legal { margin: 1rem 0 0; display: flex; flex-direction: column; gap: .5rem; font-size: 1.0625rem; }
.esc-foot-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 3.5rem; padding-block: 1.75rem 2.25rem; font-size: .9375rem; color: var(--site-muted); }
.esc-foot-row p { margin: 0; }
.esc-credits { padding-bottom: 2rem; font-size: .9375rem; color: var(--site-muted); }
.esc-credits summary { cursor: pointer; font-weight: 600; }
.esc-credits p { margin: .5rem 0 0; }
@media (min-width: 768px) { .esc-foot-grid { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); } }

.esc-top { position: fixed; right: 1rem; bottom: 1rem; z-index: 35; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 0; border-radius: 50%; background: var(--site-fg); color: var(--site-bg); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s ease, transform .25s var(--ease), visibility 0s linear .25s; }
.esc-top.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity .25s ease, transform .25s var(--ease); }
.esc-top svg { width: 1.25rem; height: 1.25rem; }
.esc-off { padding: .9rem var(--g); background: #fef3c7; color: #451a03; text-align: center; font-size: .9375rem; }
.esc-off a { font-weight: 700; text-decoration: underline; }

/* ---------------------------------------------------------------- entradas */
.js [data-esc-reveal], .js .sw-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i, 0) * 85ms); }
.js [data-esc-reveal].is-in, .js .sw-reveal.is-in { opacity: 1; transform: none; }
.sw-reveal[data-delay="1"] { --i: 1; }
.sw-reveal[data-delay="2"] { --i: 2; }
.js .esc-vinyl { opacity: 0; transform: translateY(28%); transition: opacity 1.1s var(--ease) .25s, transform 1.1s var(--ease) .25s; }
.js .esc-vinyl.is-in { opacity: 1; transform: none; }

@keyframes esc-zoom { from { transform: scale(1); } to { transform: scale(1.08); } }
@keyframes esc-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes esc-swing-in {
  0% { transform: rotate(10deg); opacity: 0; }
  14% { opacity: 1; }
  30% { transform: rotate(-6.5deg); }
  48% { transform: rotate(4deg); }
  65% { transform: rotate(-2.2deg); }
  82% { transform: rotate(1deg); }
  100% { transform: rotate(0); opacity: 1; }
}
@keyframes esc-swing { 0% { transform: rotate(0); } 18% { transform: rotate(7deg); } 38% { transform: rotate(-5deg); } 58% { transform: rotate(3deg); } 78% { transform: rotate(-1.2deg); } 100% { transform: rotate(0); } }
@keyframes esc-flip { 0% { transform: rotateY(0); } 50% { transform: rotateY(90deg); } 100% { transform: rotateY(0); } }
@keyframes esc-tag-swing { 0% { transform: rotate(-3deg); } 30% { transform: rotate(7deg); } 55% { transform: rotate(-4deg); } 78% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes esc-beat { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.35); } }

/* ================================================================ paginas interiores
   Las piezas que reservar, alojarse, la carta o recoger traen escritas (con app.css):
   las mismas que antes, sin sombras ni cristal, en el lenguaje del escaparate. */
.site-muted { color: var(--site-muted); }
.site-card { background: var(--site-card); border: 1px solid var(--site-line); } /* taste-skill-ignore: interior pages: form fields and the choice cards of the booking form */
.site-line { border-color: var(--site-line); }
.site-accent { color: var(--site-accent-text, var(--site-accent)); }
.site-accent-bg { background: var(--site-accent); color: var(--site-accent-ink); }
.site-accent-ring { box-shadow: inset 0 0 0 2px var(--site-accent); } /* taste-skill-ignore: selection ring of a chosen option in the booking form (interior page) */
.site-link { transition: color .2s ease; }
.site-link:hover { color: var(--site-accent); }
.sw-bg-2 { background: var(--site-bg-2); }
.site-choice input:checked + span { background: var(--site-accent); border-color: var(--site-accent); color: var(--site-accent-ink); }
.site-choice input:focus-visible + span { outline: 2px solid var(--site-accent); outline-offset: 2px; }
.site-day { transition: transform .15s ease, background .15s ease; }
.site-day:hover { transform: translateY(-2px); }
.site-day.is-active { background: var(--site-accent); border-color: var(--site-accent); color: var(--site-accent-ink); }
.site-day.is-active .site-muted { color: inherit; opacity: .75; }
.site-field { background: var(--site-card); border: 1px solid var(--site-line); color: var(--site-fg); } /* taste-skill-ignore: interior pages: form fields and the choice cards of the booking form */
.site-field:focus { outline: 2px solid var(--site-accent); outline-offset: 0; border-color: var(--site-accent); }
.sw-eyebrow { display: block; font-family: var(--font-body); font-size: 1rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--site-accent-text, var(--site-accent)); }
.sw-h1 { font-size: clamp(2.6rem, 6.5vw, 5.5rem); line-height: .98; font-weight: 800; }
.sw-h2 { font-size: clamp(2rem, 4.4vw, 3.4rem); line-height: 1.02; font-weight: 800; }
.sw-lead { font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.55; }
.sw-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.25rem; padding: .6rem 1.6rem; border-radius: 999px; font-weight: 700; font-size: 1rem; text-align: center; transition: transform .2s ease, background-color .2s ease, color .2s ease; }
.sw-btn:hover { transform: translateY(-2px); }
.sw-btn-sm { min-height: 2.75rem; padding: .45rem 1.15rem; font-size: .9375rem; }
.sw-btn-primary { background: var(--site-accent); color: var(--site-accent-ink); }
.sw-btn-ghost { background: var(--site-bg-2); color: var(--site-fg); }
.sw-btn-ghost:hover { color: var(--site-accent-text, var(--site-accent)); }
.sw-card { background: var(--site-card); border: 1px solid var(--site-line); border-radius: 1.25rem; transition: transform .25s ease, border-color .25s ease; } /* taste-skill-ignore: interior pages: form fields and the choice cards of the booking form */
.sw-card:hover { border-color: var(--site-accent); }
.sw-avatar { display: inline-flex; align-items: center; justify-content: center; width: 5.5rem; height: 5.5rem; border-radius: 50%; font-family: var(--font-display); font-size: 2rem; font-weight: 800; color: #fff; }
.sw-dot { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; background: #22c55e; flex: none; }
.sw-dot.is-off { background: var(--site-muted); }
.sw-row { display: grid; grid-template-columns: 2.5rem 1fr auto; gap: .5rem 1.25rem; align-items: baseline; padding: 1.25rem 0; }
.sw-row-index { font-family: var(--font-display); color: var(--site-muted); font-size: .9rem; font-weight: 700; }
.sw-row-photo { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .5rem; background: var(--site-line); }
.sw-row:has(.sw-row-photo) { grid-template-columns: 4.5rem 1fr auto; align-items: center; }
.sw-row-name { font-family: var(--font-display); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.sw-row-price { font-family: var(--font-display); font-size: clamp(1.2rem, 1.9vw, 1.6rem); font-weight: 800; color: var(--site-accent-text, var(--site-accent)); white-space: nowrap; }
.sw-hours li { display: flex; justify-content: space-between; gap: 1rem; }
.sw-map { border-radius: 1rem; overflow: hidden; aspect-ratio: 4 / 3; background: var(--site-bg-2); }
.sw-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.esc-inner #contenido { min-height: 50vh; }
/* La carta (y cualquier lista .sw-row de una interior), en el idioma del escaparate: sin
   numeros ni rayas, y el precio en su etiqueta colgada. */
.esc-inner .sw-row { grid-template-columns: minmax(0, 1fr) auto; border-top: 0; padding: 1.1rem 0; }
.esc-inner .sw-row:has(.sw-row-photo) { grid-template-columns: 4.5rem minmax(0, 1fr) auto; }
.esc-inner .sw-row-index { display: none; }
.esc-inner .sw-row-price {
  display: inline-flex; align-items: center; align-self: start; min-height: 2.45rem; padding: .4rem 1rem .4rem 1.65rem;
  background: var(--site-bg-2); color: var(--site-fg); font-size: 1.25rem; line-height: 1;
  clip-path: polygon(1rem 0, 100% 0, 100% 100%, 1rem 100%, 0 50%);
  -webkit-mask: radial-gradient(circle at .78rem 50%, transparent .19rem, #000 .22rem); /* taste-skill-ignore: mask that punches the hole of the price tag, not a visible gradient */
  mask: radial-gradient(circle at .78rem 50%, transparent .19rem, #000 .22rem); /* taste-skill-ignore: mask that punches the hole of the price tag, not a visible gradient */
  transform: rotate(-3deg); transform-origin: .78rem 50%;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site *, .site *::before, .site *::after { animation: none !important; transition: none !important; }
  .js [data-esc-reveal], .js .sw-reveal, .js .esc-vinyl { opacity: 1; transform: none; }
}
