/* Product page: layout, gallery, option pills, order review and related products. */

/* Page width and two-column layout */
.single-product #primary {
	width: 90%;
	max-width: 1440px;
	margin: 0 auto !important;
	padding: 50px 0 0 !important;
}
.single-product #primary > #main {
	padding: 0 !important;
}
.single-product form.cart .quantity:not(:has(input:not([type="hidden"]))) {
	display: none;
}
.single-product .tc-extra-product-options .cpf-element > .tc-element-inner-wrap,
.single-product .tc-extra-product-options .cpf-element > .tc-element-inner-wrap > .tc-row,
.single-product .tc-extra-product-options .tc-element-container > ul.tmcp-ul-wrap {
	width: 100%;
	flex: 1 1 100%;
}
.single-product .tc-extra-product-options .cpf-type-radio .tc-label-inner,
.single-product .tc-extra-product-options .cpf-type-radio .tc-label-text {
	display: block;
	width: 100%;
	text-align: center;
}
.single-product .site-content > .ast-container {
	display: block;
}
.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	column-gap: 40px;
}
.single-product div.product > * {
	grid-column: 1 / -1;
}
.single-product div.product > .ags-product-media {
	grid-column: 1;
	display: flex;
	flex-direction: column;
	gap: 40px;
	min-width: 0;
}
.single-product div.product > .summary {
	grid-column: 2;
	grid-row: 1 / span 2;
	width: auto;
	min-width: 0;
	margin: 0;
	float: none;
}
.single-product div.product .ags-product-media .woocommerce-product-gallery,
.single-product div.product > .summary {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
}
.single-product .ast-woocommerce-container {
	padding: 0 !important;
}
/* Main photo: the frame follows the photo's own shape (landscape photos show whole), up to
   the column's portrait height; taller photos are cropped to that from the centre. */
.single-product .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	max-height: 812px;
	object-fit: cover;
	background: #fff;
}
@media (max-width: 760px) {
	.single-product .woocommerce-product-gallery__image img {
		max-height: 125vw;
	}
}

/* Gallery */
.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 20px 0 0;
	padding: 0;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img {
	width: 100%;
	aspect-ratio: 150 / 128;
	object-fit: cover;
	opacity: 0.5;
	cursor: pointer;
	transition: opacity 0.15s;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover {
	opacity: 1;
}

/* Info sections (description, printing specs) and downloads */
.ags-product-section,
.ags-product-media .downloads {
	padding-top: 10px;
	border-top: 1px solid rgba(37, 37, 37, 0.4);
	color: rgba(37, 37, 37, 0.8);
	font-size: 16px;
	line-height: 24px;
	letter-spacing: -0.2px;
}
.ags-product-section h2,
.ags-product-media .downloads h4 {
	margin: 10px 0 20px;
	color: var(--ags-ink);
	font-size: 21px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.5px;
}
.ags-product-section p {
	margin: 0 0 20px;
}
.ags-product-media .downloads hr {
	display: none;
}
.ags-product-media .downloads ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 24px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}
.ags-product-media .downloads a {
	color: var(--ags-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Summary column */
.single-product .summary .product_title {
	margin: 0 0 20px;
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.5px;
}
.single-product .summary .woocommerce-product-details__short-description {
	margin-bottom: 40px;
	color: rgba(37, 37, 37, 0.8);
	font-size: 18px;
	line-height: 1.57;
	letter-spacing: -0.5px;
}
.single-product .summary .woocommerce-product-details__short-description p {
	margin: 0 0 20px;
}
.single-product .summary > p.price:empty,
.single-product .summary .product_meta {
	display: none;
}
.single-product .summary > p.price {
	margin: 0 0 18px;
	color: var(--ags-ink);
	font-size: 30px;
	font-weight: 700;
}

/* Cart form: options, order review, total, quantity, button */
.single-product form.cart {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
	margin: 0 0 24px;
}
.single-product form.cart > * {
	order: 5;
}
.single-product form.cart .tc-extra-product-options {
	order: 1;
	width: 100%;
	margin: 0;
}
/* Quantity counter right after the options, then the review and the total. */
.single-product form.cart .quantity {
	order: 2;
}
.single-product form.cart .ags-order-review {
	order: 3;
	width: 100%;
}
.single-product form.cart .tc-totals-form {
	order: 4;
	width: 100%;
}
.single-product form.cart .single_add_to_cart_button {
	order: 6;
	min-height: 57px;
	margin: 0 !important;
	padding: 16px 36px;
	border: 1px solid var(--ags-orange);
	border-radius: 0;
	background: var(--ags-orange);
	color: #fff;
	font: 700 18px/23px var(--ags-font);
	letter-spacing: 1px;
	text-transform: uppercase;
}
.single-product form.cart .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button:focus-visible {
	background: var(--ags-orange-dark);
	color: #fff;
}
.single-product form.cart .quantity .qty {
	width: 90px;
	min-height: 57px;
	border: 2px solid rgba(37, 37, 37, 0.5);
	border-radius: 0;
	background: transparent;
	font-size: 18px;
}

/* Options form groups */
.single-product .tc-extra-product-options .cpf-element {
	margin: 0 0 40px;
	padding: 0;
}
.single-product .tc-extra-product-options .cpf-type-header:not(:has(.tc-epo-element-label-text:not(:empty))) {
	display: none;
}
.single-product .tc-extra-product-options .tc-epo-label {
	margin: 0 0 25px;
	padding: 0;
	color: var(--ags-ink);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.5px;
}
.single-product .tc-extra-product-options .tc-epo-label a {
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0;
	text-decoration: underline;
}
.single-product .tc-extra-product-options .tm-epo-required {
	display: none;
}
.single-product .tc-extra-product-options .tc-element-container {
	padding: 0;
}
.single-product .tc-extra-product-options ul.tmcp-ul-wrap {
	margin: 0;
	padding: 0;
	list-style: none;
}
.single-product .tc-extra-product-options li.tmcp-field-wrap {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.single-product .tc-extra-product-options .tmcp-field-wrap-inner {
	flex: 1 1 100%;
}
.single-product .tc-extra-product-options .tmcp-field-wrap-inner,
.single-product .tc-extra-product-options .tc-field-label-wrap,
.single-product .tc-extra-product-options .tm-epo-field-label {
	width: 100%;
	margin: 0;
	padding: 0;
}
.single-product .tc-extra-product-options .tc-label-wrap {
	display: block;
	width: 100%;
}
.single-product .tc-extra-product-options .tc-input-wrap {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

/* Single-choice options (size, quantity, paper…): pills, three per row */
.single-product .tc-extra-product-options .cpf-type-radio ul.tmcp-ul-wrap {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px;
}
.single-product .tc-extra-product-options .cpf-type-radio .tm-epo-field-label {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 8px 14px;
	border: 2px solid rgba(37, 37, 37, 0.5);
	border-radius: 100px;
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.15;
	text-align: center;
	cursor: pointer;
}
.single-product .tc-extra-product-options .cpf-type-radio .tc-price-wrap {
	display: none;
}
.single-product .tc-extra-product-options .cpf-type-radio .tm-epo-field-label:hover {
	border-color: var(--ags-ink);
}
.single-product .tc-extra-product-options .cpf-type-radio li.tc-active .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio .tm-epo-field-label:has(input:checked) {
	border-color: var(--ags-ink);
	background: var(--ags-ink);
	color: #fff;
}

/* Add-ons: full-width rows with a round check and the price on the right */
.single-product .tc-extra-product-options .cpf-type-checkbox ul.tmcp-ul-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	justify-content: stretch;
	gap: 10px;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label {
	position: relative;
	display: block;
	min-height: 62px;
	padding: 20px 26px 20px 65px;
	border: 2px solid rgba(37, 37, 37, 0.5);
	border-radius: 100px;
	background: var(--ags-paper);
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label::before {
	content: "";
	position: absolute;
	top: calc(50% - 15px);
	left: 16.5px;
	box-sizing: border-box;
	width: 30px;
	height: 30px;
	border: 2px solid rgba(37, 37, 37, 0.36);
	border-radius: 50%;
}
.single-product .tc-extra-product-options .cpf-type-checkbox li.tc-active .tm-epo-field-label::before,
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label:has(input:checked)::before {
	border-color: var(--ags-ink);
	background: var(--ags-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label:hover {
	border-color: var(--ags-ink);
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tc-label-inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tc-label-text {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.2;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tc-price-wrap {
	flex: 0 0 auto !important;
	width: auto !important;
	flex-shrink: 0;
	margin: 0;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tc-price,
.single-product .tc-extra-product-options .cpf-type-checkbox .tc-price .amount {
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 600;
}

/* Keyboard focus on any option */
.single-product .tc-extra-product-options .tm-epo-field-label:has(input:focus-visible) {
	outline: 3px solid var(--ags-focus);
	outline-offset: 3px;
}

/* Other field types keep the plugin's controls, restyled to match */
.single-product .tc-extra-product-options select,
.single-product .tc-extra-product-options input[type="text"],
.single-product .tc-extra-product-options input[type="number"],
.single-product .tc-extra-product-options textarea {
	width: 100%;
	min-height: 58px;
	padding: 12px 18px;
	border: 2px solid rgba(37, 37, 37, 0.5);
	border-radius: 29px;
	background: var(--ags-paper);
	color: var(--ags-ink);
	font-size: 18px;
}
.single-product .tc-extra-product-options textarea {
	border-radius: 18px;
}

/* Order review */
.ags-order-review {
	padding-top: 20px;
	border-top: 1px solid rgba(37, 37, 37, 0.3);
}
.ags-order-review__title {
	margin: 0 0 30px;
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.5px;
}
.ags-order-review__summary {
	padding: 20px;
	background: rgba(37, 37, 37, 0.05);
	color: var(--ags-ink);
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: -0.5px;
}
.ags-order-review__product {
	margin: 0 0 6px;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.4;
}
.ags-order-review__list {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 8px;
	margin: 0;
}
.ags-order-review__list dt {
	font-weight: 500;
}
.ags-order-review__list dd {
	margin: 0;
	font-weight: 700;
}
.ags-order-review__list .ags-order-review__empty {
	grid-column: 1 / -1;
	font-weight: 500;
}

/* Total (the options plugin's own calculation) */
.single-product .tc-totals-form .tm-extra-product-options-totals {
	margin: 0;
}
.single-product .tc-totals-form dt {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}
.single-product .tc-totals-form dt.tm-options-totals,
.single-product .tc-totals-form dt.tm-unit-price {
	position: static;
	width: auto;
	height: auto;
	clip: auto;
	font-size: 16px;
}
.single-product .tc-totals-form dd {
	margin: 0;
}
.single-product .tc-totals-form dd.tm-final-totals,
.single-product .tc-totals-form dd.tm-final-totals .amount {
	color: var(--ags-ink);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.5px;
}

/* Related products and listing tiles */
.single-product section.related {
	margin-top: 64px;
	padding: 20px 0 105px;
	border-top: 1px solid var(--ags-line);
}
.single-product section.related > h2 {
	margin: 0 0 42px;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.5px;
}
.woocommerce ul.products.ags-tiles,
.single-product section.related ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 54px 22px;
	margin: 0;
}
.single-product section.related ul.products::before,
.single-product section.related ul.products::after {
	display: none;
}
.single-product section.related ul.products li.product {
	width: auto;
	margin: 0;
	float: none;
	text-align: left;
}
.single-product section.related ul.products li.product img {
	width: 100%;
	height: auto;
	margin: 0;
	aspect-ratio: 309 / 255;
	object-fit: cover;
	background: #fff;
}
.single-product section.related ul.products li.product .woocommerce-loop-product__title {
	margin-top: 17px;
	padding: 0;
	color: var(--ags-ink);
	font-size: 21px;
	font-weight: 700;
	line-height: 25px;
	letter-spacing: -0.6px;
}
.single-product section.related ul.products li.product a:hover .woocommerce-loop-product__title {
	text-decoration: underline;
	text-underline-offset: 4px;
}

@media (max-width: 1100px) {
	.single-product div.product {
		column-gap: 30px;
	}
	.single-product .summary .product_title {
		font-size: 40px;
	}
	.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label {
		padding-right: 16px;
		font-size: 15px;
	}
	.single-product .tc-extra-product-options .cpf-type-radio .tm-epo-field-label {
		font-size: 16px;
	}
}

@media (max-width: 760px) {
	.single-product #primary {
		width: calc(100% - 40px);
		padding-top: 30px;
	}
	.single-product div.product {
		display: flex;
		flex-direction: column;
		gap: 30px;
	}
	/* Mobile order: title and description, gallery, options and cart, then specs. */
	.single-product div.product > .ags-product-media {
		display: contents;
	}
	.single-product div.product > .summary {
		display: contents;
	}
	.single-product .summary .product_title {
		order: 1;
		margin: 0;
		font-size: 36px;
	}
	.single-product .summary .woocommerce-product-details__short-description {
		order: 2;
		margin: 0;
		font-size: 16px;
		line-height: 1.6;
	}
	.single-product .ags-product-media .woocommerce-product-gallery {
		order: 3;
		width: 100%;
	}
	.single-product .summary > p.price,
	.single-product .summary > form.cart,
	.single-product .summary > * {
		order: 4;
	}
	.single-product .ags-product-media .ags-product-section,
	.single-product .ags-product-media .downloads {
		order: 5;
		width: 100%;
	}
	.single-product section.related {
		order: 6;
		margin-top: 10px;
		padding-bottom: 44px;
	}
	.single-product .woocommerce-product-gallery .flex-control-thumbs {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 8px;
		margin-top: 12px;
	}
	.single-product .tc-extra-product-options .tc-epo-label,
	.ags-order-review__title {
		font-size: 26px;
	}
	.single-product .tc-extra-product-options .cpf-element {
		margin-bottom: 30px;
	}
	.single-product .tc-extra-product-options .cpf-type-radio .tm-epo-field-label {
		min-height: 50px;
		font-size: 15px;
	}
	.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label {
		font-size: 15px;
	}
	.ags-order-review__summary {
		padding: 18px;
		font-size: 17px;
	}
	.ags-order-review__product {
		font-size: 26px;
	}
	.single-product section.related ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 16px;
	}
	.single-product section.related ul.products li.product .woocommerce-loop-product__title {
		margin-top: 12px;
		font-size: 16px;
		line-height: 21px;
	}
	.ags-product-media .downloads ul {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 380px) {
	.single-product .tc-extra-product-options .cpf-type-radio ul.tmcp-ul-wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Quantity counter */
.single-product form.cart .ags-qty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 25px;
	width: 100%;
	margin: 0 0 22px;
}
.single-product form.cart .ags-qty__label {
	color: var(--ags-ink);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.5px;
}
.ags-qty__control {
	display: inline-flex;
	align-items: stretch;
	border: 2px solid rgba(37, 37, 37, 0.5);
	border-radius: 100px;
	overflow: hidden;
}
.ags-qty__control:focus-within {
	border-color: var(--ags-ink);
}
.single-product form.cart .ags-qty__control .qty {
	width: 76px;
	min-height: 54px;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	box-shadow: none !important;
	color: var(--ags-ink);
	font-size: 20px;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}
.ags-qty__control .qty::-webkit-outer-spin-button,
.ags-qty__control .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
.single-product .ags-qty__step {
	width: 58px;
	min-height: 54px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--ags-ink);
	font: 500 26px/1 var(--ags-font);
	cursor: pointer;
}
.single-product .ags-qty__step:hover,
.single-product .ags-qty__step:focus-visible {
	background: rgba(37, 37, 37, 0.07);
	color: var(--ags-ink);
}

/* Artwork: one section — a note about uploading, then an optional design-help row. */
.single-product .tc-extra-product-options .cpf-element.ags-artwork {
	margin-bottom: 12px;
}
.single-product .tc-extra-product-options .ags-artwork .tm-description {
	position: relative;
	padding: 0;
}
.single-product .tc-extra-product-options .ags-artwork .tm-description p {
	margin: 0 !important;
	padding: 16px 20px 16px 58px;
	border-radius: 14px;
	background: rgba(37, 37, 37, 0.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23252525' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E") no-repeat 20px center / 22px;
	color: var(--ags-ink);
	font-size: 17px;
	line-height: 1.4;
}
.single-product .tc-extra-product-options .ags-check-option .tc-epo-label,
.single-product .tc-extra-product-options .ags-check-option .tm-epo-reset-radio {
	display: none !important;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option ul.tmcp-ul-wrap {
	grid-template-columns: minmax(0, 1fr);
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label {
	position: relative;
	display: block;
	min-height: 62px;
	padding: 20px 26px 20px 65px;
	border-radius: 100px;
	background: var(--ags-paper);
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
}
.single-product .tc-extra-product-options .ags-check-option .tc-label-inner,
.single-product .tc-extra-product-options .ags-check-option .tc-label-text {
	text-align: left !important;
}
.single-product .tc-extra-product-options .ags-check-option .tm-epo-field-label::before {
	content: "";
	position: absolute;
	top: calc(50% - 15px);
	left: 16.5px;
	box-sizing: border-box;
	width: 30px;
	height: 30px;
	border: 2px solid rgba(37, 37, 37, 0.36);
	border-radius: 50%;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option li.tc-active .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label:has(input:checked) {
	border-color: var(--ags-ink);
	background: var(--ags-paper);
	color: var(--ags-ink);
}
.single-product .tc-extra-product-options .ags-check-option li.tc-active .tm-epo-field-label::before,
.single-product .tc-extra-product-options .ags-check-option .tm-epo-field-label:has(input:checked)::before {
	border-color: var(--ags-ink);
	background: var(--ags-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}

@media (max-width: 760px) {
	.single-product form.cart .ags-qty__label {
		font-size: 26px;
	}
	.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label {
		padding-right: 18px;
		border-radius: 24px;
		font-size: 15px;
	}
}

/* Option rows never shrink when the plugin adds its (hidden) clear button to a chosen
   option: no flex gap, and the clear button stays hidden. */
.single-product .tc-extra-product-options li.tmcp-field-wrap {
	gap: 0 !important;
}
.single-product .tc-extra-product-options li.tmcp-field-wrap > .tmcp-field-wrap-inner {
	flex: 1 1 100%;
}
.single-product .tc-extra-product-options li.tmcp-field-wrap > .tm-epo-reset-radio {
	display: none !important;
}

/* Tighter spacing: section titles to their options, total to the button. */
.single-product .tc-extra-product-options .tc-epo-label,
.single-product form.cart .ags-qty {
	margin-bottom: 14px !important;
}
.single-product form.cart .ags-qty {
	gap: 14px;
}
.single-product .tc-totals-form .tc-epo-totals {
	padding: 4px 0 0 !important;
}
.single-product .tc-totals-form dd.tm-final-totals,
.single-product .tc-totals-form dd.tm-final-totals .price {
	margin: 0 !important;
	padding: 0 !important;
}
.single-product form.cart .single_add_to_cart_button {
	margin-top: -6px !important;
}

/* Product video: full column width, 16:9. */
.ags-video {
	position: relative;
	margin-bottom: 20px;
	aspect-ratio: 16 / 9;
	background: #e6e6e6;
}
.ags-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Single-choice groups with long labels: one option per row, text left-aligned. */
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows ul.tmcp-ul-wrap {
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tm-epo-field-label {
	justify-content: flex-start;
	min-height: 58px;
	padding: 14px 28px;
	border-radius: 29px;
	text-align: left;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tc-label-inner,
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tc-label-text {
	text-align: left !important;
}
.single-product .tc-extra-product-options .cpf-type-radio .tc-label-text abbr {
	text-decoration: none;
}
.single-product .tc-extra-product-options .tc-label-text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Option text with the help (?) icon inline after it, in every layout. */
.single-product .tc-extra-product-options .cpf-type-radio .tc-label-inner {
	display: block !important;
	width: 100%;
}
.single-product .tc-extra-product-options .cpf-type-radio .tc-label-text {
	display: inline !important;
	width: auto !important;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tc-label-inner {
	text-align: left !important;
}
/* Help icons: always dark grey, also on a chosen (dark) option. */
.single-product .tc-extra-product-options .tc-tooltip,
.single-product .tc-extra-product-options .tm-tooltip {
	display: inline-block;
	margin-left: 6px;
	border-radius: 50%;
	color: #5a5a5a !important;
	line-height: 1;
	vertical-align: -0.08em;
	opacity: 1 !important;
}
.single-product .tc-extra-product-options li.tc-active .tc-tooltip,
.single-product .tc-extra-product-options .tm-epo-field-label:has(input:checked) .tc-tooltip {
	background: #fff;
}

/* Two per row when labels need it. */
.single-product .tc-extra-product-options .cpf-type-radio.ags-cols-2 ul.tmcp-ul-wrap {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Yes/no question shown as one option to tick. */
.single-product .tc-extra-product-options .ags-yesno li.ags-yesno__no {
	display: none !important;
}

/* Preview of sections that appear once a size is chosen. */
.ags-ghost {
	flex: 0 0 100%;
	width: 100%;
	margin: 0 0 40px;
}
.ags-ghost__title {
	margin: 0 0 6px !important;
	color: var(--ags-ink);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.5px;
}
.ags-ghost__hint {
	margin: 0 0 14px !important;
	color: var(--ags-ink);
	font-size: 15px;
	font-style: italic;
}
.ags-ghost__options {
	opacity: 0.55;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ags-ghost__options li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 8px 14px;
	border: 2px dashed rgba(37, 37, 37, 0.45);
	border-radius: 100px;
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.15;
	text-align: center;
}
.ags-ghost__options--rows {
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}
.ags-ghost__options--rows li {
	justify-content: flex-start;
	padding-left: 28px;
	text-align: left;
}

/* Review: label above value, items separated by thin lines. */
.ags-order-review__list {
	display: block !important;
	margin: 0;
}
.ags-order-review__item {
	padding: 10px 0;
	border-top: 1px solid rgba(37, 37, 37, 0.12);
}
.ags-order-review__item:first-child {
	padding-top: 4px;
	border-top: 0;
}
.ags-order-review__item:last-child {
	padding-bottom: 0;
}
.ags-order-review__list dt {
	margin: 0 0 2px;
	color: rgba(37, 37, 37, 0.65);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.ags-order-review__list dd {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -0.3px;
}

@media (max-width: 760px) {
	.ags-ghost__title {
		font-size: 26px;
	}
	.ags-ghost__options li {
		min-height: 50px;
		font-size: 15px;
	}
	.ags-order-review__list dd {
		font-size: 16px;
	}
}
@media (max-width: 380px) {
	.ags-ghost__options {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Per-option quantities */
.single-product .tc-extra-product-options .ags-no-option-qty .tm-quantity {
	display: none !important;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty ul.tmcp-ul-wrap {
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tm-epo-field-label {
	justify-content: flex-start;
	padding: 14px 28px;
	border-radius: 29px;
	text-align: left;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tc-label-inner {
	text-align: left !important;
}
.single-product .tc-extra-product-options li.ags-option-qty {
	position: relative;
}
.ags-option-qty__control {
	display: inline-flex;
	align-items: stretch;
	border: 1.5px solid rgba(37, 37, 37, 0.45);
	border-radius: 100px;
	background: #fff;
	overflow: hidden;
}
.single-product .ags-option-qty__control .ags-qty__step {
	width: 36px;
	min-height: 36px;
	font-size: 20px;
}
.single-product .tc-extra-product-options .ags-option-qty__control input.tm-qty {
	width: 44px !important;
	min-height: 36px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	box-shadow: none !important;
	color: var(--ags-ink);
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}
.ags-option-qty__control input::-webkit-outer-spin-button,
.ags-option-qty__control input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* Dropdowns look like dropdowns. */
.single-product .tc-extra-product-options select {
	padding-right: 52px !important;
	appearance: none;
	-webkit-appearance: none;
	background: var(--ags-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23252525' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 22px center / 13px !important;
	font-weight: 600;
	cursor: pointer;
}
.single-product .tc-extra-product-options select:hover,
.single-product .tc-extra-product-options select:focus {
	border-color: var(--ags-ink) !important;
	outline: none;
}
.single-product .tc-extra-product-options .cpf-type-select .tmcp-field-wrap-inner,
.single-product .tc-extra-product-options .cpf-type-select .tm-epo-field-label {
	display: flex !important;
	align-items: center;
	gap: 16px;
}
.single-product .tc-extra-product-options .cpf-type-select select {
	flex: 1 1 auto;
	min-width: 0;
}
.single-product .tc-extra-product-options .cpf-type-select .tc-price-wrap {
	flex-shrink: 0;
	font-size: 18px;
	font-weight: 700;
}

@media (max-width: 760px) {
	.single-product .ags-option-qty__control .ags-qty__step {
		width: 32px;
	}
	.single-product .tc-extra-product-options .ags-option-qty__control input.tm-qty {
		width: 36px !important;
	}
}

/* Untitled single-option groups (e.g. mix & match designs) read as one list. */
.single-product .tc-extra-product-options .cpf-element.ags-check-option--untitled {
	margin-bottom: 10px;
}
.single-product .tc-extra-product-options .cpf-element.ags-check-option--untitled .tc-epo-label {
	display: none !important;
}
/* Tick rows keep room for the check circle, including rows with a stepper. */
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label {
	padding-left: 65px !important;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option li.tc-active .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label:has(input:checked) {
	border-color: var(--ags-ink);
	background: var(--ags-paper);
	color: var(--ags-ink);
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label::before {
	content: "";
	position: absolute;
	top: calc(50% - 15px);
	left: 16.5px;
	box-sizing: border-box;
	width: 30px;
	height: 30px;
	border: 2px solid rgba(37, 37, 37, 0.36);
	border-radius: 50%;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option li.tc-active .tm-epo-field-label::before,
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label:has(input:checked)::before {
	border-color: var(--ags-ink);
	background: var(--ags-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label {
	padding-right: 18px !important;
}
@media (max-width: 760px) {
	.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label {
		padding-left: 58px !important;
		border-radius: 24px;
		font-size: 15px;
	}
}
/* Vertically centre the text in option rows. */
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tm-epo-field-label {
	display: flex !important;
	align-items: center;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tc-label-wrap,
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tc-label-wrap,
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tc-label-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

/* Prices are inside the dropdown, so the separate price beside it is hidden. */
.single-product .tc-extra-product-options .cpf-type-select.ags-select-priced .tc-price-wrap {
	display: none !important;
}

/* Number fields (e.g. additional magnets): label, compact stepper, line price beside it. */
.single-product .tc-extra-product-options .ags-number-field .tm-description {
	margin: 0 0 12px;
	padding: 0;
	color: var(--ags-ink);
	font-size: 18px;
	font-weight: 600;
}
.single-product .tc-extra-product-options .ags-number-field .tm-description p {
	margin: 0;
}
.single-product .tc-extra-product-options .ags-number-field .tmcp-field-wrap-inner {
	display: flex !important;
	align-items: center;
	gap: 22px;
}
.single-product .tc-extra-product-options .ags-number-field .tm-epo-field-label {
	flex: 0 0 auto;
	width: auto !important;
	padding: 0 !important;
	border: 0 !important;
}
.single-product .tc-extra-product-options .ags-number-field__control {
	border-width: 2px;
	border-color: rgba(37, 37, 37, 0.5);
}
.single-product .tc-extra-product-options .ags-number-field__control:focus-within {
	border-color: var(--ags-ink);
}
.single-product .tc-extra-product-options .ags-number-field__control .ags-qty__step {
	width: 46px;
	min-height: 46px;
	font-size: 22px;
}
.single-product .tc-extra-product-options .ags-number-field__control input[type="number"] {
	width: 64px !important;
	min-height: 46px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 18px;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}
.single-product .tc-extra-product-options .ags-number-field__control input::-webkit-outer-spin-button,
.single-product .tc-extra-product-options .ags-number-field__control input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
.single-product .tc-extra-product-options .ags-number-field .tc-price-wrap {
	flex: 0 0 auto;
	min-width: 96px;
	font-size: 18px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

/* Previews match the real groups' size exactly, so swapping them moves nothing. */
.ags-ghost {
	cursor: pointer;
}
.ags-ghost__title {
	margin: 0 0 var(--ags-ghost-gap, 14px) !important;
}
.ags-ghost__options--rows {
	gap: 10px;
}
.ags-ghost__options--rows li {
	min-height: 62px;
	padding: 20px 26px 20px 65px;
	line-height: 1;
}

.ags-ghost__title:has(+ .ags-ghost__description) {
	margin-bottom: 8px !important;
}
.single-product .tc-extra-product-options .tc-epo-label:has(> .ags-availability-note) {
	display: block !important;
}
.ags-availability-note {
	margin: 8px 0 0 !important;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--ags-ink);
}
.ags-ghost__description {
	margin: 0 0 var(--ags-ghost-gap, 14px) !important;
	font-size: 16px;
	line-height: 1.5;
	color: var(--ags-ink);
}
.ags-ghost__options--rows li {
	position: relative;
}
.ags-ghost__options--rows li::before {
	content: '';
	display: block !important;
	position: absolute;
	left: 16.5px;
	top: 50%;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	box-sizing: border-box;
	border: 2px solid rgba(37, 37, 37, 0.45);
	border-radius: 50%;
}

/* Still to choose: shown first in the summary; Add to cart looks unavailable. */
.ags-order-review__missing dt {
	color: var(--ags-orange-dark) !important;
}
.ags-order-review__missing dd {
	color: var(--ags-ink);
}
.single-product form.cart .single_add_to_cart_button.ags-incomplete,
.single-product form.cart .single_add_to_cart_button.ags-incomplete:hover {
	border-color: rgba(37, 37, 37, 0.25);
	background: rgba(37, 37, 37, 0.25);
	color: #fff;
	cursor: not-allowed;
}
@keyframes ags-needs-choice {
	0%, 100% { box-shadow: 0 0 0 0 rgba(239, 122, 8, 0); }
	30% { box-shadow: 0 0 0 10px rgba(239, 122, 8, 0.25); }
}
.single-product .tc-extra-product-options .cpf-element.ags-needs-choice {
	border-radius: 18px;
	animation: ags-needs-choice 1.2s ease 2;
}

@media (max-width: 760px) {
	.ags-ghost {
		margin-bottom: 30px;
	}
}

/* A stray line break printed into the summary adds space above the title. */
.single-product .summary > br {
	display: none;
}
@media (max-width: 760px) {
	.single-product #primary {
		padding-top: 24px !important;
	}
	.single-product div.product {
		row-gap: 20px;
	}
	.single-product .summary .product_title {
		margin-bottom: -6px !important;
	}
}

/* Rows with a count: name, then the stepper, then the price, in one line. */
.single-product .tc-extra-product-options li.ags-option-qty .tc-label-inner {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: center;
	gap: 14px;
	text-align: left !important;
}
.single-product .tc-extra-product-options li.ags-option-qty .tc-label-text {
	flex: 1 1 auto;
	min-width: 0;
	padding-right: 0 !important;
}
.single-product .tc-extra-product-options li.ags-option-qty .tm-quantity {
	order: 2;
	position: static !important;
	display: block !important;
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}
.single-product .tc-extra-product-options li.ags-option-qty .tc-price-wrap {
	order: 3;
	flex: 0 0 auto;
	min-width: 0;
	margin: 0;
	white-space: nowrap;
}
.single-product .tc-extra-product-options li.ags-option-qty .tm-epo-field-label {
	padding-right: 18px !important;
}
/* Per-print add-ons have no count of their own. */
.single-product .tc-extra-product-options li.ags-per-item .tm-quantity,
.single-product .tc-extra-product-options .ags-hidden-note {
	display: none !important;
}
@media (max-width: 760px) {
	.single-product .tc-extra-product-options li.ags-option-qty .tc-label-inner {
		flex-wrap: wrap;
		row-gap: 8px;
	}
	.single-product .tc-extra-product-options li.ags-option-qty .tc-label-text {
		flex-basis: 100%;
	}
}

/* Production time: two wide pills, days (and rush cost) on a second line, link below. */
.single-product .tc-extra-product-options .cpf-type-radio.ags-turnaround ul.tmcp-ul-wrap {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.single-product .tc-extra-product-options .ags-turnaround .tm-epo-field-label {
	min-height: 74px;
	padding: 12px 18px;
}
.single-product .tc-extra-product-options .ags-turnaround .tc-label-inner {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}
.single-product .tc-extra-product-options .ags-turnaround .ags-turnaround__sub {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 8px;
	font-size: 14px;
	font-weight: 500;
	opacity: 0.85;
}
.single-product .tc-extra-product-options .ags-turnaround .tc-price-wrap,
.single-product .tc-extra-product-options .ags-turnaround .tc-price-wrap .tc-price {
	display: inline !important;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
}
.single-product .tc-extra-product-options .ags-turnaround .tc-price-wrap.tm-hidden,
.single-product .tc-extra-product-options .ags-turnaround .tc-price.tm-hidden {
	display: none !important;
}
.single-product .tc-extra-product-options .ags-turnaround .tc-price-wrap::before {
	content: "+";
}
.single-product .tc-extra-product-options .ags-turnaround__note {
	margin: 12px 0 0 !important;
	padding: 0 !important;
	color: var(--ags-ink);
	font-size: 16px;
}
.single-product .tc-extra-product-options .ags-turnaround__note a {
	color: var(--ags-ink);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--ags-orange);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
/* Stack the turnaround pills whenever the column is too narrow for two side by side. */
.single-product .summary,
.single-product form.cart .tc-extra-product-options {
	container-type: inline-size;
}
@container (max-width: 420px) {
	.single-product .tc-extra-product-options .cpf-type-radio.ags-turnaround ul.tmcp-ul-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (max-width: 520px) {
	.single-product .tc-extra-product-options .cpf-type-radio.ags-turnaround ul.tmcp-ul-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
	.single-product .tc-extra-product-options .ags-turnaround .tm-epo-field-label {
		min-height: 66px;
		border-radius: 33px;
	}
}
/* Turnaround price takes the pill's text colour (white when chosen). */
.single-product .tc-extra-product-options .ags-turnaround .tc-price-wrap,
.single-product .tc-extra-product-options .ags-turnaround .tc-price-wrap * {
	color: inherit !important;
}
/* Turnaround pills share the taller pill's height. */
.single-product .tc-extra-product-options .cpf-type-radio.ags-turnaround ul.tmcp-ul-wrap {
	align-items: stretch;
}
.single-product .tc-extra-product-options .ags-turnaround li.tmcp-field-wrap,
.single-product .tc-extra-product-options .ags-turnaround .tmcp-field-wrap-inner,
.single-product .tc-extra-product-options .ags-turnaround .tc-field-label-wrap {
	display: flex !important;
	height: 100%;
}
.single-product .tc-extra-product-options .ags-turnaround .tm-epo-field-label {
	display: flex !important;
	align-items: center;
	justify-content: center;
	height: 100%;
}
.single-product .tc-extra-product-options .cpf-type-radio.ags-turnaround ul.tmcp-ul-wrap {
	grid-auto-rows: 1fr;
}

/* "of 20" beside a partial add-on count. */
.single-product .tc-extra-product-options li.ags-partial .tm-quantity {
	display: flex !important;
	align-items: center;
	gap: 8px;
}
.ags-partial__of {
	color: rgba(37, 37, 37, 0.7);
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
}
/* Unticked partial add-ons show no count until ticked. */
.single-product .tc-extra-product-options li.ags-partial:not(:has(input[type="checkbox"]:checked)) .tm-quantity,
.single-product .tc-extra-product-options li.ags-partial:not(:has(input[type="checkbox"]:checked)) .tc-price-wrap {
	visibility: hidden;
}
/* Text links in the summary (description, the "File Upload Page" note added under the
   form) look like links: underlined in the site's orange, ink text. */
.single-product .summary .woocommerce-product-details__short-description a,
.single-product .summary > p a {
	color: var(--ags-ink);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--ags-orange);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}
.single-product .summary .woocommerce-product-details__short-description a:hover,
.single-product .summary > p a:hover {
	color: var(--ags-orange-dark);
}
.single-product .summary > .product_meta ~ p {
	margin: 8px 0 0;
	font-size: 16px;
	line-height: 1.5;
}
/* Products without related products still end with space above the footer. */
.single-product div.product:not(:has(section.related)) {
	padding-bottom: 105px;
}
@media (max-width: 760px) {
	.single-product div.product:not(:has(section.related)) {
		padding-bottom: 56px;
	}
}
@media (max-width: 760px) {
	.single-product section.related {
		padding-bottom: 56px !important;
	}
}

/* ------------------------------------------------------------------
   Option shapes, by kind (not by height, so nothing changes shape when
   an option is ticked or the window is resized):
   - choice buttons (sizes, quantities, counters): capsules
   - rows (tick options, long-text choices, rows with a counter,
     turnaround): rounded rectangles with one corner size, matching the
     message box and the "still to choose" outline.
   ------------------------------------------------------------------ */
.single-product .tc-extra-product-options {
	--ags-row-radius: 18px;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tm-epo-field-label,
.single-product .tc-extra-product-options .ags-turnaround .tm-epo-field-label,
.ags-ghost__options--rows li {
	border-radius: var(--ags-row-radius) !important;
}

/* Add-on rows with a counter: the name on top; the counter (and "of 14") on the left and the price
   on the right below it. Same layout at every width, so nothing is squeezed or wanders. */
.single-product .tc-extra-product-options .cpf-type-checkbox li.ags-option-qty .tc-label-inner {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"name name name"
		"qty  .    price";
	align-items: center;
	gap: 10px 14px;
	text-align: left !important;
}
.single-product .tc-extra-product-options .cpf-type-checkbox li.ags-option-qty .tc-label-text {
	grid-area: name;
	min-width: 0;
	padding-right: 0 !important;
}
.single-product .tc-extra-product-options .cpf-type-checkbox li.ags-option-qty .tm-quantity {
	grid-area: qty;
}
.single-product .tc-extra-product-options .cpf-type-checkbox li.ags-option-qty .tc-price-wrap {
	grid-area: price;
	justify-self: end;
}
.single-product .tc-extra-product-options .cpf-type-checkbox li.ags-option-qty .tm-epo-field-label {
	padding-top: 14px !important;
	padding-bottom: 14px !important;
}
/* Choice rows with a counter (colours, sign designs): name and counter share the line; the
   counter moves below only if the name needs the room (the name is never squeezed). */
.single-product .tc-extra-product-options .cpf-type-radio li.ags-option-qty .tc-label-inner {
	flex-wrap: wrap;
	row-gap: 8px;
}
.single-product .tc-extra-product-options .cpf-type-radio li.ags-option-qty .tc-label-text {
	min-width: min(100%, 9em);
}

/* Unticked add-ons with a count are a plain one-line row; the counter appears when ticked. */
.single-product .tc-extra-product-options li.ags-partial:not(:has(input[type="checkbox"]:checked)) .tm-quantity,
.single-product .tc-extra-product-options li.ags-partial:not(:has(input[type="checkbox"]:checked)) .tc-price-wrap {
	display: none !important;
}
.single-product .tc-extra-product-options li.ags-partial:not(:has(input[type="checkbox"]:checked)) .tc-label-inner {
	grid-template-areas: "name name name";
}

/* The product form always spans its column (on phones it is a flex item and otherwise shrank
   to its content, so the options changed width as counters appeared and disappeared). */
.single-product form.cart {
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
}
/* Variable products (a WooCommerce size choice plus the order form) wrap the options in an
   extra box inside the form; it spans the column too. */
.single-product form.variations_form > div,
.single-product form.variations_form .single_variation_wrap,
.single-product form.variations_form .variations_button {
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
}

/* Row content is always centred vertically, whatever the row's minimum height. */
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tm-epo-field-label,
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tm-epo-field-label {
	display: flex !important;
	align-items: center;
}
.single-product .tc-extra-product-options .cpf-type-checkbox .tm-epo-field-label > .tc-label-wrap,
.single-product .tc-extra-product-options .cpf-type-radio.ags-check-option .tm-epo-field-label > .tc-label-wrap,
.single-product .tc-extra-product-options .cpf-type-radio.ags-options--rows .tm-epo-field-label > .tc-label-wrap,
.single-product .tc-extra-product-options .cpf-type-radio.ags-has-option-qty .tm-epo-field-label > .tc-label-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

/* Add-ons counted per item: no counter; ticking covers every item. */
.single-product .tc-extra-product-options li.ags-partial .tm-quantity,
.single-product .tc-extra-product-options li.ags-partial .ags-partial__of {
	display: none !important;
}
.single-product section.related ul.products li.product img.ags-photo-whole {
	object-fit: contain;
}

/* Options counted per print: one print's price, set by the theme (the plugin's own figure
   is for the whole count). The note in the name ("+10¢ per print") would repeat it. */
.single-product .tc-extra-product-options li.ags-unit .tc-price-wrap .tc-price,
.single-product .tc-extra-product-options li.ags-unit .tc-price-wrap .after-amount,
.single-product .tc-extra-product-options li.ags-unit .price-desc {
	display: none !important;
}
.single-product .tc-extra-product-options .ags-unit-price {
	white-space: nowrap;
}
.single-product .ags-qty__step:disabled,
.single-product .ags-qty__step:disabled:hover {
	background: transparent;
	opacity: 0.3;
	cursor: default;
}
