/*
 * Arromelle Pro - WooCommerce styles
 */

/* ---------------------------------------------------------------- Shop shell */

/* padding-block, not the shorthand - see the note on .ap-content in theme.css. */
.ap-shop { padding-block: 24px 56px; }
.ap-shop__sidebar { display: flex; flex-direction: column; gap: 16px; }
.ap-shop__sidebar .widget {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	box-shadow: var(--ap-shadow-sm);
	padding: 18px;
}
@media (min-width: 992px) { .ap-shop__sidebar { position: sticky; top: 90px; align-self: flex-start; } }

.ap-shop-toolbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	padding: 12px 16px;
	margin-bottom: 20px;
}
.woocommerce .ap-shop-toolbar .woocommerce-result-count {
	margin: 0;
	font-size: .85rem;
	color: var(--ap-muted);
	flex: 1 1 auto;
}
.woocommerce .ap-shop-toolbar .woocommerce-ordering { margin: 0; }
.woocommerce .ap-shop-toolbar select,
.woocommerce .woocommerce-ordering select {
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	padding: 8px 34px 8px 12px;
	font-size: .86rem;
	font-weight: 500;
	background-color: var(--ap-surface);
	color: var(--ap-ink);
	max-width: 100%;
}

/* ---------------------------------------------------------------- Product grid */

.woocommerce ul.products {
	display: grid;
	gap: 20px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}

@media (min-width: 576px) { .woocommerce ul.products { gap: 22px; } }
@media (min-width: 992px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	/*
	 * shop-columns-* lands on <body>, which also carries .woocommerce on shop pages,
	 * so these must not require .woocommerce to be a *descendant*. Match ul.products
	 * directly.
	 */
	.columns-2 > ul.products,
	.shop-columns-2 ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.shop-columns-3 ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.shop-columns-4 ul.products,
	.shop-columns-5 ul.products,
	.shop-columns-6 ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1400px) {
	.shop-columns-5 ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.shop-columns-6 ul.products { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
/* Related / upsell / shortcode grids stay at 4 max */
.woocommerce .related ul.products,
.woocommerce .up-sells ul.products,
.woocommerce .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 992px) {
	.woocommerce .related ul.products,
	.woocommerce .up-sells ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------------------------------------------------------------- Product card */

.ap-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	box-shadow: var(--ap-shadow-sm);
	overflow: hidden;
	transition: box-shadow var(--ap-speed) ease, transform var(--ap-speed) ease, border-color var(--ap-speed) ease;
}
.ap-card:hover {
	box-shadow: var(--ap-shadow-md);
	transform: translateY(-3px);
	border-color: rgba(var(--ap-primary-rgb), .28);
}

.ap-card__media { position: relative; overflow: hidden; background: var(--ap-placeholder); }
.ap-card__link { display: block; }
.ap-card__media img,
.woocommerce ul.products li.product .ap-card__media img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	/* WooCommerce sets margin: 0 0 1em on loop images; that was the band under the card. */
	margin: 0;
	transition: opacity 300ms ease, transform 400ms ease;
}
.ap-card__hover-img {
	position: absolute;
	inset: 0;
	opacity: 0;
	pointer-events: none;
}
.ap-card:hover .ap-card__hover-img { opacity: 1; }
.ap-card:hover .ap-card__media img:first-of-type { transform: scale(1.03); }

.ap-card__badges {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}
.ap-badge-tag {
	display: inline-block;
	padding: 3px 9px;
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: #fff;
	background: var(--ap-ink);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
}
.ap-badge-tag--sale { background: var(--ap-sale); }
.ap-badge-tag--new { background: var(--ap-ink); }
.ap-badge-tag--low { background: #B26A00; }
.ap-badge-tag--oos { background: #6B7280; }
.ap-badge-tag--single { position: static; margin-bottom: 10px; }

.ap-card__actions {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 8px;
	opacity: 0;
	transform: translateX(8px);
	transition: all var(--ap-speed) ease;
}
.ap-card:hover .ap-card__actions,
.ap-card:focus-within .ap-card__actions { opacity: 1; transform: none; }
@media (hover: none) { .ap-card__actions { opacity: 1; transform: none; } }

.ap-card__action {
	width: 34px;
	height: 34px;
	border: 1px solid var(--ap-line);
	border-radius: 50%;
	background: rgba(255, 255, 255, .96);
	color: var(--ap-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .92rem;
	transition: all var(--ap-speed) ease;
}
.ap-card__action:hover { background: var(--ap-primary); border-color: var(--ap-primary); color: #fff; }
.ap-wishlist-btn.is-active { background: var(--ap-sale); border-color: var(--ap-sale); color: #fff; }
.ap-wishlist-btn.is-active i::before { content: "\f415"; }

.ap-card__body {
	padding: 14px 16px 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 auto;
}
.ap-card__title-link { color: var(--ap-ink); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.35;
	padding: 0;
	margin: 0;
	color: var(--ap-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ap-card__title-link:hover .woocommerce-loop-product__title { color: var(--ap-primary); }

.ap-card__rating { display: flex; align-items: center; gap: 6px; }
.ap-card__rating-count { font-size: .75rem; color: var(--ap-muted); }
.woocommerce .star-rating { font-size: .78rem; color: #E8A33D; margin: 0; float: none; }

.woocommerce ul.products li.product .price {
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--ap-ink);
	margin: 2px 0 0;
	font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .price del {
	color: var(--ap-muted);
	font-weight: 400;
	font-size: .85rem;
	margin-right: 6px;
	opacity: .85;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--ap-primary); }

.ap-card__sku {
	display: flex;
	align-items: baseline;
	gap: 7px;
	margin: 2px 0 0;
	font-size: .74rem;
	color: var(--ap-muted);
}
.ap-card__sku span { text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
.ap-card__sku code {
	font-size: .74rem;
	color: var(--ap-muted);
	background: none;
	padding: 0;
	word-break: break-all;
}

.ap-card__stock {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 2px 0 0;
	font-size: .8rem;
	font-weight: 600;
}
.ap-card__stock i { font-size: .92rem; }
.ap-card__stock--in { color: #167C4A; }
.ap-card__stock--low { color: #B26A00; }
.ap-card__stock--out { color: var(--ap-muted); }

/* Small bag glyph on the loop add-to-cart button, to match the single product CTA. */
.woocommerce ul.products li.product .ap-card__cta .button::before {
	content: "\f242";
	font-family: bootstrap-icons;
	font-weight: 400;
	margin-right: 8px;
	vertical-align: -.11em;
}
.woocommerce ul.products li.product .ap-card__cta .button.added::before,
.woocommerce ul.products li.product .ap-card__cta .button.loading::before { content: none; }

.ap-card__cta { margin-top: auto; padding-top: 10px; }
.woocommerce ul.products li.product .button {
	display: block;
	width: 100%;
	text-align: center;
	font-size: .85rem;
	font-weight: 600;
	padding: .6rem 1rem;
	border-radius: var(--ap-radius-sm);
	background: var(--ap-primary);
	color: #fff;
	margin: 0;
	line-height: 1.4;
}
.woocommerce ul.products li.product .button:hover { background: var(--ap-primary-dark); color: #fff; }
.woocommerce ul.products li.product .added_to_cart {
	display: block;
	text-align: center;
	font-size: .78rem;
	font-weight: 600;
	margin-top: 6px;
}
.woocommerce ul.products li.product .button.loading { opacity: .7; }
.woocommerce a.button.added::after { display: none; }

/* ---------------------------------------------------------------- Product gallery carousel */

/*
 * WooCommerce ships FlexSlider for the gallery (enabled via wc-product-gallery-slider).
 * These rules turn its default markup into a proper carousel: arrows that appear on
 * hover, a scrollable thumbnail strip, and a stable aspect ratio so the page does not
 * jump while images load.
 */

.woocommerce div.product div.images {
	position: relative;
	margin-bottom: 0;
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	border-radius: var(--ap-radius);
	overflow: hidden;
	background: var(--ap-placeholder);
}
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--ap-radius);
}

/* Zoom hint */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 14px;
	right: 14px;
	left: auto;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	border: 1px solid var(--ap-line);
	box-shadow: var(--ap-shadow-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0;
	z-index: 4;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	content: "\f52a" !important;
	font-family: bootstrap-icons !important;
	font-size: 1rem;
	color: var(--ap-ink);
	border: 0;
	position: static;
	width: auto;
	height: auto;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after { display: none; }

/* FlexSlider arrows */
.woocommerce div.product div.images .flex-direction-nav { list-style: none; margin: 0; padding: 0; }
.woocommerce div.product div.images .flex-direction-nav a {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	border: 1px solid var(--ap-line);
	box-shadow: var(--ap-shadow-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	text-indent: 0;
	font-size: 0;
	opacity: 0;
	transition: opacity var(--ap-speed) ease, background var(--ap-speed) ease;
	z-index: 4;
}
.woocommerce div.product div.images:hover .flex-direction-nav a,
.woocommerce div.product div.images:focus-within .flex-direction-nav a { opacity: 1; }
@media (hover: none) { .woocommerce div.product div.images .flex-direction-nav a { opacity: .95; } }
.woocommerce div.product div.images .flex-direction-nav a::before {
	font-family: bootstrap-icons;
	font-size: 1.05rem;
	color: var(--ap-ink);
	line-height: 1;
}
.woocommerce div.product div.images .flex-direction-nav .flex-prev { left: 12px; }
.woocommerce div.product div.images .flex-direction-nav .flex-prev::before { content: "\f284"; }
.woocommerce div.product div.images .flex-direction-nav .flex-next { right: 12px; }
.woocommerce div.product div.images .flex-direction-nav .flex-next::before { content: "\f285"; }
.woocommerce div.product div.images .flex-direction-nav a:hover { background: #fff; }
.woocommerce div.product div.images .flex-direction-nav a.flex-disabled { opacity: 0 !important; pointer-events: none; }

/* Thumbnail strip */
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin: 12px 0 0;
	padding: 2px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	flex: 0 0 84px;
	margin: 0;
	padding: 0;
	width: auto;
	scroll-snap-align: start;
}
.woocommerce div.product div.images .flex-control-thumbs img {
	width: 84px;
	height: 84px;
	object-fit: cover;
	border-radius: var(--ap-radius-sm);
	border: 2px solid transparent;
	opacity: .65;
	transition: opacity var(--ap-speed) ease, border-color var(--ap-speed) ease;
	cursor: pointer;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--ap-primary);
}
@media (max-width: 575.98px) {
	.woocommerce div.product div.images .flex-control-thumbs li { flex-basis: 66px; }
	.woocommerce div.product div.images .flex-control-thumbs img { width: 66px; height: 66px; }
}

/* Thumbnail strip navigation */
.ap-thumbnav { position: relative; }
.ap-thumbnav .flex-control-thumbs {
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.ap-thumbnav .flex-control-thumbs::-webkit-scrollbar { display: none; }
.ap-thumbnav__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid var(--ap-line);
	background: rgba(255, 255, 255, .96);
	color: var(--ap-ink);
	box-shadow: var(--ap-shadow-sm);
	display: none;
	align-items: center;
	justify-content: center;
	font-size: .95rem;
	z-index: 3;
	transition: background var(--ap-speed) ease, opacity var(--ap-speed) ease;
}
.ap-thumbnav.is-scrollable .ap-thumbnav__btn { display: inline-flex; }
.ap-thumbnav__btn:hover { background: #fff; color: var(--ap-primary); }
.ap-thumbnav__btn:disabled { opacity: 0; pointer-events: none; }
.ap-thumbnav__btn--prev { left: -6px; }
.ap-thumbnav__btn--next { right: -6px; }
/* Fade the strip edges so a cut-off thumbnail reads as "more this way". */
.ap-thumbnav.is-scrollable::before,
.ap-thumbnav.is-scrollable::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 34px;
	pointer-events: none;
	z-index: 2;
}
.ap-thumbnav.is-scrollable::before { left: 0; background: linear-gradient(90deg, var(--ap-body-bg), transparent); }
.ap-thumbnav.is-scrollable::after { right: 0; background: linear-gradient(270deg, var(--ap-body-bg), transparent); }

/* ---------------------------------------------------------------- Sticky add to cart (mobile) */

.ap-sticky-atc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1036;
	display: none;
	align-items: center;
	gap: 12px;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
	background: var(--ap-surface);
	border-top: 1px solid var(--ap-line);
	box-shadow: 0 -8px 24px -16px rgba(46, 27, 19, .6);
	transform: translateY(110%);
	transition: transform 200ms ease;
}
.ap-sticky-atc.is-visible { transform: translateY(0); }
.ap-sticky-atc__media {
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: var(--ap-radius-sm);
	object-fit: cover;
	background: var(--ap-placeholder);
}
.ap-sticky-atc__info { flex: 1 1 auto; min-width: 0; }
.ap-sticky-atc__name {
	display: block;
	font-size: .82rem;
	font-weight: 600;
	color: var(--ap-ink);
	line-height: 1.25;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ap-sticky-atc__price { display: block; font-size: .88rem; font-weight: 800; color: var(--ap-ink); }
.ap-sticky-atc__price del { font-weight: 400; font-size: .78rem; color: var(--ap-muted); margin-right: 5px; }
.ap-sticky-atc__price ins { text-decoration: none; }
.ap-sticky-atc__btn {
	flex: none;
	min-height: 44px;
	padding: .6rem 1.15rem;
	border-radius: var(--ap-radius-sm);
	background: var(--ap-primary);
	border: 0;
	color: #fff;
	font-weight: 700;
	font-size: .9rem;
}
.ap-sticky-atc__btn:hover,
.ap-sticky-atc__btn:focus { background: var(--ap-primary-dark); color: #fff; }
.ap-sticky-atc__btn[disabled] { opacity: .6; }

@media (max-width: 991.98px) {
	body.single-product .ap-sticky-atc { display: flex; }
	/* Lift the quick-action bar and floating buttons clear of it. */
	body.single-product.has-sticky-atc .ap-mobile-bar { transform: translateY(100%); }
	body.single-product.has-sticky-atc { --ap-float-bottom: 140px; }
}

/* ---------------------------------------------------------------- Single product *//* ---------------------------------------------------------------- Single product *//* ---------------------------------------------------------------- Single product */

.woocommerce div.product { margin-top: 8px; }
.woocommerce div.product .product_title { font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: 10px; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--ap-primary);
	font-variant-numeric: tabular-nums;
}
.woocommerce div.product p.price del { color: var(--ap-muted); font-size: 1.05rem; font-weight: 400; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ap-muted); }

.woocommerce div.product div.images img { border-radius: var(--ap-radius); }
.woocommerce div.product div.images .flex-control-thumbs li { padding: 6px 6px 0 0; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: var(--ap-radius-sm); border: 1px solid var(--ap-line-soft); }

.woocommerce div.product form.cart { margin: 18px 0; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.woocommerce div.product form.cart .variations { width: 100%; }
.woocommerce div.product form.cart div.quantity { margin: 0; }
.woocommerce .quantity .qty {
	width: 82px;
	height: 46px;
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	text-align: center;
	font-weight: 600;
}
.woocommerce div.product form.cart .button {
	background: var(--ap-primary);
	color: #fff;
	font-weight: 700;
	padding: .75rem 1.6rem;
	border-radius: var(--ap-radius-sm);
	box-shadow: var(--ap-shadow-brand);
}
.woocommerce div.product form.cart .button:hover { background: var(--ap-primary-dark); color: #fff; }

.ap-trust {
	list-style: none;
	margin: 18px 0 0;
	padding: 16px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 16px;
	background: rgba(var(--ap-primary-rgb), .05);
	border: 1px solid rgba(var(--ap-primary-rgb), .12);
	border-radius: var(--ap-radius);
	width: 100%;
}
.ap-trust li { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--ap-ink); }
.ap-trust i { color: var(--ap-primary); font-size: 1rem; }
@media (max-width: 575.98px) { .ap-trust { grid-template-columns: 1fr; } }

.woocommerce .product_meta {
	font-size: .82rem;
	color: var(--ap-muted);
	border-top: 1px solid var(--ap-line-soft);
	padding-top: 14px;
	margin-top: 14px;
}
.woocommerce .product_meta > span { display: block; margin-bottom: 4px; }

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 -1px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	border-bottom: 1px solid var(--ap-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--ap-radius-sm) var(--ap-radius-sm) 0 0;
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 11px 18px;
	font-weight: 600;
	font-size: .9rem;
	color: var(--ap-muted);
	display: block;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--ap-surface);
	border-color: var(--ap-line);
	border-bottom-color: var(--ap-surface);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ap-primary); }
.woocommerce div.product .woocommerce-tabs .panel {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line);
	border-radius: 0 var(--ap-radius) var(--ap-radius) var(--ap-radius);
	padding: 24px;
	margin-bottom: 32px;
}

.woocommerce .related > h2,
.woocommerce .up-sells > h2,
.woocommerce .cross-sells > h2 { font-size: 1.25rem; margin-bottom: 18px; }

/* ---------------------------------------------------------------- Cart, checkout, account */

.woocommerce-cart .ap-shop,
.woocommerce-checkout .ap-shop,
.woocommerce-account .ap-shop { padding-top: 20px; }

.woocommerce table.shop_table {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	border-collapse: separate;
	overflow: hidden;
}
.woocommerce table.shop_table th { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ap-muted); }
.woocommerce table.shop_table td { vertical-align: middle; }
.woocommerce table.cart img { width: 64px; border-radius: var(--ap-radius-sm); }

.woocommerce .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	padding: 20px;
	box-shadow: var(--ap-shadow-sm);
}
.woocommerce .cart_totals h2,
.woocommerce-checkout h3 { font-size: 1.05rem; }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.select2-container--default .select2-selection--single {
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	padding: 10px 14px;
	height: auto;
	font-size: .92rem;
	background: var(--ap-surface);
	color: var(--ap-ink);
}
.woocommerce form .form-row label { font-size: .82rem; font-weight: 600; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }

.woocommerce #payment,
.woocommerce-checkout #payment { background: transparent; border-radius: var(--ap-radius); }
.woocommerce #payment ul.payment_methods { border-bottom: 1px solid var(--ap-line-soft); }
.woocommerce #payment div.payment_box { background: rgba(var(--ap-primary-rgb), .06); border-radius: var(--ap-radius-sm); }
.woocommerce #payment div.payment_box::before { border-bottom-color: rgba(var(--ap-primary-rgb), .06); }

.woocommerce .button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce button.button {
	background: var(--ap-primary);
	color: #fff;
	border-radius: var(--ap-radius-sm);
	font-weight: 600;
	padding: .65rem 1.25rem;
}
.woocommerce .button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--ap-primary-dark); color: #fff; }
.woocommerce .button.alt,
.woocommerce input.button.alt { background: var(--ap-primary); }
.woocommerce a.button.wc-forward,
.woocommerce .cart .button[name="update_cart"] { background: var(--ap-ink); }

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	overflow: hidden;
	box-shadow: var(--ap-shadow-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--ap-line-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 18px;
	color: var(--ap-ink);
	font-weight: 600;
	font-size: .9rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: rgba(var(--ap-primary-rgb), .08);
	color: var(--ap-primary);
}
.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	padding: 24px;
	box-shadow: var(--ap-shadow-sm);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top: 0;
	border-left: 4px solid var(--ap-primary);
	background: var(--ap-surface);
	border-radius: var(--ap-radius-sm);
	box-shadow: var(--ap-shadow-sm);
	padding: 14px 18px 14px 46px;
	font-size: .9rem;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--ap-primary); }
.woocommerce-error { border-left-color: var(--ap-sale); }
.woocommerce-error::before { color: var(--ap-sale); }

/* ---------------------------------------------------------------- Quantity stepper */

.woocommerce .quantity.ap-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	overflow: hidden;
	background: var(--ap-surface);
}
.woocommerce .quantity.ap-qty .qty {
	width: 56px;
	height: 46px;
	border: 0;
	border-left: 1px solid var(--ap-line);
	border-right: 1px solid var(--ap-line);
	border-radius: 0;
	text-align: center;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	background: transparent;
	color: var(--ap-ink);
	/* The native spinners duplicate the buttons. */
	appearance: textfield;
	-moz-appearance: textfield;
}
.woocommerce .quantity.ap-qty .qty::-webkit-outer-spin-button,
.woocommerce .quantity.ap-qty .qty::-webkit-inner-spin-button {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
}
.ap-qty__btn {
	flex: none;
	width: 42px;
	border: 0;
	background: transparent;
	color: var(--ap-ink);
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background var(--ap-speed) ease, color var(--ap-speed) ease;
}
.ap-qty__btn:hover { background: rgba(var(--ap-primary-rgb), .09); color: var(--ap-primary); }
.ap-qty__btn:active { background: rgba(var(--ap-primary-rgb), .16); }

.ap-qty-total {
	flex: 1 1 100%;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-top: 4px;
	padding: 12px 16px;
	border-radius: var(--ap-radius-sm);
	background: rgba(var(--ap-primary-rgb), .06);
}
.ap-qty-total__label {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ap-muted);
}
.ap-qty-total__value {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ap-ink);
	font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
	.woocommerce .quantity.ap-qty .qty { width: 48px; height: 44px; }
	.ap-qty__btn { width: 40px; }
	.woocommerce div.product form.cart { gap: 10px; }
	.woocommerce div.product form.cart .button { flex: 1 1 auto; }
}

/* ---------------------------------------------------------------- Cart & checkout */

/* Cart and Checkout blocks: give WooCommerce's React markup the theme's surfaces. */
.wc-block-components-sidebar-layout .wc-block-components-main,
.wp-block-woocommerce-cart .wc-block-cart__main,
.wp-block-woocommerce-checkout .wc-block-checkout__main {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	box-shadow: var(--ap-shadow-sm);
	padding: clamp(18px, 2.4vw, 30px);
}
.wc-block-components-sidebar {
	position: sticky;
	top: 92px;
	align-self: flex-start;
}
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--ap-surface);
	border: 1px solid var(--ap-line-soft);
	border-radius: var(--ap-radius);
	box-shadow: var(--ap-shadow-sm);
}
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block { padding: clamp(16px, 2vw, 24px); }

.wc-block-components-title,
.wc-block-cart__submit-container + *,
.wc-block-components-checkout-step__title {
	color: var(--ap-ink);
	letter-spacing: -.01em;
}
.wc-block-components-product-name { color: var(--ap-ink) !important; font-weight: 600; }
.wc-block-components-product-name:hover { color: var(--ap-primary) !important; }
.wc-block-components-product-price__value,
.wc-block-formatted-money-amount { font-variant-numeric: tabular-nums; }
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount { color: var(--ap-ink); font-weight: 800; }

.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	border-radius: var(--ap-radius-sm);
	background: var(--ap-placeholder);
}

/* Block buttons inherit the theme's shape and colour. */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--ap-primary) !important;
	border-color: var(--ap-primary) !important;
	color: #fff !important;
	border-radius: var(--ap-radius-sm) !important;
	font-weight: 700;
	min-height: 50px;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--ap-primary-dark) !important;
	border-color: var(--ap-primary-dark) !important;
}

/* The block quantity stepper, aligned with the theme's own. */
.wc-block-components-quantity-selector {
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	overflow: hidden;
	background: var(--ap-surface);
}
.wc-block-components-quantity-selector__button {
	color: var(--ap-ink);
	font-weight: 600;
	transition: background var(--ap-speed) ease, color var(--ap-speed) ease;
}
.wc-block-components-quantity-selector__button:hover {
	background: rgba(var(--ap-primary-rgb), .09);
	color: var(--ap-primary);
}
.wc-block-components-quantity-selector__input { font-weight: 700; color: var(--ap-ink); }

/* Form fields */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-combobox input,
.wc-block-components-textarea {
	border: 1px solid var(--ap-line) !important;
	border-radius: var(--ap-radius-sm) !important;
	background: var(--ap-surface) !important;
	color: var(--ap-ink) !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus,
.wc-block-components-combobox input:focus {
	border-color: var(--ap-primary) !important;
	box-shadow: 0 0 0 3px rgba(var(--ap-primary-rgb), .12) !important;
	outline: none !important;
}

/* Coupon / express areas */
.wc-block-components-panel__button { color: var(--ap-primary); font-weight: 600; }
.wc-block-components-totals-coupon__form .wc-block-components-button { min-height: 44px; }

@media (max-width: 991.98px) {
	.wc-block-components-sidebar { position: static; }
	.wc-block-components-sidebar-layout .wc-block-components-main,
	.wp-block-woocommerce-cart .wc-block-cart__main,
	.wp-block-woocommerce-checkout .wc-block-checkout__main { padding: 16px; }
}

/* ---------------------------------------------------------------- Shop filter sidebar */

.ap-shop__sidebar .widget-title,
.ap-shop__sidebar .wp-block-heading {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ap-muted);
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--ap-line-soft);
}
.ap-shop__sidebar .widget ul { display: flex; flex-direction: column; gap: 2px; }
.ap-shop__sidebar .widget ul li {
	border-bottom: 0;
	padding: 6px 0;
	font-size: .9rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
.ap-shop__sidebar .widget ul li a { color: var(--ap-ink); }
.ap-shop__sidebar .widget ul li a:hover { color: var(--ap-primary); }
.ap-shop__sidebar .widget ul li.current-cat > a { color: var(--ap-primary); font-weight: 700; }
.ap-shop__sidebar .widget .count { color: var(--ap-muted); font-size: .8rem; }

.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--ap-line); border-radius: 999px; height: 4px; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-range { background: var(--ap-primary); }
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
	background: var(--ap-surface);
	border: 2px solid var(--ap-primary);
	width: 16px;
	height: 16px;
	top: -6px;
	border-radius: 50%;
	box-shadow: var(--ap-shadow-sm);
}
.woocommerce .widget_price_filter .price_slider_amount .button {
	background: var(--ap-primary);
	color: #fff;
	border-radius: var(--ap-radius-sm);
	font-size: .82rem;
	padding: .5rem 1rem;
}
.woocommerce .widget_price_filter .price_slider_amount .price_label { font-size: .85rem; color: var(--ap-muted); }

.woocommerce .widget_layered_nav_filters ul li a,
.woocommerce-widget-layered-nav-list__item a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.woocommerce .widget_layered_nav_filters ul li {
	background: rgba(var(--ap-primary-rgb), .08);
	border-radius: 999px;
	padding: 4px 12px;
	font-size: .82rem;
}

/* Product lists in the narrow filter column need a tighter row than the cart drawer. */
.ap-shop__sidebar ul.product_list_widget li { display: block; padding: 12px 0; }
.ap-shop__sidebar ul.product_list_widget li + li { border-top: 1px solid var(--ap-line-soft); }
.ap-shop__sidebar ul.product_list_widget li > a:not(.remove) {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	font-size: .82rem;
	line-height: 1.3;
}
.ap-shop__sidebar ul.product_list_widget li img { width: 44px; height: 44px; }
.ap-shop__sidebar ul.product_list_widget li .woocommerce-Price-amount { font-size: .82rem; }
.ap-shop__sidebar ul.product_list_widget li del { opacity: .6; margin-right: 4px; }
.ap-shop__sidebar ul.product_list_widget li ins { text-decoration: none; color: var(--ap-primary); font-weight: 700; }
.ap-shop__sidebar ul.product_list_widget li .star-rating { margin: 4px 0 0 54px; }

/*
 * Cart/Checkout block layout. Adding padding to .wc-block-components-main without
 * fixing the track widths let the summary column collapse to a word-per-line, so the
 * two columns are pinned explicitly here.
 */
@media (min-width: 992px) {
	.wc-block-components-sidebar-layout {
		display: flex;
		flex-wrap: nowrap;
		align-items: flex-start;
		gap: 28px;
	}
	/* flex-basis must be 0, not auto: with auto the main column takes its full
	   content width and pushes the summary onto a second row. */
	.wc-block-components-sidebar-layout .wc-block-components-main {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
		padding-right: clamp(18px, 2.4vw, 30px);
	}
	.wc-block-components-sidebar-layout .wc-block-components-sidebar {
		flex: 0 0 clamp(320px, 32%, 400px);
		width: clamp(320px, 32%, 400px);
		min-width: 0;
		padding-left: 0;
	}
}

/* The page template centres content in a 9-column article; commerce pages need it all. */
.woocommerce-cart .ap-content > .row > [class*="col-lg-"],
.woocommerce-checkout .ap-content > .row > [class*="col-lg-"],
.woocommerce-account .ap-content > .row > [class*="col-lg-"] {
	flex: 0 0 100%;
	max-width: 100%;
	width: 100%;
}

/* The summary is a receipt, not a product listing - the blurb belongs on the product page. */
.wc-block-components-order-summary-item__description,
.wc-block-components-product-metadata__description { display: none; }
.wc-block-components-order-summary-item__header { gap: 8px; }
.wc-block-components-order-summary-item__total-price { white-space: nowrap; }
.wc-block-components-order-summary-item__quantity { flex: none; }

/*
 * The cart line-items table has a minimum width of its own; the card padding this
 * theme adds pushed it past a 360px viewport. Trim the padding and let the total
 * column stack its price and sale badge instead of sitting them side by side.
 */
@media (max-width: 575.98px) {
	.wp-block-woocommerce-cart .wc-block-cart__main,
	.wp-block-woocommerce-checkout .wc-block-checkout__main { padding: 12px; }

	/* The row is a CSS grid; its tracks, not the table, decide the width. */
	.wc-block-cart-items { width: 100%; }
	.wc-block-cart-items__row { grid-template-columns: 60px minmax(0, 1fr) minmax(0, max-content); }
	.wc-block-cart-item__total { white-space: normal; min-width: 0; }
	.wc-block-cart-item__total-price-and-sale-badge-wrapper {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 4px;
	}
	.wc-block-components-sale-badge {
		white-space: nowrap;
		font-size: .68rem;
		padding: 2px 6px;
	}
	.wc-block-cart-item__image { width: 60px; }
	.wc-block-cart-item__image img { width: 60px; }
}

/*
 * Order summary on phones. WooCommerce lays each line out as a flex row of
 * image / description / price; inside a narrow sidebar the description collapses to
 * about 40px and the product name renders one letter per line. A two-column grid with
 * the price under the name gives the text the full remaining width.
 */
@media (max-width: 767.98px) {
	.wp-block-woocommerce-checkout-order-summary-block,
	.wp-block-woocommerce-cart-order-summary-block { padding: 14px; }

	.wc-block-components-order-summary-item {
		display: grid;
		grid-template-columns: 48px minmax(0, 1fr);
		column-gap: 12px;
		row-gap: 4px;
		align-items: start;
	}
	.wc-block-components-order-summary-item__image { grid-column: 1; grid-row: 1 / span 2; }
	.wc-block-components-order-summary-item__description { grid-column: 2; min-width: 0; }
	.wc-block-components-order-summary-item__total-price {
		grid-column: 2;
		text-align: left;
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 6px;
	}
	.wc-block-components-order-summary-item .wc-block-components-product-name {
		display: block;
		min-width: 0;
		overflow-wrap: anywhere;
		font-size: .85rem;
		line-height: 1.3;
	}
	.wc-block-components-sale-badge { white-space: nowrap; }
}

/*
 * Cart and Checkout blocks bring their own panels. The page template also wraps content
 * in an .ap-single card, which nested one card inside another.
 */
.woocommerce-cart .ap-single,
.woocommerce-checkout .ap-single {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

/* ---------------------------------------------------------------- Mobile refinements */
/* ---------------------------------------------------------------- Mobile refinements */
/* ---------------------------------------------------------------- Mobile refinements */

:root { --ap-mobile-bar-h: 58px; }

@media (max-width: 767.98px) {
	/* Two cards to a row leaves ~160px; the label was wrapping onto two lines. */
	.woocommerce ul.products li.product .ap-card__cta .button {
		font-size: .78rem;
		padding: .55rem .5rem;
		white-space: nowrap;
		line-height: 1.2;
	}
	.woocommerce ul.products li.product .ap-card__cta .button::before {
		margin-right: 5px;
		font-size: .85rem;
	}
	.ap-card__body { padding: 12px 12px 14px; gap: 5px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .88rem; }
	.ap-card__sku { font-size: .68rem; }
	.woocommerce ul.products li.product .price { font-size: .95rem; }
	.ap-card__stock { font-size: .74rem; }

	/* The hover swap has no meaning on touch and doubles the image payload. */
	.ap-card__hover-img { display: none; }
}

/* Floating controls clear the quick-action bar rather than sitting on the cards. */
@media (max-width: 991.98px) {
	:root { --ap-float-bottom: calc(var(--ap-mobile-bar-h) + 14px); }
}

/*
 * Sticky add to cart sits directly above the quick-action bar instead of replacing it,
 * so Home / Shop / Cart stay reachable while the buy button is on screen.
 */
@media (max-width: 991.98px) {
	.ap-sticky-atc {
		bottom: var(--ap-mobile-bar-h);
		padding-bottom: 10px;
	}
	body.single-product.has-sticky-atc .ap-mobile-bar { transform: none; }
	body.single-product.has-sticky-atc { --ap-float-bottom: calc(var(--ap-mobile-bar-h) + 86px); }
	body.single-product.has-sticky-atc.arromelle-pro { padding-bottom: calc(var(--ap-mobile-bar-h) + 72px); }
}

/* ---------------------------------------------------------------- Mini cart drawer *//* ---------------------------------------------------------------- Mini cart drawer */
/* ---------------------------------------------------------------- Mini cart drawer */
/* ---------------------------------------------------------------- Mini cart drawer */
/* ---------------------------------------------------------------- Mini cart drawer *//* ---------------------------------------------------------------- Mini cart drawer *//* ---------------------------------------------------------------- Mini cart drawer */

/*
 * WordPress only puts the `woocommerce` body class on shop/product/taxonomy views,
 * not on cart, checkout, account or the front page. The drawer is printed in the
 * footer of *every* page, so none of these rules may depend on a `.woocommerce`
 * ancestor - that is what left the drawer as an unstyled bulleted list with
 * full-bleed images.
 *
 * WooCommerce nests the thumbnail *inside* the product link, so the row is laid
 * out by making that link the flex container rather than the <li>.
 */

.ap-drawer .widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }

ul.cart_list,
ul.product_list_widget {
	list-style: none;
	margin: 0;
	padding: 0;
}
ul.cart_list li,
ul.product_list_widget li {
	position: relative;
	padding: 14px 32px 14px 0;
	margin: 0;
	border-bottom: 1px solid var(--ap-line-soft);
	list-style: none;
}
ul.cart_list li::before,
ul.product_list_widget li::before { content: none; }

ul.cart_list li > a:not(.remove),
ul.product_list_widget li > a:not(.remove) {
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 600;
	font-size: .88rem;
	line-height: 1.35;
	color: var(--ap-ink);
}
ul.cart_list li > a:not(.remove):hover,
ul.product_list_widget li > a:not(.remove):hover { color: var(--ap-primary); }

ul.cart_list li img,
ul.product_list_widget li img {
	flex: none;
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: var(--ap-radius-sm);
	float: none !important;
	margin: 0 !important;
	background: var(--ap-placeholder);
}

ul.cart_list li .quantity,
ul.product_list_widget li .quantity,
ul.cart_list li .variation {
	display: block;
	margin: 4px 0 0 68px;
	font-size: .82rem;
	color: var(--ap-muted);
}
ul.cart_list li .variation p { margin: 0; }

/*
 * WooCommerce's widget CSS pins this to `left: 0`; we want it on the right, so the
 * selector has to match its specificity and `left` has to be unset explicitly.
 */
.ap-drawer .widget_shopping_cart .cart_list li a.remove,
.ap-drawer .widget_shopping_cart .product_list_widget li a.remove,
.ap-drawer ul.cart_list li a.remove,
ul.cart_list li a.remove,
ul.product_list_widget li a.remove {
	position: absolute;
	top: 50%;
	left: auto;
	right: 0;
	transform: translateY(-50%);
	width: 26px;
	height: 26px;
	line-height: 24px;
	text-align: center;
	border-radius: 50%;
	font-size: 1rem;
	color: var(--ap-muted) !important;
	background: transparent;
}
.ap-drawer .widget_shopping_cart .cart_list li a.remove:hover,
.ap-drawer ul.cart_list li a.remove:hover,
ul.cart_list li a.remove:hover,
ul.product_list_widget li a.remove:hover {
	background: rgba(var(--ap-primary-rgb), .1);
	color: var(--ap-sale) !important;
}

ul.cart_list li:last-of-type,
ul.product_list_widget li:last-of-type { border-bottom: 0; }

.widget_shopping_cart .total,
.woocommerce.widget_shopping_cart .total {
	border-top: 1px solid var(--ap-line);
	border-bottom: 0;
	padding: 16px 0;
	margin: 4px 0 0;
	font-size: 1rem;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}
.widget_shopping_cart .total strong {
	font-weight: 600;
	color: var(--ap-muted);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .1em;
}
.widget_shopping_cart .total .amount { font-weight: 800; font-size: 1.2rem; color: var(--ap-ink); }

/*
 * These need to outrank `.woocommerce a.button.wc-forward`, which the generic cart
 * styles below use to paint the dark "continue" button.
 */
.ap-drawer .widget_shopping_cart .buttons {
	display: grid;
	gap: 10px;
	margin: 0;
	padding-bottom: 4px;
}
.ap-drawer .widget_shopping_cart .buttons a,
.ap-drawer .widget_shopping_cart .buttons a.button,
.ap-drawer .widget_shopping_cart .buttons a.wc-forward {
	display: block;
	width: 100%;
	text-align: center;
	margin: 0;
	padding: .7rem 1.1rem;
	border-radius: var(--ap-radius-sm);
	font-weight: 600;
	font-size: .9rem;
	background: transparent;
	border: 1px solid rgba(var(--ap-primary-rgb), .4);
	color: var(--ap-primary);
}
.ap-drawer .widget_shopping_cart .buttons a:hover,
.ap-drawer .widget_shopping_cart .buttons a.wc-forward:hover {
	background: rgba(var(--ap-primary-rgb), .08);
	color: var(--ap-primary-dark);
}
.ap-drawer .widget_shopping_cart .buttons a.checkout,
.ap-drawer .widget_shopping_cart .buttons a.button.checkout {
	background: var(--ap-primary);
	border-color: var(--ap-primary);
	color: #fff;
}
.ap-drawer .widget_shopping_cart .buttons a.checkout:hover,
.ap-drawer .widget_shopping_cart .buttons a.button.checkout:hover {
	background: var(--ap-primary-dark);
	color: #fff;
}

.woocommerce-mini-cart__empty-message { color: var(--ap-muted); text-align: center; padding: 40px 0; margin: 0; }

/* ---------------------------------------------------------------- Quick view */

.ap-quickview .modal-content {
	border: 0;
	border-radius: var(--ap-radius);
	overflow: hidden;
	box-shadow: var(--ap-shadow-md);
}
.ap-quickview__close { position: absolute; top: 14px; right: 14px; z-index: 3; }
.ap-quickview .modal-body { padding: 0; }
.ap-qv { display: grid; grid-template-columns: 1fr 1fr; }
.ap-qv__media { background: var(--ap-placeholder); }
.ap-qv__media img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.ap-qv__thumbs { display: flex; gap: 8px; padding: 10px; }
.ap-qv__thumbs img { width: 54px; height: 54px; border-radius: 8px; cursor: pointer; border: 2px solid transparent; }
.ap-qv__thumbs img.is-active { border-color: var(--ap-primary); }
.ap-qv__body { padding: 26px 24px; display: flex; flex-direction: column; gap: 10px; }
.ap-qv__title { font-size: 1.25rem; margin: 0; }
.ap-qv__price { font-size: 1.3rem; font-weight: 800; color: var(--ap-primary); }
.ap-qv__price del { font-size: .95rem; color: var(--ap-muted); font-weight: 400; margin-right: 6px; }
.ap-qv__excerpt { color: var(--ap-muted); font-size: .9rem; }
.ap-qv__meta { font-size: .8rem; color: var(--ap-muted); }
.ap-qv__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.ap-qv__qty {
	width: 74px;
	height: 44px;
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	text-align: center;
	font-weight: 600;
}
@media (max-width: 767.98px) {
	.ap-qv { grid-template-columns: 1fr; }
	.ap-qv__body { padding: 20px 18px 24px; }
}

/* ---------------------------------------------------------------- Wishlist drawer */

.ap-wish-item {
	display: flex;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--ap-line-soft);
	align-items: center;
}
.ap-wish-item img { width: 62px; height: 62px; object-fit: cover; border-radius: var(--ap-radius-sm); }
.ap-wish-item__body { flex: 1 1 auto; min-width: 0; }
.ap-wish-item__title { font-size: .88rem; font-weight: 600; color: var(--ap-ink); display: block; }
.ap-wish-item__price { font-size: .85rem; color: var(--ap-primary); font-weight: 600; }
.ap-wish-item__remove { border: 0; background: transparent; color: var(--ap-muted); font-size: 1rem; }
.ap-wish-item__remove:hover { color: var(--ap-sale); }

/* ---------------------------------------------------------------- Misc Woo resets */

.woocommerce .woocommerce-breadcrumb { display: none; }
.woocommerce-store-notice, p.demo_store { background: var(--ap-primary); }
.woocommerce span.onsale { display: none; }
.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: 6px;
	justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--ap-line);
	border-radius: var(--ap-radius-sm);
	min-width: 40px;
	padding: 8px 12px;
	font-weight: 600;
	font-size: .88rem;
	color: var(--ap-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--ap-primary);
	border-color: var(--ap-primary);
	color: #fff;
}
