/* Mima Carta · estilos comunes. Lo de cada marca (colores, tipografías, decoración) va en
   marcas/<id-restaurante>/tema.css, que redefine estas variables y se carga después. */
:root{
  --c-texto:#2b2b2b;--c-texto-rgb:43,43,43;
  --c-primario:#2b2b2b;
  --c-titulos:var(--c-primario);
  --c-acento:#b8433a;--c-acento-rgb:184,67,58;
  --c-suave:#6b7280;--c-linea:#e5e7eb;--c-claro:#f4f5f7;
  --c-etiqueta:#c9d1d9;--c-traza:#8a94a6;--c-traza-borde:#dde2e8;--c-dieta:#5b7f4a;
  --c-redes-borde:var(--c-linea);
  --f-texto:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --f-titulos:var(--f-texto)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--c-texto);font-family:var(--f-texto);font-size:16px;line-height:1.6;font-variant-numeric:tabular-nums}
.wrap{max-width:1000px;margin:0 auto;padding:0 22px}

/* Cabecera. Las franjas decorativas solo aparecen si el tema las activa. */
.franja{display:none}
.marca{margin:0 auto;position:relative;z-index:2;width:min(280px,64vw)}
.marca img{width:100%;height:auto;display:block}
.marca a{display:block}
header.pag{text-align:center;padding-bottom:6px}

.cabecera{position:relative}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lang{position:absolute;top:14px;right:max(16px,calc((100vw - 1000px)/2 + 22px));z-index:3;display:flex;gap:2px;background:#fff;border-radius:999px;padding:4px;box-shadow:0 4px 14px rgba(var(--c-texto-rgb),.16)}
.lang button{font:inherit;font-size:13px;font-weight:600;letter-spacing:.06em;cursor:pointer;border:0;background:transparent;color:var(--c-texto);border-radius:999px;min-width:44px;min-height:36px;padding:0 10px}
.lang button:hover{background:var(--c-claro)}
.lang button[aria-pressed="true"]{background:var(--c-primario);color:#fff}
.barra{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);border-bottom:1px solid var(--c-linea);margin-top:18px;padding-top:12px}
.cartas{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;max-width:540px;margin:0 auto;background:var(--c-claro);border-radius:999px;padding:5px}
.cartas button{font:inherit;font-weight:700;font-size:17px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:transparent;color:var(--c-texto);border:0;border-radius:999px;min-height:46px;padding:0 8px;transition:background .2s,color .2s}
.cartas button:hover{background:rgba(255,255,255,.7)}
.cartas button[aria-selected="true"]{background:var(--c-acento);color:#fff;box-shadow:0 2px 8px rgba(var(--c-acento-rgb),.3)}
button:focus-visible,a:focus-visible{outline:2px solid var(--c-primario);outline-offset:3px}
.indice{padding:12px 0 10px}
.indice ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:0;padding:0}
.indice a{font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--c-suave);text-decoration:none;padding:4px 2px;border-bottom:1.5px solid transparent}
.indice a:hover,.indice a[aria-current="true"]{color:var(--c-acento);border-bottom-color:var(--c-acento)}

.aviso-carta{margin:28px auto 0;max-width:62ch;text-align:center;font-size:13.5px;color:var(--c-suave);background:var(--c-claro);border-radius:10px;padding:12px 18px}
.seccion{margin:54px 0 0;scroll-margin-top:130px}
.seccion h2{font-family:var(--f-titulos);font-weight:400;font-size:clamp(34px,5.4vw,46px);line-height:1.1;color:var(--c-titulos);text-align:center;margin:0}
.deco{display:block;width:92px;height:auto;margin:8px auto 0}

.nota{font-size:13px;font-style:italic;color:var(--c-suave);text-align:center;margin:18px auto 0;max-width:52ch}
.lista{list-style:none;margin:26px 0 0;padding:0;column-count:2;column-gap:48px}
.lista.unica{column-count:1;max-width:460px;margin-left:auto;margin-right:auto}
.plato{break-inside:avoid;padding:0 0 18px}
.plato.destacado{background:var(--c-claro);border-radius:10px;padding:14px 16px;margin-bottom:18px}
.linea{display:flex;align-items:baseline;gap:6px}
.linea h3{font-size:15.5px;font-weight:600;margin:0;flex:0 1 auto;color:var(--c-texto);line-height:1.35}
.puntos{flex:1 1 auto;min-width:14px;height:1px;align-self:baseline;transform:translateY(-5px);background-image:linear-gradient(to right,rgba(var(--c-texto-rgb),.28) 0 3px,transparent 3px 7px);background-size:7px 1px;background-repeat:repeat-x}
.precio{font-size:15.5px;font-weight:600;color:var(--c-texto);white-space:nowrap;text-align:right}
.precio small{font-weight:500;color:var(--c-suave);font-size:12px}
.desc{font-size:13.5px;color:var(--c-suave);margin:2px 0 0;line-height:1.5}
.alerg{display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin:5px 0 0}
.alerg span{display:inline-flex;align-items:center;height:17px;box-sizing:border-box;font-size:9.5px;font-weight:400;letter-spacing:.01em;line-height:1;color:var(--c-texto);background:transparent;border:1px solid var(--c-etiqueta);border-radius:999px;padding:1px 7px 0}
.alerg span.traza{color:var(--c-traza);background:transparent;border-style:dashed;border-color:var(--c-traza-borde)}
.alerg span span{display:contents;border:0;padding:0;height:auto;color:inherit;font:inherit;letter-spacing:inherit;background:none}
.alerg span .vh{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.alerg span.cod{font-weight:600;letter-spacing:.08em}
.alerg em{font-style:normal;font-size:9.5px;color:var(--c-suave);margin:0 1px 0 4px}
.alerg span.dieta{background:transparent;border-color:transparent;color:var(--c-dieta);font-weight:500;padding-left:2px;display:inline-flex;align-items:center;gap:3px}.alerg span.dieta svg{width:9px;height:9px;flex:none}
.alerg span.sin{background:transparent;border-color:var(--c-etiqueta)}
.alerg span.consultar{color:var(--c-acento);border-color:var(--c-acento);background:transparent}

.leyenda{margin:64px 0 0;padding:30px 0 10px;border-top:1px solid var(--c-linea)}
.leyenda h2{font-family:var(--f-titulos);font-weight:400;font-size:38px;color:var(--c-acento);text-align:center;margin:0 0 6px}
.leyenda .sub{font-size:13.5px;color:var(--c-suave);text-align:center;margin:0 auto 22px;max-width:62ch}
.leyenda ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 20px;margin:0;padding:0}
.leyenda li{font-size:13.5px;color:var(--c-texto)}
.leyenda li b{display:inline-block;min-width:58px;margin-right:6px;font-size:9.5px;font-weight:600;letter-spacing:.08em;text-align:center;border:1px solid var(--c-etiqueta);border-radius:999px;padding:2px 7px}
.alergenos-codigos .leyenda ul{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.leyenda .muestras{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:22px 0 0}
.cierre{text-align:center;margin:44px auto 0;padding:34px 22px 30px;max-width:560px;background:var(--c-claro);border-radius:24px}
.cierre h2{font-family:var(--f-titulos);font-weight:700;font-size:clamp(34px,5vw,42px);line-height:1.1;color:var(--c-titulos);margin:0 0 18px;word-spacing:.14em}
.btn-reserva{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 38px;border-radius:999px;background:var(--c-acento);color:#fff;text-decoration:none;font-weight:600;font-size:16px;letter-spacing:.03em;box-shadow:0 4px 14px rgba(var(--c-acento-rgb),.28);transition:transform .15s}
.btn-reserva:hover{transform:translateY(-1px)}
.cierre .tel{margin:12px 0 0;font-size:14px;color:var(--c-suave)}.cierre .tel a{color:var(--c-primario);font-weight:600;text-decoration:none;white-space:nowrap}
.cierre .sigue{margin:22px 0 10px;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-suave)}
.redes{display:flex;gap:12px;justify-content:center}
.redes a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--c-texto);background:#fff;border:1.5px solid var(--c-redes-borde);transition:background .15s,color .15s}
.redes a:hover{background:var(--c-primario);color:#fff;border-color:var(--c-primario)}
.redes svg{width:22px;height:22px}
.pie{font-size:12.5px;color:var(--c-suave);margin:36px 0 0;text-align:center}

footer{margin-top:56px}

@media(max-width:760px){.lista{column-count:1}.seccion{scroll-margin-top:150px}.cartas button{font-size:15px;letter-spacing:.04em}.lang{top:10px}.lang button{min-width:40px;min-height:34px;font-size:12.5px}.barra{margin-top:10px}.indice ul{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding:0 2px}.indice ul::-webkit-scrollbar{display:none}.indice li{flex:0 0 auto}.indice ul{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 28px),transparent);padding:0 18px}}
@media print{.lang,.barra,.admin-aviso,.cierre{display:none}.seccion{break-inside:avoid}body{font-size:11pt}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.admin-aviso{position:sticky;top:0;z-index:20;background:var(--c-texto);color:#fff;font-size:13px;text-align:center;padding:8px 16px}
.admin-aviso a{color:#ffe584}

/* Recomendación de la casa y sellos (los activa el tema) */
.icono-reco{display:inline-block;width:17px;height:17px;vertical-align:-2px;margin-right:6px}
.plato.con-sello{position:relative;padding-right:112px;min-height:104px}
.sello-img{position:absolute;right:12px;top:50%;transform:translateY(-50%) rotate(-8deg);width:90px;height:auto}
.alerg span.reco{display:inline-flex;align-items:center;gap:5px;border-color:transparent;padding-left:2px}
.alerg span.reco img{width:13px;height:13px}
@media(max-width:420px){.plato.con-sello{padding-right:92px}.sello-img{width:74px;right:8px}}

/* Columnas de precio (copa / botella): etiqueta una sola vez arriba */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.precio .pc{display:inline-block;min-width:68px;text-align:right}
.precio .pc+.pc{margin-left:10px}
.cab-precios{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;margin:22px 0 -18px}
.cab-precios.unica{grid-template-columns:1fr;max-width:460px;margin-left:auto;margin-right:auto}
.cab-precios .linea{justify-content:flex-end}
.cab-precios .precio{font-size:12px;font-weight:500;color:var(--c-suave);letter-spacing:.02em}
@media(max-width:760px){.cab-precios{grid-template-columns:1fr}.cab-precios .linea+.linea{display:none}}
@media(max-width:420px){.precio .pc{min-width:58px}.precio .pc+.pc{margin-left:12px}}

/* Sección sin título (p. ej. un plato suelto tras otra sección) */
.seccion.sin-titulo{margin-top:34px}
.seccion.sin-titulo .lista{margin-top:0}

/* Etiquetas (copa, botella…) centradas sobre su columna de precio */
.precio .pc{width:76px;min-width:0;text-align:center}
.cab-precios .pc{text-align:center}
@media(max-width:420px){.precio .pc{width:66px}.precio .pc+.pc{margin-left:6px}}

/* Título visible e introducción (opcionales, según el tema y el bloque marca) */
h1.titulo{margin:18px 0 0;font-size:clamp(19px,2.6vw,24px);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--c-primario)}
.intro{color:var(--c-suave);margin:12px auto 0;max-width:56ch;font-size:15.5px}
[hidden]{display:none!important}

/* Menú cerrado (carta con estilo «menu»): platos centrados en una columna y sin precio; el precio va en un plato destacado */
.carta-menu .lista{column-count:1;max-width:460px;margin-left:auto;margin-right:auto;text-align:center}
.carta-menu .plato{padding-bottom:10px}
.carta-menu .linea{justify-content:center}
.carta-menu .plato.destacado{padding:20px 24px;margin:6px 0 0}
.carta-menu .plato.destacado .puntos{flex:0 1 48px}
.carta-menu .plato.destacado .desc{margin-top:6px}


/* Botón flotante redondo para compartir la carta (WhatsApp / email) */
.compartir{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.compartir-carta{width:60px;height:60px;border-radius:50%;border:0;padding:0;display:flex;align-items:center;justify-content:center;background:var(--c-primario);color:#fff;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.14);transition:background .2s,transform .2s}
.compartir-carta:hover{background:var(--c-acento)}
.compartir-carta:focus-visible,.compartir-opciones a:focus-visible{outline:3px solid var(--c-acento);outline-offset:3px}
.compartir-carta .i-cerrar,.compartir.abierto .compartir-carta .i-abrir{display:none}
.compartir.abierto .compartir-carta .i-cerrar{display:block}
.compartir-carta .i-abrir{margin-left:-2px}
.compartir-opciones{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:10px;margin-right:6px}
.compartir-opciones[hidden]{display:none}
.compartir-opciones a{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;animation:compartir-in .18s ease-out both}
.compartir-opciones li:first-child a{animation-delay:.04s}
.op-txt{background:#fff;color:#222;font:500 13px/1 Poppins,system-ui,sans-serif;padding:8px 12px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.14);white-space:nowrap}
.op-ico{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--c-primario);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.14);transition:background .2s}
.compartir-opciones a:hover .op-ico{background:var(--c-acento)}
@keyframes compartir-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:600px){.compartir{right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px))}}
@media print{.compartir{display:none}}
@media(prefers-reduced-motion:reduce){.compartir-carta,.op-ico{transition:none}.compartir-opciones a{animation:none}}
