/* Barbara Atanasio — everything theme.json cannot express.
   Palette: ink #12110f · bone #ffffff · paper #dcd8ce · beige #8b7e74 · cream #efece4 · yellow #efec8d · grid #f3f2ef */

:root {
	--ba-ink: #12110f;
	--ba-bone: #ffffff;
	--ba-paper: #dcd8ce;
	--ba-yellow: #efec8d;
	--ba-grid: #f3f2ef;
	--ba-beige: #8b7e74;
	--ba-cream: #efece4;
	--ba-rule: 2px solid var(--ba-ink);
}

body {
	text-wrap: pretty;
}

::selection {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

/* ------------------------------------------------------------- header */

.ba-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--ba-bone);
	border-bottom: var(--ba-rule);
}

.ba-header .wp-block-site-title a {
	text-decoration: none;
}

.ba-header .wc-block-mini-cart__button {
	background: var(--ba-ink);
	color: var(--ba-cream);
	padding: 8px 12px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: 0;
}

.ba-header .wc-block-mini-cart__button:hover {
	background: var(--ba-yellow); color: var(--ba-ink);
}

.ba-header .wc-block-mini-cart__quantity-badge {
	color: inherit;
}

/* ------------------------------------------------------------ marquee */

.ba-marquee {
	background: var(--ba-beige);
	color: var(--ba-ink);
	border-bottom: var(--ba-rule);
	overflow: hidden;
	padding: 9px 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.ba-marquee__track {
	display: flex;
	width: max-content;
	animation: ba-marq var(--ba-marquee-speed, 26s) linear infinite;
}

.ba-marquee__set {
	display: flex;
	gap: 26px;
	flex: 0 0 auto;
	padding-right: 26px;
	white-space: nowrap;
}

@keyframes ba-marq {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media ( prefers-reduced-motion: reduce ) {
	.ba-marquee__track { animation: none; }
}









/* ----------------------------------------------------- hero + sections */

.ba-hero {
	min-height: min( 86vh, 860px );
}

.ba-hero .wp-block-cover__background {
	background: linear-gradient( to top, rgba( 18, 17, 15, 0.86 ), rgba( 18, 17, 15, 0 ) 65% ) !important;
}

.ba-eyebrow {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.ba-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px 18px;
	border-bottom: var(--ba-rule);
	padding-bottom: 12px;
}

.ba-rule-top { border-top: var(--ba-rule); }

/* ---------------------------------------------------- product grid ink */

.ba-grid .wp-block-post-template,
.ba-grid .wc-block-product-template {
	gap: 2px !important;
	background: var(--ba-ink);
	border: var(--ba-rule);
}

.ba-grid .wc-block-product-template__responsive,
.ba-grid li.product,
.ba-grid .wc-block-product {
	background: var(--ba-bone);
	padding: 0 0 12px;
	position: relative;
}

.ba-grid .wc-block-product .wc-block-components-product-image,
.ba-grid li.product .wc-block-components-product-image {
	margin: 0 0 10px;
	overflow: hidden;
	background: var(--ba-paper);
}

.ba-grid .wc-block-components-product-image img,
.ba-grid li.product img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier( 0.2, 0.7, 0.2, 1 );
}

.ba-grid .wc-block-product:hover img,
.ba-grid li.product:hover img {
	transform: scale( 1.07 );
}

.ba-grid .wc-block-components-product-name,
.ba-grid .woocommerce-loop-product__title {
	display: block;
	padding: 0 10px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem !important;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ba-grid .wc-block-components-product-price,
.ba-grid .price {
	display: block;
	padding: 8px 10px 0;
	font-size: 0.75rem !important;
	font-weight: 600;
	color: var(--ba-ink) !important;
}

.ba-loop-spec,
.ba-loop-sizes {
	margin: 4px 0 0;
	padding: 0 10px;
	font-size: 0.6875rem;
	opacity: 0.55;
	letter-spacing: 0.04em;
}

.ba-loop-sizes {
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.4;
}

.ba-badge {
	position: absolute;
	top: 0;
	z-index: 2;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 6px 9px;
}

.ba-badge--sold {
	left: 0;
	background: var(--ba-ink);
	color: var(--ba-cream);
}

.ba-badge--new {
	right: 0;
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

.ba-grid .wp-block-button__link,
.ba-grid .add_to_cart_button,
.ba-grid .wc-block-components-product-button__button {
	margin: 10px 10px 0;
	background: var(--ba-bone);
	color: var(--ba-ink);
	border: var(--ba-rule);
	border-radius: 0;
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	padding: 7px 10px;
	width: calc( 100% - 20px );
}

.ba-grid .add_to_cart_button:hover,
.ba-grid .wc-block-components-product-button__button:hover {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

/* ------------------------------------------------------------ filters */

.ba-sidebar {
	border-right: var(--ba-rule);
	border-bottom: var(--ba-rule);
}

.ba-sidebar h2,
.ba-sidebar h3,
.ba-sidebar .wc-block-product-filter__title {
	font-family: 'IBM Plex Mono', monospace !important;
	font-size: 0.625rem !important;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.55;
	border-bottom: 1px solid rgba( 18, 17, 15, 0.25 );
	padding-bottom: 6px;
}

.ba-sidebar label,
.ba-sidebar .wc-block-checkbox-list label {
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ba-sidebar input[type="checkbox"] {
	border-radius: 0;
	border: var(--ba-rule);
	accent-color: var(--ba-yellow);
}

.woocommerce-ordering select,
.ba-sidebar select {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: var(--ba-rule);
	border-radius: 0;
	background: var(--ba-bone);
	padding: 7px 9px;
}

.woocommerce-result-count {
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.6;
}

/* ------------------------------------------------------ single product */

.ba-product-media {
	border-right: var(--ba-rule);
	border-bottom: var(--ba-rule);
}

.ba-product-media .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.ba-product-media .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	gap: 2px;
	margin: 2px 0 0;
	padding: 0;
	background: var(--ba-ink);
	list-style: none;
}

.ba-product-media .flex-control-thumbs img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	opacity: 0.55;
	cursor: pointer;
}

.ba-product-media .flex-control-thumbs img.flex-active,
.ba-product-media .flex-control-thumbs img:hover {
	opacity: 1;
}

.ba-product-summary {
	border-bottom: var(--ba-rule);
}

.ba-product-summary .product_title {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 1.75rem, 4.4vw, 3.25rem );
	line-height: 0.88;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	margin: 0 0 10px;
}

.ba-product-summary .price {
	font-size: 1rem !important;
	font-weight: 600;
	color: var(--ba-ink) !important;
}

.ba-spec-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
}

.ba-spec-tags li {
	border: var(--ba-rule);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 5px 8px;
}

.ba-size-guide-trigger {
	background: none;
	border: none;
	border-bottom: var(--ba-rule);
	padding: 0 0 2px;
	margin: 0 0 10px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	float: right;
}

.ba-model-info {
	font-size: 0.6875rem;
	line-height: 1.7;
	opacity: 0.6;
	margin-top: 12px;
}

/* Variation swatches: square, hard-edged, sold-out struck through. */
table.variations {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 12px;
}

table.variations th,
table.variations td {
	padding: 0 0 8px;
	text-align: left;
}

table.variations label {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

table.variations select {
	width: 100%;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: var(--ba-rule);
	border-radius: 0;
	background: var(--ba-bone);
	padding: 12px 10px;
}

form.cart .single_add_to_cart_button {
	background: var(--ba-yellow);
	color: var(--ba-ink);
	border: var(--ba-rule);
	border-radius: 0;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 15px 22px;
}

form.cart .single_add_to_cart_button:hover {
	background: var(--ba-ink);
	color: var(--ba-cream);
}

form.cart .quantity input {
	border: var(--ba-rule);
	border-radius: 0;
	padding: 13px 8px;
	font-family: 'IBM Plex Mono', monospace;
	background: var(--ba-bone);
}

.ba-shake { animation: ba-shake 0.4s ease; }

@keyframes ba-shake {
	25% { transform: translateX( -5px ); }
	75% { transform: translateX( 5px ); }
}

/* ---------------------------------------------------------- accordion */

.woocommerce-tabs .wc-tabs { display: none; }

.ba-accordion__head {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	background: none;
	border: none;
	border-top: var(--ba-rule);
	padding: 14px 0;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-align: left;
	cursor: pointer;
}

.ba-accordion__mark { font-size: 1rem; line-height: 1; }

.ba-accordion__panel {
	padding: 0 0 16px;
	font-size: 0.75rem;
	line-height: 1.75;
}

.ba-accordion__panel h2 { display: none; }

/* -------------------------------------------------------------- modal */

.ba-modal { position: fixed; inset: 0; z-index: 90; }

.ba-modal[hidden] { display: none; }

.ba-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba( 18, 17, 15, 0.7 );
}

.ba-modal__panel {
	position: relative;
	margin: 6vh auto 0;
	max-width: 520px;
	width: calc( 100% - 36px );
	max-height: 82vh;
	overflow-y: auto;
	background: var(--ba-bone);
	border: var(--ba-rule);
}

.ba-modal__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 16px;
	border-bottom: var(--ba-rule);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ba-modal__close {
	background: none;
	border: none;
	font-size: 1rem;
	cursor: pointer;
}

.ba-modal__body { padding: 14px 16px 20px; font-size: 0.6875rem; line-height: 1.7; }

.ba-size-table {
	width: 100%;
	border: var(--ba-rule);
	border-collapse: collapse;
	margin-top: 14px;
	font-size: 0.6875rem;
}

.ba-size-table th {
	background: var(--ba-ink);
	color: var(--ba-yellow);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ba-size-table th,
.ba-size-table td {
	padding: 8px 6px;
	border-bottom: 1px solid rgba( 18, 17, 15, 0.18 );
	text-align: left;
}

.ba-size-table tr:nth-child( even ) td { background: #e6e2d8; }

/* --------------------------------------------------- sticky add to cart */

.ba-sticky-atc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--ba-bone);
	border-top: var(--ba-rule);
	padding: 10px 18px;
}

.ba-sticky-atc[hidden] { display: none; }

.ba-sticky-atc__meta { flex: 1; min-width: 0; }

.ba-sticky-atc__name {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ba-sticky-atc__price { margin: 2px 0 0; font-size: 0.6875rem; opacity: 0.6; }

.ba-sticky-atc__price .amount { font-weight: 600; }

.ba-sticky-atc__button {
	background: var(--ba-yellow);
	color: var(--ba-ink);
	border: var(--ba-rule);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 14px 20px;
	cursor: pointer;
}

.ba-sticky-atc__button:hover { background: var(--ba-ink); color: var(--ba-cream); }

.ba-sticky-atc__button[disabled] { background: var(--ba-paper); cursor: not-allowed; }

/* ---------------------------------------------------- cart + checkout */

.ba-ship-note {
	background: var(--ba-yellow);
	border: var(--ba-rule);
	padding: 10px 14px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-checkout__form h2 {
	font-family: 'IBM Plex Mono', monospace !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
}

.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-textarea {
	border: var(--ba-rule) !important;
	border-radius: 0 !important;
	background: var(--ba-bone) !important;
	font-family: 'IBM Plex Mono', monospace !important;
}

.wc-block-components-button:not( .is-link ),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--ba-ink) !important;
	color: var(--ba-cream) !important;
	border-radius: 0 !important;
	font-family: 'IBM Plex Mono', monospace !important;
	font-weight: 600 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	min-height: 52px;
}

.wc-block-components-button:not( .is-link ):hover {
	background: var(--ba-yellow) !important; color: var(--ba-ink);
}

.wc-block-components-order-summary,
.wc-block-cart__totals-footer,
.wc-block-components-totals-wrapper {
	border-color: var(--ba-ink) !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.5rem;
	letter-spacing: -0.03em;
}

.wc-block-mini-cart__drawer .wc-block-components-drawer {
	border-left: var(--ba-rule);
	background: var(--ba-bone);
}

/* -------------------------------------------------------------- footer */

.ba-footer {
	background: var(--ba-ink);
	color: var(--ba-cream);
}

.ba-footer a { color: var(--ba-cream); }

.ba-footer a:hover { background: var(--ba-yellow); color: var(--ba-ink); }

.ba-footer-heading {
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.4;
}

/* --------------------------------------------------------- responsive */

@media ( max-width: 781px ) {
	.ba-sidebar { border-right: none; }
	.ba-size-guide-trigger { float: none; display: block; }
}


/* =========================================================================
   Max-fidelity additions: classic loop grid, own filters, size swatches,
   quick-add, toast, cookie notice, FAQ, account page.
   ====================================================================== */

/* -------------------------------------------------- classic product loop */

.woocommerce ul.products,
.ba-shop__main ul.products {
	display: grid !important;
	grid-template-columns: repeat( auto-fill, minmax( 208px, 1fr ) );
	gap: 2px;
	margin: 0;
	padding: 0;
	background: var(--ba-ink);
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none !important;
	display: none !important;
}

.woocommerce ul.products li.product {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 0 12px;
	background: var(--ba-bone);
	position: relative;
	display: flex;
	flex-direction: column;
	text-align: left;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	overflow: hidden;
	background: var(--ba-paper);
	font-size: 0;
}

.woocommerce ul.products li.product img {
	display: block;
	width: 100%;
	margin: 0 0 10px;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier( 0.2, 0.7, 0.2, 1 );
}

.woocommerce ul.products li.product:hover img {
	transform: scale( 1.07 );
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 10px !important;
	margin: 0 !important;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem !important;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 !important;
	padding: 8px 10px 0;
	font-size: 0.75rem !important;
	font-weight: 600;
	color: var(--ba-ink) !important;
}

.woocommerce ul.products li.product .price del { opacity: 0.4; }

.woocommerce ul.products li.product .price ins { text-decoration: none; }

.ba-quick-add {
	margin: 10px 10px 0;
	width: calc( 100% - 20px );
	background: var(--ba-bone);
	color: var(--ba-ink);
	border: var(--ba-rule);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 8px 10px;
	cursor: pointer;
	margin-top: auto;
}

.ba-quick-add:hover { background: var(--ba-yellow); }

.ba-quick-add[disabled] { opacity: 0.5; cursor: wait; }

.woocommerce nav.woocommerce-pagination {
	padding: 24px 0;
}

.woocommerce nav.woocommerce-pagination ul {
	border: none;
	display: flex;
	gap: 2px;
	justify-content: center;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: var(--ba-rule);
	padding: 9px 13px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	background: var(--ba-bone);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ba-ink);
	color: var(--ba-cream);
}

/* Archive toolbar (result count + sorting) */

.ba-shop__main .woocommerce-notices-wrapper:empty { display: none; }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin: 0;
	padding: 12px 14px;
}

.ba-shop__main .woocommerce-products-header { display: none; }

.ba-shop__main form.woocommerce-ordering {
	border-bottom: var(--ba-rule);
	width: 100%;
	display: flex;
	justify-content: flex-end;
}

.ba-shop__main .woocommerce-result-count {
	border-bottom: var(--ba-rule);
	float: none;
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.6;
}

@media ( min-width: 782px ) {
	.ba-shop__main .woocommerce-result-count,
	.ba-shop__main form.woocommerce-ordering {
		box-sizing: border-box;
		display: flex;
		align-items: center;
		min-height: 56px;
		border-bottom: 0;
	}
	.ba-shop__main .woocommerce-result-count {
		float: left;
		width: 50%;
		border-right: 2px solid rgba( 18, 17, 15, 0.12 );
	}
	.ba-shop__main form.woocommerce-ordering {
		float: right;
		width: 50%;
	}
}

/* ------------------------------------------------------- own filter stack */

.ba-filters__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 16px;
}

.ba-filters__title {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ba-filters__clear {
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.5;
}

.ba-filters__clear:hover { opacity: 1; background: var(--ba-yellow); color: var(--ba-ink); }

.ba-filter-group { margin-bottom: 22px; }

.ba-filter-group__title {
	margin: 0 0 8px;
	padding-bottom: 6px;
	border-bottom: 1px solid rgba( 18, 17, 15, 0.25 );
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.45;
}

.ba-filter-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ba-filter-item a {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ba-filter-box {
	width: 13px;
	height: 13px;
	flex: 0 0 13px;
	border: var(--ba-rule);
	background: transparent;
}

.ba-filter-item.is-on .ba-filter-box { background: var(--ba-yellow); }

.ba-filter-count { margin-left: auto; opacity: 0.4; }

/* ---------------------------------------------------------- size swatches */

.ba-size-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	margin: 22px 0 8px;
}

.ba-size-row__label {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ba-size-guide-trigger { float: none; margin: 0; }

/* The select stays for Woo's logic, the buttons are the UI. */
table.variations td.value select { display: none; }

table.variations .reset_variations { display: none; }

.ba-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ba-swatch {
	min-width: 56px;
	border: var(--ba-rule);
	background: transparent;
	color: var(--ba-ink);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 12px 6px;
	cursor: pointer;
}

.ba-swatch:hover { background: var(--ba-yellow); }

.ba-swatch.is-on {
	background: var(--ba-ink);
	color: var(--ba-cream);
}

.ba-swatch.is-out {
	opacity: 0.35;
	text-decoration: line-through;
	cursor: not-allowed;
}

.ba-swatch.is-out:hover { background: transparent; }

/* ----------------------------------------------------------------- toast */

.ba-toast {
	position: fixed;
	left: 50%;
	bottom: 22px;
	transform: translate( -50%, 12px );
	z-index: 95;
	background: var(--ba-ink);
	color: var(--ba-yellow);
	border: 2px solid var(--ba-yellow);
	padding: 12px 18px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
	max-width: calc( 100% - 36px );
	text-align: center;
}

.ba-toast.is-on {
	opacity: 1;
	transform: translate( -50%, 0 );
}

/* --------------------------------------------------------- cookie notice */

.ba-cookies {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	background: var(--ba-ink);
	color: var(--ba-cream);
	border-top: 2px solid var(--ba-yellow);
	padding: 14px 18px;
}

.ba-cookies[hidden] { display: none; }

.ba-cookies__text {
	margin: 0;
	flex: 1 1 260px;
	font-size: 0.6875rem;
	line-height: 1.6;
	letter-spacing: 0.04em;
}

.ba-cookies__actions { display: flex; gap: 8px; }

.ba-cookies__accept,
.ba-cookies__deny {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 10px 14px;
	cursor: pointer;
	border: 2px solid var(--ba-yellow);
}

.ba-cookies__accept {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

.ba-cookies__deny {
	background: transparent;
	color: var(--ba-bone);
	border-color: rgba( 239, 236, 228, 0.4 );
}

/* Keep the sticky add-to-cart clear of the cookie bar. */
.ba-cookies:not([hidden]) ~ .ba-sticky-atc { bottom: 72px; }

/* --------------------------------------------------------------- details */

.wp-block-details {
	border-top: var(--ba-rule);
	padding: 14px 0;
}

.wp-block-details summary {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}

.wp-block-details p {
	font-size: 0.75rem;
	line-height: 1.75;
	margin: 10px 0 0;
}

/* ---------------------------------------------------------- account page */

.ba-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	background: var(--ba-ink);
	border: var(--ba-rule);
}

.ba-account .woocommerce-MyAccount-navigation li {
	background: var(--ba-bone);
	flex: 1 1 auto;
}

.ba-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 14px;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: center;
}

.ba-account .woocommerce-MyAccount-navigation li.is-active {
	background: var(--ba-ink);
}

.ba-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--ba-bone); }

.ba-account .woocommerce-MyAccount-content,
.woocommerce-form-login,
.woocommerce-form-register {
	border: var(--ba-rule);
	padding: 20px;
	background: var(--ba-bone);
}

.woocommerce form .form-row label {
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border: var(--ba-rule);
	border-radius: 0;
	background: var(--ba-bone);
	padding: 12px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.8125rem;
}

.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button {
	background: var(--ba-ink);
	color: var(--ba-cream);
	border: var(--ba-rule);
	border-radius: 0;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 13px 18px;
}

.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

/* ------------------------------------------------------------- messages */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border: var(--ba-rule);
	border-top-color: var(--ba-ink) !important;
	background: var(--ba-yellow);
	color: var(--ba-ink);
	border-radius: 0;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 14px 18px 14px 18px;
}

.woocommerce-error {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

@media ( max-width: 781px ) {
	.ba-size-row { flex-direction: column; align-items: flex-start; gap: 4px; }
	.ba-cookies:not([hidden]) ~ .ba-sticky-atc { bottom: 104px; }
}


/* =========================================================================
   v3 — template overrides: literal card, product page, cart drawer.
   ====================================================================== */

.ba-grid-wrap {
	border: var(--ba-rule);
	background: var(--ba-ink);
}

.ba-grid-inner {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 208px, 1fr ) );
	gap: 2px;
}

.ba-card {
	display: flex;
	flex-direction: column;
	background: var(--ba-bone);
	margin: 0;
	padding: 0 0 12px;
}

.ba-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--ba-paper);
	font-size: 0;
	aspect-ratio: 3 / 4;
}

.ba-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier( 0.2, 0.7, 0.2, 1 );
}

.ba-card:hover .ba-card__media img { transform: scale( 1.07 ); }

.ba-card__body {
	display: flex;
	flex-direction: column;
	gap: 5px;
	flex: 1;
	padding: 10px 10px 0;
}

.ba-card__title {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ba-card__spec {
	margin: 0;
	font-size: 0.6875rem;
	letter-spacing: 0.04em;
	opacity: 0.55;
}

.ba-card__sizes {
	margin: 0;
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.4;
}

.ba-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
}

.ba-card__price,
.ba-card__price .amount {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ba-ink);
}

.ba-card__price del { opacity: 0.4; }
.ba-card__price ins { text-decoration: none; }

.ba-card .ba-quick-add {
	margin: 0;
	width: auto;
	padding: 6px 9px;
}

/* toolbar above the grid */

.ba-toolbar__count,
.ba-toolbar__sort {
	margin: 0;
	padding: 12px 14px;
	border-bottom: var(--ba-rule);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ba-toolbar__count { opacity: 0.6; }

.ba-toolbar__sort {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}

.ba-toolbar__sort select {
	border: var(--ba-rule);
	border-radius: 0;
	background: var(--ba-bone);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 7px 9px;
	cursor: pointer;
}

@media ( min-width: 782px ) {
	/* both halves share one height so the rule under the toolbar is unbroken;
	   the rule itself is .ba-grid-wrap's top border, never the halves' own */
	.ba-toolbar__count,
	.ba-toolbar__sort {
		box-sizing: border-box;
		display: flex;
		align-items: center;
		min-height: 56px;
		border-bottom: 0;
	}
	.ba-toolbar__count { float: left; width: 50%; }
	.ba-toolbar__sort { float: right; width: 50%; }
	.ba-grid-wrap { clear: both; }
}

.ba-empty {
	padding: 60px 18px;
	text-align: center;
}

.ba-empty__title {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.75rem;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	margin: 0 0 8px;
}

.ba-empty__text { font-size: 0.75rem; margin: 0 0 18px; opacity: 0.7; }

.ba-empty__button {
	display: inline-block;
	border: var(--ba-rule);
	background: var(--ba-yellow);
	padding: 12px 18px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* ------------------------------------------------------- product page */

.ba-product__grid {
	display: grid;
	grid-template-columns: 1fr;
}

@media ( min-width: 900px ) {
	.ba-product__grid { grid-template-columns: minmax( 0, 1.05fr ) minmax( 0, 1fr ); }
	.ba-product__media { border-right: var(--ba-rule); }
}

.ba-product__media { border-bottom: var(--ba-rule); }

.ba-gallery { margin: 0; }

.ba-gallery .woocommerce-product-gallery__wrapper { margin: 0; }

.ba-gallery .woocommerce-product-gallery__image:first-child img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
}

.ba-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	gap: 2px;
	margin: 2px 0 0;
	padding: 0;
	background: var(--ba-ink);
	list-style: none;
}

.ba-gallery .flex-control-thumbs li { margin: 0; }

.ba-gallery .flex-control-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	opacity: 0.55;
	cursor: pointer;
}

.ba-gallery .flex-control-thumbs img.flex-active,
.ba-gallery .flex-control-thumbs img:hover { opacity: 1; }

.ba-product__summary {
	display: flex;
	flex-direction: column;
	padding: 24px 18px 28px;
	border-bottom: var(--ba-rule);
}

.ba-product__title {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 1.75rem, 4.4vw, 3.25rem );
	line-height: 0.88;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	margin: 0 0 10px;
}

.ba-product__price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 12px;
}

.ba-product__price,
.ba-product__price .amount {
	font-size: 1rem;
	font-weight: 600;
}

.ba-product__sku {
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.5;
}

.ba-product__blurb p {
	font-size: 0.75rem;
	line-height: 1.7;
	margin: 12px 0 0;
	max-width: 52ch;
}

.ba-variation { margin-bottom: 14px; }

.ba-variation__label {
	margin: 0 0 6px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ba-variation__select {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect( 0 0 0 0 );
	clip-path: inset( 50% );
	white-space: nowrap;
}

.ba-variations .reset_variations {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.5;
}

.ba-cart-form .single_variation .price { font-size: 0.875rem; font-weight: 600; }

.ba-cart-form .woocommerce-variation-availability p {
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.6;
}

.ba-variation-wrap .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 8px;
	align-items: stretch;
	margin-top: 12px;
}

.ba-qty input {
	height: 100%;
	min-width: 68px;
	border: var(--ba-rule);
	border-radius: 0;
	background: var(--ba-bone);
	font-family: 'IBM Plex Mono', monospace;
	padding: 12px 8px;
}

.ba-product__accordion { margin-top: 22px; }

.ba-product__accordion .woocommerce-tabs { padding: 0; }

.ba-product .related.products,
.ba-product .up-sells.products {
	padding: 44px 18px 60px;
}

.ba-product .related h2,
.ba-product .up-sells h2 {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 1.6rem, 3.4vw, 2.4rem );
	letter-spacing: -0.035em;
	text-transform: uppercase;
	border-bottom: var(--ba-rule);
	padding-bottom: 12px;
	margin: 0 0 18px;
}

/* --------------------------------------------------------- cart drawer */

.ba-cart-button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: none;
	background: none;
	color: var(--ba-ink);
	cursor: pointer;
}

.ba-cart-button:hover { background: var(--ba-yellow); color: var(--ba-ink); }

.ba-cart-button__count {
	position: absolute;
	top: 2px;
	right: 0;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	box-sizing: border-box;
	background: var(--ba-ink);
	color: var(--ba-cream);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.5625rem;
	font-weight: 600;
	line-height: 16px;
	text-align: center;
	letter-spacing: 0;
}

.ba-drawer { position: fixed; inset: 0; z-index: 80; }

.ba-drawer[hidden] { display: none; }

.ba-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba( 18, 17, 15, 0.6 );
	animation: ba-fade 0.2s ease;
}

@keyframes ba-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes ba-slide {
	from { transform: translateX( 103% ); }
	to { transform: translateX( 0 ); }
}

.ba-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min( 420px, 92vw );
	display: flex;
	flex-direction: column;
	background: var(--ba-bone);
	border-left: var(--ba-rule);
	animation: ba-slide 0.28s cubic-bezier( 0.2, 0.8, 0.2, 1 );
}

.ba-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: var(--ba-rule);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ba-drawer__close {
	background: none;
	border: none;
	font-size: 1rem;
	cursor: pointer;
	padding: 0 4px;
}

.ba-drawer__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.ba-drawer__lines { flex: 1; overflow-y: auto; }

.ba-line {
	display: flex;
	gap: 12px;
	padding: 12px 16px;
	border-bottom: 1px solid rgba( 18, 17, 15, 0.18 );
}

.ba-line__media {
	flex: 0 0 72px;
	background: var(--ba-paper);
	font-size: 0;
	aspect-ratio: 3 / 4;
	overflow: hidden;
}

.ba-line__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ba-line__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ba-line__name {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ba-line__meta {
	margin: 0;
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.55;
}

.ba-line__foot {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
}

.ba-line__qty {
	display: flex;
	border: var(--ba-rule);
}

.ba-line__qty button {
	width: 24px;
	height: 24px;
	background: none;
	border: none;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem;
	cursor: pointer;
	padding: 0;
}

.ba-line__qty span {
	width: 26px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.6875rem;
	border-left: var(--ba-rule);
	border-right: var(--ba-rule);
}

.ba-line__price {
	margin-left: auto;
	font-size: 0.6875rem;
	font-weight: 600;
}

.ba-line__remove {
	background: none;
	border: none;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.5;
	cursor: pointer;
	padding: 0;
}

.ba-line__remove:hover { background: var(--ba-yellow); color: var(--ba-ink); opacity: 1; }

.ba-drawer__empty { padding: 40px 18px; text-align: center; }

.ba-drawer__empty-title {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.5rem;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	margin: 0 0 8px;
}

.ba-drawer__empty-text { font-size: 0.6875rem; opacity: 0.6; margin: 0 0 18px; }

.ba-drawer__empty-button {
	display: inline-block;
	border: var(--ba-rule);
	background: var(--ba-yellow);
	padding: 12px 16px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ba-drawer__foot {
	border-top: var(--ba-rule);
	padding: 14px 16px 18px;
}

.ba-drawer__ship,
.ba-drawer__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin: 0 0 6px;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.6;
}

.ba-drawer__total {
	opacity: 1;
	font-weight: 600;
	letter-spacing: 0.16em;
	margin-bottom: 12px;
}

.ba-drawer__total-value,
.ba-drawer__total-value .amount {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.5rem;
	letter-spacing: -0.03em;
	font-weight: 400;
}

.ba-drawer__checkout {
	display: block;
	text-align: center;
	background: var(--ba-ink);
	color: var(--ba-cream);
	border: var(--ba-rule);
	padding: 15px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.ba-drawer__checkout:hover { background: var(--ba-yellow); color: var(--ba-ink); }

.ba-drawer__cart-link {
	display: block;
	text-align: center;
	margin-top: 10px;
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.6;
}

/* ------------------------------------- filters: sidebar ≥782px, drawer below */

.ba-filters__toggle,
.ba-filters__close { display: none; }

/* desktop: the panel is a plain sidebar, so [hidden] must not hide it */
.ba-filters-panel[hidden] { display: block; }

@keyframes ba-slide-left {
	from { transform: translateX( -103% ); }
	to { transform: translateX( 0 ); }
}

@media ( max-width: 781px ) {
	.ba-filters__toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
		padding: 11px 14px;
		border: var(--ba-rule);
		border-radius: 0;
		background: var(--ba-bone);
		color: var(--ba-ink);
		font-family: 'IBM Plex Mono', monospace;
		font-size: 0.6875rem;
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		cursor: pointer;
	}

	.ba-filters__toggle-dot {
		width: 7px;
		height: 7px;
		border-radius: 50%;
		background: var(--ba-yellow); color: var(--ba-ink);
}

	.ba-filters-panel {
		position: fixed;
		inset: 0;
		z-index: 90;
	}

	.ba-filters-panel[hidden] { display: none; }

	.ba-filters-panel__backdrop {
		position: absolute;
		inset: 0;
		background: rgba( 18, 17, 15, 0.6 );
		animation: ba-fade 0.2s ease;
	}

	.ba-filters-panel__inner {
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: min( 320px, 86vw );
		padding: 18px 14px 28px;
		overflow-y: auto;
		background: var(--ba-bone);
		border-right: var(--ba-rule);
		animation: ba-slide-left 0.28s cubic-bezier( 0.2, 0.8, 0.2, 1 );
	}

	.ba-filters__head { gap: 10px; }
	.ba-filters__title { margin-right: auto; }

	.ba-filters__close {
		display: block;
		padding: 0 4px;
		border: none;
		background: none;
		font-size: 1rem;
		line-height: 1;
		color: inherit;
		cursor: pointer;
	}
}

/* ------------------------------ shop: filtering without a reload */

.ba-shop.is-loading .ba-shop__main {
	opacity: 0.45;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

/* ------------------------------------------ mobile menu: the theme's own drawer */

.ba-mobile-nav__toggle { display: none; }

.ba-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 95;
	display: flex;
	flex-direction: column;
	background: var(--ba-ink);
	color: var(--ba-cream);
	animation: ba-fade 0.18s ease;
}

.ba-mobile-nav[hidden] { display: none; }

.ba-mobile-nav__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px;
	border-bottom: 2px solid rgba( 239, 236, 228, 0.25 );
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.ba-mobile-nav__close {
	padding: 0 4px;
	border: none;
	background: none;
	color: inherit;
	font-size: 1.125rem;
	line-height: 1;
	cursor: pointer;
}

.ba-mobile-nav__list {
	flex: 1;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	overflow-y: auto;
}

.ba-mobile-nav__list a {
	display: block;
	padding: 16px 18px;
	color: inherit;
	text-decoration: none;
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.75rem;
	line-height: 1.1;
	text-transform: uppercase;
}

.ba-mobile-nav__list a:hover,
.ba-mobile-nav__list a:focus { background: var(--ba-yellow); color: var(--ba-ink); }

@media ( max-width: 781px ) {
	/* The core navigation block (and its own overlay) stands down here. */
	.ba-header .wp-block-navigation { display: none !important; }

	.ba-mobile-nav__toggle {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		padding: 8px 10px;
		border: var(--ba-rule);
		background: var(--ba-bone);
		color: var(--ba-ink);
		font-family: 'IBM Plex Mono', monospace;
		font-size: 0.6875rem;
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		cursor: pointer;
	}

	.ba-mobile-nav__bars {
		position: relative;
		width: 14px;
		height: 2px;
		background: currentColor;
		box-shadow: 0 -5px 0 currentColor, 0 5px 0 currentColor;
	}
}

@media ( min-width: 782px ) {
	.ba-mobile-nav { display: none !important; }
}

/* =========================================================================
   v2.1 — site panel changes (from the Claude Design project)
   ====================================================================== */

/* Logo: uploaded image (Customizer → Site Identity) or site name. */
.ba-logo { display: flex; align-items: center; line-height: 0; }
.ba-logo img { display: block; height: 44px; width: auto; max-width: 220px; }
.ba-logo__text {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.125rem;
	line-height: 0.9;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	color: var(--ba-ink);
	text-decoration: none;
}

/* Category bar under the hero. */
.ba-catbar {
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 2px;
	background: var(--ba-ink);
	border-bottom: var(--ba-rule);
}
.ba-catbar a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 10px 8px;
	background: #ffffff;
	color: var(--ba-ink);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}
.ba-catbar a:hover { background: var(--ba-yellow); }
@media ( max-width: 600px ) {
	.ba-catbar { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}


/* Product grid: 4 per row (shop and home share .ba-grid-inner). */
/* (grid columns are set in the v3.3 wall block below) */

/* "Buy me" button on the product card. */
.ba-card .ba-quick-add {
	border: 0;
	background: #ffffff;
	color: var(--ba-ink);
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 0.9375rem;
	line-height: 1;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	white-space: nowrap;
	padding: 5px 7px;
	cursor: pointer;
}
.ba-card .ba-quick-add:hover { background: var(--ba-yellow); }

/* Archive: collection cards. */
.ba-collections {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
	gap: 2px;
	background: var(--ba-ink);
	border-bottom: var(--ba-rule);
}
.ba-collection-card {
	display: flex;
	flex-direction: column;
	background: var(--ba-bone);
	color: var(--ba-ink);
	text-decoration: none;
}
.ba-collection-card__media {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--ba-paper);
}
.ba-collection-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier( 0.2, 0.7, 0.2, 1 );
}
.ba-collection-card:hover .ba-collection-card__media img { transform: scale( 1.04 ); }
.ba-collection-card__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.5;
}
.ba-collection-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 14px 14px 16px;
}
.ba-collection-card__season {
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.5;
}
.ba-collection-card__title {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.625rem;
	line-height: 0.95;
	letter-spacing: -0.03em;
	text-transform: uppercase;
}
.ba-collection-card__text { font-size: 0.6875rem; line-height: 1.65; opacity: 0.75; }
.ba-collection-card__foot {
	display: flex;
	justify-content: space-between;
	margin-top: 6px;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ba-collection-card:hover .ba-collection-card__foot { background: var(--ba-yellow); color: var(--ba-ink); }
.ba-collections__empty { padding: 28px 18px; font-size: 0.75rem; }

/* Collection page: big photo + arrows + thumbnail grid. */
.ba-viewer { border-bottom: var(--ba-rule); }
.ba-viewer--empty p { padding: 40px 18px; margin: 0; font-size: 0.75rem; opacity: 0.6; }
.ba-viewer__tabs {
	display: flex;
	gap: 2px;
	background: var(--ba-ink);
	border-bottom: var(--ba-rule);
}
.ba-viewer__tab {
	flex: 1 1 0;
	background: var(--ba-bone);
	color: var(--ba-ink);
	border: 0;
	padding: 14px 10px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}
.ba-viewer__tab span { opacity: 0.45; margin-left: 6px; }
.ba-viewer__tab:hover { background: var(--ba-yellow); }
.ba-viewer__tab.is-on { background: var(--ba-ink); color: var(--ba-cream); }
.ba-viewer__grid {
	display: grid;
	grid-template-columns: minmax( 0, 2fr ) minmax( 0, 1fr );
	gap: 2px;
	background: var(--ba-ink);
}
.ba-viewer__stage {
	position: relative;
	background: var(--ba-paper);
	min-height: 60vh;
	max-height: 86vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.ba-viewer__stage img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 86vh;
	object-fit: contain;
}
.ba-viewer__arrow {
	position: absolute;
	top: 50%;
	transform: translateY( -50% );
	width: 44px;
	height: 44px;
	border: var(--ba-rule);
	background: var(--ba-bone);
	color: var(--ba-ink);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}
.ba-viewer__arrow:hover { background: var(--ba-yellow); }
.ba-viewer__arrow--prev { left: 14px; }
.ba-viewer__arrow--next { right: 14px; }
.ba-viewer__count {
	position: absolute;
	left: 14px;
	bottom: 14px;
	background: var(--ba-ink);
	color: var(--ba-cream);
	padding: 5px 8px;
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
}
.ba-viewer__thumbs {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	grid-auto-rows: max-content;
	align-content: start;
	gap: 2px;
	max-height: 86vh;
	overflow-y: auto;
	background: var(--ba-ink);
}
.ba-viewer__thumb {
	display: block;
	padding: 0;
	border: 0;
	aspect-ratio: 3 / 4;
	background: var(--ba-paper);
	cursor: pointer;
	overflow: hidden;
}
.ba-viewer__thumb[hidden] { display: none; }
.ba-viewer__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.6;
	transition: opacity 0.2s ease;
}
.ba-viewer__thumb:hover img,
.ba-viewer__thumb.is-on img { opacity: 1; }
.ba-viewer__thumb.is-on { outline: 3px solid var(--ba-yellow); outline-offset: -3px; }
@media ( max-width: 781px ) {
	.ba-viewer__grid { grid-template-columns: 1fr; }
	.ba-viewer__stage { min-height: 0; aspect-ratio: 3 / 4; }
	.ba-viewer__thumbs { grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); max-height: none; }
}


/* =========================================================================
   v2.2 — home rebuilt from the Claude Design file (update 01/10)
   ====================================================================== */

/* Hero: image, three draggable windows, Archive button. */
.ba-hero-wrap { position: relative; }
.ba-hero-wrap .ba-hero { min-height: min( 86vh, 860px ) !important; }

.ba-hero__cta .wp-block-button__link {
	border: 2px solid var(--ba-ink);
	border-radius: 0;
	background: var(--ba-bone);
	color: var(--ba-ink);
	padding: 12px 22px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.ba-hero__cta .wp-block-button__link:hover { background: var(--ba-ink); color: var(--ba-cream); }

.ba-hero-wrap > .ba-hero-windows {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 3;
	pointer-events: none;
}

@keyframes ba-win-pop {
	from { opacity: 0; transform: translateY( 10px ); }
	to { opacity: 1; transform: translateY( 0 ); }
}

.ba-win {
	position: absolute;
	padding: 0 6px 6px;
	border: 1px solid rgba( 0, 0, 0, 0.7 );
	border-radius: 7px;
	background: linear-gradient( to bottom, rgba( 218, 232, 248, 0.92 ), rgba( 168, 196, 228, 0.88 ) 40%, rgba( 150, 182, 220, 0.88 ) );
	box-shadow: inset 0 0 0 1px rgba( 255, 255, 255, 0.55 ), 0 10px 30px rgba( 0, 0, 0, 0.5 );
	animation: ba-win-pop 0.35s ease both;
	pointer-events: auto;
}
.ba-win--1 { left: 4%; top: 6%; width: clamp( 150px, 20%, 240px ); }
.ba-win--2 { left: 13%; top: 44%; width: clamp( 190px, 28%, 340px ); animation-delay: 0.12s; }
.ba-win--3 { right: 5%; top: 10%; width: clamp( 170px, 26%, 320px ); animation-delay: 0.24s; }

.ba-win__bar {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 24px;
	padding: 0 0 4px 4px;
	cursor: move;
	user-select: none;
	touch-action: none;
}
.ba-win__title {
	flex: 1;
	min-width: 0;
	font-family: 'Segoe UI', Tahoma, sans-serif;
	font-size: 12px;
	color: #0b1a2c;
	text-shadow: 0 0 8px #fff, 0 0 4px #fff;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ba-win__ctl {
	display: flex;
	align-self: flex-start;
	border: 1px solid rgba( 0, 0, 0, 0.45 );
	border-top: 0;
	border-radius: 0 0 5px 5px;
	overflow: hidden;
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.6 );
}
.ba-win__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 18px;
	border-right: 1px solid rgba( 0, 0, 0, 0.35 );
	background: linear-gradient( #e9eff7, #c3d2e5 50%, #a9bed8 51%, #c9daef );
	font: bold 10px sans-serif;
	color: #25364d;
}
.ba-win__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 43px;
	height: 18px;
	padding: 0;
	border: 0;
	background: linear-gradient( #e8a493, #d3735f 50%, #c4442b 51%, #d9775e );
	color: #fff;
	font: bold 12px sans-serif;
	text-shadow: 0 0 3px #000;
	cursor: pointer;
}
.ba-win__close:hover { background: linear-gradient( #f5b9a6, #e8836a 50%, #e04a2c 51%, #f08a6c ); }
.ba-win__body {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba( 0, 0, 0, 0.55 );
	background: #fff;
	aspect-ratio: 4 / 3;
}
.ba-win--1 .ba-win__body { aspect-ratio: 1 / 1; }
.ba-win__body img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Editorial grid: two portraits, then one large photo beside two landscapes. */
.ba-edit {
	display: grid;
	gap: 2px;
	background: var(--ba-ink);
	border-bottom: var(--ba-rule);
}
.ba-edit--pair { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
.ba-edit--big { grid-template-columns: minmax( 0, 2fr ) minmax( 0, 1fr ); }
.ba-edit__tile {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--ba-paper);
	color: var(--ba-ink);
}
.ba-edit--pair .ba-edit__tile { aspect-ratio: 4 / 5; }
.ba-edit__tile--wide { aspect-ratio: 4 / 3; }
.ba-edit__tile--tall { grid-row: span 2; min-height: 420px; }
.ba-edit__tile img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ba-edit__tag {
	position: absolute;
	left: 12px;
	bottom: 12px;
	padding: 7px 10px;
	background: var(--ba-bone);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.ba-edit__tile:hover .ba-edit__tag { background: var(--ba-yellow); color: var(--ba-ink); }

@media ( max-width: 781px ) {
	.ba-edit--pair,
	.ba-edit--big { grid-template-columns: 1fr; }
	.ba-edit__tile--tall { grid-row: auto; }
}

/* The templates already have a breadcrumb block; hide the classic one inside the legacy template. */
.wp-block-woocommerce-legacy-template .woocommerce-breadcrumb { display: none; }


/* =========================================================================
   v3.3 — receipts on the wall, accessories (design handoff README)
   ====================================================================== */

:root {
	--ba-wall: radial-gradient( ellipse at 50% 0%, #eef0f2, #dfe2e6 70%, #d6d9dd );
}

/* Header: logo left, nav + cart right, on every page and breakpoint. */
.ba-header { gap: 8px 18px; }
.ba-header .ba-logo { margin-right: auto; }
.ba-header .wp-block-navigation { margin-left: auto; }

/* Title block: big blurred title in a white box. */
.ba-title-block {
	padding: 24px 18px;
	border-bottom: var(--ba-rule);
}
.ba-title-block--split {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
}
.ba-title-block--split > * { margin: 0; }
.ba-title {
	display: inline-block;
	margin: 0;
	padding: 18px 22px 14px;
	background: #ffffff;
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 44px, 8vw, 96px );
	font-weight: 400;
	line-height: 0.86;
	letter-spacing: -0.05em;
	text-transform: uppercase;
	color: var(--ba-ink);
	text-shadow: 0 0 2px rgba( 18, 17, 15, 0.85 ), 0 0 6px rgba( 18, 17, 15, 0.35 );
}
.ba-title-count {
	padding-bottom: 8px;
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.6;
}

/* Breadcrumb row above the toolbar. */
.ba-crumbrow {
	padding: 12px 14px 0;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
}
.ba-crumbrow .woocommerce-breadcrumb { margin: 0; font-size: inherit; }
.ba-crumbrow--ruled {
	padding: 12px 18px;
	border-bottom: var(--ba-rule);
}

/* The wall: the product grid sits on it. 3 columns, 2 on mobile. */
.ba-grid-wrap {
	border: 0;
	padding: clamp( 40px, 5vw, 64px ) clamp( 14px, 2.6vw, 36px ) clamp( 28px, 4vw, 48px );
	background: var(--ba-wall);
}
.ba-grid-inner {
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: clamp( 28px, 4vw, 56px ) clamp( 14px, 2.4vw, 32px );
}
@media ( max-width: 781px ) {
	.ba-grid-inner { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}

/* Accessories listing: 4 columns, smaller receipts, no toolbar. */
.ba-accessories .ba-grid-wrap {
	padding: clamp( 40px, 5vw, 60px ) clamp( 14px, 2.6vw, 36px ) clamp( 28px, 4vw, 48px );
}
.ba-accessories .ba-grid-inner {
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: clamp( 26px, 3.4vw, 44px ) clamp( 12px, 2vw, 24px );
}
@media ( max-width: 781px ) {
	.ba-accessories .ba-grid-inner { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
.ba-acc-list .ba-toolbar__count,
.ba-acc-list .ba-toolbar__sort,
.ba-acc-list .woocommerce-products-header { display: none; }

/* ------------------------------------------------------------------ receipt */

.ba-receipt-card {
	position: relative;
	margin: 0;
	padding: 0;
	background: none;
	transform: rotate( var( --ba-tilt, 0deg ) );
	transition: transform 0.3s ease;
}
.ba-receipt-card:hover { transform: rotate( 0deg ) translateY( -4px ); }

/* The shadow lives on a parent: the paper below uses a mask. */
.ba-receipt__shadow {
	filter: drop-shadow( 0 10px 10px rgba( 30, 34, 40, 0.22 ) ) drop-shadow( 0 1px 1px rgba( 30, 34, 40, 0.18 ) );
}
.ba-receipt {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 14% 9% 16%;
	background: linear-gradient( 180deg, #fdfdfb, #f6f6f2 60%, #fbfbf8 );
	color: var(--ba-ink);
	font-family: 'IBM Plex Mono', monospace;
	-webkit-mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 10px 100%;
	mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 10px 100%;
}
.ba-receipt__head {
	text-align: center;
	font-size: clamp( 9px, 0.9vw, 11px );
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.5;
}
.ba-receipt__rule {
	border-top: 1px dashed var(--ba-ink);
	opacity: 0.6;
}
.ba-receipt__img {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	mix-blend-mode: multiply;
}
.ba-receipt__img img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}
.ba-receipt__line {
	font-size: clamp( 9px, 0.95vw, 12px );
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.3;
}
.ba-receipt__total {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: clamp( 10px, 1.05vw, 13px );
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.ba-receipt__foot {
	display: flex;
	justify-content: center;
}
.ba-receipt__buy {
	padding: 2px 0;
	border: 0;
	background: transparent;
	color: var(--ba-ink);
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 15px, 2vw, 24px );
	line-height: 1;
	letter-spacing: -0.05em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
}
.ba-receipt__buy:hover { color: var(--ba-yellow); }
.ba-receipt__buy:disabled { opacity: 0.5; cursor: wait; }
.ba-receipt__sold {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 13px, 1.6vw, 20px );
	line-height: 1;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0.4;
}
.ba-receipt__clip {
	position: absolute;
	top: -22px;
	left: var( --ba-clip-x, 50% );
	width: clamp( 16px, 2vw, 24px );
	height: auto;
	transform: translateX( -50% ) rotate( var( --ba-clip-rot, 0deg ) );
	transform-origin: 50% 30%;
	filter: drop-shadow( 1px 2px 1.5px rgba( 0, 0, 0, 0.25 ) );
	overflow: visible;
	pointer-events: none;
}

/* Small receipt (accessories). */
.ba-receipt-card--small .ba-receipt__shadow {
	filter: drop-shadow( 0 8px 8px rgba( 30, 34, 40, 0.22 ) ) drop-shadow( 0 1px 1px rgba( 30, 34, 40, 0.18 ) );
}
.ba-receipt-card--small .ba-receipt {
	gap: 8px;
	padding: 13% 9% 16%;
	-webkit-mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 8px 100%;
	mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 8px 100%;
}
.ba-receipt-card--small .ba-receipt__head { font-size: clamp( 8px, 0.75vw, 10px ); }
.ba-receipt-card--small .ba-receipt__line { font-size: clamp( 8px, 0.8vw, 11px ); }
.ba-receipt-card--small .ba-receipt__total { gap: 6px; font-size: clamp( 9px, 0.9vw, 12px ); }
.ba-receipt-card--small .ba-receipt__buy { font-size: clamp( 13px, 1.6vw, 20px ); }
.ba-receipt-card--small .ba-receipt__sold { font-size: clamp( 12px, 1.4vw, 18px ); }
.ba-receipt-card--small .ba-receipt__clip {
	top: -20px;
	width: clamp( 14px, 1.7vw, 20px );
}

/* Accessory photo: black scan square, or a transparent cut-out straight on the paper. */
.ba-receipt__img--acc {
	background: var(--ba-ink);
	mix-blend-mode: normal;
}
.ba-receipt__img--acc.is-cutout { background: transparent; }
.ba-receipt__img--acc img { object-fit: contain; }

/* ------------------------------------------- clothing product page: receipt */

.ba-product__media--receipt {
	display: flex;
	flex-direction: column;
}
.ba-pdp-wall {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
	padding: clamp( 48px, 6vw, 80px ) clamp( 18px, 4vw, 48px ) clamp( 28px, 4vw, 44px );
	background: var(--ba-wall);
}
.ba-receipt-wrap {
	position: relative;
	width: min( 100%, 400px );
	transform: rotate( -1.2deg );
}
.ba-receipt-wrap .ba-receipt__shadow {
	filter: drop-shadow( 0 12px 12px rgba( 30, 34, 40, 0.24 ) ) drop-shadow( 0 1px 1px rgba( 30, 34, 40, 0.18 ) );
}
.ba-receipt--pdp {
	gap: 12px;
	-webkit-mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 12px 100%;
	mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 12px 100%;
}
.ba-receipt--pdp .ba-receipt__head { font-size: 12px; }
.ba-receipt--pdp .ba-receipt__line { font-size: 13px; }
.ba-receipt--pdp .ba-receipt__total { font-size: 14px; }
.ba-receipt--pdp .ba-receipt__buy { font-size: 30px; }
.ba-receipt-wrap .ba-receipt__clip {
	top: -30px;
	left: 22%;
	width: 28px;
	transform: translateX( -50% ) rotate( -24deg );
}
.ba-receipt__img--zoom img { transition: transform 0.6s cubic-bezier( 0.2, 0.7, 0.2, 1 ); }
.ba-receipt__img--zoom:hover img { transform: scale( 1.35 ); }

.ba-pdp-thumbs {
	display: flex;
	gap: 8px;
	width: min( 100%, 400px );
}
.ba-pdp-thumb {
	flex: 1;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--ba-ink);
	background: #fbfbf8;
	aspect-ratio: 1 / 1;
	opacity: 0.55;
	cursor: pointer;
}
.ba-pdp-thumb:hover,
.ba-pdp-thumb.is-on { opacity: 1; }
.ba-pdp-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ------------------------------------------------ accessory page: price tag */

.ba-acc-page {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}
.ba-acc-wall {
	flex: 1 1 420px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
	padding: 0 clamp( 18px, 4vw, 48px ) clamp( 28px, 4vw, 44px );
	border-right: var(--ba-rule);
	border-bottom: var(--ba-rule);
	background: var(--ba-wall);
}
.ba-tag-wrap {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min( 100%, 420px );
}
.ba-tag__string {
	display: block;
	width: 40px;
	height: clamp( 60px, 9vw, 110px );
	overflow: visible;
}
.ba-tag__shadow {
	width: 100%;
	margin-top: -14px;
	transform: rotate( -2deg );
	transform-origin: 50% 0;
	filter: drop-shadow( 0 14px 14px rgba( 30, 34, 40, 0.26 ) ) drop-shadow( 0 1px 1px rgba( 30, 34, 40, 0.2 ) );
}
.ba-tag {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: clamp( 48px, 7vw, 72px ) 9% 9%;
	background: linear-gradient( 180deg, #fbfaf6, #f1efe9 );
	clip-path: polygon( 20% 0, 80% 0, 100% 11%, 100% 100%, 0 100%, 0 11% );
	color: var(--ba-ink);
	font-family: 'IBM Plex Mono', monospace;
}
.ba-tag__hole {
	position: absolute;
	top: clamp( 14px, 2vw, 20px );
	left: 50%;
	width: 20px;
	height: 20px;
	transform: translateX( -50% );
	border-radius: 50%;
	background: #dfe2e6;
	box-shadow: inset 1px 2px 3px rgba( 0, 0, 0, 0.35 ), 0 0 0 4px #e4ded3;
}
.ba-tag__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.ba-tag__img {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--ba-ink);
}
.ba-tag__img.is-cutout { background: transparent; }
.ba-tag__img img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
}
.ba-tag__foot {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 12px;
	padding-top: 12px;
	border-top: 1px dashed rgba( 18, 17, 15, 0.6 );
}
.ba-tag__name {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ba-tag__material {
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	opacity: 0.55;
}
.ba-tag__price {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: clamp( 28px, 3.6vw, 44px );
	line-height: 0.9;
	letter-spacing: -0.05em;
	white-space: nowrap;
}

.ba-acc-info {
	flex: 1 1 340px;
	display: flex;
	flex-direction: column;
	border-bottom: var(--ba-rule);
}
.ba-acc-info__top {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 20px 18px;
}
.ba-acc-info__top > * { margin: 0; }
.ba-acc-accordion { border-top: var(--ba-rule); }
.ba-acc-item { border-bottom: 1px solid var(--ba-ink); }
.ba-acc-item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 18px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}
.ba-acc-item summary::-webkit-details-marker { display: none; }
.ba-acc-item__mark::before { content: '+'; font-size: 1rem; }
.ba-acc-item[open] .ba-acc-item__mark::before { content: '–'; }
.ba-acc-item__body {
	padding: 0 18px 16px;
	font-size: 0.75rem;
	line-height: 1.75;
}

.ba-acc-bar {
	position: sticky;
	bottom: 0;
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding: 12px 18px;
	border-top: var(--ba-rule);
	background: #ffffff;
}
.ba-acc-bar__meta { flex: 1; min-width: 0; }
.ba-acc-bar__meta p { margin: 0; }
.ba-acc-bar__name {
	overflow: hidden;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.ba-acc-bar__price { font-size: 0.6875rem; opacity: 0.55; }
.ba-acc-bar__button {
	padding: 14px 20px;
	border: 2px solid var(--ba-ink);
	background: var(--ba-yellow);
	color: var(--ba-ink);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
}
.ba-acc-bar__button:hover { background: var(--ba-ink); color: #ffffff; }
.ba-acc-bar__button.is-sold,
.ba-acc-bar__button:disabled {
	background: var(--ba-paper);
	color: var(--ba-ink);
	cursor: not-allowed;
}

/* Only the theme's own cart button lives in the header (a Mini-Cart block, if one is saved there, stays hidden). */
.ba-header .wp-block-woocommerce-mini-cart,
.ba-header .wc-block-mini-cart { display: none !important; }

/* =========================================================================
   Buttons: final colours (BUTTONS.md, round 4)
   Yellow #efec8d is the only button accent. Primary buy buttons are filled
   yellow; black buttons turn yellow with black text on hover; text buttons and
   links on white get a yellow highlight behind them, never yellow text. Beige
   #8b7e74 is only for section backgrounds (marquee, newsletter).
   ====================================================================== */

/* Add to cart (product page, sticky bar, accessory bar) and empty states. */
form.cart .single_add_to_cart_button,
.ba-sticky-atc__button,
.ba-acc-bar__button,
.ba-empty__button,
.ba-drawer__empty-button,
.ba-empty .button,
.ba-cta--yellow .wp-block-button__link,
body .woocommerce a.button.alt,
body .woocommerce button.button.alt,
body .woocommerce input.button.alt,
body .woocommerce #respond input#submit.alt {
	background: var(--ba-yellow);
	color: var(--ba-ink);
	border: 2px solid var(--ba-ink);
	border-radius: 0;
	box-shadow: none;
}
form.cart .single_add_to_cart_button:hover,
.ba-sticky-atc__button:hover,
.ba-acc-bar__button:hover,
.ba-empty__button:hover,
.ba-drawer__empty-button:hover,
.ba-empty .button:hover,
body .woocommerce a.button.alt:hover,
body .woocommerce button.button.alt:hover,
body .woocommerce input.button.alt:hover,
body .woocommerce #respond input#submit.alt:hover {
	background: var(--ba-ink);
	color: var(--ba-cream);
}
.ba-cta--yellow .wp-block-button__link:hover {
	background: var(--ba-ink) !important;
	color: var(--ba-cream) !important;
}

/* Sold out / disabled: paper, no change on hover. */
form.cart .single_add_to_cart_button:disabled,
form.cart .single_add_to_cart_button.disabled,
form.cart .single_add_to_cart_button.wc-variation-selection-needed,
body .woocommerce form.cart .single_add_to_cart_button:disabled,
body .woocommerce form.cart .single_add_to_cart_button.disabled,
body .woocommerce form.cart .single_add_to_cart_button.wc-variation-selection-needed,
body .woocommerce button.button.alt:disabled,
body .woocommerce button.button.alt.disabled,
.ba-sticky-atc__button[disabled],
.ba-acc-bar__button:disabled,
.ba-acc-bar__button.is-sold,
form.cart .single_add_to_cart_button:disabled:hover,
form.cart .single_add_to_cart_button.disabled:hover,
form.cart .single_add_to_cart_button.wc-variation-selection-needed:hover,
body .woocommerce form.cart .single_add_to_cart_button:disabled:hover,
body .woocommerce form.cart .single_add_to_cart_button.disabled:hover,
body .woocommerce form.cart .single_add_to_cart_button.wc-variation-selection-needed:hover,
body .woocommerce button.button.alt:disabled:hover,
body .woocommerce button.button.alt.disabled:hover,
.ba-sticky-atc__button[disabled]:hover,
.ba-acc-bar__button:disabled:hover,
.ba-acc-bar__button.is-sold:hover {
	background: var(--ba-paper);
	color: var(--ba-ink);
	opacity: 1;
	cursor: not-allowed;
}

/* BUY ME on the receipt cards (a link to the product), SOLD OUT beside it. */
.ba-buy,
.ba-receipt__buy,
.ba-grid .add_to_cart_button,
.ba-grid .wc-block-components-product-button__button {
	background: transparent;
	color: var(--ba-ink);
	border: 0;
	border-radius: 0;
}
.ba-buy:hover,
.ba-receipt__buy:hover,
.ba-grid .add_to_cart_button:hover,
.ba-grid .wc-block-components-product-button__button:hover {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}
.ba-receipt__sold { color: var(--ba-ink); opacity: 0.4; }

/* Black buttons: checkout, place order, Join, Shop the current run, WooCommerce defaults. */
.wc-block-components-button:not( .is-link ),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--ba-ink) !important;
	color: var(--ba-cream) !important;
	border: 2px solid var(--ba-ink) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
.wc-block-components-button:not( .is-link ):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--ba-yellow) !important;
	border-color: var(--ba-ink) !important;
	color: var(--ba-ink) !important;
}
.ba-cta--dark .wp-block-button__link,
.ba-news__join,
body .woocommerce a.button:not( .alt ),
body .woocommerce button.button:not( .alt ),
body .woocommerce input.button:not( .alt ),
body .woocommerce #respond input#submit:not( .alt ),
body .woocommerce a.checkout-button.button.alt,
body .woocommerce #place_order {
	background: var(--ba-ink);
	color: var(--ba-cream);
	border: 2px solid var(--ba-ink);
	border-radius: 0;
	box-shadow: none;
}
.ba-cta--dark .wp-block-button__link:hover,
.ba-news__join:hover,
body .woocommerce a.button:not( .alt ):hover,
body .woocommerce button.button:not( .alt ):hover,
body .woocommerce input.button:not( .alt ):hover,
body .woocommerce #respond input#submit:not( .alt ):hover,
body .woocommerce a.checkout-button.button.alt:hover,
body .woocommerce #place_order:hover {
	background: var(--ba-yellow);
	border-color: var(--ba-ink);
	color: var(--ba-ink);
}
.ba-cta--dark .wp-block-button__link:hover {
	background: var(--ba-yellow) !important;
	color: var(--ba-ink) !important;
}

/* Archive (outline) button on the home hero. */
.ba-hero__cta .wp-block-button__link {
	background: var(--ba-bone);
	color: var(--ba-ink);
	border: 2px solid var(--ba-ink);
}
.ba-hero__cta .wp-block-button__link:hover {
	background: var(--ba-ink);
	color: var(--ba-cream);
}

/* Category nav: white, yellow on hover. */
.ba-catbar a { background: var(--ba-bone); color: var(--ba-ink); }
.ba-catbar a:hover { background: var(--ba-yellow); color: var(--ba-ink); }

/* Size swatches. */
.ba-swatch {
	background: transparent;
	color: var(--ba-ink);
	border: 2px solid var(--ba-ink);
	border-radius: 0;
}
.ba-swatch:hover:not( .is-on ):not( .is-out ):not( :disabled ) {
	background: var(--ba-ink);
	color: var(--ba-cream);
}
.ba-swatch.is-on { background: var(--ba-ink); color: var(--ba-cream); }
.ba-swatch.is-out,
.ba-swatch:disabled {
	opacity: 0.35;
	text-decoration: line-through;
	cursor: not-allowed;
}
.ba-swatch.is-out:hover,
.ba-swatch:disabled:hover { background: transparent; color: var(--ba-ink); }

/* Size guide link: a yellow highlight on hover. */
.ba-size-guide-trigger {
	background: none;
	color: var(--ba-ink);
	border-bottom: 2px solid var(--ba-ink);
}
.ba-size-guide-trigger:hover { background: var(--ba-yellow); color: var(--ba-ink); }

/* Gallery thumbnails: active yellow at full strength, inactive paper at 0.55. */
.ba-pdp-thumb { background: var(--ba-paper); opacity: 0.55; }
.ba-pdp-thumb.is-on { background: var(--ba-yellow); opacity: 1; }

/* Archive viewer tabs and carousel arrows. */
.ba-viewer__tab { background: var(--ba-cream); color: var(--ba-ink); }
.ba-viewer__tab:hover,
.ba-viewer__tab.is-on { background: var(--ba-ink); color: var(--ba-cream); }
.ba-viewer__arrow { background: var(--ba-bone); color: var(--ba-ink); border: 2px solid var(--ba-ink); }
.ba-viewer__arrow:hover { background: var(--ba-yellow); color: var(--ba-ink); }

/* Text links and the cart icon: a yellow highlight on hover. */
.ba-line__remove,
.ba-bag__remove,
.ba-filters__clear { background: none; color: var(--ba-ink); }
.ba-line__remove:hover,
.ba-bag__remove:hover,
.ba-filters__clear:hover { background: var(--ba-yellow); color: var(--ba-ink); }
.ba-cart-button { background: none; color: var(--ba-ink); }
.ba-cart-button:hover { background: var(--ba-yellow); color: var(--ba-ink); }
.ba-cart-button__count { background: var(--ba-ink); color: var(--ba-cream); }

/* Navigation and footer links highlight instead of changing colour. */
.ba-header .wp-block-navigation a:hover,
.ba-mobile-nav__list a:hover,
.ba-mobile-nav__list a:focus,
.ba-footer a:hover,
.ba-crumbrow a:hover,
.ba-legal a:hover {
	background: var(--ba-yellow);
	color: var(--ba-ink);
}

::selection { background: var(--ba-beige); color: var(--ba-ink); }


/* =========================================================================
   v4.0 — round 4 (CHANGES.md)
   ====================================================================== */

/* Pixel rock cursor everywhere except text inputs. */
html,
body,
*:not( input ):not( textarea ) {
	cursor: url( '../img/cursor-rock-sm.png' ) 3 0, auto !important;
}

/* Logos: black in the header, cream in the footer. */
.ba-logo img {
	display: block;
	height: clamp( 40px, 4.4vw, 54px );
	width: auto;
	max-width: none;
}
.ba-footer-logo { display: block; width: 180px; height: auto; }
.ba-footer-logo img { display: block; width: 180px; height: auto; }

/* Warped titles: real text, one smooth wave. */
.ba-warp {
	display: flex;
	flex-wrap: wrap;
	column-gap: 0.24em;
	row-gap: 0.35em;
	margin: 0;
	padding: 0.3em 0;
	font-family: Impact, 'Haettenschweiler', 'Arial Narrow Bold', sans-serif;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--ba-ink);
}
.ba-warp__word {
	display: inline-flex;
	white-space: nowrap;
	align-items: center;
}
.ba-warp__word > span {
	display: inline-block;
	transform-origin: 50% 50%;
}
.ba-warp--product { font-size: clamp( 30px, 5vw, 58px ); }
.ba-warp--news { font-size: clamp( 22px, 2.8vw, 32px ); margin: 0 0 6px; }
.ba-warp--legal { font-size: clamp( 30px, 4.6vw, 56px ); row-gap: 0.3em; }
.ba-warp--collab { font-size: inherit; row-gap: 0; }
.ba-warp--soon { font-size: clamp( 40px, 7vw, 92px ); row-gap: 0.3em; }

/* Wavy PNG page titles (transparent images, the text lives in alt). */
.ba-title-block { padding: 24px 18px; }
.ba-title--img {
	display: block;
	margin: 0 0 10px;
	padding: 0;
	background: none;
	font-size: 0;
	line-height: 0;
	text-shadow: none;
}
.ba-title--img img { display: block; height: auto; max-width: 100%; }
.ba-title--buyme img { width: clamp( 100px, 14vw, 190px ); }
.ba-title--accessories img { width: clamp( 240px, 40vw, 560px ); }
.ba-title--archive img { width: clamp( 200px, 32vw, 440px ); }
.ba-title--whoareyou img { width: clamp( 280px, 60vw, 760px ); }
.ba-title--text {
	padding: 0;
	background: none;
	text-shadow: none;
}

/* Accessories + Bags: pale grid background. */
.ba-accessories .ba-grid-wrap { background: var(--ba-grid); }

/* Home: hero windows, five of them, placed and revealed by theme.js. */
.ba-win--4 { left: 40%; top: 8%; width: clamp( 140px, 18%, 220px ); }
.ba-win--4 .ba-win__body { aspect-ratio: 3 / 4; }
.ba-win--5 { right: 9%; top: 54%; width: clamp( 160px, 22%, 280px ); }
.ba-win--5 .ba-win__body { aspect-ratio: 1 / 1; }
.ba-hero-windows.is-armed .ba-win {
	opacity: 0;
	pointer-events: none;
	animation: none;
}
.ba-hero-windows.is-armed .ba-win.is-in {
	opacity: 1;
	pointer-events: auto;
	animation: ba-win-pop 0.35s ease both;
}

/* Newsletter: compact beige band. */
.ba-newsletter {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	padding: 14px 18px;
	border-top: var(--ba-rule);
	border-bottom: var(--ba-rule);
}
.ba-newsletter > * { margin: 0; }
.ba-news__copy { flex: 1 1 260px; }
.ba-news__side { flex: 1 1 280px; }
.ba-news__text { margin: 0; font-size: 0.6875rem; line-height: 1.5; max-width: 44ch; }
.ba-news__form {
	display: flex;
	margin: 0;
	border: var(--ba-rule);
	background: #ffffff;
}
.ba-news__input {
	flex: 1;
	min-width: 0;
	padding: 9px 12px;
	border: none;
	border-radius: 0;
	background: transparent;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	outline: none;
}
.ba-news__join {
	padding: 9px 14px;
	border-left: var(--ba-rule);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
}
.ba-news__msg { margin: 6px 0 0; font-size: 0.6875rem; }

/* Receipt cards: BUY ME is a link to the product. */
.ba-receipt__buy { display: inline-block; text-decoration: none; }

/* Bags page ("coming soon"). */
.ba-bags-head { display: flex; flex-direction: column; gap: 2px; }
.ba-bags-head__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3em;
	font-size: clamp( 18px, 2.4vw, 28px );
}
.ba-bags-head__logo { display: block; height: 1.6em; width: auto; }
.ba-bags-head .ba-warp--collab { padding: 0.3em 0; }
.ba-bags-soon .wp-block-woocommerce-legacy-template { display: none; }
.ba-receipt__sold { cursor: default; }

/* Legal pages (terms, privacy). */
.ba-legal__head {
	padding: 24px 18px 20px;
	border-bottom: var(--ba-rule);
}
.ba-legal__crumb {
	margin-bottom: 8px;
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.5;
}
.ba-legal__date {
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 0.6;
}
.ba-legal__body { padding: 8px 18px 48px; max-width: 860px; }
.ba-legal__intro {
	margin: 18px 0 22px;
	max-width: 62ch;
	font-size: 0.875rem;
	line-height: 1.75;
}
.ba-legal__sec {
	display: grid;
	grid-template-columns: minmax( 0, 56px ) minmax( 0, 1fr );
	gap: 4px 18px;
	padding: 22px 0;
	border-top: 1px solid rgba( 18, 17, 15, 0.18 );
}
.ba-legal__num {
	padding-top: 3px;
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	opacity: 0.5;
}
.ba-legal__sec h2 {
	margin: 0 0 10px;
	font-family: 'IBM Plex Mono', monospace !important;
	font-size: 0.75rem !important;
	font-weight: 600;
	letter-spacing: 0.16em !important;
	line-height: 1.4 !important;
	text-transform: uppercase;
}
.ba-legal__sec p {
	margin: 0 0 10px;
	max-width: 68ch;
	font-size: 0.8125rem;
	line-height: 1.75;
}

/* ------------------------------------- scanner hover effect (stronger) */

.ba-scan { position: relative; overflow: hidden; }
.ba-scan::after {
	content: "";
	position: absolute;
	left: -4%;
	right: -4%;
	top: 0;
	height: 38%;
	transform: translateY( -100% );
	opacity: 0;
	pointer-events: none;
	z-index: 2;
	background: linear-gradient( 180deg, rgba( 200, 255, 235, 0 ) 0%, rgba( 200, 255, 235, 0.18 ) 55%, rgba( 225, 255, 245, 0.6 ) 90%, #fff 97%, #fff 100% );
	box-shadow: 0 4px 30px 8px rgba( 190, 255, 235, 0.95 ), 0 2px 6px 1px #fff;
	mix-blend-mode: screen;
}
.ba-receipt__img.ba-scan::after {
	height: 34%;
	box-shadow: 0 4px 26px 6px rgba( 190, 255, 235, 0.95 ), 0 2px 6px 1px #fff;
}
@media ( hover: hover ) {
	.ba-scan:hover::after {
		top: 140%;
		opacity: 1;
		transition: top 1.1s cubic-bezier( 0.45, 0, 0.25, 1 ), opacity 0.15s;
	}
}

/* ------------------------------ accessory page: one flat scanned sheet */

.ba-acc-wall {
	justify-content: center;
	padding: clamp( 36px, 6vw, 80px ) clamp( 24px, 6vw, 72px );
	background: var(--ba-grid);
}
.ba-scan-sheet {
	position: relative;
	width: min( 100%, 460px );
	aspect-ratio: 1132 / 1600;
	overflow: hidden;
	background: #000000;
	box-shadow: 0 8px 22px rgba( 0, 0, 0, 0.12 );
}
.ba-scan-sheet img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

/* --------------------------------------- the bag: a thermal receipt printer */

@keyframes ba-printer-in {
	from { opacity: 0; transform: translateY( -24px ); }
	to { opacity: 1; transform: translateY( 0 ); }
}
@keyframes ba-print {
	from { transform: translateY( -100% ); }
	to { transform: translateY( 0 ); }
}
@keyframes ba-led {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.25; }
}
@keyframes ba-buzz {
	0%, 100% { transform: translateX( 0 ); }
	25% { transform: translateX( -0.6px ); }
	75% { transform: translateX( 0.6px ); }
}

.ba-drawer__backdrop { background: rgba( 18, 17, 15, 0.55 ); }

.ba-printer {
	position: fixed;
	top: clamp( 56px, 8vh, 80px );
	right: clamp( 10px, 3vw, 40px );
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min( 360px, calc( 100vw - 20px ) );
	color: var(--ba-ink);
	font-family: 'IBM Plex Mono', monospace;
	pointer-events: none;
}
.ba-printer__machine {
	position: relative;
	z-index: 2;
	width: 100%;
	pointer-events: auto;
	animation: ba-printer-in 0.35s cubic-bezier( 0.2, 0.8, 0.2, 1 ) both;
}
.ba-printer__lid {
	height: 16px;
	margin: 0 7%;
	border-radius: 10px 10px 0 0;
	background: linear-gradient( 180deg, #3a3935, #2a2926 );
}
.ba-printer__body {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	height: 92px;
	padding: 14px 16px;
	border-radius: 6px 6px 14px 14px;
	background: linear-gradient( 180deg, #2a2926 0%, #1d1c1a 55%, #141311 100% );
	box-shadow: 0 18px 30px rgba( 0, 0, 0, 0.35 ), inset 0 1px 0 rgba( 255, 255, 255, 0.08 );
	animation: ba-buzz 0.09s linear 0.35s 16;
}
.ba-printer__meta { display: flex; flex-direction: column; gap: 4px; }
.ba-printer__model {
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ba-cream);
}
.ba-printer__bag {
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #a9a59c;
}
.ba-printer__ctl { display: flex; align-items: center; gap: 12px; }
.ba-printer__led {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #7dff9a;
	box-shadow: 0 0 8px #7dff9a;
	animation: ba-led 0.5s ease 0.35s 4;
}
.ba-printer__close {
	width: 30px;
	height: 30px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: linear-gradient( 180deg, #3a3935, #262522 );
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.12 ), 0 2px 0 #0b0b0a;
	color: var(--ba-cream);
	font-family: inherit;
	font-size: 0.8125rem;
	cursor: pointer;
}
.ba-printer__close:hover { background: var(--ba-yellow); color: var(--ba-ink); }
.ba-printer__slot {
	position: absolute;
	left: 6%;
	right: 6%;
	bottom: 12px;
	height: 8px;
	border-radius: 4px;
	background: #050505;
	box-shadow: inset 0 2px 3px rgba( 0, 0, 0, 0.9 ), 0 1px 0 rgba( 255, 255, 255, 0.08 );
}
.ba-printer__out {
	position: relative;
	z-index: 1;
	width: 84%;
	margin-top: -16px;
	overflow: hidden;
	pointer-events: auto;
	filter: drop-shadow( 0 10px 10px rgba( 0, 0, 0, 0.25 ) );
}
.ba-printer__print { animation: ba-print 1.5s steps( 22, end ) 0.35s both; }
.ba-printer__paper {
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-sizing: border-box;
	max-height: calc( 100vh - 210px );
	padding: 30px 8% 34px;
	overflow-y: auto;
	background: linear-gradient( 180deg, #e9e8e3 0px, #fbfbf8 22px, #f6f6f2 60%, #fbfbf8 );
	-webkit-mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 10px 100%;
	mask: conic-gradient( from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg ) 50% / 10px 100%;
}

.ba-bag__head {
	text-align: center;
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.6;
}
.ba-bag__meta {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 0.625rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}
.ba-bag__rule { border-top: 1px dashed var(--ba-ink); opacity: 0.6; }
.ba-bag__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 10px 0;
	text-align: center;
}
.ba-bag__empty-title {
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.375rem;
	line-height: 1;
	letter-spacing: -0.04em;
	text-transform: uppercase;
}
.ba-bag__empty-text { font-size: 0.6875rem; line-height: 1.6; opacity: 0.7; }
.ba-bag__line { display: flex; flex-direction: column; gap: 5px; padding-bottom: 4px; }
.ba-bag__row {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	line-height: 1.35;
	text-transform: uppercase;
}
.ba-bag__price { white-space: nowrap; }
.ba-bag__ctl {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.ba-bag__size { opacity: 0.65; }
.ba-bag__qty { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.ba-bag__qty button {
	width: 22px;
	height: 22px;
	padding: 0;
	border: 1px solid var(--ba-ink);
	background: transparent;
	color: var(--ba-ink);
	font-family: inherit;
	font-size: 0.6875rem;
	cursor: pointer;
}
.ba-bag__qty button:hover { background: var(--ba-yellow); color: var(--ba-ink); }
.ba-bag__remove {
	padding: 2px;
	border: none;
	font-family: inherit;
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.65;
	cursor: pointer;
}
.ba-bag__remove:hover { opacity: 1; }
.ba-bag__sum {
	display: flex;
	justify-content: space-between;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.75;
}
.ba-bag__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ba-bag__go {
	align-self: center;
	padding: 2px 4px;
	border: 0;
	background: transparent;
	color: var(--ba-ink);
	font-family: 'Archivo Black', 'Arial Black', sans-serif;
	font-size: 1.625rem;
	line-height: 1;
	letter-spacing: -0.05em;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}
.ba-bag__go:hover { background: var(--ba-yellow); color: var(--ba-ink); }
.ba-bag__barcode {
	height: 34px;
	margin: 6px 6% 0;
	background: repeating-linear-gradient( 90deg, #12110f 0 2px, transparent 2px 4px, #12110f 4px 5px, transparent 5px 8px, #12110f 8px 11px, transparent 11px 12px, #12110f 12px 13px, transparent 13px 16px );
}
.ba-bag__thanks {
	text-align: center;
	font-size: 0.625rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	opacity: 0.7;
}

@media ( prefers-reduced-motion: reduce ) {
	.ba-printer__machine,
	.ba-printer__body,
	.ba-printer__print,
	.ba-printer__led,
	.ba-hero-windows.is-armed .ba-win.is-in,
	.ba-scan:hover::after { animation: none; transition: none; }
}

/* Pages built as stacked sections (hero, category bar, editorial, newsletter,
   titles, grids, legal text) sit flush: no WordPress block gap between them.
   Text templates (404, cart, checkout, posts, search) keep their gap. */
main.wp-block-group.ba-flush > *,
main.wp-block-group.ba-flush > * + *,
main.wp-block-group.ba-acc-list > *,
main.wp-block-group.ba-acc-list > * + *,
main.wp-block-group.ba-legal > *,
main.wp-block-group.ba-legal > * + *,
main.wp-block-group.ba-pdp > *,
main.wp-block-group.ba-pdp > * + * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Hero and category bar touch, whatever the template copy in the database says. */
.ba-hero-wrap,
.ba-hero-wrap > .ba-hero,
.ba-hero-wrap + .ba-catbar,
.ba-catbar {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}
.ba-hero-wrap { padding-block: 0 !important; }

/* Stray empty <p> left by wpautop around block-level shortcodes. */
main p:empty { display: none; margin: 0; }

/* Hero windows start hidden in CSS, so they never flash before the script
   arms them. If the script never runs, they appear after 3s as a fallback. */
.ba-hero-windows:not(.is-armed) .ba-win {
	opacity: 0;
	pointer-events: none;
	animation: ba-win-fallback 0.01s linear 3s forwards;
}
@keyframes ba-win-fallback {
	to { opacity: 1; pointer-events: auto; }
}

/* A hero window with a link: the picture is the link. */
a.ba-win__body { display: block; cursor: pointer; color: inherit; text-decoration: none; }
a.ba-win__body:hover img { filter: brightness( 1.06 ); }

/* Header, page and footer touch: no WordPress block gap between the
   top-level parts (it showed as a white strip above the footer). */
.wp-site-blocks > *,
.wp-site-blocks > * + * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Account: menu on the left as a straight list, content beside it.
   (WooCommerce floats them at 30% / 68%; the menu tiles used to wrap unevenly.) */
.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) {
	display: grid;
	grid-template-columns: 240px minmax( 0, 1fr );
	gap: 28px;
	align-items: start;
	max-width: 1100px;
	margin-inline: auto;
}
.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}
.ba-account .woocommerce-MyAccount-navigation,
.ba-account .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}
.ba-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	margin: 0;
}
.ba-account .woocommerce-MyAccount-navigation li { flex: none; }
.ba-account .woocommerce-MyAccount-navigation li a {
	padding: 14px 16px;
	text-align: left;
}
@media ( max-width: 760px ) {
	.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) { grid-template-columns: minmax( 0, 1fr ); gap: 18px; }
}

/* Account grid: every part sits in its own column, whatever else WooCommerce prints. */
.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) {
	gap: 0 28px;
}
.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) > * {
	grid-column: 1 / -1;
}
.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) > .woocommerce-MyAccount-navigation {
	grid-column: 1;
	grid-row: 2;
}
.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) > .woocommerce-MyAccount-content {
	grid-column: 2;
	grid-row: 2;
}
@media ( max-width: 760px ) {
	.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) > .woocommerce-MyAccount-navigation,
	.ba-account .woocommerce:has( > .woocommerce-MyAccount-navigation ) > .woocommerce-MyAccount-content {
		grid-column: 1;
		grid-row: auto;
		margin-bottom: 18px !important;
	}
}

/* Product photos are shown whole, never cropped: the piece sits inside the
   square with a little air around it. */
.ba-receipt__img:not(.ba-receipt__img--acc) img,
.ba-pdp-thumb img {
	box-sizing: border-box;
	object-fit: contain;
	padding: 4%;
}

/* Accordion panels follow the [hidden] attribute only. WooCommerce's own tabs
   script also sets display:none inline, which kept Care / Shipping shut. */
.woocommerce-tabs .ba-accordion__panel { display: block !important; }
.woocommerce-tabs .ba-accordion__panel[hidden] { display: none !important; }

/* About page: the two photos on the right always have the same shape, whatever
   was uploaded (square on top, 16:9 below), and fill the column edge to edge. */
.ba-about .wp-block-column > .wp-block-image {
	margin: 0;
}
.ba-about .wp-block-column > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.ba-about .wp-block-column > .wp-block-image:nth-of-type(1) img { aspect-ratio: 1 / 1; }
.ba-about .wp-block-column > .wp-block-image:nth-of-type(2) img { aspect-ratio: 16 / 9; }

/* Facts row: four beige cells at a fifth of the width each; the last fifth stays black. */
@media ( min-width: 782px ) {
	.ba-about .wp-block-columns.has-background > .wp-block-column {
		flex: 0 0 calc( 20% - 1.6px );
		box-sizing: border-box;
	}
}

/* Product receipt: no empty footer strip when there is no SOLD OUT label. */
.ba-receipt--pdp .ba-receipt__foot:not( :has( * ) ) { display: none; }
