/*
 * Gala — WooCommerce markup.
 *
 * Every WooCommerce front-end stylesheet is dequeued (inc/enqueue.php), so all of the shop,
 * cart, checkout and order styling lives here. Same tokens, same spacing scale as main.css.
 */

/* =========================================================== Generic buttons */

/* WooCommerce prints a bare `.button`; give it the theme's secondary look. */
.button:not([class*="button--"]) {
	border-color: var(--c-ink);
	color: var(--c-ink);
}

.button:not([class*="button--"]):hover {
	background: var(--c-ink);
	color: var(--c-white);
}

.button.alt:not([class*="button--"]),
#place_order {
	background: var(--c-red);
	border-color: var(--c-red);
	color: var(--c-white);
}

.button.alt:not([class*="button--"]):hover,
#place_order:hover {
	background: var(--c-red-dark);
	border-color: var(--c-red-dark);
	color: var(--c-white);
}

/* =================================================================== Notices */

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

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3);
	margin: 0 0 var(--sp-5);
	padding: var(--sp-3) var(--sp-4);
	border: 1px solid var(--c-line);
	border-left: 3px solid var(--c-line-strong);
	border-radius: var(--radius-s);
	background: var(--c-white);
	color: var(--c-ink-2);
	font-size: var(--fs-small);
	list-style: none;
}

.woocommerce-message {
	border-left-color: var(--c-success);
}

.woocommerce-info,
.wc-block-components-notice-banner {
	border-left-color: var(--c-gold-dark);
}

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

.woocommerce-error li + li {
	margin-top: var(--sp-2);
}

.woocommerce-message .button,
.woocommerce-info .button {
	margin-left: auto;
	min-height: 40px;
	padding: 0 var(--sp-4);
	font-size: var(--fs-small);
}

/* ============================================================ Shop toolbar */

.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
	padding-bottom: var(--sp-5);
	border-bottom: 1px solid var(--c-line);
}

.chips__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	list-style: none;
}

.chip {
	display: inline-flex;
	align-items: center;
	height: 36px;
	padding: 0 var(--sp-4);
	border: 1px solid var(--c-line-strong);
	border-radius: var(--radius-pill);
	background: var(--c-white);
	color: var(--c-ink-2);
	font-size: var(--fs-small);
	white-space: nowrap;
	text-decoration: none;
	transition:
		background-color var(--dur) var(--ease),
		border-color var(--dur) var(--ease),
		color var(--dur) var(--ease);
}

.chip:hover {
	border-color: var(--c-ink);
	color: var(--c-ink);
}

.chip.is-current {
	border-color: var(--c-ink);
	background: var(--c-ink);
	color: var(--c-white);
}

.chips {
	flex: 1 1 22rem;
}

.gift-search {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: var(--sp-2);
}

.gift-search__icon {
	position: absolute;
	left: var(--sp-3);
	display: flex;
	color: var(--c-muted);
	pointer-events: none;
}

input.gift-search__input {
	width: 14rem;
	min-height: 44px;
	padding: 0 var(--sp-3) 0 2.5rem;
	font-size: var(--fs-small);
}

.gift-search__submit {
	min-height: 44px;
	padding: 0 var(--sp-4);
	border: 1.5px solid var(--c-ink);
	border-radius: var(--radius-s);
	background: none;
	color: var(--c-ink);
	font-size: var(--fs-small);
	font-weight: 500;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.gift-search__submit:hover {
	background: var(--c-ink);
	color: var(--c-white);
}

.shop-note {
	margin-top: var(--sp-4);
	color: var(--c-muted);
	font-size: var(--fs-small);
}

/* ============================================================== Gift cards */

ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--sp-5) var(--sp-4);
	margin: var(--sp-6) 0 0;
	list-style: none;
}

.gift-card {
	display: flex;
}

.gift-card__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
	color: inherit;
	text-decoration: none;
	transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.gift-card__link:hover {
	border-color: var(--c-red);
	color: inherit;
	transform: translateY(-2px);
}

.gift-card__media {
	display: block;
	padding: 12%;
	background: var(--c-white);
}

/* The square comes from the image itself: an aspect-ratio box would grow for tall art. */
.gift-card__img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
}

.gift-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--sp-2);
	padding: var(--sp-4);
	border-top: 1px solid var(--c-line);
}

.gift-card__cat {
	color: var(--c-muted);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.gift-card__title {
	color: var(--c-ink);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.35;
}

.gift-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	margin-top: auto;
	padding-top: var(--sp-3);
}

.gift-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--c-red);
	font-size: var(--fs-small);
	font-weight: 500;
}

.gift-card__cta svg {
	transition: transform var(--dur) var(--ease);
}

.gift-card__link:hover .gift-card__cta svg {
	transform: translateX(3px);
}

/* ============================================================= Pagination */

.woocommerce-pagination {
	display: flex;
	justify-content: center;
	margin-top: var(--sp-7);
}

.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	list-style: none;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 var(--sp-2);
	border: 1px solid var(--c-line-strong);
	border-radius: var(--radius-s);
	color: var(--c-ink-2);
	font-size: var(--fs-small);
	text-decoration: none;
	font-variant-numeric: tabular-nums;
	transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

a.page-numbers:hover {
	border-color: var(--c-ink);
	color: var(--c-ink);
}

.page-numbers.current {
	border-color: var(--c-ink);
	background: var(--c-ink);
	color: var(--c-white);
}

/* =========================================================== Single product */

.back-link {
	margin-bottom: var(--sp-5);
}

.back-link a {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	color: var(--c-muted);
	font-size: var(--fs-small);
	text-decoration: none;
	transition: color var(--dur) var(--ease);
}

.back-link a:hover {
	color: var(--c-red);
}

.back-link__icon {
	transform: rotate(180deg);
}

.product-layout {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

.product-gallery {
	max-width: 30rem;
}

.product-gallery__main {
	display: block;
	margin: 0;
	padding: clamp(1.5rem, 5vw, 3rem);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
}

.product-gallery__img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
}

.product-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-top: var(--sp-3);
	list-style: none;
}

.product-gallery__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	padding: 6px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-s);
	background: var(--c-white);
	cursor: pointer;
	transition: border-color var(--dur) var(--ease);
}

.product-gallery__thumb:hover {
	border-color: var(--c-line-strong);
}

.product-gallery__thumb.is-current {
	border-color: var(--c-red);
}

.product-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.product-summary__cat {
	margin-bottom: var(--sp-2);
}

.product-summary__cat a {
	color: var(--c-gold-text);
	text-decoration: none;
}

.product-summary__cat a:hover {
	text-decoration: underline;
}

.product-summary .credits-tag {
	margin-top: var(--sp-4);
}

.product-summary__short {
	max-width: 48ch;
	margin-top: var(--sp-4);
	color: var(--c-ink-2);
}

.product-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3);
	margin-top: var(--sp-5);
}

.product-summary .notice-inline {
	margin-top: var(--sp-5);
}

.product-summary .notice-inline + .button {
	margin-top: var(--sp-3);
}

.product-summary__meta {
	margin-top: var(--sp-5);
	padding-top: var(--sp-4);
	border-top: 1px solid var(--c-line);
	color: var(--c-muted);
	font-size: var(--fs-small);
}

.product-about {
	margin-top: var(--sp-8);
	padding-top: var(--sp-7);
	border-top: 1px solid var(--c-line);
}

.product-about__title {
	font-size: 1.5rem;
}

.product-about__body {
	margin-top: var(--sp-4);
}

.related {
	margin-top: var(--sp-8);
	padding-top: var(--sp-7);
	border-top: 1px solid var(--c-line);
}

.related__title {
	font-size: 1.5rem;
}

/* =========================================================== Quantity input */

/* WooCommerce still prints the wrapper when the quantity is fixed at one — nothing to show. */
.quantity:has(> input[type="hidden"]) {
	display: none;
}

.quantity {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1.5px solid var(--c-line-strong);
	border-radius: var(--radius-s);
	background: var(--c-white);
	transition: border-color var(--dur) var(--ease);
}

.quantity:focus-within {
	border-color: var(--c-red);
}

.quantity input.qty {
	width: 3.25rem;
	min-height: 45px;
	padding: 0;
	border: 0;
	text-align: center;
	appearance: textfield;
	font-variant-numeric: tabular-nums;
}

.quantity input.qty:focus {
	outline: none;
}

.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
	appearance: none;
	margin: 0;
}

.qty-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 45px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--c-ink-2);
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.qty-step:hover {
	background: var(--c-cream);
	color: var(--c-red);
}

/* ===================================================================== Cart */

.woocommerce-cart .page-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 21rem);
	column-gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.woocommerce-cart .page-content > .woocommerce > * {
	grid-column: 1 / -1;
}

.woocommerce-cart .page-content > .woocommerce > .woocommerce-cart-form {
	grid-column: 1;
	grid-row: 2;
}

.woocommerce-cart .page-content > .woocommerce > .cart-collaterals {
	grid-column: 2;
	grid-row: 2;
}

.shop_table.cart thead th {
	padding: 0 var(--sp-3) var(--sp-3) 0;
	border-bottom: 1px solid var(--c-line-strong);
	color: var(--c-muted);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-align: left;
	text-transform: uppercase;
}

.shop_table.cart td {
	padding: var(--sp-4) var(--sp-3) var(--sp-4) 0;
	border-bottom: 1px solid var(--c-line);
	vertical-align: middle;
}

.shop_table.cart .product-remove {
	width: 44px;
	padding-right: 0;
}

.shop_table.cart .product-thumbnail {
	width: 96px;
}

.shop_table.cart .product-thumbnail img {
	width: 76px;
	height: 76px;
	padding: 6px;
	border-radius: var(--radius-s);
	background: var(--c-cream);
	object-fit: contain;
}

.shop_table.cart .product-name a {
	color: var(--c-ink);
	font-weight: 500;
	text-decoration: none;
}

.shop_table.cart .product-name a:hover {
	color: var(--c-red);
}

/* Price and subtotal are the same figure while every gift costs whole credits. */
.shop_table.cart .product-price,
.woocommerce-checkout-review-order-table .cart-subtotal,
.cart_totals .cart-subtotal {
	display: none;
}

.shop_table.cart .product-subtotal {
	color: var(--c-ink);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	text-align: right;
}

a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: var(--radius-pill);
	color: var(--c-muted);
	font-size: 1.25rem;
	line-height: 1;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

a.remove:hover {
	background: var(--c-red-tint);
	color: var(--c-red);
}

.shop_table.cart td.actions {
	padding-top: var(--sp-4);
	border-bottom: 0;
	text-align: right;
}

.shop_table.cart td.actions .coupon {
	display: none;
}

.cart_totals {
	padding: var(--sp-5);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
}

.cart_totals h2 {
	font-size: 1.125rem;
	letter-spacing: 0;
}

.cart_totals table {
	margin-top: var(--sp-4);
}

.cart_totals th {
	padding: var(--sp-2) 0;
	color: var(--c-muted);
	font-size: var(--fs-small);
	font-weight: 400;
	text-align: left;
}

.cart_totals td {
	padding: var(--sp-2) 0;
	color: var(--c-ink-2);
	font-size: var(--fs-small);
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	padding-top: var(--sp-3);
	border-top: 1px solid var(--c-line);
	color: var(--c-ink);
	font-size: 1rem;
	font-weight: 500;
}

.wc-proceed-to-checkout {
	margin-top: var(--sp-4);
}

.cart-note {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-2);
	margin-top: var(--sp-3);
	color: var(--c-muted);
	font-size: .8125rem;
}

.cart-note svg {
	flex: none;
	margin-top: 3px;
	color: var(--c-success);
}

/* ================================================================= Checkout */

form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 23rem);
	column-gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

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

form.checkout > #customer_details {
	grid-column: 1;
	grid-row: 2;
}

form.checkout > .checkout__review {
	grid-column: 2;
	grid-row: 2;
}

#order_review_heading {
	margin: 0 0 var(--sp-4);
}

.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	color: var(--c-ink);
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sp-4);
	margin-top: var(--sp-4);
}

.woocommerce-additional-fields {
	margin-top: var(--sp-6);
	padding-top: var(--sp-5);
	border-top: 1px solid var(--c-line);
}

.form-row {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin: 0;
}

.form-row-wide,
.form-row.notes,
.form-row.place-order {
	grid-column: 1 / -1;
}

/* Explicit placement: WooCommerce sometimes keeps its own wide class on a paired field. */
.form-row-first {
	grid-column: 1;
}

.form-row-last {
	grid-column: 2;
}

.form-row label {
	color: var(--c-ink);
	font-size: var(--fs-small);
	font-weight: 500;
}

.form-row .required {
	color: var(--c-red);
	text-decoration: none;
}

.form-row .optional {
	color: var(--c-muted);
}

.woocommerce-input-wrapper {
	display: block;
}

#order_review {
	position: sticky;
	top: calc(var(--header-h) + var(--sp-4));
	padding: var(--sp-5);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
}

.woocommerce-checkout-review-order-table th {
	padding: 0 0 var(--sp-3);
	border-bottom: 1px solid var(--c-line-strong);
	color: var(--c-muted);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-align: left;
	text-transform: uppercase;
}

.woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout-review-order-table td:last-child {
	text-align: right;
}

.woocommerce-checkout-review-order-table td {
	padding: var(--sp-3) 0;
	border-bottom: 1px solid var(--c-line);
	font-size: var(--fs-small);
	font-variant-numeric: tabular-nums;
}

.woocommerce-checkout-review-order-table .product-name {
	color: var(--c-ink);
}

.woocommerce-checkout-review-order-table .product-quantity {
	color: var(--c-muted);
}

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	padding-top: var(--sp-3);
	border-bottom: 0;
	color: var(--c-ink);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce-checkout-payment {
	margin-top: var(--sp-5);
}

.wc_payment_methods {
	list-style: none;
}

/* One gateway, no choice to make: the radio is noise, the description is the message. */
.wc_payment_methods li:only-child > input.input-radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.wc_payment_methods li > label {
	display: block;
	color: var(--c-ink);
	font-size: var(--fs-small);
	font-weight: 500;
}

.payment_box {
	margin-top: var(--sp-2);
	padding: var(--sp-3) var(--sp-4);
	border: 1px solid var(--c-line);
	border-left: 3px solid var(--c-success);
	border-radius: var(--radius-s);
	background: var(--c-cream);
	color: var(--c-ink-2);
	font-size: var(--fs-small);
}

.payment_box p {
	margin: 0;
}

.woocommerce-privacy-policy-text {
	margin-top: var(--sp-4);
	color: var(--c-muted);
	font-size: .8125rem;
}

.woocommerce-privacy-policy-text p {
	margin: 0;
}

.form-row.place-order {
	margin-top: var(--sp-5);
}

#place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 0 1.375rem;
	border: 1.5px solid var(--c-red);
	border-radius: var(--radius-s);
	font-size: 1rem;
	font-weight: 500;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: var(--sp-3);
}

.blockUI.blockOverlay {
	background: var(--c-paper) !important; /* WooCommerce sets this inline while AJAX runs. */
	opacity: .6 !important;
}

/* Native selects are used everywhere: selectWoo is neutralised in inc/enqueue.php. */
select {
	appearance: none;
	padding-right: var(--sp-6);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6B6B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right var(--sp-3) center;
	background-size: 18px 18px;
}

/* =========================================================== Order received */

.woocommerce-order > .woocommerce-notice,
.woocommerce-thankyou-order-received {
	max-width: 60ch;
	color: var(--c-ink-2);
}

/* `thankyou_text` is a textarea setting, so the intro can run to more than one paragraph. */
.woocommerce-thankyou-order-received p + p {
	margin-top: var(--sp-3);
}

.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	gap: var(--sp-4);
	margin: var(--sp-6) 0 0;
	padding: var(--sp-5);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
	list-style: none;
}

.woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
	color: var(--c-muted);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.woocommerce-order-overview li strong {
	color: var(--c-ink);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	font-variant-numeric: tabular-nums;
}

.gala-order-credits {
	margin-top: var(--sp-5);
	padding: var(--sp-4) var(--sp-5);
	border: 1px solid var(--c-gold-dark);
	border-radius: var(--radius-m);
	background: var(--c-gold-tint);
}

.gala-order-credits__code {
	color: var(--c-ink);
	font-size: var(--fs-small);
}

.gala-order-credits__code strong {
	font-family: var(--font-mono);
	font-size: 1rem;
	letter-spacing: .02em;
}

.gala-order-credits__used {
	margin-top: var(--sp-1);
	color: var(--c-gold-text);
	font-size: var(--fs-small);
}

.woocommerce-order-details,
.woocommerce-customer-details {
	margin-top: var(--sp-7);
}

.woocommerce-order-details__title,
.woocommerce-column__title {
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0;
}

.woocommerce-table--order-details {
	margin-top: var(--sp-4);
}

.woocommerce-table--order-details th {
	padding: 0 0 var(--sp-3);
	border-bottom: 1px solid var(--c-line-strong);
	color: var(--c-muted);
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-align: left;
	text-transform: uppercase;
}

.woocommerce-table--order-details td {
	padding: var(--sp-3) 0;
	border-bottom: 1px solid var(--c-line);
	font-size: var(--fs-small);
	font-variant-numeric: tabular-nums;
}

.woocommerce-table--order-details th:last-child,
.woocommerce-table--order-details td:last-child {
	text-align: right;
}

.woocommerce-table--order-details .product-name a {
	color: var(--c-ink);
	text-decoration: none;
}

.woocommerce-table--order-details tfoot th {
	padding: var(--sp-3) 0;
	border-bottom: 1px solid var(--c-line);
	border-top: 0;
	color: var(--c-muted);
	letter-spacing: 0;
	text-transform: none;
	font-size: var(--fs-small);
	font-weight: 400;
}

.woocommerce-customer-details address {
	margin-top: var(--sp-3);
	padding: var(--sp-4);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
	color: var(--c-ink-2);
	font-size: var(--fs-small);
	font-style: normal;
	line-height: 1.7;
}

.order-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
	margin-top: var(--sp-7);
}

/* ============================================================== My account */

.woocommerce-account .page-content h2 {
	margin-bottom: var(--sp-4);
	font-size: 1.375rem;
	letter-spacing: 0;
}

/* WooCommerce injects an empty span for the reveal toggle and styles it in its own sheet. */
.woocommerce-form-row .password-input {
	position: relative;
	display: block;
}

.show-password-input {
	position: absolute;
	top: 50%;
	right: var(--sp-3);
	width: 22px;
	height: 22px;
	margin-top: -11px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6B6B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-6 10-6 10 6 10 6-3.6 6-10 6-10-6-10-6z'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
	cursor: pointer;
}

.show-password-input.display-password {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E61336' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-6 10-6 10 6 10 6-3.6 6-10 6-10-6-10-6z'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3Cpath d='M4 20L20 4'/%3E%3C/svg%3E");
}

.woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	font-size: var(--fs-small);
}

.woocommerce-form-login,
.woocommerce-form-register {
	max-width: 26rem;
	padding: var(--sp-5);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-m);
	background: var(--c-white);
}

.woocommerce-form-login .form-row + .form-row,
.woocommerce-form-register .form-row + .form-row {
	margin-top: var(--sp-4);
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2) var(--sp-4);
	margin-bottom: var(--sp-5);
	padding-bottom: var(--sp-4);
	border-bottom: 1px solid var(--c-line);
	list-style: none;
}

.woocommerce-MyAccount-navigation a {
	color: var(--c-ink-2);
	font-size: var(--fs-small);
	text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a {
	color: var(--c-red);
	font-weight: 500;
}

/* ============================================================= Breakpoints */

@media (max-width: 1199.98px) {
	ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 1023.98px) {
	.woocommerce-cart .page-content > .woocommerce,
	form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .page-content > .woocommerce > .woocommerce-cart-form,
	.woocommerce-cart .page-content > .woocommerce > .cart-collaterals,
	form.checkout > #customer_details,
	form.checkout > .checkout__review {
		grid-column: 1;
		grid-row: auto;
	}

	.woocommerce-cart .page-content > .woocommerce > .cart-collaterals {
		margin-top: var(--sp-6);
	}

	form.checkout > .checkout__review {
		margin-top: var(--sp-7);
	}

	#order_review {
		position: static;
	}

	.product-layout {
		grid-template-columns: 1fr;
		gap: var(--sp-6);
	}

	.product-gallery__main {
		max-width: 32rem;
	}
}

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

	.shop-toolbar {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
	}

	/* Eight chips stack into seven rows at 375px; scroll them instead. */
	.chips {
		flex: 0 0 auto;
		margin-inline: calc(var(--gutter) * -1);
		padding-inline: var(--gutter);
		overflow-x: auto;
		scrollbar-width: thin;
	}

	.chips__list {
		flex-wrap: nowrap;
		padding-bottom: var(--sp-2);
	}

	input.gift-search__input {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}

	.gift-search__submit {
		flex: 0 0 auto;
	}

	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.form-row-first,
	.form-row-last {
		grid-column: 1;
	}

	.shop_table.cart thead {
		display: none;
	}

	.shop_table.cart,
	.shop_table.cart tbody,
	.shop_table.cart tr,
	.shop_table.cart td {
		display: block;
		width: 100%;
	}

	.shop_table.cart tr.woocommerce-cart-form__cart-item {
		position: relative;
		min-height: 96px;
		padding: var(--sp-4) 0 var(--sp-4) 92px;
		border-bottom: 1px solid var(--c-line);
	}

	.shop_table.cart td {
		padding: 0;
		border: 0;
	}

	.shop_table.cart td.product-thumbnail {
		position: absolute;
		top: var(--sp-4);
		left: 0;
		width: 76px;
	}

	.shop_table.cart td.product-remove {
		position: absolute;
		top: var(--sp-4);
		right: 0;
		width: 30px;
	}

	.shop_table.cart td.product-name {
		padding-right: 40px;
	}

	.shop_table.cart td.product-subtotal {
		margin-top: var(--sp-1);
		text-align: left;
	}

	.shop_table.cart td.product-quantity {
		margin-top: var(--sp-3);
	}

	.shop_table.cart td.actions {
		padding-top: var(--sp-4);
	}
}

@media (max-width: 559.98px) {
	/*
	 * One column at this width, but laid out horizontally: a stacked square card is ~470px
	 * tall, which turns a 16-gift page into a very long scroll.
	 */
	ul.products {
		grid-template-columns: 1fr;
		gap: var(--sp-3);
	}

	.gift-card__link {
		flex-direction: row;
	}

	.gift-card__media {
		flex: 0 0 38%;
		padding: var(--sp-3);
	}

	.gift-card__body {
		justify-content: center;
		padding: var(--sp-3) var(--sp-4);
		border-top: 0;
		border-left: 1px solid var(--c-line);
	}

	.gift-card__foot {
		flex-wrap: wrap;
		gap: var(--sp-2);
	}

	.order-actions .button {
		width: 100%;
	}
}
