/**
 * A la carta - Nezweb — frontend.
 *
 * Todo cuelga de .alc: ni body ni html reciben estilo, y el contenedor raíz no
 * lleva fondo (lo pone la maquetación). Color, radio y tipografía salen de
 * custom properties para que la página Apariencia pueda sobrescribirlas.
 */

/* --------------------------------------------------------------------------
 * Variables
 * ----------------------------------------------------------------------- */

/*
 * Las custom properties las comparten los tres contenedores del plugin. La
 * tipografía y el color de texto se quedan en .alc: el componente de la home
 * hereda los del tema, como el original del cliente.
 */

.alc,
.alc-ub,
.alc-ubs {
	--alc-amarillo: #f9d606;
	--alc-negro: #0d0d0d;
	--alc-rojo: #ed1c24;
	--alc-azul: #024d8c;

	--alc-fondo-2: #f1f1f1;
	--alc-tarjeta: #ffffff;
	--alc-tarjeta-borde: #e4e4e4;
	--alc-borde: var(--alc-tarjeta-borde);
	--alc-texto: #141414;
	--alc-texto-2: #616161;
	--alc-linea: #e9e9e9;
	--alc-puntos: #c9c9c9;
	--alc-verde: #1a6b3a;
	--alc-verde-fondo: #ffffff;

	--alc-precio: var(--alc-negro);
	--alc-acento: var(--alc-amarillo);
	--alc-leyenda-fondo: #0d0d0d;
	--alc-leyenda-texto: #ffffff;
	--alc-sombra: 0 1px 2px rgba(0, 0, 0, .04);

	--alc-radio: 20px;
	--alc-radio-s: 12px;

	--alc-amarillo-2: #e4b300;
	--alc-alg-mas: #999999;
	--alc-velo: rgba(0, 0, 0, .45);
	--alc-sombra-tarjeta: 0 10px 26px rgba(0, 0, 0, .09);
	--alc-sombra-panel: -10px 0 40px rgba(0, 0, 0, .18);
	--alc-sombra-flotante: 0 6px 18px rgba(0, 0, 0, .2);
	--alc-sobre-negro: #ffffff;
	--alc-abierto: #2fb457;
	--alc-cerrado: #b0b0b0;

	--alc-fuente-titulos: system-ui, sans-serif;
	--alc-fuente-cuerpo: system-ui, sans-serif;
	--alc-tamano-base: 16px;
}

.alc {
	color: var(--alc-texto);
	font-family: var(--alc-fuente-cuerpo);
	font-size: var(--alc-tamano-base);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;

	/*
	 * La carta nunca desborda su contenedor. overflow-wrap se hereda, así que
	 * esta línea basta para que ningún nombre o descripción larga estire una
	 * celda por debajo de su ancho disponible.
	 */
	max-width: 100%;
	overflow-wrap: break-word;
}

.alc[data-tema="oscuro"],
.alc-ub[data-tema="oscuro"],
.alc-ubs[data-tema="oscuro"] {
	--alc-fondo-2: #1c1c1c;
	--alc-tarjeta: #161616;
	--alc-tarjeta-borde: #262626;
	--alc-texto: #f3f3f3;
	--alc-texto-2: #a3a3a3;
	--alc-linea: #262626;
	--alc-puntos: #3a3a3a;
	--alc-verde: #7ed49c;
	--alc-verde-fondo: transparent;

	--alc-precio: var(--alc-amarillo);
	--alc-leyenda-fondo: #161616;
	--alc-leyenda-texto: #f3f3f3;
	--alc-sombra: none;
	--alc-alg-mas: #4a4a4a;
	--alc-velo: rgba(0, 0, 0, .65);
	--alc-sombra-tarjeta: 0 10px 26px rgba(0, 0, 0, .5);
	--alc-sombra-panel: -10px 0 40px rgba(0, 0, 0, .6);
	--alc-sombra-flotante: 0 6px 18px rgba(0, 0, 0, .5);
}

.alc *,
.alc *::before,
.alc *::after {
	box-sizing: border-box;
}

.alc a {
	color: inherit;
}

.alc button {
	font: inherit;
	cursor: pointer;
}

/* --------------------------------------------------------------------------
 * Envoltorio
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="lista"] {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 20px 80px;
}

.alc .alc-superior {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: flex-end;
	padding: 18px 0 14px;
	flex-wrap: wrap;
}

/* Sedes */

.alc .alc-sedes {
	display: flex;
	gap: 6px;
	background: var(--alc-fondo-2);
	padding: 5px;
	border-radius: 999px;
	flex-wrap: wrap;
}

.alc .alc-sede {
	border: none;
	background: transparent;
	padding: 9px 16px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
	color: var(--alc-texto-2);
	transition: background .2s, color .2s;
}

.alc .alc-sede[aria-pressed="true"] {
	background: var(--alc-negro);
	color: var(--alc-acento);
}

.alc[data-tema="oscuro"] .alc-sede[aria-pressed="true"] {
	background: var(--alc-acento);
	color: var(--alc-negro);
}

.alc .alc-sede:hover:not([aria-pressed="true"]) {
	background: rgba(0, 0, 0, .07);
	color: var(--alc-texto);
}

/*
 * En móvil las píldoras no caben y partían la cápsula en varias líneas. Pasan a
 * una sola línea con scroll horizontal, la misma técnica que la barra de
 * secciones; el JS centra la activa. position: relative deja que offsetLeft se
 * mida contra la tira y no contra un ancestro posicionado.
 */
@media (max-width: 860px) {
	.alc .alc-superior {
		justify-content: stretch;
	}

	.alc .alc-sedes {
		position: relative;
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		max-width: 100%;
	}

	.alc .alc-sedes::-webkit-scrollbar {
		display: none;
	}

	.alc .alc-sede {
		flex: none;
		white-space: nowrap;
	}
}

/* --------------------------------------------------------------------------
 * Barra pegajosa
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="lista"] .alc-barra {
	position: sticky;
	top: 0;
	z-index: 20;
	background: var(--alc-tarjeta);
	padding: 12px 0;
	border-bottom: 1px solid var(--alc-linea);
	display: flex;
	gap: 12px;
	align-items: center;
}

.alc[data-plantilla="lista"] .alc-barra::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -14px;
	height: 14px;
	background: linear-gradient(rgba(0, 0, 0, .04), transparent);
	pointer-events: none;
}

.alc[data-plantilla="lista"] .alc-secciones {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	scrollbar-width: none;
	flex: 1;
	padding: 2px;
}

.alc[data-plantilla="lista"] .alc-secciones::-webkit-scrollbar {
	display: none;
}

.alc[data-plantilla="lista"] .alc-secc {
	flex: none;
	border: 2px solid transparent;
	background: var(--alc-fondo-2);
	padding: 8px 16px;
	border-radius: 999px;
	font-family: var(--alc-fuente-titulos);
	font-weight: 600;
	font-size: 15px;
	color: var(--alc-texto);
	text-decoration: none;
	box-shadow: none;
}

.alc[data-plantilla="lista"] .alc-secc.activa {
	background: var(--alc-acento);
	border-color: var(--alc-negro);
}

.alc[data-tema="oscuro"][data-plantilla="lista"] .alc-secc.activa {
	color: var(--alc-negro);
	border-color: var(--alc-acento);
}

.alc[data-plantilla="lista"] .alc-btn-filtros {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 2px solid var(--alc-negro);
	background: var(--alc-tarjeta);
	color: var(--alc-texto);
	padding: 8px 14px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
}

.alc[data-tema="oscuro"][data-plantilla="lista"] .alc-btn-filtros {
	background: var(--alc-fondo-2);
	border-color: #3a3a3a;
}

.alc[data-plantilla="lista"] .alc-btn-filtros .n {
	background: var(--alc-rojo);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	min-width: 20px;
	height: 20px;
	border-radius: 10px;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0 6px;
}

.alc[data-plantilla="lista"] .alc-btn-filtros.con .n {
	display: inline-flex;
}

/* --------------------------------------------------------------------------
 * Panel de filtros
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="lista"] .alc-filtros {
	display: none;
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	padding: 20px 22px;
	margin-top: 16px;
}

.alc[data-plantilla="lista"] .alc-filtros.abierto {
	display: block;
}

.alc[data-plantilla="lista"] .alc-filtros h3 {
	font-family: var(--alc-fuente-titulos);
	font-size: 15px;
	font-weight: 600;
	margin: 0 0 10px;
	color: var(--alc-texto-2);
}

.alc[data-plantilla="lista"] .alc-filtros .grupo {
	margin-bottom: 18px;
}

.alc[data-plantilla="lista"] .alc-filtros .grupo:last-child {
	margin-bottom: 0;
}

.alc .alc-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.alc .alc-chip {
	border: 1.5px solid var(--alc-tarjeta-borde);
	background: var(--alc-fondo-2);
	padding: 7px 12px 7px 8px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--alc-texto);
}

.alc .alc-chip[aria-pressed="true"] {
	border-color: var(--alc-negro);
	background: var(--alc-negro);
	color: var(--alc-sobre-negro);
}

.alc[data-tema="oscuro"] .alc-chip[aria-pressed="true"] {
	background: var(--alc-acento);
	border-color: var(--alc-acento);
	color: var(--alc-negro);
}

.alc .alc-chip.et[aria-pressed="true"] {
	background: var(--alc-verde);
	border-color: var(--alc-verde);
}

.alc[data-tema="oscuro"] .alc-chip.et[aria-pressed="true"] {
	background: var(--alc-verde);
	border-color: var(--alc-verde);
	color: var(--alc-negro);
}

.alc[data-plantilla="lista"] .alc-filtros .pie {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--alc-linea);
	font-size: 13px;
	color: var(--alc-texto-2);
	gap: 12px;
	flex-wrap: wrap;
}

.alc[data-plantilla="lista"] .alc-link {
	background: none;
	border: none;
	text-decoration: underline;
	color: var(--alc-texto);
	padding: 0;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
 * Alérgenos, etiquetas y badges
 * ----------------------------------------------------------------------- */

.alc .alc-alg[hidden] {
	display: none;
}

.alc .alc-alg {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	font-size: 8.5px;
	font-weight: 700;
	color: #fff;
	letter-spacing: .02em;
	font-family: var(--alc-fuente-cuerpo);
	cursor: default;
	flex: none;
}

.alc img.alc-alg {
	object-fit: contain;
	background: none;
}

.alc .alc-chip .alc-alg {
	width: 22px;
	height: 22px;
}

.alc .alc-badge {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: 2px 9px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .02em;
	color: #fff;
	background: var(--alc-rojo);
	font-family: var(--alc-fuente-cuerpo);
}

.alc .alc-badge.destacado {
	background: var(--alc-azul);
}

.alc .alc-badge.encargo,
.alc .alc-badge.llevar {
	background: var(--alc-texto-2);
}

.alc .alc-badge.solo {
	background: var(--alc-amarillo);
	color: var(--alc-negro);
}

.alc .alc-badge.nuevo {
	background: var(--alc-rojo);
}

.alc .alc-et {
	display: inline-flex;
	align-items: center;
	border-radius: 6px;
	padding: 1px 7px;
	font-size: 11px;
	font-weight: 700;
	color: var(--alc-verde);
	border: 1.5px solid var(--alc-verde);
	background: var(--alc-verde-fondo);
	font-family: var(--alc-fuente-cuerpo);
}

/* --------------------------------------------------------------------------
 * Secciones y platos
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="lista"] .alc-seccion {
	padding-top: 44px;
	scroll-margin-top: 84px;
}

.alc[data-plantilla="lista"] .alc-seccion > h2 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 30px;
	margin: 0 0 20px;
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--alc-texto);
}

.alc[data-plantilla="lista"] .alc-seccion > h2::after {
	content: "";
	flex: 1;
	height: 2px;
	background: var(--alc-negro);
	opacity: .12;
}

.alc[data-tema="oscuro"][data-plantilla="lista"] .alc-seccion > h2::after {
	background: #fff;
	opacity: .12;
}

.alc[data-plantilla="lista"] .alc-plato {
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	overflow: hidden;
	margin-bottom: 22px;
	box-shadow: var(--alc-sombra);
}

.alc[data-plantilla="lista"] .alc-plato-cab {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

.alc[data-plantilla="lista"] .alc-plato-foto {
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, #f9d606 0%, #f2c200 60%, #e6b400 100%);
	position: relative;
	overflow: hidden;
}

.alc[data-plantilla="lista"] .alc-plato-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc[data-plantilla="lista"] .alc-plato-texto {
	padding: 20px 22px 6px;
}

.alc[data-plantilla="lista"] .alc-plato-titulo {
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
}

.alc[data-plantilla="lista"] .alc-plato-titulo h3 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 26px;
	margin: 0;
	line-height: 1.1;
	color: var(--alc-texto);
}

.alc[data-plantilla="lista"] .alc-plato-titulo .precio {
	margin-left: auto;
}

.alc[data-plantilla="lista"] .alc-plato-desc {
	color: var(--alc-texto-2);
	margin: 8px 0 0;
	font-size: 15px;
	max-width: 62ch;
}

.alc[data-plantilla="lista"] .alc-plato-meta {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 10px;
	align-items: center;
}

@media (min-width: 760px) {
	.alc[data-plantilla="lista"] .alc-plato.con-foto .alc-plato-cab {
		grid-template-columns: 300px 1fr;
		align-items: stretch;
	}

	.alc[data-plantilla="lista"] .alc-plato.con-foto .alc-plato-foto {
		aspect-ratio: auto;
		min-height: 200px;
	}

	.alc[data-plantilla="lista"] .alc-plato-texto {
		padding: 24px 26px 8px;
	}
}

/* --------------------------------------------------------------------------
 * Grupos y filas
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="lista"] .alc-grupo {
	padding: 6px 22px 18px;
}

@media (min-width: 760px) {
	.alc[data-plantilla="lista"] .alc-grupo {
		padding: 6px 26px 20px;
	}
}

.alc[data-plantilla="lista"] .alc-grupo + .alc-grupo {
	border-top: 1px dashed var(--alc-linea);
	padding-top: 16px;
}

.alc[data-plantilla="lista"] .alc-grupo h4 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--alc-texto-2);
	margin: 8px 0 6px;
}

.alc[data-plantilla="lista"] .alc-filas {
	list-style: none;
	margin: 0;
	padding: 0;
}

.alc[data-plantilla="lista"] .alc-fila {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 2px 14px;
	padding: 10px 0;
	border-bottom: 1px solid var(--alc-linea);
	align-items: baseline;
}

.alc[data-plantilla="lista"] .alc-fila:last-child {
	border-bottom: none;
}

.alc[data-plantilla="lista"] .alc-fila.con-foto {
	grid-template-columns: 64px 1fr auto;
	align-items: center;
}

.alc[data-plantilla="lista"] .alc-fila-foto {
	width: 64px;
	height: 64px;
	border-radius: var(--alc-radio-s);
	background: linear-gradient(135deg, #f9d606, #e6b400);
	grid-row: span 2;
	overflow: hidden;
}

.alc[data-plantilla="lista"] .alc-fila-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc[data-plantilla="lista"] .alc-fila-nombre {
	font-weight: 600;
	font-size: 16px;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	position: relative;
}

.alc[data-plantilla="lista"] .alc-fila-nombre .txt {
	position: relative;
	background: var(--alc-tarjeta);
	padding-right: 6px;
}

.alc[data-plantilla="lista"] .alc-fila-desc {
	grid-column: 1 / -1;
	color: var(--alc-texto-2);
	font-size: 14px;
	line-height: 1.45;
}

.alc[data-plantilla="lista"] .alc-fila.con-foto .alc-fila-desc {
	grid-column: 2 / -1;
}

.alc[data-plantilla="lista"] .alc-fila-algs {
	display: inline-flex;
	gap: 3px;
	margin-left: 2px;
}

.alc[data-plantilla="lista"] .precio {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 18px;
	white-space: nowrap;
	color: var(--alc-precio);
}

.alc[data-plantilla="lista"] .precio.txt {
	font-family: var(--alc-fuente-cuerpo);
	font-weight: 500;
	font-size: 14px;
	color: var(--alc-texto-2);
	font-style: italic;
}

.alc[data-plantilla="lista"] .precio .mas {
	color: var(--alc-rojo);
	font-size: 14px;
	margin-right: 1px;
}

/* Línea de puntos hasta el precio */

.alc[data-plantilla="lista"]:not(.alc-sin-puntos) .alc-fila:not(.sin-precio) .alc-fila-nombre::after {
	content: "";
	flex: 1;
	min-width: 24px;
	border-bottom: 2px dotted var(--alc-puntos);
	transform: translateY(-4px);
	order: 99;
}

.alc[data-plantilla="lista"] .alc-fila.sin-precio .alc-fila-nombre::before {
	content: "•";
	color: var(--alc-rojo);
	margin-right: 2px;
}

/* Extras compactos */

.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-filas {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-top: 4px;
}

.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-fila {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	border: 1.5px solid var(--alc-tarjeta-borde);
	border-radius: 999px;
	padding: 6px 12px 6px 14px;
	background: var(--alc-fondo-2);
}

.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-fila-nombre {
	font-size: 14px;
	font-weight: 500;
}

.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-fila-nombre .txt {
	background: transparent;
	padding-right: 0;
}

.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-fila-nombre::after {
	display: none;
}

.alc[data-plantilla="lista"] .alc-grupo.incremental .precio {
	font-size: 14px;
}

.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-fila-desc,
.alc[data-plantilla="lista"] .alc-grupo.incremental .alc-fila-foto {
	display: none;
}

/* --------------------------------------------------------------------------
 * Estados de filtro
 * ----------------------------------------------------------------------- */

.alc .alc-ocultas {
	font-size: 13px;
	color: var(--alc-texto-2);
	padding: 8px 0 0;
	font-style: italic;
}

.alc .alc-ocultas:empty {
	display: none;
}

.alc .alc-vacio {
	display: none;
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	padding: 36px 24px;
	text-align: center;
	margin-top: 30px;
}

.alc .alc-vacio.visible {
	display: block;
}

.alc .alc-vacio h3 {
	font-family: var(--alc-fuente-titulos);
	font-size: 24px;
	margin: 0 0 6px;
	color: var(--alc-texto);
}

.alc .alc-vacio p {
	margin: 0;
	color: var(--alc-texto-2);
}

/* --------------------------------------------------------------------------
 * Leyenda
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="lista"] .alc-leyenda {
	margin-top: 56px;
	background: var(--alc-leyenda-fondo);
	color: var(--alc-leyenda-texto);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	padding: 28px 26px;
}

.alc[data-plantilla="lista"] .alc-leyenda h3 {
	font-family: var(--alc-fuente-titulos);
	font-size: 22px;
	margin: 0 0 6px;
	color: var(--alc-amarillo);
}

.alc[data-plantilla="lista"] .alc-leyenda p {
	margin: 0 0 18px;
	color: var(--alc-texto-2);
	font-size: 14px;
	max-width: 70ch;
}

.alc[data-plantilla="lista"] .alc-leyenda ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 10px 16px;
	font-size: 13px;
}

.alc[data-plantilla="lista"] .alc-leyenda li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.alc[data-plantilla="lista"] .alc-leyenda .alc-alg {
	width: 24px;
	height: 24px;
	font-size: 9px;
}

/* --------------------------------------------------------------------------
 * Volver arriba
 * ----------------------------------------------------------------------- */

.alc .alc-arriba {
	position: fixed;
	right: 18px;
	bottom: 18px;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--alc-negro);
	color: var(--alc-acento);
	border: none;
	font-size: 20px;
	display: none;
	align-items: center;
	justify-content: center;
	box-shadow: var(--alc-sombra-flotante);
	z-index: 30;
}

.alc[data-tema="oscuro"] .alc-arriba {
	background: var(--alc-acento);
	color: var(--alc-negro);
}

.alc .alc-arriba.visible {
	display: flex;
}

/* Con el panel o la hoja abiertos estorba. */

.alc.alc-modal .alc-arriba.visible {
	display: none;
}

/* --------------------------------------------------------------------------
 * Móvil
 * ----------------------------------------------------------------------- */

@media (max-width: 600px) {
	.alc[data-plantilla="lista"] {
		padding: 0 14px 60px;
	}

	.alc .alc-superior {
		justify-content: center;
	}

	.alc[data-plantilla="lista"] .alc-plato-texto {
		padding: 16px 16px 4px;
	}

	.alc[data-plantilla="lista"] .alc-grupo {
		padding: 4px 16px 14px;
	}

	.alc[data-plantilla="lista"] .alc-fila-nombre {
		font-size: 15px;
	}

	.alc[data-plantilla="lista"] .alc-plato-titulo h3 {
		font-size: 23px;
	}
}

/* ==========================================================================
 * Plantilla «vitrina»
 *
 * El prototipo 2 afina algunos valores respecto al 1: se sobrescriben aquí
 * como variables para que la página Apariencia siga mandando sobre ellas.
 * ======================================================================= */

.alc[data-plantilla="vitrina"] {
	--alc-fondo-2: #f3f3f3;
	--alc-tarjeta-borde: #e6e6e6;
	--alc-linea: #ececec;
	--alc-radio: 18px;
	--alc-radio-s: 10px;

	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px 90px;
	position: relative;
	font-size: 15px;
}

.alc[data-plantilla="vitrina"][data-tema="oscuro"] {
	--alc-fondo-2: #1c1c1c;
	--alc-tarjeta-borde: #262626;
	--alc-linea: #262626;
}

.alc[data-plantilla="vitrina"] .alc-superior {
	padding: 18px 0 4px;
}

.alc[data-plantilla="vitrina"] .alc-sedes {
	gap: 4px;
	padding: 4px;
}

/* --------------------------------------------------------------------------
 * Cuerpo: lateral pegajoso + rejilla
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .alc-cuerpo {
	display: grid;
	grid-template-columns: 250px 1fr;
	gap: 36px;
	padding: 28px 0 0;
}

.alc[data-plantilla="vitrina"] .alc-lateral {
	position: sticky;
	top: 20px;
	align-self: start;
	display: flex;
	flex-direction: column;
	gap: 22px;
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	padding: 18px 20px;
}

.alc[data-plantilla="vitrina"] .alc-lateral h4,
.alc[data-plantilla="vitrina"] .alc-hoja h4 {
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--alc-texto-2);
	font-family: var(--alc-fuente-cuerpo);
	font-weight: 700;
	margin: 0 0 8px;
}

.alc[data-plantilla="vitrina"] .alc-nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.alc[data-plantilla="vitrina"] .alc-nav a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 12px;
	border-radius: var(--alc-radio-s);
	text-decoration: none;
	color: var(--alc-texto);
	font-family: var(--alc-fuente-titulos);
	font-weight: 600;
	font-size: 16px;
}

.alc[data-plantilla="vitrina"] .alc-nav a .n {
	font-family: var(--alc-fuente-cuerpo);
	font-size: 12px;
	color: var(--alc-texto-2);
	font-weight: 500;
}

.alc[data-plantilla="vitrina"] .alc-nav a.activa {
	background: var(--alc-negro);
	color: var(--alc-acento);
}

.alc[data-plantilla="vitrina"][data-tema="oscuro"] .alc-nav a.activa {
	background: var(--alc-acento);
	color: var(--alc-negro);
}

.alc[data-plantilla="vitrina"] .alc-nav a.activa .n {
	color: inherit;
	opacity: .8;
}

.alc[data-plantilla="vitrina"] .alc-limpiar {
	background: none;
	border: 1.5px solid var(--alc-tarjeta-borde);
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--alc-texto);
	display: none;
	align-self: flex-start;
}

.alc[data-plantilla="vitrina"] .alc-limpiar.visible {
	display: inline-block;
}

/* --------------------------------------------------------------------------
 * Barra móvil
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .alc-movil-barra {
	display: none;
}

/* --------------------------------------------------------------------------
 * Secciones y rejilla
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .alc-seccion {
	scroll-margin-top: 16px;
	margin-bottom: 40px;
}

.alc[data-plantilla="vitrina"] .alc-seccion-cab {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 14px;
}

.alc[data-plantilla="vitrina"] .alc-seccion-cab h2 {
	font-family: var(--alc-fuente-titulos);
	font-size: 30px;
	font-weight: 700;
	margin: 0;
}

.alc[data-plantilla="vitrina"] .alc-seccion-cab .n {
	color: var(--alc-texto-2);
	font-size: 13px;
}

.alc[data-plantilla="vitrina"] .alc-rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(270px, 100%), 1fr));
	gap: 16px;
	align-items: start;
}

/*
 * El mínimo automático de un elemento de rejilla es su tamaño min-content, y
 * eso ensancha la pista por encima del viewport: una descripción larga o la
 * tira de secciones bastaban para sacar la carta de la pantalla.
 */
.alc[data-plantilla="vitrina"] .alc-rejilla > *,
.alc[data-plantilla="vitrina"] .alc-principal,
.alc[data-plantilla="vitrina"] .alc-cuerpo-t {
	min-width: 0;
}

/* --------------------------------------------------------------------------
 * Tarjeta
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .alc-tarjeta {
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	overflow: hidden;
	text-align: left;
	padding: 0;
	color: inherit;
	display: flex;
	flex-direction: column;
	transition: transform .18s, box-shadow .18s;
	cursor: pointer;
	width: 100%;
	position: relative;
}

.alc[data-plantilla="vitrina"] .alc-tarjeta:hover {
	transform: translateY(-3px);
	box-shadow: var(--alc-sombra-tarjeta);
}

.alc[data-plantilla="vitrina"] .alc-tarjeta:has(.alc-abrir:focus-visible) {
	outline: 3px solid var(--alc-acento);
	outline-offset: 2px;
}

.alc[data-plantilla="vitrina"] .alc-abrir {
	all: unset;
	cursor: pointer;
}

.alc[data-plantilla="vitrina"] .alc-abrir::after {
	content: "";
	position: absolute;
	inset: 0;
}

.alc[data-plantilla="vitrina"] .alc-foto {
	aspect-ratio: 4 / 3;
	min-height: 0;
	min-width: 0;
	overflow: hidden;
	background: linear-gradient(135deg, var(--alc-amarillo), var(--alc-amarillo-2));
	position: relative;
}

.alc[data-plantilla="vitrina"] .alc-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc[data-plantilla="vitrina"] .alc-foto .badges {
	position: absolute;
	left: 10px;
	top: 10px;
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
}

.alc[data-plantilla="vitrina"] .alc-tarjeta.sin-foto .alc-foto {
	aspect-ratio: auto;
	background: none;
	border-top: 6px solid var(--alc-acento);
	height: auto;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t .badges {
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t {
	padding: 14px 16px 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t h3 {
	font-family: var(--alc-fuente-titulos);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.1;
	margin: 0;
	display: flex;
	justify-content: space-between;
	gap: 10px;
	align-items: baseline;
	/* Sin sitio para los dos, el precio baja de línea antes que partir el nombre. */
	flex-wrap: wrap;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t .desc {
	color: var(--alc-texto-2);
	font-size: 13.5px;
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t .pie {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding-top: 8px;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t .opciones {
	font-size: 12.5px;
	color: var(--alc-texto-2);
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	flex-wrap: wrap;
}

.alc[data-plantilla="vitrina"] .alc-cuerpo-t .algs {
	display: flex;
	gap: 3px;
	flex: none;
}

.alc[data-plantilla="vitrina"] .alc-alg.mas {
	background: var(--alc-alg-mas);
}

/* --------------------------------------------------------------------------
 * Precio
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .precio {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 18px;
	white-space: nowrap;
	color: var(--alc-precio);
}

.alc[data-plantilla="vitrina"] .precio small {
	font-family: var(--alc-fuente-cuerpo);
	font-weight: 500;
	font-size: 11px;
	color: var(--alc-texto-2);
	margin-right: 4px;
}

.alc[data-plantilla="vitrina"] .precio.txt {
	font-family: var(--alc-fuente-cuerpo);
	font-size: 13px;
	font-weight: 600;
	color: var(--alc-texto-2);
}

/* --------------------------------------------------------------------------
 * Velo, panel de detalle y hoja
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .alc-velo {
	position: fixed;
	inset: 0;
	background: var(--alc-velo);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s;
	z-index: 50;
}

.alc[data-plantilla="vitrina"] .alc-velo.abierto {
	opacity: 1;
	pointer-events: auto;
}

.alc[data-plantilla="vitrina"] .alc-panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(520px, 100%);
	background: var(--alc-tarjeta);
	z-index: 60;
	transform: translateX(100%);
	visibility: hidden;
	transition: transform .32s cubic-bezier(.4, 0, .2, 1), visibility 0s linear .32s;
	display: flex;
	flex-direction: column;
	box-shadow: var(--alc-sombra-panel);
}

.alc[data-plantilla="vitrina"] .alc-panel.abierto {
	transform: none;
	visibility: visible;
	transition: transform .32s cubic-bezier(.4, 0, .2, 1), visibility 0s;
}

.alc[data-plantilla="vitrina"] .alc-panel-foto {
	aspect-ratio: 16 / 9;
	min-height: 0;
	overflow: hidden;
	background: linear-gradient(135deg, var(--alc-amarillo), var(--alc-amarillo-2));
	position: relative;
	flex: none;
}

.alc[data-plantilla="vitrina"] .alc-panel-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc[data-plantilla="vitrina"] .alc-cerrar {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: var(--alc-negro);
	color: var(--alc-sobre-negro);
	font-size: 20px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .45);
}

/*
 * Cabecera de los platos sin foto. Se pinta siempre y se esconde cuando hay
 * foto delante: así el interruptor «Mostrar fotos de plato» de Apariencia la
 * saca sin volver a pedir el HTML.
 */
.alc[data-plantilla="vitrina"] .alc-panel-cab {
	flex: none;
	min-height: 64px;
	display: flex;
	align-items: center;
	background: var(--alc-tarjeta);
	border-bottom: 1px solid var(--alc-tarjeta-borde);
	padding: 12px 64px 12px 24px;
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 19px;
	line-height: 1.15;
}

.alc[data-plantilla="vitrina"] .alc-panel-foto + .alc-panel-cab {
	display: none;
}

.alc[data-plantilla="vitrina"].alc-sin-fotos-plato .alc-panel-foto + .alc-panel-cab {
	display: flex;
}

.alc[data-plantilla="vitrina"] .alc-panel-contenido {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.alc[data-plantilla="vitrina"] .alc-panel-cuerpo {
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 22px 24px 40px;
	flex: 1;
	min-height: 0;
}

.alc[data-plantilla="vitrina"] .alc-panel-cuerpo h2 {
	font-family: var(--alc-fuente-titulos);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.05;
	margin: 0;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	align-items: baseline;
	flex-wrap: wrap;
}

.alc[data-plantilla="vitrina"] .alc-panel-cuerpo .desc {
	color: var(--alc-texto-2);
	margin: 8px 0 10px;
}

.alc[data-plantilla="vitrina"] .alc-panel-meta {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 6px;
}

.alc[data-plantilla="vitrina"] .alc-panel-meta:empty {
	display: none;
}

/* --------------------------------------------------------------------------
 * Grupos y filas del panel
 * ----------------------------------------------------------------------- */

.alc[data-plantilla="vitrina"] .alc-grupo {
	margin-top: 20px;
}

.alc[data-plantilla="vitrina"] .alc-grupo h4 {
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--alc-texto-2);
	font-family: var(--alc-fuente-cuerpo);
	font-weight: 700;
	margin: 0 0 4px;
}

.alc[data-plantilla="vitrina"] .alc-filas {
	list-style: none;
	margin: 0;
	padding: 0;
}

.alc[data-plantilla="vitrina"] .alc-fila {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 1px 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--alc-linea);
	align-items: baseline;
}

.alc[data-plantilla="vitrina"] .alc-fila:last-child {
	border-bottom: none;
}

.alc[data-plantilla="vitrina"] .alc-fila.con-foto {
	grid-template-columns: 56px 1fr auto;
	align-items: center;
}

.alc[data-plantilla="vitrina"] .alc-fila-foto {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--alc-amarillo), var(--alc-amarillo-2));
	grid-row: span 2;
}

.alc[data-plantilla="vitrina"] .alc-fila-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc[data-plantilla="vitrina"] .alc-fila-nombre {
	font-weight: 600;
	font-size: 15px;
	display: flex;
	gap: 6px;
	align-items: center;
	flex-wrap: wrap;
}

.alc[data-plantilla="vitrina"] .alc-fila-desc {
	grid-column: 1 / -1;
	color: var(--alc-texto-2);
	font-size: 13px;
}

.alc[data-plantilla="vitrina"] .alc-fila.con-foto .alc-fila-desc {
	grid-column: 2 / -1;
}

.alc[data-plantilla="vitrina"] .alc-fila-algs {
	display: inline-flex;
	gap: 3px;
}

.alc[data-plantilla="vitrina"] .alc-fila.sin-precio .alc-fila-nombre::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--alc-rojo);
	flex: none;
}

.alc[data-plantilla="vitrina"] .alc-grupo.incremental .alc-filas {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding-top: 4px;
}

.alc[data-plantilla="vitrina"] .alc-grupo.incremental .alc-fila {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1.5px solid var(--alc-tarjeta-borde);
	border-radius: 999px;
	padding: 5px 11px 5px 12px;
	background: var(--alc-fondo-2);
	font-size: 13px;
}

.alc[data-plantilla="vitrina"] .alc-grupo.incremental .alc-fila-desc,
.alc[data-plantilla="vitrina"] .alc-grupo.incremental .alc-fila-foto {
	display: none;
}

.alc[data-plantilla="vitrina"] .alc-grupo.incremental .precio {
	font-size: 13px;
}

.alc[data-plantilla="vitrina"] .alc-grupo.incremental .precio .mas {
	color: var(--alc-rojo);
	margin-right: 1px;
}

.alc[data-plantilla="vitrina"] .alc-panel-leyenda {
	margin-top: 26px;
	padding-top: 16px;
	border-top: 1px solid var(--alc-linea);
	font-size: 12px;
	color: var(--alc-texto-2);
}

.alc[data-plantilla="vitrina"] .alc-panel-leyenda .par {
	display: inline-block;
	margin: 0 10px 6px 0;
}

.alc[data-plantilla="vitrina"] .alc-panel-leyenda .alc-alg {
	width: 18px;
	height: 18px;
	font-size: 8px;
	margin-right: 4px;
	vertical-align: middle;
}

/* La hoja de filtros solo existe en móvil. */

.alc[data-plantilla="vitrina"] .alc-hoja {
	display: none;
}

/* --------------------------------------------------------------------------
 * Móvil
 * ----------------------------------------------------------------------- */

@media (max-width: 860px) {
	.alc[data-plantilla="vitrina"] .alc-superior {
		justify-content: center;
	}

	.alc[data-plantilla="vitrina"] .alc-cuerpo {
		grid-template-columns: 1fr;
		gap: 0;
		padding-top: 0;
	}

	.alc[data-plantilla="vitrina"] .alc-lateral {
		display: none;
	}

	.alc[data-plantilla="vitrina"] .alc-movil-barra {
		display: flex;
		position: sticky;
		top: 0;
		z-index: 30;
		background: var(--alc-tarjeta);
		border: 1px solid var(--alc-tarjeta-borde);
		border-radius: var(--alc-radio);
		padding: 10px 12px;
		gap: 8px;
		align-items: center;
		margin-bottom: 18px;
	}

	.alc[data-plantilla="vitrina"] .alc-movil-secciones {
		display: flex;
		gap: 6px;
		overflow-x: auto;
		scrollbar-width: none;
		flex: 1;
	}

	.alc[data-plantilla="vitrina"] .alc-movil-secciones::-webkit-scrollbar {
		display: none;
	}

	.alc[data-plantilla="vitrina"] .alc-movil-secciones a {
		flex: none;
		text-decoration: none;
		color: var(--alc-texto);
		background: var(--alc-fondo-2);
		padding: 8px 14px;
		border-radius: 999px;
		font-family: var(--alc-fuente-titulos);
		font-weight: 600;
		font-size: 14px;
	}

	.alc[data-plantilla="vitrina"] .alc-movil-secciones a.activa {
		background: var(--alc-negro);
		color: var(--alc-acento);
	}

	.alc[data-plantilla="vitrina"][data-tema="oscuro"] .alc-movil-secciones a.activa {
		background: var(--alc-acento);
		color: var(--alc-negro);
	}

	.alc[data-plantilla="vitrina"] .alc-movil-filtros {
		flex: none;
		border: 2px solid var(--alc-negro);
		background: var(--alc-tarjeta);
		color: var(--alc-texto);
		border-radius: 999px;
		padding: 7px 12px;
		font-weight: 600;
		font-size: 13px;
		display: flex;
		gap: 6px;
		align-items: center;
	}

	.alc[data-plantilla="vitrina"][data-tema="oscuro"] .alc-movil-filtros {
		border-color: var(--alc-tarjeta-borde);
	}

	.alc[data-plantilla="vitrina"] .alc-movil-filtros .n {
		background: var(--alc-rojo);
		color: var(--alc-sobre-negro);
		font-size: 10px;
		min-width: 18px;
		height: 18px;
		border-radius: 9px;
		display: none;
		align-items: center;
		justify-content: center;
	}

	.alc[data-plantilla="vitrina"] .alc-movil-filtros.con .n {
		display: inline-flex;
	}

	.alc[data-plantilla="vitrina"] .alc-rejilla {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.alc[data-plantilla="vitrina"] .alc-tarjeta {
		flex-direction: row;
		align-items: stretch;
	}

	.alc[data-plantilla="vitrina"] .alc-foto {
		width: 118px;
		aspect-ratio: auto;
		flex: none;
	}

	.alc[data-plantilla="vitrina"] .alc-foto .badges {
		left: 8px;
		top: 8px;
	}

	.alc[data-plantilla="vitrina"] .alc-tarjeta.sin-foto .alc-foto {
		display: none;
	}

	.alc[data-plantilla="vitrina"] .alc-tarjeta.sin-foto .alc-cuerpo-t {
		padding-top: 14px;
		border-top: 6px solid var(--alc-acento);
	}

	.alc[data-plantilla="vitrina"] .alc-cuerpo-t {
		padding: 12px 14px;
	}

	.alc[data-plantilla="vitrina"] .alc-cuerpo-t h3 {
		font-size: 18px;
	}

	.alc[data-plantilla="vitrina"] .alc-cuerpo-t .desc {
		font-size: 13px;
	}

	.alc[data-plantilla="vitrina"] .alc-panel {
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		/* vh mide el viewport grande: con la barra de iOS visible, 92vh se sale. */
		max-height: 92vh;
		max-height: 92dvh;
		border-radius: 22px 22px 0 0;
		transform: translateY(100%);
	}

	.alc[data-plantilla="vitrina"] .alc-panel-foto {
		aspect-ratio: 16 / 8;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--alc-tarjeta);
		border-radius: 22px 22px 0 0;
		z-index: 60;
		transform: translateY(100%);
		visibility: hidden;
		transition: transform .3s, visibility 0s linear .3s;
		padding: 18px 20px 30px;
		max-height: 85vh;
		max-height: 85dvh;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja.abierta {
		transform: none;
		visibility: visible;
		transition: transform .3s, visibility 0s;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja h4 {
		margin: 14px 0 6px;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja .alc-chip {
		font-size: 14px;
		padding: 8px 14px 8px 9px;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja-cab {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja-cab h3 {
		font-family: var(--alc-fuente-titulos);
		font-size: 22px;
		margin: 0;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja .alc-limpiar {
		display: inline-block;
	}

	.alc[data-plantilla="vitrina"] .alc-hoja-aplicar {
		width: 100%;
		margin-top: 18px;
		background: var(--alc-negro);
		color: var(--alc-acento);
		border: none;
		border-radius: 999px;
		padding: 14px;
		font-family: var(--alc-fuente-titulos);
		font-weight: 700;
		font-size: 16px;
	}

	.alc[data-plantilla="vitrina"][data-tema="oscuro"] .alc-hoja-aplicar {
		background: var(--alc-acento);
		color: var(--alc-negro);
	}
}

/* ==========================================================================
 * Interruptores de la página Apariencia
 *
 * Se resuelven con clases en el contenedor en vez de dejar de pintar el
 * marcado, para que la vista previa pueda encenderlos y apagarlos en vivo sin
 * volver a pedir el HTML.
 * ======================================================================= */

.alc.alc-sin-fotos-plato .alc-plato-foto,
.alc.alc-sin-fotos-plato .alc-panel-foto,
.alc.alc-sin-fotos-plato .alc-tarjeta .alc-foto img {
	display: none;
}

/* Sin foto, la tarjeta de vitrina se comporta como las que nunca la tuvieron. */

.alc[data-plantilla="vitrina"].alc-sin-fotos-plato .alc-foto {
	aspect-ratio: auto;
	background: none;
	border-top: 6px solid var(--alc-acento);
	height: auto;
}

.alc[data-plantilla="lista"].alc-sin-fotos-plato .alc-plato.con-foto .alc-plato-cab {
	grid-template-columns: 1fr;
}

.alc.alc-sin-fotos-fila .alc-fila-foto {
	display: none;
}

.alc.alc-sin-fotos-fila .alc-fila.con-foto {
	grid-template-columns: 1fr auto;
}

.alc.alc-sin-fotos-fila .alc-fila.con-foto .alc-fila-desc {
	grid-column: 1 / -1;
}

.alc.alc-sin-desc-fila .alc-fila-desc {
	display: none;
}

/* ==========================================================================
 * Página de sedes — [alacarta_ubicaciones]
 * ======================================================================= */

.alc-ub {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 20px 80px;
	color: var(--alc-texto);
	font-family: var(--alc-fuente-cuerpo);
	font-size: var(--alc-tamano-base);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.alc-ub *,
.alc-ub *::before,
.alc-ub *::after {
	box-sizing: border-box;
}

.alc-ub a {
	color: inherit;
}

.alc-ub button {
	font: inherit;
	cursor: pointer;
}

.alc-ub-superior {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 18px 0 22px;
	flex-wrap: wrap;
}

.alc-ub-superior h2 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: clamp(30px, 5vw, 44px);
	margin: 0;
	letter-spacing: -.01em;
}

.alc-ub-superior h2 small {
	display: block;
	font-family: var(--alc-fuente-cuerpo);
	font-weight: 500;
	font-size: 14px;
	color: var(--alc-texto-2);
	letter-spacing: 0;
	margin-top: 2px;
}

/* --------------------------------------------------------------------------
 * Estado
 * ----------------------------------------------------------------------- */

.alc-ub-estado {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	font-weight: 600;
	border-radius: 999px;
	padding: 5px 11px 5px 9px;
	background: var(--alc-tarjeta);
	color: var(--alc-texto);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
}

.alc-ub-estado .pt {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--alc-abierto);
	flex: none;
}

.alc-ub-estado.cerrado .pt {
	background: var(--alc-cerrado);
}

.alc-ub-estado .s {
	font-weight: 500;
	color: var(--alc-texto-2);
}

/* --------------------------------------------------------------------------
 * Vistas y rejilla
 * ----------------------------------------------------------------------- */

.alc-ub-vista {
	display: none;
}

.alc-ub-vista.activa {
	display: block;
}

.alc-ub-vista.entrando {
	animation: alc-ub-entra .4s cubic-bezier(.4, 0, .2, 1) both;
}

@keyframes alc-ub-entra {
	from {
		opacity: 0;
		transform: translateY(14px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

.alc-ub-rejilla {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

/* --------------------------------------------------------------------------
 * Tarjeta
 * ----------------------------------------------------------------------- */

.alc-ub-card {
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: 22px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
	transition: transform .2s, box-shadow .2s;
}

.alc-ub-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 30px rgba(0, 0, 0, .1);
}

.alc-ub-card:has(.alc-ub-abrir:focus-visible) {
	outline: 3px solid var(--alc-acento);
	outline-offset: 2px;
}

.alc-ub-card.cerrada .alc-ub-card-foto {
	filter: saturate(.6);
}

.alc-ub-card-foto {
	aspect-ratio: 4 / 3;
	position: relative;
	overflow: hidden;
	min-height: 0;
}

.alc-ub-card-foto.sin-foto {
	background: linear-gradient(135deg, var(--alc-amarillo), var(--alc-amarillo-2));
}

.alc-ub-card-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc-ub-card-foto .alc-ub-estado {
	position: absolute;
	left: 12px;
	top: 12px;
}

.alc-ub-card-foto .zona {
	position: absolute;
	right: 12px;
	top: 12px;
	background: var(--alc-negro);
	color: var(--alc-acento);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	border-radius: 999px;
	padding: 5px 10px;
}

.alc-ub-card-cuerpo {
	padding: 16px 18px 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}

.alc-ub-card h3 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 24px;
	line-height: 1.05;
	margin: 0;
	display: flex;
	justify-content: space-between;
	gap: 10px;
	align-items: baseline;
}

/* La tarjeta entera abre el detalle, pero quien lo hace es este botón. */

.alc-ub-abrir {
	all: unset;
	cursor: pointer;
}

.alc-ub-abrir::after {
	content: "";
	position: absolute;
	inset: 0;
}

.alc-ub-card .dir {
	margin: 0;
	font-size: 14px;
}

.alc-ub-card .dir span {
	color: var(--alc-texto-2);
}

.alc-ub-card .hoy {
	font-size: 13px;
	color: var(--alc-texto-2);
	margin: 2px 0 0;
}

.alc-ub-card .hoy b {
	color: var(--alc-texto);
	font-weight: 600;
}

.alc-ub-serv {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin-top: 6px;
}

.alc-ub-serv span {
	font-size: 11.5px;
	font-weight: 600;
	border: 1.5px solid var(--alc-tarjeta-borde);
	background: var(--alc-fondo-2);
	border-radius: 999px;
	padding: 3px 9px;
}

.alc-ub-card-acc {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 8px;
	margin-top: 14px;
	position: relative;
	z-index: 1;
}

/* --------------------------------------------------------------------------
 * Botones
 * ----------------------------------------------------------------------- */

.alc-ub-boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	border: 2px solid var(--alc-negro);
	border-radius: 100px;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	font-family: var(--alc-fuente-cuerpo);
	background: var(--alc-tarjeta);
	color: var(--alc-texto);
	transition: transform .2s;
}

.alc-ub-boton:hover {
	transform: translateY(-2px);
}

.alc-ub-boton.principal {
	background: var(--alc-negro);
	color: var(--alc-sobre-negro);
}

.alc-ub-boton.icono {
	width: 44px;
	padding: 0;
}

.alc-ub[data-tema="oscuro"] .alc-ub-boton {
	border-color: var(--alc-tarjeta-borde);
}

.alc-ub[data-tema="oscuro"] .alc-ub-boton.principal {
	background: var(--alc-acento);
	color: var(--alc-negro);
	border-color: var(--alc-acento);
}

.alc-ub-boton svg {
	flex: none;
}

/* --------------------------------------------------------------------------
 * Detalle
 * ----------------------------------------------------------------------- */

.alc-ub-volver {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 2px solid var(--alc-negro);
	background: var(--alc-tarjeta);
	color: var(--alc-texto);
	border-radius: 100px;
	padding: 9px 16px 9px 12px;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 18px;
}

.alc-ub[data-tema="oscuro"] .alc-ub-volver {
	border-color: var(--alc-tarjeta-borde);
}

.alc-ub-det {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 22px;
	align-items: start;
}

.alc-ub-det-foto {
	border-radius: 22px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	position: relative;
	min-height: 0;
}

.alc-ub-det-foto.sin-foto {
	background: linear-gradient(135deg, var(--alc-amarillo), var(--alc-amarillo-2));
}

.alc-ub-det-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.alc-ub-det-foto .alc-ub-estado {
	position: absolute;
	left: 14px;
	top: 14px;
}

.alc-ub-det-cab {
	padding: 22px 0 0;
}

.alc-ub-det-cab .zona {
	font-size: 14px;
	font-weight: 600;
	color: var(--alc-texto-2);
}

.alc-ub-det-cab h3 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 40px;
	line-height: 1;
	margin: 2px 0 10px;
}

.alc-ub-det-cab p {
	margin: 0 0 10px;
	font-size: 16px;
	max-width: 60ch;
}

.alc-ub-det-cab .alc-ub-serv {
	margin-top: 10px;
}

.alc-ub-lateral {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.alc-ub-ficha {
	background: var(--alc-tarjeta);
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: 20px;
	padding: 18px 20px;
}

.alc-ub-ficha h4 {
	font-family: var(--alc-fuente-cuerpo);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--alc-texto-2);
	margin: 0 0 8px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.alc-ub-ficha h4 .alc-ub-estado {
	text-transform: none;
	letter-spacing: 0;
	font-size: 12px;
	box-shadow: none;
	border: 1px solid var(--alc-tarjeta-borde);
}

.alc-ub-ficha p {
	margin: 0 0 3px;
}

.alc-ub-ficha .alc-ub-secundario {
	color: var(--alc-texto-2);
}

.alc-ub-ficha .dos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-top: 12px;
}

.alc-ub-ficha .alc-ub-boton {
	width: 100%;
}

.alc-ub-wa {
	margin-top: 8px;
}

.alc-ub-dia {
	display: grid;
	grid-template-columns: 118px 1fr;
	padding: 8px 0;
	border-bottom: 1px solid var(--alc-linea);
	align-items: center;
	font-size: 14px;
}

.alc-ub-dia:last-child {
	border-bottom: none;
}

.alc-ub-dia .d {
	font-weight: 600;
}

.alc-ub-dia .t {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.alc-ub-dia .t span {
	background: var(--alc-fondo-2);
	border-radius: 999px;
	padding: 2px 10px;
	font-size: 13px;
}

.alc-ub-dia .t .cerrado {
	background: transparent;
	color: var(--alc-texto-2);
	font-style: italic;
	padding-left: 0;
}

.alc-ub-dia.hoy {
	background: var(--alc-acento);
	color: var(--alc-negro);
	margin: 0 -20px;
	padding: 8px 20px;
}

.alc-ub-dia.hoy .t span {
	background: rgba(0, 0, 0, .1);
}

.alc-ub-dia.hoy .d::after {
	content: attr(data-hoy);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	background: var(--alc-negro);
	color: var(--alc-acento);
	border-radius: 999px;
	padding: 2px 6px;
	margin-left: 6px;
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
 * Carta dentro del detalle
 * ----------------------------------------------------------------------- */

/*
 * La carta empieza plegada, pero su marcado se emite siempre: se indexa y la
 * caché por partes sigue sirviendo la misma entrada que /carta/.
 */
.alc-ub-carta.plegada {
	display: none;
}

.alc-ub-carta {
	margin-top: 34px;
}

.alc-ub-carta.entrando {
	animation: alc-ub-entra .4s cubic-bezier(.4, 0, .2, 1) both;
}

.alc-ub-invita {
	margin-top: 28px;
	padding: 22px 24px;
	border: 1px solid var(--alc-tarjeta-borde);
	border-radius: var(--alc-radio);
	background: var(--alc-tarjeta);
	text-align: center;
}

.alc-ub-invita h3 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 26px;
	margin: 0;
}

.alc-ub-invita p {
	margin: 4px 0 16px;
	color: var(--alc-texto-2);
	font-size: 15px;
}

.alc-ub-invita .alc-ub-boton {
	display: inline-flex;
}

.alc-ub-carta-cab {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin-bottom: 6px;
	flex-wrap: wrap;
}

.alc-ub-carta-cab h3 {
	font-family: var(--alc-fuente-titulos);
	font-weight: 700;
	font-size: 30px;
	margin: 0;
}

.alc-ub-carta-cab small {
	color: var(--alc-texto-2);
	font-size: 14px;
}

.alc-ub-carta .alc {
	padding: 0;
	max-width: none;
}

.alc-ub-carta .alc-barra {
	top: 0;
}

.alc-ub-aviso {
	margin: 14px 0 0;
	padding: 10px 14px;
	border-radius: var(--alc-radio-s);
	background: var(--alc-fondo-2);
	color: var(--alc-texto-2);
	font-size: 14px;
}

/* --------------------------------------------------------------------------
 * Móvil
 * ----------------------------------------------------------------------- */

@media (max-width: 900px) {
	.alc-ub-rejilla {
		grid-template-columns: 1fr 1fr;
	}

	.alc-ub-det {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.alc-ub {
		padding: 0 14px 60px;
	}

	.alc-ub-rejilla {
		grid-template-columns: 1fr;
	}

	.alc-ub-card-foto {
		aspect-ratio: 16 / 9;
	}

	.alc-ub-det-cab h3 {
		font-size: 32px;
	}

	.alc-ub-superior h2 small {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.alc-ub-vista.entrando,
	.alc-ub-carta.entrando {
		animation: none;
	}

	.alc-ub-card,
	.alc-ub-boton {
		transition: none;
	}
}

/* ==========================================================================
 * Componente de sedes de la home — [alacarta_sedes]
 *
 * Réplica del componente del cliente con las clases prefijadas y los colores
 * fijos sobre variables. No declara tipografía a propósito: el componente vive
 * en la home y hereda la del tema, igual que el original.
 * ======================================================================= */

.alc-ubs {
	--alc-ubs-panel: #f0e6a8;
	--alc-ubs-direccion: #444444;
	/* El componente usa negro puro; la carta usa el suyo, algo más suave. */
	--alc-ubs-negro: #000000;

	/*
	 * El texto corrido del componente hereda la tipografía del tema, como el
	 * original: «inherit» en una custom property la deja sin valor útil, el
	 * var() de font-family falla y la fuente se hereda. La de títulos sí sale
	 * de Apariencia, que es donde se elige la fuente de la marca.
	 */
	--alc-fuente-cuerpo: inherit;

	width: 100%;
}

.alc-ubs * {
	box-sizing: border-box;
}

.alc-ubs-tabs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-bottom: 18px;
}

.alc-ubs-item {
	min-width: 0;
}

.alc-ubs-tab {
	width: 100%;
	appearance: none;
	border: 2px solid var(--alc-ubs-negro);
	background: transparent;
	color: var(--alc-ubs-negro);
	border-radius: 22px;
	padding: 18px 20px;
	text-align: left;
	cursor: pointer;
	position: relative;
	font: inherit;
	transition: background-color .25s ease, color .25s ease, transform .25s ease, border-color .25s ease;
}

.alc-ubs-tab-zona {
	display: block;
	opacity: .55;
	margin-bottom: 4px;
	font-family: var(--alc-fuente-cuerpo);
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.alc-ubs-tab-nombre {
	display: block;
	font-family: var(--alc-fuente-titulos);
	font-size: 28px;
	font-weight: 600;
	line-height: 1;
}

.alc-ubs-tab-icono {
	display: none;
}

.alc-ubs-item-activo .alc-ubs-tab {
	background: var(--alc-ubs-negro);
	color: var(--alc-tarjeta);
	transform: translateY(-4px);
}

.alc-ubs-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
	align-items: center;
	overflow: visible;
	background: transparent;
	min-height: auto;
	position: relative;
}

.alc-ubs-imagen-wrap {
	overflow: hidden;
}

.alc-ubs-imagen-wrap.sin-foto {
	background: linear-gradient(135deg, var(--alc-amarillo), var(--alc-amarillo-2));
}

.alc-ubs-imagen-wrap-desktop {
	min-height: auto;
	aspect-ratio: 3 / 2;
	position: relative;
	z-index: 2;
	border-radius: 20px;
	overflow: hidden;
}

.alc-ubs-imagen {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.alc-ubs-info {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.alc-ubs-info-desktop {
	background: var(--alc-ubs-panel);
	padding: 48px 48px 48px 84px;
	margin-left: -36px;
	min-height: calc(100% - 40px);
	border-radius: 0 20px 20px 0;
	position: relative;
	z-index: 1;
	color: var(--alc-ubs-negro);
}

.alc-ubs-zona {
	margin-bottom: 8px;
	font-family: var(--alc-fuente-cuerpo);
	font-size: 13px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: .10em;
	text-transform: uppercase;
	color: var(--alc-rojo);
}

.alc-ubs-nombre {
	font-family: var(--alc-fuente-titulos);
	font-size: 42px;
	font-weight: 600;
	line-height: .95;
	color: var(--alc-azul);
}

.alc-ubs-direccion {
	color: var(--alc-ubs-direccion);
}

.alc-ubs-acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.alc-ubs-boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 18px;
	border: 2px solid var(--alc-ubs-negro);
	border-radius: 100px;
	text-decoration: none;
	font-family: var(--alc-fuente-titulos);
	font-size: 20px;
	font-weight: 600;
	text-align: center;
	color: var(--alc-ubs-negro);
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.alc-ubs-boton:hover {
	transform: translateY(-2px);
}

.alc-ubs-boton-principal {
	background: var(--alc-ubs-negro);
	color: var(--alc-tarjeta);
}

.alc-ubs-boton-secundario {
	background: var(--alc-tarjeta);
	color: var(--alc-ubs-negro);
}

.alc-ubs-mobile {
	display: none;
}

.alc-ubs-aviso {
	margin: 12px 0 0;
	padding: 10px 14px;
	border-left: 4px solid var(--alc-amarillo);
	background: var(--alc-fondo-2);
	font-size: 13px;
	color: var(--alc-texto-2);
}

/* --------------------------------------------------------------------------
 * Transiciones del panel
 * ----------------------------------------------------------------------- */

.alc-ubs-imagen-desktop {
	object-position: center center;
	transition: opacity .28s ease, transform .45s cubic-bezier(.4, 0, .2, 1);
}

.alc-ubs-info-desktop {
	transition: opacity .25s ease, transform .35s cubic-bezier(.4, 0, .2, 1);
}

.alc-ubs-panel.alc-ubs-saliendo .alc-ubs-imagen-desktop {
	opacity: 0;
	transform: scale(1.035);
}

.alc-ubs-panel.alc-ubs-saliendo .alc-ubs-info-desktop {
	opacity: 0;
	transform: translateX(22px);
}

.alc-ubs-panel.alc-ubs-entrando .alc-ubs-imagen-desktop {
	animation: alc-ubs-imagen-entrada .48s cubic-bezier(.4, 0, .2, 1) both;
}

.alc-ubs-panel.alc-ubs-entrando .alc-ubs-info-desktop {
	animation: alc-ubs-info-entrada .42s .08s cubic-bezier(.4, 0, .2, 1) both;
}

@keyframes alc-ubs-imagen-entrada {
	from {
		opacity: 0;
		transform: scale(.975);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes alc-ubs-info-entrada {
	from {
		opacity: 0;
		transform: translateX(22px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* --------------------------------------------------------------------------
 * Acordeón de móvil
 * ----------------------------------------------------------------------- */

@media (max-width: 800px) {
	.alc-ubs-tabs {
		display: flex;
		flex-direction: column;
		gap: 10px;
		margin-bottom: 0;
	}

	.alc-ubs-item {
		width: 100%;
	}

	.alc-ubs-tab {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		padding: 18px;
		border-radius: 18px;
	}

	.alc-ubs-tab-zona {
		grid-column: 1;
	}

	.alc-ubs-tab-nombre {
		grid-column: 1;
	}

	.alc-ubs-tab-icono {
		display: flex;
		grid-column: 2;
		grid-row: 1 / 3;
		align-items: center;
		justify-content: center;
		width: 38px;
		height: 38px;
		border-radius: 50%;
		background: var(--alc-ubs-negro);
		color: var(--alc-tarjeta);
		transition: background-color .25s ease, color .25s ease, transform .25s ease;
	}

	.alc-ubs-item-activo .alc-ubs-tab {
		transform: none;
		background: var(--alc-ubs-negro);
		color: var(--alc-tarjeta);
		border-radius: 18px 18px 0 0;
	}

	.alc-ubs-item-activo .alc-ubs-tab-icono {
		background: var(--alc-amarillo);
		color: var(--alc-ubs-negro);
		transform: rotate(45deg);
	}

	.alc-ubs-panel {
		display: none;
	}

	.alc-ubs-mobile {
		display: grid;
		grid-template-rows: 0fr;
		overflow: hidden;
		background: var(--alc-tarjeta);
		border-radius: 0 0 18px 18px;
		transition: grid-template-rows .4s cubic-bezier(.4, 0, .2, 1);
	}

	.alc-ubs-mobile-activo {
		grid-template-rows: 1fr;
	}

	.alc-ubs-mobile-inner {
		min-height: 0;
		overflow: hidden;
		opacity: 0;
		transform: translateY(-12px);
		transition: opacity .3s ease, transform .4s cubic-bezier(.4, 0, .2, 1);
	}

	.alc-ubs-mobile-activo .alc-ubs-mobile-inner {
		opacity: 1;
		transform: translateY(0);
		transition-delay: .08s;
	}

	.alc-ubs-mobile .alc-ubs-imagen-wrap {
		height: 240px;
	}

	.alc-ubs-mobile .alc-ubs-imagen {
		object-position: center center;
	}

	.alc-ubs-mobile .alc-ubs-info {
		padding: 24px 22px 26px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.alc-ubs-tab,
	.alc-ubs-boton,
	.alc-ubs-mobile,
	.alc-ubs-mobile-inner,
	.alc-ubs-imagen-desktop,
	.alc-ubs-info-desktop {
		transition: none;
	}

	.alc-ubs-panel.alc-ubs-entrando .alc-ubs-imagen-desktop,
	.alc-ubs-panel.alc-ubs-entrando .alc-ubs-info-desktop {
		animation: none;
	}
}

/* ==========================================================================
 * Ocultado
 *
 * Va al final y con !important a propósito: tiene que ganar a cualquier regla
 * de display de las plantillas —la más específica es la píldora de extras de
 * vitrina, con 0,0,4,0— y también al CSS de constructores como Oxygen, que
 * usa selectores tipo :is(li, div._important){display:list-item}.
 * ======================================================================= */

.alc .alc-fila.oculta,
.alc .alc-plato.oculto,
.alc .alc-seccion.oculta,
.alc .alc-grupo.oculto,
.alc .alc-tarjeta.oculta {
	display: none !important;
}
