/*
 * styles.css — Mi Carreta Restaurant & Bakery
 * The site is the glass bakery case: photo shelves on brown wood lips,
 * flag-yellow day-part tags on red strings, glass glare.
 */

/* ============================================================
   Design Tokens
   ============================================================ */
:root {
  --color-primary: #FCD116;
  --color-secondary: #003893;
  --color-accent: #CE1126;
  --color-bg: #FBF3E2;
  --color-surface: #FFFAF0;
  --color-text: #3B2314;
  --color-text-secondary: #6A4A30;
  --font-primary: 'Ultra', Georgia, serif;
  --font-secondary: 'Figtree', system-ui, sans-serif;
  --font-script: 'Yellowtail', cursive;
  --font-size-base: 17px;
  --spacing-base: 8px;
  --motion-duration: 220ms;
  --motion-duration-slow: 420ms;
  --motion-ease: cubic-bezier(0.25, 0.8, 0.25, 1);

  /* palette roles: fields before accents */
  --yellow: #FCD116;   /* dominant field */
  --yolk: #E3B800;
  --butter: #FFF1B8;
  --blue: #003893;     /* secondary field */
  --red: #CE1126;      /* accent, four field-scale moments */
  --red-dk: #A50E1F;
  --gold: #B8862B;     /* bakery field + glare line */
  --night: #0A1B45;    /* Lounge only */
  --cream: #FBF3E2;    /* chosen rest ground */
  --paper: #FFFAF0;
  --brown: #3B2314;    /* ink + lips only */
  --tostado: #6A4A30;

  /* case system */
  --lip: 14px;
  --seam: 2px;
  --gutter: clamp(1rem, 4vw, 3.5rem);
  --section-y: clamp(3.5rem, 8vw, 7rem);

  /* masthead / logo breakout (design-direction "Logo treatment") */
  --util-h: 36px;
  --bar-h: 84px;
  --logo-top: 6px;
  --logo-h: 210px;
  --logo-h-scrolled: 72px;
  --overhang: 132px; /* logo-top + logo-h - bar-h */
  --rail-h: 74px;
}

/* ============================================================
   Base Reset
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: var(--font-size-base, 16px);
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--bar-h) + 1rem);
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-secondary);
  font-weight: 500;
  background-color: var(--color-bg, #ffffff);
  color: var(--color-text, #1a1a1a);
  line-height: 1.6;
  padding-bottom: 42px; /* required */
  overflow-x: clip;
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--color-accent, inherit);
}

ul, ol { list-style: none; }

/* Focus states — WCAG AA required */
:focus-visible {
  outline: 3px solid var(--color-accent, #005fcc);
  outline-offset: 2px;
}
.g-red :focus-visible, .g-blue :focus-visible, .g-night :focus-visible, .foot :focus-visible, .mast__util :focus-visible {
  outline-color: var(--yellow);
}

/* Skip navigation link — WCAG 2.4.1 (managed by fix_ada_safe.py) */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  padding: 0.75rem 1.25rem;
  background: var(--color-surface, #ffffff);
  color: var(--color-accent, #005fcc);
  font-weight: 600;
  text-decoration: none;
  border: 2px solid var(--color-accent, #005fcc);
  border-radius: 0 0 4px 0;
}
.skip-link:focus {
  left: 0;
}

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

/* ============================================================
   Bilingual mechanism
   Sibling <span lang="es"> / <span lang="en">; .both shows both.
   ============================================================ */
html[data-lang="en"] [lang="es"]:not(.both):not(.both [lang]),
html[data-lang="es"] [lang="en"]:not(.both):not(.both [lang]) {
  display: none !important;
}

/* ============================================================
   Typography
   ============================================================ */
h1, h2, .display {
  font-family: var(--font-primary);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.005em;
}
h2 { font-size: clamp(2.1rem, 4.2vw, 3.75rem); line-height: 1; }
h3 {
  font-family: var(--font-secondary);
  font-weight: 800;
  font-size: 1.375rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
p { max-width: 66ch; }
.script {
  font-family: var(--font-script);
  font-weight: 400;
  font-size: clamp(1.7rem, 2.6vw, 2.3rem);
  line-height: 1;
  color: var(--red);
  letter-spacing: 0;
  text-transform: none;
}
.secthead { margin-bottom: 1.75rem; }
.secthead__en {
  font-family: var(--font-secondary);
  font-weight: 800;
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  vertical-align: middle;
  margin-left: 0.5rem;
}
.arrowlink {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1.25rem;
  font-weight: 800;
  font-size: 0.875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brown);
  text-decoration: none;
  border-bottom: 2px solid var(--red);
  padding-bottom: 2px;
}
.arrowlink i { color: var(--red); transition: transform var(--motion-duration) var(--motion-ease); }
.arrowlink:hover i, .arrowlink:focus-visible i { transform: translateX(6px); }
.arrowlink--yellow, .arrowlink--yellow i { color: var(--yellow); border-color: var(--yellow); }
.arrowlink--cream, .arrowlink--cream i { color: var(--cream); border-color: var(--cream); }

/* ============================================================
   Grounds
   ============================================================ */
.g-light  { background: var(--cream); color: var(--brown); }
.g-yellow { background: var(--yellow); color: var(--brown); }
.g-red    { background: var(--red); color: var(--cream); }
.g-blue   { background: var(--blue); color: var(--cream); }
.g-gold   { background: var(--gold); color: var(--brown); }
.g-night  { background: var(--night); color: var(--cream); }
.pad-x { padding-left: var(--gutter); padding-right: var(--gutter); }

/* ============================================================
   Case primitives: lip, shelf, tile, tag, stamp, plate, plaque
   ============================================================ */
.lip {
  height: var(--lip);
  background: var(--brown);
  box-shadow: inset 0 3px 0 var(--gold);
  position: relative;
  z-index: 2;
}
.lip--led {
  height: 6px;
  background: var(--blue);
  box-shadow: 0 0 18px 2px rgba(0, 56, 147, 0.6), 0 0 4px rgba(120, 170, 255, 0.8);
}

.shelf { position: relative; }
.shelf__row {
  position: relative;
  display: grid;
  grid-template-columns: var(--cols, repeat(4, 1fr));
  gap: var(--seam);
  background: var(--brown);
  height: var(--shelf-h, clamp(170px, 23vh, 240px));
}
.shelf__row::after { /* glass glare across the top 30% */
  content: "";
  position: absolute;
  inset: 0 0 70% 0;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0) 100%);
  pointer-events: none;
  z-index: 1;
}
.tile {
  position: relative;
  margin: 0;
  min-width: 0;
  overflow: hidden; /* image-only crop box */
  background: var(--brown);
}
.tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  transition: transform var(--motion-duration-slow) var(--motion-ease);
}
.tile:hover img { transform: scale(1.04); }
.tile img:focus-visible { outline: 2px solid var(--red); outline-offset: -4px; }
.tile--w2 { grid-column: span 2; }
.tile--empty {
  display: grid;
  place-items: center;
  background: var(--cream);
  padding: 1rem;
  text-align: center;
}
.tile--empty p {
  font-family: var(--font-primary);
  font-size: clamp(1.15rem, 2vw, 1.75rem);
  line-height: 1.05;
  color: var(--brown);
}

/* the case lights flicking on — never touches opacity */
@media (prefers-reduced-motion: no-preference) {
  html.js .shelf__row--lit { animation: case-on 500ms var(--motion-ease) both; animation-delay: var(--d, 0ms); }
}
@keyframes case-on {
  from { filter: brightness(0.86) saturate(0.9); }
  to   { filter: none; }
}

/* Hanging tags: wrapper carries the red string, body carries the clipped shape */
.tag {
  position: relative;
  display: inline-block;
  color: var(--brown);
  text-decoration: none;
  margin-top: 18px;
  transform: rotate(-2deg);
  transform-origin: 50% -18px;
  transition: transform 600ms var(--motion-ease);
  filter: drop-shadow(0 6px 6px rgba(59, 35, 20, 0.35));
  z-index: 6;
}
.tag::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 2px;
  height: 27px;
  margin-left: -1px;
  background: var(--red);
  z-index: 2;
}
.tag__body {
  display: block;
  min-width: 9.5rem;
  padding: 1.25rem 1.1rem 0.85rem;
  background-color: var(--yellow);
  background-image: radial-gradient(circle at 50% 9px, var(--brown) 0 3.5px, transparent 4px);
  clip-path: polygon(14px 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%, 0 14px);
  text-align: left;
}
.tag__name {
  display: block;
  font-family: var(--font-primary);
  font-size: 1.5rem;
  line-height: 1;
}
.tag__sub {
  display: block;
  margin-top: 0.3rem;
  font-weight: 800;
  font-size: 0.8125rem;
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.tag__sub i { margin-right: 0.3rem; }
.tag__hours {
  display: block;
  margin-top: 0.2rem;
  font-weight: 600;
  font-size: 0.8125rem;
  line-height: 1.3;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
a.tag:hover, a.tag:focus-visible { transform: rotate(1deg); }
.tag--blue .tag__body { background-color: var(--blue); color: var(--cream); background-image: radial-gradient(circle at 50% 9px, var(--cream) 0 3.5px, transparent 4px); }
.tag--red .tag__body  { background-color: var(--red); color: var(--cream); background-image: radial-gradient(circle at 50% 9px, var(--cream) 0 3.5px, transparent 4px); }
.tag--cream .tag__body { background-color: var(--cream); }
.tag--sm .tag__body { min-width: 0; padding: 1.15rem 0.85rem 0.6rem; }
.tag--sm .tag__name { font-size: 1.15rem; }
.tag__stamp { display: none; }
.tag.is-now { transform: rotate(3deg) translateY(4px); }
.tag.is-now .tag__stamp {
  display: inline-block;
  position: absolute;
  top: 2px;
  right: -14px;
  z-index: 3;
  background: var(--red);
  color: var(--cream);
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.3rem 0.5rem;
  transform: rotate(8deg);
  box-shadow: 0 0 0 2px var(--cream);
}
.tag--blue.is-now .tag__stamp { background: var(--red); }

/* Tags hanging off a shelf lip, over the next row */
.shelf > .tag--hang {
  position: absolute;
  top: 100%;
  left: var(--x, 8%);
}
.shelf > .tag--end { left: auto; right: 4%; }
.hoy__plate .tag--hang { position: absolute; top: 100%; left: var(--x, 12%); }

.stamp {
  display: inline-block;
  border: 2px solid var(--red);
  color: var(--red);
  background: var(--cream);
  font-weight: 800;
  font-size: 0.75rem;
  line-height: 1.1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.4rem 0.55rem;
  transform: rotate(-4deg);
  white-space: nowrap;
}
.stamp--cream { border-color: var(--cream); color: var(--red); background: var(--cream); box-shadow: 0 0 0 3px var(--red), 0 0 0 5px var(--cream); }
.stamp--row { transform: rotate(-2deg); font-size: 0.6875rem; flex: none; }

.plate { margin: 0; position: relative; }
.plate img { width: 100%; object-fit: cover; }

.plaque {
  --teeth: 10px;
  background: var(--cream);
  color: var(--brown);
  padding: calc(2.25rem + var(--teeth)) clamp(1.5rem, 3vw, 2.5rem) 2.25rem;
  -webkit-mask:
    conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 20px var(--teeth) repeat-x,
    linear-gradient(#000 0 0) 0 var(--teeth) / 100% calc(100% - var(--teeth)) no-repeat;
          mask:
    conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 20px var(--teeth) repeat-x,
    linear-gradient(#000 0 0) 0 var(--teeth) / 100% calc(100% - var(--teeth)) no-repeat;
  min-width: 0;
}

/* Buttons — restrained, squared */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.5rem 1.1rem;
  border: 2px solid transparent;
  font-family: var(--font-secondary);
  font-weight: 800;
  font-size: 0.875rem;
  line-height: 1.1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);
}
.btn--red { background: var(--red); color: var(--cream); }
.btn--red:hover { background: var(--red-dk); }
.btn--outline { background: transparent; color: var(--brown); border-color: var(--brown); }
.btn--outline:hover { background: var(--brown); color: var(--cream); }
.btn--yolk { background: var(--yolk); color: var(--brown); border-color: var(--brown); }
.btn--yolk:hover { background: var(--yellow); }
.btn--lg { min-height: 52px; padding: 0.7rem 1.4rem; font-size: 0.9375rem; }

/* Menu leader lists */
.dishes { display: block; }
.dish { padding: 0.55rem 0; break-inside: avoid; }
.dish__row { display: flex; align-items: baseline; gap: 0.5rem; }
.dish__name { font-weight: 800; font-size: 1.0625rem; line-height: 1.3; letter-spacing: 0.01em; min-width: 0; }
.dish__name em.new, .dish__name .for {
  font-style: normal;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--red);
  color: var(--cream);
  padding: 0.12rem 0.35rem;
  margin-left: 0.3rem;
  vertical-align: 2px;
}
.dish__dots { flex: 1 1 1.5rem; min-width: 1.25rem; border-bottom: 3px dotted var(--gold); transform: translateY(-4px); }
.dish__price { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dish__price--ask { font-weight: 700; font-size: 0.875rem; text-transform: lowercase; }
.dish__desc { font-size: 0.875rem; line-height: 1.45; color: var(--tostado); margin-top: 0.15rem; max-width: 58ch; }
.g-yellow .dish__dots, .g-gold .dish__dots { border-color: var(--brown); opacity: 0.55; }
.g-red .dish__desc, .g-blue .dish__desc, .g-night .dish__desc { color: var(--cream); }
.g-red .dish__dots, .g-blue .dish__dots { border-color: var(--yellow); }

/* ============================================================
   Masthead — utility tier + main bar + breakout logo
   ============================================================ */
.mast {
  position: sticky;
  top: calc(var(--util-h) * -1);
  z-index: 100;
  overflow: visible;
}
.mast__util {
  height: var(--util-h);
  background: var(--blue);
  color: var(--cream);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  padding: 0 var(--gutter);
  font-weight: 800;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.mast__status {
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
  max-width: none;
}
.mast__status .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--yellow); margin-right: 0.45rem; vertical-align: 1px; }
.mast__status .dot--off { background: #ff8a95; }
.mast__util-r { justify-self: end; display: flex; align-items: center; gap: 1.25rem; }
.mast__tel { color: var(--cream); text-decoration: none; display: inline-flex; align-items: center; gap: 0.35rem; }
.mast__tel:hover { color: var(--yellow); }

.seg { display: inline-flex; justify-self: start; }
.seg a {
  display: inline-block;
  border: 1px solid var(--cream);
  color: var(--cream);
  padding: 0.3rem 0.7rem;
  text-decoration: none;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.1;
}
.seg a + a { border-left: 0; }
.seg a.is-active { background: var(--yellow); color: var(--brown); border-color: var(--yellow); }
.seg a:not(.is-active):hover { background: rgba(251, 243, 226, 0.15); }

.langtog { display: inline-flex; align-items: center; gap: 0.3rem; }
.langtog button {
  background: none;
  border: 0;
  color: inherit;
  font: inherit;
  font-weight: 800;
  letter-spacing: 0.08em;
  cursor: pointer;
  padding: 0.35rem 0.25rem;
  min-height: 32px;
}
.langtog button[aria-pressed="true"] { color: var(--yellow); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }

.mast__bar {
  position: relative;
  height: var(--bar-h);
  background: var(--cream);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px minmax(0, 1fr);
  align-items: center;
  padding: 0 var(--gutter) var(--lip);
  overflow: visible;
  /* the bar's bottom edge is the first brown shelf lip of the case */
  box-shadow: inset 0 calc(var(--lip) * -1) 0 var(--brown), inset 0 calc((var(--lip) + 3px) * -1) 0 var(--gold);
}
.mast__links { display: flex; align-items: center; gap: clamp(1.25rem, 2.4vw, 2.25rem); }
.mast__links--l { grid-column: 1; justify-content: flex-end; padding-right: 1.25rem; }
.mast__links--r { grid-column: 3; justify-content: flex-start; padding-left: 1.25rem; }
.mast__links a:not(.btn) {
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brown);
  text-decoration: none;
  padding: 0.75rem 0;
  text-underline-offset: 6px;
  text-decoration-thickness: 2px;
}
.mast__links a:not(.btn):hover, .mast__links a[aria-current="page"]:not(.btn) { text-decoration: underline; text-decoration-color: var(--red); }
.mast__order { margin-left: auto; }
.mast__order .btn { min-height: 40px; font-size: 14px; padding: 0.45rem 1rem; }
.mast__brand {
  position: absolute;
  left: 50%;
  top: var(--logo-top);
  transform: translateX(-50%);
  z-index: 110;
  display: block;
  line-height: 0;
}
.mast__brand img {
  height: var(--logo-h);
  width: auto;
  max-width: var(--logo-h); /* breakout cap = logo height x aspect (~1.0) */
  object-fit: contain;
  transition: height var(--motion-duration) var(--motion-ease);
  filter: drop-shadow(0 6px 10px rgba(59, 35, 20, 0.18));
}
.mast.is-scrolled .mast__brand img { height: var(--logo-h-scrolled); }
.mast__burger, .langtog--bar { display: none; }

/* Mobile drawer (yellow) */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: var(--yellow);
  color: var(--brown);
  overflow-y: auto;
  padding: 5rem var(--gutter) 4rem;
}
.drawer[hidden] { display: none; }
.drawer__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 48px; height: 48px;
  border: 2px solid var(--brown);
  background: var(--cream);
  color: var(--brown);
  font-size: 1.4rem;
  cursor: pointer;
  display: grid; place-items: center;
}
.drawer__links { display: grid; gap: 0.6rem; justify-items: start; }
.drawer__links .tag__name { font-size: 2.5rem; }
.drawer__links .tag:nth-child(even) { transform: rotate(1.5deg); }
.drawer .seg { margin-top: 2.25rem; }
.drawer .seg a { border-color: var(--brown); color: var(--brown); font-size: 14px; padding: 0.55rem 1rem; }
.drawer .seg a.is-active { background: var(--brown); color: var(--cream); }
.drawer__phones { margin-top: 1.75rem; display: grid; gap: 0.5rem; }
.drawer__phones a { color: var(--brown); font-weight: 800; text-decoration: none; display: inline-flex; gap: 0.5rem; align-items: center; min-height: 44px; }
.drawer .socials a { color: var(--brown); }
.langtog--drawer { margin-top: 1.25rem; font-size: 1rem; color: var(--brown); }
.langtog--drawer button[aria-pressed="true"] { color: var(--red-dk); }

/* ============================================================
   Header strip — the page title set twice around the hanging sign
   ============================================================ */
.strip {
  background: var(--cream);
  min-height: 168px;
  display: flex;
  align-items: center;
  padding: 1.25rem var(--gutter);
}
.strip__title {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px minmax(0, 1fr);
  align-items: center;
  font-size: clamp(2rem, 3.8vw, 3.6rem);
  line-height: 0.92;
  color: var(--brown);
}
.strip--home .strip__title { font-size: clamp(1.9rem, 3.2vw, 3.4rem); }
.strip__l { text-align: right; padding-right: 1.25rem; min-width: 0; }
.strip__r { text-align: left; padding-left: 1.25rem; min-width: 0; }
.script--strip { font-size: clamp(2.2rem, 4vw, 3.8rem); color: var(--red); line-height: 1.1; }
.strip--lounge .script--strip { color: var(--blue); }

/* PANADERÍA made of pandebono (image-in-type, once on the site) */
.fill-text { color: var(--brown); }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .fill-text {
    background-image: linear-gradient(rgba(59, 35, 20, 0.22), rgba(59, 35, 20, 0.22)), url("/images/brand-75.webp?v=ef60dcdd");
    background-size: cover;
    background-position: center 40%;
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--brown);
  }
}
.strip--bakery .strip__title { font-size: clamp(2.6rem, 5.6vw, 5.4rem); }

/* ============================================================
   HOME · Hero vitrina
   ============================================================ */
.vitrina { position: relative; z-index: 3; }
.shelf--hero .tag--hang { z-index: 8; }

/* HOME · Hoy en la olla */
.hoy { padding: calc(var(--section-y) + 3.5rem) var(--gutter) var(--section-y); position: relative; z-index: 1; }
.hoy__top {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}
.hoy__head { container-type: inline-size; min-width: 0; padding-top: 1.5rem; }
.hoy__dish { padding-top: 2rem; }
.hoy__day {
  font-size: clamp(2.4rem, 4.6vw, 4.6rem);
  line-height: 0.9;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.hoy__day.is-day { font-size: min(8.5rem, calc(100cqi / (var(--chars, 7) * 0.76))); }
.hoy__sub { margin-top: 0.75rem; font-weight: 800; font-size: 0.95rem; letter-spacing: 0.08em; text-transform: uppercase; }
.hoy__dish { min-width: 0; }
.hoy__slot .hoy-dish { font-weight: 800; font-size: 1.375rem; line-height: 1.2; letter-spacing: 0.04em; text-transform: uppercase; }
.hoy__slot .hoy-desc { margin-top: 0.2rem; }
.hoy__slot .hoy-price { font-weight: 800; font-size: 1.5rem; font-variant-numeric: tabular-nums; margin-top: 0.3rem; margin-bottom: 0.6rem; }
.hoy__lead { font-size: clamp(1.15rem, 1.5vw, 1.3rem); font-weight: 600; line-height: 1.45; }
.hoy__with { margin-top: 0.5rem; color: var(--tostado); font-weight: 600; }
.hoy__standing { margin-top: 1rem; padding-top: 1rem; border-top: 2px solid var(--brown); font-weight: 700; font-size: 0.95rem; }
.hoy__standing i { margin-right: 0.4rem; color: var(--red-dk); }
.hoy__plate { position: relative; margin: 0 0 4.5rem; }
.hoy__plate img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ledger {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin-top: clamp(1rem, 3vw, 2rem);
  border-top: 3px solid var(--brown);
}
.ledger li { padding: 1rem 0.85rem 1.25rem; border-right: 2px solid rgba(59, 35, 20, 0.22); min-width: 0; }
.ledger li:last-child { border-right: 0; }
.ledger li.is-today { background: var(--butter); box-shadow: inset 0 4px 0 var(--red); }
.ledger__day { font-family: var(--font-primary); font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; text-transform: uppercase; }
.ledger__en { display: block; font-family: var(--font-secondary); font-weight: 800; font-size: 0.75rem; letter-spacing: 0.1em; margin-top: 0.3rem; }
.ledger__dish { margin-top: 0.8rem; font-weight: 800; font-size: 0.95rem; line-height: 1.25; }
.ledger__desc { font-size: 0.8125rem; color: var(--tostado); line-height: 1.35; }
.ledger__price { font-weight: 800; font-variant-numeric: tabular-nums; }

/* HOME · La Carta */
.carta {
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  gap: clamp(2rem, 4vw, 4rem);
  padding: var(--section-y) 0 var(--section-y) var(--gutter);
  align-items: stretch;
}
.carta__body { align-self: center; min-width: 0; }
.carta__list li + li { margin-top: 0.35rem; }
.carta__list a:not(.tag) {
  display: block;
  color: var(--brown);
  text-decoration: none;
  padding: 0.3rem 0;
}
.carta__es { font-family: var(--font-primary); font-size: clamp(2rem, 4.4vw, 3.6rem); line-height: 1; transition: color var(--motion-duration) var(--motion-ease); }
.carta__arrow { display: inline-block; margin-left: 0.75rem; vertical-align: 0.1em; color: var(--red); font-size: clamp(1.4rem, 2.6vw, 2.2rem); transition: transform var(--motion-duration) var(--motion-ease); }
.carta__en { display: block; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tostado); margin-top: 0.2rem; }
.carta__list a:not(.tag):hover .carta__es, .carta__list a:not(.tag):focus-visible .carta__es { color: var(--red); }
.carta__list a:not(.tag):hover .carta__arrow, .carta__list a:not(.tag):focus-visible .carta__arrow { transform: translateX(8px); }
.carta__tagli { margin-top: 1.75rem !important; }
.carta__tagli .tag__name { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.carta__photo { margin: 0; display: flex; flex-direction: column; min-height: 560px; }
.carta__img { flex: 1; position: relative; min-height: 420px; }
.carta__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* HOME · Panadería texture + plaque + rail */
.pan {
  position: relative;
  min-height: 78vh;
  display: grid;
  grid-template-columns: minmax(0, 38fr) minmax(0, 56fr);
  gap: 6%;
  align-items: center;
  padding: var(--section-y) var(--gutter);
}
.pan__bg { position: absolute; inset: 0; z-index: 0; }
.pan__bg img { width: 100%; height: 100%; object-fit: cover; }
.pan > .plaque, .pan > .pan__rail { position: relative; z-index: 1; }
.pan__plaque h2 { margin: 0.6rem 0 1rem; font-size: clamp(2rem, 3.4vw, 3.1rem); }
.pan__run { margin-top: 1rem; font-weight: 800; font-size: 0.95rem; line-height: 1.6; }
.pan__stamp { margin-top: 1.1rem; }
.pan__stamp .stamp { font-size: 0.8125rem; padding: 0.5rem 0.7rem; }
.pan__rail { display: grid; gap: 1.5rem; }
.pan__rail .shelf__row { --shelf-h: clamp(150px, 15vw, 230px); }

/* HOME · guest quotes on trays */
.guests { padding: var(--section-y) var(--gutter); }
.guests h2 { color: var(--cream); max-width: 16ch; }
.guests__lede { margin-top: 1rem; font-size: clamp(1.15rem, 1.6vw, 1.4rem); font-weight: 600; }
.guests__lede i { color: var(--yellow); margin-right: 0.4rem; }
.trays {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 2rem);
  margin-top: clamp(2rem, 4vw, 3.5rem);
  align-items: start;
}
.tray { min-width: 0; }
.tray:nth-child(even) { margin-top: 2.5rem; }
.tray__plate { aspect-ratio: 3 / 4; overflow: hidden; }
.tray__plate img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.tray__card {
  position: relative;
  margin: -40% 7% 0;
  background: var(--cream);
  color: var(--brown);
  padding: 1.5rem 1.1rem 1rem;
  transform: rotate(-1.5deg);
  box-shadow: 0 14px 28px -14px rgba(0, 0, 0, 0.55);
}
.tray:nth-child(even) .tray__card { transform: rotate(1.5deg); }
.tray__card::before { /* order-ticket clip */
  content: "";
  position: absolute;
  top: -7px; left: 50%;
  width: 46px; height: 14px;
  margin-left: -23px;
  background: var(--brown);
  box-shadow: inset 0 3px 0 var(--gold);
}
.tray__card p { font-weight: 600; font-size: 1.0625rem; line-height: 1.45; }
.tray__card footer { margin-top: 0.7rem; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; }
.guests__note { margin-top: 2rem; font-size: 0.875rem; font-weight: 600; }

/* HOME · Dos casas */
.casas { position: relative; background: var(--night); --straddle: 160px; }
.casas__photo { position: relative; height: 82vh; min-height: 560px; }
.casas__photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.casas__photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(20deg, rgba(59, 35, 20, 0.72) 0%, rgba(59, 35, 20, 0.45) 30%, rgba(59, 35, 20, 0) 62%);
  z-index: 1;
}
.casas__photo::after { /* the brown lip becomes the Lounge's blue LED trim at this seam */
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 6px;
  background: var(--blue);
  box-shadow: 0 0 18px 2px rgba(0, 56, 147, 0.6), 0 0 4px rgba(120, 170, 255, 0.8);
  z-index: 2;
}
.casas__cap {
  position: absolute;
  top: 1.25rem;
  right: var(--gutter);
  z-index: 2;
  background: var(--cream);
  color: var(--brown);
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.35rem 0.6rem;
}
.casas__title {
  position: absolute;
  left: var(--gutter);
  bottom: calc(var(--straddle) + 2.25rem);
  z-index: 2;
  color: var(--cream);
  font-size: clamp(3rem, 7vw, 6.5rem);
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}
.casas__tickets {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(0, 38fr);
  gap: 4%;
  align-items: start;
  padding: 0 var(--gutter);
  margin-top: calc(var(--straddle) * -1);
}
.ticket {
  background: var(--cream);
  color: var(--brown);
  padding: clamp(1.25rem, 2.5vw, 2rem);
  display: grid;
  gap: 0.9rem;
  align-content: start;
  box-shadow: 0 22px 44px -22px rgba(0, 0, 0, 0.7);
  min-width: 0;
}
.ticket--yellow { background: var(--yellow); margin-top: 2.5rem; }
.ticket__place { font-size: 1.375rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.6rem; }
.ticket__role { font-size: 0.75rem; letter-spacing: 0.1em; background: var(--brown); color: var(--cream); padding: 0.2rem 0.45rem; }
.ticket__facts { display: grid; gap: 0.45rem; }
.ticket__facts li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: 0.35rem; align-items: baseline; }
.ticket__facts i { color: var(--red-dk); }
.ticket__facts address { font-style: normal; }
.ticket__facts a { color: var(--brown); font-weight: 800; }
.ticket__btns { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.25rem; }
.ticket--main .ticket__place { font-size: clamp(1.375rem, 2vw, 1.75rem); }

/* HOME · Lounge threshold */
.thresh {
  display: grid;
  grid-template-columns: minmax(0, 45fr) minmax(0, 50fr);
  gap: 5%;
  align-items: center;
  padding: var(--section-y) var(--gutter) calc(var(--section-y) + 2rem);
}
.thresh__text { min-width: 0; }
.coaster {
  width: 300px;
  max-width: 100%;
  background: var(--cream);
  padding: 14px;
  transform: rotate(3deg);
  box-shadow: 0 18px 36px -16px rgba(0, 0, 0, 0.7);
}
.coaster--4 { transform: rotate(4deg); margin-top: 2.5rem; }
.thresh h2 { color: var(--yellow); margin-top: 2.5rem; }
.nights { margin: 1.25rem 0 0; display: grid; gap: 0.6rem; }
.nights li { display: flex; gap: 0.6rem; align-items: baseline; font-weight: 700; }
.nights strong { font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--yellow); }
.nights i { color: var(--yellow); }
.thresh__drinks { margin-top: 1rem; }
.stack { position: relative; padding-bottom: 22%; min-width: 0; }
.stack::before {
  content: "";
  position: absolute;
  top: 12%; right: -3%; bottom: 0; left: 18%;
  background: var(--blue);
}
.stack__a { position: relative; width: 78%; aspect-ratio: 3 / 2; object-fit: cover; }
.stack__b {
  position: absolute;
  right: 0; bottom: 0;
  width: 48%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  outline: 6px solid var(--night);
}

/* ============================================================
   Footer — blue field, both branches, today lit
   ============================================================ */
.foot { background: var(--blue); color: var(--cream); padding: clamp(3rem, 6vw, 5rem) var(--gutter) 1.75rem; }
.foot__grid {
  display: grid;
  grid-template-columns: 260px minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 4rem);
  align-items: start;
}
.foot__plaque { width: 260px; height: 260px; background: var(--cream); display: grid; place-items: center; box-shadow: inset 0 -14px 0 var(--brown), inset 0 -17px 0 var(--gold); }
.foot__plaque img { height: 200px; width: auto; max-width: 200px; object-fit: contain; margin-bottom: 10px; }
.foot__roster { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); min-width: 0; }
.foot__h { font-family: var(--font-secondary); font-weight: 800; font-size: 15px; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.3; }
.foot__h span { display: block; font-weight: 600; font-size: 13px; color: var(--yellow); letter-spacing: 0.08em; }
.foot address, .foot__branch p { font-style: normal; font-size: 15px; margin-top: 0.75rem; line-height: 1.5; }
.foot__branch i { margin-right: 0.4rem; }
.foot a { color: var(--cream); }
.foot a:hover { color: var(--yellow); }
.hours { margin-top: 0.85rem; display: grid; gap: 0.3rem; font-size: 15px; }
.hours li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.15rem 0; border-bottom: 1px solid rgba(251, 243, 226, 0.2); }
.hours li.is-today { color: var(--yellow); font-weight: 800; }
.foot__nav { display: grid; gap: 0.35rem; }
.foot__nav a { font-size: 15px; font-weight: 700; text-decoration: none; display: inline-block; padding: 0.2rem 0; }
.foot__nav a[aria-current="page"] { color: var(--yellow); }
.langtog--foot { margin-top: 1.25rem; font-size: 15px; }
.socials { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.socials a { display: grid; place-items: center; width: 44px; height: 44px; font-size: 24px; color: var(--cream); text-decoration: none; }
.socials a:hover { color: var(--yellow); }
.socials--ink a { color: var(--brown); }
.socials--ink a:hover { color: var(--red); }
.foot__base { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 1.25rem; border-top: 1px solid rgba(251, 243, 226, 0.3); font-size: 14px; max-width: none; }

/* Global bottom bars (sit above the 42px partner banner) */
.annc {
  position: fixed;
  left: 0; right: 0;
  bottom: 42px;
  z-index: 90;
  min-height: 44px;
  background: var(--red);
  color: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 3.5rem;
  transition: transform 300ms var(--motion-ease);
}
.annc a { color: var(--cream); text-decoration: none; font-weight: 700; font-size: 14px; display: inline-flex; gap: 0.5rem; align-items: center; text-align: center; }
.annc a:hover { text-decoration: underline; }
.annc__x { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; background: none; border: 0; color: var(--cream); font-size: 1rem; cursor: pointer; }
.annc.is-dismissed { display: none; }
.annc.is-tucked, .actbar.is-tucked { transform: translateY(calc(100% + 42px)); }
.actbar { display: none; }
@media (min-width: 720px) {
  body { padding-bottom: calc(42px + 44px); }
}

/* ============================================================
   MENU
   ============================================================ */
.rail {
  position: sticky;
  top: var(--bar-h);
  z-index: 50;
  background: var(--cream);
  border-bottom: 2px solid rgba(59, 35, 20, 0.15);
}
.rail__list {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding: 22px var(--gutter) 12px;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}
.rail__list::-webkit-scrollbar { display: none; }
.rail__list li { position: relative; flex: none; scroll-snap-align: start; }
.rail__list li::before { content: ""; position: absolute; left: 50%; top: -14px; width: 2px; height: 20px; background: var(--red); z-index: 2; }
.rail__list a {
  display: block;
  background: var(--yellow);
  color: var(--brown);
  text-decoration: none;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  padding: 0.75rem 1rem 0.55rem;
  clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%, 0 10px);
  transition: background-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);
}
.rail__list a:hover { background: var(--yolk); }
.rail__list a.is-active { background: var(--red); color: var(--cream); }
.rail__list a:focus-visible { outline-offset: -3px; }
[data-rail] { scroll-margin-top: calc(var(--bar-h) + var(--rail-h) + 0.5rem); }

/* Desayunos */
.desa {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 70fr) minmax(0, 30fr);
  gap: clamp(2rem, 4vw, 4rem);
  padding: var(--section-y) var(--gutter);
}
.desa__main { min-width: 0; }
.dishes--num { columns: 2; column-gap: 3rem; counter-reset: n; }
.dishes--num .dish { counter-increment: n; position: relative; padding-left: 3.6rem; }
.dishes--num .dish::before {
  content: counter(n);
  position: absolute;
  left: 0; top: 0.25rem;
  width: 3rem;
  text-align: right;
  font-family: var(--font-primary);
  font-size: 2.5rem;
  line-height: 1;
}
.desa__rail { position: relative; padding-top: 8.5rem; display: grid; gap: 1.5rem; align-content: start; min-width: 0; }
.desa__rail .plate img { aspect-ratio: 4 / 5; }
.tag--edge { position: absolute; top: calc(var(--section-y) * -1); right: 0; margin-top: 26px; max-width: 18rem; }
.tag--edge::before { top: -26px; height: 35px; }
.tag--edge .tag__sub { font-size: 0.8125rem; }

/* Especiales */
.espe { padding-bottom: var(--section-y); }
.espe__lede { margin-top: clamp(2rem, 4vw, 3rem); font-size: clamp(1.15rem, 1.6vw, 1.4rem); font-weight: 600; }
.semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-top: 1.5rem; border-top: 3px solid var(--brown); }
.semana li { padding: 1.1rem 0.8rem 1.4rem; border-right: 2px solid rgba(59, 35, 20, 0.18); min-width: 0; position: relative; }
.semana li:last-child { border-right: 0; }
.semana li.is-today { background: var(--butter); box-shadow: inset 0 4px 0 var(--red); }
.semana li.is-today::after {
  content: "Hoy";
  position: absolute;
  top: 0.5rem; right: 0.5rem;
  background: var(--red);
  color: var(--cream);
  font-weight: 800;
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.15rem 0.4rem;
}
html[data-lang="en"] .semana li.is-today::after { content: "Today"; }
.semana__day { font-family: var(--font-primary); font-size: clamp(1.9rem, 3.5vw, 4.5rem); line-height: 0.9; text-transform: uppercase; }
.semana__en { display: block; font-family: var(--font-secondary); font-weight: 800; font-size: 0.75rem; letter-spacing: 0.1em; margin-top: 0.4rem; }
.semana__dish { margin-top: 0.9rem; font-weight: 800; line-height: 1.25; }
.semana__desc { font-size: 0.8125rem; color: var(--tostado); line-height: 1.35; }
.semana__price { font-weight: 800; font-variant-numeric: tabular-nums; }
.standing { margin-top: 1.75rem; max-width: none; padding: 1rem 0; border-top: 3px solid var(--brown); border-bottom: 3px solid var(--brown); font-weight: 700; }
.standing i { margin-right: 0.4rem; color: var(--red); }

/* Platos fuertes */
.platos {
  display: grid;
  grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
  align-items: start;
  background: var(--paper);
}
.platos__photo {
  position: sticky;
  top: calc(var(--bar-h) + var(--rail-h));
  height: calc(100vh - var(--bar-h) - var(--rail-h));
  margin: 0;
}
.platos__photo img { width: 100%; height: 100%; object-fit: cover; }
.platos__panel { padding: var(--section-y) clamp(1.5rem, 4vw, 4rem); min-width: 0; }
.cat { margin-top: 3rem; }
.cat h3 { display: inline-block; border-bottom: 3px solid var(--red); padding-bottom: 0.2rem; margin-bottom: 0.6rem; }
.cat__note { font-size: 0.875rem; font-weight: 600; color: var(--tostado); margin-bottom: 0.4rem; }
.cat--special { background: var(--butter); padding: 1.25rem 1.25rem 0.75rem; box-shadow: inset 4px 0 0 var(--red); }
.inset { float: right; clear: right; width: 180px; margin: 0.4rem 0 0.75rem 1.5rem; }
.inset img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.cat .dishes::after { content: ""; display: block; clear: both; }

/* Picadas */
.picadas {
  display: grid;
  grid-template-columns: minmax(0, 62fr) minmax(0, 32fr);
  gap: 6%;
  align-items: center;
  padding: var(--section-y) var(--gutter);
}
.picadas__main { min-width: 0; }
.stair { container-type: inline-size; display: flex; align-items: flex-end; gap: 2.5cqi; flex-wrap: wrap; }
.stair li { display: flex; flex-direction: column; align-items: flex-start; }
.stair__n { font-family: var(--font-primary); color: var(--cream); line-height: 0.85; font-size: var(--s); font-size: min(calc(var(--p) * 1cqi), var(--s)); }
.stair__label { margin-top: 0.4rem; font-weight: 800; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
.stair__price { font-weight: 800; font-size: 1.1rem; font-variant-numeric: tabular-nums; color: var(--yellow); }
.picadas__stamp { margin-top: 1.75rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.picadas__stamp .stamp { font-size: 0.8125rem; padding: 0.5rem 0.7rem; }
.picadas__stampnote { font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; }
.picadas__inc { margin-top: 1.5rem; font-size: 1.0625rem; }
.picadas__plates { display: grid; grid-template-columns: 1fr 1fr; gap: var(--seam); background: var(--brown); align-self: center; }
.picadas__plates img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.picadas__plates .lip { grid-column: 1 / -1; }

/* Y más — binder tabs */
.ymas { padding: var(--section-y) var(--gutter); }
.ymas__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
.ymas__col { min-width: 0; }
.binder { position: relative; padding-left: 52px; margin-bottom: 2.75rem; min-height: 15rem; }
.binder__tab { position: absolute; left: 0; top: 0; bottom: 0; width: 32px; background: var(--yellow); display: flex; justify-content: center; box-shadow: inset -3px 0 0 var(--gold); }
.binder__tab h3 { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 14px; letter-spacing: 0.12em; padding: 0.9rem 0; white-space: nowrap; }
.ymas__inset { margin: 0 0 0.75rem; }
.ymas__inset img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.footnotes { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: 0.75rem 2rem; font-size: 0.875rem; font-weight: 700; padding-top: 1.25rem; border-top: 2px solid rgba(59, 35, 20, 0.2); }
.footnotes i { color: var(--red); margin-right: 0.35rem; }

/* Postres & Bebidas */
.pb { position: relative; padding: var(--section-y) var(--gutter); }
.pb__bg { position: absolute; inset: 0; }
.pb__bg img { width: 100%; height: 100%; object-fit: cover; }
.pb__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 4%; align-items: start; }
.pb__grid h2 { margin-bottom: 1.25rem; }
.pb__inset { float: right; width: 38%; margin: 0 0 1rem 1.25rem; }
.pb__inset img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pills { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.6rem 0 1rem; clear: none; }
.pills li { background: var(--yellow); color: var(--brown); border-radius: 999px; padding: 0.3rem 0.85rem; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; }

/* ============================================================
   BAKERY
   ============================================================ */
.case__photo { position: relative; height: 62vh; min-height: 380px; }
.case__photo img { width: 100%; height: 100%; object-fit: cover; }
.case > .tag--hang .tag__name { font-size: clamp(1.1rem, 2vw, 1.5rem); }

.lista {
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(0, 38fr);
  gap: 4%;
  align-items: center;
  padding: calc(var(--section-y) + 4.5rem) var(--gutter) var(--section-y);
  font-size: 1.125rem;
}
.lista__main { min-width: 0; }
.lista__lede { margin: 1rem 0 1.5rem; font-size: 1.125rem; font-weight: 600; }
.dishes--stamps .dish__name { font-size: 1.125rem; }
.dishes--stamps .dish__desc { font-size: 1.125rem; color: var(--brown); font-weight: 500; }
.lista__photo { margin: 0; }
.lista__photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

.wall { padding: var(--section-y) var(--gutter); display: grid; gap: 1.75rem; }
.shelf--grid .shelf__row { --shelf-h: clamp(200px, 21vw, 300px); }

.horno { position: relative; overflow-x: clip; }
.horno__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); height: 58vh; min-height: 360px; }
.horno__row .tile img { object-position: center 50%; }
.tape {
  position: absolute;
  left: -2%; right: -2%;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%) rotate(-2deg);
  background: var(--red);
  color: var(--cream);
  text-align: center;
  font-size: clamp(1.6rem, 3.4vw, 3rem);
  line-height: 1.05;
  padding: 0.7rem 1rem;
  box-shadow: 0 10px 24px -12px rgba(0, 0, 0, 0.6);
  pointer-events: none;
}

.cafe {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 42fr) minmax(0, 46fr);
  gap: 8%;
  align-items: center;
  padding: var(--section-y) var(--gutter);
}
.cafe__bg { position: absolute; inset: 0; }
.cafe__bg img { width: 100%; height: 100%; object-fit: cover; }
.cafe__plaque { position: relative; z-index: 1; background: var(--yellow); padding: clamp(1.75rem, 3vw, 2.75rem); min-width: 0; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.6); }
.cafe__lede { margin: 0.8rem 0 1.25rem; font-weight: 600; }
.rings { display: grid; gap: 0.9rem; }
.rings li { display: flex; align-items: center; gap: 0.6rem; }
.rings__name { flex: 1; font-weight: 800; font-size: 1.0625rem; min-width: 0; }
.rings__en { display: block; font-weight: 600; font-size: 0.875rem; color: var(--tostado); }
.ring {
  display: inline-grid;
  place-items: center;
  min-width: 64px;
  height: 64px;
  padding: 0 0.4rem;
  border-radius: 50%;
  border: 3px solid var(--brown);
  box-shadow: 3px 2px 0 -1px rgba(59, 35, 20, 0.35), inset 0 0 0 2px rgba(59, 35, 20, 0.12);
  font-weight: 800;
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
}
.cafe__plates { position: relative; z-index: 1; }
.cafe__pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--seam); background: var(--brown); }
.cafe__pair img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

/* ============================================================
   CATERING
   ============================================================ */
.party { padding: var(--section-y) var(--gutter); }
.party__lede { font-size: clamp(1.1rem, 1.5vw, 1.3rem); font-weight: 600; max-width: 60ch; }
.party__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2.5rem); align-items: end; margin-top: 2.5rem; }
.party__cols li { min-width: 0; display: flex; flex-direction: column; }
.party__n { font-family: var(--font-primary); font-size: var(--n); line-height: 0.85; color: var(--cream); }
.party__label { margin-top: 0.4rem; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; }
.party__label strong { color: var(--yellow); font-size: 1.15rem; letter-spacing: 0.02em; }
.party__drop { display: block; width: 2px; height: calc(30px + var(--step)); background: var(--cream); margin-left: 1.5rem; }
.party__cols .plate img { aspect-ratio: 3 / 4; }
.party__cols { align-items: start; }
.party__foot { margin-top: 3rem; display: flex; flex-wrap: wrap; align-items: center; gap: 2rem; justify-content: space-between; }
.party__foot .stamp { font-size: 0.875rem; padding: 0.55rem 0.8rem; }
.party__actions { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.party__actions .tag::before { background: var(--cream); }

.pica { padding: var(--section-y) var(--gutter); }
.pica h2 { text-align: center; }
.pica__grid {
  margin-top: clamp(2rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 520px) minmax(0, 1fr);
  align-items: center;
}
.pica__labels { display: grid; gap: 2rem; position: relative; z-index: 2; }
.pica__labels li { position: relative; transform: translateY(var(--y, 0)); }
.pica__labels--l li { text-align: right; padding-right: 1rem; }
.pica__labels--r li { padding-left: 1rem; }
.pica__es { display: block; font-weight: 800; font-size: 0.9375rem; letter-spacing: 0.08em; text-transform: uppercase; }
.pica__en { display: block; font-size: 0.875rem; color: var(--tostado); }
.pica__labels li::after { content: ""; position: absolute; top: 0.7rem; width: 110px; height: 1px; background: var(--brown); }
.pica__labels li::before { content: ""; position: absolute; top: calc(0.7rem - 3px); width: 7px; height: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 2px var(--cream); z-index: 1; }
.pica__labels--l li::after { left: 100%; }
.pica__labels--l li::before { left: calc(100% + 110px); }
.pica__labels--r li::after { right: 100%; }
.pica__labels--r li::before { right: calc(100% + 110px); }
.pica__plate { margin: 0; }
.pica__plate img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: center 55%; }
.pica__note { margin: 2rem auto 0; text-align: center; font-weight: 700; }
.pica__note i { color: var(--red); margin-right: 0.35rem; }

.fiesta { position: relative; height: 70vh; min-height: 460px; }
.fiesta > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fiesta__tag { position: absolute; top: 0; left: var(--gutter); margin-top: 34px; max-width: min(540px, 84vw); }
.fiesta__tag::before { top: -34px; height: 43px; }
.fiesta__tag .tag__body { padding: 1.6rem 1.5rem 1.25rem; }
.fiesta__tag h2 { font-size: clamp(1.3rem, 2.2vw, 1.75rem); line-height: 1.15; }
.fiesta__cap { position: absolute; right: var(--gutter); bottom: 1.25rem; background: var(--cream); color: var(--brown); font-weight: 600; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.35rem 0.6rem; }

.pedido { display: grid; grid-template-columns: minmax(0, 40fr) minmax(0, 55fr); gap: 5%; padding: var(--section-y) var(--gutter); align-items: start; }
.pedido__side .plate img { aspect-ratio: 4 / 5; }
.pedido__calls { display: grid; gap: 0.6rem; margin-top: 1.5rem; justify-items: start; }
.pedido__main { min-width: 0; }
.pedido__lede { margin: 0.8rem 0 1.5rem; font-weight: 600; }

/* Forms */
.contact-form { display: block; }
.contact-form label {
  display: block;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
  color: var(--brown);
}
.contact-form input:not([type="hidden"]),
.contact-form select,
.contact-form textarea {
  width: 100%;
  min-height: 46px;
  background: var(--paper);
  color: var(--brown);
  border: 2px solid var(--tostado);
  border-radius: 0;
  padding: 0.65rem 0.8rem;
  font-family: var(--font-secondary);
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.4;
  -webkit-appearance: none;
  appearance: none;
}
.contact-form select {
  background-image: linear-gradient(45deg, transparent 50%, var(--brown) 50%), linear-gradient(135deg, var(--brown) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2.25rem;
}
.contact-form textarea { resize: vertical; min-height: 120px; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--red); outline: 2px solid var(--red); outline-offset: 0; }
.btn--submit { margin-top: 1.5rem; min-height: 50px; padding: 0.7rem 1.6rem; font-size: 0.9375rem; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; }
.field { grid-column: 1 / -1; min-width: 0; }
.field--half { grid-column: span 1; }

/* order-ticket form */
.ticket-form {
  position: relative;
  background-color: var(--cream);
  background-image: radial-gradient(circle at 10px 0, var(--yellow) 5px, transparent 5.5px);
  background-size: 20px 12px;
  background-repeat: repeat-x;
  padding: 2.5rem clamp(1.25rem, 3vw, 2.25rem) 2rem;
  box-shadow: 0 22px 44px -24px rgba(59, 35, 20, 0.6);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem 1.25rem;
}
.ticket-form .fld { grid-column: 1 / -1; display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: 0.75rem; align-items: start; min-width: 0; }
.ticket-form .fld--half { grid-column: span 1; }
.ticket-form .fld__n { grid-row: 1 / span 2; font-family: var(--font-primary); font-size: 1.5rem; line-height: 1; color: var(--brown); padding-top: 0.1rem; }
.ticket-form .btn--submit { grid-column: 1 / -1; justify-self: start; }

/* ============================================================
   LOUNGE
   ============================================================ */
.strip--lounge { padding-bottom: 1.25rem; }
@media (prefers-reduced-motion: no-preference) {
  html.js .lip--fade { animation: led-on 900ms ease-out 200ms both; }
}
@keyframes led-on { from { opacity: 0.25; } to { opacity: 1; } }
.nighthero__photo { position: relative; height: 72vh; min-height: 460px; }
.nighthero__photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nighthero__photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 27, 69, 0.7), rgba(10, 27, 69, 0) 70%); z-index: 1; }
.nightplate {
  position: absolute;
  left: var(--gutter);
  bottom: 2.5rem;
  z-index: 2;
  background: var(--night);
  color: var(--yellow);
  font-family: var(--font-primary);
  font-size: clamp(1.5rem, 3vw, 2.6rem);
  line-height: 1.05;
  padding: 1.1rem 1.5rem;
  max-width: min(680px, 86vw);
  box-shadow: inset 0 -6px 0 var(--blue);
}

.noches { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6%; padding: var(--section-y) var(--gutter); align-items: center; }
.noches__text { min-width: 0; }
.noche + .noche { margin-top: 2rem; }
.noche__day { font-family: var(--font-primary); font-weight: 400; color: var(--yellow); font-size: clamp(2.6rem, 6vw, 5.5rem); line-height: 0.9; letter-spacing: 0; text-transform: uppercase; }
.noche__en { font-size: 0.42em; color: var(--cream); white-space: nowrap; }
.noche__what { margin-top: 0.6rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.noches__body { margin-top: 1.75rem; }
.stack--tall .stack__a { aspect-ratio: 2 / 3; width: 62%; }
.stack--tall .stack__b { aspect-ratio: 3 / 2; width: 58%; }

.barra { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6%; padding: var(--section-y) var(--gutter); align-items: center; }
.barra__main { min-width: 0; }
.barra__n { color: var(--yellow); font-size: clamp(4rem, 9vw, 7rem); line-height: 0.9; white-space: nowrap; }
.barra__sub { margin: 0.75rem 0 1.5rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.barra__note { margin-top: 1.25rem; font-size: 0.875rem; font-weight: 600; }
.barra__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--seam); background: var(--night); }
.barra__grid .tile { aspect-ratio: 1; }

.wall3__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, clamp(220px, 28vw, 380px));
  gap: var(--seam);
  background: var(--night);
}
.wall3__big { grid-row: 1 / span 2; }
.wall3__wide { grid-column: 2 / span 2; }

.parche { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 52fr); gap: 6%; padding: var(--section-y) var(--gutter); align-items: center; }
.parche__photo img { aspect-ratio: 4 / 3; }
.parche__main { min-width: 0; }
.parche__main > p { margin: 0.8rem 0 1.5rem; font-weight: 600; }
.parche__form .fields input:not([type="hidden"]), .parche__form select, .parche__form textarea { background: var(--cream); }
.btn--lounge {
  margin-top: 1.5rem;
  min-height: 54px;
  background-color: var(--blue);
  color: var(--cream);
  font-size: 1rem;
  padding: 0.7rem 3rem 0.7rem 1.5rem;
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%);
  background-image: radial-gradient(circle at calc(100% - 26px) 50%, var(--yellow) 0 4px, transparent 4.5px);
}
.btn--lounge:hover { background-color: #00276b; }
.parche__note { margin-top: 1rem; font-size: 0.875rem; font-weight: 700; }
.parche__note i { margin-right: 0.35rem; }

/* ============================================================
   LOCATIONS
   ============================================================ */
.store__plate { position: relative; height: 60vh; min-height: 380px; margin: 0 var(--gutter); }
.store__plate > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.store__plate::before { content: ""; position: absolute; inset: 0; background: linear-gradient(20deg, rgba(59, 35, 20, 0.7), rgba(59, 35, 20, 0) 55%); z-index: 1; }
.store__name { position: absolute; left: clamp(1rem, 3vw, 2.5rem); bottom: calc(64px + 1.5rem); z-index: 2; font-family: var(--font-primary); color: var(--cream); font-size: clamp(2.2rem, 5.5vw, 4.8rem); line-height: 0.95; text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45); }
.facts {
  position: relative;
  z-index: 2;
  width: 88%;
  margin: -64px auto 0;
  background: var(--yellow);
  color: var(--brown);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr);
  box-shadow: 0 22px 44px -24px rgba(59, 35, 20, 0.7);
}
.facts__cell { padding: 1.25rem 1.5rem; min-width: 0; }
.facts__cell + .facts__cell { border-left: 2px solid var(--brown); }
.facts__k { font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.5rem; }
.facts address { font-style: normal; font-weight: 600; }
.facts .arrowlink { margin-top: 0.6rem; }
.facts__rate { font-family: var(--font-primary); font-size: 2.4rem; line-height: 1; }
.facts__rate i { font-size: 0.7em; color: var(--red-dk); margin-right: 0.2rem; }
.pill { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.35rem 0.8rem; border: 2px solid var(--brown); font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; }
.pill.is-open::before, .pill.is-closed::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--brown); flex: none; }
.pill.is-closed::before { background: var(--red); }

.stp { padding: var(--section-y) var(--gutter); }
.stp h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 1rem; }
.stp__place { font-family: var(--font-secondary); font-weight: 800; font-size: 0.95rem; letter-spacing: 0.1em; text-transform: uppercase; }
.actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0 2.5rem; }
.dock { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(1.5rem, 3vw, 2.5rem); max-width: 1100px; align-items: start; }
.dock__card { background: var(--paper); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: inset 0 -14px 0 var(--brown), inset 0 -17px 0 var(--gold); padding-bottom: calc(clamp(1.25rem, 3vw, 2rem) + 14px); min-width: 0; }
.dock__card h3 { display: flex; gap: 0.5rem; align-items: center; margin-bottom: 0.75rem; }
.dock__card h3 i { color: var(--red); }
.hours-t { width: 100%; border-collapse: collapse; font-size: 1.0625rem; }
.hours-t th, .hours-t td { text-align: left; padding: 0.55rem 0.75rem; border-bottom: 1px solid rgba(59, 35, 20, 0.18); }
.hours-t th { font-weight: 800; }
.hours-t td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.hours-t tr.is-today th, .hours-t tr.is-today td { background: var(--butter); }
.hours-t tr.is-today th { box-shadow: inset 4px 0 0 var(--red); }
.hours-t--sm { font-size: 0.9375rem; margin-top: 1rem; }
.hours-t--sm th, .hours-t--sm td { padding: 0.4rem 0.6rem; }
.dock__note { margin-top: 1rem; font-size: 0.9375rem; font-weight: 600; }
.dock__note i { color: var(--red); margin-right: 0.35rem; }
.dock__photo img { aspect-ratio: 4 / 5; }
.dock__photo figcaption { margin-top: 0.75rem; font-weight: 700; font-size: 0.9375rem; }
.dock__photo figcaption a { color: var(--brown); text-decoration-color: var(--red); text-underline-offset: 4px; }

.lutz { display: grid; grid-template-columns: auto minmax(0, 560px) minmax(220px, 340px); justify-content: start; gap: clamp(1.5rem, 3.5vw, 3rem); align-items: center; padding: var(--section-y) var(--gutter); }
.lutz__name { font-size: clamp(3.5rem, 9vw, 8.5rem); line-height: 0.85; writing-mode: horizontal-tb; }
.lutz__ticket { background: var(--cream); padding: clamp(1.1rem, 2.5vw, 1.75rem); font-size: 0.9375rem; box-shadow: 0 18px 36px -22px rgba(59, 35, 20, 0.7); min-width: 0; max-width: 560px; }
.lutz__ticket .ticket__btns { margin-top: 1rem; }
.lutz__ticket .btn { font-size: 0.8125rem; min-height: 44px; padding: 0.45rem 0.9rem; }
.lutz__note { margin-top: 1rem; font-size: 0.875rem; font-weight: 700; }
.lutz__note i { margin-right: 0.35rem; color: var(--red-dk); }
.lutz__photo img { aspect-ratio: 3 / 4; }

.write { position: relative; padding: clamp(4rem, 8vw, 7rem) var(--gutter); min-height: 80vh; }
.write__bg { position: absolute; inset: 0; }
.write__bg img { width: 100%; height: 100%; object-fit: cover; }
.hangplaque {
  position: relative;
  z-index: 1;
  max-width: 560px;
  margin-left: clamp(0px, 8vw, 140px);
  background: var(--cream);
  padding: 2.75rem clamp(1.25rem, 3vw, 2.25rem) 2rem;
  box-shadow: 0 26px 50px -24px rgba(0, 0, 0, 0.7);
  background-image: radial-gradient(circle at 18% 16px, var(--brown) 0 4px, transparent 4.5px), radial-gradient(circle at 82% 16px, var(--brown) 0 4px, transparent 4.5px);
}
.hangplaque::before, .hangplaque::after {
  content: "";
  position: absolute;
  top: calc(clamp(4rem, 8vw, 7rem) * -1);
  height: calc(clamp(4rem, 8vw, 7rem) + 16px);
  width: 2px;
  background: var(--red);
}
.hangplaque::before { left: 18%; }
.hangplaque::after { left: 82%; }
.hangplaque > p { margin: 0.8rem 0 1.5rem; font-weight: 600; }
.hangplaque__social { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 2px solid rgba(59, 35, 20, 0.18); display: flex; align-items: center; gap: 0.5rem; font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; }
.hangplaque__social .socials { margin-top: 0; }

/* ============================================================
   ORDER
   ============================================================ */
.otags { display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 35fr); gap: 3%; padding: var(--section-y) var(--gutter); align-items: center; }
.otags__main { min-width: 0; }
.otags__lede { font-size: clamp(1.15rem, 1.6vw, 1.4rem); font-weight: 600; margin-bottom: 2.5rem; }
.otags__line {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  border-top: 3px solid var(--red-dk);
  box-shadow: 0 -1px 0 rgba(251, 243, 226, 0.5);
  padding: 0 2%;
  min-height: 15rem;
}
.otags__line li { position: relative; padding-top: var(--drop); }
.otags__line li::before { content: ""; position: absolute; left: 50%; top: 0; width: 2px; height: calc(var(--drop) + 9px); background: var(--red-dk); z-index: 2; margin-left: -1px; }
.otags__line .tag { margin-top: 0; transform-origin: 50% 0; }
.otags__line .tag::before { display: none; }
.otags__line .tag__name { font-size: 1.6rem; }
.otags__line a.tag:hover, .otags__line a.tag:focus-visible { transform: rotate(-2deg); }
.otags__line li:nth-child(even) .tag { transform: rotate(2deg); }
.tag--off { cursor: not-allowed; }
.tag--off .tag__body { background-color: var(--cream); opacity: 0.96; }
.otags__plates { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: var(--seam); background: var(--brown); align-items: stretch; }
.otags__plates img { width: 100%; object-fit: cover; }
.otags__a { aspect-ratio: 3 / 4; }
.otags__b { height: 100%; }
.otags__plates .lip { grid-column: 1 / -1; }

.callahead { display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 34fr); gap: 4%; padding: var(--section-y) var(--gutter); align-items: center; }
.callahead__nums { container-type: inline-size; min-width: 0; }
.bigtel { margin-top: 2rem; }
.bigtel__place { font-weight: 800; font-size: 0.95rem; letter-spacing: 0.1em; text-transform: uppercase; }
.bigtel__place span { color: var(--red-dk); margin-left: 0.4rem; }
.bigtel__num {
  display: inline-block;
  font-family: var(--font-primary);
  font-size: min(6.5rem, 9.4cqi);
  line-height: 1;
  color: var(--brown);
  text-decoration: none;
  white-space: nowrap;
  text-underline-offset: 8px;
  text-decoration-thickness: 4px;
}
.bigtel__num:hover, .bigtel__num:focus-visible { text-decoration: underline; text-decoration-color: var(--red); }
.bigtel--2 .bigtel__num { font-size: min(4rem, 6.4cqi); }
.bigtel__hours { margin-top: 0.4rem; font-weight: 600; }
.bigtel__hours i { margin-right: 0.35rem; color: var(--red); }
.callahead__note { margin-top: 2rem; font-weight: 700; font-size: 0.9375rem; }
.callahead__note i { color: var(--red); margin-right: 0.35rem; }
.callahead__photo img { aspect-ratio: 1; }

.band { position: relative; height: 55vh; min-height: 360px; }
.band > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.band__tag { position: absolute; top: 0; left: var(--gutter); margin-top: 34px; }
.band__tag::before { top: -34px; height: 43px; }
.band__tag .tag__name { font-size: 1.5rem; }

/* 404 */
.lost__pad { height: 9rem; }

/* ============================================================
   Gallery lightbox — scaffolded shared mechanism (binding default)
   Inert until a data-lightbox group container exists on the page.
   Restyled to the case: night scrim, yellow tag buttons.
   (frontend-design.md § "Gallery lightbox")
   ============================================================ */
.lightbox-zoomable {
  cursor: zoom-in;
  object-position: 50% 45%;
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 320;
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 3vw, 2.5rem);
}
.lightbox.is-open {
  display: flex;
  animation: lightbox-in var(--motion-duration) var(--motion-ease);
}
@keyframes lightbox-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .lightbox.is-open { animation: none; }
}
.lightbox__scrim {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--night) 92%, transparent);
}
.lightbox__frame {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: min(1200px, 92vw);
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.lightbox__img {
  max-width: 100%;
  max-height: 78vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-bottom: 14px solid var(--brown);
  box-shadow: 0 24px 80px -16px rgba(0, 0, 0, 0.7);
}
.lightbox__caption {
  font-family: var(--font-secondary, inherit);
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--cream);
  text-align: center;
  max-width: 60ch;
  margin-top: 0.75rem;
}
.lightbox__counter {
  position: absolute;
  bottom: 1.1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  font-family: var(--font-secondary, inherit);
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  color: var(--yellow);
}
.lightbox__close,
.lightbox__prev,
.lightbox__next {
  position: absolute;
  z-index: 2;
  width: 2.9rem;
  height: 2.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  background: var(--yellow);
  color: var(--brown);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  font-size: 1.2rem;
  line-height: 1;
}
.lightbox__close:hover,
.lightbox__close:focus-visible,
.lightbox__prev:hover,
.lightbox__prev:focus-visible,
.lightbox__next:hover,
.lightbox__next:focus-visible {
  background: var(--red);
  color: var(--cream);
}
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev  { left: 1rem;  top: 50%; transform: translateY(-50%); }
.lightbox__next  { right: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__caption[hidden],
.lightbox__counter[hidden],
.lightbox__prev[hidden],
.lightbox__next[hidden] {
  display: none;
}

/* ============================================================
   Scroll reveal (reveal-gating floor — visible without JS)
   Deliberately unused by the motion signature; kept as the
   site's only sanctioned hidden state, scoped under html.js.
   ============================================================ */
.reveal { opacity: 1; transform: none; }
html.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s, transform .6s; }
html.js .reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1180px) {
  .hoy__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .hoy__plate { grid-column: 2; grid-row: 1 / span 2; }
  .hoy__head { grid-column: 1; }
  .hoy__dish { grid-column: 1; }
  .ledger li { padding: 0.85rem 0.55rem 1rem; }
  .ledger__dish { font-size: 0.875rem; }
  .foot__grid { grid-template-columns: 220px minmax(0, 1fr); }
  .foot__plaque { width: 220px; height: 220px; }
  .foot__plaque img { height: 180px; max-width: 180px; }
  .foot__side { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2.5rem; }
  .foot__nav { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
  .langtog--foot, .foot__side .socials { margin-top: 0; }
  .semana li { padding: 0.9rem 0.5rem 1.2rem; }
  .lutz { grid-template-columns: auto minmax(0, 1fr); }
  .lutz__photo { grid-column: 1 / -1; max-width: 420px; }
  .pica__labels li::after { width: 70px; }
  .pica__labels--l li::before { left: calc(100% + 70px); }
  .pica__labels--r li::before { right: calc(100% + 70px); }
}

/* Masthead switches to the mobile bar where the split links stop fitting */
@media (max-width: 979px) {
  :root { --bar-h: 64px; --logo-h: 196px; --logo-h-scrolled: 56px; --overhang: 138px; --rail-h: 70px; }
  .mast { top: 0; }
  .mast__util { display: none; }
  .mast__bar { grid-template-columns: 56px minmax(0, 1fr) auto; padding: 0 0.75rem var(--lip); }
  .mast__links { display: none; }
  .mast__burger {
    display: grid;
    place-items: center;
    grid-column: 1;
    width: 48px; height: 48px;
    background: none;
    border: 2px solid var(--brown);
    color: var(--brown);
    font-size: 1.4rem;
    cursor: pointer;
  }
  .langtog--bar { display: inline-flex; grid-column: 3; justify-self: end; color: var(--brown); font-size: 13px; text-transform: uppercase; }
  .langtog--bar button[aria-pressed="true"] { color: var(--red-dk); }
  .strip { padding-top: calc(var(--overhang) + 1.25rem); min-height: 0; padding-bottom: 1.5rem; }
  .strip__title { grid-template-columns: minmax(0, 1fr); text-align: center; gap: 0.35rem; }
  .strip__gap { display: none; }
  .strip__l, .strip__r { text-align: center; padding: 0; }
  .carta { grid-template-columns: minmax(0, 1fr); padding: 0 0 var(--section-y); }
  .carta__photo { order: -1; min-height: 0; margin-left: 8vw; }
  .carta__img { min-height: 60vh; }
  .carta__body { padding: var(--section-y) var(--gutter) 0; }
  .pan { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .trays { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 3rem; }
  .thresh, .noches, .barra, .parche, .pedido, .callahead, .otags, .picadas, .cafe, .lista, .desa { grid-template-columns: minmax(0, 1fr); }
  .stack { max-width: 640px; }
  .thresh .stack, .noches .stack { order: -1; margin-bottom: 1rem; }
  .ymas__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ymas__col:nth-child(3) { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(2rem, 4vw, 3.5rem); }
  .platos { grid-template-columns: minmax(0, 1fr); }
  .platos__photo { position: relative; top: auto; height: 40vh; }
  .desa__rail { grid-template-columns: 1fr 1fr; gap: var(--seam); background: var(--brown); align-self: start; }
  .desa__rail .plate .lip { display: none; }
  .desa__rail { box-shadow: 0 var(--lip) 0 var(--brown); }
  .desa__rail { order: -1; padding-top: 0; margin-top: 7rem; }
  .tag--edge { top: -7rem; left: 0; right: auto; margin-top: 26px; max-width: 80vw; }
  .desa { padding-top: 0; }
  .lista__photo { order: -1; }
  .cafe__plates { max-width: 560px; }
  .otags__plates { max-width: 520px; }
  .otags__line { border-top: 0; box-shadow: none; padding: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 1rem; }
  .otags__line li { border-top: 3px solid var(--red-dk); padding-bottom: 1.5rem; display: flex; justify-content: center; min-width: 0; }
  .otags__line .tag { max-width: 100%; }
  .otags__line .tag__body { min-width: 0; }
  .otags__line .tag__name { font-size: 1.25rem; }
  .pedido__side { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; align-items: end; }
  .pedido__calls { margin-top: 0; }
  .callahead__photo { max-width: 420px; }
  .lutz { grid-template-columns: minmax(0, 1fr); }
  .lutz__ticket { max-width: 72%; }
  .dock { grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); }
}

@media (max-width: 719px) {
  :root { --section-y: clamp(3rem, 12vw, 4.5rem); }
  body { padding-bottom: calc(42px + 56px); }
  .annc { display: none; }
  .actbar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    position: fixed;
    left: 0; right: 0;
    bottom: 42px;
    z-index: 90;
    height: 56px;
    background: var(--yellow);
    border-top: 3px solid var(--brown);
    transition: transform 300ms var(--motion-ease);
  }
  .actbar a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    color: var(--brown);
    text-decoration: none;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  .actbar a + a { border-left: 2px solid rgba(59, 35, 20, 0.25); }
  .actbar i { font-size: 1.25rem; }

  /* Shelves never stack: each becomes a swipe-along scroll-snap row (1.6 tiles) */
  .shelf__row {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    height: var(--shelf-h-m, clamp(190px, 30vh, 250px));
  }
  .shelf__row::-webkit-scrollbar { display: none; }
  .shelf__row > .tile { flex: 0 0 62.5%; scroll-snap-align: start; }
  .shelf--grid .shelf__row { display: grid; grid-template-columns: 1fr 1fr; height: auto; grid-auto-rows: 44vw; overflow: visible; }
  .shelf--grid .shelf__row > .tile { flex: none; }
  .shelf--grid .tile--w2 { grid-column: span 2; }
  .shelf > .tag--hang { left: 3%; }
  .shelf > .tag--end { right: 3%; left: auto; }
  .shelf > .tag .tag__body { min-width: 0; max-width: 46vw; padding: 1.15rem 0.75rem 0.6rem; }
  .shelf > .tag .tag__name { font-size: 1.15rem; }
  .shelf > .tag .tag__sub, .shelf > .tag .tag__hours { font-size: 0.6875rem; letter-spacing: 0.05em; }
  .fiesta__tag { width: calc(100% - 2 * var(--gutter)); }
  .case { display: flex; flex-wrap: wrap; gap: 0 0.6rem; padding: 0 3%; }
  .case > .case__photo, .case > .lip { flex: 0 0 calc(100% + 6%); margin: 0 -3%; }
  .case > .tag--hang { position: relative; top: auto; left: auto !important; }
  .case > .tag--hang .tag__name { font-size: 1rem; }
  .case > .tag--hang .tag__body { max-width: none; }
  .lista { padding-top: var(--section-y); }

  .hoy { padding-top: calc(var(--section-y) + 5rem); }
  .hoy__top { grid-template-columns: minmax(0, 1fr); }
  .hoy__plate, .hoy__head, .hoy__dish { grid-column: 1; grid-row: auto; }
  .hoy__plate { order: -1; max-width: 340px; }
  .hoy__plate img { aspect-ratio: 1; }
  .ledger { grid-template-columns: minmax(0, 1fr); }
  .ledger li { display: grid; grid-template-columns: 6rem minmax(0, 1fr); column-gap: 0.75rem; border-right: 0; border-bottom: 2px solid rgba(59, 35, 20, 0.2); padding: 0.85rem 0.6rem; }
  .ledger li > :not(.ledger__day) { grid-column: 2; }
  .ledger__day { grid-row: 1 / span 6; font-size: 1.85rem; }
  .ledger__dish { margin-top: 0; }
  .ledger li.is-today { box-shadow: inset 4px 0 0 var(--red); }

  .carta__es { font-size: 2rem; }
  .carta__tagli .tag__body { max-width: none; }
  .stamp { white-space: normal; max-width: 100%; }
  .stamp--row { white-space: nowrap; }
  .pica__es { font-size: 0.8125rem; letter-spacing: 0.05em; overflow-wrap: anywhere; }

  .pan { display: block; padding: 0 0 var(--section-y); }
  .pan__bg { position: relative; height: 35vh; }
  .pan__plaque { margin: -4rem var(--gutter) 0; }
  .pan__rail { margin-top: 2rem; padding: 0 0; }

  .trays { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding-bottom: 1rem; margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); padding-left: var(--gutter); padding-right: var(--gutter); scrollbar-width: none; }
  .tray { flex: 0 0 82vw; scroll-snap-align: center; }
  .tray:nth-child(even) { margin-top: 0; }

  .casas { --straddle: 40px; }
  .casas__photo { height: 50vh; min-height: 340px; }
  .casas__tickets { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .ticket--yellow { margin-top: 0; }

  .foot__grid { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .foot__roster { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .foot__side { justify-content: center; }
  .foot__base { text-align: center; }

  .dishes--num { columns: 1; }
  .semana { grid-template-columns: minmax(0, 1fr); }
  .semana li { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); column-gap: 0.75rem; border-right: 0; border-bottom: 2px solid rgba(59, 35, 20, 0.18); }
  .semana li > :not(.semana__day) { grid-column: 2; }
  .semana__day { grid-row: 1 / span 6; font-size: 2.5rem; }
  .semana__dish { margin-top: 0; }
  .semana li.is-today { box-shadow: inset 4px 0 0 var(--red); }
  .inset { width: 120px; margin-left: 1rem; }
  .ymas__grid, .ymas__col:nth-child(3) { grid-template-columns: minmax(0, 1fr); display: grid; }
  .pb__grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .pb { padding: 24px; }
  .stair { gap: 3cqi; }

  .horno__row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; height: 50vh; scrollbar-width: none; }
  .horno__row > .tile { flex: 0 0 80vw; scroll-snap-align: start; }
  .tape { left: 0; right: 0; }

  .party__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; }
  .party__cols li:nth-child(odd) { --step: 0px !important; }
  .party__cols li:nth-child(even) { --step: 24px !important; }
  .party__foot { flex-direction: column; align-items: flex-start; }
  .pica__grid { grid-template-columns: minmax(0, 1fr); }
  .pica__plate { order: -1; }
  .pica__labels { grid-template-columns: 1fr 1fr; gap: 0.75rem 1rem; margin-top: 1rem; counter-reset: none; }
  .pica__labels li { transform: none; text-align: left !important; padding: 0 0 0 2rem !important; }
  .pica__labels li::after { display: none; }
  .pica__labels li::before { content: counter(list-item); left: 0 !important; right: auto !important; top: 0; width: 1.5rem; height: 1.5rem; display: grid; place-items: center; color: var(--cream); font-weight: 800; font-size: 0.75rem; box-shadow: none; }
  .pedido__side { grid-template-columns: minmax(0, 1fr); }
  .ticket-form { grid-template-columns: minmax(0, 1fr); }
  .ticket-form .fld--half { grid-column: 1 / -1; }
  .fields { grid-template-columns: minmax(0, 1fr); }
  .field--half { grid-column: 1 / -1; }

  .wall3__grid { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2, 46vw) 52vw; }
  .wall3__big { grid-row: 1 / span 2; grid-column: 1; }
  .wall3__wide { grid-column: 1 / span 2; grid-row: 3; }

  .store__plate { margin: 0; }
  .facts { width: calc(100% - 2 * var(--gutter)); grid-template-columns: minmax(0, 1fr); margin-top: -48px; }
  .facts__cell + .facts__cell { border-left: 0; border-top: 2px solid var(--brown); }
  .store__name { bottom: calc(48px + 1rem); }
  .dock { grid-template-columns: minmax(0, 1fr); }
  .lutz__ticket { max-width: none; }
  .write { padding: 0 0 var(--section-y); min-height: 0; }
  .write__bg { position: relative; height: 30vh; }
  .hangplaque { margin: -2rem var(--gutter) 0; max-width: none; }
  .hangplaque::before, .hangplaque::after { top: -3rem; height: calc(3rem + 16px); }

  .bigtel__num { font-size: min(4rem, 10.6cqi); }
  .bigtel--2 .bigtel__num { font-size: min(3rem, 8cqi); }
}

@media (max-width: 400px) {
  /* the 196px hanging sign leaves no room beside it: tuck ES|EN just under the lip until the logo collapses */
  .mast:not(.is-scrolled) .langtog--bar { position: absolute; top: calc(100% + 4px); right: 0.5rem; font-size: 12px; }
  .langtog--bar { font-size: 12px; }
  .otags__line .tag__name { font-size: 1rem; }
  .otags__line .tag__body { padding: 1.15rem 0.7rem 0.6rem; }
  .band__tag { max-width: calc(100% - 2 * var(--gutter)); }
  .mast__bar { grid-template-columns: 50px minmax(0, 1fr) auto; }
  .mast__burger { width: 44px; height: 44px; }
}

/* ============================================================
   Self-hosted Google Fonts (localized by 20_performance_sweep)
   ============================================================ */
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4q9DaRvziissg.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4S9DaRvzig.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4q9DaRvziissg.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4S9DaRvzig.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4q9DaRvziissg.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4S9DaRvzig.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4q9DaRvziissg.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/_Xms-HUzqDCFdgfMm4S9DaRvzig.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Ultra';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/zOLy4prXmrtY-uTzwrKh68xEg-E.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Ultra';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/zOLy4prXmrtY-uT9wrKh68xE.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Yellowtail';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/OZpGg_pnoDtINPfRIlLohlXHwWL9f4nluA.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Yellowtail';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/OZpGg_pnoDtINPfRIlLohlvHwWL9f4k.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* lt-perf:begin — generated by performance-sweep.py (rev 90): keeps sweep-added <picture>
   wrappers layout-transparent and reserves the box of content-sized hero images.
   Do not edit; re-run the sweep. */
picture[data-lt-picture] { display: contents; }
/* lt-perf:end */
