/*
 * SMYN — WooCommerce restyle (spec §8.1).
 * Adapts the block-08 shop-card look to the light shop: cream cards, 4:5 imagery,
 * italic terracotta prices, caps underline CTAs, hairline tables, champagne surfaces.
 * Loads after smyn-overrides on commerce screens only (handle: smyn-woo).
 * Palette: tokens.css custom properties only. Radius 0 everywhere. Breakpoints 1024/767.
 */

/* ============================================================
   0. Foundations — scope, fonts, radius, neutralised leftovers
   ============================================================ */

.woocommerce,
.woocommerce-page {
	font-family: var(--smyn-font-label);
}

/* Site rule: no border-radius anywhere in the shop. */
.woocommerce .button,
.woocommerce button,
.woocommerce input,
.woocommerce select,
.woocommerce textarea,
.woocommerce img,
.woocommerce table,
.woocommerce fieldset,
.woocommerce-page .button,
.woocommerce-page button,
.woocommerce-page input,
.woocommerce-page select,
.woocommerce-page textarea,
.woocommerce-page img,
.woocommerce-page .select2-container .select2-selection,
.woocommerce-page .select2-dropdown,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-error,
.woocommerce-page .woocommerce-info {
	border-radius: 0 !important;
}

/* Kill every Woo sidebar remnant — the shop is full width. */
.woocommerce-page #secondary,
.woocommerce-page .secondary-sidebar,
.woocommerce-page .widget-area {
	display: none !important;
}

.woocommerce-page #primary,
.woocommerce-page #primary.page-with-sidebar,
.woocommerce-page #primary.with-right-sidebar {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

/* Neutralise theme/plugin card decorations that clash with the SMYN card. */
.woocommerce ul.products li.product .featured-tag,
.woocommerce ul.products li.product .product-labels,
.woocommerce ul.products li.product .product-thumb-overlay,
.woocommerce ul.products li.product .secondary-image,
.woocommerce ul.products li.product .product-thumb-content,
.woocommerce ul.products li.product .product-buttons-wrapper.product-icons,
.woocommerce ul.products li.product .yith-wcwl-add-to-wishlist,
.woocommerce ul.products li.product .yith-wcqv-button,
.woocommerce ul.products li.product .zoo-cw-group-attribute,
.woocommerce span.onsale {
	display: none !important;
}

/* ============================================================
   1. Shop toolbar — results count + ordering (select2 skin)
   ============================================================ */

.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
	font-weight: 700; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	margin: 0 0 26px;
	float: left;
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
	float: right;
	margin: 0 0 26px;
}

.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
	appearance: none;
	-webkit-appearance: none;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label);
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--smyn-ink);
	background-color: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	padding: 14px 40px 14px 16px;
	min-height: 44px;
	cursor: pointer;
	background-image: linear-gradient(45deg, transparent 50%, var(--smyn-terracotta) 50%),
		linear-gradient(135deg, var(--smyn-terracotta) 50%, transparent 50%);
	background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

.woocommerce .woocommerce-ordering select:focus-visible {
	outline: 2px solid var(--smyn-terracotta);
	outline-offset: 2px;
}

/* select2 skin (WooCommerce country/state selects). */
.woocommerce-page .select2-container--default .select2-selection--single,
.woocommerce-page .select2-container--default .select2-selection--multiple {
	background-color: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	min-height: 44px;
	line-height: 42px;
}

.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__rendered {
	font-weight: 700; font-size: 13px; line-height: 42px; font-family: var(--smyn-font-label);
	letter-spacing: .6px;
	color: var(--smyn-ink);
	padding-left: 16px;
}

.woocommerce-page .woocommerce-ordering .select2-container--default .select2-selection--single .select2-selection__rendered {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 42px;
	right: 8px;
}

.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var(--smyn-terracotta) transparent transparent transparent;
}

.woocommerce-page .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color: transparent transparent var(--smyn-terracotta) transparent;
}

.select2-dropdown {
	background-color: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	border-radius: 0 !important;
}

.select2-container--default .select2-results__option {
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: .6px;
	color: var(--smyn-mocha-dark);
	padding: 10px 16px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background-color: var(--smyn-hover-surface);
	color: var(--smyn-ink);
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
	background-color: var(--smyn-cream);
	color: var(--smyn-terracotta);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	border: 1px solid var(--smyn-line);
	background: var(--smyn-cream);
	font-weight: 400; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
}

/* ============================================================
   2. Product grid — block-08 card adapted to the light page
   ============================================================ */

.woocommerce ul.products:not(.products-apply-isotope),
.woocommerce-page ul.products:not(.products-apply-isotope) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin: 0 0 48px;
	padding: 0;
	list-style: none;
	counter-reset: smyn-product;
	clear: both;
}

.woocommerce ul.products:not(.products-apply-isotope) li.product,
.woocommerce-page ul.products:not(.products-apply-isotope) li.product {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
}

.woocommerce ul.products:not(.products-apply-isotope) li.isotope-grid-sizer {
	display: none !important;
}

/*
 * border-box on the card, scoped to the grid.
 *
 * Nothing sets a universal border-box on the WooCommerce pages — they render
 * outside Elementor's scope, and the computed box-sizing on <body>, <main> and
 * li.product is all content-box. So the card's 14px side padding and 1px border
 * were laid OUTSIDE its grid track: a 461px track produced a 491px card, and
 * the last column pushed the document 30px past the viewport. Measured as 30px
 * of horizontal scroll on /shop/ at 768px and 1440px, and on /product/ at 768px
 * where the related-products loop repeats the same grid.
 *
 * Scoped rather than global: a site-wide `* { box-sizing: border-box }` would
 * re-lay every page here, and only this grid was measured.
 */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products li.product *,
.woocommerce-page ul.products li.product * {
	box-sizing: border-box;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	background: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	padding: 14px 14px 0;
	text-align: left;
	transition: transform .3s cubic-bezier(.22, .61, .36, 1), box-shadow .3s cubic-bezier(.22, .61, .36, 1);
}

@media (hover: hover) and (pointer: fine) {
	.woocommerce ul.products li.product:hover {
		transform: translateY(-4px);
		box-shadow: 0 26px 60px rgba(20, 15, 12, .10);
	}
}

/* Running number, top-right — the block-08 "01 / 02 / 03" voice. */
.woocommerce ul.products:not(.products-apply-isotope) li.product:not(.isotope-grid-sizer) {
	counter-increment: smyn-product;
}

.woocommerce ul.products:not(.products-apply-isotope) li.product:not(.isotope-grid-sizer)::before {
	content: "0" counter(smyn-product);
	display: block;
	font-weight: 700; font-size: 13px; line-height: 1.2; font-family: var(--smyn-font-label);
	letter-spacing: 1.2px;
	color: var(--smyn-terracotta);
	text-align: right;
	margin: 0 0 10px;
}

.woocommerce ul.products:not(.products-apply-isotope) li.product:nth-child(n+10)::before {
	content: counter(smyn-product);
}

/* 4:5 imagery, cover-cropped. */
.woocommerce ul.products li.product .product-thumb,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
}

.woocommerce ul.products li.product img,
.woocommerce ul.products li.product .product-thumb .primary-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin: 0;
	transition: transform .65s cubic-bezier(.22, .61, .36, 1);
}

/* Some layouts render the image as a background div. */
.woocommerce ul.products li.product .product-thumb .primary-image {
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
	.woocommerce ul.products li.product:hover img {
		transform: scale(1.02);
	}
}

/* Meta block under the image: hairline, name, italic price, underline CTA. */
.woocommerce ul.products li.product .product-details {
	display: block;
	border-top: 1px solid var(--smyn-line);
	margin-top: 13px;
	padding: 13px 0 16px !important;
	background: none !important;
	text-align: left;
	position: static;
	opacity: 1 !important;
	transform: none !important;
}

.woocommerce ul.products li.product .product-details > div {
	padding: 0;
	margin: 0 0 8px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .product-details h3,
.woocommerce ul.products li.product .product-details h5,
.woocommerce ul.products li.product .product-details .product-title,
.woocommerce ul.products li.product .product-details .product-title a,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
	font-family: var(--smyn-font-body);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: -.2px;
	color: var(--smyn-ink);
	margin: 0 0 6px;
	padding: 0;
	text-transform: none;
}

.woocommerce ul.products li.product .product-details .product-title a:hover {
	color: var(--smyn-terracotta);
}

.woocommerce ul.products li.product .product-category-wrapper,
.woocommerce ul.products li.product .product-categories {
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: 1.3px;
	text-transform: uppercase;
	color: var(--smyn-muted);
}

.woocommerce ul.products li.product .product-category-wrapper a,
.woocommerce ul.products li.product .product-categories a {
	color: var(--smyn-muted);
}

.woocommerce ul.products li.product .price {
	display: block;
	font-family: var(--smyn-font-body);
	font-size: 20px;
	font-weight: 400;
	font-style: italic;
	letter-spacing: -.4px;
	line-height: 1.2;
	color: var(--smyn-terracotta) !important;
	margin: 0 0 12px;
}

.woocommerce ul.products li.product .price ins,
.woocommerce ul.products li.product .price .smyn-sale-price {
	text-decoration: none;
	font-weight: 400;
	background: none;
}

.woocommerce ul.products li.product .price del {
	display: none;
}

.woocommerce ul.products li.product .price .amount {
	color: inherit;
}

/* ADD TO CART — caps underline CTA with ↗. */
.woocommerce ul.products li.product .product-buttons-wrapper.product-button {
	display: block;
	position: static;
	opacity: 1 !important;
	transform: none !important;
	background: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.product_type_simple,
.woocommerce ul.products li.product a.product_type_variable,
.woocommerce ul.products li.product a.product_type_grouped,
.woocommerce ul.products li.product a.product_type_external,
.woocommerce ul.products li.product .added_to_cart {
	display: inline-flex !important;
	align-items: baseline;
	gap: 8px;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--smyn-ink) !important;
	box-shadow: none !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--smyn-ink) !important;
	margin: 0 18px 0 0;
	padding: 0 0 9px !important;
	min-height: 0;
	width: auto;
	height: auto;
	transition: color .3s cubic-bezier(.22, .61, .36, 1), border-color .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce ul.products li.product .button::after,
.woocommerce ul.products li.product .added_to_cart::after {
	content: "\2197"; /* ↗ */
	display: inline-block;
	font-size: 11px;
	transition: transform .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover {
	color: var(--smyn-terracotta) !important;
	border-bottom-color: var(--smyn-terracotta) !important;
}

@media (hover: hover) and (pointer: fine) {
	.woocommerce ul.products li.product .button:hover::after,
	.woocommerce ul.products li.product .added_to_cart:hover::after {
		transform: translate(3px, -3px);
	}
}

/* Woo's ajax loading/added state icons — keep them quiet. */
.woocommerce ul.products li.product .button.loading {
	opacity: .5;
}

.woocommerce ul.products li.product .button.loading::after {
	content: "\2026"; /* … */
	animation: none;
}

.woocommerce ul.products li.product .button.added::after {
	content: "\2713"; /* ✓ */
}

/* No-products message. */
.woocommerce .woocommerce-info.woocommerce-no-products-found,
.woocommerce p.woocommerce-mismatch {
	font-weight: 400; font-size: 15px; line-height: 1.6; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
}

/* Pagination. */
.woocommerce nav.woocommerce-pagination {
	clear: both;
	text-align: left;
}

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

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

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	border: 1px solid var(--smyn-line);
	background: var(--smyn-cream);
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label);
	letter-spacing: .6px;
	color: var(--smyn-ink);
	padding: 0;
	margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--smyn-terracotta);
	border-color: var(--smyn-terracotta);
	color: var(--smyn-cream);
}

/* ============================================================
   3. Single product
   ============================================================ */

/* Breadcrumbs as eyebrow labels. */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb,
.woocommerce-page .breadcrumb,
.woocommerce-page .breadcrumb a,
.woocommerce-page .breadcrumb span {
	font-weight: 700; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label) !important;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
}

.woocommerce .woocommerce-breadcrumb a,
.woocommerce-page .breadcrumb a {
	color: var(--smyn-mocha);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover,
.woocommerce-page .breadcrumb a:hover {
	color: var(--smyn-terracotta);
}

.woocommerce-page .breadcrumb .current,
.woocommerce .woocommerce-breadcrumb .current {
	color: var(--smyn-terracotta);
}

/* Title — display voice. */
.woocommerce div.product .product_title,
.woocommerce div.product h1.entry-title {
	font-family: var(--smyn-font-body);
	font-size: 38px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -1px;
	line-height: 1.05;
	color: var(--smyn-ink);
	margin: 0 0 14px;
}

/* Price — decorative italic terracotta. */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--smyn-font-body);
	font-size: 26px;
	font-weight: 400;
	font-style: italic;
	letter-spacing: -.6px;
	color: var(--smyn-terracotta) !important;
	margin: 0 0 22px;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
	font-weight: 400;
	background: none;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	display: none;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	font-weight: 400; font-size: 15px; line-height: 1.7; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
	margin: 0 0 26px;
}

/* Gallery — no rounding, quiet frame. */
.woocommerce div.product div.images img {
	border: 1px solid var(--smyn-line);
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	opacity: .55;
	transition: opacity .3s ease;
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover {
	opacity: 1;
}

/* Terracotta Add to cart. */
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 32px;
	background: var(--smyn-terracotta) !important;
	border: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-cream) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .3s cubic-bezier(.22, .61, .36, 1), border-color .3s cubic-bezier(.22, .61, .36, 1), transform .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce div.product form.cart .button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--smyn-terracotta-hover) !important;
	border-color: var(--smyn-terracotta-hover) !important;
	transform: translateY(-1px);
}

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

/* Variations table (gift card amounts). */
.woocommerce div.product form.cart .variations {
	border: 0;
	margin-bottom: 18px;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	border: 0;
	background: none;
	padding: 0 0 12px;
	vertical-align: middle;
	text-align: left;
}

.woocommerce div.product form.cart .variations label {
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	margin: 0 18px 0 0;
}

.woocommerce div.product form.cart .variations select {
	border: 1px solid var(--smyn-line);
	background-color: var(--smyn-cream);
	font-weight: 400; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	color: var(--smyn-ink);
	min-height: 44px;
	padding: 0 36px 0 14px;
}

.woocommerce div.product form.cart .reset_variations {
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--smyn-muted);
}

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

/* Meta — eyebrow labels. */
.woocommerce div.product .product_meta {
	border-top: 1px solid var(--smyn-line);
	padding-top: 18px;
	margin-top: 6px;
}

.woocommerce div.product .product_meta > span {
	display: block;
	font-weight: 700; font-size: 13px; line-height: 2; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	margin-bottom: 4px;
}

.woocommerce div.product .product_meta > span a,
.woocommerce div.product .product_meta > span .sku {
	color: var(--smyn-terracotta);
	font-weight: 700;
}

.woocommerce div.product .product_meta > span a:hover {
	color: var(--smyn-terracotta-hover);
}

/* Tabs — the SMYN tab-bar. */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .wdt-product-tabs {
	background: none;
	border: 0;
	padding: 0;
	margin: 48px 0 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.wc-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 32px;
	list-style: none;
	margin: 0 0 26px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-bottom: 1px solid var(--smyn-line) !important;
	overflow: visible;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none !important;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0 0 14px !important;
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label) !important;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha) !important;
	border-bottom: 1px solid transparent !important;
	margin-bottom: -1px;
	transition: color .3s cubic-bezier(.22, .61, .36, 1), border-color .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--smyn-ink) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--smyn-terracotta) !important;
	border-bottom-color: var(--smyn-terracotta) !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
	font-weight: 400; font-size: 15px; line-height: 1.7; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	font-family: var(--smyn-font-body);
	font-size: 22px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.6px;
	color: var(--smyn-ink);
	margin: 0 0 14px;
}

/* Additional information / attributes table. */
.woocommerce table.shop_attributes {
	border: 0;
	border-top: 1px solid var(--smyn-line);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	background: none !important;
	border: 0;
	border-bottom: 1px solid var(--smyn-line);
	font-weight: 400; font-size: 14px; line-height: 1.6; font-family: var(--smyn-font-label);
	font-style: normal;
	color: var(--smyn-mocha-dark);
	padding: 12px 10px 12px 0;
}

.woocommerce table.shop_attributes th {
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
}

/* Reviews. */
.woocommerce #reviews #comments ol.commentlist li {
	border: 1px solid var(--smyn-line);
	background: var(--smyn-cream);
	padding: 20px;
	margin: 0 0 18px;
}

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

.woocommerce #reviews #comments ol.commentlist li .comment-text {
	border: 0 !important;
	margin-left: 60px;
	padding: 0;
}

/* Related / upsells — same cards, display heading. */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2,
.woocommerce .cart_totals h2 {
	font-family: var(--smyn-font-body);
	font-size: 28px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -1px;
	color: var(--smyn-ink);
	margin: 0 0 24px;
}

.woocommerce .related,
.woocommerce .upsells {
	clear: both;
	padding-top: 48px;
}

/* Star ratings — terracotta. */
.woocommerce .star-rating {
	color: var(--smyn-line);
}

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

.woocommerce p.stars a:hover,
.woocommerce p.stars.selected a {
	color: var(--smyn-terracotta-hover);
}

/* ============================================================
   4. Quantity steppers — 44px squares
   ============================================================ */

.woocommerce div.quantity,
.woocommerce-page div.quantity {
	display: inline-flex;
	align-items: stretch;
	border: 0;
	background: none;
	height: auto;
	margin: 0;
}

.woocommerce div.quantity .qty,
.woocommerce-page div.quantity .qty,
.woocommerce div.quantity input.qty {
	width: 54px !important;
	height: 44px;
	min-height: 44px;
	border: 1px solid var(--smyn-line);
	border-left: 0;
	border-right: 0;
	background: var(--smyn-cream);
	text-align: center !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label);
	color: var(--smyn-ink);
	padding: 0 4px !important;
}

/* The browser's own spinner is hidden ONLY where a real +/- pair replaces it.
   Core WooCommerce 11.1 renders div.quantity as a label and one number input
   and nothing else — .plus and .minus come from a theme or a plugin — so
   suppressing the spinner unconditionally left the field with no increment
   control at all, on a 44px target sized for a thumb. Typing was the only way
   to buy two of something. */
.woocommerce div.quantity:has(.plus) .qty,
.woocommerce div.quantity:has(.minus) .qty,
.woocommerce-page div.quantity:has(.plus) .qty,
.woocommerce-page div.quantity:has(.minus) .qty {
	appearance: textfield;
	-moz-appearance: textfield;
}

.woocommerce div.quantity:has(.plus) .qty::-webkit-outer-spin-button,
.woocommerce div.quantity:has(.plus) .qty::-webkit-inner-spin-button,
.woocommerce div.quantity:has(.minus) .qty::-webkit-outer-spin-button,
.woocommerce div.quantity:has(.minus) .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Without :has() the whole rule is dropped, which is the safe direction: the
   native spinner stays. Nothing needs a fallback here. */

.woocommerce div.quantity .plus,
.woocommerce div.quantity .minus,
.woocommerce-page div.quantity .plus,
.woocommerce-page div.quantity .minus,
.woocommerce div.quantity > a[class*="arrow"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	position: static !important;
	border: 1px solid var(--smyn-line) !important;
	background: var(--smyn-cream) !important;
	color: var(--smyn-ink) !important;
	font-weight: 400; font-size: 16px; line-height: 1; font-family: var(--smyn-font-label) !important;
	cursor: pointer;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	transition: border-color .3s ease, color .3s ease;
}

.woocommerce div.quantity .plus:hover,
.woocommerce div.quantity .minus:hover,
.woocommerce div.quantity > a[class*="arrow"]:hover {
	border-color: var(--smyn-terracotta) !important;
	color: var(--smyn-terracotta) !important;
}

/* Order matters visually: minus | qty | plus. */
.woocommerce div.quantity .minus {
	order: -1;
}

.woocommerce div.quantity > a[class*="arrow"] > i {
	position: static !important;
}

/* ============================================================
   5. Cart — clean rows like the price list
   ============================================================ */

.woocommerce table.shop_table {
	border: 0 !important;
	border-collapse: collapse !important;
	margin: 0 0 32px;
	background: none;
}

.woocommerce table.shop_table th {
	background: none !important;
	border: 0 !important;
	border-bottom: 1px solid var(--smyn-line) !important;
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	padding: 14px 10px;
	text-align: left;
}

.woocommerce table.shop_table td {
	background: none !important;
	border: 0 !important;
	border-bottom: 1px solid var(--smyn-line) !important;
	padding: 20px 10px;
	vertical-align: middle;
	font-weight: 400; font-size: 14px; line-height: 1.5; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
}

/* No zebra striping, ever. */
.woocommerce table.shop_table tbody tr:nth-child(odd) td,
.woocommerce table.shop_table tbody tr:nth-child(even) td {
	background: none !important;
}

.woocommerce-cart table.cart td.product-thumbnail img {
	width: 72px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border: 1px solid var(--smyn-line);
}

.woocommerce-cart table.cart td.product-name,
.woocommerce-cart table.cart td.product-name a,
.woocommerce-checkout table.shop_table td.product-name {
	font-family: var(--smyn-font-body);
	font-size: 17px;
	font-weight: 400;
	letter-spacing: -.2px;
	color: var(--smyn-ink);
}

.woocommerce-cart table.cart td.product-name a:hover {
	color: var(--smyn-terracotta);
}

.woocommerce-cart table.cart td.product-price .amount,
.woocommerce-cart table.cart td.product-subtotal .amount {
	font-family: var(--smyn-font-body);
	font-style: italic;
	font-size: 17px;
	letter-spacing: -.4px;
	color: var(--smyn-terracotta);
}

/* Remove × — quiet 32px square. */
.woocommerce table.cart a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--smyn-line);
	background: transparent !important;
	color: var(--smyn-mocha) !important;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	transition: border-color .3s ease, color .3s ease;
}

.woocommerce table.cart a.remove:hover {
	background: transparent !important;
	border-color: var(--smyn-error);
	color: var(--smyn-error) !important;
}

/* Coupon + actions row. */
.woocommerce-cart table.cart td.actions {
	padding: 22px 0 0;
	border-bottom: 0 !important;
}

.woocommerce-cart .wdt-cart-coupon-holder .coupon label {
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	margin-right: 12px;
}

.woocommerce-cart .coupon .input-text,
.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 200px;
	min-height: 46px;
	border: 1px solid var(--smyn-line);
	background: var(--smyn-cream);
	font-weight: 400; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	color: var(--smyn-ink);
	padding: 0 14px;
	margin-right: 10px;
}

.woocommerce-cart .coupon .input-text:focus {
	border-color: var(--smyn-terracotta);
	outline: none;
}

/* Keyboard focus keeps a visible indicator (WCAG 2.4.7). */
.woocommerce-cart .coupon .input-text:focus-visible {
	border-color: var(--smyn-terracotta);
	outline: 2px solid var(--smyn-terracotta);
	outline-offset: 2px;
}

/* Secondary buttons (apply coupon / update cart) — outline style. */
.woocommerce-cart table.cart td.actions .button,
.woocommerce-cart .actions .button,
.woocommerce .return-to-shop .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 24px;
	background: transparent !important;
	border: 1px solid var(--smyn-ink) !important;
	color: var(--smyn-ink) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .3s cubic-bezier(.22, .61, .36, 1), color .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce-cart table.cart td.actions .button:hover,
.woocommerce-cart .actions .button:hover,
.woocommerce .return-to-shop .button:hover {
	background: var(--smyn-ink) !important;
	color: var(--smyn-cream) !important;
}

.woocommerce-cart .actions .button:disabled,
.woocommerce-cart .actions .button[disabled] {
	opacity: .4;
	cursor: not-allowed;
}

/* Totals card — champagne surface. */
.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	max-width: 440px;
	float: right;
	background: var(--smyn-hover-surface);
	background: color-mix(in srgb, var(--smyn-champagne) 30%, var(--smyn-cream));
	border: 1px solid var(--smyn-line);
	padding: 30px 28px;
}

.woocommerce-cart .cart_totals h2 {
	font-size: 24px;
	margin-bottom: 18px;
}

.woocommerce-cart .cart_totals table.shop_table {
	margin-bottom: 20px;
}

.woocommerce-cart .cart_totals table.shop_table th {
	padding-left: 0;
}

.woocommerce-cart .cart_totals table.shop_table td {
	text-align: right;
}

.woocommerce-cart .cart_totals .order-total .amount {
	font-family: var(--smyn-font-body);
	font-style: italic;
	font-size: 22px;
	letter-spacing: -.5px;
	color: var(--smyn-terracotta);
}

/* Proceed to checkout — full-width terracotta. */
.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	background: var(--smyn-terracotta) !important;
	border: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-cream) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	padding: 0 20px;
	margin: 0;
	box-shadow: none !important;
	transition: background-color .3s cubic-bezier(.22, .61, .36, 1), transform .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--smyn-terracotta-hover) !important;
	border-color: var(--smyn-terracotta-hover) !important;
	transform: translateY(-1px);
}

.woocommerce-cart .cart-empty,
.woocommerce .cart-empty.woocommerce-info {
	text-align: left;
}

/* ============================================================
   6. Checkout — form left, sticky champagne order review right
   ============================================================ */

/* Coupon toggle bar → quiet link. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	background: none !important;
	border: 0 !important;
	padding: 0 0 18px !important;
	margin: 0 !important;
	font-weight: 400; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha);
	box-shadow: none !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::after {
	display: none !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle a.showcoupon {
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--smyn-terracotta);
	border-bottom: 1px solid var(--smyn-terracotta);
	padding-bottom: 2px;
}

.woocommerce-checkout form.checkout_coupon {
	border: 1px solid var(--smyn-line) !important;
	background: var(--smyn-cream);
	padding: 20px !important;
	margin-bottom: 28px;
}

/* Two columns on desktop, single column ≤1024. */
.woocommerce-checkout form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	gap: 0 56px;
	align-items: start;
}

.woocommerce-checkout form.checkout #customer_details {
	grid-column: 1;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.woocommerce-checkout form.checkout #customer_details > div[class*="col"] {
	width: 100% !important;
	float: none !important;
	padding: 0 !important;
}

/* The card. smyn_woo_open_order_review() opens this wrapper on
   woocommerce_checkout_before_order_review_heading and closes it on
   woocommerce_checkout_after_order_review — both documented hooks, no template
   override. The class this once targeted, .woocommerce-checkout-order-review-wrap,
   does not exist in WooCommerce 11.1 (zero hits across the plugin), so the
   champagne surface, the border, the padding and the sticky column were all
   silently lost and only the fallback grid placement below was doing anything. */
.woocommerce-checkout form.checkout .smyn-checkout-review,
.woocommerce-checkout form.checkout .woocommerce-checkout-order-review-wrap {
	grid-column: 2;
	grid-row: 1 / span 3;
	position: sticky;
	top: 32px;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	background: var(--smyn-hover-surface);
	background: color-mix(in srgb, var(--smyn-champagne) 30%, var(--smyn-cream));
	border: 1px solid var(--smyn-line) !important;
	padding: 30px 28px !important;
	overflow: visible !important;
}

/* Fallback for the case the wrapper never opened — a plugin that unhooks one
   of the two actions, or a checkout template that does not fire them. The
   direct-child selector means these do not apply once the wrapper exists. */
.woocommerce-checkout form.checkout > #order_review_heading,
.woocommerce-checkout form.checkout > #order_review {
	grid-column: 2;
	width: 100% !important;
	float: none !important;
}

.woocommerce-checkout #order_review_heading {
	font-family: var(--smyn-font-body);
	font-size: 24px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}

.woocommerce-checkout #order_review {
	border: 0 !important;
	padding: 0 !important;
	background: none !important;
}

.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th {
	padding-left: 0;
}

.woocommerce-checkout #order_review .order-total .amount {
	font-family: var(--smyn-font-body);
	font-style: italic;
	font-size: 22px;
	letter-spacing: -.5px;
	color: var(--smyn-terracotta);
}

/* Section headings inside the form. */
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
	font-family: var(--smyn-font-body);
	font-size: 24px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
	margin: 0 0 20px;
}

#ship-to-different-address {
	font-size: 14px;
}

/* Fields inherit the theme form spec — same eyebrow label recipe as
   theme-overrides (800 / 10px / ls 2 / terracotta). */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
	font-weight: 700; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-terracotta);
	margin-bottom: 6px;
}

.woocommerce form .form-row .required {
	color: var(--smyn-terracotta);
	text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select {
	border: 1px solid var(--smyn-line);
	background: var(--smyn-cream);
	color: var(--smyn-ink);
	font-weight: 400; font-size: 13px; line-height: 1.5; font-family: var(--smyn-font-label);
	min-height: 46px;
	padding: 10px 14px;
	box-shadow: none;
	transition: border-color .3s ease;
}

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

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--smyn-terracotta);
	outline: none;
}

/* Keyboard focus keeps a visible indicator (WCAG 2.4.7). */
.woocommerce form .form-row input.input-text:focus-visible,
.woocommerce form .form-row textarea:focus-visible,
.woocommerce form .form-row select:focus-visible {
	border-color: var(--smyn-terracotta);
	outline: 2px solid var(--smyn-terracotta);
	outline-offset: 2px;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--smyn-error);
}

.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select {
	border-color: var(--smyn-monstera);
}

/* Payment box — remove the grey slab, keep quiet cream panels. */
.woocommerce-checkout #payment {
	background: none !important;
	border: 0 !important;
	border-top: 1px solid var(--smyn-line) !important;
	padding-top: 20px !important;
	margin-top: 8px;
}

.woocommerce-checkout #payment ul.payment_methods {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 0 18px;
	list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li {
	font-weight: 700; font-size: 13px; line-height: 1.5; font-family: var(--smyn-font-label);
	color: var(--smyn-ink);
	padding: 8px 0;
}

.woocommerce-checkout #payment div.payment_box {
	background: var(--smyn-cream) !important;
	border: 1px solid var(--smyn-line);
	color: var(--smyn-mocha-dark);
	font-weight: 400; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	padding: 14px 16px;
	margin: 10px 0;
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none !important;
}

.woocommerce-checkout #payment div.form-row.place-order {
	padding: 0 !important;
	margin: 0 !important;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	font-weight: 400; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha);
	margin-bottom: 16px;
}

/* Place order — full-width terracotta. */
.woocommerce-checkout #payment #place_order,
.woocommerce-checkout button#place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	background: var(--smyn-terracotta) !important;
	border: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-cream) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .3s cubic-bezier(.22, .61, .36, 1), transform .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce-checkout #payment #place_order:hover,
.woocommerce-checkout button#place_order:hover {
	background: var(--smyn-terracotta-hover) !important;
	border-color: var(--smyn-terracotta-hover) !important;
	transform: translateY(-1px);
}

/* Order received / thank-you. */
.woocommerce .woocommerce-thankyou-order-received {
	font-family: var(--smyn-font-body);
	font-size: 24px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
}

.woocommerce ul.woocommerce-thankyou-order-details,
.woocommerce ul.order_details {
	background: none;
	border: 1px solid var(--smyn-line);
	padding: 22px !important;
	margin: 0 0 28px;
	list-style: none;
}

.woocommerce ul.order_details li {
	font-weight: 700; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label) !important;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	border-right: 1px dashed var(--smyn-line) !important;
}

.woocommerce ul.order_details li strong {
	font-weight: 400; font-size: 16px; line-height: 1.4; font-family: var(--smyn-font-body);
	text-transform: none;
	letter-spacing: -.2px;
	color: var(--smyn-ink);
}

/* ============================================================
   7. My account — eyebrow side nav + cream content cards
   ============================================================ */

.woocommerce-account div.woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 230px minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

.woocommerce-account div.woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account div.woocommerce > .woocommerce-message,
.woocommerce-account div.woocommerce > .woocommerce-error,
.woocommerce-account div.woocommerce > .woocommerce-info {
	grid-column: 1 / -1;
}

.woocommerce-MyAccount-navigation {
	width: 100% !important;
	float: none !important;
}

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

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

.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 14px 2px;
	font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	transition: color .3s cubic-bezier(.22, .61, .36, 1), padding-left .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce-MyAccount-navigation ul li a:hover {
	color: var(--smyn-ink);
	padding-left: 8px;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--smyn-terracotta);
}

.woocommerce-MyAccount-content {
	width: 100% !important;
	float: none !important;
	background: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	padding: 32px;
	font-weight: 400; font-size: 14px; line-height: 1.7; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	font-family: var(--smyn-font-body);
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
}

.woocommerce-MyAccount-content a {
	color: var(--smyn-terracotta);
}

.woocommerce-MyAccount-content .button,
.woocommerce-account .addresses .edit,
.woocommerce form.login .button,
.woocommerce form.register .button,
.woocommerce-ResetPassword .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 24px;
	background: var(--smyn-terracotta) !important;
	border: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-cream) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce-MyAccount-content .button:hover,
.woocommerce form.login .button:hover,
.woocommerce form.register .button:hover,
.woocommerce-ResetPassword .button:hover {
	background: var(--smyn-terracotta-hover) !important;
	border-color: var(--smyn-terracotta-hover) !important;
}

/* Order table action buttons stay quiet outline. */
.woocommerce-MyAccount-content table .button {
	background: transparent !important;
	border: 1px solid var(--smyn-ink) !important;
	color: var(--smyn-ink) !important;
	min-height: 36px;
	padding: 0 16px;
	margin: 2px 6px 2px 0;
}

.woocommerce-MyAccount-content table .button:hover {
	background: var(--smyn-ink) !important;
	color: var(--smyn-cream) !important;
}

/* Login / register cards. */
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-ResetPassword {
	border: 1px solid var(--smyn-line) !important;
	background: var(--smyn-cream);
	padding: 28px !important;
	max-width: 480px;
}

.woocommerce-account .u-columns.col2-set#customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
}

.woocommerce-account .u-columns.col2-set#customer_login .u-column1,
.woocommerce-account .u-columns.col2-set#customer_login .u-column2 {
	width: 100% !important;
	float: none !important;
}

.woocommerce-account .u-columns h2 {
	font-family: var(--smyn-font-body);
	font-size: 26px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
}

.woocommerce-account .woocommerce-form-login .lost_password {
	font-weight: 400; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
}

.woocommerce-account .woocommerce-form-login .lost_password a {
	color: var(--smyn-terracotta);
}

.woocommerce-account .addresses .title h3 {
	font-size: 20px;
}

.woocommerce-account .addresses .edit {
	background: transparent !important;
	border: 1px solid var(--smyn-ink) !important;
	color: var(--smyn-ink) !important;
	min-height: 36px;
	padding: 0 16px;
	float: right;
}

.woocommerce-account .addresses address {
	border: 1px dashed var(--smyn-line);
	padding: 18px;
	font-style: normal;
	color: var(--smyn-mocha-dark);
}

/* Downloads / orders tables inherit §5 hairline rules. */
.woocommerce-account table.shop_table td .amount {
	font-family: var(--smyn-font-body);
	font-style: italic;
	color: var(--smyn-terracotta);
}

/* ============================================================
   8. Notices — tinted, 1px borders, no radius
   ============================================================ */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-error,
.woocommerce-page .woocommerce-info {
	background: none;
	border: 1px solid;
	border-top-width: 1px !important;
	box-shadow: none !important;
	font-weight: 400; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	padding: 16px 20px !important;
	margin: 0 0 28px;
	list-style: none;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-info::before,
.woocommerce-page .woocommerce-message::before,
.woocommerce-page .woocommerce-error::before,
.woocommerce-page .woocommerce-info::before {
	display: none !important;
}

.woocommerce .woocommerce-message,
.woocommerce-page .woocommerce-message {
	background-color: var(--smyn-cream);
	background-color: color-mix(in srgb, var(--smyn-monstera) 10%, var(--smyn-cream));
	border-color: var(--smyn-monstera);
	color: var(--smyn-monstera-dark);
}

.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-error {
	background-color: var(--smyn-cream);
	background-color: color-mix(in srgb, var(--smyn-error) 8%, var(--smyn-cream));
	border-color: var(--smyn-error);
	color: var(--smyn-error);
}

.woocommerce .woocommerce-error li {
	margin: 0;
}

.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-info {
	background-color: var(--smyn-hover-surface);
	background-color: color-mix(in srgb, var(--smyn-champagne) 30%, var(--smyn-cream));
	border-color: var(--smyn-line-champagne);
	color: var(--smyn-mocha-dark);
}

/* Buttons inside notices — underline CTA. */
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
	color: inherit !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	padding: 0 0 6px !important;
	margin-right: 16px;
	box-shadow: none !important;
	float: none;
	display: inline-block;
}

/* ============================================================
   9. Responsive — 1024 / 767
   ============================================================ */

@media (max-width: 1024px) {

	.woocommerce ul.products:not(.products-apply-isotope),
	.woocommerce-page ul.products:not(.products-apply-isotope) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .product-details h3,
	.woocommerce ul.products li.product .product-details h5,
	.woocommerce ul.products li.product .product-details .product-title,
	.woocommerce ul.products li.product .product-details .product-title a,
	.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
		font-size: 15px;
	}

	.woocommerce ul.products li.product .price {
		font-size: 18px;
	}

	.woocommerce div.product .product_title,
	.woocommerce div.product h1.entry-title {
		font-size: 32px;
	}

	.woocommerce div.product p.price,
	.woocommerce div.product span.price {
		font-size: 23px;
	}

	/* Checkout collapses to one column; review card follows the form. */
	.woocommerce-checkout form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout .woocommerce-checkout-order-review-wrap,
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	.woocommerce-checkout form.checkout .woocommerce-checkout-order-review-wrap {
		position: static;
		margin-top: 32px !important;
	}

	/* Account nav above content. */
	.woocommerce-account div.woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: wrap;
		gap: 0 22px;
		border-top: 0;
		border-bottom: 1px solid var(--smyn-line);
	}

	.woocommerce-MyAccount-navigation ul li {
		border-bottom: 0;
	}

	.woocommerce-MyAccount-navigation ul li a:hover {
		padding-left: 2px;
	}

	.woocommerce-cart .cart-collaterals .cart_totals {
		max-width: 100%;
		float: none;
	}
}

@media (max-width: 767px) {

	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none;
		margin-bottom: 14px;
	}

	.woocommerce .woocommerce-ordering select,
	.woocommerce-page .woocommerce-ordering .select2-container {
		width: 100% !important;
	}

	/* iOS zoom prevention — every text field ≥16px on focus (spec §5
	   hard requirement). The div.quantity / td.actions variants repeat
	   the desktop selectors so the 16px wins on specificity. */
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row textarea,
	.woocommerce form .form-row select,
	.woocommerce-cart .coupon .input-text,
	.woocommerce-cart table.cart td.actions .coupon .input-text,
	.woocommerce div.product form.cart .variations select,
	.woocommerce .quantity .qty,
	.woocommerce div.quantity .qty,
	.woocommerce-page div.quantity .qty,
	.woocommerce div.quantity input.qty {
		font-size: 16px;
	}

	.woocommerce ul.products:not(.products-apply-isotope),
	.woocommerce-page ul.products:not(.products-apply-isotope) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	.woocommerce ul.products li.product {
		padding: 10px 10px 0;
	}

	/* Brand rule: mobile product text runs LARGER than tablet. */
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .product-details h3,
	.woocommerce ul.products li.product .product-details h5,
	.woocommerce ul.products li.product .product-details .product-title,
	.woocommerce ul.products li.product .product-details .product-title a,
	.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
		font-size: 18px;
	}

	.woocommerce ul.products li.product .price {
		font-size: 19px;
	}

	.woocommerce div.product .product_title,
	.woocommerce div.product h1.entry-title {
		font-size: 28px;
	}

	.woocommerce div.product p.price,
	.woocommerce div.product span.price {
		font-size: 22px;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs,
	.woocommerce div.product .woocommerce-tabs ul.wc-tabs {
		gap: 0 22px;
	}

	/* Cart rows stack cleanly (Woo smallscreen turns rows into blocks). */
	.woocommerce-cart table.cart td {
		padding: 12px 10px;
	}

	.woocommerce table.shop_table_responsive tr td::before,
	.woocommerce-page table.shop_table_responsive tr td::before {
		font-weight: 700; font-size: 13px; line-height: 1.4; font-family: var(--smyn-font-label);
		letter-spacing: 2px;
		text-transform: uppercase;
		color: var(--smyn-mocha);
	}

	.woocommerce-cart table.cart td.actions .coupon {
		display: flex;
		flex-direction: column;
		gap: 10px;
	}

	.woocommerce-cart .coupon .input-text,
	.woocommerce-cart table.cart td.actions .coupon .input-text {
		width: 100%;
		margin-right: 0;
	}

	.woocommerce-cart table.cart td.actions .button,
	.woocommerce-cart .actions .button {
		width: 100%;
		margin-top: 10px;
	}

	.woocommerce-cart .cart-collaterals .cart_totals {
		padding: 22px 18px;
	}

	.woocommerce-checkout form.checkout .woocommerce-checkout-order-review-wrap {
		padding: 22px 18px !important;
	}

	.woocommerce-account .u-columns.col2-set#customer_login {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-MyAccount-content {
		padding: 20px 16px;
	}

	.woocommerce ul.order_details li {
		border-right: 0 !important;
		display: block;
		margin-bottom: 10px;
	}

	/* Buttons run 11/11/10px across desktop/tablet/mobile (spec §5).
	   !important needed: the base recipes set size via `font:` shorthand
	   with !important. */
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .added_to_cart,
	.woocommerce div.product form.cart .button,
	.woocommerce div.product form.cart .single_add_to_cart_button,
	.woocommerce-cart table.cart td.actions .button,
	.woocommerce-cart .actions .button,
	.woocommerce .return-to-shop .button,
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
	.woocommerce-checkout #payment #place_order,
	.woocommerce-checkout button#place_order,
	.woocommerce-MyAccount-content .button,
	.woocommerce-account .addresses .edit,
	.woocommerce form.login .button,
	.woocommerce form.register .button,
	.woocommerce-ResetPassword .button,
	.woocommerce .woocommerce-message .button,
	.woocommerce .woocommerce-info .button,
	.woocommerce .woocommerce-error .button {
		font-size: 13px !important;
	}
}

/* ============================================================
   10. Reduced motion — kill every transition/animation added here
   ============================================================ */

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

	.woocommerce *,
	.woocommerce *::before,
	.woocommerce *::after,
	.woocommerce-page *,
	.woocommerce-page *::before,
	.woocommerce-page *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}

	.woocommerce ul.products li.product:hover,
	.woocommerce ul.products li.product:hover img,
	.woocommerce div.product form.cart .button:hover,
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
	.woocommerce-checkout #payment #place_order:hover {
		transform: none !important;
	}
}

/* ============================================================
   11. Order received (thank-you) — champagne confirmation (§6.5)
   Everything below this line is the v2 append: order-received,
   auth forms, search results, empty states. Tokens only, radius 0.
   ============================================================ */

/* The whole endpoint sits on one calm champagne confirmation card. */
.woocommerce-order-received .woocommerce-order,
.woocommerce-page .woocommerce-order,
.woocommerce .woocommerce-order {
	background: var(--smyn-hover-surface);
	background: color-mix(in srgb, var(--smyn-champagne) 30%, var(--smyn-cream));
	border: 1px solid var(--smyn-line);
	border-radius: 0;
	padding: 44px 40px;
}

/* "Thank you. Your order has been received." — Woo's own text,
   restyled to the display voice (Jost 300 / 28 / ink). */
.woocommerce .woocommerce-thankyou-order-received,
.woocommerce-page .woocommerce-thankyou-order-received,
.woocommerce-order .woocommerce-notice.woocommerce-thankyou-order-received {
	font-weight: var(--smyn-w-regular); font-size: 28px; line-height: 1.2; font-family: var(--smyn-font-body);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
	margin: 0 0 28px;
}

/* Order overview strip (number / date / email / total / payment)
   lifts off the champagne on its own cream panel. */
.woocommerce .woocommerce-order ul.woocommerce-order-overview,
.woocommerce .woocommerce-order ul.order_details {
	background: var(--smyn-cream);
	margin: 0 0 36px;
}

.woocommerce .woocommerce-order ul.order_details li .amount {
	font-family: var(--smyn-font-body);
	font-style: italic;
	color: var(--smyn-terracotta);
}

/* Section headings inside the endpoint — quiet display voice. */
.woocommerce .woocommerce-order .woocommerce-order-details__title,
.woocommerce .woocommerce-order .woocommerce-column__title,
.woocommerce .woocommerce-order .woocommerce-order-downloads h2,
.woocommerce .woocommerce-order section > h2 {
	font-family: var(--smyn-font-body);
	font-size: 22px;
	font-weight: var(--smyn-w-regular);
	letter-spacing: -.6px;
	color: var(--smyn-ink);
	margin: 0 0 16px;
}

/* Order details table — the same clean hairline rows as the cart
   (§5 shop_table recipe applies; these keep the card transparent). */
.woocommerce .woocommerce-order table.shop_table,
.woocommerce .woocommerce-order table.woocommerce-table--order-details {
	background: none !important;
	border: 0 !important;
	margin: 0 0 36px;
}

.woocommerce .woocommerce-order table.shop_table td.woocommerce-table__product-name,
.woocommerce .woocommerce-order table.shop_table td.product-name,
.woocommerce .woocommerce-order table.shop_table td.product-name a {
	font-family: var(--smyn-font-body);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: -.2px;
	color: var(--smyn-ink);
}

.woocommerce .woocommerce-order table.shop_table td .amount,
.woocommerce .woocommerce-order table.shop_table tfoot td .amount {
	font-family: var(--smyn-font-body);
	font-style: italic;
	letter-spacing: -.3px;
	color: var(--smyn-terracotta);
}

.woocommerce .woocommerce-order table.shop_table tfoot th {
	padding-left: 0;
}

.woocommerce .woocommerce-order table.shop_table tfoot tr:last-child td .amount {
	font-size: 19px;
	letter-spacing: -.5px;
}

/* Downloads — cream card, hairline rows inside. */
.woocommerce .woocommerce-order .woocommerce-order-downloads,
.woocommerce-page .woocommerce-order .woocommerce-order-downloads {
	background: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	padding: 26px 24px;
	margin: 0 0 32px;
}

.woocommerce .woocommerce-order .woocommerce-order-downloads table.shop_table {
	margin: 0;
}

.woocommerce .woocommerce-order .woocommerce-MyAccount-downloads-file,
.woocommerce .woocommerce-order-downloads .woocommerce-MyAccount-downloads-file {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-terracotta) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	padding: 0 0 6px !important;
	box-shadow: none !important;
}

/* Customer details — its own styled cream block. */
.woocommerce .woocommerce-order .woocommerce-customer-details,
.woocommerce-page .woocommerce-order .woocommerce-customer-details {
	background: var(--smyn-cream);
	border: 1px solid var(--smyn-line);
	padding: 26px 24px;
	margin: 0 0 8px;
}

.woocommerce .woocommerce-customer-details address {
	border: 0;
	border-top: 1px solid var(--smyn-line);
	border-radius: 0;
	padding: 16px 0 0;
	margin: 0;
	font-weight: 400; font-size: 14px; line-height: 1.8; font-family: var(--smyn-font-label);
	font-style: normal;
	color: var(--smyn-mocha-dark);
}

/* Woo prints phone/email with icon-font glyphs — keep them quiet text. */
.woocommerce .woocommerce-customer-details--phone,
.woocommerce .woocommerce-customer-details--email {
	font-weight: 700;
	color: var(--smyn-ink);
	margin: 10px 0 0;
}

.woocommerce .woocommerce-customer-details--phone::before,
.woocommerce .woocommerce-customer-details--email::before {
	display: none !important;
}

/* Billing / shipping side by side on desktop, hairline split. */
.woocommerce .woocommerce-order .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}

.woocommerce .woocommerce-order .woocommerce-columns--addresses .woocommerce-column {
	width: 100% !important;
	float: none !important;
}

/* ============================================================
   12. Auth — login / register / lost password cards
   ============================================================ */

/* Cream cards wherever the forms appear (account, checkout login). */
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce form.woocommerce-form-lost-password,
.woocommerce form.lost_reset_password,
.woocommerce-page form.woocommerce-form-login,
.woocommerce-page form.woocommerce-form-register {
	background: var(--smyn-cream);
	border: 1px solid var(--smyn-line) !important;
	border-radius: 0;
	padding: 30px 28px !important;
	max-width: 480px;
	margin: 0 0 32px;
}

/* Eyebrow labels — the theme form recipe, restated for the auth forms. */
.woocommerce form.woocommerce-form-login .form-row label,
.woocommerce form.woocommerce-form-register .form-row label,
.woocommerce form.woocommerce-form-lost-password .form-row label,
.woocommerce form.lost_reset_password .form-row label {
	font-weight: 700; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-terracotta);
	margin-bottom: 6px;
}

/* Remember-me: inline eyebrow, terracotta checkbox. */
.woocommerce form .woocommerce-form__label-for-checkbox,
.woocommerce form.woocommerce-form-login label.woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700; font-size: 13px; line-height: 1.6; font-family: var(--smyn-font-label);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--smyn-mocha);
	margin: 0 0 14px;
	cursor: pointer;
}

.woocommerce form .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--smyn-terracotta);
}

/* Terracotta submits. */
.woocommerce form.woocommerce-form-login .button,
.woocommerce form.woocommerce-form-register .button,
.woocommerce form.woocommerce-form-lost-password .button,
.woocommerce form.lost_reset_password .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 26px;
	background: var(--smyn-terracotta) !important;
	border: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-cream) !important;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: var(--smyn-font-label) !important;
	letter-spacing: .6px;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .3s cubic-bezier(.22, .61, .36, 1);
}

.woocommerce form.woocommerce-form-login .button:hover,
.woocommerce form.woocommerce-form-register .button:hover,
.woocommerce form.woocommerce-form-lost-password .button:hover,
.woocommerce form.lost_reset_password .button:hover {
	background: var(--smyn-terracotta-hover) !important;
	border-color: var(--smyn-terracotta-hover) !important;
}

/* Quiet helper copy: lost-password intro, register privacy note. */
.woocommerce form.lost_reset_password > p:not(.form-row),
.woocommerce form.woocommerce-form-lost-password > p:not(.form-row),
.woocommerce form.woocommerce-form-register .woocommerce-privacy-policy-text p {
	font-weight: 400; font-size: 13px; line-height: 1.7; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
	margin: 0 0 16px;
}

.woocommerce form.woocommerce-form-register .woocommerce-privacy-policy-text a,
.woocommerce form.woocommerce-form-login .lost_password a {
	color: var(--smyn-terracotta);
}

/* ============================================================
   14. Empty states — empty cart / no products
   ============================================================ */

/* Empty cart: drop the notice chrome, speak in the display voice. */
.woocommerce .cart-empty.woocommerce-info,
.woocommerce-page .cart-empty.woocommerce-info,
.woocommerce-cart .wc-empty-cart-message .cart-empty {
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 40px 0 4px !important;
	margin: 0;
	font-weight: var(--smyn-w-regular); font-size: 26px; line-height: 1.25; font-family: var(--smyn-font-body);
	letter-spacing: -.8px;
	color: var(--smyn-ink);
	text-align: left;
}

/* RETURN TO SHOP — terracotta, not outline (overrides §5 recipe). */
.woocommerce .return-to-shop {
	margin: 18px 0 0;
	text-align: left;
}

.woocommerce .return-to-shop .button,
.woocommerce-page .return-to-shop .button {
	background: var(--smyn-terracotta) !important;
	border: 1px solid var(--smyn-terracotta) !important;
	color: var(--smyn-cream) !important;
	min-height: 50px;
	padding: 0 30px;
}

.woocommerce .return-to-shop .button:hover,
.woocommerce-page .return-to-shop .button:hover {
	background: var(--smyn-terracotta-hover) !important;
	border-color: var(--smyn-terracotta-hover) !important;
	color: var(--smyn-cream) !important;
}

/* No products in a category / filter — quiet line, no info slab. */
.woocommerce .woocommerce-info.woocommerce-no-products-found,
.woocommerce-page .woocommerce-info.woocommerce-no-products-found,
.woocommerce .woocommerce-no-products-found .woocommerce-info {
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 36px 0 !important;
	font-weight: 400; font-size: 16px; line-height: 1.7; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
}

/* ============================================================
   15. Responsive additions — 1024 / 767 for sections 11–14
   ============================================================ */

@media (max-width: 1024px) {

	.woocommerce-order-received .woocommerce-order,
	.woocommerce-page .woocommerce-order,
	.woocommerce .woocommerce-order {
		padding: 32px 28px;
	}

}

@media (max-width: 767px) {

	.woocommerce-order-received .woocommerce-order,
	.woocommerce-page .woocommerce-order,
	.woocommerce .woocommerce-order {
		padding: 24px 18px;
	}

	.woocommerce .woocommerce-thankyou-order-received,
	.woocommerce-page .woocommerce-thankyou-order-received,
	.woocommerce-order .woocommerce-notice.woocommerce-thankyou-order-received {
		font-size: 26px;
	}

	.woocommerce .woocommerce-order .woocommerce-columns--addresses {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.woocommerce .woocommerce-order .woocommerce-order-downloads,
	.woocommerce .woocommerce-order .woocommerce-customer-details,
	.woocommerce-page .woocommerce-order .woocommerce-order-downloads,
	.woocommerce-page .woocommerce-order .woocommerce-customer-details {
		padding: 20px 16px;
	}

	.woocommerce form.woocommerce-form-login,
	.woocommerce form.woocommerce-form-register,
	.woocommerce form.woocommerce-form-lost-password,
	.woocommerce form.lost_reset_password,
	.woocommerce-page form.woocommerce-form-login,
	.woocommerce-page form.woocommerce-form-register {
		max-width: 100%;
		padding: 22px 18px !important;
	}

	/* iOS zoom prevention — auth fields ≥16px. */
	.woocommerce form.woocommerce-form-login .form-row input.input-text,
	.woocommerce form.woocommerce-form-register .form-row input.input-text,
	.woocommerce form.woocommerce-form-lost-password .form-row input.input-text,
	.woocommerce form.lost_reset_password .form-row input.input-text {
		font-size: 16px;
	}


	.woocommerce .cart-empty.woocommerce-info,
	.woocommerce-page .cart-empty.woocommerce-info,
	.woocommerce-cart .wc-empty-cart-message .cart-empty {
		font-size: 23px;
		padding: 28px 0 2px !important;
	}

	.woocommerce .return-to-shop .button,
	.woocommerce-page .return-to-shop .button {
		width: 100%;
		font-size: 13px !important;
	}
}


/* ============================================================
   17. Thank-you "what happens next" block (woocommerce_thankyou)
   ============================================================ */
.woocommerce .smyn-thankyou-next {
	margin: 34px 0 8px;
	padding: 26px 28px;
	background: var(--smyn-hover-surface);
	border: 1px solid var(--smyn-line);
}
.woocommerce .smyn-thankyou-eyebrow {
	font-weight: 700; font-size: 13px; line-height: 1.2; font-family: var(--smyn-font-label);
	letter-spacing: 2.2px;
	text-transform: uppercase;
	color: var(--smyn-terracotta);
	margin: 0 0 14px;
}
.woocommerce .smyn-thankyou-steps {
	margin: 0 0 18px;
	padding: 0 0 0 18px;
}
.woocommerce .smyn-thankyou-steps li {
	font-weight: 400; font-size: 14px; line-height: 1.7; font-family: var(--smyn-font-label);
	color: var(--smyn-mocha-dark);
	margin: 0 0 8px;
}
.woocommerce .smyn-thankyou-cta { margin: 0; }
@media (max-width: 767px) {
	.woocommerce .smyn-thankyou-next { padding: 20px 16px; }
}


/* ============================================================
   WooCommerce Blocks — cart and checkout
   ============================================================

   The block-based Cart and Checkout are not the legacy shortcode templates and
   none of the selectors above reach them. WooCommerce's own block stylesheet
   sets font-weight:500 on their section titles and totals labels. Glacial
   Indifference ships 400 and 700, so the browser rounds 500 down to 400 and
   every one of those headings renders identical to the body text beside it —
   "Cart totals", "Contact information", "Billing address", "Payment options",
   "Order summary" all lose their heading weight on the two pages where a
   customer most needs the structure.

   Two things make this need more than a plain class selector, both measured
   rather than assumed:

     1. wc-blocks.css is enqueued AFTER the theme's stylesheets (sheet 28 vs
        13 in document order), so equal specificity loses on order alone.
     2. WooCommerce writes these at (0,2,0) — a descendant pair, and in one
        case the doubled class `.wc-block-components-title.wc-block-components-title`.

   So each rule below is scoped with `.woocommerce-page`, which WordPress puts
   on <body> for exactly these pages, taking them to (0,3,0). The selectors are
   the ones CDP reported as actually winning, not a guess at WooCommerce's
   markup:

     .wc-block-components-title.wc-block-components-title                    -> 500
     .wc-block-components-totals-footer-item .wc-block-components-totals-item__label -> 500
     .wp-block-woocommerce-checkout-order-summary-block
       .wc-block-components-checkout-order-summary__title
       .wc-block-components-checkout-order-summary__title-text               -> 500
       (three classes, so this one needs four to win on order)
     .wc-block-cart .wc-block-cart__totals-title                             -> inherit (from a 500)

   No !important: raising specificity by one class is enough, and leaves the
   owner able to override from the customiser.
   ============================================================ */

.woocommerce-page .wc-block-components-title.wc-block-components-title,
.woocommerce-page .wc-block-components-checkout-step__title,
.woocommerce-page .wc-block-cart .wc-block-cart__totals-title,
.woocommerce-page .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text,
.woocommerce-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.woocommerce-page .wc-block-components-totals-item__label,
.woocommerce-page .wc-block-cart-items__header .wc-block-cart-items__header-image,
.woocommerce-page .wc-block-cart-items__header .wc-block-cart-items__header-product,
.woocommerce-page .wc-block-cart-items__header .wc-block-cart-items__header-total {
	font-family: var(--smyn-font-label);
	font-weight: var(--smyn-w-label);
	color: var(--smyn-ink);
}

/*
 * The cart table header's own cells inherit 500 from the row, so the row is
 * pinned too — the spans inside it carry no class of their own to target.
 */
.woocommerce-page .wc-block-cart-items__header,
.woocommerce-page table.wc-block-cart-items thead,
.woocommerce-page table.wc-block-cart-items thead th {
	font-weight: var(--smyn-w-label);
}

.woocommerce-page .wc-block-components-order-summary__button-text,
.woocommerce-page .wc-block-components-panel__button {
	font-family: var(--smyn-font-label);
	font-weight: var(--smyn-w-label);
}

/* ============================================================
   The empty-cart product grid
   ============================================================

   WooCommerce's empty-cart template renders a "New in store" block grid, and
   `ul.wc-block-grid__products` ships with negative inline margins to pull its
   items out to the gutter. Nothing compensates for them here, so the list was
   16px wider than its container and 8px wider than the viewport — measured as
   8px of horizontal scroll on /cart/ at 1440, 1280, 768 AND 390, i.e. on the
   phone as well.

   Neutralising the negative margins is the smallest fix that removes the
   scroll. The items then align with the rest of the page's content edge, which
   is where every other grid on the site sits anyway.

   The list is only reachable when the cart is empty, which is why the earlier
   sweep — which added a product before looking — never saw it.
   ============================================================ */

.woocommerce ul.wc-block-grid__products,
.woocommerce-page ul.wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block ul.wc-block-grid__products {
	margin-left: 0;
	margin-right: 0;
	max-width: 100%;
}
