/* Arctic Blanc — component layer on top of theme.json tokens. Mobile first. */

:root {
	--ab-ink: var(--wp--preset--color--ink);
	--ab-snow: var(--wp--preset--color--snow);
	--ab-paper: var(--wp--preset--color--paper);
	--ab-mist: var(--wp--preset--color--mist);
	--ab-stone: var(--wp--preset--color--stone);
	--ab-dusk: var(--wp--preset--color--dusk);
	--ab-fawn: var(--wp--preset--color--fawn);
	--ab-sans: var(--wp--preset--font-family--sans);
	--ab-serif: var(--wp--preset--font-family--display);
	--ab-ease: cubic-bezier(.2, .7, .1, 1);
	--ab-header-h: 64px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--ab-ink); color: var(--ab-snow); }
:where(a, button, input, select, summary, textarea):focus-visible { outline: 2px solid var(--ab-dusk); outline-offset: 3px; }
img { display: block; max-width: 100%; height: auto; }
h1 em, h2 em, h3 em, .ab-footer__claim em { font-style: italic; font-weight: 300; }

.ab-eyebrow {
	font-family: var(--ab-sans);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--ab-stone);
	margin: 0;
}
.has-snow-color .ab-eyebrow, .ab-eyebrow.has-snow-color { color: rgb(244 242 237 / .82); }

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .25s var(--ab-ease), color .25s var(--ab-ease), border-color .25s var(--ab-ease); }
.is-style-ab-ghost .wp-block-button__link { background: transparent; color: var(--ab-ink); border: 1px solid currentColor; }
.is-style-ab-ghost .wp-block-button__link:hover { background: var(--ab-ink); color: var(--ab-snow); border-color: var(--ab-ink); }
.ab-on-dark .wp-block-button__link { color: var(--ab-snow); border-color: rgb(244 242 237 / .7); }
.ab-on-dark .wp-block-button__link:hover { background: var(--ab-snow); color: var(--ab-ink); border-color: var(--ab-snow); }
.ab-btn-light .wp-block-button__link:hover { background: var(--ab-ink) !important; color: var(--ab-snow) !important; border-color: var(--ab-ink); }
.is-style-ab-link .wp-block-button__link {
	background: none; border: 0; padding: 0 0 4px; color: var(--ab-ink);
	border-bottom: 1px solid currentColor; border-radius: 0;
}
.is-style-ab-link .wp-block-button__link:hover { background: none; color: var(--ab-dusk); }

/* ---------- Announcement + header ---------- */
.ab-announce { padding-block: 0.55rem; }
.ab-announce p { margin: 0; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 500; }

.ab-header-part { position: sticky; top: 0; z-index: 60; }
.ab-header { background: var(--ab-paper); border-bottom: 1px solid var(--ab-mist); transition: background-color .35s var(--ab-ease), border-color .35s var(--ab-ease), color .35s var(--ab-ease); }
.ab-header__bar {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr !important;
	align-items: center;
	min-height: var(--ab-header-h);
	gap: 1rem;
}
.ab-header__brand { justify-content: center; }
.ab-wordmark, .ab-wordmark a {
	font-family: var(--ab-sans) !important;
	font-size: clamp(0.9rem, 0.8rem + 0.4vw, 1.1rem) !important;
	font-weight: 500 !important;
	letter-spacing: 0.44em !important;
	text-transform: uppercase;
	text-decoration: none !important;
	color: inherit !important;
	white-space: nowrap;
	margin: 0;
	padding-left: 0.44em; /* optically centre the tracked word */
}
.ab-header__nav a { text-decoration: none; }
.ab-header__nav .wp-block-navigation-item__content { padding-block: 0.4rem; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .3s var(--ab-ease); }
.ab-header__nav .wp-block-navigation-item__content:hover { background-size: 100% 1px; color: inherit; }
.ab-header__tools { justify-content: flex-end; }
.ab-header__tools svg { width: 22px; height: 22px; }
.ab-search .wp-block-search__button { background: none !important; border: 0; color: inherit !important; padding: 0.25rem; margin: 0; }
.ab-search .wp-block-search__button svg { fill: currentColor; }
.ab-account a, .ab-minicart button { color: inherit !important; }
.ab-minicart .wc-block-mini-cart__button { padding: 0.25rem; }
.ab-minicart .wc-block-mini-cart__badge { background: var(--ab-ink); color: var(--ab-snow); font-size: 0.625rem; font-weight: 600; min-width: 1.05rem; height: 1.05rem; }

/* Mobile menu */
.ab-header__nav .wp-block-navigation__responsive-container-open { padding: 0.25rem; margin-left: -0.25rem; }
.ab-header__nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ab-paper) !important; color: var(--ab-ink) !important; padding: 5rem 1.5rem 2rem; }
.ab-header__nav .is-menu-open .wp-block-navigation__container { gap: 1.25rem !important; }
.ab-header__nav .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--ab-serif); font-size: 2rem; font-weight: 400; letter-spacing: 0; text-transform: none;
}

/* Desktop nav hidden labels on narrow widths */
@media (max-width: 599px) {
	.ab-header__tools .ab-account { display: none; }
	.ab-announce p { font-size: 0.625rem !important; letter-spacing: 0.14em; }
}

/* Overlay header: transparent above full-bleed imagery (home, collections). */
.ab-header-part.is-overlay { position: absolute; left: 0; right: 0; top: 0; }
.ab-header-part.is-overlay .ab-header { background: transparent; border-color: rgb(244 242 237 / .22); color: var(--ab-snow); }
.ab-header-part.is-overlay .ab-minicart .wc-block-mini-cart__badge { background: var(--ab-snow); color: var(--ab-ink); }
.ab-header-part.is-overlay.is-stuck { position: fixed; }
.ab-header-part.is-overlay.is-stuck .ab-header { background: var(--ab-paper); border-color: var(--ab-mist); color: var(--ab-ink); }
.ab-header-part.is-overlay.is-stuck .ab-minicart .wc-block-mini-cart__badge { background: var(--ab-ink); color: var(--ab-snow); }
.admin-bar .ab-header-part.is-overlay.is-stuck { top: var(--wp-admin--admin-bar--height, 32px); }
@keyframes ab-drop { from { transform: translateY(-100%); } to { transform: none; } }

/* ---------- Sections ---------- */
.ab-main { margin-block-start: 0; }
.ab-section__head { margin-bottom: var(--wp--preset--spacing--40); gap: 1rem; }
.ab-section__head h2 { margin: 0; }

/* Hero */
.ab-hero { overflow: hidden; }
.ab-hero__picture { position: absolute; inset: 0; }
.ab-hero__picture img { width: 100%; height: 100%; object-fit: cover; }
.ab-hero .wp-block-cover__inner-container { padding-inline: var(--wp--style--root--padding-left); }
.ab-hero h1 { margin: 0.35rem 0 0; line-height: 0.95; letter-spacing: -0.02em; }
.ab-hero__lede { max-width: 30rem; opacity: .9; margin-top: 1rem; }
.is-style-ab-zoom .wp-block-cover__image-background { animation: ab-zoom 14s var(--ab-ease) both; }
@media (max-width: 781px) { .ab-hero { min-height: 74svh !important; } .ab-breadcrumbs { display: none; } }
@keyframes ab-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

/* Collections mosaic */
.ab-collections { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
.ab-collections > * { margin: 0 !important; }
.ab-tile { min-height: 260px !important; overflow: hidden; }
.ab-tile--0, .ab-tile--3 { grid-column: span 2; }
.ab-tile--0 { min-height: 460px !important; }
.ab-tile--1, .ab-tile--2 { min-height: 300px !important; }
.ab-tile .wp-block-cover__image-background { transition: transform 1.2s var(--ab-ease); }
.ab-tile:hover .wp-block-cover__image-background { transform: scale(1.04); }
.ab-tile .wp-block-cover__background { background: linear-gradient(to top, rgb(13 13 15 / .7), rgb(13 13 15 / 0) 55%) !important; opacity: 1 !important; }
.ab-tile__title { margin: 0; }
.ab-tile__title a { text-decoration: none; }
.ab-tile__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.ab-tile__cta { margin: 0.35rem 0 0; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; opacity: .85; }
@media (min-width: 900px) {
	.ab-collections { grid-template-columns: repeat(12, 1fr); grid-auto-rows: 330px; gap: 0.75rem; }
	.ab-tile { min-height: 0 !important; }
	.ab-tile--0 { grid-column: 1 / span 6; grid-row: span 2; min-height: 0 !important; }
	.ab-tile--1 { grid-column: 7 / span 6; min-height: 0 !important; }
	.ab-tile--2 { grid-column: 7 / span 3; min-height: 0 !important; }
	.ab-tile--3 { grid-column: 10 / span 3; min-height: 0 !important; }
}

/* Statement */
.ab-statement__title { margin-block: 0.75rem 1.25rem; line-height: 1.02; }
.ab-statement__body { max-width: 36rem; margin-inline: auto !important; }

/* Lookbook */
.ab-lookbook .ab-section__head { max-width: var(--wp--style--global--wide-size); }
.ab-lookbook__hint { margin: 0; letter-spacing: 0.24em; text-transform: uppercase; opacity: .6; }
.ab-lookbook__track {
	overflow-x: auto; scroll-snap-type: x mandatory; gap: 0.5rem !important;
	padding-inline: var(--wp--style--root--padding-left) !important; scrollbar-width: none;
}
.ab-lookbook__track::-webkit-scrollbar { display: none; }
.ab-lookbook__item { flex: 0 0 72vw; margin: 0 !important; scroll-snap-align: start; }
.ab-lookbook__item img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
@media (min-width: 782px) { .ab-lookbook__item { flex-basis: 26vw; } }

/* ---------- Product cards / grids ---------- */
.ab-grid .wc-block-product-template { gap: 2rem 0.75rem !important; }
.ab-grid .wc-block-product { text-align: left; margin: 0; }
.ab-card__media { margin: 0 0 0.9rem !important; background: var(--ab-snow); overflow: hidden; }
.ab-card__media img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; transition: transform 1s var(--ab-ease), opacity .4s; }
.ab-grid .wc-block-product:hover .ab-card__media img { transform: scale(1.035); }
.ab-card__meta { gap: 0.5rem; align-items: baseline; }
.ab-card__title { margin: 0 !important; font-family: var(--ab-sans) !important; font-size: 0.8125rem !important; font-weight: 500 !important; letter-spacing: 0.06em; line-height: 1.4 !important; }
.ab-card__title a { text-decoration: none; }
.ab-card__price { margin: 0 !important; color: var(--ab-stone); white-space: nowrap; font-size: 0.8125rem !important; }
.ab-grid .wc-block-components-product-sale-badge { border-radius: 0; background: var(--ab-ink); color: var(--ab-snow); border: 0; font-size: 0.625rem; letter-spacing: 0.18em; text-transform: uppercase; }
@media (max-width: 781px) {
	.ab-grid .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1.75rem 0.5rem !important; }
	.ab-card__meta { flex-direction: column; gap: 0.2rem; }
}

/* ---------- Collection page ---------- */
.ab-colhero { display: grid; grid-template-columns: 1fr; margin-block: 0 !important; background: var(--ab-snow); }
.ab-colhero__media { margin: 0; overflow: hidden; order: -1; aspect-ratio: 4 / 5; max-height: 72vh; }
.ab-colhero__img { width: 100%; height: 100%; object-fit: cover; animation: ab-zoom 14s var(--ab-ease) both; }
.ab-colhero__copy { padding: var(--wp--preset--spacing--40) var(--wp--style--root--padding-left) var(--wp--preset--spacing--40); align-self: end; }
.ab-colhero__title { font-family: var(--ab-serif); font-size: var(--wp--preset--font-size--xx-large); font-weight: 400; line-height: 1; margin: 0.5rem 0 0; }
.ab-colhero__desc { max-width: 30rem; margin: 1rem 0 0; color: var(--ab-stone); }
@media (min-width: 782px) {
	.ab-colhero { grid-template-columns: 5fr 7fr; min-height: 60vh; }
	.ab-colhero__media { order: 0; aspect-ratio: auto; max-height: 76vh; min-height: 60vh; }
	.ab-colhero__copy { padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--60) var(--wp--preset--spacing--50) max(var(--wp--style--root--padding-left), calc((100vw - var(--wp--style--global--wide-size)) / 2)); }
}
.ab-collection__bar { padding-block: var(--wp--preset--spacing--30); gap: 1rem; border-bottom: 1px solid var(--ab-mist); margin-bottom: var(--wp--preset--spacing--40) !important; }
.ab-chips { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.5rem; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.ab-chips::-webkit-scrollbar { display: none; }
.ab-chips a {
	display: inline-block; white-space: nowrap; text-decoration: none; padding: 0.55rem 0.95rem;
	border: 1px solid var(--ab-mist); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
	transition: border-color .2s, background-color .2s, color .2s;
}
.ab-chips a:hover { border-color: var(--ab-ink); color: var(--ab-ink); }
.ab-chips a[aria-current="page"] { background: var(--ab-ink); border-color: var(--ab-ink); color: var(--ab-snow); }
.ab-collection__tools { gap: 1.25rem; color: var(--ab-stone); font-size: 0.75rem; }
.ab-collection__tools p { margin: 0; }
.ab-collection__tools select { border: 0; border-bottom: 1px solid var(--ab-ink); background: transparent; font: 600 0.6875rem/1.2 var(--ab-sans); letter-spacing: 0.14em; text-transform: uppercase; padding: 0.4rem 1.2rem 0.4rem 0; color: var(--ab-ink); }
.ab-pagination { margin-top: var(--wp--preset--spacing--50); font-size: 0.8125rem; letter-spacing: 0.1em; }
.ab-empty { padding-block: var(--wp--preset--spacing--50); }
.ab-related:not(:has(.wc-block-product)) { display: none; }
@media (max-width: 781px) { .ab-collection__bar { flex-direction: column; align-items: stretch !important; } .ab-collection__tools { justify-content: space-between; } }

/* ---------- Product page ---------- */
.ab-breadcrumbs, .ab-breadcrumbs a { color: var(--ab-stone); text-decoration: none; letter-spacing: 0.08em; }
.ab-crumb-sep { margin-inline: 0.5em; opacity: .5; }
.ab-pdp__cols { margin-top: var(--wp--preset--spacing--20) !important; }
.ab-pdp__media .wp-block-woocommerce-product-image-gallery { max-width: none !important; width: 100%; }
.ab-pdp__media .woocommerce-product-gallery { margin: 0 !important; width: 100% !important; max-width: none !important; float: none !important; }
.ab-pdp__media .woocommerce-product-gallery__image a, .ab-pdp__media .woocommerce-product-gallery__image img { display: block; width: 100% !important; height: auto; }
.ab-pdp__media .woocommerce-product-gallery__image img { width: 100%; background: var(--ab-snow); }
.ab-pdp__media .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, 1fr); gap: 0.5rem; margin: 0.5rem 0 0 !important; padding: 0; }
.ab-pdp__media .flex-control-thumbs li { width: auto !important; margin: 0 !important; list-style: none; }
.ab-pdp__media .flex-control-thumbs img { opacity: .55; aspect-ratio: 2/3; object-fit: cover; cursor: pointer; transition: opacity .2s; }
.ab-pdp__media .flex-control-thumbs img.flex-active, .ab-pdp__media .flex-control-thumbs img:hover { opacity: 1; }
.ab-pdp__media .woocommerce-product-gallery__trigger { background: var(--ab-paper); border-radius: 0; }
.ab-pdp__cat { margin: 0; }
.ab-pdp__cat a { text-decoration: none; color: inherit; }
.ab-pdp__title { margin: 0 !important; line-height: 1.02 !important; }
.ab-pdp__price { margin: 0 !important; font-size: 1rem !important; letter-spacing: 0.06em; }
.ab-pdp__excerpt { color: var(--ab-stone); margin: 0 !important; }
.ab-pdp__excerpt p { margin: 0; }
.ab-pdp__note { color: var(--ab-stone); letter-spacing: 0.14em; text-transform: uppercase; margin: 0 !important; display: flex; align-items: center; gap: 0.6rem; }
.ab-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ab-dusk); display: inline-block; }
@media (min-width: 782px) {
	.ab-pdp__sticky { position: sticky; top: calc(var(--ab-header-h) + 2rem); }
	.ab-pdp__summary { padding-left: var(--wp--preset--spacing--20); }
}

/* Add to cart with options (native chips) */
.ab-pdp__buy { margin-top: 0.5rem !important; }
.ab-pdp__buy form { display: flex; flex-direction: column; gap: 1.1rem; }
.ab-pdp__buy .wc-block-add-to-cart-with-options-variation-selector-attribute-name,
.ab-pdp__buy label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ab-ink); }
.ab-pdp__buy .wc-block-product-filter-chips__items { gap: 0.4rem; }
.ab-pdp__buy .wc-block-product-filter-chips__item {
	border-radius: 0 !important; border: 1px solid var(--ab-mist) !important; background: transparent !important;
	color: var(--ab-ink) !important; padding: 0.6rem 1rem !important; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: capitalize;
}
.ab-pdp__buy .wc-block-product-filter-chips__item:hover { border-color: var(--ab-ink) !important; }
.ab-pdp__buy .wc-block-product-filter-chips__item[aria-checked="true"] { background: var(--ab-ink) !important; color: var(--ab-snow) !important; border-color: var(--ab-ink) !important; }
.ab-pdp__buy .wc-block-product-filter-chips__item[aria-disabled="true"], .ab-pdp__buy .wc-block-product-filter-chips__item:disabled { opacity: .35; text-decoration: line-through; }
.ab-pdp__buy .wp-block-woocommerce-add-to-cart-with-options-quantity-selector { display: none; }
.ab-pdp__buy .single_add_to_cart_button, .ab-pdp__buy .wp-block-button__link, .ab-pdp__buy button[type="submit"] {
	width: 100%; border-radius: 0 !important; padding: 1.15rem 2rem !important; font-size: 0.6875rem !important; letter-spacing: 0.22em !important; text-transform: uppercase;
}
.ab-pdp__buy .wc-block-components-product-button__button { width: 100% !important; }
.ab-pdp__buy .wp-block-woocommerce-product-button, .ab-pdp__buy .wc-block-components-product-button { width: 100% !important; display: flex; flex-direction: column; align-items: stretch; }
.ab-pdp__buy .wc-block-components-product-button__button.disabled { background: var(--ab-ink) !important; opacity: .35; }
.ab-pdp__buy .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name { display: block; }
.ab-pdp__buy .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute > .wp-block-group { margin-block: 0.25rem !important; gap: 0.7rem !important; }

/* Accordions */
.ab-accordions { border-top: 1px solid var(--ab-mist); margin-top: 0.5rem !important; }
.ab-acc { border-bottom: 1px solid var(--ab-mist); margin: 0 !important; }
.ab-acc summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
	padding: 1.05rem 0; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
}
.ab-acc summary::-webkit-details-marker { display: none; }
.ab-acc summary::after { content: "+"; font-weight: 300; font-size: 1.1rem; letter-spacing: 0; transition: transform .3s var(--ab-ease); }
.ab-acc[open] summary::after { transform: rotate(45deg); }
.ab-acc > :not(summary) { padding-bottom: 1.15rem; margin: 0; color: var(--ab-stone); font-size: 0.875rem; }
.ab-acc > :not(summary) p { margin: 0 0 0.6rem; }

/* ---------- Cart & checkout (blocks) ---------- */
.ab-cart__title { margin-bottom: var(--wp--preset--spacing--40) !important; }
.wc-block-cart, .wc-block-checkout { font-family: var(--ab-sans); }
.wc-block-components-product-name { font-weight: 500; letter-spacing: 0.04em; text-decoration: none; color: var(--ab-ink) !important; }
.wc-block-cart-items__header, .wc-block-components-totals-item__label, .wc-block-components-title,
.wc-block-cart__totals-title, .wc-block-components-checkout-step__title {
	font-size: 0.6875rem !important; font-weight: 600 !important; letter-spacing: 0.2em; text-transform: uppercase;
}
.wc-block-components-checkout-step__title { font-size: 0.75rem !important; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	background: var(--ab-ink) !important; color: var(--ab-snow) !important; border-radius: 0 !important; border: 0 !important;
	min-height: 3.4rem; font-size: 0.6875rem !important; font-weight: 600 !important; letter-spacing: 0.22em; text-transform: uppercase;
}
.wc-block-components-button:not(.is-link):hover { background: var(--wp--preset--color--graphite) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-quantity-selector {
	border-radius: 0 !important; border-color: var(--ab-mist) !important; background: #fff !important;
}
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus { border-color: var(--ab-ink) !important; box-shadow: none !important; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { background: var(--ab-snow); padding: 1.5rem !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1rem !important; }
.wc-block-components-product-metadata, .wc-block-components-product-details { color: var(--ab-stone); font-size: 0.75rem; }
.wc-block-cart__empty-cart__title { font-family: var(--ab-serif); font-weight: 400; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: 0 !important; }
.wc-block-components-notice-banner { border-radius: 0; }

.ab-header--checkout { position: relative; }
.ab-header--checkout .ab-header__bar { display: flex !important; }
.ab-checkout-back a { text-decoration: none; letter-spacing: 0.16em; text-transform: uppercase; }
.ab-checkout-back, .ab-checkout-secure { margin: 0; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ab-stone); min-width: 5rem; }
.ab-checkout-secure { text-align: right; }
.ab-checkout-foot { padding-block: 2rem; border-top: 1px solid var(--ab-mist); color: var(--ab-stone); }
.ab-checkout-foot a { color: inherit; }
@media (max-width: 599px) { .ab-checkout-secure { display: none; } .ab-header--checkout .ab-wordmark { font-size: 0.85rem !important; } }

/* ---------- My account (classic shortcode) ---------- */
.woocommerce-account .woocommerce { display: grid; gap: var(--wp--preset--spacing--40); }
@media (min-width: 782px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 220px 1fr; } }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ab-mist); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--ab-mist); }
.woocommerce-MyAccount-navigation a { display: block; padding: 0.85rem 0; text-decoration: none; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--ab-dusk); }
.woocommerce-account h2 { font-size: var(--wp--preset--font-size--x-large); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea {
	border: 1px solid var(--ab-mist); border-radius: 0; padding: 0.85rem 0.9rem; background: #fff; font: inherit;
}
.woocommerce form .form-row label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--ab-mist) !important; border-radius: 0 !important; padding: clamp(1.25rem, 4vw, 2.5rem) !important; }
.woocommerce .button, .woocommerce button.button { background: var(--ab-ink) !important; color: var(--ab-snow) !important; border-radius: 0 !important; padding: 1rem 1.8rem !important; font-size: 0.6875rem !important; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600 !important; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top-color: var(--ab-ink) !important; background: var(--ab-snow) !important; border-radius: 0; }
.woocommerce-info::before, .woocommerce-message::before { color: var(--ab-ink) !important; }

/* ---------- Institutional pages ---------- */
.ab-info__nav { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; }
.ab-info__nav a { text-decoration: none; font-size: 0.8125rem; color: var(--ab-stone); }
.ab-info__nav a:hover, .ab-info__nav a[aria-current="page"] { color: var(--ab-ink); }
.ab-info__body h2 { font-size: var(--wp--preset--font-size--large); margin-top: 2.5rem; }
.ab-info__body > * { max-width: 44rem; }
@media (min-width: 782px) {
	.ab-info__aside { position: sticky; top: calc(var(--ab-header-h) + 2rem); align-self: flex-start; }
	.ab-info__nav { flex-direction: column; }
}

/* ---------- Footer ---------- */
.ab-footer a { color: rgb(244 242 237 / .78); text-decoration: none; }
.ab-footer a:hover { color: var(--ab-snow); }
.ab-footer h4 { color: rgb(244 242 237 / .55); margin-bottom: 1rem; letter-spacing: 0.24em !important; }
.ab-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem; font-size: 0.875rem; }
.ab-wordmark--footer { padding-left: 0; margin-bottom: 1.25rem !important; }
.ab-footer__claim { color: rgb(244 242 237 / .8); max-width: 20rem; }
.ab-footer__base { border-top: 1px solid rgb(244 242 237 / .14); padding-top: 1.25rem; color: rgb(244 242 237 / .55); gap: 0.75rem; }
.ab-footer__base p { margin: 0; letter-spacing: 0.12em; text-transform: uppercase; }
.ab-market__label { opacity: .6; margin-right: 0.5rem; }
@media (max-width: 781px) { .ab-footer__cols { display: block !important; } .ab-footer__cols > .wp-block-column + .wp-block-column { margin-top: 2.5rem; } }

/* ---------- WooCommerce notices (blocks) ---------- */
.wc-block-components-notice-banner.is-success { border-color: var(--ab-ink); background: var(--ab-snow); }
.wc-block-components-notice-banner.is-success > svg { background: var(--ab-ink); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Block checkout headings/titles use the UI face, not the display serif. */
.wc-block-checkout .wc-block-components-title, .wc-block-checkout .wc-block-components-checkout-step__title,
.wc-block-components-order-summary-item__description .wc-block-components-product-name,
.wc-block-components-order-summary .wc-block-components-panel__button, .wc-block-cart .wc-block-components-title {
	font-family: var(--ab-sans) !important;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.04em; }
.wc-block-components-order-summary-item__quantity { background: var(--ab-ink) !important; color: var(--ab-snow) !important; border: 0 !important; box-shadow: none !important; }


/* ---------- Icons ---------- */
.ab-heart {
	display: inline-block; width: 20px; height: 20px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M12 20.3s-7.6-4.6-9.2-9.3C1.7 7.6 3.9 4.5 7.1 4.5c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.2 0 5.4 3.1 4.3 6.5-1.6 4.7-9.2 9.3-9.2 9.3z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M12 20.3s-7.6-4.6-9.2-9.3C1.7 7.6 3.9 4.5 7.1 4.5c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.2 0 5.4 3.1 4.3 6.5-1.6 4.7-9.2 9.3-9.2 9.3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
[aria-pressed="true"] .ab-heart, .ab-saved-link.has-items .ab-heart {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20.3s-7.6-4.6-9.2-9.3C1.7 7.6 3.9 4.5 7.1 4.5c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.2 0 5.4 3.1 4.3 6.5-1.6 4.7-9.2 9.3-9.2 9.3z'/%3E%3C/svg%3E");
	        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20.3s-7.6-4.6-9.2-9.3C1.7 7.6 3.9 4.5 7.1 4.5c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.2 0 5.4 3.1 4.3 6.5-1.6 4.7-9.2 9.3-9.2 9.3z'/%3E%3C/svg%3E");
}
.ab-saved-link { position: relative; display: inline-flex; color: inherit; padding: 0.25rem; }
.ab-saved-count { position: absolute; top: -2px; right: -6px; min-width: 1.05rem; height: 1.05rem; border-radius: 1rem; background: var(--ab-ink); color: var(--ab-snow); font-size: 0.625rem; font-weight: 600; display: grid; place-items: center; }
.ab-header-part.is-overlay:not(.is-stuck) .ab-saved-count { background: var(--ab-snow); color: var(--ab-ink); }
@media (max-width: 599px) { .ab-saved-link { display: none; } }

/* Submenu */
.ab-header__nav .wp-block-navigation__submenu-container { background: var(--ab-paper) !important; color: var(--ab-ink) !important; border: 1px solid var(--ab-mist) !important; padding: 0.75rem 0 !important; min-width: 220px !important; }
.ab-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 1.25rem !important; }
.ab-header__nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; padding: 0.25rem 0 0.5rem 0 !important; }
.ab-header__nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.35rem !important; padding: 0.3rem 0 !important; color: var(--ab-stone); }

/* ---------- Service strip ---------- */
.ab-service { border-top: 1px solid var(--ab-mist); border-bottom: 1px solid var(--ab-mist); padding: var(--wp--preset--spacing--30) var(--wp--style--root--padding-left); margin-block: 0 !important; }
.ab-service__list { list-style: none; margin: 0 auto; padding: 0; max-width: var(--wp--style--global--wide-size); display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem 1.5rem; }
.ab-service__list li { display: grid; gap: 0.2rem; font-size: 0.75rem; color: var(--ab-stone); }
.ab-service__list strong { color: var(--ab-ink); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
@media (min-width: 782px) { .ab-service__list { grid-template-columns: repeat(var(--ab-cols, 4), 1fr); text-align: center; } }

/* ---------- Product cards: hover image, badge, save, swatches ---------- */
.ab-card__media { position: relative; }
.ab-card__media a { position: relative; display: block; }
.ab-card__alt { position: absolute !important; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .45s var(--ab-ease) !important; }
@media (hover: hover) and (min-width: 782px) { .wc-block-product:hover .ab-card__alt { opacity: 1; } }
.ab-badge { position: absolute; top: 0.6rem; left: 0.6rem; z-index: 2; background: var(--ab-paper); color: var(--ab-ink); font-size: 0.5625rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.35rem 0.55rem; }
.ab-save { background: none; border: 0; padding: 0; cursor: pointer; color: var(--ab-ink); font: inherit; display: inline-flex; align-items: center; gap: 0.5rem; }
.ab-save--card { position: absolute; top: 0.45rem; right: 0.45rem; z-index: 2; width: 34px; height: 34px; justify-content: center; border-radius: 50%; background: rgb(250 249 246 / .82); backdrop-filter: blur(6px); }
.ab-save--card .ab-heart { width: 17px; height: 17px; }
.ab-swatches { display: flex; flex-wrap: nowrap; gap: 0.4rem; margin-top: 0.55rem; overflow-x: auto; scrollbar-width: none; }
.ab-swatch { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; background: var(--ab-swatch); box-shadow: inset 0 0 0 1px rgb(13 13 15 / .18); }
.ab-swatch:hover { outline: 1px solid var(--ab-ink); outline-offset: 2px; }

/* ---------- PDP additions ---------- */
.ab-pdp__material { margin: -0.35rem 0 0 !important; font-family: var(--ab-serif); font-style: italic; font-size: 1.15rem; color: var(--ab-stone); }
.ab-pdp__buy .wc-block-product-filter-chips__item { display: inline-flex !important; align-items: center; gap: 0.5rem; }
.ab-pdp__buy .wc-block-product-filter-chips__item::before { content: ""; display: var(--ab-swatch-display, none); width: 14px; height: 14px; border-radius: 50%; background: var(--ab-swatch); box-shadow: inset 0 0 0 1px rgb(13 13 15 / .2); }
.ab-pdp__buy .wc-block-product-filter-chips__item[aria-checked="true"]::before { box-shadow: 0 0 0 1.5px var(--ab-snow), 0 0 0 2.5px var(--ab-ink); }
.ab-pdp__buy .stock { margin: 0; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ab-dusk); }
.ab-pdp__buy .stock.out-of-stock { color: var(--ab-stone); }
.ab-pdp__stock { margin: 0 !important; font-size: 0.6875rem !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ab-stone); }
.ab-pdp__stock .wc-block-components-product-stock-indicator--low-stock, .ab-pdp__stock.wc-block-components-product-stock-indicator--low-stock { color: var(--ab-dusk); }
.ab-pdp__aux { display: grid; gap: 0.6rem; }
.ab-pdp__aux .ab-save { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; justify-self: start; padding: 0.35rem 0; }
.ab-pdp__service, .ab-pdp__help { margin: 0; font-size: 0.8125rem; color: var(--ab-stone); }
.ab-pdp__help a { color: var(--ab-ink); }
.ab-acc__body { padding-bottom: 1.25rem; color: var(--ab-stone); font-size: 0.875rem; }
.ab-acc__body ul { margin: 0.25rem 0 0.75rem; padding-left: 1.1rem; }
.ab-acc__body li { margin: 0.2rem 0; }
.ab-acc__text p { margin: 0 0 0.75rem; }
.ab-acc__sub { margin: 0.75rem 0 0.25rem; color: var(--ab-ink); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.ab-acc__note { margin: 0.9rem 0 0; font-family: var(--ab-serif); font-style: italic; font-size: 1.05rem; line-height: 1.4; color: var(--ab-ink); }
.ab-acc__links { margin: 0.5rem 0 0; font-size: 0.8125rem; }
.ab-acc__links a { color: var(--ab-ink); }
.ab-spec { margin: 0; display: grid; gap: 0; }
.ab-spec > div { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid var(--ab-mist); }
.ab-spec dt { color: var(--ab-ink); font-weight: 500; }
.ab-spec dd { margin: 0; }

/* Gallery counter + sticky add to bag (mobile) */
.ab-pdp__media .woocommerce-product-gallery { position: relative; }
.ab-gallery-count { position: absolute; left: 0.75rem; bottom: 0.75rem; z-index: 5; background: rgb(250 249 246 / .85); padding: 0.3rem 0.6rem; font-size: 0.6875rem; letter-spacing: 0.12em; }
.ab-sticky-atb {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 0.7rem var(--wp--style--root--padding-left) calc(0.7rem + env(safe-area-inset-bottom)); background: rgb(250 249 246 / .97); backdrop-filter: blur(10px);
	border-top: 1px solid var(--ab-mist); transform: translateY(110%); transition: transform .3s var(--ab-ease);
}
.ab-sticky-atb.is-visible { transform: none; }
.ab-sticky-atb__meta { display: grid; font-size: 0.75rem; line-height: 1.3; }
.ab-sticky-atb__meta strong { font-weight: 600; font-size: 0.875rem; }
.ab-sticky-atb__meta span { color: var(--ab-stone); }
.ab-sticky-atb button { background: var(--ab-ink); color: var(--ab-snow); border: 0; min-height: 3rem; padding: 0 1.4rem; font: 600 0.6875rem/1 var(--ab-sans); letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer; }
@media (min-width: 782px) { .ab-sticky-atb { display: none; } }

/* Saved + recently viewed */
.ab-mini-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 0.5rem; }
@media (min-width: 782px) { .ab-mini-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 0.75rem; } }
.ab-mini-grid a { text-decoration: none; }
.ab-mini-grid img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; background: var(--ab-snow); margin-bottom: 0.75rem; }
.ab-mini-grid .ab-mini__name { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.05em; margin: 0; }
.ab-mini-grid .ab-mini__price { font-size: 0.8125rem; color: var(--ab-stone); margin: 0.15rem 0 0; }
.ab-recent { margin-top: var(--wp--preset--spacing--60) !important; }
.ab-recent__title { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 var(--wp--preset--spacing--30); }
.ab-saved__empty { color: var(--ab-stone); }

/* Footer navigation (dynamic columns) */
.ab-footer__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
@media (min-width: 782px) { .ab-footer__nav { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
.ab-footer__nav h4 { font-family: var(--ab-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: rgb(244 242 237 / .55); margin: 0 0 1rem; }
.ab-footer__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; font-size: 0.875rem; }

.ab-hero h1 { font-size: clamp(2.75rem, 1.6rem + 4.6vw, 5.75rem) !important; }
[hidden] { display: none !important; }
.ab-pdp__media .flex-viewport, .ab-pdp__media .woocommerce-product-gallery__wrapper { position: relative; }
.ab-pdp__buy .wc-block-components-product-stock-indicator { margin: 0 !important; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ab-dusk); }
.ab-pdp__buy .wc-block-components-product-stock-indicator:empty { display: none; }
.ab-pdp__buy .wc-block-components-product-stock-indicator--out-of-stock { color: var(--ab-stone); }

/* ---------- Polish pass ---------- */
/* 1. PDP mobile: gallery close to the header, buying info sooner */
@media (max-width: 781px) {
	.ab-pdp { padding-top: 0.75rem !important; }
	.ab-pdp__cols { margin-top: 0 !important; row-gap: 1rem !important; }
	.ab-pdp .wp-block-woocommerce-store-notices:empty { display: none; }
	.ab-pdp__media .flex-control-thumbs { margin-top: 0.4rem !important; }
}
/* 2. Collection toolbar: "N pieces · Sort", intentional chip scroller */
.ab-count { margin: 0; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ab-ink); }
.ab-collection__tools select { min-width: 0; padding-right: 1.4rem; text-align: right; }
@media (max-width: 781px) {
	.ab-collection__bar { gap: 0.9rem; padding-top: var(--wp--preset--spacing--20); }
	.ab-chips {
		flex-wrap: nowrap; margin-inline: calc(-1 * var(--wp--style--root--padding-left)); padding-inline: var(--wp--style--root--padding-left);
		scroll-snap-type: x proximity; -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent);
	}
	.ab-chips li { scroll-snap-align: start; flex: 0 0 auto; }
	.ab-chips a { padding: 0.5rem 0.8rem; font-size: 0.625rem; letter-spacing: 0.14em; }
	.ab-collection__tools { width: 100%; justify-content: space-between; }
}
/* 3. Mobile menu secondary paths */
.ab-header__nav .wp-block-navigation__responsive-container:not(.is-menu-open) .ab-nav-secondary { display: none; }
.ab-header__nav .is-menu-open .ab-nav-secondary .wp-block-navigation-item__content {
	font-family: var(--ab-sans) !important; font-size: 0.75rem !important; font-weight: 600; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--ab-stone);
}
.ab-header__nav .is-menu-open .ab-nav-secondary--first { margin-top: 1.75rem; padding-top: 1.75rem; border-top: 1px solid var(--ab-mist); width: 100%; }
/* 6. Functional text readable */
.ab-acc__body, .ab-pdp__service, .ab-mini-grid .ab-mini__price, .ab-card__price { color: #4A4742; }
.wc-block-components-text-input input, .wc-block-components-text-input label { color: var(--ab-ink); }
/* 7. No account-architecture reminder at checkout */
.wc-block-checkout__guest-checkout-notice { display: none !important; }
/* Product rows on landing pages disappear when they have nothing to show (never an empty shelf). */
.ab-section:has(.wp-block-woocommerce-product-collection):not(:has(.wc-block-product)) { display: none; }
