/**
 * Amazon Affiliate Product Showcase — Frontend styles.
 * All rules are namespaced under .aaps-* to avoid theme conflicts.
 */

.aaps-showcase {
	box-sizing: border-box;
	max-width: 100%;
	margin: 24px 0;
}

.aaps-showcase *,
.aaps-showcase *::before,
.aaps-showcase *::after {
	box-sizing: border-box;
}

.aaps-grid {
	display: grid;
	grid-template-columns: repeat(var(--aaps-columns, 1), 1fr);
	gap: 20px;
	width: 100%;
}

.aaps-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background-color: var(--aaps-card-bg, #ffffff);
	border: var(--aaps-card-border-width, 1px) solid var(--aaps-card-border-color, #e3e6e6);
	border-radius: var(--aaps-card-radius, 12px);
	padding: var(--aaps-card-padding, 20px);
	box-shadow: var(--aaps-card-shadow, none);
	height: 100%;
	min-width: 0;
}

.aaps-image-wrap {
	width: 100%;
	height: var(--aaps-image-height, 220px);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin-bottom: 14px;
	border-radius: var(--aaps-image-radius, 8px);
}

.aaps-image {
	max-width: 100%;
	max-height: 100%;
	width: 100%;
	height: 100%;
	object-fit: var(--aaps-image-fit, contain);
	border-radius: var(--aaps-image-radius, 8px);
	display: block;
}

.aaps-title {
	color: var(--aaps-title-color, #0f1111);
	font-size: var(--aaps-title-size, 18px);
	font-weight: var(--aaps-title-weight, 700);
	text-align: var(--aaps-title-align, left);
	margin: 0 0 8px 0;
	line-height: 1.35;
	word-wrap: break-word;
}

.aaps-description {
	color: var(--aaps-desc-color, #565959);
	font-size: var(--aaps-desc-size, 14px);
	line-height: var(--aaps-desc-line-height, 1.5);
	text-align: var(--aaps-desc-align, left);
	margin: 0 0 10px 0;
}

.aaps-description p {
	margin: 0 0 8px 0;
}

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

.aaps-offer {
	display: inline-block;
	color: var(--aaps-offer-color, #cc0c39);
	background-color: var(--aaps-offer-bg, #fff2f2);
	font-size: var(--aaps-offer-size, 13px);
	font-weight: var(--aaps-offer-weight, 600);
	padding: 4px 10px;
	border-radius: 4px;
	margin-bottom: 10px;
	width: fit-content;
}

.aaps-offer-anim-pulse {
	animation: aaps-pulse 1.6s ease-in-out infinite;
}

.aaps-offer-anim-fade {
	animation: aaps-fade 1.8s ease-in-out infinite;
}

.aaps-offer-anim-bounce {
	animation: aaps-bounce 1.4s ease-in-out infinite;
}

@keyframes aaps-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.05); }
}

@keyframes aaps-fade {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.55; }
}

@keyframes aaps-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-3px); }
}

@media (prefers-reduced-motion: reduce) {
	.aaps-offer-anim-pulse,
	.aaps-offer-anim-fade,
	.aaps-offer-anim-bounce {
		animation: none;
	}
}

.aaps-price {
	margin-bottom: 14px;
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.aaps-price-current {
	color: var(--aaps-price-color, #0f1111);
	font-size: var(--aaps-price-size, 22px);
	font-weight: var(--aaps-price-weight, 700);
}

.aaps-price-original {
	color: var(--aaps-price-original-color, #565959);
	font-size: 14px;
}

.aaps-price-original-strikethrough {
	text-decoration: line-through;
}

.aaps-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
	background-color: var(--aaps-btn-bg, #ff9900);
	color: var(--aaps-btn-color, #0f1111);
	border: 1px solid var(--aaps-btn-border-color, #a88734);
	border-radius: var(--aaps-btn-radius, 8px);
	font-size: var(--aaps-btn-size, 15px);
	font-weight: var(--aaps-btn-weight, 700);
	padding: var(--aaps-btn-padding, 12px) 18px;
	margin-top: auto;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
	width: 100%;
	min-height: 44px;
}

.aaps-button:hover,
.aaps-button:focus {
	background-color: var(--aaps-btn-hover-bg, #e88a00);
	color: var(--aaps-btn-hover-color, #0f1111);
}

.aaps-button:focus-visible {
	outline: 2px solid #005fcc;
	outline-offset: 2px;
}

.aaps-amazon-logo {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	display: inline-block;
}

.aaps-button-text {
	line-height: 1;
}

.aaps-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: 4px;
	z-index: 2;
}

.aaps-badge-top_left,
.aaps-badge-top_right {
	position: absolute;
}

.aaps-badge-top_left {
	top: 10px;
	left: 10px;
}

.aaps-badge-top_right {
	top: 10px;
	right: 10px;
}

.aaps-badge-inline {
	margin-bottom: 8px;
	width: fit-content;
}

.aaps-badge-icon {
	width: 14px;
	height: 14px;
	object-fit: contain;
}

/* Tablet and mobile grid behavior is further overridden per-showcase via
   inline <style> generated in templates/product-showcase.php. These act
   as sane fallbacks. */
@media (max-width: 1024px) {
	.aaps-grid {
		gap: 16px;
	}
}

@media (max-width: 600px) {
	.aaps-showcase {
		margin: 16px 0;
	}

	.aaps-title {
		font-size: calc(var(--aaps-title-size, 18px) * 0.95);
	}
}
