/* ARCHIVE UNIT — shop (Stage 2): catalogue, product card, product page. */

/* ------------------------------------------------------------ Catalogue */
.au-shop, .au-product { padding: clamp(20px, 2.4vw, 36px) var(--au-gutter) clamp(56px, 7vw, 112px); max-width: none; }
.au-shop > *, .au-product > * { max-width: none; margin-inline: 0; }
.au-shop > * + *, .au-product > * + * { margin-block-start: 0; }

.au-catnav { margin: 0 0 clamp(18px, 2vw, 28px); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.au-catnav::-webkit-scrollbar { display: none; }
.au-catnav__list { display: flex; gap: clamp(18px, 2.2vw, 36px); list-style: none; margin: 0; padding: 0; white-space: nowrap; }
.au-catnav a, .au-product__crumbs a {
	font-family: var(--au-sans); font-size: .75rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
	text-decoration: none; color: var(--au-ink); opacity: .6; padding: .5em 0; display: inline-block;
	border-bottom: 1px solid transparent;
}
.au-catnav a:hover, .au-catnav a[aria-current="page"] { opacity: 1; border-bottom-color: currentColor; }
.au-shop__desc { margin: 0 0 1.25rem; max-width: 70ch; font-size: .875rem; color: var(--wp--preset--color--muted, #6B645B); }
.au-shop__desc:empty { display: none; }
.au-shop .wc-block-store-notices:empty { display: none; }

.au-shop__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 clamp(16px, 2vw, 28px); padding: 14px 0; border-block: 1px solid rgba(28, 26, 23, .14); }
.au-shop__toolbar > * { margin: 0; }
.au-shop__tools { display: flex; align-items: center; gap: 20px; }
.au-shop__tools > * { margin: 0; }
.au-shop .wc-block-catalog-sorting select, .au-shop .woocommerce-ordering select {
	appearance: none; -webkit-appearance: none; border: 0; background: transparent; color: var(--au-ink);
	font: 500 .75rem/1 var(--au-sans); letter-spacing: .16em; text-transform: uppercase; padding: .6em 1.4em .6em 0; cursor: pointer;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 7px) 55%, calc(100% - 2px) 55%; background-size: 5px 5px; background-repeat: no-repeat;
}
.au-gridswitch { display: flex; gap: 4px; }
.au-gridswitch__btn { display: inline-flex; padding: 8px; border: 0; background: none; color: var(--au-ink); opacity: .4; cursor: pointer; }
.au-gridswitch__btn[aria-pressed="true"] { opacity: 1; }
.au-gridswitch__btn:hover { opacity: .8; }

/* native "Filter products" button */
.au-shop .wc-block-product-filters__open-overlay {
	display: inline-flex; align-items: center; gap: .6em; padding: .6em 0; border: 0; background: none; color: var(--au-ink); cursor: pointer;
	font: 500 .75rem/1 var(--au-sans); letter-spacing: .16em; text-transform: uppercase;
}
.au-shop .wc-block-product-filters__open-overlay svg { width: 18px; height: 18px; }
.wc-block-product-filters__overlay-dialog { background: var(--au-bg, #F4EFEA); color: var(--au-ink, #1C1A17); font-family: var(--au-sans); }
.wc-block-product-filters__overlay-content h2 { font-family: var(--au-serif); font-size: 1.75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.wc-block-product-filters__overlay-content h3 { font: 500 .75rem/1 var(--au-sans); letter-spacing: .18em; text-transform: uppercase; }

/* adaptive grid: ≥1800 → 6, ≥1100 → 4, ≥700 → 3, phones → 2 */
.au-shop__grid { --au-cols: 2; max-width: none !important; margin-inline: 0 !important; }
@media (min-width: 700px)  { .au-shop__grid { --au-cols: 3; } }
@media (min-width: 1100px) { .au-shop__grid { --au-cols: 4; } }
@media (min-width: 1800px) { .au-shop__grid { --au-cols: 6; } }
/* "larger images" mode */
html[data-au-grid="large"] .au-shop__grid { --au-cols: 1; }
@media (min-width: 700px)  { html[data-au-grid="large"] .au-shop__grid { --au-cols: 2; } }
@media (min-width: 1100px) { html[data-au-grid="large"] .au-shop__grid { --au-cols: 3; } }
@media (min-width: 1800px) { html[data-au-grid="large"] .au-shop__grid { --au-cols: 4; } }

.au-shop__grid .wc-block-product-template,
.au-related .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(var(--au-cols, 4), minmax(0, 1fr)) !important;
	gap: clamp(28px, 3.2vw, 48px) clamp(10px, 1vw, 16px) !important;
	margin: 0; padding: 0; list-style: none;
}
.au-shop__grid .wc-block-product, .au-related .wc-block-product { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; flex: none !important; }
.au-related { --au-cols: 2; max-width: none !important; margin-inline: 0 !important; margin-top: clamp(56px, 7vw, 112px); }
@media (min-width: 900px) { .au-related { --au-cols: 4; } }
.au-related__title { margin: 0 0 clamp(18px, 2vw, 28px); font: 600 .875rem/1 var(--au-sans); letter-spacing: .2em; }
.au-shop .wp-block-query-pagination { margin-top: clamp(32px, 5vw, 64px); gap: 20px; font: 500 .75rem/1 var(--au-sans); letter-spacing: .16em; text-transform: uppercase; }
.au-shop .wp-block-query-pagination a { text-decoration: none; }

/* ----------------------------------------------------------- Product card */
.au-pcard { position: relative; }
.au-pcard__media { display: block; position: relative; color: inherit; text-decoration: none; }
.au-pcard__frame { display: block; position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: color-mix(in srgb, var(--au-sand) 45%, var(--au-bg)); }
.au-pcard__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transition: opacity .45s var(--au-ease), transform .8s var(--au-ease); }
.au-pcard__img--hover { opacity: 0; }
@media (hover: hover) {
	.au-pcard__media:hover .au-pcard__img--hover { opacity: 1; }
	.au-pcard__media:hover .au-pcard__img:not(.au-pcard__img--hover) { transform: scale(1.02); }
}
.au-pcard__badge { position: absolute; left: 10px; top: 10px; padding: .45em .8em; background: var(--au-bg); color: var(--au-ink); font: 500 .625rem/1 var(--au-sans); letter-spacing: .16em; text-transform: uppercase; }
.au-pcard__info { padding-top: 12px; display: grid; gap: 4px; }
.au-pcard__title { margin: 0; font-family: var(--au-serif); font-size: 1.0625rem; font-weight: 500; line-height: 1.25; letter-spacing: .01em; }
.au-pcard__title a { color: inherit; text-decoration: none; }
.au-pcard__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.au-pcard__price { font: 500 .8125rem/1.3 var(--au-sans); letter-spacing: .04em; }
.au-pcard__price del { opacity: .5; margin-right: .5em; }
.au-pcard__price ins { text-decoration: none; }
.au-pcard__colors { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-top: 6px; }
.au-pcard__count { font: 400 .6875rem/1 var(--au-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--muted, #6B645B); }
.au-pcard__swatches { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.au-swatch { display: block; width: 16px; height: 16px; border-radius: 50%; background: var(--au-swatch, var(--au-sand)); box-shadow: inset 0 0 0 1px rgba(28, 26, 23, .22); position: relative; }
.au-swatch::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid transparent; transition: border-color .2s; }
.au-swatch:hover::after, .au-swatch:focus-visible::after { border-color: var(--au-ink); }
@media (pointer: coarse) { .au-swatch::before { content: ""; position: absolute; inset: -8px; } }

/* ----------------------------------------------------------- Product page */
.au-product__crumbs { margin: 0 0 clamp(16px, 2vw, 28px); font-size: .75rem; }
.au-product__crumbs, .au-product__crumbs a { font-family: var(--au-sans); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; }
.au-product__layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr); gap: clamp(24px, 4vw, 72px); align-items: start; }
.au-product__layout > * { margin: 0; min-width: 0; }
.au-product__panel { position: sticky; top: calc(var(--au-bar) + var(--au-header-h) + 20px); display: grid; gap: 4px; }
.au-product__panel > * { margin: 0 !important; max-width: none; }
.au-product__title { font-family: var(--au-serif); font-size: clamp(1.5rem, 2.2vw, 2rem); font-weight: 500; line-height: 1.1; margin-bottom: 6px !important; }
.au-product__price, .au-product__price .wc-block-components-product-price { font: 500 .9375rem/1.3 var(--au-sans); letter-spacing: .04em; padding-bottom: 18px !important; border-bottom: 1px solid rgba(28, 26, 23, .14); }

.au-product .wc-block-product-gallery { --wc-block-product-gallery-large-image-ratio-width: 4 !important; --wc-block-product-gallery-large-image-ratio-height: 5 !important; gap: 12px; }
.au-product .wc-block-product-gallery-large-image img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.au-product .wc-block-product-gallery-large-image__container, .au-product .wc-block-product-gallery-large-image img { background: color-mix(in srgb, var(--au-sand) 45%, var(--au-bg)); }
.au-product .wc-block-product-gallery-thumbnails__thumbnail__image { cursor: pointer; opacity: .55; transition: opacity .2s; }
.au-product .wc-block-product-gallery-thumbnails__thumbnail__image--is-active, .au-product .wc-block-product-gallery-thumbnails__thumbnail__image:hover { opacity: 1; }

/* variant selectors (native chips): sizes = boxes, colours = round swatches */
.au-product .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute { position: relative; padding: 16px 0; border-bottom: 1px solid rgba(28, 26, 23, .14); }
.au-product .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute > .wp-block-group { margin: 0 !important; gap: 12px !important; }
.au-product .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name { font: 500 .6875rem/1 var(--au-sans); letter-spacing: .16em; text-transform: uppercase; }
.au-chip-selected { font-weight: 400; margin-left: .4em; }
.au-product .wc-block-product-filter-chips__items { display: flex; flex-wrap: wrap; gap: 8px; }
.au-product .wc-block-product-filter-chips__item {
	min-width: 3.4rem; padding: .85em 1em; border: 1px solid rgba(28, 26, 23, .35); border-radius: 0; background: transparent; color: var(--au-ink);
	font: 400 .75rem/1 var(--au-sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s;
}
.au-product .wc-block-product-filter-chips__item:hover { border-color: var(--au-ink); }
.au-product .wc-block-product-filter-chips__item[aria-checked="true"] { background: var(--au-ink); color: var(--au-bg); border-color: var(--au-ink); }
.au-product .wc-block-product-filter-chips__item[disabled], .au-product .wc-block-product-filter-chips__item[aria-disabled="true"] { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.au-product .wc-block-product-filter-chips__item.au-chip--color { min-width: 0; width: 28px; height: 28px; padding: 0; border-radius: 50%; background: var(--au-swatch); border: 1px solid rgba(28, 26, 23, .25); position: relative; overflow: visible; }
.au-product .wc-block-product-filter-chips__item.au-chip--color .wc-block-product-filter-chips__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.au-product .wc-block-product-filter-chips__item.au-chip--color::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid transparent; }
.au-product .wc-block-product-filter-chips__item.au-chip--color[aria-checked="true"]::after { border-color: var(--au-ink); }

.au-product .wc-block-components-product-stock-indicator { font: 400 .75rem/1.4 var(--au-sans); letter-spacing: .06em; margin: 14px 0 0 !important; color: var(--wp--preset--color--muted, #6B645B); }
.au-product .wc-block-add-to-cart-with-options__quantity-selector { display: none !important; }
.au-product .wc-block-components-product-button__button, .au-product .single_add_to_cart_button {
	width: 100%; justify-content: center; margin-top: 16px; padding: 1.15em 1.5em; border-radius: 0; border: 0;
	background: var(--au-ink); color: var(--au-bg); font: 500 .75rem/1 var(--au-sans); letter-spacing: .22em; text-transform: uppercase;
}
.au-product .wc-block-components-product-button__button:disabled, .au-product .wc-block-components-product-button__button[aria-disabled="true"] { background: #7a766f; cursor: not-allowed; }
.au-product .wp-block-woocommerce-add-to-cart-with-options .wp-block-group { flex-wrap: nowrap; }
.au-product .wp-block-woocommerce-add-to-cart-with-options .wp-block-button { flex: 1; }

.au-sizeguide { margin: 0; }
.au-sizeguide__link { font: 500 .6875rem/1 var(--au-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--au-ink); text-decoration: underline; text-underline-offset: 4px; }
.au-sizeguide.is-moved { position: absolute; right: 0; top: 16px; z-index: 1; }
.au-dialog { width: min(720px, calc(100vw - 32px)); max-height: 86vh; padding: clamp(24px, 4vw, 48px); border: 0; background: var(--au-bg); color: var(--au-ink); overflow: auto; }
.au-dialog::backdrop { background: rgba(16, 14, 12, .45); backdrop-filter: blur(6px); }
.au-dialog__close { position: absolute; right: 12px; top: 8px; border: 0; background: none; font-size: 2rem; line-height: 1; color: inherit; cursor: pointer; }
.au-dialog form { margin: 0; }
.au-dialog table { width: 100%; border-collapse: collapse; font-size: .8125rem; }
.au-dialog th, .au-dialog td { padding: .6em .4em; border-bottom: 1px solid rgba(28, 26, 23, .18); text-align: left; }

/* tabs */
.au-tabs { margin-top: 32px; }
.au-product__panel .wp-block-woocommerce-add-to-cart-with-options { margin-bottom: 8px !important; }
.au-tabs__list { display: flex; gap: clamp(16px, 2vw, 32px); border-bottom: 1px solid var(--au-ink); }
.au-tabs__tab { padding: 0 0 .9em; margin-bottom: -1px; border: 0; border-bottom: 1px solid transparent; background: none; color: var(--au-ink); opacity: .55; cursor: pointer; font: 600 .6875rem/1 var(--au-sans); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.au-tabs__tab[aria-selected="true"] { opacity: 1; border-bottom-color: var(--au-ink); }
.au-tabs__panel { padding-top: 20px; font-size: .8125rem; line-height: 1.7; }
.au-tabs[data-ready] .au-tabs__panel[hidden] { display: none; }
.au-tabs:not([data-ready]) .au-tabs__list { display: none; }
.au-tabs:not([data-ready]) .au-tabs__panel { padding-bottom: 12px; }
.au-tabs__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.au-tabs__text p { margin: 0 0 1em; }
.au-tabs__details { margin: 0; display: grid; gap: 12px; align-content: start; }
.au-tabs__details dt { font-weight: 600; font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; }
.au-tabs__details dd { margin: 2px 0 0; }

@media (max-width: 899px) {
	.au-product__layout { grid-template-columns: 1fr; }
	.au-product__panel { position: static; }
	.au-product .wc-block-product-gallery { flex-direction: column !important; }
	.au-product .wc-block-product-gallery-thumbnails { flex-direction: row !important; max-width: none !important; width: 100% !important; }
	.au-product .wc-block-product-gallery-thumbnails__scrollable { display: flex !important; flex-direction: row !important; overflow-x: auto; gap: 8px; }
	.au-product .wc-block-product-gallery-thumbnails__thumbnail { flex: 0 0 72px; }
	.au-tabs__cols { grid-template-columns: 1fr; }
}

/* gallery: WooCommerce forces object-fit: contain with !important — we want the frame filled */
.au-product .wc-block-product-gallery .wc-block-product-gallery-large-image .wc-block-components-product-image img.wc-block-woocommerce-product-gallery-large-image__image { object-fit: cover !important; width: 100% !important; height: 100% !important; }
.au-product .wc-block-components-product-button, .au-product .wp-block-woocommerce-product-button { width: 100%; display: block; }
.au-product .wc-block-components-product-button .wp-block-button__link, .au-product .wc-block-components-product-button__button { width: 100%; display: flex; justify-content: center; }
.wc-block-product-filters__overlay-content { padding: 0 24px 24px; }
.au-product .wp-block-woocommerce-product-button { margin-bottom: 8px; }
.au-tabs { margin-top: 40px; }
