/**
 * WooCommerce product list table — layout and highlight treatments.
 */

.ewcpl-root {
	box-sizing: border-box;
}

.ewcpl-root *,
.ewcpl-root *::before,
.ewcpl-root *::after {
	box-sizing: inherit;
}

.ewcpl-table-wrap {
	width: 100%;
	overflow-x: auto;
}

.ewcpl-product-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}

.ewcpl-td {
	vertical-align: middle;
	padding: 0.75rem 0.6rem;
	position: relative;
}

.ewcpl-img-wrap {
	display: block;
	overflow: hidden;
	position: relative;
	margin: 0 auto;
}

.ewcpl-img-wrap--overlay::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-color: var(--ewcpl-overlay, #000);
	opacity: var(--ewcpl-overlay-op, 0.4);
	border-radius: inherit;
}

.ewcpl-img-ph {
	display: inline-block;
	min-width: 48px;
	min-height: 48px;
	background: rgba(0, 0, 0, 0.06);
}

/* --- Grouped layout --- */
.ewcpl-product-data__title {
	width: 100%;
	margin-bottom: 0.75rem;
}

.ewcpl-product-data__inline {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.75rem 1rem;
	width: 100%;
}

.ewcpl-product-data__cell {
	flex-grow: 1;
	flex-shrink: 1;
	min-width: min(100%, 120px);
	box-sizing: border-box;
}

.ewcpl-td--grouped-data {
	vertical-align: top;
}

/* Corner triangle base */
.ewcpl-td--corner-cut {
	overflow: hidden;
}

.ewcpl-corner-triangle {
	--ewcpl-tri-bg: #e53935;
	--ewcpl-tri-bg-opacity: 1;
	position: absolute;
	z-index: 2;
	pointer-events: none;
	width: 4.5rem;
	height: 4.5rem;
}

.ewcpl-corner-triangle::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: var(--ewcpl-tri-bg, #e53935);
	opacity: var(--ewcpl-tri-bg-opacity, 1);
}

.ewcpl-corner-triangle span {
	--ewcpl-tri-tx: 0px;
	--ewcpl-tri-ty: 0px;
	position: absolute;
	z-index: 1;
	width: 6rem;
	text-align: center;
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 1.1;
	color: #fff;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
	transform: translate(var(--ewcpl-tri-tx), var(--ewcpl-tri-ty));
}

/* Top right (default) */
.ewcpl-corner-triangle--tr {
	top: 0;
	right: 0;
}

.ewcpl-corner-triangle--tr::before {
	top: 0;
	right: 0;
	clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.ewcpl-corner-triangle--tr span {
	top: 0.55rem;
	right: -3.2rem;
	transform: translate(var(--ewcpl-tri-tx), var(--ewcpl-tri-ty)) rotate(45deg);
	transform-origin: center;
}

/* Top left */
.ewcpl-corner-triangle--tl {
	top: 0;
	left: 0;
}

.ewcpl-corner-triangle--tl::before {
	top: 0;
	left: 0;
	clip-path: polygon(0 0, 100% 0, 0 100%);
}

.ewcpl-corner-triangle--tl span {
	top: 0.55rem;
	left: -3.2rem;
	transform: translate(var(--ewcpl-tri-tx), var(--ewcpl-tri-ty)) rotate(-45deg);
	transform-origin: center;
}

/* Bottom right */
.ewcpl-corner-triangle--br {
	bottom: 0;
	right: 0;
}

.ewcpl-corner-triangle--br::before {
	bottom: 0;
	right: 0;
	clip-path: polygon(100% 100%, 100% 0, 0 100%);
}

.ewcpl-corner-triangle--br span {
	bottom: 0.55rem;
	right: -3.2rem;
	transform: translate(var(--ewcpl-tri-tx), var(--ewcpl-tri-ty)) rotate(-45deg);
	transform-origin: center;
}

/* Bottom left */
.ewcpl-corner-triangle--bl {
	bottom: 0;
	left: 0;
}

.ewcpl-corner-triangle--bl::before {
	bottom: 0;
	left: 0;
	clip-path: polygon(0 100%, 100% 100%, 0 0);
}

.ewcpl-corner-triangle--bl span {
	bottom: 0.55rem;
	left: -3.2rem;
	transform: translate(var(--ewcpl-tri-tx), var(--ewcpl-tri-ty)) rotate(45deg);
	transform-origin: center;
}

/* Text banner */
.ewcpl-banner {
	position: absolute;
	z-index: 2;
	padding: 0.25rem 0.6rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.3;
	max-width: 90%;
	pointer-events: none;
}

.ewcpl-banner--round {
	border-radius: 999px;
}

.ewcpl-banner--square {
	border-radius: 0;
}

.ewcpl-banner--top {
	top: 0.35rem;
	left: 50%;
	transform: translateX(-50%);
}

.ewcpl-banner--bottom {
	bottom: 0.35rem;
	left: 50%;
	transform: translateX(-50%);
}

.ewcpl-banner--left {
	left: 0.35rem;
	top: 50%;
	transform: translateY(-50%);
}

.ewcpl-banner--right {
	right: 0.35rem;
	top: 50%;
	transform: translateY(-50%);
}

/* Popped row */
.ewcpl-table-wrap .ewcpl-row--popped {
	position: relative;
	z-index: 1;
}

.ewcpl-table-wrap .ewcpl-row--popped > td {
	position: relative;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

/* Bulk */
.ewcpl-bulk-actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: 1rem;
	flex-wrap: wrap;
	justify-content: flex-start;
	width: 100%;
}

.ewcpl-bulk-actions--align-left {
	justify-content: flex-start;
}

.ewcpl-bulk-actions--align-center {
	justify-content: center;
}

.ewcpl-bulk-actions--align-right {
	justify-content: flex-end;
}

.ewcpl-bulk-actions--align-full-width {
	flex-direction: column;
	align-items: stretch;
	gap: 0.75rem;
}

.ewcpl-bulk-actions--align-full-width .ewcpl-bulk-add {
	width: 100%;
	text-align: center;
	box-sizing: border-box;
}

.ewcpl-bulk-actions--align-full-width .ewcpl-bulk-msg {
	width: 100%;
	text-align: center;
}

.ewcpl-bulk-add {
	cursor: pointer;
}

.ewcpl-bulk-msg {
	font-size: 0.9rem;
}

.ewcpl-bulk-cb {
	min-width: 1rem;
	min-height: 1rem;
	cursor: pointer;
	vertical-align: middle;
}

.ewcpl-atc-disabled {
	font-size: 0.85rem;
	opacity: 0.85;
}

.ewcpl-qty-wrap {
	display: inline-block;
	max-width: 100%;
}

.ewcpl-qty-input {
	box-sizing: border-box;
	min-height: 2rem;
}

.ewcpl-col--description p {
	margin: 0 0 0.5rem;
}

.ewcpl-col--description p:last-child {
	margin-bottom: 0;
}

/* Woo default buttons inside cell */
.ewcpl-add-to-cart .button {
	display: inline-block;
	text-decoration: none;
	padding: 0.4em 0.9em;
}
