/* Shared shop inherits the active design. No fixed content heights. */
body.canvas .ac-shop { width: min(calc(100% - var(--ac-page-gutter-total, 8vw)), var(--canvas-container-max, 1280px)); max-width: var(--canvas-container-max, 1280px); margin-inline: auto; padding-block: clamp(3rem, 6vw, 8rem); font-family: var(--ac-font-body, inherit); color: var(--ac-text, inherit); }
.ac-shop *, .ac-shop-information *, .ac-shop-related * { box-sizing: border-box; min-width: 0; }
body.canvas .ac-shop :is(h1,h2,h3) { font-family: var(--ac-font-heading, inherit); color: inherit; }
body.canvas .ac-shop h1 { font-size: clamp(4rem, 5vw, 6.4rem); line-height: 1.12; margin: 0 0 2.4rem; }
body.canvas .ac-shop h2 { margin: 0 0 1.6rem; font-size: clamp(2.6rem, 3vw, 3.4rem); line-height: 1.2; }
.ac-shop a { color: inherit; text-underline-offset: .3em; }
.ac-shop :is(a,button,input,select,summary):focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.ac-shop-heading { position: relative; padding-bottom: 5rem; }
.ac-shop-intro { max-width: 70ch; padding-right: 4rem; }
.ac-shop-intro p { margin-block: 0 1rem; }
.ac-shop-heading-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 1.4rem; }
.ac-shop-featured { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(2.4rem,4vw,5.6rem); }
/* Shared card treatment follows the active design palette. */
body.canvas :is(.ac-shop-category, .ac-shop-card) {
 background: color-mix(in srgb, var(--ac-background) 94%, var(--ac-text) 6%);
 border: 1px solid var(--ac-border);
 border-radius: 0;
 margin: 0;
}
body.canvas :is(.ac-shop-category, .ac-shop-card):is(:hover, :focus-within) { border-color: var(--ac-link); }
.ac-shop-category { display: flex; flex-direction: column; overflow: hidden; text-decoration: none; }
.ac-shop-category-copy { padding: clamp(2rem, 2.5vw, 3.2rem); }
.ac-shop-category-copy h2:last-child { margin-bottom: 0; }
.ac-shop-category-image { aspect-ratio: 1.44; display: flex; align-items: center; justify-content: center; margin-bottom: 0; padding: clamp(1.6rem, 2.5vw, 3.2rem); background: var(--ac-background); }
.ac-shop-category-image img { width: 100%; height: 100%; object-fit: contain; }
.ac-shop-category-copy p { color: var(--ac-text-muted,var(--ac-text)); margin: 0; }
.ac-shop-category:hover h2 { text-decoration: underline; text-underline-offset: .2em; }
.ac-shop-more, .ac-shop-listing, .ac-shop-page-content { margin-top: clamp(4rem,6vw,8rem); }
.ac-shop-more { padding-top: 3.6rem; border-top: 1px solid var(--ac-border); }
.ac-shop-categories { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3.2rem; margin-top: 3rem; }
body.canvas .ac-shop-categories h2 { font-size: 2.8rem; }
.ac-shop-category-nav { display: flex; gap: 2rem; align-items: flex-start; border-bottom: 1px solid var(--ac-border); margin-bottom: 3rem; }
.ac-shop-nav-links { display: flex; flex-wrap: wrap; gap: 1rem 3rem; flex: 1; }
.ac-shop-category-nav a, .ac-shop-category-nav summary { display: inline-flex; align-items: center; min-height: 48px; text-decoration: none; white-space: nowrap; }
.ac-shop-category-nav a[aria-current] { border-bottom: 2px solid currentColor; font-weight: 600; }
.ac-shop-nav-more { position: relative; }
.ac-shop-nav-more summary { cursor: pointer; }
.ac-shop-nav-more[open] > div { position: absolute; right: 0; top: 100%; z-index: 10; min-width: 24rem; max-width: 80vw; padding: 1.6rem; border: 1px solid var(--ac-border); background: var(--ac-background); }
.ac-shop-nav-more div a { display: flex; white-space: normal; }
.ac-shop-mobile-categories { display: none; }
.ac-shop-filters { display: flex; flex-wrap: wrap; gap: 2.4rem; align-items: flex-end; margin: 0 0 2.4rem; }
.ac-shop-filters label { display: block; margin-bottom: .8rem; }
.ac-shop :is(select,input) { background: transparent; color: inherit; border: 1px solid var(--ac-border); border-radius: 0; min-height: 44px; max-width: 100%; font: inherit; padding: .8rem 1.2rem; margin: 0; }
.ac-shop-filters select { max-width: 27rem; }
.ac-shop-price-filter > div { display: flex; gap: 1rem; }
.ac-shop-price-filter input { width: 10rem; }
.ac-shop-filters .button { min-height: 44px; margin: 0; }
.ac-shop-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5rem 4rem; }
body.canvas .ac-shop-card { padding: clamp(1.6rem, 2vw, 2.4rem); }
.ac-shop-card a { display: block; text-decoration: none; }
.ac-shop-card:focus-within { outline: 2px solid var(--ac-focus, currentColor); outline-offset: 4px; }
.ac-shop-card-image { aspect-ratio: 1.18; display: flex; align-items: center; justify-content: center; margin-bottom: 2rem; background: var(--ac-background); }
.ac-shop-card-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ac-shop-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.6rem; font-size: 1.3rem; margin-bottom: 1.2rem; }
body.canvas .ac-shop-card h2,body.canvas .ac-shop-related .ac-shop-card h2 { font-size: clamp(2.3rem,2vw,2.8rem); margin-bottom: 1rem; }
.ac-shop-card:hover h2 { text-decoration: underline; text-underline-offset: .15em; }
.ac-shop-card-collection { font-size: 1.3rem; margin: 0; }
.ac-shop-pagination { text-align: center; margin-top: 5rem; }
.ac-shop-pagination nav { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.ac-shop-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .6rem 1rem; }
.ac-shop-pagination .current { border-bottom: 2px solid; }
.ac-shop-empty { padding-block: 3rem; }
.ac-shop-collection-promo { display: flex; justify-content: space-between; align-items: center; gap: 3rem; padding-block: 3.6rem; margin-top: 7rem; border-top: 1px solid var(--ac-border); }
.ac-shop-collection-promo p { max-width: 40ch; }
.ac-shop-information, .ac-shop-collection-links { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; margin-block: 2rem; }
.ac-shop-information a, .ac-shop-collection-links a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-underline-offset: .3em; }
.ac-shop-related { border-top: 1px solid var(--ac-border); margin-top: 5rem; padding-top: 4rem; }
.ac-shop-related > h2 { margin-bottom: 3rem; }
body.canvas .ac-shop-product div.product { display: flow-root; }
body.canvas .ac-shop-product div.product .woocommerce-product-gallery { float: left; width: 58%; margin: 0 0 4rem; }
body.canvas .ac-shop-product div.product .summary { float: right; width: 35%; margin: 0 0 4rem; }
.ac-shop-product .woocommerce-product-gallery img { object-fit: contain; }
.ac-shop-product .woocommerce-tabs,.ac-shop-product .related,.ac-shop-product .upsells { clear: both; padding-top: 3rem; }
body.canvas .ac-shop-product div.product .product_title { font-size: clamp(3.4rem,4vw,5rem); }
body.canvas .ac-shop-product div.product .price { color: inherit; }
.ac-shop-product .summary .price { font-size: 2.8rem; }
.ac-shop-product .summary .cart { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; }
.ac-shop-product .summary .variations_form { display: block; }
.ac-shop-product .variations { width: 100%; }
.ac-shop-product .woocommerce-variation-add-to-cart { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.ac-shop-product .summary .single_add_to_cart_button { min-height: 48px; }
.ac-shop-product .quantity .qty { min-height: 48px; }
.ac-shop-product .product_meta { font-size: 1.3rem; }
@media (min-width:1100px) { .ac-shop-heading-link { position: absolute; right: 0; bottom: 5rem; } }
@media (max-width:1000px) { .ac-shop-grid,.ac-shop-categories { grid-template-columns: repeat(2,minmax(0,1fr)); } .ac-shop-filters { gap: 1.6rem; } }
@media (max-width:700px) {
 .ac-shop-featured,.ac-shop-grid,.ac-shop-categories { grid-template-columns: minmax(0,1fr); gap: 4rem; }
 .ac-shop-category-image { aspect-ratio: 1.18; }
 .ac-shop-category-nav { display: none; }
 .ac-shop-mobile-categories { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 2.4rem; }
 .ac-shop-mobile-categories select { flex: 1; }
 .ac-shop-filters > div { flex: 1 1 100%; }
 .ac-shop-filters select { width: 100%; max-width: 100%; }
 .ac-shop-price-filter input { flex: 1; width: 45%; }
 .ac-shop-filters .button { width: 100%; }
 .ac-shop-intro { padding-right: 0; }
 .ac-shop-heading { padding-bottom: 3rem; }
 .ac-shop-collection-promo { display: block; }
 body.canvas .ac-shop-product div.product .woocommerce-product-gallery, body.canvas .ac-shop-product div.product .summary { float: none; width: 100%; }
}
/* Native variation controls keep the design palette, including disabled states. */
body.canvas .ac-shop-product div.product form.cart .variations select { margin-right: 0; max-width: 100%; }
body.canvas .ac-shop-product div.product button.button.alt { background: var(--ac-button-bg); color: var(--ac-button-text); border-color: var(--ac-button-border); }
body.canvas .ac-shop-product div.product button.button.alt:is(:disabled,.disabled) { background: var(--ac-button-bg); color: var(--ac-button-text); opacity: .55; }
body.canvas .ac-shop-product div.product button.button.alt:not(:disabled):not(.disabled):hover { background: var(--ac-button-hover-bg); color: var(--ac-button-hover-text); border-color: var(--ac-button-hover-border); }
body.canvas .ac-shop-product div.product .woocommerce-tabs ul.tabs li { background: var(--ac-background); border-color: var(--ac-border); border-radius: 0; }
body.canvas .ac-shop-product div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--ac-background); }
body.canvas .ac-shop-product div.product .woocommerce-tabs ul.tabs::before { border-color: var(--ac-border); }
body.canvas .ac-shop-product div.product .woocommerce-tabs ul.tabs li::before, body.canvas .ac-shop-product div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.ac-artwork-purchase .ac-shop-information { margin-bottom: 0; }
.ac-artwork-purchase .ac-shop-collection-links { margin-bottom: 0; }
.ac-artwork--collector-sheet .ac-artwork-heading .ac-artwork-purchase { flex: 1 1 30rem; }
