/* AP saleroom - WooCommerce shop in the site design (navy, cream, union red).
   Loaded only on shop, product, cart, checkout and account pages. */

.ap-shop-page { --ap-shop-card: var(--ap-navy-900); --ap-shop-line: var(--ap-navy-700); }
.ap-shop-page .ap-wrap--narrow { max-width: 1140px; }
.ap-shop-page .ap-prose { max-width: none; }
.ap-shop-page .woocommerce,
.ap-shop-page .woocommerce-page { color: var(--ap-cream); }
.ap-shop-page a:not(.button):not(.ap-btn) { color: var(--ap-cream); }
.ap-shop-page a:not(.button):not(.ap-btn):hover { color: var(--ap-red-bright); }
.ap-shop__wrap { padding-block-start: clamp(2rem, 4vw, 3rem); }

/* Toolbar: result count + sorting */
.ap-shop-page .woocommerce-result-count { color: var(--ap-mist); font-size: .9375rem; margin: .4rem 0 1.5rem; }
.ap-shop-page .woocommerce-ordering select,
.ap-shop-page select,
.ap-shop-page input.input-text,
.ap-shop-page textarea,
.ap-shop-page input[type="text"],
.ap-shop-page input[type="email"],
.ap-shop-page input[type="tel"],
.ap-shop-page input[type="password"],
.ap-shop-page input[type="number"],
.ap-shop-page .select2-container--default .select2-selection--single,
.ap-shop-page .woocommerce form .form-row .input-text,
.ap-shop-page .woocommerce form .form-row select,
.ap-shop-page .woocommerce form .form-row textarea,
.ap-shop-page .woocommerce-cart table.cart td.actions .coupon .input-text {
	background: var(--ap-navy-800);
	border: 1px solid var(--ap-shop-line);
	border-radius: var(--ap-radius);
	color: var(--ap-cream);
	font: inherit;
	padding: .7em .95em;
	min-height: 2.9em;
}
.ap-shop-page .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--ap-cream); line-height: 1.5; padding: 0; }
.ap-shop-page .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }
.ap-shop-page .select2-dropdown { background: var(--ap-navy-800); border-color: var(--ap-shop-line); color: var(--ap-cream); }
.ap-shop-page .select2-container--default .select2-results__option--highlighted[aria-selected],
.ap-shop-page .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--ap-union-red); }
.ap-shop-page .select2-search--dropdown .select2-search__field { background: var(--ap-navy-900); color: var(--ap-cream); border-color: var(--ap-shop-line); }
.ap-shop-page input:focus,
.ap-shop-page select:focus,
.ap-shop-page textarea:focus { border-color: var(--ap-red-bright); outline: none; }
.ap-shop-page form .form-row label { color: var(--ap-cream); font-weight: 500; font-size: .9375rem; }
.ap-shop-page form .form-row .required { color: var(--ap-red-bright); text-decoration: none; }
.ap-shop-page ::placeholder { color: rgb(169 182 204 / .7); }

/* Buttons */
.ap-shop-page a.button,
.ap-shop-page button.button,
.ap-shop-page input.button,
.ap-shop-page #respond input#submit,
.ap-shop-page a.button.alt,
.ap-shop-page button.button.alt,
.ap-shop-page #place_order {
	background: var(--ap-union-red);
	border: 2px solid var(--ap-union-red);
	border-radius: 999px;
	color: var(--ap-paper);
	font-family: var(--ap-body);
	font-weight: 600;
	font-size: .875rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: .8rem 1.5rem;
	line-height: 1.2;
	transition: background .25s var(--ap-ease-out), border-color .25s var(--ap-ease-out);
}
.ap-shop-page a.button:hover,
.ap-shop-page button.button:hover,
.ap-shop-page input.button:hover,
.ap-shop-page a.button.alt:hover,
.ap-shop-page button.button.alt:hover,
.ap-shop-page #place_order:hover { background: var(--ap-red-bright); border-color: var(--ap-red-bright); color: var(--ap-paper); }
.ap-shop-page button.button:disabled,
.ap-shop-page button.button:disabled[disabled] { background: var(--ap-navy-700); border-color: var(--ap-navy-700); color: var(--ap-mist); opacity: 1; }
.ap-shop-page a.added_to_cart { display: inline-block; margin-top: .6rem; font-size: .875rem; color: var(--ap-mist); }

/* Product grid: cards in the style of the catalogue lot cards */
.ap-shop-page ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 0; }
.ap-shop-page ul.products::before,
.ap-shop-page ul.products::after { display: none; }
.ap-shop-page ul.products li.product {
	width: auto; float: none; margin: 0;
	display: flex; flex-direction: column;
	background: var(--ap-shop-card);
	border: 1px solid var(--ap-shop-line);
	border-radius: var(--ap-radius);
	overflow: hidden;
	transition: transform .35s var(--ap-ease-out), box-shadow .35s var(--ap-ease-out);
}
.ap-shop-page ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgb(0 0 0 / .4); }
.ap-shop-page ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; }
.ap-shop-page ul.products li.product a img { margin: 0; aspect-ratio: 1; object-fit: contain; background: var(--ap-paper); }
.ap-shop-page ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--ap-heading); font-size: 1.1rem; font-weight: 600; line-height: 1.3;
	color: var(--ap-cream); padding: 1rem 1.1rem .3rem; margin: 0;
}
.ap-shop-page ul.products li.product .price { color: var(--ap-brass); font-weight: 700; font-size: 1.05rem; padding: 0 1.1rem .9rem; margin: 0; display: block; }
.ap-shop-page ul.products li.product .price del { color: var(--ap-mist); font-weight: 400; opacity: .8; }
.ap-shop-page ul.products li.product .price ins { text-decoration: none; }
.ap-shop-page ul.products li.product .button { margin: auto 1.1rem 1.1rem; align-self: flex-start; }
.ap-shop-page span.onsale,
.ap-shop-page ul.products li.product .onsale {
	background: var(--ap-union-red); color: var(--ap-paper); border-radius: 999px;
	min-height: 0; min-width: 0; line-height: 1; padding: .45rem .7rem; font-size: .75rem; font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase; top: .75rem; left: .75rem; right: auto; margin: 0;
}
.ap-shop-page .star-rating span::before,
.ap-shop-page .star-rating::before { color: var(--ap-brass); }

/* Pagination */
.ap-shop-page nav.woocommerce-pagination ul { border: 0; display: flex; gap: .4rem; justify-content: center; margin-top: 2.5rem; }
.ap-shop-page nav.woocommerce-pagination ul li { border: 0; }
.ap-shop-page nav.woocommerce-pagination ul li a,
.ap-shop-page nav.woocommerce-pagination ul li span { background: var(--ap-navy-800); color: var(--ap-cream); border-radius: 8px; padding: .6rem .9rem; min-width: 2.6rem; }
.ap-shop-page nav.woocommerce-pagination ul li span.current,
.ap-shop-page nav.woocommerce-pagination ul li a:hover { background: var(--ap-union-red); color: var(--ap-paper); }

/* Single product */
.ap-shop-page div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.ap-shop-page div.product div.images,
.ap-shop-page div.product div.summary { width: auto; float: none; margin: 0; }
.ap-shop-page div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--ap-radius); overflow: hidden; background: var(--ap-paper); }
.ap-shop-page div.product div.images .flex-control-thumbs li img { border-radius: 6px; opacity: .65; }
.ap-shop-page div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; }
.ap-shop-page div.product .product_title { font-family: var(--ap-display); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.1; color: var(--ap-cream); margin-bottom: .8rem; }
.ap-shop-page div.product p.price,
.ap-shop-page div.product span.price { color: var(--ap-brass); font-size: 1.6rem; font-weight: 700; }
.ap-shop-page div.product .woocommerce-product-details__short-description { color: var(--ap-mist); }
.ap-shop-page div.product form.cart { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin: 1.5rem 0; }
.ap-shop-page div.product form.cart div.quantity { float: none; margin: 0; }
.ap-shop-page .quantity .qty { width: 4.5rem; text-align: center; }
.ap-shop-page div.product .stock { color: var(--ap-mist); }
.ap-shop-page div.product .stock.out-of-stock { color: var(--ap-red-bright); }
.ap-shop-page div.product .product_meta { color: var(--ap-mist); font-size: .875rem; border-top: 1px solid var(--ap-shop-line); padding-top: 1rem; }
.ap-shop-page div.product .woocommerce-tabs,
.ap-shop-page div.product .related,
.ap-shop-page div.product .upsells { grid-column: 1 / -1; }
.ap-shop-page div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 1rem 0 0; border-bottom: 1px solid var(--ap-shop-line); }
.ap-shop-page div.product .woocommerce-tabs ul.tabs::before { display: none; }
.ap-shop-page div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0 1.5rem 0 0; padding: 0; }
.ap-shop-page div.product .woocommerce-tabs ul.tabs li::before,
.ap-shop-page div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.ap-shop-page div.product .woocommerce-tabs ul.tabs li a { color: var(--ap-mist); padding: .8rem 0; font-weight: 600; }
.ap-shop-page div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ap-cream); box-shadow: inset 0 -3px 0 var(--ap-union-red); }
.ap-shop-page div.product .woocommerce-tabs .panel { color: var(--ap-mist); padding-top: 1.2rem; }
.ap-shop-page div.product .woocommerce-tabs .panel h2,
.ap-shop-page div.product .related > h2 { font-family: var(--ap-heading); color: var(--ap-cream); font-size: 1.4rem; }

/* Notices */
.ap-shop-page .woocommerce-message,
.ap-shop-page .woocommerce-info,
.ap-shop-page .woocommerce-error,
.ap-shop-page .woocommerce-notices-wrapper .woocommerce-message {
	background: var(--ap-navy-900);
	color: var(--ap-cream);
	border: 1px solid var(--ap-shop-line);
	border-left: 4px solid var(--ap-brass);
	border-radius: var(--ap-radius);
	padding: 1rem 1.25rem 1rem 3.2rem;
}
.ap-shop-page .woocommerce-error { border-left-color: var(--ap-red-bright); }
.ap-shop-page .woocommerce-message::before,
.ap-shop-page .woocommerce-info::before { color: var(--ap-brass); }
.ap-shop-page .woocommerce-error::before { color: var(--ap-red-bright); }
.ap-shop-page .woocommerce-message .button,
.ap-shop-page .woocommerce-info .button { float: right; padding: .55rem 1.1rem; }

/* Cart and checkout tables */
.ap-shop-page table.shop_table {
	border: 1px solid var(--ap-shop-line); border-radius: var(--ap-radius); border-collapse: separate; overflow: hidden;
	background: var(--ap-navy-900); color: var(--ap-cream);
}
.ap-shop-page table.shop_table th { color: var(--ap-cream); font-weight: 600; border-color: var(--ap-shop-line); }
.ap-shop-page table.shop_table td { border-color: var(--ap-shop-line); }
.ap-shop-page table.shop_table td.product-name a { color: var(--ap-cream); font-weight: 600; }
.ap-shop-page table.shop_table img { width: 64px; border-radius: 6px; background: var(--ap-paper); }
.ap-shop-page a.remove { color: var(--ap-red-bright) !important; }
.ap-shop-page a.remove:hover { background: var(--ap-union-red); color: var(--ap-paper) !important; }
.ap-shop-page .cart-collaterals .cart_totals h2,
.ap-shop-page .woocommerce-checkout h3,
.ap-shop-page .woocommerce-account h2 { font-family: var(--ap-heading); color: var(--ap-cream); }
.ap-shop-page .cart-collaterals .cart_totals .order-total .amount,
.ap-shop-page .woocommerce-checkout-review-order-table .order-total .amount { color: var(--ap-brass); }
.ap-shop-page .woocommerce-checkout #payment {
	background: var(--ap-navy-900); border: 1px solid var(--ap-shop-line); border-radius: var(--ap-radius);
}
.ap-shop-page .woocommerce-checkout #payment ul.payment_methods { border-color: var(--ap-shop-line); }
.ap-shop-page .woocommerce-checkout #payment div.payment_box { background: var(--ap-navy-800); color: var(--ap-mist); }
.ap-shop-page .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--ap-navy-800); }
.ap-shop-page .woocommerce-privacy-policy-text,
.ap-shop-page .woocommerce-terms-and-conditions-wrapper { color: var(--ap-mist); font-size: .875rem; }
.ap-shop-page .cart-empty.woocommerce-info { font-size: 1.05rem; }

/* My account */
.ap-shop-page .woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.ap-shop-page .woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: .7rem 1rem; border-radius: 8px; background: var(--ap-navy-900); border: 1px solid var(--ap-shop-line); text-decoration: none; }
.ap-shop-page .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ap-union-red); border-color: var(--ap-union-red); color: var(--ap-paper); }

/* Empty shop */
.ap-shop__empty { max-width: 46ch; margin: 1rem auto 2rem; text-align: center; color: var(--ap-mist); }
.ap-shop__empty-title { font-family: var(--ap-heading); font-size: 1.5rem; color: var(--ap-cream); margin-bottom: .6rem; }

@media (max-width: 900px) {
	.ap-shop-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.ap-shop-page div.product { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.ap-shop-page ul.products { grid-template-columns: 1fr; }
}
