/* La Barra del Bosque — carta digital (pantalla + impresión A4) */

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

.page-carta .nav { background: rgba(14, 15, 12, .88); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-color: var(--line); }
.nav__links a[aria-current="page"] { color: var(--gold) !important; }

.carta {
  padding: clamp(130px, 16vw, 180px) var(--gutter) clamp(80px, 10vw, 140px);
  background:
    radial-gradient(ellipse 80% 40% at 50% 0%, rgba(201, 164, 106, .08), transparent 70%),
    var(--bg);
}

/* En pantalla la tabla se comporta como un bloque */
.sheet, .sheet > thead, .sheet > tbody, .sheet > tfoot, .sheet tr, .sheet td { display: block; }
.sheet { max-width: 860px; margin: 0 auto; border-collapse: collapse; }
.sheet > thead, .sheet > tfoot { display: none; }

/* Cabecera */
.carta__head { text-align: center; }
.carta__head .eyebrow { justify-content: center; }
.carta__head .eyebrow::after { content: ""; width: 32px; height: 1px; background: var(--gold); }
.carta__head h1 { font-size: clamp(3rem, 8vw, 5.4rem); font-style: italic; font-weight: 400; color: var(--gold); margin-bottom: .2em; }
.carta__nota-print { display: none; }
.carta__logo { display: none; height: 120px; width: auto; margin: 0 auto 1.6rem; }

/* Línea — rombo — línea */
.ornament { display: flex; align-items: center; justify-content: center; gap: .9rem; }
.ornament::before, .ornament::after { content: ""; width: 70px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold)); }
.ornament::after { transform: scaleX(-1); }
.ornament i { width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); }

.carta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem 2rem;
  margin-top: 2.6rem;
}
.carta__actions button { cursor: pointer; font-family: var(--sans); background-color: transparent; }
.carta__actions .btn { background: var(--gold); }
.carta__actions .btn:hover { background: transparent; }
.carta__actions .btn--qr { background: transparent; color: var(--gold); }
.carta__actions .btn--qr:hover { background: var(--gold); color: var(--bg); }
.carta__actions .link-arrow { border: 0; border-bottom: 1px solid var(--line); padding: .4rem 0; }
.carta__admin-note { flex-basis: 100%; margin: 0; font-size: .78rem; color: var(--muted); }
/* Índice de secciones */
.carta__index {
  position: sticky;
  top: 74px;
  z-index: 10;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 3.5rem auto 0;
  padding: .9rem 0;
  background: linear-gradient(var(--bg) 70%, transparent);
}
.carta__index a {
  font: 500 .72rem/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(237, 230, 216, .78);
  padding: .65rem 1rem;
  border: 1px solid var(--line);
  transition: color .3s, border-color .3s, background .3s;
}
.carta__index a:hover { color: var(--gold); border-color: var(--gold); background: rgba(201, 164, 106, .06); }

.carta__empty { text-align: center; margin-top: 4rem; font: italic 1.3rem/1.5 var(--serif); }

/* Secciones (Cocina, Bebidas, Vinos…) */
.grupo { scroll-margin-top: 130px; }
.grupo__head { text-align: center; margin-top: clamp(5rem, 10vw, 8rem); }
.grupo:first-of-type .grupo__head { margin-top: clamp(3.5rem, 7vw, 5rem); }
.grupo__title { font-size: clamp(2.8rem, 6vw, 4.2rem); font-style: italic; font-weight: 400; color: var(--gold); margin-bottom: .3em; }

/* Categorías */
.cat { margin-top: clamp(3.5rem, 7vw, 5.5rem); scroll-margin-top: 150px; }
.cat__head { text-align: center; margin-bottom: 1.6rem; }
.cat__title {
  font-size: clamp(1.8rem, 3.6vw, 2.3rem);
  font-weight: 500;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
}
.cat__title::before, .cat__title::after { content: ""; flex: 0 1 90px; height: 1px; background: var(--line); }
.cat__title::before { background: linear-gradient(90deg, transparent, var(--gold)); }
.cat__title::after { background: linear-gradient(270deg, transparent, var(--gold)); }
.cat__nota { margin: .5rem 0 0; font: italic 1.08rem/1.4 var(--serif); color: var(--muted); }
.cat__cols { margin-top: 1.6rem; }
.cat__cols .item__price {
  font: 500 .66rem/1 var(--sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Platos */
.items { list-style: none; margin: 0; padding: 0; }
.item { padding: .95rem 0; }
.item + .item { border-top: 1px solid rgba(201, 164, 106, .08); }
.item__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) repeat(var(--cols, 1), minmax(5.5rem, auto));
  align-items: baseline;
  column-gap: .4rem;
}
.item__name {
  display: flex;
  align-items: baseline;
  gap: .6rem;
  margin: 0;
  font: 500 1.4rem/1.25 var(--serif);
  color: var(--cream);
}
.item__dots { flex: 1; min-width: 1.5rem; border-bottom: 1px dotted rgba(201, 164, 106, .45); transform: translateY(-.3em); }
.item__price {
  text-align: right;
  white-space: nowrap;
  font: 500 1.3rem/1.25 var(--serif);
  font-variant-numeric: lining-nums tabular-nums;
  color: var(--gold-soft);
}
.item__tag {
  display: inline-block;
  vertical-align: middle;
  margin-left: .4rem;
  padding: .3rem .5rem .25rem;
  font: 500 .58rem/1 var(--sans);
  font-style: normal;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid var(--line);
  transform: translateY(-.15em);
}
.item__tag--diet { color: var(--muted); border-color: rgba(166, 158, 143, .3); }
.item__desc { margin: .25rem 0 0; max-width: 80%; font-size: .92rem; line-height: 1.55; color: var(--muted); }

.carta__foot { margin-top: clamp(4rem, 8vw, 6rem); text-align: center; }
.carta__foot p { margin: 1.4rem 0 0; font: italic 1.05rem/1.5 var(--serif); color: var(--muted); }
.carta__foot .carta__fecha { margin-top: .4rem; font: 400 .72rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; font-style: normal; }

@media (max-width: 900px) {
  .carta__index { top: 62px; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .carta__index::-webkit-scrollbar { display: none; }
  .carta__index a { flex: none; }
}

@media (max-width: 560px) {
  .item__row { grid-template-columns: minmax(0, 1fr) repeat(var(--cols, 1), minmax(4.4rem, auto)); }
  .item__name { font-size: 1.22rem; }
  .item__price { font-size: 1.12rem; }
  .item__desc { max-width: none; }
  .cat__title::before, .cat__title::after { flex-basis: 40px; }
}

/* ---------- Impresión A4 ---------- */

@media print {
  @page { size: A4; margin: 0; }

  /* Papel blanco: mismos tipos y ornamentos de la web, con tinta oscura y dorado tostado.
     :root (no html) para ganarle a las variables de styles.css */
  :root {
    font-size: 9.6pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    --bg: #ffffff;
    --cream: #1d1a15;
    --gold: #8a6a35;
    --gold-soft: #5e4622;
    --muted: #6b6458;
    --line: rgba(138, 106, 53, .35);
  }
  html, body, .carta { background: #fff !important; }
  p { color: var(--muted); }
  .item + .item { border-color: rgba(138, 106, 53, .15); }
  .item__dots { border-color: rgba(138, 106, 53, .5); }

  body::after, .nav, .footer, .wa-float, .carta__actions, .carta__index { display: none !important; }
  .js .reveal { opacity: 1 !important; transform: none !important; }

  .carta { padding: 0; }
  .sheet { display: table; width: 100%; max-width: none; }
  .sheet > thead { display: table-header-group; }
  .sheet > tfoot { display: table-footer-group; }
  .sheet > tbody { display: table-row-group; }
  .sheet tr { display: table-row; }
  .sheet td { display: table-cell; padding: 0 20mm; }
  .sheet__space { height: 16mm; }
  .sheet__foot {
    height: 16mm;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 400 6.5pt/1 var(--sans);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
  }

  .carta__logo--oscuro { display: block; height: 30mm; margin-bottom: 6mm; }
  .carta__head h1 { font-size: 3.4rem; }

  .grupo--break { break-before: page; }
  .grupo--break .grupo__head { margin-top: 0; }
  .grupo__head { margin-top: 3rem; }
  .grupo__title { font-size: 3rem; }
  .grupo__head + .cat { margin-top: 1.6rem; }
  .cat { margin-top: 2.6rem; }
  .cat--break { break-before: page; margin-top: 0; }
  .cat__head { break-after: avoid; page-break-after: avoid; margin-bottom: .8rem; }
  .cat__title { font-size: 2.1rem; }
  .item { padding: .5rem 0; break-inside: avoid; page-break-inside: avoid; }
  .item__name { font-size: 1.3rem; }
  .item__price { font-size: 1.2rem; }
  .item__desc { font-size: .9rem; }
  .carta__foot { margin-top: 3rem; break-inside: avoid; }

  /* ---- Versión 3: una columna; las secciones marcadas en el panel van en dos ----
     --p-* llegan del panel (Ajustes de impresión) en el style del <html> */
  :root { font-size: calc(9.2pt * var(--p-letra, 1)); }
  .sheet td { padding: 0 18mm; }
  .sheet__space, .sheet__foot { height: 12mm; }
  .carta__logo--oscuro { height: 24mm; margin-bottom: 4mm; }
  .carta__head h1 { font-size: 3rem; margin-bottom: 0; }

  /* Hoja nueva solo en las secciones marcadas en el panel; el título nunca queda solo al pie */
  .grupo__head { margin: calc(2.6rem * var(--p-cat, 1)) 0 1.2rem; break-after: avoid; page-break-after: avoid; break-inside: avoid; }
  .grupo.grupo--first .grupo__head { margin-top: calc(1.6rem * var(--p-inicio, 1)); }
  .grupo--break .grupo__head { margin-top: 0; }
  .grupo__title { font-size: 2.6rem; }
  .grupo__head + .cat { margin-top: 0; }
  .cat { margin-top: calc(2rem * var(--p-cat, 1)); }
  .cat--break { margin-top: 0; }
  .cat__head { margin-bottom: .5rem; }
  .cat__title { font-size: 1.85rem; }
  .item { padding: calc(.38rem * var(--p-platos, 1)) 0; }
  .item__name { font-size: 1.22rem; }
  .item__price { font-size: 1.14rem; }
  .item__desc { max-width: 88%; margin-top: .1rem; font-size: .86rem; line-height: 1.4; }
  .item__tag { font-size: .5rem; padding: .25rem .4rem .2rem; }

  /* Secciones en dos columnas (ej: Vinos): letra un poco más chica para listas largas */
  .grupo--2col { column-count: 2; column-gap: 10mm; column-rule: 1px solid rgba(138, 106, 53, .2); }
  .grupo--2col .grupo__head { column-span: all; }
  .grupo--2col .cat { margin-top: calc(1.6rem * var(--p-cat, 1)); }
  .grupo--2col .grupo__head + .cat, .grupo--2col .cat--break { margin-top: 0; }
  .grupo--2col .cat__head { margin-bottom: .35rem; }
  .grupo--2col .cat__title { font-size: 1.55rem; gap: .8rem; }
  .grupo--2col .cat__title::before, .grupo--2col .cat__title::after { flex-basis: 40px; }
  .grupo--2col .item { padding: calc(.22rem * var(--p-platos, 1)) 0; }
  .grupo--2col .item__row { grid-template-columns: minmax(0, 1fr) repeat(var(--cols, 1), minmax(4.1rem, auto)); }
  .grupo--2col .item__name { font-size: 1.07rem; }
  .grupo--2col .item__price { font-size: 1rem; }
  .grupo--2col .item__desc { max-width: none; font-size: .78rem; line-height: 1.3; }

  /* Nota y fecha van arriba, así el pie no termina solo en una hoja nueva */
  .carta__foot { display: none; }
  .carta__nota-print { display: block; margin: .8rem 0 0; font: italic 1rem/1.4 var(--serif); color: var(--muted); }
}
