/* WooCommerce in the house style: same type, one ink, flat buttons, square pictures. Templates are WooCommerce's own. */
.shop { padding: calc(var(--section) / 3) var(--margin) calc(var(--section) / 2); }
.shop .woocommerce-products-header__title, .shop .product_title { font-size: var(--step-head); line-height: 1; letter-spacing: -0.025em; }
.shop .woocommerce-breadcrumb { margin: 0 0 1.5rem; font-size: var(--step-small); color: var(--muted); }
.shop .woocommerce-breadcrumb a { text-decoration: underline; text-underline-offset: 0.18em; }
.shop .woocommerce-result-count, .shop .woocommerce-ordering { margin: 1.5rem 0; font-size: var(--step-small); }
.shop .woocommerce-ordering select { width: auto; min-height: 2.5rem; padding: 0.4rem 2rem 0.4rem 0.8rem; }
.shop .woocommerce-notices-wrapper .woocommerce-message, .shop .woocommerce-notices-wrapper .woocommerce-info, .shop .woocommerce-notices-wrapper .woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-error { margin: 0 0 1.5rem; padding: 0.9rem 1rem; background: var(--surface); border: 0; color: var(--ink); list-style: none; }
.woocommerce-message a.button, .woocommerce-info a.button { margin-right: 1rem; }

/* category tiles: the shop opens with the main categories, a category page with its groups */
.cat-tiles { margin: 1.5rem 0 1rem; }
.cat-tiles__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gutter); margin: 0; padding: 0; list-style: none; }
.cat-tile { display: block; color: inherit; text-decoration: none; }
.cat-tile img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--surface); }
.cat-tile__name { display: block; margin-top: 0.75rem; font-family: var(--font-display); font-size: var(--step-lead); line-height: 1.15; }
.cat-tile:hover .cat-tile__name, .cat-tile:focus-visible .cat-tile__name { text-decoration: underline; text-underline-offset: 0.18em; }
.cat-tile--text { padding: 1.1rem 1rem; background: var(--surface); }
.cat-tile--text .cat-tile__name { margin: 0; }
.cat-tile--text:hover { background: var(--surface-2); }
.cat-tiles__more { margin: 1.5rem 0 0; font-size: var(--step-small); color: var(--muted); }
.cat-tiles__more a { color: var(--ink); text-decoration: underline; text-underline-offset: 0.18em; }
@media (max-width: 40em) { .cat-tiles__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }

/* the product grid */
.shop ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3rem var(--gutter); margin: 2rem 0 0; padding: 0; list-style: none; }
.shop ul.products::before, .shop ul.products::after { display: none; }
.shop ul.products li.product { width: auto; margin: 0; float: none; }
.shop ul.products li.product a img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--surface); }
.shop ul.products li.product .woocommerce-loop-product__title, .shop ul.products li.product h2 { margin: 0.9rem 0 0.25rem; font-family: var(--font-display); font-size: var(--step-lead); line-height: 1.15; }
.shop ul.products li.product .price { font-variant-numeric: tabular-nums; }
.shop ul.products li.product .price del { color: var(--muted); }
.shop ul.products li.product .button { margin-top: 0.75rem; }
.shop ul.products li.product .onsale { position: absolute; top: 0.75rem; left: 0.75rem; padding: 0.25rem 0.6rem; background: var(--ink); color: var(--bg); border-radius: var(--radius); font-size: var(--step-small); }
.shop ul.products li.product { position: relative; }
.woocommerce-pagination { margin-top: 3rem; }
.woocommerce-pagination ul.page-numbers { display: flex; gap: 0.5rem; list-style: none; padding: 0; margin: 0; border: 0; }
.woocommerce-pagination .page-numbers li { border: 0; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span { display: inline-flex; min-width: 2.5rem; min-height: 2.5rem; align-items: center; justify-content: center; padding: 0 0.5rem; border-radius: var(--radius); }
.woocommerce-pagination .page-numbers span.current { background: var(--ink); color: var(--bg); }
@media (max-width: 64em) { .shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 40em) { .shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; } }

/* one product */
.shop div.product { display: grid; grid-template-columns: 7fr 5fr; column-gap: calc(var(--gutter) * 2); }
.shop div.product .woocommerce-product-gallery { width: auto; float: none; margin: 0; }
.shop div.product .woocommerce-product-gallery img { width: 100%; }
.shop div.product .summary { width: auto; float: none; margin: 0; }
.shop div.product .summary .price { font-size: var(--step-lead); font-variant-numeric: tabular-nums; margin: 1rem 0; }
.shop div.product .summary .woocommerce-product-details__short-description { margin: 1rem 0 1.5rem; }
.shop div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 1.5rem 0; }
.shop div.product form.cart .quantity .qty { width: 5rem; min-height: 3rem; text-align: center; }
.shop div.product form.cart.variations_form { display: block; }
.shop div.product table.variations { margin-bottom: 1rem; }
.shop div.product table.variations td, .shop div.product table.variations th { padding: 0.4rem 0; }
.shop div.product .product_meta { margin-top: 1.5rem; color: var(--muted); font-size: var(--step-small); }
.shop div.product .woocommerce-tabs, .shop div.product .related, .shop div.product .upsells { grid-column: 1 / -1; margin-top: 4rem; }
.shop div.product .woocommerce-tabs ul.tabs { display: flex; gap: 0.5rem; padding: 0; margin: 0 0 1.5rem; border: 0; overflow: visible; }
.shop div.product .woocommerce-tabs ul.tabs::before, .shop div.product .woocommerce-tabs ul.tabs::after { display: none; }
.shop div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; box-shadow: none; /* taste-skill-ignore: removes the plugin shadow */ }
.shop div.product .woocommerce-tabs ul.tabs li::before, .shop div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.shop div.product .woocommerce-tabs ul.tabs li a { display: inline-block; padding: 0.6rem 1rem; border-radius: var(--radius); font-weight: 500; color: var(--ink); }
.shop div.product .woocommerce-tabs ul.tabs li.active a { background: var(--ink); color: var(--bg); }
.shop div.product .woocommerce-tabs .panel { max-width: 64ch; }
.shop div.product .related > h2, .shop div.product .upsells > h2 { font-size: var(--step-head); margin-bottom: 1rem; }
@media (max-width: 56em) { .shop div.product { grid-template-columns: 1fr; row-gap: 2rem; } }

/* cart, checkout, account */
.woocommerce-cart .prose, .woocommerce-checkout .prose, .woocommerce-account .prose { max-width: none; }
.woocommerce table.shop_table { width: 100%; border: 0; border-collapse: collapse; border-radius: 0; margin: 0 0 2rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 0.9rem 0.5rem; border: 0; text-align: left; vertical-align: middle; }
.woocommerce table.shop_table thead th { color: var(--muted); font-weight: 500; font-size: var(--step-small); }
.woocommerce table.shop_table tbody tr:nth-child(odd) td { background: var(--surface); }
.woocommerce table.shop_table td.product-thumbnail img { width: 4rem; }
.woocommerce table.shop_table td.product-remove a.remove { color: var(--ink) !important; font-size: 1.25rem; }
.woocommerce .cart-collaterals .cart_totals { width: 100%; max-width: 28rem; float: none; margin-left: auto; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: var(--step-lead); margin-bottom: 0.5rem; }
.woocommerce .checkout_coupon, .woocommerce form.woocommerce-form-login, .woocommerce form.woocommerce-form-register { border: 0; padding: 0; }
.woocommerce form .form-row { margin-bottom: 1rem; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 0.4rem; }
.woocommerce form .form-row .required { color: var(--ink); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid .input-text { outline: 2px solid var(--ink); }
.woocommerce .select2-container .select2-selection--single { height: 3rem; background: var(--surface); border: 0; border-radius: var(--radius); }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 3rem; padding-left: 0.9rem; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 3rem; }
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gutter); }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
.woocommerce-checkout #order_review_heading { margin-top: 2.5rem; font-size: var(--step-lead); }
.woocommerce-checkout #payment { background: var(--surface); border-radius: var(--radius); }
.woocommerce-checkout #payment ul.payment_methods { padding: 1rem; border: 0; }
.woocommerce-checkout #payment div.payment_box { background: var(--bg); border-radius: var(--radius); color: var(--ink); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.place-order { padding: 1rem; }
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { float: none; width: 100%; }
@media (max-width: 56em) { .woocommerce-checkout .col2-set { grid-template-columns: 1fr; } }
.woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; float: none; margin-bottom: 2rem; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a { display: inline-block; padding: 0.5rem 0.9rem; border-radius: var(--radius); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { background: var(--ink); color: var(--bg); }
.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }
.woocommerce-account .woocommerce-MyAccount-content p { max-width: 64ch; }
.woocommerce .woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0 0 2rem; }
.woocommerce .woocommerce-order-overview li { border: 0; padding: 0.9rem 1rem; background: var(--surface); border-radius: var(--radius); margin: 0; float: none; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--ink); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--accent); color: var(--accent-ink); border-radius: var(--radius); font-weight: 500; padding: 0.8rem 1.4rem; line-height: 1.4; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--accent-strong); color: var(--accent-ink); }
.woocommerce a.button.disabled, .woocommerce button.button.disabled, .woocommerce button.button:disabled[disabled] { background: var(--surface-2); color: var(--muted); }

/* No cart: the add-to-cart controls are hidden, Add to quote takes their place */
.single_add_to_cart_button,
form.cart .quantity,
.site-nav__cart,
.woocommerce-variation-add-to-cart .quantity { display: none !important; }
.quote-cta { margin: 1rem 0 0; }
/* sizes: a dropdown list, several can be ticked, each with its own quantity */
.size-picker { margin-top: 1.5rem; }
/* the size list is a full-width row of the product grid, under the image and the summary */
.shop div.product > .size-picker { grid-column: 1 / -1; margin-top: 3rem; scroll-margin-top: 6rem; }
.size-picker__menu { border: 1px solid var(--surface-2); border-radius: 0.5rem; background: var(--bg); }
.size-picker__toggle { cursor: pointer; padding: 0.75rem 1rem; font-weight: 600; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.size-picker__toggle::-webkit-details-marker { display: none; }
.size-picker__toggle::after { content: ""; width: 0.55em; height: 0.55em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-25%); }
.size-picker__menu[open] .size-picker__toggle::after { transform: rotate(-135deg) translateY(-25%); }
.size-picker__panel { border-top: 1px solid var(--surface-2); padding: 0.5rem; }
.size-picker__find { width: 100%; margin-bottom: 0.5rem; }
.size-picker__list { max-height: 30rem; overflow-y: auto; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 24rem), 1fr)); gap: 0.25rem 0.75rem; align-content: start; }
.size-picker__item { display: grid; grid-template-columns: 1fr auto 5.5rem; align-items: center; gap: 0.75rem; padding: 0.45rem 0.5rem; border-radius: 0.375rem; }
.size-picker__item[hidden] { display: none; }
.size-picker__item:nth-child(odd) { background: var(--surface); }
.size-picker__item.is-picked { outline: 2px solid var(--ink); outline-offset: -2px; }
.size-picker__label { display: flex; align-items: center; gap: 0.6rem; cursor: pointer; min-width: 0; }
.size-picker__label input { width: 1.15rem; height: 1.15rem; accent-color: var(--ink); flex: none; }
.size-picker__item .price { font-size: 0.875rem; white-space: nowrap; }
.size-picker__qty { width: 100%; padding: 0.35rem 0.5rem; }
.size-picker__qty:disabled { opacity: 0.4; }
.size-picker__chosen { display: block; margin-top: 0.5rem; color: var(--muted); font-size: var(--step-small); }
@media (max-width: 30rem) { .size-picker__item { grid-template-columns: 1fr 4.5rem; } .size-picker__item .price { grid-column: 1; grid-row: 2; } }
.price--quote { font-weight: 500; }
/* prices are filled in by prices.js for signed-in clients and suppliers; visitors see a sign-in link */
.price--locked a { font-size: 0.875em; text-decoration: underline; text-underline-offset: 3px; }
.price--member { font-weight: 600; }
