.lib {
	--lib-icon-base: block;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	text-align: center;
	text-decoration: none;
	color: inherit;
	box-sizing: border-box;
	width: 100%;
	cursor: default;
	transition: background-color .3s ease, border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

a.lib {
	cursor: pointer;
}

a.lib:hover,
a.lib:focus {
	text-decoration: none;
	color: inherit;
}

.lib-pos-start .lib,
.lib-pos-end .lib {
	--lib-icon-base: flex;
}

.lib__icon {
	display: var(--lib-icon-display, var(--lib-icon-base));
	line-height: 1;
	flex-shrink: 0;
}

.lib__icon-box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: content-box;
	width: 1em;
	height: 1em;
	line-height: 1;
	transition: color .3s ease, background-color .3s ease, border-color .3s ease, transform .3s ease;
}

.lib__icon-box i {
	display: inline-block;
	font-size: inherit;
	line-height: 1;
	transition: transform .3s ease;
}

.lib__icon-box svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
	transition: transform .3s ease;
}

.lib-view-stacked.lib-shape-circle .lib__icon-box,
.lib-view-framed.lib-shape-circle .lib__icon-box {
	border-radius: 50%;
}

.lib-view-stacked.lib-shape-rounded .lib__icon-box,
.lib-view-framed.lib-shape-rounded .lib__icon-box {
	border-radius: 15%;
}

.lib-view-stacked.lib-shape-square .lib__icon-box,
.lib-view-framed.lib-shape-square .lib__icon-box {
	border-radius: 0;
}

.lib__content {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
}

.lib__title {
	display: var(--lib-title-display, block);
	margin: 0 0 10px;
	transition: color .3s ease;
}

.lib__desc {
	display: var(--lib-desc-display, block);
	transition: color .3s ease;
}

.lib-pos-start .lib {
	flex-direction: row;
	text-align: start;
}

.lib-pos-end .lib {
	flex-direction: row-reverse;
	text-align: start;
}