.ccp-el {
	display: block;
	max-width: 100%;
	box-sizing: border-box;
}

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

.ccp-el__title {
	margin: 0 0 0.35em;
	font-size: clamp(1.15rem, 2.4vw, 1.75rem);
	line-height: 1.25;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.ccp-el__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.ccp-el__helper {
	margin: 0 0 0.75rem;
	opacity: 0.85;
}

.ccp-el--no-labels label {
	font-size: 0;
}

.ccp-el--no-labels label input,
.ccp-el--no-labels label select,
.ccp-el--no-labels label textarea,
.ccp-el--no-labels label .ccp-btn {
	font-size: 1rem;
}

.ccp-el--hide-image .ccp-ml-card__img,
.ccp-el--hide-image .ccp-ml-card__ph,
.ccp-el--hide-image .ccp-dish-card img,
.ccp-el--hide-image .ccp-el__image,
.ccp-el--hide-image .ccp-el__cover {
	display: none;
}

.ccp-el--hide-price .price,
.ccp-el--hide-price .ccp-el__price,
.ccp-el--hide-price .woocommerce-Price-amount {
	display: none;
}

.ccp-el--hide-meta .ccp-vendor-card__meta,
.ccp-el--hide-meta .ccp-el__hours,
.ccp-el--hide-meta .ccp-el__location {
	display: none;
}

.ccp-el--compact .ccp-el-dash,
.ccp-el--compact .ccp-vendor-dash {
	padding: 0.5rem;
}

.ccp-el-dash,
.ccp-el-form {
	max-width: 100%;
	overflow-x: auto;
}

.ccp-el__subtitle {
	margin: 0 0 1rem;
	opacity: 0.85;
}

.ccp-el-grid {
	display: grid;
	grid-template-columns: repeat(var(--ccp-el-cols, 3), minmax(0, 1fr));
	gap: clamp(0.75rem, 2vw, 1.25rem);
}

.ccp-el-grid--list {
	grid-template-columns: 1fr;
}

.ccp-el__empty,
.ccp-el__error,
.ccp-el__denied,
.ccp-el__success,
.ccp-el__loading {
	padding: 1rem 1.15rem;
	border-radius: 0.75rem;
	background: color-mix(in srgb, currentColor 6%, transparent);
}

.ccp-el__error {
	border: 1px solid color-mix(in srgb, #b42318 35%, transparent);
}

.ccp-el__success {
	border: 1px solid color-mix(in srgb, #1f7a4d 35%, transparent);
}

.ccp-el__loading {
	opacity: 0.72;
}

.ccp-el .ccp-btn:disabled,
.ccp-el .ccp-btn[aria-disabled="true"],
.ccp-el [data-ccp-state="disabled"] {
	opacity: 0.55;
	pointer-events: none;
}

.ccp-el .ccp-btn:hover,
.ccp-el .ccp-btn:focus-visible {
	filter: brightness(0.96);
}

.ccp-el .ccp-btn:active {
	filter: brightness(0.92);
}

.ccp-el__cats,
.ccp-el__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ccp-el__filters,
.ccp-el__sort {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 14rem) auto;
	gap: 0.75rem;
	align-items: end;
	margin-bottom: 1rem;
}

.ccp-el__share,
.ccp-el__contact,
.ccp-el__badges {
	margin: 0.5rem 0;
}

.ccp-el__cover,
.ccp-el__logo,
.ccp-el__image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	border-radius: inherit;
}

.ccp-el__store-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

@media (max-width: 1024px) {
	.ccp-el-grid {
		grid-template-columns: repeat(min(2, var(--ccp-el-cols, 2)), minmax(0, 1fr));
	}

	.ccp-el__filters,
	.ccp-el__sort {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.ccp-el-grid,
	.ccp-el-grid--list {
		grid-template-columns: 1fr;
	}

	.ccp-el__filters,
	.ccp-el__sort {
		grid-template-columns: 1fr;
	}

	.ccp-el .ccp-btn,
	.ccp-el button,
	.ccp-el input,
	.ccp-el select,
	.ccp-el textarea {
		width: 100%;
		min-height: 44px;
	}

	.ccp-el table {
		display: block;
		overflow-x: auto;
		max-width: 100%;
	}
}

@media (max-width: 360px) {
	.ccp-el,
	.ccp-el-grid,
	.ccp-el__filters,
	.ccp-el__sort,
	.ccp-el__store-nav {
		min-width: 0;
		max-width: 100%;
	}

	.ccp-el__title {
		overflow-wrap: anywhere;
	}
}

@media (max-width: 320px) {
	.ccp-el__title {
		font-size: 1.05rem;
	}

	.ccp-el-grid {
		gap: 0.6rem;
	}
}
