/* Armeria 3S Toolkit: wishlist + compare buttons, pages and notice (SPEC-v1.1 §3.2). Theme tokens with fallbacks. */

.a3s-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Buttons ------------------------------------------------------------------ */
.a3s-card-actions {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.a3s-wl-btn,
.a3s-cmp-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	width: 38px;
	height: 38px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--a3s-color-border, #dcd9d5);
	border-radius: 50%;
	background: var(--a3s-color-bg, #fff);
	color: var(--a3s-color-text, #231f20);
	font: inherit;
	line-height: 1;
	cursor: pointer;
	transition: color var(--a3s-transition, 150ms ease-in-out), border-color var(--a3s-transition, 150ms ease-in-out), background-color var(--a3s-transition, 150ms ease-in-out);
}

/* 44 px touch target around the 38 px circle. */
.a3s-wl-btn::after,
.a3s-cmp-btn::after {
	content: "";
	position: absolute;
	inset: -3px;
}

.a3s-wl-btn:hover,
.a3s-cmp-btn:hover,
.a3s-wl-btn[aria-pressed="true"],
.a3s-cmp-btn[aria-pressed="true"] {
	border-color: var(--a3s-color-primary, #e95e1b);
	color: var(--a3s-color-primary-strong, #c4500f);
}

.a3s-wl-btn[aria-pressed="true"] .a3s-lists__icon path {
	fill: currentColor;
}

.a3s-cmp-btn[aria-pressed="true"] {
	background: var(--a3s-color-primary, #e95e1b);
	color: var(--a3s-color-primary-contrast, #231f20);
}

.a3s-wl-btn:focus-visible,
.a3s-cmp-btn:focus-visible,
.a3s-lists__remove:focus-visible,
.a3s-cmp__scroll:focus-visible {
	outline: 2px solid var(--a3s-color-primary, #e95e1b);
	outline-offset: 2px;
	box-shadow: var(--a3s-focus-ring, 0 0 0 3px rgba(233, 94, 27, .35));
}

.a3s-lists__icon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
}

/* Product page / shortcode with label="yes" */
.a3s-card-actions--single {
	position: static;
	flex-flow: row wrap;
	gap: 10px;
	margin: 16px 0;
}

.a3s-lists-btn--label {
	width: auto;
	min-height: 44px;
	height: auto;
	padding: 8px 16px;
	border-radius: var(--a3s-radius-sm, 3px);
	font-size: .875rem;
	font-weight: 500;
	text-transform: uppercase;
}

.a3s-lists-btn--label::after {
	content: none;
}

.a3s-lists-sc {
	display: inline-block;
}

.a3s-count:not([hidden]) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--a3s-color-primary, #e95e1b);
	color: var(--a3s-color-primary-contrast, #231f20);
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
}

/* Notice (toast) ----------------------------------------------------------- */
.a3s-lists-toast {
	position: fixed;
	left: 50%;
	bottom: 16px;
	z-index: 5500; /* Above the theme drawers (5005), below popups (6000) and the cookie banner (7000). */
	box-sizing: border-box;
	max-width: calc(100vw - 32px);
	padding: 12px 18px;
	background: var(--a3s-color-secondary, #231f20);
	box-shadow: var(--a3s-shadow, 0 4px 4px rgba(0, 0, 0, .25));
	color: #fff;
	font-size: .9375rem;
	line-height: 1.4;
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px);
	transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}

.a3s-lists-toast.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	transition: opacity .2s ease, transform .2s ease;
}

.a3s-lists-toast:empty {
	display: none;
}

.a3s-lists-toast a {
	color: var(--a3s-color-primary, #e95e1b);
	font-weight: 600;
	text-decoration: underline;
}

/* Pages -------------------------------------------------------------------- */
.a3s-lists-page {
	margin: 0 0 40px;
}

.a3s-lists-page[aria-busy="true"] .a3s-lists-page__body {
	opacity: .5;
}

.a3s-lists-page__empty {
	padding: 32px 16px;
	background: var(--a3s-color-surface, #f3f2f0);
	text-align: center;
}

.a3s-lists-page__empty p {
	margin: 0 0 16px;
}

.a3s-lists-hint {
	padding: 12px 16px;
	border-left: 4px solid var(--a3s-color-warning, #b45309);
	background: var(--a3s-color-surface, #f3f2f0);
}

.a3s-lists__stock {
	font-size: .875rem;
}

.a3s-lists__stock--instock {
	color: var(--a3s-color-success, #0a7a2f);
}

.a3s-lists__stock--outofstock {
	color: var(--a3s-color-error, #c8102e);
}

.a3s-lists__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid var(--a3s-color-border, #dcd9d5);
	border-radius: var(--a3s-radius-sm, 3px);
	background: transparent;
	color: var(--a3s-color-text, #231f20);
	font: inherit;
	font-size: .875rem;
	cursor: pointer;
}

.a3s-lists__remove:hover {
	border-color: var(--a3s-color-error, #c8102e);
	color: var(--a3s-color-error, #c8102e);
}

/* Wishlist grid */
.a3s-wl__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	.a3s-wl__grid {
		grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
		gap: 20px;
	}
}

.a3s-wl__item {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
	margin: 0;
	padding: 10px;
	border: 1px solid var(--a3s-color-border, #dcd9d5);
	background: var(--a3s-color-bg, #fff);
}

.a3s-wl__media {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.a3s-wl__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.a3s-wl__info {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 4px;
}

.a3s-wl__badge {
	align-self: flex-start;
	padding: 2px 6px;
	background: var(--a3s-color-secondary, #231f20);
	color: #fff;
	font-size: 12px;
	text-transform: uppercase;
}

.a3s-wl__name {
	color: var(--a3s-color-heading, #231f20);
	font-weight: 500;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.a3s-wl__name:hover {
	color: var(--a3s-color-link-hover, #b84a0e);
}

.a3s-wl__price {
	color: var(--a3s-color-price, #b84a0e);
	font-weight: 600;
}

.a3s-wl__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.a3s-wl__actions .button {
	flex: 1 1 auto;
	min-height: 44px;
	text-align: center;
}

/* Compare table: scrolls inside its own box, never the page */
.a3s-cmp__scroll {
	position: relative; /* containing block: absolute remove buttons / sr-only texts are clipped, no page scroll */
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--a3s-color-border, #dcd9d5);
}

.a3s-cmp__table {
	width: 100%;
	min-width: max-content;
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}

.a3s-cmp__table th,
.a3s-cmp__table td {
	box-sizing: border-box;
	width: 220px;
	min-width: 160px;
	padding: 12px;
	border: 0;
	border-bottom: 1px solid var(--a3s-color-divider, #e3e0dc);
	border-left: 1px solid var(--a3s-color-divider, #e3e0dc);
	background: var(--a3s-color-bg, #fff);
	text-align: left;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.a3s-cmp__table th[scope="row"],
.a3s-cmp__corner {
	position: sticky;
	left: 0;
	z-index: 1;
	width: 140px;
	min-width: 110px;
	border-left: 0;
	background: var(--a3s-color-surface, #f3f2f0);
	font-weight: 600;
}

.a3s-cmp__product {
	position: relative;
	padding-top: 52px !important;
}

.a3s-cmp__product .a3s-lists__remove {
	position: absolute;
	top: 4px;
	right: 4px;
	padding: 0;
	border-color: transparent;
}

.a3s-cmp__media {
	display: block;
	aspect-ratio: 1 / 1;
	margin: 0 0 10px;
	overflow: hidden;
}

.a3s-cmp__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.a3s-cmp__name {
	color: var(--a3s-color-heading, #231f20);
	font-weight: 600;
	text-decoration: none;
}

.a3s-cmp__row--price td {
	color: var(--a3s-color-price, #b84a0e);
	font-weight: 600;
}

.a3s-cmp__row--actions .button {
	min-height: 44px;
}

@media (max-width: 575.98px) {
	.a3s-card-actions {
		top: 14px;
		right: 14px;
	}

	.a3s-cmp__table th,
	.a3s-cmp__table td {
		width: 170px;
		padding: 10px 8px;
		font-size: .875rem;
	}

	.a3s-cmp__table th[scope="row"],
	.a3s-cmp__corner {
		width: 104px;
		min-width: 90px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.a3s-wl-btn,
	.a3s-cmp-btn,
	.a3s-lists-toast,
	.a3s-lists-toast.is-visible {
		transition: none;
	}
}
