.logo-rescue,
.logo-rescue * {
	box-sizing: border-box;
}

.logo-rescue {
	--logo-rescue-gap: 1rem;
	max-width: 100%;
}

.logo-rescue__heading { overflow-wrap: anywhere; }

.logo-rescue__track,
.logo-rescue--grid {
	display: grid;
	grid-template-columns: repeat(var(--logo-rescue-columns, 4), minmax(0, 1fr));
	gap: var(--logo-rescue-gap);
	align-items: stretch;
}

.logo-rescue__item {
	display: flex;
	min-width: 0;
	min-height: 8rem;
	margin: 0;
	padding: .75rem;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	scroll-snap-align: start;
	overflow-wrap: anywhere;
}

.logo-rescue__item--bordered { border: 1px solid #dcdcde; }
.logo-rescue__link { display: block; }

.logo-rescue__image {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: var(--logo-rescue-max-height, 250px);
	margin-inline: auto;
	object-fit: contain;
}

.logo-rescue__placeholder {
	display: block;
	padding: 1rem;
	overflow-wrap: anywhere;
}

.logo-rescue__title { margin-top: .5rem; }

.logo-rescue__controls[hidden],
.logo-rescue__button[hidden],
.logo-rescue__dots[hidden] {
	display: none !important;
}

.logo-rescue.is-fits .logo-rescue__controls { display: none !important; }

.logo-rescue.is-enhanced .logo-rescue__viewport {
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-inline: contain;
}

.logo-rescue.is-enhanced .logo-rescue__viewport::-webkit-scrollbar { display: none; }

.logo-rescue.is-enhanced .logo-rescue__track {
	display: flex;
	gap: var(--logo-rescue-gap);
	width: 100%;
	min-width: 100%;
}

.logo-rescue.is-enhanced .logo-rescue__item {
	flex: 0 0 calc((100% - ((var(--logo-rescue-visible, 4) - 1) * var(--logo-rescue-gap))) / var(--logo-rescue-visible, 4));
}

.logo-rescue.is-enhanced .logo-rescue__controls {
	display: flex;
	gap: .5rem;
	align-items: center;
	justify-content: center;
	margin-top: .75rem;
}

.logo-rescue__button,
.logo-rescue__dot {
	min-width: 2.75rem;
	min-height: 2.75rem;
	margin: 0;
	padding: .5rem;
	border: 1px solid currentColor;
	border-radius: .25rem;
	background: transparent;
	color: inherit;
	font: inherit;
	line-height: 1;
	cursor: pointer;
}

.logo-rescue__button svg {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	margin: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

.logo-rescue[dir="rtl"] .logo-rescue__button svg { transform: scaleX(-1); }

.logo-rescue__button:disabled {
	cursor: not-allowed;
	opacity: .45;
}

.logo-rescue__button:focus-visible,
.logo-rescue__dot:focus-visible,
.logo-rescue__viewport:focus-visible,
.logo-rescue__link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.logo-rescue__dots {
	display: flex;
	gap: .375rem;
	flex-wrap: wrap;
	justify-content: center;
}

.logo-rescue__dot {
	width: .875rem;
	min-width: .875rem;
	height: .875rem;
	min-height: .875rem;
	padding: 0;
	border-radius: 50%;
}

.logo-rescue__dot[aria-current="true"] { background: currentColor; }

@media (max-width: 1023px) {
	.logo-rescue__track,
	.logo-rescue--grid { grid-template-columns: repeat(var(--logo-rescue-tablet-columns, 3), minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.logo-rescue__track,
	.logo-rescue--grid { grid-template-columns: repeat(var(--logo-rescue-mobile-columns, 2), minmax(0, 1fr)); }
}

@media (max-width: 479px) {
	.logo-rescue__track,
	.logo-rescue--grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.logo-rescue.is-enhanced .logo-rescue__viewport { scroll-behavior: auto; }
}
