/* ==========================================================================
   Shop and product pages. Loaded on WooCommerce pages only; the product cards,
   comparison table and assurances live in theme.css because the home page uses them.
   WooCommerce's own stylesheet is still loaded, so some rules name `.woocommerce`
   to outrank it.
   ========================================================================== */

/* Shop hero: the grid sits on the same night band as the intro. */
.mpower-shop-hero .mpower-section__head { margin-bottom: var(--wp--preset--spacing--50); }
.mpower-shop-hero h1 { margin: 0.25rem 0 0.5rem; }

/* Store notices ("added to your cart") ---------------------------------------------- */

.wp-block-woocommerce-store-notices:not(:empty) { margin-bottom: var(--wp--preset--spacing--40); }

.mpower-section .wc-block-components-notice-banner {
	margin: 0 0 1rem;
	padding: 0.85rem 1.1rem;
	border-radius: 12px;
	border: 1px solid var(--mp-line);
	background: var(--wp--preset--color--white);
	color: var(--mp-night);
	font-size: 0.98rem;
	align-items: center;
}

.mpower-section .wc-block-components-notice-banner.is-success { border-color: color-mix(in srgb, #3B7A4A 45%, white); background: #F3F8F3; }
.mpower-section .wc-block-components-notice-banner.is-error { border-color: color-mix(in srgb, var(--wp--preset--color--kumkum) 45%, white); background: #FBF3F2; }
.mpower-section .wc-block-components-notice-banner > svg { background: var(--mp-night); fill: var(--mp-paper); }
.mpower-section .wc-block-components-notice-banner.is-success > svg { background: #3B7A4A; }

.mpower-section .wc-block-components-notice-banner .wc-forward.wp-element-button {
	float: none;
	order: 2;
	margin-left: auto;
	padding: 0.45rem 1rem;
	font-size: 0.9rem;
	color: var(--mp-night);
	background: transparent;
	border: 1px solid var(--mp-brass);
	border-radius: 999px;
	text-decoration: none;
	opacity: 1;
}

/* Product hero ---------------------------------------------------------------------- */

.mpower-product-hero { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }

.mpower-product-hero__cols {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}

.mpower-product-hero__cols > * { margin-block: 0; }

/* Photos, or the line drawing on a night panel until there are photos. */
.mpower-gallery { margin: 0; position: sticky; top: 1.5rem; }

.mpower-gallery__stage,
.mpower-gallery__slides {
	aspect-ratio: 1;
	border-radius: var(--mp-radius);
	overflow: hidden;
	background:
		radial-gradient(circle at 50% 60%, rgba(224, 138, 30, 0.2), transparent 55%),
		radial-gradient(circle at 23px 41px, rgba(255, 255, 255, 0.5) 0 0.8px, transparent 1.4px),
		radial-gradient(circle at 150px 96px, rgba(255, 255, 255, 0.3) 0 0.7px, transparent 1.3px),
		radial-gradient(circle at 97px 170px, rgba(217, 189, 140, 0.55) 0 1px, transparent 1.6px),
		linear-gradient(160deg, var(--mp-night) 0%, var(--mp-night-deep) 100%);
	background-size: 100% 100%, 241px 241px, 313px 313px, 419px 419px, 100% 100%;
}

.mpower-gallery__stage { display: grid; place-items: center; color: var(--mp-brass-light); }
.mpower-gallery__art { grid-area: 1 / 1; display: grid; place-items: center; width: 100%; }
.mpower-gallery__art[hidden] { display: none; }
.mpower-gallery__art svg { width: 52%; height: auto; }

.mpower-gallery figcaption {
	margin-top: 0.7rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--mp-muted);
	text-align: center;
}

.mpower-gallery__slides {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.mpower-gallery__slides li { flex: 0 0 100%; scroll-snap-align: start; }
.mpower-gallery__slides img { display: block; width: 100%; height: 100%; object-fit: cover; }

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

.mpower-gallery__thumbs a { display: block; width: 72px; aspect-ratio: 1; border-radius: 10px; overflow: hidden; border: 1px solid var(--mp-line); }
.mpower-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }

/* Summary column */
.mpower-product-summary { display: grid; gap: 0; }
.mpower-product-summary > * { margin-block: 0; }
.mpower-product-summary .is-style-eyebrow a { color: inherit; text-decoration: none; }
.mpower-product-summary .is-style-eyebrow a:hover { color: var(--mp-night); }
.mpower-product-summary .wp-block-post-title { margin: 0.5rem 0 0.75rem; }
.mpower-product-summary .mpower-lede { font-size: var(--wp--preset--font-size--medium); color: var(--mp-muted); }
.mpower-product-summary .wp-block-post-excerpt__excerpt { margin: 0; }

.mpower-product-summary .wp-block-woocommerce-product-price { margin-top: 1.25rem; }
.mpower-product-summary .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem;
	line-height: 1.1;
	color: var(--mp-night);
	font-variant-numeric: tabular-nums;
}
.mpower-product-summary .wc-block-components-product-price del { color: var(--mp-muted); font-size: 0.6em; margin-right: 0.4rem; }
.mpower-product-summary .wc-block-components-product-price ins { text-decoration: none; }

/* Add-to-cart form: sizes as pills, then quantity, Add to cart and Buy now. */
.woocommerce .mpower-product-summary form.cart { margin: 1.25rem 0 0; display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: stretch; }
.woocommerce .mpower-product-summary form.cart::before,
.woocommerce .mpower-product-summary form.cart::after { content: none; }
.woocommerce .mpower-product-summary form.variations_form { display: block; }

.woocommerce .mpower-product-summary table.variations { display: block; margin: 0 0 1rem; border: 0; }
.woocommerce .mpower-product-summary table.variations :is(tbody, tr, th, td) { display: block; padding: 0; border: 0; background: none; }
.woocommerce .mpower-product-summary table.variations th.label { margin-bottom: 0.5rem; line-height: 1; }
.woocommerce .mpower-product-summary table.variations th.label label {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--mp-brass-deep);
}
.woocommerce .mpower-product-summary table.variations select {
	min-height: 48px;
	min-width: 12rem;
	padding: 0.6rem 0.9rem;
	font: inherit;
	border: 1px solid #D3D1DC;
	border-radius: 10px;
	background-color: var(--wp--preset--color--white);
}
.woocommerce .mpower-product-summary .has-pills table.variations select,
.woocommerce .mpower-product-summary .has-pills .reset_variations { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
/* WooCommerce gives the size select min-width: 75% of its container, which pushed the hidden select off the page. */
.woocommerce .mpower-product-summary .has-pills table.variations select.mpower-pills__select { min-width: 0; max-width: 1px; }

.mpower-pills { margin: 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.mpower-pills label { position: relative; cursor: pointer; }
.mpower-pills input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }

.mpower-pills span {
	display: inline-block;
	min-width: 6.5rem;
	padding: 0.7rem 1.4rem 0.62rem;
	border: 1px solid var(--mp-brass);
	border-radius: 999px;
	font-weight: 600;
	text-align: center;
	background: var(--wp--preset--color--white);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.mpower-pills label:hover span { background: color-mix(in srgb, var(--mp-brass) 10%, white); }
.mpower-pills input:checked + span { background: var(--mp-night); border-color: var(--mp-night); color: var(--mp-paper); }
.mpower-pills input:focus-visible + span { outline: 2px solid var(--mp-marigold); outline-offset: 3px; }

.woocommerce .mpower-product-summary .single_variation_wrap .woocommerce-variation-price { display: none; }
.woocommerce .mpower-product-summary .woocommerce-variation-description p { margin: 0 0 1rem; color: var(--mp-muted); }
.woocommerce .mpower-product-summary .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 0.75rem; }

.woocommerce .mpower-product-summary form.cart .quantity { margin: 0; float: none; }
.woocommerce .mpower-product-summary form.cart .quantity .qty {
	box-sizing: border-box;
	width: 4.75rem;
	height: 48px;
	margin: 0;
	padding: 0.5rem;
	font: inherit;
	text-align: center;
	border: 1px solid #D3D1DC;
	border-radius: 999px;
	background: var(--wp--preset--color--white);
}

.woocommerce .mpower-product-summary form.cart .button.single_add_to_cart_button {
	float: none;
	flex: 1 1 9rem;
	margin: 0;
	min-height: 48px;
	padding: 0.8rem 1.4rem 0.75rem;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--mp-night);
	background: transparent;
	border: 1px solid var(--mp-brass);
}

.woocommerce .mpower-product-summary form.cart .button.single_add_to_cart_button:hover { background: color-mix(in srgb, var(--mp-brass) 12%, white); }

.woocommerce .mpower-product-summary form.cart .button.single_add_to_cart_button.mpower-buy-now {
	background: var(--mp-marigold);
	border-color: var(--mp-marigold);
}

.woocommerce .mpower-product-summary form.cart .button.single_add_to_cart_button.mpower-buy-now:hover { background: #F09B32; }
.woocommerce .mpower-product-summary form.cart .button.disabled { opacity: 0.45; cursor: not-allowed; }

/* Price on request, assurances and the WhatsApp question */
.mpower-product-actions { display: grid; gap: 1.1rem; margin-top: 1.5rem; }
.mpower-product-actions > * { margin: 0; }
.mpower-price-request { font-family: var(--wp--preset--font-family--display); font-size: 2rem; line-height: 1.1; margin-top: -0.25rem; }
.mpower-price-request__text { color: var(--mp-muted); margin-top: -0.6rem; }

.mpower-assure {
	list-style: none;
	margin: 0;
	padding: 1.1rem 0 0;
	border-top: 1px solid var(--mp-line);
	display: grid;
	gap: 0.55rem;
	font-size: 0.98rem;
}

.mpower-assure li { display: flex; gap: 0.6rem; align-items: center; }
.mpower-assure .mpower-icon { color: var(--mp-brass-deep); }


/* About and details --------------------------------------------------------------------- */

.mpower-product-about { margin-bottom: var(--wp--preset--spacing--50); }
.mpower-product-about > * { max-width: 46rem; }
.mpower-product-about .is-style-eyebrow { margin: 0 0 0.5rem; }
.mpower-product-about .mpower-prose p:first-child { margin-top: 0; }

.mpower-pd__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
	gap: 1.25rem;
	align-items: start;
}

.mpower-pd__card {
	padding: 1.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--mp-line);
	border-radius: var(--mp-radius);
}

.mpower-pd__card h2 { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--large); }

.mpower-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.mpower-ticks li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.65rem; align-items: start; }
.mpower-ticks .mpower-icon { color: var(--mp-brass-deep); margin-top: 0.15rem; }

.mpower-howto { list-style: none; margin: 0 0 1.25rem; padding: 0; counter-reset: step; display: grid; gap: 0.8rem; }
.mpower-howto:last-child { margin-bottom: 0; }
.mpower-howto li { counter-increment: step; display: grid; grid-template-columns: 1.9rem minmax(0, 1fr); gap: 0.5rem; }
.mpower-howto li::before {
	content: counter(step);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	line-height: 1.05;
	color: var(--mp-brass-deep);
}

.mpower-pd__place {
	margin: 0;
	display: grid;
	grid-template-columns: 11rem minmax(0, 1fr);
	gap: 1rem;
	align-items: center;
	padding-top: 1.1rem;
	border-top: 1px solid var(--mp-line);
}

.mpower-howto:empty + .mpower-pd__place,
.mpower-pd__use h2 + .mpower-pd__place { padding-top: 0; border-top: 0; }

.mpower-pd__place figcaption { display: grid; gap: 0.2rem; font-size: 0.95rem; }
.mpower-pd__place figcaption span { color: var(--mp-muted); }

.mpower-directions { display: block; width: 100%; height: auto; }
.mpower-directions rect { fill: var(--wp--preset--color--white); stroke: var(--mp-brass-light); stroke-width: 1; }
.mpower-directions rect.is-on { fill: color-mix(in srgb, var(--mp-marigold) 20%, white); stroke: var(--mp-brass); }
.mpower-directions text {
	font: 600 12px var(--wp--preset--font-family--body);
	letter-spacing: 0.08em;
	fill: var(--mp-muted);
	text-anchor: middle;
	dominant-baseline: central;
}
.mpower-directions .is-on + text { fill: var(--mp-night); }
.mpower-directions .mpower-directions__compass { fill: var(--mp-brass-deep); font-size: 13px; letter-spacing: 0.2em; }

.mpower-specs { margin: 0; display: grid; gap: 0; }
.mpower-specs > div { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 0.75rem; padding: 0.7rem 0; border-top: 1px solid var(--mp-line); }
.mpower-specs > div:first-child { border-top: 0; padding-top: 0; }
.mpower-specs dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-muted); padding-top: 0.2rem; }
.mpower-specs dd { margin: 0; }
.mpower-specs ul { margin: 0; padding-left: 1.1rem; }

.mpower-disclaimer { max-width: 46rem; }

/* Reviews (WooCommerce's own template) -------------------------------------------------- */

.mpower-product-reviews #reviews { max-width: 52rem; }
.mpower-product-reviews .woocommerce-Reviews-title,
.mpower-product-reviews #reply-title {
	display: block;
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
	line-height: 1.15;
}
.mpower-product-reviews .woocommerce-noreviews,
.mpower-product-reviews .woocommerce-verification-required { color: var(--mp-muted); margin: 0; }
.woocommerce .mpower-product-reviews #reviews #comments ol.commentlist { padding: 0; }
.woocommerce .mpower-product-reviews #reviews #comments ol.commentlist li .comment-text { border-color: var(--mp-line); border-radius: 12px; background: var(--wp--preset--color--white); }
.woocommerce .mpower-product-reviews .star-rating,
.woocommerce .mpower-product-reviews p.stars a { color: var(--mp-marigold); }
.mpower-product-reviews :is(input[type="text"], input[type="email"], textarea) {
	width: 100%;
	padding: 0.65rem 0.9rem;
	font: inherit;
	border: 1px solid #D3D1DC;
	border-radius: 10px;
	background: var(--wp--preset--color--white);
}

/* "Not sure? Ask the founder" ----------------------------------------------------------- */

.mpower-help {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
	align-items: center;
}

.mpower-help h2 { margin: 0.4rem 0 0.75rem; }
.mpower-help p { margin: 0; }
.mpower-help .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: flex-end; }
.mpower-help .is-style-outline .wp-block-button__link { background: transparent; border: 1px solid var(--mp-brass-light); color: var(--mp-paper); }
.mpower-help .is-style-outline .wp-block-button__link:hover { background: rgba(217, 189, 140, 0.12); }

/* Phones and tablets ---------------------------------------------------------------------- */

@media (max-width: 900px) {
	.mpower-product-hero__cols { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--40); }
	.mpower-gallery { position: static; max-width: 34rem; }
	.mpower-help { grid-template-columns: minmax(0, 1fr); }
	.mpower-help .wp-block-buttons { justify-content: flex-start; }
}

@media (max-width: 600px) {
	.mpower-product-hero { padding-block-start: var(--wp--preset--spacing--40); }
	.mpower-gallery__stage { aspect-ratio: 4 / 3; }
	.mpower-product-summary .wc-block-components-product-price,
	.mpower-price-request { font-size: 1.75rem; }
	.woocommerce .mpower-product-summary form.cart .button.single_add_to_cart_button.mpower-buy-now { flex-basis: 100%; }
	.mpower-pd__card { padding: 1.25rem; }
	.mpower-pd__place { grid-template-columns: 8rem minmax(0, 1fr); }
	.mpower-specs > div { grid-template-columns: 6rem minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.mpower-pills span { transition: none; }
}

/* ==========================================================================
   Cart, checkout and order received (WooCommerce blocks)
   ========================================================================== */

.mpower-cart-page,
.mpower-checkout-page { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
/* WooCommerce's block-theme CSS caps these titles at 1000px; line them up with the 1200px content instead. */
main.mpower-cart-page > .wp-block-post-title,
main.mpower-checkout-page > .wp-block-post-title { max-width: 1200px; margin-block: 0 var(--wp--preset--spacing--40); }

/* Checkout header and footer: brand, "Secure checkout", back to cart. */
.mpower-checkout-header__aside { display: flex; align-items: center; gap: 1.5rem; font-size: 0.95rem; }
.mpower-checkout-header__secure { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; color: var(--mp-muted); }
.mpower-checkout-header__secure .mpower-icon { color: var(--mp-brass-deep); }
.mpower-checkout-header__aside a { color: var(--mp-night); font-weight: 600; text-decoration: none; }
.mpower-checkout-header__aside a:hover { color: var(--mp-brass-deep); }

.mpower-footer--slim { padding-block: var(--wp--preset--spacing--40); }
.mpower-footer--slim .mpower-footer__legal { margin-top: 0; padding-top: 0; border-top: 0; }

/* Titles, text and links inside the blocks */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--wp--preset--font-family--body); color: var(--mp-night); }

.wp-block-woocommerce-checkout .wc-block-components-title.wc-block-components-title,
.wp-block-woocommerce-cart .wc-block-cart__totals-title.wc-block-cart__totals-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.45rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--mp-night);
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__description { color: var(--mp-muted); font-size: 0.95rem; }

:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-product-name {
	font-weight: 600;
	color: var(--mp-night);
	text-decoration: none;
}

:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) a.wc-block-components-product-name:hover { color: var(--mp-brass-deep); }

:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-product-metadata { color: var(--mp-muted); font-size: 0.9rem; }

/* Cart item images: photos or line drawings, rounded */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.wc-block-cart-item__image, .wc-block-components-order-summary-item__image) img { border-radius: 10px; }
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image > img { width: 56px; max-width: 56px; }

/* Order summary and cart totals as a white card on wide layouts (phones get WooCommerce's collapsible bar) */
.wc-block-cart.is-large .wc-block-cart__sidebar,
.wc-block-checkout.is-large .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--mp-line);
	border-radius: var(--mp-radius);
}
.wc-block-cart.is-large .wc-block-cart__sidebar { padding: 1.25rem 1.25rem 1.5rem; }
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-panel,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper { border-color: var(--mp-line); }

:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.35rem;
	font-weight: 400;
}

/* Fields */
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-textarea,
.wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	border: 1px solid #C9C7D3;
	border-radius: 10px;
	background-color: var(--wp--preset--color--white);
	color: var(--mp-night);
	font-family: var(--wp--preset--font-family--body);
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-block-components-textarea:focus,
.wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
	border-color: var(--mp-brass);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--mp-marigold) 45%, transparent);
	outline: none;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input label,
.wp-block-woocommerce-checkout .wc-blocks-components-select__label { color: var(--mp-muted); }

/* Radios and checkboxes in the site's ink */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-radio-control__input:checked { border-color: var(--mp-night); }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-radio-control__input:checked::before { background: var(--mp-night); }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--mp-night); border-color: var(--mp-night); }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--mp-paper); }

.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1.5px var(--mp-night);
	border-radius: 10px;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked::after { border-radius: 10px; border-color: #C9C7D3; }

/* Buttons: the main action is a full-width marigold pill, quantity steppers match the fields */
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-button:not(.is-link) {
	border-radius: 999px;
	font-weight: 600;
	min-height: 52px;
}

:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-quantity-selector { border-radius: 999px; border-color: #C9C7D3; }
:is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) .wc-block-components-quantity-selector::after { border-radius: 999px; border-color: #C9C7D3; }

.wp-block-woocommerce-checkout .wc-block-components-checkout-return-to-cart-button { color: var(--mp-night); font-weight: 600; }

/* Empty cart: a short line, then the range on a night panel */
.mpower-empty-cart { max-width: 40rem; margin-bottom: var(--wp--preset--spacing--50); }
.mpower-empty-cart h2 { margin: 0 0 0.5rem; }
.mpower-empty-cart .mpower-lede { margin: 0; color: var(--mp-muted); font-size: var(--wp--preset--font-size--medium); }
.mpower-empty-cart__range { padding: var(--wp--preset--spacing--40); border-radius: var(--mp-radius); }

/* Order received */
.mpower-thanks .wc-block-order-confirmation-status { margin: 0; }
.mpower-thanks .wc-block-order-confirmation-status h1 { margin: 0 0 0.5rem; font-size: var(--wp--preset--font-size--xx-large); }
.mpower-thanks .wc-block-order-confirmation-status p { margin: 0; max-width: 36rem; font-size: var(--wp--preset--font-size--medium); color: var(--mp-on-night-muted); }

.mpower-next-steps .mpower-section__head { margin-bottom: var(--wp--preset--spacing--40); }

.mpower-order-details .wc-block-order-confirmation-summary-list {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: 1.1rem 1.25rem;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr));
	gap: 1rem 1.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--mp-line);
	border-radius: var(--mp-radius);
}

.mpower-order-details .wc-block-order-confirmation-summary-list-item { display: grid; gap: 0.15rem; border: 0; padding: 0; margin: 0; }
.mpower-order-details .wc-block-order-confirmation-summary-list-item__key { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-muted); }
.mpower-order-details .wc-block-order-confirmation-summary-list-item__value { font-weight: 600; overflow-wrap: anywhere; }

.mpower-order-details :is(h2, h3) { font-family: var(--wp--preset--font-family--display); font-weight: 400; font-size: var(--wp--preset--font-size--large); margin: 0 0 1rem; }

.mpower-order-details .wc-block-order-confirmation-totals table { width: 100%; border-collapse: collapse; background: var(--wp--preset--color--white); border: 1px solid var(--mp-line); border-radius: var(--mp-radius); overflow: hidden; }
.mpower-order-details .wc-block-order-confirmation-totals :is(th, td) { padding: 0.8rem 1.1rem; border-bottom: 1px solid var(--mp-line); text-align: left; }
.mpower-order-details .wc-block-order-confirmation-totals :is(tfoot tr:last-child) :is(th, td) { border-bottom: 0; font-family: var(--wp--preset--font-family--display); font-size: 1.2rem; font-weight: 400; }
.mpower-order-details .wc-block-order-confirmation-totals a { color: var(--mp-night); text-decoration: none; font-weight: 600; }

.mpower-order-details > * + * { margin-top: var(--wp--preset--spacing--50); }
.mpower-order-addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); }
.mpower-order-details address { font-style: normal; line-height: 1.6; padding: 1.1rem 1.25rem; background: var(--wp--preset--color--white); border: 1px solid var(--mp-line); border-radius: var(--mp-radius); }
.mpower-order-details .wc-block-order-confirmation-additional-fields-wrapper dl,
.mpower-order-details .wc-block-order-confirmation-additional-fields dl { margin: 0; }

@media (max-width: 600px) {
	.mpower-checkout-header__secure span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.mpower-checkout-header__aside { gap: 1rem; }
	.mpower-order-addresses { grid-template-columns: minmax(0, 1fr); }
	.mpower-empty-cart__range { padding: 1rem; }
}

/* Order received for a booking: the booked time with "Add to calendar" */
.mpower-booked-list { display: grid; gap: 1rem; margin-bottom: var(--wp--preset--spacing--50); }

.mpower-booked {
	padding: 1.4rem 1.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--mp-line);
	border-left: 4px solid var(--mp-marigold);
	border-radius: var(--mp-radius);
	max-width: 46rem;
}

.mpower-booked .is-style-eyebrow { margin: 0; }
.mpower-booked h3 { margin: 0.3rem 0 1rem; font-size: var(--wp--preset--font-size--large); }
.mpower-booked dl { margin: 0 0 1.25rem; display: grid; gap: 0.5rem; }
.mpower-booked dl > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.75rem; }
.mpower-booked dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-muted); padding-top: 0.2rem; }
.mpower-booked dd { margin: 0; font-weight: 600; }
.mpower-booked__cal { margin: 0; display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: center; }
.mpower-booked__cal .wp-element-button { text-decoration: none; }

@media (max-width: 600px) {
	.mpower-booked { padding: 1.15rem; }
	.mpower-booked dl > div { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
}

/* ==========================================================================
   My account (WooCommerce's classic account pages inside the block theme)
   ========================================================================== */

.mpower-account-hero { padding-block: var(--wp--preset--spacing--50); }
.mpower-account-hero .mpower-section__head { margin: 0; }
.mpower-account-hero h1 { margin: 0.25rem 0 0.25rem; font-size: var(--wp--preset--font-size--x-large); }

/* WooCommerce's block-theme CSS caps this at 1000px and floats the menu; lay it out as a grid instead. */
.woocommerce-account main .mpower-account-page .woocommerce { max-width: none; }
.woocommerce-account .mpower-account-page .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 15rem minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}
.woocommerce-account .mpower-account-page .woocommerce::before,
.woocommerce-account .mpower-account-page .woocommerce::after { content: none; }
.woocommerce-account .mpower-account-page .woocommerce-MyAccount-navigation,
.woocommerce-account .mpower-account-page .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
.woocommerce-account .mpower-account-page .woocommerce > .wc-block-components-notice-banner,
.woocommerce-account .mpower-account-page .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.2rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li { padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { text-decoration: none; }
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.6rem 0.9rem;
	border-radius: 10px;
	color: var(--mp-night);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-MyAccount-navigation a:hover { background: var(--wp--preset--color--mist); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--mp-night); color: var(--mp-paper); }
.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px solid var(--mp-line); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--mp-muted); font-weight: 500; }

.woocommerce-MyAccount-content > :first-child { margin-top: 0; }
.woocommerce-MyAccount-content h2 { font-size: var(--wp--preset--font-size--large); margin: var(--wp--preset--spacing--50) 0 1rem; }
.woocommerce-MyAccount-content h2:first-child { margin-top: 0; }
.woocommerce-MyAccount-content h3 { font-size: 1.3rem; }

/* Dashboard */
.mpower-account-next {
	margin-bottom: var(--wp--preset--spacing--40);
	padding: 1.4rem 1.5rem;
	color: var(--mp-on-night);
	border-radius: var(--mp-radius);
	background: radial-gradient(ellipse at 100% 0%, rgba(94, 70, 145, 0.35), transparent 60%), var(--mp-night);
}
.mpower-account-next .is-style-eyebrow { margin: 0; color: var(--mp-brass-light); }
.mpower-account-next h2 { margin: 0.3rem 0 0.25rem; color: var(--mp-paper); }
.mpower-account-next p { margin: 0 0 0.9rem; }
.mpower-account-next .mpower-link-arrow { color: var(--mp-brass-light); }
.mpower-account-tiles.mpower-quicks--grid { margin: 0 0 var(--wp--preset--spacing--40); }

/* Consultations */
.mpower-account-bookings .mpower-booked { max-width: none; }
.mpower-booked__actions { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: center; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--mp-line); }
.mpower-booked__actions .mpower-note { margin: 0; }
.mpower-booked__actions .wp-element-button,
.mpower-booked__cal .wp-element-button { text-decoration: none; }
.mpower-booked__cal a:not(.wp-element-button) { color: var(--mp-night); font-weight: 600; }
.mpower-account-cancel { color: var(--wp--preset--color--kumkum); font-weight: 600; }

.mpower-account-past { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--mp-line); }
.mpower-account-past li { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.5fr) auto; gap: 0.5rem 1rem; padding: 0.8rem 0; border-bottom: 1px solid var(--mp-line); align-items: baseline; }
.mpower-account-status { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-muted); }
.mpower-account-status[data-status="cancelled"] { color: var(--wp--preset--color--kumkum); }

.mpower-account-empty { padding: 1.5rem; background: var(--wp--preset--color--white); border: 1px solid var(--mp-line); border-radius: var(--mp-radius); }
.mpower-account-empty h2 { margin-top: 0; }

.mpower-account-back { margin: 0 0 1rem; }
.mpower-account-back a { color: var(--mp-night); font-weight: 600; text-decoration: none; }

/* Choosing a new time: day links, then time pills from booking.css */
.mpower-account-change { gap: 1rem; }
.mpower-account-days { display: flex; gap: 0.6rem; overflow-x: auto; padding: 0.25rem 0.1rem 0.6rem; }
.mpower-account-days a {
	flex: none;
	display: grid;
	justify-items: center;
	min-width: 4.4rem;
	padding: 0.55rem 0.8rem;
	border: 1px solid var(--mp-brass);
	border-radius: 14px;
	background: var(--wp--preset--color--white);
	color: var(--mp-night);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}
.mpower-account-days a small { font-size: 0.72rem; font-weight: 500; color: var(--mp-muted); }
.mpower-account-days a strong { font-family: var(--wp--preset--font-family--display); font-size: 1.4rem; font-weight: 400; }
.mpower-account-days a[aria-current] { background: var(--mp-night); border-color: var(--mp-night); color: var(--mp-paper); }
.mpower-account-days a[aria-current] small { color: #C9CCE0; }
.mpower-account-move { display: grid; gap: 1.25rem; }
.mpower-account-move__foot { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: center; }
.mpower-account-move__foot .wp-element-button { border: 0; cursor: pointer; }
.mpower-account-move__foot small { color: var(--mp-muted); }

.mpower-account-cancel-form { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.mpower-button-danger {
	padding: 0.8rem 1.4rem 0.75rem;
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	color: #fff;
	background: var(--wp--preset--color--kumkum);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
}
.mpower-account-cancel-form .wp-element-button { text-decoration: none; }

/* Orders table */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-table--order-details {
	border: 1px solid var(--mp-line);
	border-radius: var(--mp-radius);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--wp--preset--color--white);
	overflow: hidden;
}
.woocommerce-account .woocommerce-orders-table :is(th, td),
.woocommerce-account .woocommerce-table--order-details :is(th, td) { padding: 0.8rem 1rem; border-color: var(--mp-line); }
.woocommerce-account .woocommerce-orders-table thead th { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mp-muted); }
.woocommerce-account .woocommerce-orders-table a:not(.button) { color: var(--mp-night); font-weight: 600; }
.woocommerce-account .woocommerce-orders-table .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button.button {
	padding: 0.45rem 0.95rem;
	margin: 0.15rem;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--mp-night);
	background: transparent;
	border: 1px solid var(--mp-brass);
	border-radius: 999px;
}
.woocommerce-account .woocommerce-orders-table .button:hover { background: color-mix(in srgb, var(--mp-brass) 12%, white); }
.woocommerce-account .woocommerce-order-details .wc-item-meta { margin: 0.4rem 0 0; padding: 0; list-style: none; font-size: 0.9rem; color: var(--mp-muted); }
.woocommerce-account .woocommerce-order-details .wc-item-meta p { display: inline; margin: 0; }

/* Addresses */
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after { content: none; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; padding: 1.25rem; background: var(--wp--preset--color--white); border: 1px solid var(--mp-line); border-radius: var(--mp-radius); }
.woocommerce-account .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0 0 0.75rem; font-size: 1.3rem; }
.woocommerce-account .woocommerce-Address-title a { float: none; color: var(--mp-brass-deep); font-weight: 600; }
.woocommerce-account .woocommerce-Address address { font-style: normal; line-height: 1.6; }

/* Sign in and create an account: two cards side by side */
.woocommerce-account .mpower-account-page .u-columns.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); }
.woocommerce-account .mpower-account-page .u-columns.col2-set::before,
.woocommerce-account .mpower-account-page .u-columns.col2-set::after { content: none; }
.woocommerce-account .mpower-account-page .u-columns .u-column1,
.woocommerce-account .mpower-account-page .u-columns .u-column2 {
	float: none;
	width: auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--mp-line);
	border-radius: var(--mp-radius);
}
.woocommerce-account .mpower-account-page .u-columns h2 { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--large); }
.woocommerce-account .mpower-account-page form.login,
.woocommerce-account .mpower-account-page form.register { margin: 0; padding: 0; border: 0; border-radius: 0; }
.woocommerce-account .mpower-account-page form.lost_reset_password { max-width: 32rem; }

/* Fields and buttons in all account forms */
.woocommerce-account .mpower-account-page form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce-account .mpower-account-page form .form-row label { display: block; margin-bottom: 0.35rem; font-size: 0.92rem; font-weight: 600; line-height: 1.4; }
.woocommerce-account .mpower-account-page form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; gap: 0.5rem; align-items: center; font-weight: 400; }
.woocommerce-account .mpower-account-page form :is(input.input-text, select, textarea),
.woocommerce-account .mpower-account-page form .select2-selection {
	width: 100%;
	min-height: 48px;
	padding: 0.65rem 0.9rem;
	font: inherit;
	color: var(--mp-night);
	background: var(--wp--preset--color--white);
	border: 1px solid #D3D1DC;
	border-radius: 10px;
	box-shadow: inset 0 1px 2px rgba(20, 26, 58, 0.04);
}
.woocommerce-account .mpower-account-page form :is(input.input-text, select, textarea):focus {
	border-color: var(--mp-brass);
	outline: 2px solid color-mix(in srgb, var(--mp-marigold) 55%, transparent);
	outline-offset: 1px;
}
.woocommerce-account .mpower-account-page form .password-input { display: block; position: relative; }
.woocommerce-account .mpower-account-page form .show-password-input { top: 50%; transform: translateY(-50%); right: 0.9rem; }
.woocommerce-account .mpower-account-page form fieldset:not(.mpower-booking__times) { margin: 1.5rem 0 1rem; padding: 1.25rem 0 0; border: 0; border-top: 2px solid var(--mp-brass); }
.woocommerce-account .mpower-account-page form fieldset legend { padding: 0 0.6rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: 1.3rem; }

.woocommerce-account .mpower-account-page form .button,
.woocommerce-account .mpower-account-page form .woocommerce-Button {
	min-height: 48px;
	padding: 0.8rem 1.6rem 0.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--mp-night);
	background: var(--mp-marigold);
	border: 0;
	border-radius: 999px;
}
.woocommerce-account .mpower-account-page form .button:hover { background: #F09B32; }
.woocommerce-account .mpower-account-page form.login .button { margin-right: 1rem; }
.woocommerce-account .mpower-account-page .lost_password a { color: var(--mp-brass-deep); font-weight: 600; }
.woocommerce-account .mpower-account-page .woocommerce-privacy-policy-text { font-size: 0.88rem; color: var(--mp-muted); }

@media (max-width: 781px) {
	.woocommerce-account .mpower-account-page .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--40); }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0.4rem; }
	.woocommerce-MyAccount-navigation li { flex: none; }
	.woocommerce-MyAccount-navigation a { padding: 0.5rem 0.9rem; border: 1px solid var(--mp-line); border-radius: 999px; white-space: nowrap; font-size: 0.92rem; }
	.woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }
	.woocommerce-account .mpower-account-page .u-columns.col2-set { grid-template-columns: minmax(0, 1fr); }
	.mpower-account-past li { grid-template-columns: minmax(0, 1fr) auto; }
	.mpower-account-past li span:nth-child(2) { grid-column: 1; grid-row: 2; }
}

/* My account → Account details: "Your data" */
.mpower-account-data { margin-top: var(--wp--preset--spacing--50); padding: 1.5rem; background: var(--wp--preset--color--white); border: 1px solid var(--mp-line); border-radius: var(--mp-radius); }
.mpower-account-data h2 { margin-top: 0; }
.mpower-account-data__actions { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: center; margin: 1rem 0; }
.mpower-account-data__actions form { margin: 0; }
.mpower-account-data__actions .wp-element-button { border: 0; cursor: pointer; }
.mpower-account-erase { padding: 0.8rem 1.3rem 0.75rem; font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.2; color: var(--wp--preset--color--kumkum); background: transparent; border: 1px solid currentColor; border-radius: 999px; cursor: pointer; }
.mpower-account-data .mpower-note { margin: 0; }
