/* Cabra Tostá — Storefront header/footer override, matches the site's black
   & white monochrome system. Ported from prototype/storefront-header.css
   (the Additional-CSS version this theme retires) — every rule and comment
   below carries the same fix it did there, now token-driven and versioned
   as real theme code instead of a Customizer post.

   Header is a single merged row (functions.php's cabra_tosta_header_layout()
   removes Storefront's second-row wrapper via hook surgery, and drops the
   search bar entirely) — logo | nav | cart + language toggle, all one line
   on desktop. Selectors below target `.site-header .col-full` directly
   instead of the old `.storefront-primary-navigation` wrapper, which no
   longer exists in the markup. */

.site-header {
	background-color: var(--ct-bg);
	border-bottom: 1px solid var(--ct-border-header);
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	margin-bottom: 0 !important;
}
/* Storefront's default .col-full is only 66.5em wide, which makes the
   homepage feel boxed in on desktop even though its own sections are built
   for a wider canvas. Keep the comfortable mobile gutters, but give the
   header, page content, and footer one shared responsive desktop frame. */
@media (min-width: 769px) {
	.site-header > .col-full,
	.site-content > .col-full,
	.site-footer > .col-full {
		width: calc(100% - 4rem);
		max-width: 1440px;
		box-sizing: border-box;
		padding-left: 0;
		padding-right: 0;
	}
}
/* Flex row is desktop-only. On mobile, letting the expanding ul.nav-menu
   dropdown live inside a flex row with align-items:center drags the logo
   and cart/toggle down to the vertical middle of the (now very tall)
   expanded row — flex row sizing reacts to content height in a way normal
   block flow doesn't. Mobile instead gets a small positioning rule below. */
@media (min-width: 769px) {
	.site-header .col-full {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 0.5em 1.5em;
	}
}
@media (max-width: 768px) {
	.site-header .col-full {
		position: relative;
	}
	.site-header .site-branding {
		display: inline-flex !important;
		vertical-align: top;
	}
	.site-header .main-navigation {
		display: inline-block !important;
		vertical-align: top;
	}
	.site-header .ct-header-actions {
		position: absolute;
		top: 0;
		right: 0;
	}
}
/* .woocommerce-active .site-header .site-branding sets width:73.9%/float:left
   (Storefront's old two-column float header) at higher specificity than a
   plain .site-header .site-branding rule can beat without !important. */
.woocommerce-active .site-header .site-branding {
	width: auto !important;
	float: none !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
}
.site-header .site-branding {
	display: flex;
	align-items: center;
	gap: 1em;
	flex-shrink: 0;
}
/* Images are inline by default and pick up extra line-box space below their
   baseline, which throws off flex align-items:center against text siblings
   (a couple px looks like "the logo isn't aligned with the nav"). Same fix
   MOTA's header uses: force the link and image to block, zero the link's
   own line-height, so the logo's box is exactly its rendered height. */
.site-header .custom-logo-link {
	display: block;
	line-height: 0;
}
.site-header .custom-logo-link img {
	display: block;
	max-height: 44px;
	width: auto;
}
.site-header .site-title,
.site-header .site-title a {
	color: var(--ct-text-pure);
}
.site-header .site-description {
	color: var(--ct-text-muted);
}
/* Same Storefront two-column-float rule as .site-branding above, this time
   targeting the nav. */
.woocommerce-active .site-header .main-navigation {
	width: auto !important;
	float: none !important;
	margin-right: 0 !important;
	clear: none !important;
}
.site-header .main-navigation {
	flex-grow: 1;
	flex-shrink: 1;
	min-width: 0;
}
/* display:flex on .main-navigation itself is desktop-only: it would turn the
   toggle button + ul.nav-menu (its own children) into flex-row siblings,
   which breaks Storefront's mobile dropdown (a max-height transition on
   ul.nav-menu that expects to sit in normal block flow under the button). */
@media (min-width: 769px) {
	.site-header .main-navigation {
		display: flex;
		align-items: center;
	}
}
/* align-items:center on <nav> only centers its direct child (this ul) as a
   whole box — it does nothing for the <li>s inside it. Without the ul itself
   being a flex container too, its items follow default inline/baseline
   rules, which is the actual reason the logo and nav text didn't line up. */
@media (min-width: 769px) {
	.site-header .main-navigation ul.nav-menu,
	.site-header .main-navigation ul.menu {
		display: flex;
		align-items: center;
	}
}
.site-header .main-navigation ul.nav-menu > li > a,
.site-header .main-navigation ul.menu > li > a {
	color: var(--ct-text-body);
	padding: 0.8em 0.6em;
	display: inline-block;
	line-height: 1.3;
}
.site-header .main-navigation ul.nav-menu > li > a:hover,
.site-header .main-navigation ul.menu > li > a:hover,
.site-header .main-navigation ul.nav-menu > li.current_page_item > a,
.site-header .main-navigation ul.menu > li.current-menu-item > a {
	color: var(--ct-text-pure);
}
.site-header .ct-header-actions {
	display: flex;
	align-items: center;
	gap: 1em;
	flex-shrink: 0;
	margin-left: auto;
}
.site-header .ct-header-actions > * {
	flex-shrink: 0;
}
/* Storefront sets .site-header-cart { width: 21.74% } (a fraction of the
   old float-based row). Inside our flex row that percentage resolves
   against an indeterminate size and collapses the cart to ~42px. */
.woocommerce-active .site-header .site-header-cart {
	width: auto !important;
	float: none;
}
.site-header .ct-lang-wrap {
	display: flex;
	align-items: center;
}
.site-header .site-header-cart > li:first-child {
	width: auto;
	white-space: nowrap;
}
/* Cart as a bordered pill button, same structural idea as MOTA's header cart
   (button chrome + a standout badge for the item count) but in Cabra
   Tostá's own rounded, black & white language instead of MOTA's square
   accent-green one. Desktop-only: Storefront hides .cart-contents below
   768px by design (the handheld footer bar carries cart access on mobile
   instead) — my display:inline-flex would otherwise override that hide
   rule and the pill collides with the Menu button at narrow widths. */
@media (min-width: 769px) {
	.site-header .site-header-cart a.cart-contents {
		display: inline-flex;
		align-items: center;
		gap: 0.5em;
		min-height: 2.75rem;
		padding: 0.5em 1em;
		border: 1px solid var(--ct-border-medium);
		border-radius: 999px;
		background-color: transparent;
		font-size: 0.72rem;
		font-weight: 800;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		text-decoration: none;
		color: var(--ct-text-pure) !important;
		transition: border-color 0.2s ease, background-color 0.2s ease;
	}
	.site-header .site-header-cart a.cart-contents:hover {
		border-color: var(--ct-text-pure);
		background-color: var(--ct-bg-elevated);
		color: var(--ct-text-pure) !important;
	}
	.site-header .site-header-cart a.cart-contents .amount {
		color: var(--ct-text-pure) !important;
	}
	.site-header .site-header-cart .count {
		background-color: var(--ct-btn-primary-bg);
		color: var(--ct-btn-primary-text) !important;
		border-radius: 999px;
		padding: 0.15em 0.6em;
		font-size: 0.68rem;
		font-weight: 800;
		line-height: 1.4;
	}
	/* Storefront sizes the hover preview to 100% of the cart control. Since
	   the control is now a compact pill, give the preview its own comfortable
	   desktop width and keep its right edge aligned with the pill. */
	.site-header .site-header-cart .widget_shopping_cart {
		left: -999em;
		right: 0;
		width: 24rem;
		max-width: calc(100vw - 2rem);
	}
	.site-header .site-header-cart:hover .widget_shopping_cart,
	.site-header .site-header-cart.focus .widget_shopping_cart {
		left: auto;
	}
	.site-header .site-header-cart .widget_shopping_cart {
		background-color: #FFFFFF;
		color: #333333;
		box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, .24);
	}
	.site-header .site-header-cart .widget_shopping_cart p.total,
	.site-header .site-header-cart .widget_shopping_cart p.total .amount {
		color: #333333 !important;
	}
}

/* Footer — matches the site's black & white system instead of Storefront's
   light-gray default (this is the site's ONLY footer; the homepage's own
   <footer class="ct-footer"> was retired and its links moved here as a
   Custom HTML widget in footer-1, see scripts/apply-footer-widget.mjs). */
.site-footer {
	background-color: var(--ct-bg);
	border-top: 1px solid var(--ct-border-header);
}
.site-footer .footer-widgets {
	padding-top: 1.5em;
	padding-bottom: 1.5em;
	border-bottom: 1px solid var(--ct-border-hairline);
}
.site-footer .widget-title {
	color: var(--ct-text-muted);
}
.ct-footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25em;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.ct-footer-social a {
	color: var(--ct-text-body) !important;
	text-decoration: none;
}
.ct-footer-social a:hover {
	color: var(--ct-text-pure) !important;
}
.site-footer .site-info {
	color: var(--ct-text-muted);
}
.site-footer .site-info a.ct-credit-agency,
.site-footer .site-info .ct-credit-agency {
	display: inline-block;
	margin-top: 0.35em;
	color: var(--ct-text-agency) !important;
	font-size: 0.85em;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	transition: color 0.2s ease;
}
.site-footer .site-info a.ct-credit-agency:hover,
.site-footer .site-info .ct-credit-agency a:hover {
	color: var(--ct-text-body) !important;
}
.main-navigation ul ul {
	background-color: var(--ct-bg);
	border-color: var(--ct-border-header);
}
.main-navigation ul ul li a {
	color: var(--ct-text-body);
}
#site-navigation-menu-toggle,
.menu-toggle {
	background-color: transparent;
	color: var(--ct-text-pure);
	border-color: var(--ct-border-medium);
}
#site-navigation-menu-toggle:hover,
.menu-toggle:hover {
	background-color: var(--ct-border-hairline);
	color: var(--ct-text-pure);
}

/* Mobile handheld footer bar (Storefront, below 768px) — dark like the rest
   of the site instead of Storefront's white default. Icons are Font Awesome
   ::before glyphs inheriting the link color. */
.storefront-handheld-footer-bar {
	background-color: var(--ct-bg) !important;
	border-top: 1px solid var(--ct-border-header) !important;
	box-shadow: none !important;
}
.storefront-handheld-footer-bar ul li {
	border-color: var(--ct-border-hairline) !important;
}
.storefront-handheld-footer-bar ul li > a {
	background-color: var(--ct-bg) !important;
	color: var(--ct-text-body) !important;
}
.storefront-handheld-footer-bar ul li > a:hover,
.storefront-handheld-footer-bar ul li > a:focus {
	color: var(--ct-text-pure) !important;
}
.storefront-handheld-footer-bar ul li.cart .count {
	border-color: var(--ct-bg) !important;
	background-color: var(--ct-text-pure) !important;
	color: var(--ct-btn-primary-text) !important;
}

/* WooCommerce catalog — carries the homepage's dark editorial system into
   the Shop archive and product detail pages. Cart, Checkout, and My Account
   get the same page shell here and their own section further down. */
body.woocommerce-shop,
body.single-product,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
	background-color: var(--ct-bg);
	color: var(--ct-text-body);
}
body.woocommerce-shop .site-content,
body.single-product .site-content,
body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content,
body.woocommerce-account .site-content {
	background-color: var(--ct-bg);
}
body.woocommerce-shop .site-main,
body.single-product .site-main,
body.woocommerce-shop .site-main *,
body.single-product .site-main * {
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}
body.woocommerce-shop .site-main a,
body.single-product .site-main a {
	color: inherit;
}
body.woocommerce-shop .woocommerce-products-header,
body.single-product .woocommerce-notices-wrapper {
	margin-bottom: clamp(2rem, 4vw, 4rem);
}
body.woocommerce-shop .woocommerce-products-header__title,
body.single-product .product_title {
	margin: 0;
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-weight: 600;
	letter-spacing: -.045em;
	line-height: .98;
}
body.woocommerce-shop .woocommerce-products-header__title {
	font-size: clamp(3rem, 7vw, 6rem);
}

/* Catalog controls and product grid. */
body.woocommerce-shop .storefront-sorting {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin: 0 0 clamp(2rem, 4vw, 4rem);
	padding: 1rem 0;
	border-top: 1px solid var(--ct-border-medium);
	border-bottom: 1px solid var(--ct-border-medium);
}
body.woocommerce-shop .storefront-sorting::before,
body.woocommerce-shop .storefront-sorting::after {
	display: none;
}
body.woocommerce-shop .woocommerce-result-count {
	margin: 0;
	color: var(--ct-text-muted);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
body.woocommerce-shop .woocommerce-ordering {
	margin: 0;
}
body.woocommerce-shop .woocommerce-ordering select {
	min-height: 2.75rem;
	padding: .6rem 2.5rem .6rem .85rem;
	border: 1px solid var(--ct-border-medium);
	border-radius: 999px;
	background-color: var(--ct-bg-elevated);
	color: var(--ct-text-body);
	font: inherit;
	font-size: .78rem;
	font-weight: 700;
}
body.woocommerce-shop ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(2.5rem, 5vw, 5rem) clamp(1rem, 2.5vw, 2.5rem);
	margin: 0;
}
body.woocommerce-shop ul.products::before,
body.woocommerce-shop ul.products::after {
	display: none;
}
body.woocommerce-shop ul.products li.product {
	float: none;
	width: 100% !important;
	margin: 0;
	margin-right: 0 !important;
	padding: 0 0 1.25rem;
	border-bottom: 1px solid var(--ct-border-medium);
	text-align: left;
}
body.woocommerce-shop ul.products li.product.first,
body.woocommerce-shop ul.products li.product.last {
	clear: none;
}
body.woocommerce-shop ul.products li.product > a.woocommerce-LoopProduct-link {
	display: block;
}
body.woocommerce-shop ul.products li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	margin: 0 0 1.25rem;
	padding: clamp(1rem, 2.5vw, 2rem);
	background-color: var(--ct-btn-primary-bg);
	object-fit: contain;
	transition: transform .35s ease, filter .35s ease;
}
body.woocommerce-shop ul.products li.product:hover img {
	transform: scale(1.025);
	filter: contrast(1.04);
}
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title {
	min-height: 2.4em;
	margin: 0 0 .55rem;
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(1.25rem, 1.6vw, 1.55rem);
	font-weight: 600;
	letter-spacing: -.025em;
	line-height: 1.05;
}
body.woocommerce-shop ul.products li.product .price {
	display: block;
	margin: 0 0 1rem;
	color: var(--ct-text-muted);
	font-size: .9rem;
	font-weight: 800;
}
body.woocommerce-shop ul.products li.product .price del {
	color: var(--ct-text-muted);
	opacity: .7;
}
body.woocommerce-shop ul.products li.product .price ins {
	color: var(--ct-text-pure);
	text-decoration: none;
}
body.woocommerce-shop ul.products li.product .button,
body.single-product .single_add_to_cart_button,
body.single-product .button,
body.woocommerce-cart .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.woocommerce-account .button {
	min-height: 3rem;
	padding: .8rem 1.25rem;
	border: 1px solid var(--ct-text-pure);
	border-radius: 999px;
	background-color: var(--ct-text-pure);
	color: var(--ct-btn-primary-text) !important;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
body.woocommerce-shop ul.products li.product .button:hover,
body.single-product .single_add_to_cart_button:hover,
body.single-product .button:hover,
body.woocommerce-cart .wc-block-components-button:not(.is-link):hover,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
body.woocommerce-account .button:hover {
	transform: translateY(-2px);
	background-color: var(--ct-btn-primary-hover);
}

/* Product detail layout and purchase summary. */
body.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr);
	gap: clamp(2.5rem, 7vw, 8rem);
	align-items: start;
}
body.single-product div.product::before,
body.single-product div.product::after {
	display: none;
}
body.single-product div.product .woocommerce-product-gallery {
	float: none;
	width: 100% !important;
	margin: 0;
}
body.single-product .woocommerce-product-gallery__image a {
	display: block;
	background-color: var(--ct-btn-primary-bg);
}
body.single-product .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}
/* Product gallery thumbnails — override Storefront's float + 11.11% width rules with prominent, high-res grid. */
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs,
body.single-product .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: clamp(0.6rem, 1.2vw, 1rem) !important;
	margin: 1.25rem 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::before,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::after,
body.single-product .flex-control-thumbs::before,
body.single-product .flex-control-thumbs::after {
	display: none !important;
}
.storefront-full-width-content.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li,
body.single-product .flex-control-thumbs li {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	clear: none !important;
	cursor: pointer;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img,
body.single-product .flex-control-thumbs li img {
	display: block;
	width: 100% !important;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background-color: var(--ct-btn-primary-bg);
	padding: clamp(0.4rem, 1vw, 0.75rem);
	border: 2px solid var(--ct-border-medium);
	border-radius: 12px;
	opacity: .82;
	box-sizing: border-box;
	transition: opacity .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li.flex-active img {
	opacity: 1 !important;
	border-color: var(--ct-text-pure) !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}
body.single-product div.product .summary {
	float: none;
	width: 100% !important;
	margin: 0;
}
body.single-product .summary .product_title {
	font-size: clamp(2.5rem, 3.8vw, 4rem);
}
body.single-product .summary .price {
	margin: 1.5rem 0;
	color: var(--ct-text-pure);
	font-size: 1.35rem;
	font-weight: 800;
}
body.single-product .summary .woocommerce-product-details__short-description,
body.single-product .summary .product_meta {
	color: var(--ct-text-muted);
	line-height: 1.75;
}
body.single-product .summary .cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .75rem;
	margin: 2rem 0;
	padding: 1.25rem 0;
	border-top: 1px solid var(--ct-border-medium);
	border-bottom: 1px solid var(--ct-border-medium);
}
body.single-product .summary .quantity .qty {
	width: 4.25rem;
	min-height: 3rem;
	padding: .75rem;
	border: 1px solid var(--ct-border-medium);
	border-radius: 999px;
	background-color: var(--ct-bg-elevated);
	color: var(--ct-text-pure);
	font: inherit;
	font-weight: 800;
	text-align: center;
}
body.single-product .summary .stock {
	color: var(--ct-text-body);
	font-weight: 800;
}
body.single-product .summary .stock.out-of-stock {
	color: var(--ct-text-muted);
}
body.single-product .product_meta {
	padding-top: 1rem;
	border-top: 1px solid var(--ct-border-medium);
	font-size: .78rem;
}

/* Description, details, and related products. */
body.single-product .woocommerce-tabs {
	clear: both;
	margin-top: clamp(4rem, 9vw, 8rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--ct-border-medium);
}
body.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 1.5rem;
	margin: 0 0 2rem;
	padding: 0;
	border: 0;
}
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after {
	display: none;
}
body.single-product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
body.single-product .woocommerce-tabs ul.tabs li a {
	padding: 0 0 .5rem;
	color: var(--ct-text-body) !important;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
body.single-product .woocommerce-tabs ul.tabs li.active a,
body.single-product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--ct-text-pure);
	border-bottom: 1px solid var(--ct-text-pure);
}
body.single-product .woocommerce-tabs .panel {
	max-width: 48rem;
	color: var(--ct-text-body) !important;
	line-height: 1.75;
}
body.single-product .woocommerce-tabs .panel h2,
body.single-product .woocommerce-tabs .panel h3,
body.single-product .woocommerce-tabs .panel h4,
body.single-product .woocommerce-tabs .panel strong,
body.single-product .woocommerce-tabs .panel li {
	color: var(--ct-text-body) !important;
}
body.single-product .product_meta,
body.single-product .product_meta a {
	color: var(--ct-text-body) !important;
}
body.single-product .woocommerce-breadcrumb,
body.single-product .woocommerce-breadcrumb a {
	color: var(--ct-text-body) !important;
}
body.single-product .related.products {
	clear: both;
	margin-top: clamp(4rem, 9vw, 8rem);
	padding-top: 1.5rem;
	border-top: 1px solid var(--ct-border-medium);
}
body.single-product .related.products > h2 {
	margin: 0 0 2rem;
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	font-weight: 600;
	letter-spacing: -.045em;
}
body.single-product .related.products ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2.5rem);
	margin: 0;
}
body.single-product .related.products ul.products::before,
body.single-product .related.products ul.products::after {
	display: none;
}
body.single-product .related.products ul.products li.product {
	float: none;
	width: 100% !important;
	margin: 0;
	margin-right: 0 !important;
}
body.single-product .related.products ul.products li.product .woocommerce-loop-product__link,
body.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
body.single-product .related.products ul.products li.product .price,
body.single-product .related.products ul.products li.product .price .amount,
body.single-product .related.products ul.products li.product .price del,
body.single-product .related.products ul.products li.product .price ins {
	color: var(--ct-text-body) !important;
}
body.single-product .related.products ul.products li.product .woocommerce-loop-product__title {
	line-height: 1.25;
}

/* Cart, Checkout, and My Account — same dark editorial system as Shop and
   product. Cart and Checkout are the WooCommerce *blocks* (React-rendered,
   .wc-block-components-* markup); My Account is the classic shortcode
   (.woocommerce-form-login, .woocommerce-MyAccount-*). CSS only: guest
   checkout, optional account creation at checkout, and the login-only
   account page are WooCommerce settings and stay untouched.

   The blocks hardcode light-theme colors in a few places (white input
   backgrounds, near-black floating labels, dark-red errors), which is why
   some rules below need !important. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main * {
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main .entry-header {
	margin-bottom: clamp(2rem, 4vw, 3.5rem) !important;
	padding-bottom: 0;
	border: 0;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-title {
	margin: 0;
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(3rem, 7vw, 6rem);
	font-weight: 600;
	letter-spacing: -.045em;
	line-height: .98;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main a {
	color: var(--ct-text-pure);
	text-decoration-color: var(--ct-border-accent);
	text-underline-offset: .2em;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main a:hover {
	text-decoration-color: var(--ct-text-pure);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-title,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main h2,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main h3 {
	color: var(--ct-text-pure);
}

/* Block buttons are <a>/<button> inside .site-main: keep the pill from the
   shared button rule, drop the link underline, and clear Storefront's
   button-colored fill on the Cart's submit container (it painted a square
   white box behind the pill). */
body:is(.woocommerce-cart, .woocommerce-checkout) .site-main .wc-block-components-button:not(.is-link) {
	border-radius: 999px !important;
	text-decoration: none !important;
}
body.woocommerce-cart .wc-block-cart__submit-container {
	background-color: transparent !important;
}

/* Form controls — block inputs, block selects/comboboxes, classic inputs. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-text-input input,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-combobox .wc-block-components-combobox-control input,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-blocks-components-select .wc-blocks-components-select__select,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-textarea,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main input.input-text,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main textarea,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main select {
	border: 1px solid var(--ct-border-medium) !important;
	border-radius: 12px !important;
	background-color: var(--ct-bg-elevated) !important;
	color: var(--ct-text-pure) !important;
	box-shadow: none !important;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-text-input input:focus,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-combobox .wc-block-components-combobox-control input:focus,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-textarea:focus,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main input.input-text:focus,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main textarea:focus,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main select:focus {
	border-color: var(--ct-text-pure) !important;
	outline: 2px solid var(--ct-text-pure);
	outline-offset: 1px;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-text-input label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-combobox .wc-block-components-combobox-control label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-blocks-components-select .wc-blocks-components-select__label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main .form-row label {
	color: var(--ct-text-muted) !important;
}
/* The select's wrapper carries its own white fill that peeks out around the
   rounded corners. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-blocks-components-select .wc-blocks-components-select__container {
	background-color: transparent !important;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-blocks-components-select .wc-blocks-components-select__expand {
	fill: var(--ct-text-body);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-combobox-control .components-form-token-field__suggestions-list,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-combobox-control .components-combobox-control__suggestions-container {
	background-color: var(--ct-bg-elevated) !important;
	color: var(--ct-text-body);
	border-color: var(--ct-border-medium) !important;
}

/* Checkboxes and radios: white box/ring on black, black checkmark. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] {
	border: 1px solid var(--ct-border-accent);
	border-radius: 4px;
	background-color: var(--ct-bg-elevated);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked {
	border-color: var(--ct-text-pure);
	background-color: var(--ct-text-pure);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--ct-btn-primary-text);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control .wc-block-components-radio-control__input {
	border: 1px solid var(--ct-border-accent);
	background-color: var(--ct-bg-elevated);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	border-color: var(--ct-text-pure);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
	background-color: var(--ct-text-pure);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-checkbox__label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control__label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control__secondary-label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control__description,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-radio-control__secondary-description {
	color: var(--ct-text-body);
}

/* Validation errors — the block default is a dark red that disappears on black. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-validation-error,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-validation-error > p,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .has-error label,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .has-error .wc-block-components-checkbox__label {
	color: var(--ct-error) !important;
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .has-error input,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .has-error select,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .has-error .wc-blocks-components-select__select {
	border-color: var(--ct-error) !important;
}

/* Notices — block banners and classic Storefront bars become dark cards with
   a left accent instead of full-color bars. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-notice-banner,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-message,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-info,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-error {
	border: 1px solid var(--ct-border-medium);
	border-left: 3px solid var(--ct-text-pure);
	border-radius: 12px;
	background-color: var(--ct-bg-surface);
	color: var(--ct-text-body);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-notice-banner.is-error,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-error {
	border-left-color: var(--ct-error);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-notice-banner > svg {
	background-color: var(--ct-text-pure);
	fill: var(--ct-btn-primary-text);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wc-block-components-notice-banner.is-error > svg {
	background-color: var(--ct-error);
}
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-message::before,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-info::before,
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce-error::before {
	color: var(--ct-text-pure);
}

/* Sidebars (cart totals, checkout order summary) as a raised panel. */
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--ct-border-medium);
	border-radius: 16px;
	background-color: var(--ct-bg-surface);
}
/* The checkout order-summary block draws its own bordered box; inside our
   panel that reads as a double border. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border: 0 !important;
	border-radius: 0;
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-wrapper,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-panel,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-order-summary {
	border-color: var(--ct-border-medium) !important;
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-wrapper::after {
	border-color: var(--ct-border-medium);
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-item,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-item__label,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-item__description,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-panel__button,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-shipping__via,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-shipping-address {
	color: var(--ct-text-body) !important;
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-panel__button-icon {
	fill: var(--ct-text-body);
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-item__value,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--ct-text-pure) !important;
	font-weight: 800;
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-cart__totals-title,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-checkout-order-summary__title-text {
	color: var(--ct-text-muted) !important;
	font-size: .76rem !important;
	font-weight: 800 !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* Cart line items. */
body.woocommerce-cart table.wc-block-cart-items,
body.woocommerce-cart table.wc-block-cart-items th,
body.woocommerce-cart table.wc-block-cart-items td {
	border-color: var(--ct-border-medium) !important;
	background: transparent !important;
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__header {
	color: var(--ct-text-muted);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row {
	border-bottom: 1px solid var(--ct-border-medium);
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-cart-item__image img,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-order-summary-item__image img {
	padding: .35rem;
	border-radius: 8px;
	background-color: var(--ct-btn-primary-bg);
	object-fit: contain;
}
body:is(.woocommerce-cart, .woocommerce-checkout) .site-main .wc-block-components-product-name {
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.15;
	text-decoration: none;
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-product-price,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-cart-item__prices,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-cart-item__total,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-product-metadata,
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-product-details {
	color: var(--ct-text-body);
}
body:is(.woocommerce-cart, .woocommerce-checkout) .wc-block-components-product-badge {
	border-color: var(--ct-border-accent);
	color: var(--ct-text-body);
}
body.woocommerce-cart .site-main .wc-block-cart-item__remove-link {
	color: var(--ct-text-muted) !important;
	font-size: .78rem !important;
}
body.woocommerce-cart .site-main .wc-block-cart-item__remove-link:hover {
	color: var(--ct-text-pure) !important;
}
body.woocommerce-cart .wc-block-components-quantity-selector {
	border: 1px solid var(--ct-border-medium);
	border-radius: 999px;
	background-color: var(--ct-bg-elevated);
	overflow: hidden;
}
body.woocommerce-cart .wc-block-components-quantity-selector::after {
	display: none;
}
body.woocommerce-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input,
body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	background: transparent !important;
	color: var(--ct-text-pure) !important;
	font-weight: 800;
	box-shadow: none !important;
}
body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
	opacity: .35;
}

/* Empty cart: heading plus the "new products" grid in the Shop card look. */
body.woocommerce-cart .wc-block-cart__empty-cart__title {
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-weight: 600;
	letter-spacing: -.03em;
}
body.woocommerce-cart .wc-block-cart__empty-cart__title::before {
	background-color: var(--ct-text-body);
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-separator {
	border-color: var(--ct-border-medium);
	color: var(--ct-border-medium);
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2.wp-block-heading:not(.wc-block-cart__empty-cart__title) {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 600;
	letter-spacing: -.035em;
}
body.woocommerce-cart .wc-block-grid__products {
	gap: clamp(2rem, 4vw, 4rem) clamp(1rem, 2.5vw, 2.5rem);
	margin: 0;
}
@media (min-width: 901px) {
	body.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__product {
		flex: 1 1 0;
		max-width: none;
	}
}
@media (max-width: 900px) {
	body.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__product {
		flex: 1 1 calc(50% - 1.25rem);
		max-width: calc(50% - .75rem);
	}
}
body.woocommerce-cart .wc-block-grid__product {
	margin: 0;
	padding-bottom: 1.25rem;
	border: 0 !important;
	border-bottom: 1px solid var(--ct-border-medium) !important;
	text-align: left;
}
body.woocommerce-cart .wc-block-grid__product-image img {
	aspect-ratio: 1 / 1;
	padding: clamp(.75rem, 2vw, 1.5rem);
	background-color: var(--ct-btn-primary-bg);
	object-fit: contain;
}
body.woocommerce-cart .site-main .wc-block-grid__product-title {
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-weight: 600;
	line-height: 1.1;
}
body.woocommerce-cart .wc-block-grid__product-price {
	color: var(--ct-text-muted);
	font-weight: 800;
}
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link {
	border: 1px solid var(--ct-text-pure);
	border-radius: 999px !important;
	background-color: var(--ct-text-pure);
	color: var(--ct-btn-primary-text) !important;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
}

/* Checkout steps, shipping/payment options, order summary. */
body.woocommerce-checkout .wc-block-components-checkout-step__title {
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: 600;
	letter-spacing: -.03em;
}
body.woocommerce-checkout .wc-block-components-checkout-step__description,
body.woocommerce-checkout .wc-block-components-checkout-step__heading-content,
body.woocommerce-checkout .wc-block-checkout__guest-checkout-notice,
body.woocommerce-checkout .wc-block-checkout__login-prompt,
body.woocommerce-checkout .wc-block-checkout__terms,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule,
body.woocommerce-checkout .wc-block-components-express-payment__title {
	color: var(--ct-text-muted);
}
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule::before,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule::after,
body.woocommerce-checkout .wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container::before,
body.woocommerce-checkout .wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container::after,
body.woocommerce-checkout .wc-block-components-express-payment--checkout .wc-block-components-express-payment__content,
body.woocommerce-checkout .wc-block-checkout__actions,
body.woocommerce-checkout .wc-block-components-checkout-step,
body.woocommerce-checkout .wc-block-components-checkout-step::after {
	border-color: var(--ct-border-medium);
}
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked::after,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option {
	border-color: var(--ct-border-medium) !important;
	box-shadow: none !important;
}
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-radius: 12px;
	background-color: var(--ct-bg-surface-hover);
	box-shadow: inset 0 0 0 1.5px var(--ct-text-pure) !important;
}
body.woocommerce-checkout .wc-block-components-radio-control-accordion-content {
	color: var(--ct-text-body);
}
body.woocommerce-checkout .wc-block-components-address-card {
	border-color: var(--ct-border-medium) !important;
	background-color: var(--ct-bg-elevated);
	color: var(--ct-text-body);
}
body.woocommerce-checkout .wc-block-components-address-card address {
	color: var(--ct-text-body);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
	border-color: var(--ct-bg-surface);
	background-color: var(--ct-text-pure);
	color: var(--ct-btn-primary-text);
	box-shadow: none;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
	color: var(--ct-text-body);
}
body.woocommerce-checkout .site-main a.wc-block-components-checkout-return-to-cart-button {
	color: var(--ct-text-muted);
	text-decoration: none;
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button svg {
	fill: currentColor;
}

/* My Account — classic login form and logged-in dashboard. */
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register,
body.woocommerce-account .woocommerce-ResetPassword {
	max-width: 32rem;
	margin: 0 0 2rem;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border: 1px solid var(--ct-border-medium);
	border-radius: 16px;
	background-color: var(--ct-bg-surface);
}
body.woocommerce-account .site-main .woocommerce > h2,
body.woocommerce-account .u-columns h2 {
	margin-bottom: 1.25rem;
	font-family: var(--ct-display);
	font-weight: 600;
	letter-spacing: -.03em;
}
body.woocommerce-account .site-main .form-row label.woocommerce-form__label-for-checkbox {
	color: var(--ct-text-body) !important;
}
body.woocommerce-account .woocommerce-form-login .woocommerce-form-login__submit {
	margin-right: 1rem;
}
body.woocommerce-account .woocommerce-LostPassword {
	margin: 1rem 0 0;
	font-size: .85rem;
}
body.woocommerce-account .site-main .show-password-input {
	background-color: transparent !important;
	color: var(--ct-text-muted);
}
body.woocommerce-account .site-main .show-password-input:hover,
body.woocommerce-account .site-main .show-password-input.display-password {
	color: var(--ct-text-pure);
}
body.woocommerce-account .site-main input[type=checkbox] {
	accent-color: var(--ct-text-pure);
}
/* Logged out, the page is just the login card: center it under the centered
   page title instead of leaving it pinned to the left edge. */
body.woocommerce-account:not(.logged-in) .site-main .woocommerce {
	max-width: 32rem;
	margin-right: auto;
	margin-left: auto;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	border-top: 1px solid var(--ct-border-medium);
	list-style: none;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	border-bottom: 1px solid var(--ct-border-medium);
}
body.woocommerce-account .site-main .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: .9rem 0;
	color: var(--ct-text-muted);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}
body.woocommerce-account .site-main .woocommerce-MyAccount-navigation ul li.is-active a,
body.woocommerce-account .site-main .woocommerce-MyAccount-navigation ul li a:hover {
	color: var(--ct-text-pure);
}
body.woocommerce-account .woocommerce-MyAccount-content {
	color: var(--ct-text-body);
	line-height: 1.75;
}
body.woocommerce-account table.shop_table,
body.woocommerce-account table.shop_table th,
body.woocommerce-account table.shop_table td {
	border-color: var(--ct-border-medium) !important;
	background-color: transparent !important;
	color: var(--ct-text-body);
}
body.woocommerce-account table.shop_table thead th {
	background-color: var(--ct-bg-surface) !important;
	color: var(--ct-text-muted);
	font-size: .76rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
body.woocommerce-account .woocommerce-Address {
	padding: 1.25rem;
	border: 1px solid var(--ct-border-medium);
	border-radius: 12px;
	background-color: var(--ct-bg-surface);
}
body.woocommerce-account .woocommerce-Address address {
	color: var(--ct-text-body);
}

/* Plain content pages (Returns, Privacy, Terms, and any future default-
   template page) — a dark reading column instead of Storefront's gray text
   and purple links. :not() skips the WooCommerce pages, which have their
   own section above; the homepage uses template-fullwidth.php and never
   matches. */
body.page-template-default:not(.woocommerce-page) {
	background-color: var(--ct-bg);
	color: var(--ct-text-body);
}
body.page-template-default:not(.woocommerce-page) .site-content {
	background-color: var(--ct-bg);
}
body.page-template-default:not(.woocommerce-page) .site-main .hentry {
	max-width: 46rem;
	margin: 0 auto;
}
body.page-template-default:not(.woocommerce-page) .entry-header {
	margin-bottom: clamp(2rem, 4vw, 3rem) !important;
	padding-bottom: 0;
	border: 0;
}
body.page-template-default:not(.woocommerce-page) .entry-title {
	margin: 0;
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(2.4rem, 5.5vw, 4.25rem);
	font-weight: 600;
	letter-spacing: -.04em;
	line-height: 1;
}
body.page-template-default:not(.woocommerce-page) .entry-content {
	color: var(--ct-text-body);
	font-size: 1.02rem;
	line-height: 1.75;
}
body.page-template-default:not(.woocommerce-page) .entry-content p,
body.page-template-default:not(.woocommerce-page) .entry-content li {
	color: var(--ct-text-body);
}
body.page-template-default:not(.woocommerce-page) .entry-content h2 {
	margin: 2.75rem 0 .9rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ct-border-medium);
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	font-weight: 600;
	letter-spacing: -.03em;
	line-height: 1.15;
}
body.page-template-default:not(.woocommerce-page) .entry-content strong {
	color: var(--ct-text-pure);
}
body.page-template-default:not(.woocommerce-page) .entry-content em {
	color: var(--ct-text-muted);
}
body.page-template-default:not(.woocommerce-page) .entry-content a {
	color: var(--ct-text-pure);
	text-decoration: underline;
	text-decoration-color: var(--ct-border-accent);
	text-underline-offset: .2em;
}
body.page-template-default:not(.woocommerce-page) .entry-content a:hover {
	text-decoration-color: var(--ct-text-pure);
}
body.page-template-default:not(.woocommerce-page) .entry-content ul,
body.page-template-default:not(.woocommerce-page) .entry-content ol {
	margin: 0 0 1.25rem 1.25rem;
}
body.page-template-default:not(.woocommerce-page) .entry-content li {
	margin-bottom: .45rem;
}
body.page-template-default:not(.woocommerce-page) .woocommerce-breadcrumb,
body.page-template-default:not(.woocommerce-page) .woocommerce-breadcrumb a {
	color: var(--ct-text-muted) !important;
}

/* 404 — the child theme's own 404.php (short, bilingual, two ways back). */
body.error404 {
	background-color: var(--ct-bg);
	color: var(--ct-text-body);
}
body.error404 .site-content {
	background-color: var(--ct-bg);
}
body.error404 .woocommerce-breadcrumb,
body.error404 .woocommerce-breadcrumb a {
	color: var(--ct-text-muted) !important;
}
.ct-404 {
	max-width: 46rem;
	margin: clamp(2rem, 6vw, 5rem) auto clamp(4rem, 10vw, 8rem);
	text-align: center;
}
.ct-404-eyebrow {
	margin: 0 0 1.25rem;
	color: var(--ct-text-muted);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ct-404-title {
	margin: 0 0 1.5rem;
	color: var(--ct-text-pure);
	font-family: var(--ct-display);
	font-size: clamp(2.6rem, 7vw, 5.5rem);
	font-weight: 600;
	letter-spacing: -.045em;
	line-height: .98;
}
.ct-404-lede {
	margin: 0 auto .75rem;
	max-width: 34rem;
	color: var(--ct-text-body);
	font-size: 1.05rem;
	line-height: 1.7;
}
.ct-404-lede-en {
	color: var(--ct-text-muted);
	font-size: .92rem;
}
.ct-404-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
	margin-top: 2.25rem;
}
.ct-404 a.ct-404-button {
	display: inline-flex;
	align-items: center;
	min-height: 3rem;
	padding: .8rem 1.5rem;
	border: 1px solid var(--ct-border-accent);
	border-radius: 999px;
	color: var(--ct-text-pure);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform .2s ease, border-color .2s ease;
}
.ct-404 a.ct-404-button:hover {
	transform: translateY(-2px);
	border-color: var(--ct-text-pure);
}
.ct-404 a.ct-404-button-primary {
	border-color: var(--ct-text-pure);
	background-color: var(--ct-text-pure);
	color: var(--ct-btn-primary-text);
}

@media (max-width: 900px) {
	body.woocommerce-shop ul.products,
	body.single-product .related.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	body.single-product div.product {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, .9fr);
		gap: 2.5rem;
	}
}
@media (max-width: 768px) {
	body.woocommerce-shop .storefront-sorting {
		align-items: flex-start;
		flex-direction: column-reverse;
	}
	body.single-product div.product {
		display: block;
	}
	body.single-product .summary {
		margin-top: 2.5rem;
	}
}
@media (max-width: 560px) {
	body.woocommerce-shop ul.products,
	body.single-product .related.products ul.products {
		grid-template-columns: 1fr;
	}
	body.woocommerce-shop .woocommerce-products-header__title,
	body.single-product .summary .product_title {
		font-size: clamp(2.8rem, 15vw, 4.5rem);
	}
	body.single-product .woocommerce-tabs ul.tabs {
		flex-wrap: wrap;
		gap: .85rem 1.25rem;
	}
}
