/* WooCommerce styles
--------------------------------------------- */

/* CSS Cascade Layers - Allows overriding WooCommerce !important styles
   while still allowing editor customization via inline styles */
@layer woocommerce-default, theme-overrides;

/* ============================================
   Product Forms & Add to Cart
   ============================================ */

/* Variation selectors */
.woo-variation-swatches .variable-items-wrapper,
.woo-variation-swatches .variable-items-wrapper fieldset {
	border: 0;
}
.single-product form.cart .variations .value,
.single-product form.cart .variations fieldset {
	border: 0;
	padding: 0;
}
.woocommerce div.product form.cart .variations select {
	background-color: #fff !important;
	height: auto;
	padding: .5em 2em .5em 1em;
}

.woocommerce div.product form.cart .variations label {
	margin: 0;
}

/* Quantity selector */
.woocommerce .quantity .qty {
	margin: 0;
	border-radius: 5px;
	padding: .6em;
	width: 3.2em;
}

.wp-block-woocommerce-add-to-cart-form .variations_button>.quantity:not(.wc-block-components-quantity-selector) .qty {
	height: auto;
	padding: .6em;
	width: 4em;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
	opacity: 1;
	border-radius: 5px;
	width: 42px;
	transition: .2s ease;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	background: var(--wp--preset--color--tertiary);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus {
	outline: solid 2px var(--wp--preset--color--main);
	box-shadow: none;
	outline-offset: -2px;
}

.wc-block-components-quantity-selector:after {
	display: none;
}

div[data-block-name="woocommerce/add-to-cart-with-options"] .wc-block-components-quantity-selector {
	transform: none;
}

.wc-block-components-quantity-selector,
div[data-block-name="woocommerce/add-to-cart-with-options-grouped-product-selector"] .wc-block-components-quantity-selector {
	transform: scale(.8);
	transform-origin: left;
	width: auto;
	gap: 5px;
	margin: 0 !important;
	border: none;
}

/* Stepper add-to-cart form quantity selector */
div.wc-block-add-to-cart-form.wc-block-add-to-cart-form--stepper form.cart div.wc-block-components-quantity-selector.quantity:where(:has(input:not([type=hidden]))) {
	border: 1px solid var(--wp--preset--color--border-light);
}


.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	min-width: 55px;
	max-width: 55px;
	padding: .5em;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus {
	box-shadow: inset 0 0 0px 1px currentColor;
	border-color: currentColor;
}

/* Variation pills */
.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pills label {
	width: auto;
	background-color: var(--wp--preset--color--tertiary);
	border: none;
	padding: 8px 15px;
	font-size: var(--wp--preset--font-size--small);
	border-radius: 5px;
	margin-bottom: 0;
	transition: .1s ease;
}

.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill:has(.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill-input:checked),
:where(.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill):where(:focus-within) {
	--pill-color: var(--wp--preset--color--main);
	--pill-background-color: var(--wp--preset--color--main);
	background-color: var(--wp--preset--color--tertiary);
	color: var(--wp--preset--color--contrast);
	outline: solid 2px var(--wp--preset--color--main);
	outline-offset: 0;
}

:where(.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill):where(:focus-within:has(.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill-input:checked)) {
	outline-color: transparent;
}

.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-options {
	width: 100%;
}

.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-options select {
	min-width: 50%;
}

.wp-block-woocommerce-add-to-cart-with-options-variation-selector,
.block-editor-block-list__block.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute {
	gap: var(--wp--preset--spacing--small);
	display: flex;
	flex-direction: column;
}

label.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name {
	margin: 0;
}

/* Add to cart button */
.wp-block-add-to-cart-with-options .wc-block-components-product-button {
	flex: 1;
	max-width: 300px;
}

.wp-block-button.wc-block-components-product-button .wc-block-components-product-button__button {
	width: 100%;
}

.wp-block-group-is-layout-flex:has(.wc-block-components-product-button) {
	gap: 15px;
}

/* ============================================
   Product Gallery
   ============================================ */

.wc-block-product-gallery-large-image__container {
	padding: 0;
}

.wc-block-product-gallery-thumbnails__thumbnail img {
	border-radius: 5px;
}

.wp-block-woocommerce-product-gallery {
	gap: var(--wp--preset--spacing--small);
}

/* ============================================
   Product Page Layout
   ============================================ */

.woocommerce div.product {
	margin: 0;
}

.woocommerce .woocommerce-breadcrumb {
	margin: 0;
}

.woocommerce .wc-block-components-product-price bdi {
	font-weight: normal;
}

.wp-block-post-terms a:hover {
	text-decoration: underline;
}

/* Stock indicator */
.wp-block-woocommerce-product-stock-indicator:empty {
	display: none;
}

.product-meta-row:has(.wp-block-woocommerce-product-stock-indicator:empty) .wp-block-outermost-icon-block {
	display: none;
}

/* Hide .wp-block-outermost-icon-block if it does not have a sibling */
.product-meta-row .wp-block-outermost-icon-block:only-child {
	display: none;
}

.wp-block-woocommerce-add-to-cart-with-options-grouped-product-selector {
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: var(--wp--preset--spacing--medium);
	background: var(--wp--preset--color--base);
	border-radius: 5px;
	padding: var(--wp--preset--spacing--medium);
	border: solid 1px var(--wp--preset--color--border-light);
}

.wp-block-woocommerce-add-to-cart-with-options-grouped-product-selector .wp-element-button {
	font-size: var(--wp--preset--font-size--x-small);
	text-align: center;
}

.wp-block-woocommerce-add-to-cart-with-options-grouped-product-item > .wp-block-group {
	border-bottom: solid 1px var(--wp--preset--color--border-light);
	padding-bottom: 10px;
	padding-top: 10px;
	margin: 0 !important;
}

.wp-block-woocommerce-add-to-cart-with-options-grouped-product-item:first-child > .wp-block-group {
	padding-top: 0;
}

.wp-block-woocommerce-add-to-cart-with-options-grouped-product-item:last-child > .wp-block-group {
	border-bottom: none;
	padding-bottom: 0;
}

.wp-block-post-terms__prefix {
	font-weight: 600;
}

.single-product .wp-block-post-excerpt__excerpt {
	max-width: 525px;
}

/* ============================================
   Product Details & Tabs
   ============================================ */

.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce table.shop_attributes {
	margin: 0;
}

.woocommerce div.product .woocommerce-tabs .panel p:last-of-type {
	margin-bottom: 0;
}

.html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li {
	border: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-weight: 500;
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--wp--preset--color--main) !important;
	color: var(--wp--preset--color--base) !important;
	border-radius: 5px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li:hover {
	border: none !important;
}

.woocommerce-Tabs-panel h2 {
	font-size: var(--wp--preset--font-size--medium);
	margin: var(--wp--preset--spacing--medium) 0;
}

.wp-block-woocommerce-product-reviews-title {
	font-size: var(--wp--preset--font-size--medium);
}

/* ============================================
   Product Attributes Table
   ============================================ */

table.woocommerce-product-attributes {
	background: #fff;
	border-radius: 5px;
	border: none;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--border-light) 80%, var(--wp--preset--color--base) 5%) !important;
	border-spacing: 0;
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	border: none;
}

.woocommerce table.shop_attributes th {
	padding: 1.4rem;
	text-align: left;
}

.woocommerce table.shop_attributes tr:nth-child(even) td,
.woocommerce table.shop_attributes tr:nth-child(even) th {
	background-color: color-mix(in srgb, var(--wp--preset--color--tertiary) 80%, var(--wp--preset--color--base) 4%);
}

/* ============================================
   Product Reviews & Comments
   ============================================ */

.wp-block-woocommerce-product-reviews .wp-block-woocommerce-product-reviews-title {
	margin-bottom: var(--wp--preset--spacing--large);
}

.woocommerce .woocommerce-Reviews .comment-reply-title,
#review_form_wrapper .comment-reply-title {
	margin-bottom: calc(var(--wp--preset--spacing--medium) - 15px);
	display: block;
}

.woocommerce .woocommerce-Reviews #comments {
	margin-bottom: 0;
}

.woocommerce #reviews #comments ol.commentlist {
	padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
	border-radius: 100px;
	background: none;
	padding: 0;
	border: none;
	width: 44px;
	height: 44px;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text,
.wp-block-woocommerce-product-review-template .wp-block-column:has(.wp-block-woocommerce-product-review-content) {
	padding: 1.5em 1.5em .5em;
	background: #fff;
	border-radius: 5px;
	border: none;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--border-light) 80%, var(--wp--preset--color--base) 5%);
	margin: 0px 0 0 60px;
}

.wp-block-woocommerce-product-review-template .wp-block-column:has(.wp-block-woocommerce-product-review-content) {
	margin-left: 0;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text p,
.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta,
.wp-block-woocommerce-product-review-content p {
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-woocommerce-product-review-author-name {
	font-weight: 600;
}

/* ============================================
   Notices & Banners
   ============================================ */

.wc-block-components-notice-banner {
	padding: 10px !important;
	align-items: center;
	border-radius: 5px;
}

.wc-block-components-notice-banner svg {
	width: 20px;
}

.wc-block-components-notice-banner.is-error {
	color: #cc1818;
	border-color: #e9afaf;
}

.wc-block-components-notice-banner.is-success {
	color: #29683a;
	border-color: #95caa2;
}

.wc-block-components-notice-banner.is-warning {
	color: #7d5c0c;
	border-color: #e3cea3;
}

.wc-block-components-notice-banner>.wc-block-components-button {
	margin-top: 0 !important;
}

/* Hide store notices block when wrapper is empty */
.wc-block-store-notices:has(.woocommerce-notices-wrapper:empty),
.wp-block-woocommerce-store-notices:has(.woocommerce-notices-wrapper:empty) {
	display: none;
}

.wp-block-woocommerce-store-notices:has(.woocommerce-notices-wrapper:empty) + .entry-content,
.wp-block-group > .wp-block-woocommerce-store-notices:has(.woocommerce-notices-wrapper:empty) {
	margin-top: 0;
}

.wp-block-group:has(> .wc-block-store-notices .woocommerce-notices-wrapper:empty) {
	margin-bottom: 0 !important;
}

/* ============================================
   Navigation & Buttons
   ============================================ */

:where(.wc-block-next-previous-buttons__button) {
	border-radius: 5px;
}

:where(.wc-block-next-previous-buttons__icon) {
	padding: 0;
}

/* ============================================
   Product Card Hover Effects
   ============================================ */

.ollie-product-button-hover-image {
	position: relative;
	overflow: hidden;
}

.ollie-product-button-hover .wp-block-woocommerce-product-image {
	overflow: hidden;
}

.ollie-product-button-hover .wp-block-woocommerce-product-button {
	flex-direction: row;
	margin: 0;
	gap: 10px;
}

.ollie-product-button-hover .wp-block-woocommerce-product-button > * {
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	width: auto !important;
}

.ollie-product-button-hover .wp-block-woocommerce-product-button a,
.ollie-product-button-hover .wp-block-woocommerce-product-button a button {
	margin: 0;
	padding: 0;
}

.ollie-product-button-hover .wp-block-woocommerce-product-button a:not(:first-child):before {
	content: "\00B7";
	margin: 0 5px 0 8px;
}

.ollie-product-button-hover-group {
	border-radius: 5px;
	transform: translateY(100%);
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	margin: 0 !important;
	position: absolute !important;
	bottom: 12px;
	right: 12px;
	opacity: 0;
}

.ollie-product-button-hover:hover .ollie-product-button-hover-group {
	transform: translateY(0);
	opacity: 1;
}

.ollie-product-button-full-width {
	width: 100%;
	border-radius: 0;
	left: 0;
	bottom: 0;
}

/* Editor preview */
.editor-styles-wrapper .ollie-product-button-hover-group {
	opacity: 1 !important;
	transform: translateY(0) !important;
	position: absolute !important;
}

.editor-styles-wrapper .ollie-product-button-hover-group.is-selected {
	opacity: 1 !important;
	transform: translateY(0) !important;
	position: absolute !important;
}

.block-editor-block-list__layout .ollie-product-button-hover .wp-block-woocommerce-product-price .wc-block-components-product-price__value:empty:before {
	content: "$9.99";
}

/* Mobile: Always show hover group */
@media (max-width: 722px) {
	.ollie-product-button-hover-group {
		opacity: 1;
		transform: translateY(0);
		position: absolute;
	}
}

/* ============================================
   Product Collection Title Override
   ============================================ */

/* Override WooCommerce's medium font size for product titles in collections
   Using cascade layers to override !important without blocking editor customization.
   Cascade layers allow our styles to override WooCommerce's !important styles,
   while inline styles from the editor will still take precedence. */
@layer theme-overrides {
	/* Target product titles within product collection blocks with high specificity */
	.wp-block-woocommerce-product-collection .wp-block-post-title.has-medium-font-size,
	.wp-block-woocommerce-product-collection .wp-block-post-title[class*="has-medium-font-size"],
	.wp-block-woocommerce-product-template .wp-block-post-title.has-medium-font-size,
	.wp-block-woocommerce-product-template .wp-block-post-title[class*="has-medium-font-size"] {
		font-size: var(--wp--preset--font-size--small) !important;
	}
}

/* ============================================
   Product Categories
   ============================================ */

.ollie-search-category-list {
	display: flex;
	gap: 8px;
}

.ollie-search-category-list .taxonomy-product_cat,
.ollie-search-category-list li {
	margin: 0;
}

.wc-block-product-categories__button {
	background: var(--wp--preset--color--main);
	color: var(--wp--preset--color--base);
	border-radius: 5px;
	border: none;
	min-width: 40px;
	justify-content: center;
}

.wc-block-product-categories__button:hover {
	cursor: pointer;
}

.wc-block-product-categories__button:active {
	color: var(--wp--preset--color--base);
}

.wc-block-product-categories__button svg {
	width: 18px;
}

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

.wp-block-query-pagination-numbers a,
.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
	background: var(--wp--preset--color--tertiary);
	transition: .1s ease;
}

.wp-block-query-pagination-numbers a:hover,
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:hover {
	text-decoration: none;
	background: color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 3%);
}

.wc-block-product-template__responsive + .wp-block-group:empty {
	display: none;
}

/* ============================================
   Product Grid & Template
   ============================================ */

.wc-block-product-template__responsive {
	row-gap: 2em;
}

.accordion-content__wrapper {
	margin-top: var(--wp--preset--spacing--medium);
}

.wc-block-next-previous-buttons {
	gap: 10px;
}

.wc-block-next-previous-buttons button {
	background: var(--wp--preset--color--tertiary);
	color: var(--wp--preset--color--main);
}

:where(.wc-block-product-template .wc-block-product)>:not(:last-child) {
    margin-bottom: var(--wp--preset--spacing--small);
    margin-top: 0;
}

.wc-block-product-template .wc-block-product .wp-block-post-title {
	margin-bottom: 0;
}

.wc-block-product-template .wc-block-product .add_to_cart_button {
	font-size: var(--wp--preset--font-size--x-small);
}

.wc-block-product-template .wc-block-product .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--main);
	color: var(--wp--preset--color--base);
	font-size: 0.75rem;
	padding: .25em .75em;
	border: none;
}

.wc-block-product-template .wc-block-product div:not(.wc-block-components-product-image) a.added_to_cart {
	margin-top: 0;
	font-size: 0.8rem;
}

.wp-block-button.wc-block-components-product-button.is-style-outline .wp-block-button__link {
	border-width: 1px;
	outline-width: 1px;
    outline-offset: -2px;
}

.wp-block-woocommerce-product-collection h2.wp-block-heading,
.editor-styles-wrapper .wp-block-woocommerce-product-collection h2.wp-block-heading {
    font-size: var(--wp--preset--font-size--large);
    line-height: var(--wp--custom--line-height--snug);
}

input[type=checkbox].wc-block-product-filter-checkbox-list__input[type="checkbox"] {
	width: auto;
	min-width: auto;
	padding: 8px;
	height: 18px;
	width: 18px;
}

input[type=checkbox].wc-block-product-filter-checkbox-list__input:checked+.wc-block-product-filter-checkbox-list__mark {
	background: var(--wp--preset--color--main);
	color: var(--wp--preset--color--base);
	border-radius: 5px;
	height: 18px;
	width: 18px;
}

.wc-block-product-filter-checkbox-list__input-wrapper:before {
	border-radius: 5px;
	display: none;
}

.wc-block-product-filter-removable-chips__items .wc-block-product-filter-removable-chips__item {
	border-radius: 100px;
	background: var(--wp--preset--color--tertiary);
	border: none;
	width: 100%;
	padding: 8px 10px 8px 15px;
}

.wc-block-product-filter-removable-chips__items {
	gap: 8px;
	width: 100%;
}

.wp-block-woocommerce-product-filter-clear-button button {
	padding: var(--wp--preset--spacing--medium);
}

.wc-block-product-filter-price-slider .text input[type=text] {
	max-width: 70px;
}

/* ============================================
   Sale Badge
   ============================================ */

.editor-styles-wrapper .wc-block-grid__products .wc-block-grid__product .wc-block-components-product-image .wc-block-components-product-sale-badge--align-right,
.wc-block-components-product-image .wc-block-components-product-sale-badge--align-right {
	top: 12px;
	right: 12px;
}

.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-sale-badge {
	margin-top: 8px;
}

/* ============================================
   Product Badges
   ============================================ */

.wc-block-components-product-badge {
	font-size: calc(var(--wp--preset--font-size--x-small) - 0.2rem);
	background: var(--wp--preset--color--tertiary);
	border-radius: 100px;
	border: none;
	padding: 4px 10px;
	font-weight: 500;
	width: fit-content;
}

/* Product Grid Hover Transitions
   ============================================ */


.wp-block-woocommerce-product-collection .wc-block-components-product-price,

.wp-block-woocommerce-product-collection .wc-block-components-product-button .wp-block-button__link {
	transition: transform .15s ease, opacity .15s ease;

}



/* Reduce motion support */

@media (prefers-reduced-motion: reduce) {

	.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-image img,

	.wp-block-woocommerce-product-collection .wc-block-components-product-price,

	.wp-block-woocommerce-product-collection .wc-block-components-product-button .wp-block-button__link {

		transition: none;

	}

}
.wc-block-components-sale-badge {
	background: #effcee;
	color: #519a48;
}

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

.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	padding: 0;
	border-left: none;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.wc-block-cart .wc-block-cart__payment-options {
	border-top: none;
}

.wp-block-woocommerce-proceed-to-checkout-block {
	border-top: none;
}

.wc-block-components-sidebar {
	padding-left: var(--wp--preset--spacing--large);
}

/* Cart items table */
.wc-block-cart__main .wc-block-cart-items {
	border-bottom: none;
}

.wc-block-cart__main .wc-block-cart-items:not(:has(+ *)) {
	margin-bottom: 0 !important;
}

.editor-styles-wrapper table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img,
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img,
.wc-block-components-order-summary .wc-block-components-order-summary-item__image>img {
	border-radius: 5px;
}


.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-formatted-money-amount {
	font-weight: 500;
	font-size: var(--wp--preset--font-size--x-small);
}

.wc-block-cart-item__prices {
	font-size: var(--wp--preset--font-size--x-small);
}

.wc-block-cart-item__wrap,
.wc-block-components-order-summary .wc-block-components-order-summary-item__description {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wc-block-cart-item__wrap > *,
.wc-block-components-order-summary-item__description > *,
.wc-block-components-product-metadata__description p,
.wc-block-components-product-details.wc-block-components-product-details:last-of-type {
	margin: 0 !important;
}

.wc-block-components-product-metadata__description p {
	font-size: 13px;
}

.wc-block-cart-item__quantity,
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity {
	align-self: flex-start !important;
	display: flex;
	flex-direction: row;
	align-items: center;
	width: 100%;
	padding-right: 0 !important;
	margin-top: 6px !important;
}

table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
	line-height: 1.4;
}

.wc-block-cart__main .wc-block-cart-items th {
	text-align: left;
}

.wc-block-cart__main .wc-block-cart-items th:last-child,
.wc-block-cart__main .wc-block-cart-items td:last-child {
	padding-right: 0;
}

.wc-block-cart__main .wc-block-cart-items td {
	padding-left: 0;
	padding-right: 20px;
}

.wc-block-components-product-name:hover {
	text-decoration: none;
}

#ppcp-cart-paylater-messages {
	margin-top: 20px;
}

.ppcp-messages {
	margin-top: var(--wp--preset--spacing--small);
}

.wc-block-cart-link {
	gap: 4px;
}

.wc-block-cart-link svg {
	width: 28px;
}

.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
	margin-top: 0;
}

@container (min-width: 700px) {
    .wc-block-cart__main .wc-block-cart-items td {
        padding: 25px 0 25px 16px;
    }
}

@container (max-width: 699px) {
    .wc-block-components-sidebar-layout {
        gap: var(--wp--preset--spacing--large);
    }
}

/* Classic table styles */

.woocommerce-page table.shop_table_responsive {
	background: var(--wp--preset--color--base);
	border-radius: 5px;
	overflow: hidden;
    box-shadow: 0px 0px 0px 1px hsla(0, 0%, 7%, .11);
	font-size: var(--wp--preset--font-size--x-small);
	border: none;
}

.woocommerce-account .wp-block-post-title, 
.woocommerce-account main .woocommerce, 
.woocommerce-cart .wp-block-post-title, 
.woocommerce-cart main .woocommerce, 
.woocommerce-checkout .wp-block-post-title, 
.woocommerce-checkout main .woocommerce {
	max-width: 100%;
}

.woocommerce-page table.shop_table_responsive .button, 
.woocommerce-page table.shop_table_responsive input.button {
	font-size: var(--wp--preset--font-size--x-small);
}

.woocommerce-page table.shop_table_responsive #coupon_code {
	height: 41px;
	padding: .5em;
	font-size: var(--wp--preset--font-size--x-small);
}

.woocommerce-page table.shop_table_responsive .quantity .qty {
	width: 4em;
	padding: .5em .2em .5em .2em;
}

.woocommerce-page table.shop_table_responsive .variation,
.woocommerce-page table.shop_table_responsive .variation p {
	color: var(--wp--preset--color--secondary);
	margin-top: 5px;
}

#add_payment_method .wc-proceed-to-checkout a.checkout-button, 
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button, 
.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button {
	font-size: var(--wp--preset--font-size--small);
}

.wc-block-components-form .wc-block-components-checkout-step {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.wc-block-components-express-payment-continue-rule {
	margin: var(--wp--preset--spacing--medium) 0;
}

@media only screen and (max-width: 768px) {
    .woocommerce-page table.shop_table_responsive #coupon_code {
        width: 50%;
        margin-right: 10px;
		height: 36px;
    }

	.woocommerce-page table.shop_table_responsive td.actions .coupon .input-text+.button {
		width: auto;
	}

	.woocommerce-page table.shop_table_responsive td.actions .coupon {
		margin-bottom: 10px;
	}

	.woocommerce-page table.shop_table_responsive td.actions {
		padding: var(--wp--preset--spacing--medium);
	}
}

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

.wc-block-mini-cart[aria-hidden="true"] {
	display: none !important;
}

h2.wc-block-mini-cart__title {
	font-size: var(--wp--preset--font-size--base);
}

.wc-block-mini-cart__items .wc-block-mini-cart__products-table .wc-block-cart-items__row {
	border-bottom: 1px solid var(--wp--preset--color--border-light);
	padding: 25px 0 !important;
}

.wc-block-mini-cart__items .wc-block-mini-cart__products-table .wc-block-cart-items__row:last-child {
	border-bottom: none;
}

.wc-block-mini-cart__footer {
	background: var(--wp--preset--color--tertiary);
	border: none;
}

.wc-block-mini-cart__footer:after {
	display: none;
}

.wc-block-mini-cart__badge {
	font-size: 12px;
	margin-left: -40%;
}

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

.wp-block-woocommerce-checkout {
	padding: 0;
}

/* Hide the express checkout box when no express methods render
   (avoids an empty bordered box for shoppers without wallets). */
.wc-block-components-express-payment:not(:has(button, iframe)) {
	display: none;
}

/* Fix: Express Checkout 标题被裁 — Woo 用 absolute + translateY(-50%) 悬在边框上，父容器需 overflow 可见并留出顶部空间 */
.wc-block-components-express-payment--checkout {
	overflow: visible !important;
	padding-top: 6px;
}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container {
	top: 10px !important;
}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__content {
	margin-top: 14px !important;
	padding-top: 24px !important;
}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title {
	background: var(--wp--preset--color--base);
	padding: 0 12px !important;
	line-height: 1.2 !important;
	white-space: nowrap;
}

/* Fix: 手机版 Order summary 重复（与 style.css 同步） */
@media (max-width: 781px) {
	.checkout-order-summary-block-fill-wrapper {
		display: none !important;
	}
}
@container (max-width: 699px) {
	.checkout-order-summary-block-fill-wrapper {
		display: none !important;
	}
}

/* 手机端 City / Province / Postal code 三列同行
   注意：Woo 只在容器 ≥400px 时把 address-form 设为 flex，小屏下是 block，
   光设子项 flex 不生效（这就是之前 Province 仍独占一行的原因），
   所以先补父容器 flex，其余字段保持独占一行。 */
@container (max-width: 399.98px) {
	.wc-block-checkout__billing-fields .wc-block-components-address-form,
	.wc-block-checkout__shipping-fields .wc-block-components-address-form {
		display: flex;
		flex-wrap: wrap;
		gap: 0 8px;
	}
	.wc-block-checkout__billing-fields .wc-block-components-address-form > *,
	.wc-block-checkout__shipping-fields .wc-block-components-address-form > * {
		flex: 0 0 100%;
		max-width: 100%;
	}
	.wc-block-components-address-form .wc-block-components-address-form__first_name,
	.wc-block-components-address-form .wc-block-components-address-form__last_name,
	.wc-block-components-address-form .wc-block-components-address-form__city,
	.wc-block-components-address-form .wc-block-components-state-input,
	.wc-block-components-address-form .wc-block-components-address-form__state,
	.wc-block-components-address-form .wc-block-components-address-form__postcode {
		flex: 1 1 0 !important;
		max-width: none !important;
		min-width: 0 !important;
	}
}
@media (max-width: 399.98px) {
	.wc-block-checkout__billing-fields .wc-block-components-address-form,
	.wc-block-checkout__shipping-fields .wc-block-components-address-form {
		display: flex;
		flex-wrap: wrap;
		gap: 0 8px;
	}
	.wc-block-checkout__billing-fields .wc-block-components-address-form > *,
	.wc-block-checkout__shipping-fields .wc-block-components-address-form > * {
		flex: 0 0 100%;
		max-width: 100%;
	}
	.wc-block-components-address-form .wc-block-components-address-form__first_name,
	.wc-block-components-address-form .wc-block-components-address-form__last_name,
	.wc-block-components-address-form .wc-block-components-address-form__city,
	.wc-block-components-address-form .wc-block-components-state-input,
	.wc-block-components-address-form .wc-block-components-address-form__state,
	.wc-block-components-address-form .wc-block-components-address-form__postcode {
		flex: 1 1 0 !important;
		max-width: none !important;
		min-width: 0 !important;
	}
}
@container (max-width: 699px) {
	.wc-block-components-address-form .wc-block-components-address-form__city,
	.wc-block-components-address-form .wc-block-components-state-input,
	.wc-block-components-address-form .wc-block-components-address-form__state,
	.wc-block-components-address-form .wc-block-components-address-form__postcode {
		flex: 1 1 0 !important;
		max-width: none !important;
		min-width: 0 !important;
	}
	.wc-block-components-address-form .wc-block-components-text-input:has(input[type="tel"]),
	.wc-block-components-address-form .wc-block-components-text-input:has(input[type="email"]) {
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}
@media (max-width: 699px) {
	.wc-block-components-address-form .wc-block-components-address-form__city,
	.wc-block-components-address-form .wc-block-components-state-input,
	.wc-block-components-address-form .wc-block-components-address-form__state,
	.wc-block-components-address-form .wc-block-components-address-form__postcode {
		flex: 1 1 0 !important;
		max-width: none !important;
		min-width: 0 !important;
	}
	.wc-block-components-address-form .wc-block-components-text-input:has(input[type="tel"]),
	.wc-block-components-address-form .wc-block-components-text-input:has(input[type="email"]) {
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}

.wc-block-components-sidebar-layout {
	margin: 0;
}

.wc-block-components-sidebar-layout .wc-block-components-main {
	padding-right: var(--wp--preset--spacing--large);
	border-right: solid 1px hsla(0, 0%, 7%, .11);
	font-size: var(--wp--preset--font-size--small);
}

.wc-block-components-address-card {
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-woocommerce-checkout-order-summary-block {
	border: none;
	border-radius: 0;
}

.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text,
.wc-block-components-order-summary,
.wc-block-components-sidebar .slot-wrapper .wc-block-components-panel,
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-sidebar .wc-block-components-totals-coupon,
.wc-block-components-sidebar .wc-block-components-totals-item {
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text {
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
}

.wp-block-woocommerce-checkout-order-summary-cart-items-block.wc-block-components-totals-wrapper {
	padding-bottom: 30px;
}

.wc-block-cart__submit-button {
	min-height: 48px;
}

/* Order summary */
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
	background: var(--wp--preset--color--main);
	color: var(--wp--preset--color--base);
	border: none;
	box-shadow: none;
	font-size: 12px;
	font-weight: 500;
}

.wc-block-components-order-summary .wc-block-components-order-summary-item__individual-prices,
.wc-block-cart .wc-block-components-product-price {
	padding-top: 0;
	line-height: 1;
	font-size: var(--wp--preset--font-size--x-small);
}

.wc-block-components-order-summary .wc-block-components-order-summary-item__image {
	margin-top: 7px;
}

.wc-block-components-order-summary .wc-block-components-order-summary-item__description .wc-block-components-product-metadata,
.wc-block-components-order-summary .wc-block-components-order-summary-item__description p,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-product-details {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	-webkit-line-clamp: 2;
	font-size: 13px;
}

/* Totals */
.wc-block-components-totals-item__label,
.wc-block-components-panel__button {
	font-size: var(--wp--preset--font-size--small);
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-item__value .wc-block-formatted-money-amount {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	line-height: 1;
}

/* Checkout steps */
.wc-block-components-checkout-step__description {
	color: var(--wp--preset--color--secondary);
}

.wc-block-components-address-form__address_2-toggle {
	font-size: var(--wp--preset--font-size--small);
}

/* Payment methods */
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.wc-block-components-radio-control-accordion-content {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--secondary);
}

.wc-block-components-radio-control--highlight-checked:after {
	border-color: color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 40%);
	border-radius: 5px;
	z-index: 1;
}

.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option {
	border-radius: 5px;
	z-index: 5;
}

.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px currentColor;
}

/* Payment methods */
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.wc-block-components-radio-control-accordion-content {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--secondary);
}

.wc-block-components-radio-control--highlight-checked:after {
	border-color: color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 40%);
	border-radius: 5px;
	z-index: 1;
}

.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option {
	border-radius: 5px;
	z-index: 5;
}

.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px currentColor;
}

/* Blocks checkout payment methods: title left, logo/badges right.
   PayPal registers a logo-only <img> label and Stripe (Optimized
   Checkout) a text-only label, so JS prepends/appends the missing
   half; here the row spreads full width and pushes it right. */
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option-layout,
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__label-group {
	flex: 1 1 auto;
	min-width: 0;
}
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__label {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
}
.wc-block-checkout__payment-method .wc-block-components-radio-control__label > img {
	margin-left: auto;
	flex: none;
}
/* Neutralize Stripe's upe-blocks.css `> span { width: 100% }` for our
   injected spans (it would stretch badges/text full-width and break the
   left/right layout). Scoped so Stripe's own label internals keep theirs. */
.wc-block-checkout__payment-method .wc-block-components-radio-control__label > span.nd-pm-text,
.wc-block-checkout__payment-method .wc-block-components-radio-control__label > span.nd-card-badges {
	width: auto;
}
.wc-block-checkout__payment-method .nd-card-badges {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
	flex: none;
}
.wc-block-checkout__payment-method .nd-card-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 26px;
	min-width: 44px;
	padding: 0 8px;
	border-radius: 4px;
	border: 1px solid #d9d9e0;
	background: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.3px;
	line-height: 1;
	white-space: nowrap;
}
.wc-block-checkout__payment-method .nd-card-badge.is-visa {
	background: #1a1f71;
	border-color: #1a1f71;
	color: #fff;
	font-style: italic;
}
.wc-block-checkout__payment-method .nd-card-badge.is-amex {
	background: #2e77bc;
	border-color: #2e77bc;
	color: #fff;
	font-size: 10px;
}
.wc-block-checkout__payment-method .nd-card-badge.is-mc {
	width: 44px;
	min-width: 44px;
	padding: 0;
	background: #111;
	border-color: #111;
}
.wc-block-checkout__payment-method .nd-card-badge.is-mc i {
	position: relative;
	display: block;
	width: 28px;
	height: 18px;
}
.wc-block-checkout__payment-method .nd-card-badge.is-mc i::before,
.wc-block-checkout__payment-method .nd-card-badge.is-mc i::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	transform: translateY(-50%);
}
.wc-block-checkout__payment-method .nd-card-badge.is-mc i::before {
	left: 1px;
	background: #eb001b;
}
.wc-block-checkout__payment-method .nd-card-badge.is-mc i::after {
	right: 1px;
	background: #f79e1b;
	opacity: 0.9;
}
@media (max-width: 480px) {
	.wc-block-checkout__payment-method .nd-card-badges {
		gap: 4px;
	}
	.wc-block-checkout__payment-method .nd-card-badge {
		height: 22px;
		min-width: 36px;
		padding: 0 6px;
		font-size: 10px;
	}
	.wc-block-checkout__payment-method .nd-card-badge.is-mc {
		width: 36px;
		min-width: 36px;
	}
}

/* Checkboxes */
.wp-block-woocommerce-checkout-fields-block .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] {
	padding: 0;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked {
	background: var(--wp--preset--color--main);
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--wp--preset--color--base);
}

/* Terms and actions */
.wc-block-checkout__terms.wc-block-checkout__terms--with-separator {
	border-color: var(--wp--preset--color--border-light);
}

.wc-block-checkout__terms {
	font-size: var(--wp--preset--font-size--x-small);
	background: var(--wp--preset--color--tertiary);
	border-radius: 5px;
	border: none !important;
	padding: var(--wp--preset--spacing--small) !important;
	margin-bottom: var(--wp--preset--spacing--medium);
}

.wc-block-components-checkout-return-to-cart-button {
	font-size: var(--wp--preset--font-size--small);
}

.wc-block-checkout__actions:not(:has(+ *)) {
	padding-bottom: 0;
}

/* PayPal */
p.ppcp-place-order-description {
	text-align: left !important;
}

#ppcp-checkout-paylater-messages {
	margin-top: 10px;
}

.site-header .wp-block-search__input::placeholder {
	font-size: inherit;
}

.wp-block-search__button {
	padding-left: .6em;
	padding-right: .6em;
}

/* ============================================
   Order Confirmation
   ============================================ */

.wp-block-woocommerce-order-confirmation-status {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--small);
}

.wp-block-woocommerce-order-confirmation-status h1 {
	font-size: var(--wp--preset--font-size--large);
	margin: 0;
}


/* ============================================
   Form Inputs
   ============================================ */

.wc-block-components-form .wc-block-components-text-input input[type=email],
.wc-block-components-form .wc-block-components-text-input input[type=number],
.wc-block-components-form .wc-block-components-text-input input[type=password],
.wc-block-components-form .wc-block-components-text-input input[type=tel],
.wc-block-components-form .wc-block-components-text-input input[type=text],
.wc-block-components-form .wc-block-components-text-input input[type=url],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=number],
.wc-block-components-text-input input[type=password],
.wc-block-components-text-input input[type=tel],
.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=url],
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-checkout__add-note .wc-block-components-textarea {
	color: var(--wp--preset--color--main);
	border-radius: 5px;
	border: solid 1px color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 40%);
	padding: .5em 1em;
	font-size: var(--wp--preset--font-size--small);
	background-color: #fff !important;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.02),
		0 0.5px 1px rgba(0, 0, 0, 0.04);
	height: 3.4em;
}

.wc-block-components-form .wc-block-components-text-input input[type=email]:focus,
.wc-block-components-form .wc-block-components-text-input input[type=number]:focus,
.wc-block-components-form .wc-block-components-text-input input[type=password]:focus,
.wc-block-components-form .wc-block-components-text-input input[type=tel]:focus,
.wc-block-components-form .wc-block-components-text-input input[type=text]:focus,
.wc-block-components-form .wc-block-components-text-input input[type=url]:focus,
.wc-block-components-text-input input[type=email]:focus,
.wc-block-components-text-input input[type=number]:focus,
.wc-block-components-text-input input[type=password]:focus,
.wc-block-components-text-input input[type=tel]:focus,
.wc-block-components-text-input input[type=text]:focus,
.wc-block-components-text-input input[type=url]:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-width: 1px;
}

.wc-block-checkout__add-note .wc-block-components-textarea {
	height: 6rem;
}

.wc-block-components-form .wc-block-components-text-input label,
.wc-block-components-text-input label {
	font-size: var(--wp--preset--font-size--small);
	top: 1.7em;
	color: var(--wp--preset--color--secondary);
}

.wc-blocks-components-select .wc-blocks-components-select__select {
	padding-top: 24px;
	padding-left: 9px;
	height: 3.4em;
	line-height: 1rem;
}

.wc-blocks-components-select .wc-blocks-components-select__label {
	transform: scale(.82);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--secondary);
	transform-origin: left;
}

#ppcp-recaptcha-v2-container:empty {
	display: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	padding: 0;
	margin-bottom: 6px;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	padding: .8em 1em;
    border-radius: 5px;
	width: 100%;
	display: block;
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--wp--preset--color--tertiary);
	font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--wp--preset--color--tertiary);
	text-decoration: none;
}

@media only screen and (min-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-content {
		width: 65%;
	}
}

.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
	background: var(--wp--preset--color--tertiary);
	border: none;
	padding: var(--wp--preset--spacing--medium);
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce table.shop_table th {
	padding: 10px 15px;
}

.woocommerce table.my_account_orders td, .woocommerce table.my_account_orders th {
	padding: 10px 15px;
}

.woocommerce-page table.shop_table_responsive .button, .woocommerce-page table.shop_table_responsive input.button {
	font-size: var(--wp--preset--font-size--x-small);
	margin: 0;
}

.wc-block-components-notice-banner>.wc-block-components-notice-banner__content .wc-forward {
	font-size: var(--wp--preset--font-size--x-small);
}

.woocommerce-Address-title h2 {
	font-size: var(--wp--preset--font-size--medium);
	margin-top: 0;
}

.woocommerce-account .addresses .title .edit {
	float: none;
}

.woocommerce-Address,
.woocommerce-EditAccountForm {
	background: var(--wp--preset--color--tertiary);
	padding: var(--wp--preset--spacing--medium);
	border-radius: 5px;
	border: none;
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce-EditAccountForm {
	padding: var(--wp--preset--spacing--large);
}

/* ============================================
   Responsive Styles
   ============================================ */

@container (max-width: 699px) {
	/* Checkout layout */
	.wc-block-components-sidebar-layout .wc-block-components-main {
		overflow: hidden;
		border-right: none;
		padding: 0;
	}

	.wc-block-components-sidebar-layout .wc-block-components-sidebar {
		padding: 0;
		margin: 0;
	}

	.wc-block-checkout__sidebar {
		margin: 0;
	}

	/* Order summary */
	.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
		border-top: none;
		padding: var(--wp--preset--spacing--small) 0;
		margin: 0;
	}

	.wp-block-woocommerce-checkout-order-summary-cart-items-block.wc-block-components-totals-wrapper {
		padding-bottom: 30px;
		padding-top: 30px;
	}

	.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
		margin-bottom: var(--wp--preset--spacing--large);
	}

	/* Terms */
	.wc-block-checkout__terms.wc-block-checkout__terms--with-separator {
		padding: 0 0 28px 0;
	}

	/* PayPal */
	#ppcp-checkout-paylater-messages {
		padding: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium) 0 var(--wp--preset--spacing--medium);
	}

	#ppcp-cart-paylater-messages {
		margin-bottom: 20px;
	}

	/* Cart table */
	table.wc-block-cart-items {
		margin-bottom: 0 !important;
	}

	table.wc-block-cart-items tbody tr {
		border-bottom: 1px solid hsla(0, 0%, 7%, .11);
		grid-template-columns: auto 1fr auto auto;
	}

	table.wc-block-cart-items tbody tr:last-child {
		border-bottom: none;
	}

	.is-medium table.wc-block-cart-items .wc-block-cart-items__row,
	.is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
	.is-small table.wc-block-cart-items .wc-block-cart-items__row {
		grid-template-columns: auto 1fr auto auto;
		gap: 5px;
		padding: var(--wp--preset--spacing--medium) 0;
	}

	.is-medium table.wc-block-cart-items .wc-block-cart-items__row:first-child,
	.is-mobile table.wc-block-cart-items .wc-block-cart-items__row:first-child,
	.is-small table.wc-block-cart-items .wc-block-cart-items__row:first-child {
		padding-top: 0;
	}

	.is-medium table.wc-block-cart-items .wc-block-cart-items__row:last-child,
	.is-mobile table.wc-block-cart-items .wc-block-cart-items__row:last-child,
	.is-small table.wc-block-cart-items .wc-block-cart-items__row:last-child {
		padding-bottom: 0;
	}

	.wc-block-cart-item__image {
		width: 70px;
	}

	.wc-block-cart table.wc-block-cart-items, 
	.wc-block-cart table.wc-block-cart-items td, 
	.wc-block-cart table.wc-block-cart-items th {
		margin: 0;
	}

	.wc-block-checkout__actions .wc-block-checkout__actions_row {
		column-gap: var(--wp--preset--spacing--medium);
	}

	.wc-block-checkout__actions .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
		width: 100%;
	}

	.wc-block-components-checkout-return-to-cart-button {
		flex-shrink: 0;
	}
}

.wc-block-components-order-summary .wc-block-components-order-summary-item {
	border-bottom: 1px solid var(--wp--preset--color--border-light);
	padding: var(--wp--preset--spacing--small) 0 0 0;
}

.wc-block-components-order-summary .wc-block-components-order-summary-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.wc-block-components-product-metadata {
	font-size: var(--wp--preset--font-size--x-small);
}

@media (max-width: 570px) {
	.wc-block-checkout__terms.wc-block-checkout__terms--with-separator {
		padding: 28px 0 0 0;
	}
}


@container (max-width: 500px) {

	.wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
		text-align: left;
	}

	.wc-block-components-order-summary .wc-block-components-order-summary-item__total-price {
		margin-left: 0;
	}

	.wc-block-components-order-summary .wc-block-components-order-summary__content {
		display: block;
	}

	.wc-block-components-order-summary .wc-block-components-order-summary-item {
		display: grid;
		grid-template-columns: auto 1fr auto auto;
	}

	.wc-block-components-order-summary .wc-block-components-order-summary-item__individual-prices,
	.wc-block-components-product-price {
		flex-wrap: wrap;
		display: flex;
	}
}

/* ============================================
   Product Collection Title Override (Final)
   ============================================ */

/* Final override at end of file to ensure it loads after WooCommerce styles.
   Uses high specificity and !important to override WooCommerce's !important styles.
   Inline styles from the editor will still take precedence over this. */
.wp-block-woocommerce-product-collection .wp-block-post-title.has-medium-font-size,
.wp-block-woocommerce-product-collection .wp-block-post-title[class*="has-medium-font-size"],
.wp-block-woocommerce-product-template .wp-block-post-title.has-medium-font-size,
.wp-block-woocommerce-product-template .wp-block-post-title[class*="has-medium-font-size"],
.wc-block-product-template__responsive .wp-block-post-title.has-medium-font-size,
.wc-block-product-template__responsive .wp-block-post-title[class*="has-medium-font-size"] {
	font-size: var(--wp--preset--font-size--small) !important;
}
/* ============================================
   ND Shop (Glamnetic-style) – archive-product
   ============================================ */

/* Compact hero */
.nd-shop .wp-block-cover {
  min-height: 260px;
}
.nd-shop .wp-block-cover__inner-container {
  max-width: 860px;
  margin: 0 auto;
}

/* Quick-nav pills */
.nd-shop-quicknav .wp-block-buttons {
  gap: 10px;
}
.nd-shop-quicknav .nd-pill .wp-block-button__link {
  border-radius: 100px;
  padding: 8px 18px;
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 500;
  white-space: nowrap;
}
.nd-shop-quicknav .nd-pill .wp-block-button__link:hover {
  background: var(--wp--preset--color--main);
  color: var(--wp--preset--color--base);
  border-color: var(--wp--preset--color--main);
}

/* Layout */
.nd-shop-sidebar {
  min-width: 0;
}
.nd-shop-main {
  min-width: 0;
}
.nd-shop-toolbar {
  align-items: center;
  border-bottom: 1px solid var(--wp--preset--color--border-light);
  padding-bottom: 12px;
}
.nd-shop-toolbar .woocommerce-ordering select,
.nd-shop-toolbar select.orderby {
  border-radius: 100px;
  padding: 8px 14px;
  font-size: var(--wp--preset--font-size--x-small);
}

/* Cards: center + quick add */
.nd-shop-grid .wp-block-post-title {
  font-weight: 500;
  overflow: hidden;
  min-height: 2.8em;
  max-height: 2.8em;
}
.nd-shop-grid .wc-block-components-product-price {
  font-weight: 600;
}
.nd-shop-grid .wp-block-woocommerce-product-button {
  margin-top: 4px;
}
.nd-shop-grid .wp-block-woocommerce-product-button .wp-block-button__link,
.nd-shop-grid button.wc-block-components-product-button__button {
  border-radius: 100px !important;
  font-size: var(--wp--preset--font-size--x-small);
  padding: 10px 20px;
  width: auto;
}
.nd-shop-grid .wc-block-components-product-image {
  border-radius: 12px;
  overflow: hidden;
}
.nd-shop-grid .wc-block-components-product-image img {
  aspect-ratio: 3/4;
  object-fit: cover;
  width: 100%;
}

/* Trust strip */
.nd-shop-trust {
  background: var(--wp--preset--color--tertiary);
  margin-top: var(--wp--preset--spacing--large);
}

/* Desktop: hide mobile-only filter UI (core uses display:flex,
   so !important is required here and on the mobile overrides). */
.nd-shop-toolbar .nd-shop-filter-btn-wrap,
.nd-shop-sidebar .nd-shop-drawer-head,
.nd-shop-backdrop {
  display: none !important;
}

/* Woo gives the sort form its own bottom margin; the toolbar manages gaps. */
.nd-shop-toolbar .woocommerce-ordering {
  margin: 0;
}

/* Mobile: Glamnetic-style shop */
@media (max-width: 781px) {
  /* Compact hero (height governed by the !important rule below,
     since the template sets min-height inline). */
  .nd-shop .wp-block-cover {
    min-height: 200px;
  }

  /* Quick-nav: horizontal snap scroll (scrolls away; toolbar sticks).
     The scroller must be .wp-block-buttons itself: on narrow screens core
     stacks .wp-block-button full-width, so pin them to auto width here. */
  .nd-shop-quicknav {
    background: var(--wp--preset--color--base);
    border-bottom: 1px solid var(--wp--preset--color--border-light);
  }
  .nd-shop-quicknav .wp-block-buttons {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }
  .nd-shop-quicknav .wp-block-buttons::-webkit-scrollbar {
    display: none;
  }
  .nd-shop-quicknav .wp-block-button {
    width: auto !important;
    flex: 0 0 auto;
  }
  .nd-shop-quicknav .nd-pill {
    scroll-snap-align: start;
    flex-shrink: 0;
  }
  .nd-shop-quicknav .nd-pill .wp-block-button__link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  /* Toolbar: filter + sort on row 1, count on row 2 */
  .nd-shop-toolbar {
    position: sticky;
    top: 0;
    z-index: 60;
    background: var(--wp--preset--color--base);
    padding-top: 10px;
    gap: 10px;
  }
  .nd-shop-toolbar .nd-shop-filter-btn-wrap {
    display: flex !important;
    order: 1;
    width: auto !important;
    flex-direction: row !important;
    flex: 0 0 auto;
    margin: 0;
  }
  .nd-shop-toolbar .nd-shop-filter-toggle {
    width: auto !important;
    flex: 0 0 auto;
    margin: 0;
  }
  .nd-shop-filter-btn-wrap .nd-shop-filter-toggle .wp-block-button__link {
    border-radius: 100px;
    min-height: 44px !important;
    display: inline-flex;
    align-items: center;
    padding: 8px 20px !important;
    font-size: var(--wp--preset--font-size--x-small);
    font-weight: 600;
    letter-spacing: 0 !important;
    white-space: nowrap;
  }
  .nd-shop-toolbar .wc-block-catalog-sorting {
    order: 2;
    margin-left: auto;
    flex: 0 1 auto;
    display: flex;
    justify-content: flex-end;
    min-width: 0;
  }
  .nd-shop-toolbar select.orderby {
    min-height: 44px;
    width: 100%;
    max-width: 200px;
  }
  .nd-shop-toolbar .wc-block-product-results-count,
  .nd-shop-toolbar .woocommerce-result-count {
    order: 3;
    flex-basis: 100%;
    font-size: var(--wp--preset--font-size--x-small);
    color: var(--wp--preset--color--secondary);
    margin: 0;
  }

  /* 2-col product grid, compact cards, always-visible quick add */
  .nd-shop-layout {
    flex-direction: column;
  }
  .nd-shop-main {
    flex-basis: auto !important;
  }
  .nd-shop-grid .wc-block-product-template__responsive {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 12px !important;
    row-gap: 20px !important;
  }
  /* NOTE: legacy display:-webkit-box no longer clamps in current Chrome
     (computes to flow-root); the 2-line box is enforced globally above. */
  .nd-shop-grid .wp-block-woocommerce-product-button .wp-block-button__link,
  .nd-shop-grid button.wc-block-components-product-button__button {
    width: 100%;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* Filter drawer */
  .nd-shop-sidebar {
    flex-basis: auto !important;
    position: fixed !important;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(86vw, 340px);
    max-width: 340px;
    background: var(--wp--preset--color--base);
    z-index: 999;
    transform: translateX(-105%);
    transition: transform 0.3s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 20px 100px !important;
    margin: 0 !important;
  }
  body.nd-filters-open .nd-shop-sidebar {
    transform: none;
  }
  .nd-shop-sidebar .nd-shop-drawer-head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    background: var(--wp--preset--color--base);
    padding: 14px 0;
    border-bottom: 1px solid var(--wp--preset--color--border-light);
    z-index: 2;
  }
  .nd-shop-drawer-title {
    font-weight: 600;
  }
  /* Template already prints an H2 inside the filters; the drawer head
     covers the title on mobile so hide the duplicate. */
  .nd-shop-sidebar .wc-block-product-filters > h2:first-child {
    display: none;
  }
  .nd-shop-drawer-close {
    border: none;
    border-radius: 100px;
    background: var(--wp--preset--color--main);
    color: var(--wp--preset--color--base);
    font-size: var(--wp--preset--font-size--x-small);
    font-weight: 600;
    min-height: 44px;
    padding: 8px 18px;
    cursor: pointer;
  }
  .nd-shop-backdrop {
    display: block !important;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    border: none;
    padding: 0;
    cursor: pointer;
  }
  body.nd-filters-open .nd-shop-backdrop {
    opacity: 1;
    pointer-events: auto;
  }
  body.nd-filters-open {
    overflow: hidden;
  }

  /* Mobile cart rows → product cards: thumb + name + remove on one row,
     price/qty/subtotal keep their labelled rows below. Without this the
     lone × row reads as a separate item (thumbnail is hidden by Woo core). */
  body.woocommerce-cart .woocommerce-cart-form tr.cart_item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border: 1px solid var(--wp--preset--color--border-light);
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 12px;
    background: var(--wp--preset--color--base);
  }
  body.woocommerce-cart .woocommerce-cart-form tr.cart_item td {
    background: transparent !important;
    border-left: none;
    border-right: none;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail {
    display: block;
    order: 1;
    flex: 0 0 auto;
    width: 64px;
    padding: 0 12px 0 0 !important;
    border: none !important;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
    width: 64px;
    height: auto;
    border-radius: 8px;
  }
  /* Thumbnail cell has no data-title; kill the stray ": " label. */
  body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail::before {
    display: none;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-name {
    order: 2;
    flex: 1 1 0;
    min-width: 0;
    border: none !important;
    text-align: left !important;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-name::before {
    display: none;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-remove {
    order: 3;
    margin-left: auto;
    border: none !important;
    padding: 0 0 0 8px !important;
    width: auto;
  }
  body.woocommerce-cart .woocommerce-cart-form td.product-price,
  body.woocommerce-cart .woocommerce-cart-form td.product-quantity,
  body.woocommerce-cart .woocommerce-cart-form td.product-subtotal {
    order: 4;
    flex: 1 0 100%;
  }

  /* Touch targets: pagination + filter options */
  .wp-block-query-pagination-numbers .page-numbers,
  .wp-block-query-pagination-next,
  .wp-block-query-pagination-previous {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .wc-block-product-filter-checkbox-list__label {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}

/* ============================================
   ND Shop Load More (all screens)
   Numbers stay as no-JS fallback; hidden only
   when the Load More script is active.
   ============================================ */

.nd-has-load-more .nd-shop-grid .wp-block-query-pagination-numbers,
.nd-has-load-more .nd-shop-grid .wp-block-query-pagination-previous,
.nd-has-load-more .nd-shop-grid .wp-block-query-pagination-next {
  display: none;
}

.nd-shop-load-more-wrap {
  display: none;
  justify-content: center;
  margin-top: var(--wp--preset--spacing--medium);
}

.nd-has-load-more .nd-shop-load-more-wrap {
  display: flex;
}

.nd-shop-load-more-wrap[hidden] {
  display: none !important;
}

.nd-shop-load-more {
  border: none;
  border-radius: 100px;
  background: var(--wp--preset--color--main);
  color: var(--wp--preset--color--base);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 600;
  min-height: 52px;
  padding: 12px 44px;
  cursor: pointer;
}

.nd-shop-load-more:disabled {
  opacity: 0.55;
  cursor: default;
}

@media (max-width: 781px) {
  .nd-shop-load-more-wrap {
    padding: 0 var(--wp--preset--spacing--small);
  }
  .nd-shop-load-more {
    width: 100%;
  }
}

/* ============================================
   ND Single Product (Glamnetic-style PDP)
   ============================================ */

.nd-single-perks {
  margin-top: var(--wp--preset--spacing--small);
}

.nd-single-howto {
  margin-top: var(--wp--preset--spacing--large);
}

/* Sticky add-to-cart bar: all screens, driven by body.nd-atc-visible. */
.nd-single-sticky-atc {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: var(--wp--preset--color--base);
  border-top: 1px solid var(--wp--preset--color--border-light);
  box-shadow: 0 -8px 30px rgba(0,0,0,.08);
  transform: translateY(110%);
  transition: transform 0.25s ease;
}
body.nd-atc-visible .nd-single-sticky-atc {
  transform: none;
}
.nd-single-sticky-thumb {
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 8px;
  flex: 0 0 auto;
}
.nd-single-sticky-info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.nd-single-sticky-title {
  font-size: var(--wp--preset--font-size--x-small);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nd-single-sticky-price {
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 600;
}
.nd-single-sticky-btn {
  flex: 0 0 auto;
  border: none;
  background: var(--wp--preset--color--main);
  color: var(--wp--preset--color--base);
  font-weight: 600;
  min-height: 48px;
  padding: 10px 28px;
  cursor: pointer;
}
@media (min-width: 782px) {
  .nd-single-sticky-atc {
    left: auto;
    right: 24px;
    bottom: 24px;
    border: 1px solid var(--wp--preset--color--border-light);
    border-radius: 16px;
    max-width: 420px;
    padding: 12px 12px 12px 16px;
  }
}

/* ============================================
   ND Single Product v2 (Glamnetic benchmark)
   ============================================ */

.nd-breadcrumb .woocommerce-breadcrumb,
.nd-breadcrumb nav.woocommerce-breadcrumb {
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 400;
  color: var(--wp--preset--color--secondary);
  margin: 0;
  line-height: 1.6;
}
.nd-breadcrumb .woocommerce-breadcrumb a {
  color: var(--wp--preset--color--secondary);
  text-decoration: none;
}
.nd-breadcrumb .woocommerce-breadcrumb a:hover {
  color: var(--wp--preset--color--main);
  text-decoration: underline;
}
/* Sticky gallery: desktop only, follows until the hero columns bottom.
   JS adds .nd-gallery-sticky only when the gallery fits the viewport
   and the info column is taller — otherwise it stays static. */
@media (min-width: 782px) {
  .nd-pdp-hero > .wp-block-column:first-child.nd-gallery-sticky {
    position: sticky;
    top: var(--nd-sticky-top, 96px);
    align-self: flex-start;
  }
}
/* Stock text lives in the ATC form; the green pill above already shows it. */
.nd-single form.cart p.stock,
.nd-single .wp-block-woocommerce-add-to-cart-form p.stock,
.nd-single .wp-block-woocommerce-add-to-cart-form .stock {
  display: none !important;
}
/* Gallery zoom trigger: keep Woo's 36px circle. The mobile global
   `a, button { min-height: 48px }` touch rule would stretch it oval. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  min-height: 36px;
  min-width: 36px;
}
.nd-review-nudge {
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
}
.nd-review-nudge a {
  font-weight: 600;
  text-decoration: underline;
}
.nd-installment {
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
}
.nd-installment strong {
  color: var(--wp--preset--color--main);
}
.nd-stock-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 600;
  background: #effcee;
  color: #29683a;
  border-radius: 100px;
  padding: 6px 14px;
  width: fit-content;
}
.nd-stock-pill.is-low {
  background: #fff4e5;
  color: #9a5b00;
}
.nd-stock-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}
.nd-stock-ship {
  font-weight: 400;
}
.nd-ship-hint {
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
}
.nd-ship-hint strong {
  color: var(--wp--preset--color--main);
}
.nd-pay-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  row-gap: 5px;
  align-items: center;
  margin-top: 4px;
}
@media (min-width: 783px) {
  .nd-single .nd-pay-badges {
    flex-wrap: nowrap;
  }
}
.nd-trust-icons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 12px;
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
  margin-top: 4px;
}
.nd-kit-box ul {
  margin-top: 6px;
}
.nd-kit-box p {
  margin-bottom: 0;
}
.nd-single-faq details.wp-block-details {
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 12px;
  padding: 12px 16px;
  background: var(--wp--preset--color--base);
}
.nd-single-faq details.wp-block-details summary {
  font-weight: 600;
  font-size: var(--wp--preset--font-size--small);
  cursor: pointer;
}
.nd-review-banner,
.nd-cross-sell-banner {
  max-width: 860px;
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px dashed var(--wp--preset--color--border-light);
  background: var(--wp--preset--color--tertiary);
  border-radius: 12px;
  padding: 14px 18px;
  font-size: var(--wp--preset--font-size--small);
}
.nd-review-banner[hidden],
.nd-installment[hidden],
.nd-stock-pill[hidden],
.nd-ship-hint[hidden],
.nd-review-nudge[hidden] {
  display: none !important;
}
.nd-review-banner span,
.nd-cross-sell-banner span {
  color: var(--wp--preset--color--secondary);
  font-size: var(--wp--preset--font-size--x-small);
}
.nd-review-banner a,
.nd-cross-sell-banner a {
  margin-left: auto;
  font-weight: 600;
  white-space: nowrap;
}

.nd-pay-lock {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
  margin-right: 4px;
}
.nd-pay-lock svg {
  flex: none;
}
.nd-pay-pill {
  display: inline-flex;
  align-items: center;
  flex: none;
  height: 24px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 6px;
  padding: 1px 7px;
  background: var(--wp--preset--color--base);
  white-space: nowrap;
}
.nd-pay-badges .nd-pay-pill svg,
.nd-cart-trust .nd-pay-pill svg {
  display: block;
  height: 15px;
  width: auto;
}

/* ============================================
   ND Cart (classic shortcode cart)
   ============================================ */

.nd-cart-progress {
  margin-bottom: var(--wp--preset--spacing--small);
}
.nd-cart-trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: var(--wp--preset--spacing--small);
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
}
.nd-cart-trust .nd-pay-lock {
  margin-right: 4px;
}
.nd-cart-trust-note {
  flex-basis: 100%;
}
.nd-cart-xsel {
  margin-top: var(--wp--preset--spacing--large);
}
.nd-cart-xsel-title {
  font-size: var(--wp--preset--font-size--medium);
  margin: 0 0 4px;
}
.nd-cart-xsel-sub {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--secondary);
  margin: 0 0 var(--wp--preset--spacing--small);
}
.nd-cart-xsel-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--small);
}
.nd-cart-xsel-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: center;
}
.nd-cart-xsel-img img {
  aspect-ratio: 3/4;
  object-fit: cover;
  width: 100%;
  border-radius: 12px;
}
.nd-cart-xsel-name {
  font-size: var(--wp--preset--font-size--small);
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 2;
  min-height: 2.8em;
}
.nd-cart-xsel-price {
  font-size: var(--wp--preset--font-size--small);
  font-weight: 600;
}
/* Specificity (0,3,0): must beat core `.wp-elements-2 a:where(...)` (0,1,1)
   which recolors every non-button link to foreground — otherwise the
   label inherits dark text on the dark pill and looks empty. */
.woocommerce-cart .nd-cart-xsel-grid .nd-cart-xsel-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 20px;
  border-radius: 100px;
  background: var(--wp--preset--color--main);
  color: var(--wp--preset--color--base);
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 600;
  text-decoration: none;
}

@media (max-width: 781px) {
  .nd-trust-icons {
    grid-template-columns: 1fr 1fr;
  }
  .nd-cart-xsel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 12px;
  }

  /* PDP tabs → segmented pills. Desktop horizontal tabs stack into
     a dark bar + grey text on mobile; pills match the site language.
     NOTE: `.wc-tabs.wc-tabs` is intentional — Woo's 4-class tab selectors
     need 5 classes to override without !important. */
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: 0 0 var(--wp--preset--spacing--small);
    padding: 0 0 4px;
    scrollbar-width: none;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs::-webkit-scrollbar {
    display: none;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs::before {
    display: none;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs li {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs li::before,
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs li::after {
    display: none;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 8px 20px;
    border: 1px solid var(--wp--preset--color--border-light);
    border-radius: 100px;
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--main);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 500;
    white-space: nowrap;
    text-decoration: none;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs li.active {
    /* !important: desktop active rule uses !important for its dark bar. */
    background: none !important;
    border-radius: 0;
  }
  .nd-single .woocommerce-tabs ul.tabs.wc-tabs.wc-tabs li.active a {
    background: var(--wp--preset--color--main);
    border-color: var(--wp--preset--color--main);
    color: var(--wp--preset--color--base);
  }
}

/* ============================================
   ND Cart P0 — two-column sticky + empty hero + mini drawer
   ============================================ */

/* Filled cart: form + totals side by side on desktop.
   Progress / notices / cross-sell must span full width, otherwise grid
   auto-placement squeezes them into the narrow column. */
@media (min-width: 782px) {
  .woocommerce-cart .nd-cart-body .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: var(--wp--preset--spacing--medium);
    align-items: start;
  }
  .woocommerce-cart .nd-cart-body .woocommerce > .nd-cart-progress,
  .woocommerce-cart .nd-cart-body .woocommerce > .woocommerce-notices-wrapper,
  .woocommerce-cart .nd-cart-body .woocommerce > .nd-cart-xsel {
    grid-column: 1 / -1;
  }
  /* xsel moved out of the grid by JS (sibling right after .woocommerce):
     keep the same visual rhythm as the old grid gap + section margin. */
  .woocommerce-cart .nd-cart-body .entry-content > section.nd-cart-xsel {
    margin-top: calc(var(--wp--preset--spacing--large) + var(--wp--preset--spacing--medium));
  }
  .woocommerce-cart .nd-cart-body .woocommerce > form.woocommerce-cart-form {
    grid-column: 1;
    grid-row: auto;
    min-width: 0;
    align-self: start;
  }
  .woocommerce-cart .nd-cart-body .woocommerce > .cart-collaterals {
    grid-column: 2;
    min-width: 0;
    align-self: start;
  }
  /* Dual sticky: JS adds .nd-stick to the SHORTER column only.
     The taller column scrolls normally. JS also moves xsel out of this
     grid, so the sticky parent ends at the two-column bottom — the
     sticky element stops before xsel and never overlaps it (图2 bug). */
  .woocommerce-cart .nd-cart-body .woocommerce > .nd-stick {
    position: sticky;
    top: 96px;
  }
  .woocommerce-cart .cart-collaterals .cart_totals {
    float: none;
    width: 100%;
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border-light);
    border-radius: 12px;
    padding: var(--wp--preset--spacing--medium);
  }
  /* Kill browser-default h2 top margin — the card already has padding,
     otherwise they stack into the dead strip above "Cart totals". */
  .woocommerce-cart .cart-collaterals .cart_totals > h2:first-child {
    margin-top: 0;
  }
  .woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button {
    width: 100%;
    min-height: 52px;
    border-radius: 100px !important;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
@media (max-width: 781px) {
  .woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button {
    width: 100%;
    min-height: 52px;
    border-radius: 100px !important;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

/* Empty-cart hero (rendered above the default notice). */
.nd-cart-empty-hero {
  text-align: center;
  max-width: 560px;
  margin: 0 auto var(--wp--preset--spacing--medium);
}
.nd-cart-empty-kicker {
  font-size: var(--wp--preset--font-size--x-small);
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--wp--preset--color--secondary);
  margin: 0 0 8px;
}
.nd-cart-empty-title {
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  line-height: 1.2;
  margin: 0 0 16px;
}
.nd-cart-empty-ctas {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.nd-cart-empty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 24px;
  border-radius: 100px;
  border: 1px solid var(--wp--preset--color--main);
  text-decoration: none;
  font-weight: 600;
  font-size: var(--wp--preset--font-size--small);
}
.nd-cart-empty-btn.is-primary {
  background: var(--wp--preset--color--main);
  color: var(--wp--preset--color--base);
}

/* Mini-cart drawer header: vertically center title + close button.
   Woo floats the close button absolute (top:12px) while the title flows
   on its own, so they drift apart. Pin both to a shared 44px line. */
.wc-block-mini-cart__drawer h2.wc-block-mini-cart__title {
  min-height: 44px;
  align-items: center;
}
.wc-block-mini-cart__drawer .wc-block-components-drawer__close {
  top: 16px !important;
  width: 44px;
  height: 44px;
  margin: 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* Mini-cart drawer upgrades (injected). */
.nd-mini-cart-upgrades {
  padding: 8px 16px;
  border-top: 1px solid var(--wp--preset--color--border-light);
}
/* Tighten the items→footer boundary: Woo ships 24px footer top padding
   plus our injected blocks' margins, stacking into a dead strip. */
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer {
  padding-top: 12px;
}
.nd-mini-progress-msg {
  font-size: 13px;
  font-weight: 600;
  margin: 0 0 8px;
}
.nd-mini-progress-track {
  height: 8px;
  border-radius: 999px;
  background: var(--wp--preset--color--tertiary);
  overflow: hidden;
}
/* Loading state while fresh progress is being fetched. */
.nd-mini-cart-upgrades.is-loading .nd-mini-progress-msg {
  opacity: 0.55;
}
.nd-mini-cart-upgrades.is-loading .nd-mini-progress-track {
  position: relative;
}
.nd-mini-cart-upgrades.is-loading .nd-mini-progress-track::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, 0.75) 50%, transparent 80%);
  animation: nd-mini-shimmer 1s infinite;
}
@keyframes nd-mini-shimmer {
  from { transform: translateX(-100%); }
  to { transform: translateX(100%); }
}
.nd-mini-progress-fill {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: inherit;
  background: var(--wp--preset--color--primary);
  transition: width 0.5s cubic-bezier(0.22, 0.9, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
  .nd-mini-progress-fill,
  .nd-mini-upsell-body,
  .nd-mini-upsell-title::after,
  .nd-mini-upsell-add,
  .nd-mini-cart-upgrades.is-loading .nd-mini-progress-track::after {
    transition: none !important;
    animation: none !important;
  }
}
.nd-mini-upsell {
  margin-top: 12px;
}
/* When the upsell lives inside the scrollable items list, blend into flow. */
.wc-block-mini-cart__items .nd-mini-upsell,
.wp-block-woocommerce-mini-cart-items .nd-mini-upsell {
  margin: 0;
  border-top: 1px solid var(--wp--preset--color--border-light);
  padding-top: 0;
}
.nd-mini-upsell-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  list-style: none;
  cursor: pointer;
}
.nd-mini-upsell-title::-webkit-details-marker {
  display: none;
}
.nd-mini-upsell-title::marker {
  content: '';
}
.nd-mini-upsell-title::after {
  content: '+';
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  transition: transform 0.25s ease;
}
.nd-mini-upsell[open] > .nd-mini-upsell-title::after {
  transform: rotate(45deg);
}
/* Animated expand/collapse for the upsell body. */
.nd-mini-upsell-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s cubic-bezier(0.22, 0.9, 0.3, 1);
  overflow: hidden;
}
.nd-mini-upsell[open] > .nd-mini-upsell-body {
  grid-template-rows: 1fr;
}
.nd-mini-upsell-body > .nd-mini-upsell-grid {
  min-height: 0;
  min-width: 0;
  overflow-y: hidden;
}
.nd-mini-upsell-grid {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
  scrollbar-width: thin;
}
.nd-mini-upsell-grid::-webkit-scrollbar {
  height: 4px;
}
.nd-mini-upsell-grid::-webkit-scrollbar-thumb {
  background: var(--wp--preset--color--border-light);
  border-radius: 999px;
}
.nd-mini-upsell-card {
  flex: 0 0 104px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
}
.nd-mini-upsell-img img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: 8px;
}
.nd-mini-upsell-name {
  font-weight: 500;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 2;
  min-height: 2.6em;
}
.nd-mini-upsell-price {
  font-weight: 700;
}
.nd-mini-upsell-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  border-radius: 100px;
  background: var(--wp--preset--color--main);
  color: var(--wp--preset--color--base);
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.15s ease, opacity 0.2s ease;
}
.nd-mini-upsell-add:hover {
  opacity: 0.88;
}
.nd-mini-upsell-add:active {
  transform: scale(0.96);
}
.nd-mini-upsell-add[data-busy] {
  opacity: 0.65;
  pointer-events: none;
}
.nd-mini-upsell-add[data-done] {
  pointer-events: none;
}

/* ============================================
   ND Checkout — classic payment methods (Blocks-style polish)
   Classic shortcode checkout (#payment ul.wc_payment_methods) refined to
   match the reference: "Credit card" + card badges right, "PayPal" + compact
   mark right, muted description row, custom radios, 8px card.
   ============================================ */

body.woocommerce-checkout #payment {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: none;
}

body.woocommerce-checkout #payment ul.wc_payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--wp--preset--color--base);
}

body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	background: var(--wp--preset--color--base);
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border-light);
}

body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:last-child {
	border-bottom: 0;
}

/* Custom radio to match Blocks accordion */
body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio {
	-webkit-appearance: none;
	appearance: none;
	flex: none;
	width: 20px;
	height: 20px;
	margin: 0 0 0 20px;
	padding: 0;
	border: 1.5px solid #767676;
	border-radius: 50%;
	background: #fff;
	display: inline-grid;
	place-content: center;
	cursor: pointer;
	vertical-align: middle;
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--wp--preset--color--main);
	transform: scale(0);
	transition: transform 0.15s ease;
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio:checked {
	border-color: var(--wp--preset--color--main);
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio:checked::before {
	transform: scale(1);
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio:focus-visible {
	outline: 2px solid var(--wp--preset--color--main);
	outline-offset: 2px;
}

/* Label row: title left, badges/logo pushed right */
body.woocommerce-checkout #payment ul.wc_payment_methods li > label {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 18px 20px 18px 12px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--wp--preset--color--main);
	cursor: pointer;
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > label img {
	max-height: 26px;
	width: auto;
	margin-left: auto;
	flex: none;
}

/* Card brand badges (Stripe row, right side) */
body.woocommerce-checkout #payment .nd-card-badges {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
	flex: none;
}

body.woocommerce-checkout #payment .nd-card-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 26px;
	min-width: 44px;
	padding: 0 8px;
	border-radius: 4px;
	border: 1px solid #d9d9e0;
	background: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.3px;
	line-height: 1;
	white-space: nowrap;
}

body.woocommerce-checkout #payment .nd-card-badge.is-visa {
	background: #1a1f71;
	border-color: #1a1f71;
	color: #fff;
	font-style: italic;
}

body.woocommerce-checkout #payment .nd-card-badge.is-amex {
	background: #2e77bc;
	border-color: #2e77bc;
	color: #fff;
	font-size: 10px;
}

body.woocommerce-checkout #payment .nd-card-badge.is-more {
	min-width: 36px;
	background: #fff;
	color: var(--wp--preset--color--secondary);
	font-weight: 600;
}

/* Mastercard: black pill with overlapping red/amber circles */
body.woocommerce-checkout #payment .nd-card-badge.is-mc {
	width: 44px;
	min-width: 44px;
	padding: 0;
	background: #111;
	border-color: #111;
}

body.woocommerce-checkout #payment .nd-card-badge.is-mc i {
	position: relative;
	display: block;
	width: 28px;
	height: 18px;
}

body.woocommerce-checkout #payment .nd-card-badge.is-mc i::before,
body.woocommerce-checkout #payment .nd-card-badge.is-mc i::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	transform: translateY(-50%);
}

body.woocommerce-checkout #payment .nd-card-badge.is-mc i::before {
	left: 1px;
	background: #eb001b;
}

body.woocommerce-checkout #payment .nd-card-badge.is-mc i::after {
	right: 1px;
	background: #f79e1b;
	opacity: 0.9;
}

/* Compact PayPal mark (right side, matches reference) */
body.woocommerce-checkout #payment .nd-paypal-logo {
	display: inline-flex;
	align-items: baseline;
	margin-left: auto;
	flex: none;
	font-size: 19px;
	font-weight: 800;
	font-style: italic;
	letter-spacing: -0.3px;
	line-height: 1;
}

body.woocommerce-checkout #payment .nd-paypal-logo em {
	font-style: italic;
}

body.woocommerce-checkout #payment .nd-paypal-logo em:first-child {
	color: #003087;
}

body.woocommerce-checkout #payment .nd-paypal-logo em:last-child {
	color: #0079c1;
}

/* Description / Stripe element box: muted row attached under the label */
body.woocommerce-checkout #payment ul.wc_payment_methods li > div.payment_box {
	flex-basis: 100%;
	margin: 0;
	padding: 16px 20px 18px;
	background: var(--wp--preset--color--tertiary);
	border-top: 1px solid var(--wp--preset--color--border-light);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.6;
	color: var(--wp--preset--color--secondary);
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > div.payment_box p {
	margin: 0 0 8px;
	font-size: inherit;
	color: inherit;
}

body.woocommerce-checkout #payment ul.wc_payment_methods li > div.payment_box p:last-child {
	margin-bottom: 0;
}

/* Stripe Payment Element breathing room inside the muted box */
body.woocommerce-checkout #payment .payment_method_stripe div.payment_box #wc-stripe-upe-element,
body.woocommerce-checkout #payment .payment_method_stripe div.payment_box .wc-stripe-upe-element {
	margin-top: 4px;
}

body.woocommerce-checkout #payment .payment_method_stripe div.payment_box .wc-stripe-payment-method-instruction,
body.woocommerce-checkout #payment .payment_method_stripe div.payment_box .testmode-info {
	font-size: 13px;
}

/* Place-order row stays clean white with a top divider */
body.woocommerce-checkout #payment div.form-row.place-order {
	margin: 0;
	padding: 18px 20px 20px;
	background: var(--wp--preset--color--base);
	border-top: 1px solid var(--wp--preset--color--border-light);
}

body.woocommerce-checkout #payment #place_order {
	width: 100%;
	min-height: 52px;
	border-radius: 100px;
}

@media (max-width: 480px) {
	body.woocommerce-checkout #payment ul.wc_payment_methods li > input.input-radio {
		margin-left: 14px;
	}

	body.woocommerce-checkout #payment ul.wc_payment_methods li > label {
		padding: 15px 14px 15px 10px;
	}

	body.woocommerce-checkout #payment .nd-card-badges {
		gap: 4px;
	}

	body.woocommerce-checkout #payment .nd-card-badge {
		height: 22px;
		min-width: 36px;
		padding: 0 6px;
		font-size: 10px;
	}

	body.woocommerce-checkout #payment .nd-card-badge.is-mc {
		width: 36px;
		min-width: 36px;
	}

	body.woocommerce-checkout #payment .nd-paypal-logo {
		font-size: 17px;
	}

	body.woocommerce-checkout #payment ul.wc_payment_methods li > div.payment_box {
		padding: 14px 14px 16px;
	}
}
/* Full-bleed opt-out: these parents intentionally carry 0 horizontal padding,
   so core's -32px compensation pushes children past the viewport (32px
   horizontal scrollbar). Margin 0 keeps them exactly full-bleed. Scoped to
   the affected sections only — the global rule stays for real full-bleed. */
body .site-header > .alignfull,
body .nd-cart-head.alignfull,
body .nd-cart-body.alignfull {
  margin-left: 0;
  margin-right: 0;
}

/* ============================================
   ND Cart page round 2 — coupon in summary, continue link, sticky bar
   (all rules scoped to .woocommerce-cart; bar additionally mobile-only)
   ============================================ */

/* Coupon relocated into the summary column (JS move, cart page only).
   Note: JS moves the whole `td.actions .coupon` div into the card,
   so input+button are nested inside `.coupon` — flex must target it. */
.woocommerce-cart .nd-cart-coupon-card {
  background: var(--wp--preset--color--base);
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 12px;
  padding: 14px;
  margin-bottom: var(--wp--preset--spacing--small);
  display: flex;
  gap: 8px;
}
.woocommerce-cart .nd-cart-coupon-card .coupon {
  display: flex;
  gap: 8px;
  flex: 1;
  min-width: 0;
  width: 100%;
  float: none;
  margin: 0;
  padding: 0;
  align-items: center;
}
.woocommerce-cart .nd-cart-coupon-card .coupon label {
  display: none;
}
.woocommerce-cart .nd-cart-coupon-card #coupon_code,
.woocommerce-cart .nd-cart-coupon-card .input-text {
  flex: 1;
  min-width: 0;
  width: auto;
  margin: 0;
}
.woocommerce-cart .nd-cart-coupon-card .button {
  flex-shrink: 0;
  width: auto;
  margin: 0;
  white-space: nowrap;
  font-size: var(--wp--preset--font-size--x-small) !important;
}

/* Continue shopping link under the checkout button. */
.woocommerce-cart .nd-continue-shopping {
  display: block;
  text-align: center;
  margin-top: 12px;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--secondary);
  text-decoration: none;
}
.woocommerce-cart .nd-continue-shopping:hover {
  text-decoration: underline;
}

/* Mobile sticky summary bar (rendered on filled cart only). */
.nd-cart-stickybar {
  display: none;
}
@media (max-width: 781px) {
  body.woocommerce-cart {
    padding-bottom: 88px;
  }
  .woocommerce-cart .nd-cart-stickybar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: var(--wp--preset--color--base);
    border-top: 1px solid var(--wp--preset--color--border-light);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08);
  }
  .nd-cart-stickybar-info {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
  }
  .nd-cart-stickybar-label {
    font-size: 12px;
    color: var(--wp--preset--color--secondary);
  }
  .nd-cart-stickybar-amount {
    font-size: 1.15rem;
    font-weight: 700;
  }
  /* Same trap as xsel-add: core `.wp-elements-2 a:where(...)` (0,1,1)
     recolors links to foreground and beats a lone class — keep (0,3,0)
     so the label stays white on the dark pill. */
  body.woocommerce-cart .nd-cart-stickybar .nd-cart-stickybar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 28px;
    border-radius: 100px;
    background: var(--wp--preset--color--main);
    color: #fff !important;
    font-weight: 600;
    font-size: var(--wp--preset--font-size--small);
    text-decoration: none;
    white-space: nowrap;
  }
}
/* ============================================
   Account Navigation Enhancements
   ============================================ */

.woocommerce-account .woocommerce-MyAccount-navigation li {
  position: relative;
  padding-left: 40px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li::before {
  content: attr(data-icon);
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--wp--preset--font-size--x-small);
  color: var(--wp--preset--color--secondary);
  width: 20px;
  text-align: center;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  transition: color .15s ease, background .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  color: var(--wp--preset--color--main);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active::before {
  color: var(--wp--preset--color--main);
}

/* ============================================
   My Account Orders Table
   ============================================ */

.woocommerce table.my_account_orders {
  width: 100%;
  border-collapse: collapse;
  margin-top: var(--wp--preset--spacing--medium);
}

.woocommerce table.my_account_orders th {
  background: var(--wp--preset--color--tertiary);
  color: var(--wp--preset--color--base);
  font-weight: 600;
  padding: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium);
  text-transform: uppercase;
  font-size: var(--wp--preset--font-size--x-small);
  border: 1px solid var(--wp--preset--color--border-light);
}

.woocommerce table.my_account_orders td {
  padding: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium);
  border-bottom: 1px solid var(--wp--preset--color--border-light);
  vertical-align: middle;
}

.woocommerce table.my_account_orders tbody tr {
  transition: background .15s ease;
}

.woocommerce table.my_account_orders tbody tr:hover {
  background: color-mix(in srgb, var(--wp--preset--color--tertiary) 90%, var(--wp--preset--color--base) 10%);
}

.woocommerce table.my_account_orders td:first-child {
  font-weight: 500;
  color: var(--wp--preset--color--main);
}

.woocommerce-table-responsive .woocommerce-table {
  overflow-x: auto;
}


/* ============================================
   My Account Content Area
   ============================================ */

.woocommerce-MyAccount-content {
  padding: var(--wp--preset--spacing--large) 0;
}

.woocommerce-MyAccount-content > .wc-block-group {
  background: var(--wp--preset--color--base);
  border-radius: 12px;
  padding: var(--wp--preset--spacing--large);
  margin-bottom: var(--wp--preset--spacing--large);
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
}

.woocommerce-MyAccount-content > .wc-block-group:last-child {
  margin-bottom: 0;
}

.woocommerce-MyAccount-content .wp-block-group.has-background {
  border-radius: 12px;
  overflow: hidden;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  margin-top: var(--wp--preset--spacing--medium);
  margin-bottom: var(--wp--preset--spacing--small);
  padding-bottom: var(--wp--preset--spacing--medium);
  border-bottom: 1px solid var(--wp--preset--color--border-light);
}

.woocommerce-MyAccount-content p {
  margin-bottom: var(--wp--preset--spacing--small);
  line-height: 1.6;
}

/* Orders list styling */
.woocommerce-MyAccount-content .woocommerce-Order {
  border: none;
  border-radius: 8px;
  margin-bottom: var(--wp--preset--spacing--medium);
  overflow: hidden;
}

.woocommerce-MyAccount-content .woocommerce-Order .order-number {
  color: var(--wp--preset--color--secondary);
  font-size: var(--wp--preset--font-size--small);
  text-transform: uppercase;
}

.woocommerce-MyAccount-content .woocommerce-Order .order-details {
  padding: var(--wp--preset--spacing--medium);
}

.woocommerce-MyAccount-content .woocommerce-Order .order-details dt {
  font-weight: 500;
  color: var(--wp--preset--color--main);
  font-size: var(--wp--preset--font-size--small);
}

.woocommerce-MyAccount-content .woocommerce-Order .order-details dd {
  margin: 0;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--secondary);
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  .woocommerce table.my_account_orders tbody tr:hover {
    background: none !important;
  }
  .woocommerce-MyAccount-content > .wc-block-group {
    transition: none !important;
  }
}

/* PayPal iframe z-index override */
[id^="zoid-paypal-buttons"] > iframe.component-frame {
    z-index: 1 !important;
}

/* Quantity selector button styling */
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
    font-size: 1.5rem;
    color: #8e8e8e;
    font-family: "Fraunces", serif;
}

/* PayPal iframe z-index override */

/* Quantity selector button styling */
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
    font-size: 1.5rem;
    color: #8e8e8e;
    font-family: "Fraunces", serif;
}
