/* ==========================================================================
   Pamela Kay Studio: store pages

   WooCommerce's own stylesheets are switched off (inc/woocommerce.php), so
   everything the shop, product, cart, checkout and account pages need is here.

   1. Shop archive      4. Notices and buttons   7. Account
   2. Product page      5. Cart                  8. Order received
   3. Personalization   6. Checkout
   ========================================================================== */

/* 1. Shop archive
   ========================================================================== */
.pk-shophead {
	padding-block: clamp(2.75rem, 6vw, 4.5rem) 0;
}

.pk-chipnav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.pk-chiplink {
	padding: 0.55rem 1.15rem;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	background: var(--card);
	font-size: 0.875rem;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.pk-chiplink:hover {
	border-color: var(--ink);
}

.pk-chiplink.is-current {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--paper);
}

.pk-shopbody {
	padding-block: 1.5rem clamp(4rem, 8vw, 7rem);
}

.pk-shopbody::after {
	content: "";
	display: table;
	clear: both;
}

.woocommerce-ordering {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 1.75rem;
}

.woocommerce-ordering select,
.pk-store select,
.pk-storepage select {
	padding: 0.6rem 2.4rem 0.6rem 1rem;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	background: var(--card) 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='%2317111a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1rem center / 11px;
	font-size: 0.875rem;
	appearance: none;
	cursor: pointer;
}

.woocommerce-pagination {
	margin-top: 3.5rem;
}

.woocommerce-pagination ul {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-pagination .page-numbers:not(ul) {
	display: grid;
	place-items: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding-inline: 0.75rem;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	text-decoration: none;
}

.woocommerce-pagination .page-numbers.current,
.woocommerce-pagination a.page-numbers:hover {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--paper);
}

.pk-shopcta {
	display: grid;
	justify-items: center;
	gap: 0.75rem;
	margin-top: clamp(3.5rem, 7vw, 6rem);
	padding: clamp(2.25rem, 5vw, 3.5rem) 1.5rem;
	border: 1.5px dashed var(--magenta);
	border-radius: var(--radius);
	background: var(--card);
	text-align: center;
}

.pk-shopcta .pk-script {
	font-size: clamp(2.5rem, 6vw, 3.5rem);
}

.pk-shopcta p:not(.pk-script) {
	margin-bottom: 0.75rem;
	color: var(--muted);
}

.woocommerce-no-products-found {
	padding-block: 2rem;
}

/* 2. Product page
   ========================================================================== */
.single-product .pk-store {
	max-width: calc(var(--wrap) + var(--gutter) * 2);
	margin-inline: auto;
	padding: clamp(1.5rem, 4vw, 3.5rem) var(--gutter) clamp(4rem, 8vw, 7rem);
}

.single-product div.product {
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}

@media (min-width: 900px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	}

	.pk-gallery {
		position: sticky;
		top: 104px;
	}
}

.single-product div.product > .related,
.single-product div.product > .upsells {
	grid-column: 1 / -1;
}

.pk-gallery__stage {
	aspect-ratio: 1;
}

.pk-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
}

.pk-gallery__thumb {
	display: block;
	width: 76px;
	height: 76px;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: var(--radius-sm);
	background: var(--paper-2);
	transition: border-color 0.2s;
}

.pk-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pk-gallery__thumb.is-current,
.pk-gallery__thumb:hover {
	border-color: var(--ink);
}

.summary .pk-kicker {
	margin-bottom: 0.85rem;
	color: var(--magenta);
}

.product_title {
	font-family: var(--font-display);
	font-size: clamp(2rem, 3.8vw, 3.1rem);
	font-weight: 300;
	letter-spacing: -0.025em;
	line-height: 1.05;
	color: var(--ink);
	text-wrap: balance;
}

.summary .price {
	margin-top: 1rem;
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--ink);
}

.summary .price del {
	margin-right: 0.5rem;
	font-size: 1.125rem;
	font-weight: 400;
	color: var(--muted);
}

.summary .price ins {
	text-decoration: none;
}

.woocommerce-product-details__short-description {
	max-width: 52ch;
	margin-top: 1rem;
	color: var(--muted);
}

.onsale {
	display: none;
}

form.cart {
	margin-top: 1.75rem;
}

form.cart:not(.variations_form),
.woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

form.cart > .pk-personalize,
.woocommerce-variation-add-to-cart > .pk-personalize {
	flex: 0 0 100%;
}

/* Variations: WooCommerce prints a table of selects; product.js adds chips beside them. */
table.variations {
	display: block;
	width: 100%;
	margin-bottom: 0.5rem;
	border-collapse: collapse;
}

table.variations tbody,
table.variations tr,
table.variations th,
table.variations td {
	display: block;
	padding: 0;
	text-align: left;
}

table.variations tr + tr {
	margin-top: 1.1rem;
}

table.variations th label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
}

table.variations td.value.is-enhanced select {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.pk-chip.is-unavailable span {
	border-style: dashed;
	color: #b3a6b3;
	text-decoration: line-through;
}

/* A choice with a second line: a size, with its measurements and its price. */
.pk-chip--tall span {
	justify-items: start;
	gap: 0.2rem;
	padding: 0.6rem 1rem 0.65rem;
	border-radius: 16px;
	line-height: 1.1;
}

.pk-chip--tall b {
	font-weight: 500;
}

.pk-chip--tall small {
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	opacity: 0.72;
}

/* After an order paid by PayPal or Venmo: the one step left. */
.pk-paynow {
	margin-block: 0 2.5rem;
	padding: clamp(1.35rem, 3.5vw, 2rem);
	border: 1.5px solid var(--magenta);
	border-radius: var(--radius);
	background: color-mix(in srgb, var(--magenta) 5%, var(--card));
}

.pk-paynow p:not(.pk-eyebrow) {
	max-width: 46ch;
	margin-block: 0.6rem 1.4rem;
	color: var(--muted);
}

/* The blanket, drawn live in the chosen yarn. Only where the 3D studio runs. */
.pk-yarnview {
	display: none;
}

.pk-3d .pk-yarnview {
	position: relative;
	display: block;
	height: clamp(220px, 34vw, 300px);
	margin-bottom: 1.5rem;
	overflow: hidden;
	border-radius: 18px;
	background: var(--ink);
}

.pk-yarnview__note {
	position: absolute;
	bottom: 0.8rem;
	left: 50%;
	z-index: 2;
	margin: 0;
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--ink-line);
	border-radius: 999px;
	background: rgba(23, 17, 26, 0.6);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	white-space: nowrap;
	color: rgba(251, 246, 239, 0.85);
	translate: -50% 0;
	pointer-events: none;
}

.pk-yarnview [data-pk-yarn-chosen],
.pk-yarnview.has-yarn [data-pk-yarn-unchosen] {
	display: none;
}

.pk-yarnview.has-yarn [data-pk-yarn-chosen] {
	display: inline;
}

/* Yarn: one round swatch per color, wound in its own shades. */
/* Wrapping, not a grid: a grid that fills its row would hold the page wider than a phone. */
.pk-yarns {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	max-width: 30rem;
}

.pk-yarn {
	position: relative;
	display: block;
	width: 44px;
	height: 44px;
	cursor: pointer;
}

.pk-yarn input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.pk-yarn span {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(23, 17, 26, 0.16), inset 0 -6px 10px rgba(23, 17, 26, 0.18), inset 0 5px 8px rgba(255, 255, 255, 0.28);
	transition: transform 0.2s var(--ease);
}

.pk-yarn:hover span {
	transform: scale(1.08);
}

.pk-yarn input:checked + span {
	outline: 2px solid var(--ink);
	outline-offset: 3px;
}

.pk-yarn input:focus-visible + span {
	outline: 2px solid var(--magenta);
	outline-offset: 3px;
}

.pk-yarns__chosen {
	margin-left: 0.6rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--muted);
}

.pk-chip__dot {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 0.45rem;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(23, 17, 26, 0.2);
	vertical-align: -2px;
}

.pk-chip span:has(.pk-chip__dot) {
	display: inline-flex;
	align-items: center;
}

.reset_variations {
	display: inline-block;
	margin-top: 0.6rem;
	font-size: 0.8125rem;
	color: var(--muted);
}

.reset_variations[style*="hidden"] {
	display: none;
}

.woocommerce-variation-price .price {
	margin: 0.75rem 0 0;
}

.woocommerce-variation-availability,
.stock {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: var(--muted);
}

.out-of-stock {
	color: var(--magenta-deep);
}

.quantity {
	display: inline-flex;
}

.quantity .qty {
	width: 4.75rem;
	height: 3.25rem;
	padding: 0 0.5rem;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	background: var(--card);
	text-align: center;
}

.quantity .qty:focus {
	outline: none;
	border-color: var(--magenta);
	box-shadow: 0 0 0 4px var(--magenta-tint);
}

.pk-storepage .quantity .qty {
	width: 4.75rem;
	min-height: 0;
	padding: 0 0.5rem;
}

/* A sold-individually product prints a hidden quantity; don't leave a gap for it. */
.quantity:has(input[type="hidden"]) {
	display: none;
}

.pk-store .single_add_to_cart_button {
	flex: 1 1 12rem;
	min-height: 3.25rem;
	padding: 0.9rem 1.75rem;
	border: 0;
	border-radius: 999px;
	background: var(--magenta);
	color: #fff;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: background-color 0.25s, transform 0.25s var(--ease);
}

.pk-store .single_add_to_cart_button:hover {
	background: var(--magenta-deep);
}

.pk-store .single_add_to_cart_button:active {
	transform: scale(0.985);
}

.pk-store .single_add_to_cart_button.disabled,
.pk-store .single_add_to_cart_button:disabled {
	background: var(--paper-3);
	color: var(--muted);
	cursor: not-allowed;
}

.pk-points {
	display: grid;
	gap: 0.45rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
}

.pk-points li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.pk-points .pk-icon {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	color: var(--magenta);
}

.pk-details {
	margin-top: 1.75rem;
	border-top: 1px solid var(--line);
}

.pk-details + .pk-details {
	margin-top: 0;
}

.pk-details:last-of-type {
	border-bottom: 1px solid var(--line);
}

.pk-details summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.1rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
}

.pk-details summary::-webkit-details-marker {
	display: none;
}

.pk-details summary .pk-icon {
	width: 18px;
	height: 18px;
	transition: transform 0.3s var(--ease);
}

.pk-details[open] summary .pk-icon {
	transform: rotate(45deg);
}

.pk-details .pk-prose {
	padding-bottom: 1.5rem;
	font-size: 0.9375rem;
	color: var(--muted);
}

.related,
.upsells {
	margin-top: clamp(2rem, 6vw, 5rem);
	padding-top: clamp(2.5rem, 5vw, 4rem);
	border-top: 1px solid var(--line);
}

.related > h2,
.upsells > h2 {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 3.5vw, 2.6rem);
	font-weight: 300;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--ink);
}

/* 3. Personalization
   ========================================================================== */
.pk-personalize {
	display: grid;
	gap: 1.1rem;
	margin-bottom: 0.75rem;
	padding: 0.25rem 1.25rem 1.35rem;
	border: 1.5px dashed var(--magenta);
	border-radius: 18px;
	background: var(--card);
}

.pk-personalize__title {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	padding-inline: 0.5rem;
}

.pk-personalize__title .pk-script {
	font-size: 1.9rem;
}

.pk-personalize .pk-proofchip {
	margin-top: 0;
}

.pk-countfield {
	position: relative;
	display: block;
}

.pk-countfield .pk-input {
	padding-right: 4rem;
}

.pk-countfield__count {
	position: absolute;
	top: 50%;
	right: 1rem;
	font-size: 0.75rem;
	color: var(--muted);
	transform: translateY(-50%);
}

/* 4. Notices and buttons
   ========================================================================== */
.woocommerce-notices-wrapper:not(:empty) {
	margin-bottom: 1.5rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin: 0 0 1rem;
	padding: 1rem 1.35rem;
	border: 1.5px dashed var(--magenta);
	border-radius: var(--radius-sm);
	background: var(--card);
	list-style: none;
}

.woocommerce-error {
	display: grid;
	justify-content: stretch;
	border-style: solid;
	border-color: transparent;
	background: var(--magenta-tint);
	color: var(--magenta-deep);
}

.woocommerce-message:focus-visible,
.woocommerce-error:focus-visible,
.woocommerce-info:focus-visible {
	outline: none;
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	padding: 0;
	background: none;
	color: inherit;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--magenta);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.35em;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
	background: none;
	color: var(--magenta);
}

.pk-store .button,
.pk-storepage .button,
.pk-storepage button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--ink);
	color: var(--paper);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s, color 0.25s;
}

.pk-store .button:hover,
.pk-storepage .button:hover,
.pk-storepage button[type="submit"]:hover {
	background: var(--magenta);
	color: #fff;
}

.pk-storepage .button:disabled,
.pk-storepage .button.disabled {
	background: var(--paper-3);
	color: var(--muted);
	cursor: not-allowed;
}

.pk-storepage .checkout-button,
.pk-storepage #place_order {
	width: 100%;
	min-height: 3.4rem;
	background: var(--magenta);
	color: #fff;
	font-size: 1rem;
}

.pk-storepage .checkout-button:hover,
.pk-storepage #place_order:hover {
	background: var(--magenta-deep);
}

/* Form rows shared by cart, checkout and account. */
.pk-storepage .form-row {
	margin: 0 0 1.1rem;
}

.pk-storepage .form-row label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: 0.8125rem;
	font-weight: 500;
}

.pk-storepage .required {
	color: var(--magenta);
	text-decoration: none;
}

.pk-storepage .input-text,
.pk-storepage textarea,
.pk-storepage .select2-container .select2-selection--single {
	display: block;
	width: 100%;
	min-height: 3rem;
	padding: 0.7rem 1rem;
	border: 1.5px solid var(--line);
	border-radius: var(--radius-sm);
	background: #fff;
}

.pk-storepage .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	height: auto;
}

.pk-storepage .select2-container .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
}

.pk-storepage .select2-container .select2-selection__arrow {
	top: 50%;
	right: 0.6rem;
	transform: translateY(-50%);
}

.pk-storepage .input-text:focus,
.pk-storepage textarea:focus {
	outline: none;
	border-color: var(--magenta);
	box-shadow: 0 0 0 4px var(--magenta-tint);
}

.pk-storepage .woocommerce-invalid .input-text {
	border-color: var(--magenta-deep);
}

.pk-storepage .checkout-inline-error-message {
	margin-top: 0.35rem;
	font-size: 0.8125rem;
	color: var(--magenta-deep);
}

@media (min-width: 560px) {
	.pk-storepage .form-row-first,
	.pk-storepage .form-row-last {
		float: left;
		width: calc(50% - 0.5rem);
	}

	.pk-storepage .form-row-last {
		float: right;
	}

	.pk-storepage .form-row-wide,
	.pk-storepage .clear {
		clear: both;
	}
}

.pk-storepage .woocommerce-billing-fields__field-wrapper::after,
.pk-storepage .woocommerce-shipping-fields__field-wrapper::after,
.pk-storepage .woocommerce-address-fields__field-wrapper::after,
.pk-storepage form::after {
	content: "";
	display: table;
	clear: both;
}

.pk-storepage h2,
.pk-storepage h3 {
	margin-bottom: 1.1rem;
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: -0.015em;
	line-height: 1.2;
	color: var(--ink);
}

/* 5. Cart
   ========================================================================== */
.pk-storepage table.shop_table {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
}

.pk-storepage table.shop_table th {
	padding: 0.85rem 0.75rem;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
}

.pk-storepage table.shop_table td {
	padding: 1.1rem 0.75rem;
	border-top: 1px solid var(--line);
	vertical-align: middle;
}

.pk-storepage table.shop_table thead th {
	border-bottom: 1px solid var(--ink);
}

.pk-storepage .product-thumbnail img {
	width: 84px;
	height: 84px;
	border-radius: var(--radius-sm);
	object-fit: cover;
}

.pk-storepage .product-name a {
	font-family: var(--font-display);
	font-size: 1.125rem;
	text-decoration: none;
}

.pk-storepage .product-name a:hover {
	color: var(--magenta);
}

.pk-storepage dl.variation {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.1rem 0.5rem;
	margin: 0.4rem 0 0;
	font-size: 0.8125rem;
	color: var(--muted);
}

.pk-storepage dl.variation dt {
	font-weight: 500;
}

.pk-storepage dl.variation dd,
.pk-storepage dl.variation p {
	margin: 0;
}

.pk-storepage a.remove {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	font-size: 1.25rem;
	line-height: 1;
	text-decoration: none;
	color: var(--muted);
	transition: background-color 0.2s, color 0.2s;
}

.pk-storepage a.remove:hover {
	background: var(--magenta-tint);
	color: var(--magenta-deep);
}

.pk-storepage td.actions {
	padding-block: 1.5rem;
}

.pk-storepage .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	float: left;
}

.pk-storepage .coupon .input-text {
	width: 12rem;
}

.pk-storepage td.actions > .button {
	float: right;
}

.pk-storepage .cart-collaterals {
	display: flex;
	justify-content: flex-end;
	margin-top: 2.5rem;
}

.pk-storepage .cart_totals {
	width: min(100%, 440px);
	padding: clamp(1.35rem, 3vw, 2rem);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--card);
}

.pk-storepage .cart_totals table.shop_table th {
	width: 38%;
	padding-left: 0;
	vertical-align: top;
}

.pk-storepage .cart_totals table.shop_table td {
	padding-right: 0;
	text-align: right;
}

.pk-storepage .cart_totals tr:first-child th,
.pk-storepage .cart_totals tr:first-child td {
	border-top: 0;
}

.pk-storepage .order-total .amount {
	font-size: 1.35rem;
	font-weight: 500;
}

.pk-storepage #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pk-storepage .woocommerce-shipping-destination,
.pk-storepage .shipping-calculator-button {
	font-size: 0.8125rem;
	color: var(--muted);
}

.pk-storepage .wc-proceed-to-checkout {
	margin-top: 1.5rem;
}

.cart-empty,
.return-to-shop {
	text-align: center;
}

/* Small screens: each cart line becomes a compact card (picture, name, quantity, line total).
   Scoped to the cart form so the totals table keeps its normal two-column layout. */
@media (max-width: 719px) {
	.woocommerce-cart-form table.shop_table thead {
		display: none;
	}

	.woocommerce-cart-form table.shop_table,
	.woocommerce-cart-form table.shop_table tbody {
		display: block;
	}

	.woocommerce-cart-form tr.cart_item {
		display: grid;
		grid-template-columns: 76px minmax(0, 1fr) auto;
		gap: 0.6rem 1rem;
		align-items: start;
		padding-block: 1.25rem;
		border-top: 1px solid var(--line);
	}

	.woocommerce-cart-form tr.cart_item td {
		display: block;
		padding: 0;
		border: 0;
	}

	.woocommerce-cart-form td.product-thumbnail {
		grid-area: 1 / 1 / span 2 / auto;
	}

	.woocommerce-cart-form td.product-thumbnail img {
		width: 76px;
		height: 76px;
	}

	.woocommerce-cart-form td.product-name {
		grid-area: 1 / 2;
	}

	.woocommerce-cart-form td.product-remove {
		grid-area: 1 / 3;
		margin: -0.35rem -0.35rem 0 0;
	}

	/* The line total already says it. */
	.woocommerce-cart-form tr.cart_item td.product-price {
		display: none;
	}

	.woocommerce-cart-form td.product-quantity {
		grid-area: 2 / 2;
	}

	.woocommerce-cart-form td.product-subtotal {
		grid-area: 2 / 3;
		align-self: center;
		font-weight: 500;
	}

	.woocommerce-cart-form tr:not(.cart_item),
	.woocommerce-cart-form td.actions {
		display: grid;
		gap: 0.75rem;
		border-top: 1px solid var(--line);
	}

	.pk-storepage .coupon,
	.pk-storepage td.actions > .button {
		float: none;
		width: 100%;
	}

	.pk-storepage .coupon .input-text {
		flex: 1;
		width: auto;
	}
}

/* 6. Checkout
   ========================================================================== */
@media (min-width: 960px) {
	form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
		/* The first rows stay open for whatever comes ahead of the form, and close up when nothing does. */
		grid-template-areas:
			". ."
			". ."
			". ."
			"details heading"
			"details review";
		grid-template-rows: auto auto auto auto 1fr;
		gap: 0 clamp(2rem, 4vw, 4rem);
		align-items: start;
	}

	form.checkout > .woocommerce-NoticeGroup {
		grid-column: 1 / -1;
	}

	/* A payment plugin's one-tap button and its "or" line run across the top.
	   Left to place themselves, they fall below the order box. */
	form.checkout > :has(~ #customer_details) {
		grid-column: 1 / -1;
	}

	#customer_details {
		grid-area: details;
	}

	#order_review_heading {
		grid-area: heading;
	}

	#order_review {
		grid-area: review;
		position: sticky;
		top: 104px;
	}
}

#customer_details .col-1,
#customer_details .col-2 {
	margin-bottom: 2rem;
}

#order_review_heading {
	margin-top: 1rem;
}

/* The one-tap button WooPayments adds ahead of the form, when the browser has a saved way to pay. */
form.checkout > .wcpay-payment-request-wrapper,
form.checkout > .wcpay-express-checkout-wrapper {
	max-width: 28rem;
	margin-right: auto;
	margin-left: auto;
}

form.checkout > #wcpay-payment-request-button-separator,
form.checkout > #wcpay-express-checkout-button-separator {
	margin-bottom: 2rem;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	color: var(--muted);
}

#ship-to-different-address {
	margin-bottom: 1rem;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
}

#ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	cursor: pointer;
}

.woocommerce-shipping-totals td {
	white-space: nowrap;
}

#order_review {
	padding: clamp(1.35rem, 3vw, 2rem);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--card);
}

#order_review table.shop_table th,
#order_review table.shop_table td {
	padding-inline: 0;
}

#order_review table.shop_table td:last-child,
#order_review table.shop_table th:last-child {
	text-align: right;
}

#payment {
	margin-top: 1.5rem;
}

#payment ul.payment_methods {
	display: grid;
	gap: 0.75rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

#payment ul.payment_methods > li {
	padding: 0.9rem 1rem;
	border: 1.5px solid var(--line);
	border-radius: var(--radius-sm);
	background: #fff;
}

#payment ul.payment_methods label {
	font-weight: 500;
}

#payment ul.payment_methods label img {
	max-height: 24px;
	margin-left: 0.5rem;
}

#payment .payment_box {
	margin-top: 0.6rem;
	font-size: 0.875rem;
	color: var(--muted);
}

.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 1.25rem;
	font-size: 0.875rem;
	color: var(--muted);
}

.woocommerce-form-coupon-toggle,
.woocommerce-form-login-toggle {
	margin-bottom: 1rem;
}

.woocommerce-form-coupon,
.woocommerce-form-login {
	margin-bottom: 2rem;
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--card);
}

/* 7. Account
   ========================================================================== */
.woocommerce-account .pk-storepage > .woocommerce {
	display: grid;
	gap: 2.5rem;
}

@media (min-width: 820px) {
	.woocommerce-account.logged-in .pk-storepage > .woocommerce {
		grid-template-columns: 220px minmax(0, 1fr);
	}
}

.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.6rem 1rem;
	border-radius: 999px;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a:hover {
	background: var(--ink);
	color: var(--paper);
}

.woocommerce-MyAccount-content > * + * {
	margin-top: 1rem;
}

.woocommerce-account:not(.logged-in) .pk-storepage form.login,
.woocommerce-account:not(.logged-in) .pk-storepage form.register,
.pk-storepage form.lost_reset_password {
	max-width: 460px;
	padding: clamp(1.35rem, 3vw, 2rem);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--card);
}

.woocommerce-form__label-for-checkbox {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	margin-right: 1rem;
}

.woocommerce-LostPassword {
	margin-top: 1rem;
	font-size: 0.875rem;
}

.pk-storepage #customer_login {
	display: grid;
	gap: 2.5rem;
}

@media (min-width: 820px) {
	.pk-storepage #customer_login {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 8. Order received
   ========================================================================== */
.woocommerce-order > * + * {
	margin-top: 1.5rem;
}

.woocommerce-thankyou-order-received {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.2;
	color: var(--ink);
}

ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 1.5rem;
	border: 1.5px dashed var(--magenta);
	border-radius: var(--radius);
	background: var(--card);
	list-style: none;
}

ul.order_details li {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
}

ul.order_details strong {
	display: block;
	margin-top: 0.25rem;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ink);
}

.woocommerce-customer-details address {
	font-style: normal;
}
