/*! Cakery allergenen. Het balkje onder aan een productkaart.
 *  Gedeeld door de slider en het shoparchief, zodat beide er gelijk uitzien. */

.calg {
	--calg-ink: #867C6D;
	--calg-hover: #877E63;
	--calg-line: rgba(42, 33, 23, .14);
	--calg-line-top: rgba(42, 33, 23, .09);
	--calg-tip-bg: #2A2117;
	--calg-tip-ink: #F5F2E9;
	--calg-cut: 5px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 12px;
	padding-top: 11px;
	border-top: 1px solid var(--calg-line-top);
}

.calg__lbl {
	margin-right: 1px;
	color: var(--calg-ink);
	font-size: 9.5px;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.calg__none {
	color: var(--calg-hover);
	font-size: 9.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.calg__i {
	--c: var(--calg-cut);
	position: relative;
	display: grid;
	flex: none;
	place-items: center;
	width: 24px;
	height: 24px;
	color: var(--calg-ink);
	box-shadow: inset 0 0 0 1px var(--calg-line);
	cursor: default;
	transition: color .3s ease, box-shadow .3s ease;
	clip-path: polygon(var(--c) 0, calc(100% - var(--c)) 0, 100% var(--c), 100% calc(100% - var(--c)),
		calc(100% - var(--c)) 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 var(--c));
}

.calg__i svg {
	width: 14px;
	height: 14px;
}

.calg__i:hover,
.calg__i:focus-visible {
	color: var(--calg-hover);
	box-shadow: inset 0 0 0 1px rgba(169, 160, 131, .85);
	outline: none;
}

/* De naam staat er altijd in voor schermlezers; zichtbaar wordt hij alleen
   waar hover niet bestaat, of als de widget daarom vraagt. */
.calg__t {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.calg__i::after {
	--c: 3px;
	content: attr(data-l);
	position: absolute;
	bottom: calc(100% + 7px);
	left: 50%;
	z-index: 5;
	padding: 5px 9px;
	background: var(--calg-tip-bg);
	color: var(--calg-tip-ink);
	font-size: 9.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0;
	transform: translate(-50%, 4px);
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
	clip-path: polygon(var(--c) 0, calc(100% - var(--c)) 0, 100% var(--c), 100% calc(100% - var(--c)),
		calc(100% - var(--c)) 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 var(--c));
}

.calg__i:hover::after,
.calg__i:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* Namen uitgeschreven: het icoon krijgt de naam ernaast en de tooltip vervalt.
   Allergeneninformatie mag niet achter een hover verstopt zitten. */
.calg--named .calg__i,
.calg__i.calg__i--named {
	width: auto;
	height: auto;
	grid-auto-flow: column;
	gap: 6px;
	padding: 5px 9px 5px 7px;
}

.calg--named .calg__t {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip-path: none;
	font-size: 9.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.calg--named .calg__i::after {
	content: none;
}

/* Zonder hover komt de tooltip nooit in beeld, dus daar altijd de naam erbij. */
@media (hover: none) {
	.calg__i {
		width: auto;
		height: auto;
		grid-auto-flow: column;
		gap: 6px;
		padding: 5px 9px 5px 7px;
	}

	.calg__t {
		position: static;
		width: auto;
		height: auto;
		overflow: visible;
		clip-path: none;
		font-size: 9.5px;
		letter-spacing: .14em;
		text-transform: uppercase;
	}

	.calg__i::after {
		content: none;
	}

	.calg__lbl {
		display: none;
	}
}

@media (max-width: 820px) {
	.calg { gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.calg__i,
	.calg__i::after {
		transition: none;
	}
}
