/* Printbed on top of WooCommerce's own styles. */

.printbed-shop {
	padding-block: 40px 104px;
}

/* Breadcrumbs and archive header */

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 24px;
	color: var(--printbed-nozzle);
	font-size: 14px;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--printbed-nozzle);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--printbed-black);
}

.printbed-crumb-sep {
	margin: 0 8px;
}

.woocommerce-products-header {
	margin-bottom: 32px;
}

.woocommerce-products-header__title.page-title {
	margin: 0;
	font-family: var(--printbed-font-head);
	font-size: clamp(36px, 4vw, 52px);
	font-weight: 600;
	line-height: 1.05;
}

.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
	max-width: 40em;
	margin-top: 12px;
	color: var(--printbed-nozzle);
	font-size: 19px;
}

.woocommerce-products-header .term-description p {
	margin: 0;
}

.woocommerce .woocommerce-ordering {
	margin: 0 0 32px;
}

.woocommerce .woocommerce-ordering select,
.woocommerce div.product form.cart .variations select {
	min-height: 48px;
	padding: 0 40px 0 14px;
	border: 1px solid var(--printbed-input);
	border-radius: 0;
	background-color: var(--printbed-white);
	color: var(--printbed-black);
	font: inherit;
	font-size: 15px;
}

/* Product grid */

.woocommerce ul.products {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(max(150px, calc((100% - 72px) / 4)), 1fr));
	gap: 40px clamp(16px, 2.5vw, 24px);
	margin: 0 0 48px;
	padding: 0;
}

/* Three products per row on tablets, two on phones. */
@media (max-width: 1023px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	}
}

@media (max-width: 560px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 16px;
	}
}

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

.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.woocommerce ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	padding: 0;
	float: none !important;
	text-align: left;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: inherit;
	text-decoration: none;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0 0 10px;
	border-radius: 4px;
	background: var(--printbed-bed);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
	margin: 0;
	padding: 0;
	font-family: var(--printbed-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
}

.printbed-loop-shop {
	color: var(--printbed-nozzle);
	font-size: 14px;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 4px 0 0;
	color: var(--printbed-black);
	font-size: 16px;
	font-weight: 600;
}

.woocommerce ul.products li.product .price del,
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color: var(--printbed-nozzle);
	font-weight: 400;
	opacity: 1;
}

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

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	z-index: 9;
	top: 10px;
	left: 10px;
	right: auto;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 6px 12px;
	border-radius: 0;
	background: var(--printbed-accent);
	color: var(--printbed-on-accent);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}

/* Buttons */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 26px;
	border: 0;
	border-radius: 0;
	background: var(--printbed-black);
	color: var(--printbed-white);
	font-family: var(--printbed-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	clip-path: var(--printbed-chamfer);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--printbed-nozzle);
	color: var(--printbed-white);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce button.single_add_to_cart_button,
.woocommerce #place_order,
.wc-block-components-button:not(.is-link) {
	background: var(--printbed-accent);
	color: var(--printbed-on-accent);
	border: 0;
	border-radius: 0;
	clip-path: var(--printbed-chamfer);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce button.single_add_to_cart_button:hover,
.woocommerce #place_order:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--printbed-black);
	color: var(--printbed-white);
}

.wc-block-components-button:not(.is-link) {
	min-height: 48px;
	font-weight: 600;
}

.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.wc-block-components-button:focus-visible {
	clip-path: none;
	outline: 2px solid var(--printbed-black);
	outline-offset: 3px;
}

.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled {
	opacity: 0.5;
}

/* Product page */

.woocommerce div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px 64px;
	align-items: start;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
}

@media (max-width: 760px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}
}

.woocommerce div.product div.images img {
	border-radius: 4px;
	background: var(--printbed-bed);
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin-top: 12px;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
}

.woocommerce div.product .product_title {
	margin: 0 0 16px;
	font-family: var(--printbed-font-head);
	font-size: clamp(32px, 3.6vw, 48px);
	font-weight: 600;
	line-height: 1.08;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 24px;
	color: var(--printbed-black);
	font-size: 24px;
	font-weight: 600;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	margin-bottom: 24px;
	color: var(--printbed-nozzle);
	font-size: 17px;
}

.woocommerce div.product form.cart {
	margin-bottom: 24px;
}

.woocommerce div.product form.cart .variations {
	margin-bottom: 16px;
	border: 0;
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
	display: block;
	padding: 0;
	line-height: 1.4;
	text-align: left;
}

.woocommerce div.product form.cart .variations th label {
	display: block;
	margin-bottom: 6px;
	font-size: 15px;
	font-weight: 500;
}

.woocommerce div.product form.cart .variations td {
	margin-bottom: 16px;
}

.woocommerce div.product form.cart .variations select {
	width: 100%;
	max-width: 360px;
	margin-right: 0;
}

.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 8px;
	color: var(--printbed-nozzle);
	font-size: 14px;
}

.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart .button {
	float: none;
	margin: 0;
}

.woocommerce .quantity .qty {
	width: 4.5em;
	min-height: 48px;
	border: 1px solid var(--printbed-input);
	border-radius: 0;
	font: inherit;
	font-size: 16px;
	text-align: center;
}

.woocommerce div.product .woocommerce-variation-price {
	margin-bottom: 12px;
}

.woocommerce div.product .stock {
	color: var(--printbed-nozzle);
	font-size: 15px;
}

.woocommerce div.product .woocommerce-tabs {
	margin-top: 40px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	list-style: none;
	display: flex;
	gap: 0 28px;
	margin: 0 0 24px;
	padding: 0;
	overflow-x: auto;
	border-bottom: 1px solid var(--printbed-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
	display: none;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	margin-bottom: -1px;
	padding: 0;
	border-bottom: 2px solid transparent;
	color: var(--printbed-nozzle);
	font-weight: 500;
	white-space: nowrap;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--printbed-black);
	color: var(--printbed-black);
}

/* Phones: the tabs stack into a list instead of scrolling sideways. */
@media (max-width: 560px) {
	.woocommerce div.product .woocommerce-tabs ul.tabs {
		flex-direction: column;
		gap: 0;
		overflow-x: visible;
		border-bottom: 0;
		border-top: 1px solid var(--printbed-line);
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		display: flex;
		margin-bottom: 0;
		border-bottom: 1px solid var(--printbed-line);
		white-space: normal;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
		border-bottom: 2px solid var(--printbed-black);
	}
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 760px;
	margin: 0;
}

.woocommerce table.shop_attributes {
	border: 0;
	border-top: 1px solid var(--printbed-line);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 12px 16px 12px 0;
	border: 0;
	border-bottom: 1px solid var(--printbed-line);
	background: none !important;
	font-style: normal;
	text-align: left;
}

.woocommerce table.shop_attributes th {
	width: 180px;
	font-weight: 500;
}

.woocommerce table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

.woocommerce div.product .related,
.woocommerce div.product .upsells {
	margin-top: 32px;
}

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	margin: 0 0 32px;
	font-size: 32px;
}

.woocommerce .star-rating span::before,
.woocommerce p.stars a::before,
.woocommerce .star-rating::before {
	color: var(--printbed-black);
}

/* Notices */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	margin: 0 0 24px;
	border: 1px solid var(--printbed-black);
	border-radius: 0;
	background: var(--printbed-white);
	color: var(--printbed-black);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--printbed-black);
}

.woocommerce-error {
	border-color: var(--printbed-error);
}

.woocommerce-error::before {
	color: var(--printbed-error);
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
}

.woocommerce-store-notice,
p.demo_store {
	background: var(--printbed-black);
	color: var(--printbed-white);
	font-size: 15px;
}

/* Forms: account, classic checkout */

.woocommerce form .form-row label {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select {
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--printbed-input);
	border-radius: 0;
	background: var(--printbed-white);
	color: var(--printbed-black);
	font: inherit;
	font-size: 16px;
	line-height: 1.4;
}

.woocommerce form .form-row textarea {
	min-height: 120px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--printbed-black);
	outline: 2px solid var(--printbed-black);
	outline-offset: 0;
}

.select2-container--default .select2-selection--single {
	height: 48px;
	border: 1px solid var(--printbed-input);
	border-radius: 0;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-left: 14px;
	line-height: 46px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon {
	margin: 0;
	padding: 24px;
	border: 1px solid var(--printbed-line);
	border-radius: 0;
}

/* Bigger tap targets for "Show password" and "Remember me". */
.woocommerce form .show-password-input {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	right: 2px;
}

.woocommerce form .form-row .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
}

.woocommerce form .form-row input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--printbed-black);
}

@media (max-width: 560px) {
	.woocommerce form.login,
	.woocommerce form.register,
	.woocommerce form.checkout_coupon {
		padding: 20px 16px;
	}

	/* Log in and Register span the width, with "Remember me" on its own line above. */
	.woocommerce form.login .form-row:has(.woocommerce-form-login__submit) {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}

	.woocommerce form .woocommerce-form-login__submit,
	.woocommerce form .woocommerce-form-register__submit {
		width: 100%;
		margin: 0;
	}
}

/* Tables: classic cart and orders */

.woocommerce table.shop_table {
	border: 1px solid var(--printbed-line);
	border-radius: 0;
	border-collapse: collapse;
}

.woocommerce table.shop_table th {
	font-weight: 600;
}

.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
	border-top: 1px solid var(--printbed-line);
	padding: 14px 16px;
}

.woocommerce-cart table.cart img {
	width: 72px;
	border-radius: 4px;
	background: var(--printbed-bed);
}

.woocommerce a.remove {
	color: var(--printbed-black) !important;
	font-weight: 400;
}

.woocommerce a.remove:hover {
	background: var(--printbed-black);
	color: var(--printbed-white) !important;
}

/* Cart and checkout blocks */

.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-blocks-components-select .wc-blocks-components-select__select {
	border-color: var(--printbed-input);
	border-radius: 0;
}

.wc-block-components-product-name {
	font-weight: 500;
	text-decoration: none;
}

.wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 600;
}

.wc-block-cart__submit-container,
.wc-block-components-checkout-place-order-button {
	width: 100%;
}

/* My account */

.woocommerce-account.logged-in .printbed-prose > .woocommerce {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 32px 56px;
	align-items: start;
}

/* Messages and anything else span the full width; the menu and the page get their own columns. */
.woocommerce-account.logged-in .printbed-prose > .woocommerce > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce-account.logged-in .printbed-prose > .woocommerce > .woocommerce-MyAccount-navigation {
	grid-column: 1;
}

.woocommerce-account.logged-in .printbed-prose > .woocommerce > .woocommerce-MyAccount-content {
	grid-column: 2;
}

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

.woocommerce-account .woocommerce-notices-wrapper > * {
	margin-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	width: auto;
	float: none;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--printbed-line);
}

.woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: 1px solid var(--printbed-line);
}

.woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	min-height: 48px;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation li.is-active a {
	font-weight: 600;
}

@media (max-width: 760px) {
	.woocommerce-account.logged-in .printbed-prose > .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.woocommerce-account.logged-in .printbed-prose > .woocommerce > .woocommerce-MyAccount-navigation,
	.woocommerce-account.logged-in .printbed-prose > .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 1 / -1;
	}
}

.woocommerce .col2-set,
.woocommerce-page .col2-set,
.woocommerce .u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 32px 48px;
	width: 100%;
}

.woocommerce .col2-set::before,
.woocommerce .col2-set::after {
	content: none;
	display: none;
}

.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
	width: auto;
	float: none;
}

/* Pagination */

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	border: 0;
}

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

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--printbed-line);
	font-size: 15px;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--printbed-black);
	border-color: var(--printbed-black);
	color: var(--printbed-white);
}

/* Launch Campaigns plugin.
   Its colors and fonts come from the theme, so the Customizer accent applies there too.
   Set on body so they win over the plugin's own settings, which sit on :root. */

body {
	--lc-ink: var(--printbed-black);
	--lc-paper: var(--printbed-white);
	--lc-graphite: var(--printbed-nozzle);
	--lc-rule: var(--printbed-line);
	--lc-plate: var(--printbed-bed);
	--lc-field: var(--printbed-input);
	--lc-danger: var(--printbed-error);
	--lc-accent: var(--printbed-accent);
	--lc-on-accent: var(--printbed-on-accent);
	--lc-font-display: var(--printbed-font-head);
	--lc-font-body: var(--printbed-font-body);
	--lc-font-button: var(--printbed-font-body);
	--lc-max: var(--printbed-max);
}

body .lc .lc-wrap {
	padding-inline: var(--printbed-pad);
}

/* Buttons match .printbed-button. */
body .lc .lc-btn {
	min-height: 48px;
	padding: 0 26px;
	font-size: 16px;
	line-height: 1.2;
	letter-spacing: 0;
}

body .lc .lc-btn--sm {
	min-height: 44px;
	padding: 0 18px;
	font-size: 15px;
}

body .lc .lc-btn:focus-visible {
	clip-path: none;
	box-shadow: none;
	outline: 2px solid var(--printbed-black);
	outline-offset: 3px;
}

body .lc .lc-btn--outline:focus-visible {
	box-shadow: inset 0 0 0 2px var(--printbed-black);
}

body .lc .lc-closing .lc-btn:focus-visible,
body .lc .lc-dock .lc-btn:focus-visible {
	outline-color: var(--printbed-white);
}

/* The accent marks only things you click, so messages use the theme's notice style. */
body .lc .lc-notice,
body .lc .lc-done {
	padding: 16px 20px;
	border-width: 1px;
	box-shadow: none;
	font-size: 16px;
}

body .lc .lc-notice--success,
body .lc .lc-done {
	background: var(--printbed-bed);
}

body .lc .lc-notice--error {
	color: var(--printbed-error);
}

/* Fields match the Print Requests forms. */
body .lc .lc-input:focus {
	outline-offset: 0;
}

body .lc .lc-check {
	gap: 10px;
	font-size: 15px;
}

body .lc .lc-check input {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	accent-color: var(--printbed-black);
}

/* Parametric Configurator: the 3D product page, styled like the rest of the
   shop. The plugin reads its colours and fonts from these variables. */

.pcfg-product .pcfg-theme {
	--pcfg-accent: var(--printbed-accent);
	--pcfg-accent-ink: var(--printbed-on-accent);
	--pcfg-fg: var(--printbed-black);
	--pcfg-muted: var(--printbed-nozzle);
	--pcfg-bg: var(--printbed-white);
	--pcfg-surface: var(--printbed-white);
	--pcfg-border: var(--printbed-line);
	--pcfg-stage: var(--printbed-bed);
	--pcfg-radius: 4px;
	--pcfg-font: var(--printbed-font-body);
	--pcfg-head-font: var(--printbed-font-head);
	--pcfg-warn-bg: #fff6cc;
	--pcfg-warn-fg: var(--printbed-black);
}

/* 3D view and product photos */
.pcfg-product .pcfg-gallery .pcfg-viewer-host,
.pcfg-product .pcfg-photo,
.pcfg-product .pcfg-photo-thumb {
	border-radius: 4px;
	background-color: var(--printbed-bed);
}

.pcfg-product .pcfg-gallery.is-loading .pcfg-viewer-host::after {
	border-top-color: var(--printbed-accent);
}

.pcfg-product .pcfg-viewer-hint {
	margin-top: 12px;
	color: var(--printbed-nozzle);
	font-size: 14px;
}

.pcfg-product .pcfg-photos {
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
}

.pcfg-product .pcfg-photo-thumb {
	color: var(--printbed-black);
	font-family: var(--printbed-font-head);
	font-size: 18px;
}

.pcfg-product .pcfg-photo-thumb[aria-pressed="true"] {
	border-color: var(--printbed-black);
	box-shadow: inset 0 0 0 1px var(--printbed-black);
}

.pcfg-product .pcfg-photo-thumb:focus-visible {
	outline: 2px solid var(--printbed-black);
}

.pcfg-product .pcfg-warning {
	border-radius: 0;
	font-size: 14px;
}

/* Options */
.pcfg-product div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.pcfg-product div.product form.cart .pcfg-product-options {
	flex: 1 0 100%;
	margin: 0 0 12px;
}

.pcfg-product .pcfg-product-options .pcfg-panel {
	border-top-color: var(--printbed-line);
}

.pcfg-product .pcfg-customer .pcfg-group > summary {
	padding: 20px 0;
	font-family: var(--printbed-font-head);
	font-size: 20px;
	font-weight: 600;
}

.pcfg-product .pcfg-customer .pcfg-chev {
	opacity: 1;
}

.pcfg-product .pcfg-customer .pcfg-group-body {
	gap: 22px;
	padding-bottom: 24px;
}

.pcfg-product .pcfg-customer .pcfg-label {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
}

.pcfg-product .pcfg-customer .pcfg-help,
.pcfg-product .pcfg-customer .pcfg-group-help {
	font-size: 14px;
	line-height: 1.5;
}

.pcfg-product .pcfg-customer .pcfg-text-meta,
.pcfg-product .pcfg-customer .pcfg-swatch-name,
.pcfg-product .pcfg-customer .pcfg-swatch-group-name,
.pcfg-product .pcfg-customer .pcfg-unit,
.pcfg-product .pcfg-customer .pcfg-font-name {
	font-size: 13px;
}

.pcfg-product .pcfg-customer .pcfg-swatch-group-name {
	color: var(--printbed-black);
	font-weight: 500;
}

/* Fields look like the shop's other forms */
.pcfg-product .pcfg-panel input[type="number"],
.pcfg-product .pcfg-panel input[type="text"],
.pcfg-product .pcfg-panel textarea,
.pcfg-product .pcfg-panel select {
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--printbed-input);
	border-radius: 0;
	background: var(--printbed-white);
	color: var(--printbed-black);
	font: 16px/1.4 var(--printbed-font-body);
}

.pcfg-product .pcfg-panel textarea {
	min-height: 96px;
}

.pcfg-product .pcfg-num-box input[type="number"] {
	width: 88px;
	padding: 10px;
}

.pcfg-product .pcfg-panel input:focus-visible,
.pcfg-product .pcfg-panel textarea:focus-visible,
.pcfg-product .pcfg-panel select:focus-visible,
.pcfg-product .pcfg-panel button:focus-visible {
	border-color: var(--printbed-black);
	outline: 2px solid var(--printbed-black);
	outline-offset: 0;
}

/* Choices look like the colour list on the material pages */
.pcfg-product .pcfg-seg-btn,
.pcfg-product .pcfg-font {
	min-height: 48px;
	border: 1px solid var(--printbed-line);
	border-radius: 4px;
	background: var(--printbed-white);
	color: var(--printbed-black);
	font-family: var(--printbed-font-body);
	font-size: 15px;
}

.pcfg-product .pcfg-seg-btn:hover,
.pcfg-product .pcfg-font:hover {
	background: var(--printbed-bed);
}

.pcfg-product .pcfg-seg-btn[aria-pressed="true"],
.pcfg-product .pcfg-font[aria-pressed="true"] {
	border-color: var(--printbed-black);
	box-shadow: inset 0 0 0 1px var(--printbed-black);
	background: var(--printbed-white);
}

.pcfg-product .pcfg-file .pcfg-btn {
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid var(--printbed-line);
	border-radius: 4px;
	background: var(--printbed-white);
	color: var(--printbed-black);
	font: 500 15px/1.2 var(--printbed-font-body);
}

.pcfg-product .pcfg-file .pcfg-btn:hover {
	background: var(--printbed-bed);
}

.pcfg-product .pcfg-file:focus-within .pcfg-btn {
	outline: 2px solid var(--printbed-black);
	outline-offset: 0;
}

.pcfg-product .pcfg-file .pcfg-file-name,
.pcfg-product .pcfg-file .pcfg-link {
	font-size: 14px;
}

.pcfg-product .pcfg-swatch {
	width: 36px;
	height: 36px;
	border-color: rgba(0, 0, 0, 0.2);
}

.pcfg-product .pcfg-swatch[aria-pressed="true"] {
	box-shadow: 0 0 0 2px var(--printbed-white), 0 0 0 4px var(--printbed-black);
}

/* Price */
.pcfg-product .pcfg-price-line {
	padding: 20px 0;
	border-top-color: var(--printbed-line);
	font-size: 17px;
}

.pcfg-product .pcfg-price-line strong {
	font-size: 24px;
	font-weight: 600;
}

.pcfg-product .pcfg-mold-note {
	padding: 12px 16px;
	border-left: 4px solid var(--printbed-accent);
	border-radius: 0;
	background: var(--printbed-bed);
	color: var(--printbed-black);
	font-size: 15px;
	line-height: 1.5;
}
