/* Load More — accordion extension and trigger button. */

.cgs-lm-hidden {
	display: none !important;
}

.cgs-lm-button-wrap {
	display: flex;
	justify-content: center;
	width: 100%;
}

.cgs-lm-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 16px 36px;
	font: inherit;
	line-height: 1.2;
	color: #fff;
	cursor: pointer;
	background-color: #111;
	border: 0;
	border-radius: 999px;
	transition: color .25s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.cgs-lm-icon-left .cgs-lm-button {
	flex-direction: row-reverse;
}

.cgs-lm-button-icon {
	display: inline-flex;
	align-items: center;
	line-height: 1;
}

.cgs-lm-button-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

@media (prefers-reduced-motion: reduce) {

	.cgs-lm-button {
		transition: none;
	}
}

/* ------------------------------ Loading state ----------------------------- */

.cgs-lm-button.is-loading {
	cursor: wait;
}

.cgs-lm-button[disabled] {
	pointer-events: none;
}

.cgs-lm-spinner {
	display: none;
	width: 1em;
	height: 1em;
	color: inherit;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	opacity: .9;
	animation: cgs-lm-spin .7s linear infinite;
}

.cgs-lm-button.is-loading .cgs-lm-spinner {
	display: inline-block;
}

/* The icon steps aside so the button width barely moves. */
.cgs-lm-button.is-loading .cgs-lm-button-icon {
	display: none;
}

@keyframes cgs-lm-spin {

	to {
		transform: rotate(360deg);
	}
}

/* ---------------------------- Reveal animations --------------------------- */

.cgs-lm-in {
	animation-duration: var(--cgs-lm-duration, 400ms);
	animation-delay: var(--cgs-lm-delay, 0ms);
	animation-timing-function: cubic-bezier(.22, .61, .36, 1);
	animation-fill-mode: both;
}

.cgs-lm-anim-fade .cgs-lm-in {
	animation-name: cgs-lm-fade;
}

.cgs-lm-anim-fade-up .cgs-lm-in {
	animation-name: cgs-lm-fade-up;
}

.cgs-lm-anim-zoom .cgs-lm-in {
	animation-name: cgs-lm-zoom;
}

@keyframes cgs-lm-fade {

	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes cgs-lm-fade-up {

	from {
		opacity: 0;
		transform: translateY(16px);
	}

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

@keyframes cgs-lm-zoom {

	from {
		opacity: 0;
		transform: scale(.96);
	}

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

@media (prefers-reduced-motion: reduce) {

	.cgs-lm-in {
		animation: none;
	}

	.cgs-lm-spinner {
		animation-duration: 1.4s;
	}
}
