/* Monsta Product & Checkout UI - product page.
   Everything is scoped to body.tmui-product (added only when the feature flag is on).

   Colours: no palette of our own. Accents are the theme's --primary-color /
   --secondary-color; the greys and white are the ones the theme's product page
   already uses (#fff summary, #e5e5e5 spec rows, #ccc rules). Fonts and buttons
   are inherited from the theme. */

body.tmui-product {
	--tmui-primary: var(--monsta-bg-primary, currentColor);
	--tmui-secondary: var(--monsta-bg-secondary, currentColor);
	--tmui-bg: var(--monsta-bg, currentColor);
	--tmui-bg-accent: var(--monsta-bg-accent, currentColor);
	--tmui-head-bg: var(--monsta-bg-alt, currentColor);
	--tmui-border: var(--monsta-bg-alt, currentColor);
	--tmui-line: var(--monsta-border, currentColor);
	--tmui-soft-bg: var(--monsta-bg-alt, currentColor);
	--tmui-text: var(--monsta-text, currentColor);
	--tmui-text-reverse: var(--monsta-text-reverse, currentColor);
	--tmui-radius: 0;
	--tmui-gap: 16px;
}

/* ============ 0. Heading row (mock-up: SKU above the name; NEW + stock on the right) ============ */

.tmui-product .tmui-headline { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin: 0 0 14px; }
.tmui-product .tmui-headline__main { min-width: 0; }
body.tmui-product .tmui-headline h4.tmui-headline__sku {
	margin: 0 0 2px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--tmui-text);
	opacity: .8;
}
.tmui-product .tmui-headline__sku strong { font-weight: 600; }
body.tmui-product .tmui-headline h1.tmui-headline__title { margin: 0 !important; line-height: 1.15; }
.tmui-product .tmui-headline__meta { display: flex; flex: 0 0 auto; align-items: center; gap: 14px; padding-top: 4px; }
.tmui-product .tmui-badge {
	margin: 0 !important;
	padding: 4px 10px;
	background: var(--tmui-secondary);
	color: var(--tmui-text);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.4;
}
.tmui-product .tmui-stock { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--tmui-text); white-space: nowrap; display: none !important; }
.tmui-product .tmui-stock[hidden] { display: none; }
.tmui-product .tmui-stock::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.tmui-product .tmui-stock.is-out { opacity: .6; }
@media (max-width: 480px) {
	.tmui-product .tmui-headline { flex-direction: column-reverse; gap: 6px; }
}

/* ============ 0b. Colours / Size rows (mock-up: small caps labels, full-width select) ============ */

/* The theme's "Sizes S / M" chips repeat the Size select; the mock-up has only Colours and Size. */
.tmui-product.tmui-headline-ready table.variations tr.tr-sizes { display: none !important; }
/* The theme's own colour chips, when it has them, repeat the Colours row. */
.tmui-product.tmui-colours-ready table.variations tr.tr-colors { display: none !important; }
.tmui-product .tmui-col-right table.variations { width: 100%; margin: 0 0 14px !important; border: 0; }
.tmui-product .tmui-col-right table.variations th,
.tmui-product .tmui-col-right table.variations td { padding: 0 0 12px !important; vertical-align: middle !important; border: 0 !important; background: none !important; }
body.tmui-product .tmui-col-right table.variations th.label,
body.tmui-product .tmui-col-right table.variations td.label { width: 110px !important; }
body.tmui-product .tmui-col-right table.variations th label,
body.tmui-product .tmui-col-right table.variations td.label label {
	margin: 0;
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--tmui-text);
}
.tmui-product .tmui-col-right table.variations td.value { white-space: nowrap; }
.tmui-product .tmui-col-right table.variations td.value select { display: inline-block; width: calc(100% - 52px) !important; min-width: 0; vertical-align: middle; }
.tmui-product .tmui-col-right table.variations td.value .tmui-swatches { white-space: normal; }
.tmui-product .tmui-col-right table.variations .reset_variations { display: inline-block; margin-left: 8px; font-size: 12px; vertical-align: middle; }

.tmui-product .tmui-hidden,
.tmui-product .tmui-col-hidden { display: none !important; }

/* ============ 1. Parent layout: two columns ============ */

/* Theme default: col-sm-6 image / col-sm-4 summary / col-sm-2 related slider. */
.tmui-product .tmui-layout { display: flex; flex-wrap: wrap; align-items: flex-start; }
.tmui-product .tmui-layout > .tmui-col-left,
.tmui-product .tmui-layout > .tmui-col-right {
	flex: 0 0 50%;
	width: 50%;
	max-width: 50%;
	box-sizing: border-box;
}
.tmui-product .tmui-layout > .tmui-col-left { display: flex; flex-direction: column; gap: var(--tmui-gap); }
.tmui-product .tmui-layout > .tmui-col-right .summary-wrap { height: auto; }

/* Gallery: large and a definite height (the theme sizes it at 100% of the column,
   which would now include Similar products and the description). */
.tmui-product .tmui-layout .tmui-gallery {
	height: clamp(380px, 42vw, 100%) !important;
	max-height: none !important;
	background: var(--tmui-bg);
}

/* Undo the theme's 50% floats inside the configuration panel so every block uses the full width. */
.tmui-product .tmui-col-right .single_variation_wrap { margin: 0 !important; }
.tmui-product .tmui-col-right .single_variation_wrap > div.woocommerce-variation-add-to-cart { float: none !important; width: 100% !important; padding: 0 !important; }

/* Tablet and phone: one column. Image, then the configuration panel, then Similar
   products and the description, so Add to cart is not pushed below them. */
@media (max-width: 991px) {
	/* The theme's row gutters (margin 0 -25px, column padding 0 25px) are dropped so
	   the column's children, which become the row's items, line up with the container. */
	.tmui-product .tmui-layout { margin-left: 0 !important; margin-right: 0 !important; }
	.tmui-product .tmui-layout > .tmui-col-right { padding-left: 0 !important; padding-right: 0 !important; }
	.tmui-product .tmui-layout > .tmui-col-left { display: contents; }
	.tmui-product .tmui-layout > .tmui-col-left > *,
	.tmui-product .tmui-layout > .tmui-col-right {
		flex: 0 0 100%;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		margin-bottom: var(--tmui-gap);
	}
	.tmui-product .tmui-layout > .tmui-col-left > * { order: 3; }
	.tmui-product .tmui-layout > .tmui-col-left > .tmui-gallery { order: 1; }
	.tmui-product .tmui-layout > .tmui-col-right { order: 2; }
	.tmui-product .tmui-layout .tmui-gallery { height: clamp(300px, 80vw, 520px) !important; }
}

/* ============ 2. Cards ============ */

.tmui-product .tmui-card {
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 14px;
	border: 1px solid var(--tmui-border);
	border-radius: var(--tmui-radius);
	background: var(--tmui-bg);
	overflow: hidden;
}
.tmui-product .tmui-col-left > .tmui-card { margin: 0; }
.tmui-product .tmui-card[hidden] { display: none; }
.tmui-product .tmui-card__head {
	padding: 10px 15px;
	background: var(--tmui-head-bg);
	color: var(--tmui-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height:  1.25;
	text-transform: uppercase;
}
.tmui-product .tmui-card__body { padding: 12px; }
.tmui-product .tmui-card.tmui-description .tmui-card__body {
    display: flex;
    flex-direction: column;
}
.tmui-product .tmui-description .tmui-card__body > h2 {
    order: 1;
}
.tmui-product .tmui-description .tmui-card__body > p {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.65;
    order: 3;
}
.tmui-product .tmui-card.tmui-description .specs-tables {
    display: none !important;
    order: 2;
}
.tmui-product .tmui-card.tmui-description .engraving-desc {
    order: 4;
}

/* ============ 3. Left column: Similar products + description ============ */

.tmui-product .tmui-similar .related > h2 { display: none; }
.tmui-product .tmui-similar ul.products {
	display: grid !important;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 2 * 12px) / 3);
	gap: 12px;
	margin: 0 !important;
	padding: 0 0 4px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	list-style: none;
	height: auto !important;
}
.tmui-product .tmui-similar ul.products::before,
.tmui-product .tmui-similar ul.products::after { display: none !important; }
.tmui-product .tmui-similar ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 10px !important;
	border: 1px solid var(--tmui-border);
	text-align: center;
	scroll-snap-align: start;
}
.tmui-product .tmui-similar ul.products li.product .img-wrap { position: static; padding: 0; }
.tmui-product .tmui-similar ul.products li.product img {
	position: static !important;
	display: block;
	width: 100% !important;
	height: 150px !important;
	margin: 0 0 8px !important;
	object-fit: contain;
}
.tmui-product .tmui-similar ul.products li.product h2 { margin: 0 0 4px; font-size: 14px !important; color: var(--tmui-primary); }
.tmui-product .tmui-similar ul.products li.product .price { color: var(--tmui-secondary); font-weight: 600; }
.tmui-product .tmui-similar ul.products li.product .button { display: none; }
@media (max-width: 575px) {
	.tmui-product .tmui-similar ul.products { grid-auto-columns: calc((100% - 12px) / 2); }
}

/* The theme's description section, moved in whole; its repeated product title is dropped. */
.tmui-product .tmui-description .tmui-card__body > h1:first-child, .tmui-product .tmui-description .tmui-card__body > h2:first-child { display: none; }
.tmui-product .tmui-description .tmui-card__body h3 {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.0125rem;
    line-height: 1.15;
    margin: 0 0 5px;
}
.tmui-product .tmui-description .tmui-card__body p {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.65;
}
.tmui-product .tmui-description .engraving-desc { margin-top: 0 !important; }

/* ============ 4. Bulk pricing grid ============ */

/* Monsta's table stays in the page, hidden, as the data source. */
.tmui-product.tmui-tiers-ready table.monstaprice { display: none !important; }
/* Each cell's 1px shadow fills the 1px gap, so borders stay single-width however
   the tiers wrap, and empty cells on a short last row stay blank */
.tmui-product .tmui-tiers__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	padding-top: 1px;
}
@media (min-width: 480px) {
	.tmui-product .tmui-tiers__grid { grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); }
}
/* Mock-up: a white quantity row over a shaded price row, like a two-row table. */
.tmui-product .tmui-tier {
	display: flex;
	flex-direction: column;
	background: var(--tmui-bg);
	box-shadow: 0 0 0 1px var(--tmui-line);
	text-align: center;
	font-size: 13px;
}
.tmui-product .tmui-tier__qty,
.tmui-product .tmui-tier__price { display: block; padding: 5px 4px; }
.tmui-product .tmui-tier__qty { color: var(--tmui-text); letter-spacing: 0.05rem; }
.tmui-product .tmui-tier__price { background: var(--tmui-soft-bg); border-top: 1px solid var(--tmui-line); color: var(--tmui-text); letter-spacing: 0.05rem; }
/* The tier for the current quantity: bold only, as the mock-up has no highlight colour. */
.tmui-product .tmui-tier.is-active .tmui-tier__qty,
.tmui-product .tmui-tier.is-active .tmui-tier__price { font-weight: 700; }
.tmui-product .tmui-tiers__flat { padding: 10px 12px; font-weight: 700; }
.tmui-product .tmui-tiers { margin-bottom: 18px; }

/* ============ 4b. Colours swatches ============ */

/* Monsta's bare colour <select> (and the label the theme hides); the swatches drive it. */
.tmui-product .single_variation_wrap .tmui-colour-src { display: none !important; }
.tmui-product .tmui-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.tmui-product .tmui-swatch {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 3px;
	border: 1px solid var(--tmui-border);
	background: var(--tmui-bg);
	cursor: pointer;
}
.tmui-product .tmui-swatch__fill { display: block; width: 28px; height: 28px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12); }
.tmui-product .tmui-swatch--text { padding: 3px 10px; }
.tmui-product .tmui-swatch__text { font-size: 12px; font-weight: 600; color: var(--tmui-text); white-space: nowrap; }
.tmui-product .tmui-swatch.is-selected { border-color: var(--tmui-secondary); box-shadow: 0 0 0 2px var(--tmui-secondary); }
.tmui-product .tmui-swatch:focus-visible { outline: 2px solid var(--tmui-primary); outline-offset: 2px; }

/* ============ 5. Engraving ============ */

.tmui-product .tmui-engraving__text {
    background:  var(--tmui-soft-bg);
	box-sizing: border-box;
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--tmui-border);
    font-size: 15px;
    line-height: 1.5;
    resize: vertical;
}
.tmui-product .tmui-engraving__text:focus { outline: 2px solid var(--tmui-secondary); outline-offset: 0; }
.tmui-product .tmui-engraving__meta {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	margin: 4px 0 8px;
	font-size: 12px;
	opacity: .75;
}
/* The theme hides every <label> inside .single_variation_wrap; these must show. */
.tmui-product .tmui-check {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-weight: 600;
	cursor: pointer;
}
.tmui-product .tmui-check input { margin: 0 !important; width: 16px; height: 16px; }
.tmui-product .tmui-logo { margin-top: 8px; }
.tmui-product .tmui-logo[hidden], .tmui-product .tmui-logo__row[hidden] { display: none !important; }
.tmui-product .tmui-logo__note { margin: 0 0 6px; font-size: 12px; opacity: .75; }
.tmui-product .tmui-logo__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; }
.tmui-product .tmui-logo__status { margin-top: 6px; font-size: 12px; }
.tmui-product .tmui-logo__tiles { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tmui-product .tmui-logo__tile { position: relative; width: 64px; height: 64px; border: 1px solid var(--tmui-border); }
.tmui-product .tmui-logo__tile img { width: 100%; height: 100%; object-fit: contain; }
.tmui-product .tmui-logo__remove {
	position: absolute; top: -8px; right: -8px;
	width: 22px; height: 22px; padding: 0;
	border: 0; border-radius: 50%;
	background: var(--tmui-primary); color: var(--tmui-bg); line-height: 22px; cursor: pointer;
}
.tmui-product .tmui-btn {
	display: inline-block !important;
	padding: 7px 12px;
	border: 1px solid var(--tmui-primary);
	color: var(--tmui-primary);
	background: var(--tmui-bg);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

/* UK Engraving Process / Engraving Charge moved into the engraving card */
.tmui-product .tmui-engraving__extras:empty { display: none; }
.tmui-product .tmui-engraving__extras .tm-acc,
.tmui-product .tmui-engraving__extras table.monstaprocess_discount.tm-acc { margin: 10px 0 0 !important; }
.tmui-product .tmui-engraving__extras .tm-acc-head { font-size: 13px; text-transform: uppercase; letter-spacing: .02em; color: var(--tmui-text); }
.tmui-product .tmui-engraving__extras .process_charge { width: 100%; margin-top: 6px; font-size: 12px; }

/* ============ 6. Centre / Ribbon / Medal Box rows ============ */

/* The theme's "Select ..." popup buttons drive the same selects. Hidden visually
   only: the theme posts a select's name only while its wrapper is not :hidden. */
.tmui-product.tmui-addons-ready .single_variation_wrap .tmui-addon-src {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	float: none !important;
	padding: 0 !important;
	margin: -1px !important;
}
.tmui-product .tmui-addon + .tmui-addon { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--tmui-border); }
.tmui-product .tmui-addon__title { margin: 0 0 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; color: var(--tmui-text); }
.tmui-product .tmui-addon__scroller { display: flex; align-items: center; gap: 6px; }
.tmui-product .tmui-addon__track {
	display: grid;
	flex: 1 1 auto;
	min-width: 0;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 5 * 5px) / 6);
	gap: 5px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: auto;
    padding-bottom: 5px;
    scrollbar-color: var(--tmui-primary) var(--tmui-secondary);
}
.tmui-product .tmui-addon__tile {
    border-radius: 4px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 5px;
	border: 1px solid var(--tmui-border);
	text-align: center;
	scroll-snap-align: start;
}
.tmui-product .tmui-addon__tile.is-selected { border-color: var(--tmui-secondary); }
.tmui-product .tmui-addon__img { width: 100%; aspect-ratio: 1 / 1; padding: 0 5px; position: relative; margin-bottom: 5px; }
.tmui-product .tmui-addon__img img {
    max-width: unset !important;
    height: 100%;
    margin: auto;
    object-fit: contain !important;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    z-index: 3;
}
.tmui-product .tmui-addon__tile .tmui-addon__content {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}
.tmui-product .tmui-addon__tile .tmui-addon__content-top {
    width: 100%;
}
.tmui-product .tmui-addon__name { font-size: 11px; line-height: 1.25; min-height: 0; overflow-wrap: anywhere; font-weight: 500; }
.tmui-product .tmui-addon__price { font-size: 11px; font-weight: 600; color: var(--tmui-text); letter-spacing: 0.025rem; }
/* Theme .button inside the summary is 100% wide with a top margin; size it for a tile. */
.tmui-product .summary-wrap .tmui-addon__btn.button,
.tmui-product .tmui-addon__btn.button {
	width: auto !important;
    min-width: 60px;
    margin: 0 !important;
    padding: 6px 5px !important;
    background-color: var(--tmui-bg-accent) !important;
    border-radius: 3px !important;
    color: var(--tmui-text-reverse) !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    letter-spacing: 0.025rem !important;
    font-weight: 400 !important;
    height: auto !important;
    text-transform: capitalize !important;
    opacity: 1 !important;
}
.tmui-product .tmui-addon__tile.is-selected .tmui-addon__btn.button { background-color: var(--tmui-secondary) !important; }
.tmui-product .tmui-addon__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 30px;
	width: 30px !important;
	height: 30px !important;
	padding: 0 !important;
	border: 1px solid var(--tmui-border) !important;
	border-radius: 50% !important;
	background: var(--tmui-bg) !important;
	color: var(--tmui-text) !important;
	font-size: 14px !important;
	line-height: 1 !important;
	cursor: pointer;
}
.tmui-product .tmui-addon__nav:hover {
    background:var(--tmui-secondary) !important;
    border-color: var(--tmui-secondary) !important;
    color: #fff !important;
}
@media (max-width: 991px) {
	.tmui-product .tmui-addon__track { grid-auto-columns: calc((100% - 3 * 8px) / 4); }
}
@media (max-width: 480px) {
	.tmui-product .tmui-addon__track { grid-auto-columns: calc((100% - 2 * 8px) / 3); }
	.tmui-product .tmui-addon__nav { display: none; }
}

/* ============ 7. Quantity / Unit price / Total bar ============ */

/* Theme rows replaced by the bar (mohawk productSummary()). Hidden, not removed:
   the theme's add-on scripts still read #unit_price and .tr-price. */
.tmui-product.tmui-bar-ready table.variations tr.tr-qty,
.tmui-product.tmui-bar-ready table.variations tr.tr-price-unit,
.tmui-product.tmui-bar-ready table.variations tr.tr-price { display: none !important; }

.tmui-product .tmui-buybar {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas: "qty qty" "unit total";
	align-items: center;
	gap: 10px 16px;
	width: 100%;
	margin: 0 0 12px;
	padding: 10px 0;
}
.tmui-product .tmui-buybar__cell { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tmui-product .tmui-buybar__qty { grid-area: qty; flex-wrap: nowrap; }
.tmui-product .tmui-buybar__cell:nth-child(2) { grid-area: unit; }
.tmui-product .tmui-buybar__totalcell {
    grid-area: total;
    justify-content: flex-end;
    align-items: center;
}
.tmui-product .tmui-buybar__label { font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--tmui-text); white-space: nowrap; }
.tmui-product .tmui-buybar__unit { font-weight: 700; color: var(--tmui-secondary); }
.tmui-product .tmui-buybar__total {
    background-color: var(--tmui-soft-bg);
    border-radius: 4px;
    font-size: 28px;
    font-weight: 700;
    color: var(--tmui-secondary);
    white-space: nowrap;
    line-height: 1;
    padding: 5px 10px 6px;
}
.tmui-product .tmui-buybar .quantity { display: inline-flex !important; align-items: stretch; margin: 0 !important; float: none !important; }
.tmui-product .tmui-buybar .quantity input.qty {
    background: var(--tmui-bg);
    border: 0 !important;
    height: 40px;
    font-size: 14px;
    font-weight: 600;
    width: 60px;
    min-height: 0;
    text-align: center;
}
.tmui-product .tmui-buybar .quantity input.qty::-webkit-outer-spin-button,
.tmui-product .tmui-buybar .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  -moz-appearance: textfield;
  margin: 0;
}

.tmui-product .quantity.tmui-stepper {
    background: var(--tmui-soft-bg);
    border: 2px solid var(--tmui-border);
}
.tmui-product .quantity.tmui-stepper .tmui-step {
	min-width: 35px;
    min-height: 0;
    padding: 0 !important;
    border: 0 !important;
    background-color: transparent !important;
    color: var(--tmui-primary) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer;
    margin: 0 !important;
    opacity: 0.85;
}
.tmui-product .quantity.tmui-stepper .tmui-step:hover {
    opacity: 1;
}
.tmui-product .tmui-step:focus-visible { outline: 2px solid var(--tmui-primary); }

.tmui-product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 8px; }
/* min-width 0: flex items otherwise grow to their content's width and spill out of the panel. */
.tmui-product .woocommerce-variation-add-to-cart > * { flex: 1 1 100%; min-width: 0; max-width: 100%; }
/* Add to cart, then Buy now & checkout, each full width (the theme puts them in a two-column .row). */
.tmui-product .woocommerce-variation-add-to-cart .row { display: flex; flex-direction: column; gap: 5px; margin: 0 !important; }
.tmui-product .woocommerce-variation-add-to-cart .row > div { flex: 0 0 auto; width: 100% !important; max-width: 100% !important; padding: 0 !important; }
.tmui-product .woocommerce-variation-add-to-cart .row .button { margin-top: 0 !important; margin-bottom: 0 !important; }
.tmui-product .woocommerce-variation-add-to-cart > .col { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; }
.tmui-product .woocommerce-variation-add-to-cart > .col .button { margin-top: 0 !important; width: 100% !important; }

@media (min-width: 600px) {
	.tmui-product .tmui-buybar {
		grid-template-columns: auto 1fr auto;
		grid-template-areas: "qty unit total";
	}
	.tmui-product .tmui-buybar__cell:nth-child(2) { justify-content: center; }
}
