.mira-va-shop { padding-block: clamp(1.5rem, 4.5vw, 4rem); }
:where(.wopb-builder-container) { box-sizing: border-box; padding: clamp(1.5rem, 4.5vw, 4rem) var(--mira-edge); }
.mira-va-shop .woocommerce-breadcrumb { color: var(--mira-muted); }
.mira-va-shop :is(.wp-block-query-title, .wp-block-post-title) { margin-block-start: .35em; }
.mira-va-shop .mira-va-shop-title { margin-block: .4em .6em; }
.mira-va-shop-bar { padding-block: .85rem; border-block: 1px solid var(--mira-line); color: var(--mira-muted); }
.mira-va-shop-bar > * { margin-block: 0; }
.mira-va-shop :is(.wp-block-search__input, select, .input-text) { border: 1px solid var(--mira-line); color: var(--mira-text); background-color: var(--mira-header-color); }
.mira-va-shop .wp-block-search__input { padding: .65rem; }
.mira-va-shop .wp-block-woocommerce-product-template { gap: clamp(1rem, 2.5vw, 2rem); }
.mira-va-shop .wp-block-woocommerce-product-template .wc-block-product { background: var(--mira-header-color); padding: clamp(.7rem, 1.2vw, 1.2rem); }
.mira-va-shop .wc-block-product .wp-block-post-title { line-height: 1.18; }
.mira-va-shop .wp-block-woocommerce-product-template :is(.wp-block-post-title, .wp-block-woocommerce-product-price) { margin-block: .6rem; }
.mira-va-shop .wp-block-query-pagination { margin-block-start: 2rem; }
.mira-va-shop .wp-block-query-pagination-numbers .current { color: var(--mira-text); font-weight: 600; }
.mira-va-product-details > .wp-block-column { min-width: 0; }
.mira-va-product-details .wp-block-woocommerce-product-price { color: var(--mira-accent); }
.mira-va-product-details .variations select { width: auto; max-width: 100%; }
:where(.woocommerce, .woocommerce-page, .wc-block-cart, .wc-block-checkout) {
	--wc-form-border-color: var(--mira-line);
	--wc-form-color-background: var(--mira-header-color);
	--wc-form-color-text: var(--mira-text);
	--wc-separator-color: var(--mira-line);
}
:where(.woocommerce, .wc-block-cart, .wc-block-checkout) :focus-visible { outline: 2px solid var(--mira-accent); outline-offset: 3px; }
.woocommerce :is(button.button, a.button, input.button, #respond input#submit, button.alt, a.button.alt) {
	background-color: var(--mira-accent);
	color: var(--mira-button-text);
	border-radius: var(--mira-radius);
}
.woocommerce :is(button.button, a.button, input.button, #respond input#submit, button.alt, a.button.alt):hover {
	background-color: var(--mira-text);
	color: var(--mira-button-text);
}

/* Match the site typography in store controls that have their own stylesheet. */
:is(.woocommerce, .wc-block-cart, .wc-block-checkout, .wopb-block-wrapper, .wopb-product-wrapper)
	:is(.button, .wc-block-components-button, .wopb-cart-button, .wopb-cart-normal, .wopb-cart-active) {
	font-family: var(--mira-button-font);
	font-weight: var(--mira-button-weight);
	letter-spacing: var(--mira-button-tracking);
	text-transform: var(--mira-button-case);
}
:is(.woocommerce, .wc-block-cart, .wc-block-checkout, .wopb-block-wrapper, .wopb-product-wrapper, .wp-block-search)
	:is(select, textarea, input:not([type="button"], [type="submit"], [type="reset"])) {
	font-family: var(--mira-body-font);
	font-weight: var(--mira-body-weight);
}
:where(.wopb-block-wrapper, .wopb-product-wrapper) :is(.wopb-heading-inner, .wopb-heading-inner a) {
	font-family: var(--mira-heading-font);
	font-style: italic;
	font-weight: var(--mira-heading-weight);
}
:where(.wopb-block-wrapper) :is(.wopb-block-title, .wopb-block-title a, .wopb-product-title),
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--mira-heading-font);
	font-style: normal;
	font-weight: 400;
}

.mira-va-wow-template {
	--mira-shop-gap: clamp(1rem, 2.4vw, 2rem);
	min-width: 0;
	color: var(--mira-text);
}
.mira-va-wow-template .woocommerce-breadcrumb { color: var(--mira-muted); margin-block: 0 1.4rem; }
.mira-va-wow-template h1,
.mira-va-wow-product .wopb-builder-product-title,
.mira-va-wow-catalog .wopb-archive-name {
	font-family: var(--mira-heading-font);
	font-size: clamp(2.5rem, 5.5vw, 4.75rem);
	font-style: italic;
	font-weight: var(--mira-heading-weight);
	line-height: 1.05;
	overflow-wrap: anywhere;
}
.mira-va-wow-template :is(a, button, input, select):focus-visible {
	outline: 2px solid var(--mira-accent);
	outline-offset: 3px;
}
.mira-va-wow-shop-hero {
	align-items: center;
	gap: var(--mira-shop-gap);
	padding: clamp(1.25rem, 4vw, 3.5rem);
	background: var(--mira-surface);
}
.mira-va-wow-shop-hero > .wp-block-column { align-self: center; min-width: 0; }
.mira-va-wow-shop-hero :is(h1, .mira-va-lede) { margin-block: 0 .55em; }
.mira-va-wow-shop-hero .wp-block-image { margin: 0; }
.mira-va-wow-shop-hero .wp-block-image img {
	display: block;
	width: 100%;
	height: clamp(13rem, 25vw, 23rem);
	object-fit: cover;
	object-position: center 16%;
}
.mira-va-wow-catalog-tools {
	padding-block: 1rem;
	margin-block: var(--mira-shop-gap);
	border-block: 1px solid var(--mira-line);
}
.mira-va-wow-catalog-tools .wp-block-search { max-width: 34rem; }
.mira-va-wow-catalog-tools .wp-block-search__label { display: block; margin-block-end: .35rem; }
.mira-va-wow-catalog-tools .wp-block-search__input {
	border: 1px solid var(--mira-line);
	background: var(--mira-header-color);
	color: var(--mira-text);
	padding: .65rem .85rem;
}
.mira-va-wow-catalog-tools .wp-block-search__button { margin-inline-start: .5rem; }
.mira-va-wow-catalog-grid .wopb-block-items-wrap { display: grid; gap: var(--mira-shop-gap); }
.mira-va-wow-catalog-grid .wopb-block-item {
	min-width: 0;
	background: var(--mira-header-color);
	border: 1px solid var(--mira-line);
}
.mira-va-wow-catalog-grid .wopb-block-content-wrap {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	height: 100%;
	padding: clamp(.65rem, 1.4vw, 1.15rem);
}
.mira-va-wow-catalog-grid .wopb-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	background: var(--mira-surface);
}
.mira-va-wow-catalog-grid .wopb-block-title {
	margin: 0;
	font-family: var(--mira-heading-font);
	font-size: clamp(1.25rem, 2.1vw, 1.9rem);
	font-style: normal;
	font-weight: 400;
	line-height: 1.1;
	overflow-wrap: anywhere;
}
.mira-va-wow-catalog-grid .wopb-block-title a { color: var(--mira-text); }
.mira-va-wow-catalog-grid .wopb-product-price { color: var(--mira-accent); font-size: .95rem; }
.mira-va-wow-catalog-grid .wopb-block-content-wrap > :last-child { margin-block-start: auto; }
.mira-va-wow-catalog-grid :is(a.wopb-cart-button, .pagination-active a) {
	background: var(--mira-accent);
	color: var(--mira-button-text);
	border-radius: var(--mira-radius);
}
.mira-va-wow-catalog-grid .wopb-pagination { flex-wrap: wrap; margin-block: var(--mira-shop-gap) 0; }
.mira-va-wow-product-columns { gap: clamp(1.5rem, 5vw, 4.75rem); }
.mira-va-wow-product-columns > .wp-block-column { min-width: 0; }
.mira-va-wow-product-columns > .wp-block-column:last-child > * { margin-block: 0 1rem; }
.mira-va-wow-product .wopb-product-wrapper .woocommerce-product-gallery {
	float: none;
	width: 100%;
	margin: 0;
	background: var(--mira-surface);
}
.mira-va-wow-product .wp-block-product-blocks-product-price .price {
	color: var(--mira-accent);
	font-size: clamp(1.1rem, 2vw, 1.4rem);
}
.mira-va-wow-product .wp-block-product-blocks-product-price .price .amount { color: inherit; }
.mira-va-wow-product .variations select {
	max-width: 100%;
	border: 1px solid var(--mira-line);
	background: var(--mira-header-color);
	color: var(--mira-text);
}
.mira-va-wow-product-note {
	padding: 1rem 1.15rem;
	background: var(--mira-surface);
	font-size: .94rem;
}
.mira-va-wow-product-note > :first-child { margin-block-start: 0; }
.mira-va-wow-product-note > :last-child { margin-block-end: 0; }
.mira-va-wow-product-details { margin-block-start: clamp(1.75rem, 6vw, 4.5rem); }
.mira-va-wow-product-details .woocommerce-tabs .wc-tabs li.active a { color: var(--mira-accent); }
.mira-va-wow-product-details .woocommerce-tabs .wc-tabs li a:focus-visible {
	outline: 2px solid var(--mira-accent);
	outline-offset: 3px;
}

@media (max-width: 781px) {
	.mira-va-wow-catalog-grid .wopb-block-items-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mira-va-wow-catalog-grid .wopb-block-column-1 { grid-template-columns: minmax(0, 1fr); }
	.mira-va-wow-product-columns { gap: 1.5rem; }
	.mira-va-wow-shop-hero .wp-block-image img { height: clamp(10rem, 47vw, 20rem); }
}
