/* =========================================================================
   TIEVERA — WooCommerce & inner pages.

   The homepage, header and footer are a dark editorial brand. Goya ships its
   shop, product, cart and account pages light, so the brand fell apart the
   moment anyone clicked "Shop". This layer carries the dark treatment through
   the whole purchase path.
   ========================================================================= */

body {
	--tv-black: #2b1219;
	--tv-ink: #1d0d12;
	--tv-surface: #38181f;
	--tv-surface-2: #45222a;
	--tv-maroon: #6e0820;
	--tv-maroon-deep: #4a0516;
	--tv-maroon-lift: #a81438;
	--tv-gold: #d6a64a;
	--tv-gold-soft: #ecc878;
	--tv-gold-dim: #9c7730;
	--tv-paper: #f3efe8;
	--tv-muted: #bdb2a1;
	--tv-line: rgba(214, 166, 74, 0.26);
	--tv-line-soft: rgba(243, 239, 232, 0.11);
	--tv-serif: "Cormorant", "Cormorant Garamond", Georgia, serif;
	--tv-sans: "Montserrat", "Segoe UI", system-ui, sans-serif;
}

/* The header is transparent only over the homepage hero. */
.tv-hd--solid {
	background: rgba(32, 14, 20, 0.96);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom-color: var(--tv-line);
}

/* -------------------------------------------------------------------------
   Scope: every WooCommerce page and every ordinary page/post, but never the
   homepage (which paints itself) and never wp-admin.
   ---------------------------------------------------------------------- */

body.woocommerce,
body.woocommerce-page,
body.woocommerce-shop,
body.single-product,
body.archive.tax-product_cat,
body.blog,
body.archive,
body.single-post,
body.page,
body.single,
body.search,
body.error404 {
	background: var(--tv-black);
	color: var(--tv-paper);
}

body.woocommerce .site-content,
body.woocommerce-page .site-content,
body.single-product .site-content,
body.blog .site-content,
body.archive .site-content,
body.page .site-content,
body.single .site-content,
body.search .site-content,
body.error404 .site-content {
	background: var(--tv-black);
}

/* Headings: Goya prints h1..h6{color:#282828} inline, which beats an
   inherited colour. These take it back on the dark pages. */
body.woocommerce :where(h1, h2, h3, h4, h5, h6),
body.woocommerce-page :where(h1, h2, h3, h4, h5, h6),
body.single-product :where(h1, h2, h3, h4, h5, h6),
body.archive :where(h1, h2, h3, h4, h5, h6),
body.blog :where(h1, h2, h3, h4, h5, h6),
body.page :where(h1, h2, h3, h4, h5, h6),
body.single :where(h1, h2, h3, h4, h5, h6),
body.search :where(h1, h2, h3, h4, h5, h6),
body.error404 :where(h1, h2, h3, h4, h5, h6) {
	color: var(--tv-paper);
}

/* -------------------------------------------------------- page title band */

/*
 * Goya prints this inline into wp_head:
 *   .post-type-archive-product .hero-header .hero-title{
 *       background-image:url(.../banner-bag.jpg)}
 * ...which is a woman with a handbag, on a menswear site. The real markup is
 * .hero-header > .hero-title, not the .page-title-wrapper other Goya layouts
 * use, and their selector is (0,3,0) - so !important is what wins here, not
 * specificity.
 */
.hero-header .hero-title,
.hero-header .parallax_image {
	background-image: none !important;
	background-color: transparent !important;
	background:
		radial-gradient(75% 140% at 50% 0%, rgba(110, 8, 32, 0.6), transparent 70%),
		var(--tv-black) !important;
	border-bottom: 1px solid var(--tv-line-soft);
}

/* .vh-height pins it to a full screen of demo photograph. */
.hero-header .hero-title.vh-height,
.hero-header .vh-height {
	height: auto !important;
	min-height: 0 !important;
	padding: clamp(3.5rem, 8vw, 7rem) 0 clamp(2rem, 4vw, 3.25rem) !important;
}

.hero-header .hero-title::before,
.hero-header .hero-title::after {
	display: none !important;
}

.hero-header img,
.hero-title img {
	display: none !important;
}

.et-shop-title,
.woocommerce-products-header__title,
.hero-header .page-title,
.hero-header h1 {
	font-family: var(--tv-serif) !important;
	font-size: clamp(2.6rem, 5.5vw, 4.4rem) !important;
	font-weight: 400 !important;
	line-height: 1.05 !important;
	color: var(--tv-paper) !important;
}

.hero-header .page-description,
.hero-header .term-description,
.hero-header .subtitle,
.hero-header p {
	color: var(--tv-muted) !important;
}

/* Category chips under the title */
.woocommerce-products-header a,
.hero-header .page-description a {
	display: inline-block;
	margin: 0.35rem 0.25rem 0;
	padding: 0.42rem 1rem;
	font-family: var(--tv-sans) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tv-gold) !important;
	border: 1px solid var(--tv-line);
	border-radius: 2px;
	transition: background-color 220ms ease;
}

.woocommerce-products-header a:hover,
.hero-header .page-description a:hover {
	background: rgba(214, 166, 74, 0.14);
	color: var(--tv-gold-soft) !important;
}

/* ------------------------------------------------------------ breadcrumbs */

.woocommerce-breadcrumb,
.woocommerce-breadcrumb a,
.breadcrumbs,
.breadcrumbs a {
	color: var(--tv-muted) !important;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
}

.woocommerce-breadcrumb a:hover,
.breadcrumbs a:hover {
	color: var(--tv-gold) !important;
}

/* ---------------------------------------------------------- shop toolbar */

.shop-toolbar,
.et-shop-toolbar,
.woocommerce-result-count,
.woocommerce-ordering,
.shop-views,
.et-filters-button {
	color: var(--tv-muted) !important;
}

.shop-toolbar,
.et-shop-toolbar {
	border-bottom: 1px solid var(--tv-line-soft);
	padding-bottom: 1rem;
}

.woocommerce-ordering select,
.shop-toolbar select,
.et-shop-toolbar select,
select.orderby,
body.woocommerce-page select,
.orderby {
	/* A native <select> on Windows paints itself with the OS chrome and
	   ignores background entirely until appearance is reset. */
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-color: var(--tv-surface) !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23d6a64a' stroke-width='1.6'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.85rem center !important;
	color: var(--tv-paper) !important;
	border: 1px solid var(--tv-line-soft) !important;
	border-radius: 2px;
	padding: 0.5rem 2.4rem 0.5rem 0.85rem;
	min-height: 44px;
	font-size: 0.82rem;
}

/* The dropdown list itself is drawn by the OS; these are what it honours. */
body.woocommerce select option,
body.woocommerce-page select option {
	background: #38181f;
	color: #f3efe8;
}

.shop-views button,
.et-filters-button button,
.shop-toolbar button,
.et-filters-button,
.et-filters-button span {
	color: var(--tv-paper) !important;
}

.et-active-filters-count {
	background: var(--tv-gold) !important;
	color: #1a1206 !important;
}

.shop-views button.active,
.shop-views button:hover,
.et-filters-button button:hover {
	color: var(--tv-gold) !important;
}

/* ------------------------------------------------------------ product card */

.products .product .product-inner,
ul.products li.product .product-inner {
	background: var(--tv-surface);
	border: 1px solid var(--tv-line-soft);
	border-radius: 3px;
	overflow: hidden;
	transition: border-color 280ms ease, transform 280ms ease;
}

.products .product .product-inner:hover,
ul.products li.product .product-inner:hover {
	border-color: var(--tv-line);
	transform: translateY(-4px);
}

/* Reserve the image box so a missing or slow image can't collapse the card. */
.products .product .product-image,
.products .product .woocommerce-LoopProduct-link img,
ul.products li.product img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	height: auto;
	background: linear-gradient(150deg, rgba(110, 8, 32, 0.55), rgba(43, 18, 25, 0.9));
}

.products .product .caption,
.products .product .item-caption,
ul.products li.product .caption {
	padding: 1rem 1.15rem 1.25rem;
}

.woocommerce-loop-product__title,
.products .product-title,
.products .product-title a,
ul.products li.product h2,
ul.products li.product h3 {
	color: var(--tv-paper) !important;
	font-family: var(--tv-sans) !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em;
}

.products .product-title a:hover {
	color: var(--tv-gold) !important;
}

.products .price,
ul.products li.product .price,
.product .price {
	color: var(--tv-gold) !important;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.price del,
.products .price del {
	color: var(--tv-muted) !important;
	opacity: 0.7;
}

.price ins {
	color: var(--tv-gold) !important;
	text-decoration: none;
}

/* Badges. Goya uses span.badge on the card corner. */
.products .badge,
span.badge,
.badge.new,
.badge.sale,
.products .onsale,
.onsale,
.product-label,
.et-product-label span {
	background: var(--tv-maroon-lift) !important;
	color: #fff !important;
	border-radius: 2px;
	font-size: 0.66rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
}

.badge.out-of-stock,
.badge.outofstock,
.product-label.out-of-stock,
.et-product-label .outofstock {
	background: rgba(20, 20, 20, 0.9) !important;
	color: var(--tv-muted) !important;
	border: 1px solid var(--tv-line-soft);
}

/* Wishlist / quickview icons on cards */
.products .yith-wcwl-add-to-wishlist svg,
.products .yith-wcwl-add-to-wishlist-button-icon,
.products .et-quickview-btn {
	color: var(--tv-muted) !important;
}

.products .yith-wcwl-add-to-wishlist:hover svg,
.products .et-quickview-btn:hover {
	color: var(--tv-gold) !important;
}

/* ------------------------------------------------------- single product */

.single-product div.product .product_title {
	font-family: var(--tv-serif) !important;
	font-size: clamp(2rem, 4vw, 3.2rem) !important;
	font-weight: 400 !important;
	color: var(--tv-paper) !important;
	line-height: 1.1;
}

.single-product div.product .summary .price {
	font-size: 1.6rem !important;
	color: var(--tv-gold) !important;
}

.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-Tabs-panel,
.single-product .summary p,
.single-product .woocommerce-Tabs-panel li {
	color: var(--tv-muted);
	font-weight: 300;
	line-height: 1.8;
}

.single-product .product_meta,
.single-product .product_meta a {
	color: var(--tv-muted) !important;
	font-size: 0.8rem;
}

.single-product .product_meta a:hover {
	color: var(--tv-gold) !important;
}

.woocommerce-tabs ul.tabs,
.woocommerce-tabs .wc-tabs {
	border-bottom: 1px solid var(--tv-line-soft) !important;
}

.woocommerce-tabs ul.tabs li a,
.woocommerce-tabs .wc-tabs li a {
	color: var(--tv-muted) !important;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
	color: var(--tv-gold) !important;
}

/* Quantity + add to cart */
.quantity,
.quantity .quantity-wrapper {
	background: var(--tv-surface) !important;
	border: 1px solid var(--tv-line-soft) !important;
	border-radius: 2px;
}

.quantity input.qty,
.quantity .qty,
body.woocommerce input[type="number"] {
	/* Number inputs keep their native spinner (and its light chrome) until
	   appearance is reset. */
	-webkit-appearance: textfield;
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent !important;
	color: var(--tv-paper) !important;
	border: 0 !important;
	min-height: 52px;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

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

.quantity .plus:hover,
.quantity .minus:hover {
	color: var(--tv-gold) !important;
}

/* YITH wishlist block on the single product */
.yith-wcwl-add-to-wishlist,
.yith-add-to-wishlist-button-block {
	background: transparent !important;
}

.yith-wcwl-add-to-wishlist a,
.yith-wcwl-add-to-wishlist .feedback {
	color: var(--tv-muted) !important;
}

.yith-wcwl-add-to-wishlist a:hover {
	color: var(--tv-gold) !important;
}

.quantity .plus,
.quantity .minus {
	color: var(--tv-paper) !important;
	background: transparent !important;
}

/* -------------------------------------------------------------- buttons */

/*
 * Goya styles .button and button[type=submit] - the attribute selector is
 * specificity (0,1,1), so a plain class would lose. Scoping under body wins.
 */
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .woocommerce a.button.alt,
body .woocommerce button.button.alt,
body .single_add_to_cart_button,
body .checkout-button,
body .woocommerce #respond input#submit {
	background: var(--tv-gold) !important;
	color: #1a1206 !important;
	border: 1px solid var(--tv-gold) !important;
	border-radius: 2px;
	min-height: 52px;
	padding: 0 1.9rem;
	font-family: var(--tv-sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	opacity: 1;
	transition: background-color 220ms ease, border-color 220ms ease;
}

body .woocommerce a.button:hover,
body .woocommerce button.button:hover,
body .woocommerce input.button:hover,
body .single_add_to_cart_button:hover,
body .checkout-button:hover {
	background: var(--tv-gold-soft) !important;
	border-color: var(--tv-gold-soft) !important;
	color: #1a1206 !important;
	opacity: 1;
}

/* Card add-to-cart stays quiet so it doesn't shout over the grid. */
body .products .button,
body .products .add_to_cart_button,
body .products .added_to_cart {
	background: transparent !important;
	color: var(--tv-gold) !important;
	border: 0 !important;
	min-height: 0;
	padding: 0 !important;
	font-size: 0.74rem;
	letter-spacing: 0.12em;
}

/* --------------------------------------------------------- forms & inputs */

body.woocommerce input[type="text"],
body.woocommerce input[type="email"],
body.woocommerce input[type="tel"],
body.woocommerce input[type="password"],
body.woocommerce input[type="number"],
body.woocommerce input[type="search"],
body.woocommerce textarea,
body.woocommerce select,
body.woocommerce-page input[type="text"],
body.woocommerce-page input[type="email"],
body.woocommerce-page input[type="tel"],
body.woocommerce-page input[type="password"],
body.woocommerce-page textarea,
body.woocommerce-page select,
.select2-container--default .select2-selection--single {
	background: var(--tv-surface) !important;
	color: var(--tv-paper) !important;
	border: 1px solid var(--tv-line-soft) !important;
	border-radius: 2px;
	min-height: 48px;
	padding: 0.7rem 0.95rem;
}

body.woocommerce input:focus,
body.woocommerce textarea:focus,
body.woocommerce select:focus,
body.woocommerce-page input:focus,
body.woocommerce-page textarea:focus {
	outline: 2px solid var(--tv-gold);
	outline-offset: 2px;
	border-color: var(--tv-gold) !important;
}

body.woocommerce label,
body.woocommerce-page label,
.woocommerce form .form-row label {
	color: var(--tv-muted) !important;
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--tv-paper) !important;
	line-height: 32px;
}

.select2-dropdown {
	background: var(--tv-surface) !important;
	border-color: var(--tv-line-soft) !important;
	color: var(--tv-paper);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--tv-maroon) !important;
}

/* ------------------------------------------------------- cart & checkout */

.woocommerce table.shop_table,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-checkout-review-order-table,
.cart_totals table {
	background: transparent !important;
	color: var(--tv-paper) !important;
	border-color: var(--tv-line-soft) !important;
}

.woocommerce table.shop_table thead th {
	color: var(--tv-gold) !important;
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.woocommerce table.shop_table tbody td,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
	border-top: 1px solid var(--tv-line-soft) !important;
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-billing-fields h3 {
	font-family: var(--tv-serif) !important;
	color: var(--tv-paper) !important;
}

.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-checkout-review-order,
.woocommerce .cart-collaterals .cart_totals {
	background: var(--tv-surface) !important;
	border: 1px solid var(--tv-line) !important;
	border-radius: 3px;
	padding: 1.5rem;
}

.woocommerce-checkout #payment div.payment_box {
	background: rgba(0, 0, 0, 0.4) !important;
	color: var(--tv-muted) !important;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: rgba(0, 0, 0, 0.4) !important;
}

.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--tv-line-soft) !important;
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.woocommerce-noreviews,
.cart-empty {
	background: var(--tv-surface) !important;
	color: var(--tv-paper) !important;
	border-top: 2px solid var(--tv-gold) !important;
	border-radius: 2px;
}

.woocommerce-error {
	border-top-color: #e06666 !important;
}

.woocommerce-info a,
.woocommerce-message a {
	color: var(--tv-gold) !important;
}

/* ---------------------------------------------------------- my account */

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--tv-line-soft);
	border-radius: 3px;
	overflow: hidden;
}

.woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--tv-line-soft);
}

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

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.95rem 1.15rem;
	color: var(--tv-muted) !important;
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: background-color 200ms ease, color 200ms ease;
}

.woocommerce-MyAccount-navigation li a:hover,
.woocommerce-MyAccount-navigation li.is-active a {
	background: rgba(214, 166, 74, 0.1);
	color: var(--tv-gold) !important;
}

/* -------------------------------------------------------- side cart panel */

#side-cart,
.side-panel-content,
.et-side-panel {
	background: var(--tv-black) !important;
	color: var(--tv-paper) !important;
}

#side-cart .woocommerce-mini-cart__total,
#side-cart .mini_cart_item,
.widget_shopping_cart_content li {
	border-color: var(--tv-line-soft) !important;
	color: var(--tv-paper) !important;
}

/* ------------------------------------------------------------ pagination */

.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
	border-color: var(--tv-line-soft) !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	color: var(--tv-muted) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--tv-gold) !important;
	color: #1a1206 !important;
}

/* ---------------------------------------------------------- sidebar/widgets */

.widget,
.widget a,
.sidebar .widget {
	color: var(--tv-muted) !important;
}

.widget .widget-title,
.widget h3 {
	color: var(--tv-paper) !important;
	font-size: 0.75rem !important;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.widget a:hover {
	color: var(--tv-gold) !important;
}

.widget ul li {
	border-color: var(--tv-line-soft) !important;
}

/* --------------------------------------------------------------- 404 */

.error404 .page-content,
.error404 .site-content {
	text-align: center;
}

/* ------------------------------------------------------------- motion */

@media (prefers-reduced-motion: reduce) {
	.products .product .product-inner,
	.products .product .product-inner:hover {
		transform: none;
		transition: none;
	}
}


/* Our shortcode pages paint their own full-bleed sections, so Goya's page
   title band and container padding are redundant there. */
body.tievera-flat-page .hero-header,
body.tievera-flat-page .page-title-wrapper,
body.tievera-flat-page .entry-header,
body.tievera-flat-page .breadcrumbs {
	display: none !important;
}

body.tievera-flat-page .site-content,
body.tievera-flat-page .entry-content,
body.tievera-flat-page .page-content {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	max-width: none !important;
}

/* Break the shortcode out of the theme container. Not width:100vw - that
   counts the scrollbar and causes a sideways scroll. */
body.tievera-flat-page .tv-page {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* =========================================================================
   Single product — sizing.

   Goya gives the gallery 7 of 12 columns at full container width. With a 4:5
   product photo that renders roughly 850px tall, so the page opens enormous
   and the price and Add to cart sit below the fold. Capping the gallery gets
   the whole buying decision onto one screen.
   ========================================================================= */

.single-product .product-showcase .showcase-inner {
	max-width: 1180px;
}

.single-product .product-showcase {
	padding-top: clamp(1.5rem, 3vw, 2.75rem) !important;
	padding-bottom: clamp(2rem, 4vw, 3.5rem) !important;
}

/* Goya reserves space here for its own fixed header, which we replaced. */
.single-product .product-header-spacer {
	height: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
}

.single-product .product-gallery-inner {
	max-width: 400px;
	margin-inline: auto;
	/* The slider lays slides side by side; without this the next one shows as
	   a pale sliver down the left edge. */
	overflow: hidden;
	border-radius: 3px;
}

.single-product .woocommerce-product-gallery__image img,
.single-product .product-gallery img {
	max-height: 500px;
	width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 3px;
}

/*
 * Rebalance the columns. Goya splits 7/5 in the gallery's favour, which is
 * right for a fashion lookbook and wrong for a small accessory: it left the
 * photo huge and the buying panel cramped.
 */
@media (min-width: 992px) {
	.single-product .showcase-row > .col-lg-7 {
		flex: 0 0 44%;
		max-width: 44%;
	}

	.single-product .showcase-row > .col-lg-5 {
		flex: 0 0 56%;
		max-width: 56%;
	}
}

/* --- Gallery thumbnails, once a product has more than one image -------- */

.single-product .flex-control-thumbs,
.single-product .product-gallery .thumbnails {
	display: flex !important;
	flex-wrap: wrap;
	gap: 10px;
	max-width: 400px;
	margin: 12px auto 0 !important;
	padding: 0 !important;
	list-style: none;
}

.single-product .flex-control-thumbs li,
.single-product .product-gallery .thumbnails li {
	width: calc(25% - 8px) !important;
	margin: 0 !important;
	float: none !important;
}

.single-product .flex-control-thumbs img,
.single-product .product-gallery .thumbnails img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	cursor: pointer;
	opacity: 0.55;
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11));
	border-radius: 2px;
	transition: opacity 220ms ease, border-color 220ms ease;
}

.single-product .flex-control-thumbs img:hover,
.single-product .flex-control-thumbs img.flex-active,
.single-product .product-gallery .thumbnails img:hover {
	opacity: 1;
	border-color: var(--tv-gold, #d6a64a);
}

/* Keep the buying panel in view while the gallery scrolls. */
@media (min-width: 992px) {
	.single-product .showcase-row > .col-lg-5,
	.single-product .entry-summary {
		position: sticky;
		top: calc(var(--tv-hd-h, 72px) + 24px);
		align-self: start;
	}
}

/* Gallery thumbnails */
.single-product .flex-control-thumbs li,
.single-product .woocommerce-product-gallery__wrapper .thumbnails img {
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11));
	border-radius: 2px;
}

/* --- Notices: keep the "View cart" route visible ----------------------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-message {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	padding: 1rem 1.25rem !important;
}

body .woocommerce-message a.button,
body .woocommerce-info a.button,
body a.tv-viewcart {
	margin-left: auto;
	min-height: 42px !important;
	padding: 0 1.2rem !important;
	font-size: 0.7rem !important;
	background: var(--tv-gold, #d6a64a) !important;
	color: #1a1206 !important;
	border-color: var(--tv-gold, #d6a64a) !important;
}

/* --- My Account: Login + Register side by side ------------------------- */

/*
 * Goya does not use WooCommerce's #customer_login two-column template - it
 * renders its own .et-login-wrapper with a Register toggle. Left here only
 * for the stock template, scoped so it cannot touch Goya's markup.
 */
.woocommerce-account .u-columns.col2-set:has(.u-column2) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2.5rem);
	max-width: 980px;
	margin-inline: auto;
	float: none !important;
}

.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2,
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2 {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--tv-surface, #38181f);
	border: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26));
	border-radius: 3px;
}

.woocommerce-account #customer_login h2 {
	font-family: var(--tv-serif, Georgia, serif) !important;
	font-size: clamp(1.5rem, 2.6vw, 2rem) !important;
	font-weight: 400 !important;
	margin-bottom: 1.4rem;
}

.woocommerce-account .woocommerce-privacy-policy-text,
.woocommerce-account .woocommerce-form__label-for-checkbox span,
.woocommerce-account .woocommerce-LostPassword a {
	color: var(--tv-muted, #bdb2a1) !important;
	font-size: 0.85rem;
}

.woocommerce-account .woocommerce-LostPassword a:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

@media (max-width: 760px) {
	.woocommerce-account .u-columns.col2-set,
	.woocommerce-account #customer_login {
		grid-template-columns: minmax(0, 1fr);
	}

	.single-product .product-gallery-inner {
		max-width: 100%;
	}

	.single-product .woocommerce-product-gallery__image img {
		max-height: 380px;
	}

	.single-product .flex-control-thumbs {
		max-width: 100%;
	}
}

/* =========================================================================
   Accounts — register link, guest route, phone/email hints.
   ========================================================================= */

/*
 * The "Register" link rendered in Goya's muted grey on a dark card, which put
 * it at roughly 2:1 and made it look disabled. It is the primary action for a
 * new customer, so it gets the gold treatment.
 */
body a.register-link,
body .form-actions.extra a,
body .woocommerce-form-login__register,
body .woocommerce form.login .register-link,
body .woocommerce-account a[href*="register"],
body .woocommerce-form-login a.tv-register {
	color: var(--tv-gold, #d6a64a) !important;
	font-weight: 600;
	border-bottom: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26));
	padding-bottom: 2px;
}

body a.register-link:hover,
body .form-actions.extra a:hover,
body .woocommerce-form-login__register:hover,
body .woocommerce-account a[href*="register"]:hover {
	color: var(--tv-gold-soft, #ecc878) !important;
	border-bottom-color: var(--tv-gold, #d6a64a);
}

/* Goya's "Not a member? Register" strip under the login button. */
.woocommerce-form-login .lost_password + p,
.woocommerce form.login p:last-child,
.et-login-register,
.login-register-links {
	color: var(--tv-muted, #bdb2a1) !important;
}

.et-login-register a,
.login-register-links a,
.woocommerce form.login p:last-child a {
	color: var(--tv-gold, #d6a64a) !important;
	font-weight: 600;
}

/* --- Hints on both forms ---------------------------------------------- */

.tv-acc-hint {
	margin: 0 0 1.25rem !important;
	padding: 0.75rem 0.95rem;
	font-size: 0.85rem;
	font-weight: 300;
	line-height: 1.6;
	color: var(--tv-paper, #f3efe8);
	background: rgba(214, 166, 74, 0.08);
	border-left: 2px solid var(--tv-gold, #d6a64a);
	border-radius: 2px;
}

.tv-acc-hint strong {
	color: var(--tv-gold, #d6a64a);
	font-weight: 600;
}

/* --- Guest route ------------------------------------------------------- */

.tv-guest {
	max-width: 980px;
	margin: 0 auto clamp(1.75rem, 4vw, 3rem);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: linear-gradient(150deg, var(--tv-maroon, #6e0820) -20%, var(--tv-maroon-deep, #4a0516) 92%);
	border: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26));
	border-radius: 3px;
	text-align: center;
}

.tv-guest__eyebrow {
	margin: 0 0 0.6rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--tv-gold-soft, #ecc878);
}

.tv-guest__title {
	font-family: var(--tv-serif, Georgia, serif) !important;
	font-size: clamp(1.5rem, 3vw, 2.1rem) !important;
	font-weight: 400 !important;
	color: #fff !important;
	margin: 0 0 0.7rem !important;
}

.tv-guest__lead {
	max-width: 62ch;
	margin: 0 auto 1.5rem !important;
	font-size: 0.94rem;
	font-weight: 300;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.88);
}

body a.tv-guest__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 1.9rem;
	font-family: var(--tv-sans, sans-serif);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #1a1206 !important;
	background: var(--tv-gold, #d6a64a);
	border: 1px solid var(--tv-gold, #d6a64a);
	border-radius: 2px;
	text-decoration: none;
	transition: background-color 220ms ease, border-color 220ms ease;
}

body a.tv-guest__btn:hover {
	background: var(--tv-gold-soft, #ecc878);
	border-color: var(--tv-gold-soft, #ecc878);
	color: #1a1206 !important;
}

/* --- Header: Login / Register label ------------------------------------ */

.tv-hd__tool--acct {
	width: auto;
	gap: 0.5rem;
	padding: 0 0.65rem;
}

.tv-hd__toollabel {
	display: none;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

@media (min-width: 1280px) {
	.tv-hd__toollabel {
		display: inline;
	}
}

.tv-drawer__foot .tv-btn + .tv-btn {
	margin-top: 0.6rem;
}

/* =========================================================================
   Dark-text safety net.

   The theme_mod filter fixes Goya's generated CSS at the source. These cover
   the handful of places where the theme hardcodes a colour instead of reading
   a theme_mod, so no amount of re-pointing the palette would reach them.
   ========================================================================= */

/* Accordion / tab headings on the single product ("Description", "Reviews") */
.single-product .et-accordion-title,
.single-product .accordion-title,
.single-product .woocommerce-tabs .panel-title,
.single-product .et-product-accordion .title,
.single-product .wc-tab-title,
.single-product .tab-title,
.et-accordion .et-accordion-title,
.et-accordion-title a,
.et-accordion-title span {
	color: var(--tv-paper, #f3efe8) !important;
}

.et-accordion-title:hover,
.et-accordion-title a:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/* The +/- glyph on those accordions */
.et-accordion-title::after,
.et-accordion-title::before,
.accordion-title::after {
	color: var(--tv-gold, #d6a64a) !important;
	border-color: var(--tv-gold, #d6a64a) !important;
}

/* SKU / category / tag meta under Add to cart */
.product_meta,
.product_meta span,
.product_meta .sku,
.product_meta .sku_wrapper,
.product_meta .posted_in,
.product_meta .tagged_as,
.single-product .sku {
	color: var(--tv-muted, #bdb2a1) !important;
}

.product_meta a {
	color: var(--tv-paper, #f3efe8) !important;
}

.product_meta a:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/* Share row */
.single-product .share-links,
.single-product .share-links span,
.single-product .product-share,
.single-product .product-share span,
.et-share-label {
	color: var(--tv-muted, #bdb2a1) !important;
}

.single-product .share-links a,
.single-product .product-share a {
	color: var(--tv-paper, #f3efe8) !important;
}

.single-product .share-links a:hover,
.single-product .product-share a:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/* Sticky add-to-cart bar that slides up on scroll */
.sticky-product-bar,
.et-sticky-add-to-cart,
.product-sticky-bar,
.sticky-add-to-cart {
	background: rgba(29, 13, 18, 0.97) !important;
	border-top: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26)) !important;
	color: var(--tv-paper, #f3efe8) !important;
	backdrop-filter: blur(12px);
}

.sticky-product-bar *,
.et-sticky-add-to-cart *,
.product-sticky-bar *,
.sticky-add-to-cart * {
	color: var(--tv-paper, #f3efe8);
}

.sticky-product-bar .price,
.et-sticky-add-to-cart .price,
.product-sticky-bar .price {
	color: var(--tv-gold, #d6a64a) !important;
}

/* Related / upsell headings */
.related > h2,
.upsells > h2,
.cross-sells > h2,
.related-products h2,
.woocommerce-tabs h2 {
	color: var(--tv-paper, #f3efe8) !important;
}

/* Stock, backorder and variation notices */
.stock,
.stock.in-stock,
.stock.out-of-stock,
.wc-backorder-notification,
.woocommerce-variation-availability {
	color: var(--tv-muted, #bdb2a1) !important;
}

/* Quantity +/- glyphs */
.quantity .plus,
.quantity .minus,
.quantity button {
	color: var(--tv-paper, #f3efe8) !important;
}

/*
 * Last resort. Anything still painting Goya's two default dark inks inside our
 * dark regions gets lifted. Deliberately narrow: it names those two exact
 * values rather than blanket-forcing every colour, so gold buttons (dark text
 * on gold, on purpose), badges and the logo are untouched.
 */
body.single-product [style*="color: #282828"],
body.single-product [style*="color:#282828"],
body.woocommerce [style*="color: #777777"],
body.woocommerce [style*="color:#777777"],
body.woocommerce-page [style*="color: #282828"],
body.woocommerce-page [style*="color:#282828"] {
	color: var(--tv-paper, #f3efe8) !important;
}

/* =========================================================================
   Links in content.

   Goya sets a { color:#151515 }. On the account dashboard that turned every
   inline link ("recent orders", "Log out", the customer's own name) into
   near-black on near-black, so the sentences read with holes punched in them.
   ========================================================================= */

/*
 * Every :not() here is a button that happens to be an <a>. Without them this
 * rule painted gold text on the gold buttons, which is how the About and
 * Contact call-to-action buttons came out completely blank.
 */
body.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not([class*="tv-btn"]):not([class*="tvb__btn"]),
body.woocommerce .woocommerce-MyAccount-content a:not(.button):not([class*="tv-btn"]),
body.woocommerce-page .woocommerce-MyAccount-content a:not(.button):not([class*="tv-btn"]),
body.woocommerce .woocommerce-info a:not(.button),
body.woocommerce .woocommerce-message a:not(.button),
body.tievera-flat-page .entry-content a:not(.button):not([class*="tv-btn"]):not([class*="tvb__btn"]),
body.single-post .entry-content a:not(.button):not([class*="tv-btn"]),
body.page .entry-content a:not(.button):not([class*="tv-btn"]):not([class*="tvb__btn"]) {
	color: var(--tv-gold, #d6a64a) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(214, 166, 74, 0.45);
}

body.woocommerce-account .woocommerce-MyAccount-content a:hover,
body.page .entry-content a:hover,
body.single-post .entry-content a:hover {
	color: var(--tv-gold-soft, #ecc878) !important;
	text-decoration-color: var(--tv-gold-soft, #ecc878);
}

/* Buttons are links too - keep their dark-on-gold ink. */
body.woocommerce-account .woocommerce-MyAccount-content a.button,
body.woocommerce .woocommerce-message a.button,
body.woocommerce .woocommerce-info a.button {
	color: #1a1206 !important;
	text-decoration: none;
}

/* =========================================================================
   My Account dashboard layout
   ========================================================================= */

.woocommerce-account .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--tv-surface, #38181f);
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11));
	border-radius: 3px;
	min-height: 320px;
}

.woocommerce-account .woocommerce-MyAccount-content p {
	color: var(--tv-paper, #f3efe8);
	line-height: 1.8;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	padding-bottom: 1.1rem;
	margin-bottom: 1.4rem;
	border-bottom: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11));
	font-family: var(--tv-serif, Georgia, serif);
	font-size: 1.35rem;
}

/* Avatar block above the nav */
.woocommerce-account .myaccount-user-info,
.woocommerce-account .account-user,
.woocommerce-account .woocommerce-MyAccount-navigation .user-info {
	text-align: center;
	padding-bottom: 1.25rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11));
	color: var(--tv-muted, #bdb2a1) !important;
}

.woocommerce-account .myaccount-user-info img,
.woocommerce-account .account-user img,
.woocommerce-account .woocommerce-MyAccount-navigation img.avatar {
	border-radius: 50%;
	border: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26));
}

.woocommerce-account .myaccount-user-info a,
.woocommerce-account .account-user a {
	color: var(--tv-paper, #f3efe8) !important;
	text-decoration: none;
}

/* Nav items get room to breathe and a clear active state. */
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	letter-spacing: 0.12em;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
	background: rgba(214, 166, 74, 0.12);
	color: var(--tv-gold, #d6a64a) !important;
	box-shadow: inset 2px 0 0 var(--tv-gold, #d6a64a);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a svg,
.woocommerce-account .woocommerce-MyAccount-navigation li a i,
.woocommerce-account .woocommerce-MyAccount-navigation li a::before {
	color: var(--tv-gold, #d6a64a) !important;
	opacity: 0.9;
}

/* Log out sits apart from the destinations above it. */
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 0.5rem;
	border-top: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26)) !important;
}



/* =========================================================================
   My Account — layout, rebuilt against Goya's actual markup.

   Previous attempt keyed off a `.logged-out` body class. WordPress has no
   such class: it only ever adds `logged-in`. So `:not(.logged-out)` matched
   the logged-OUT page too and squeezed the login form into the 264px
   dashboard column.
   ========================================================================= */

/* --- Signed out: guest route above, login card below, both centred ----- */

.woocommerce-account:not(.logged-in) .woocommerce > .container,
.woocommerce-account:not(.logged-in) .et-login-wrapper,
.woocommerce-account:not(.logged-in) .et-form-container {
	max-width: 620px;
	margin-inline: auto;
	width: 100%;
	float: none;
}

.woocommerce-account:not(.logged-in) .tv-guest {
	max-width: 620px;
}

.woocommerce-account .et-form-container .form-wrapper {
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	background: var(--tv-surface, #38181f);
	border: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26));
	border-radius: 3px;
}

/* --- Signed in: nav beside content ------------------------------------
   :has() targets whichever element actually contains the nav, so this does
   not depend on guessing Goya's wrapper class. Browsers without :has() just
   get the stacked default, which is still perfectly usable. */

@media (min-width: 900px) {
	.woocommerce-account.logged-in .woocommerce:has(> .woocommerce-MyAccount-navigation),
	.woocommerce-account.logged-in .container:has(> .woocommerce-MyAccount-navigation),
	.woocommerce-account.logged-in .row:has(> .woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 264px minmax(0, 1fr);
		gap: clamp(1.5rem, 4vw, 3.25rem);
		align-items: start;
		max-width: 1140px;
		margin-inline: auto;
	}
}

.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
.woocommerce-account.logged-in .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
}

/* Goya wraps the login form in its own bordered container; with our card
   inside it that draws a box within a box. Only the inner one should show. */
.woocommerce-account .et-login-wrapper,
.woocommerce-account .et-overflow-container,
.woocommerce-account .et-form-container {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.woocommerce-account:not(.logged-in) .tv-guest {
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.woocommerce-account .et-overflow-container {
	margin-top: 0 !important;
}

/* =========================================================================
   Signed-out account page: guest route and login side by side.

   The container holds three children in this order - .tv-guest, the notices
   wrapper, then Goya's login wrapper. Grid placement is explicit because the
   notices sit *between* the two cards in the DOM and would otherwise land in
   the second column. Source order is left untouched so the visual order still
   matches the tab order.
   ========================================================================= */

@media (min-width: 900px) {
	.woocommerce-account:not(.logged-in) .woocommerce > .container {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: clamp(1.5rem, 3vw, 2.5rem);
		align-items: stretch;
		max-width: 1100px !important;
		margin-inline: auto;
	}

	.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.woocommerce-account:not(.logged-in) .tv-guest {
		grid-column: 1;
		grid-row: 2;
		max-width: none;
		margin: 0;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.woocommerce-account:not(.logged-in) .et-overflow-container {
		grid-column: 2;
		grid-row: 2;
		max-width: none;
	}

	.woocommerce-account:not(.logged-in) .et-form-container,
	.woocommerce-account:not(.logged-in) .et-form-container > div,
	.woocommerce-account:not(.logged-in) .form-wrapper {
		max-width: none;
		height: 100%;
	}

	.woocommerce-account:not(.logged-in) .form-wrapper {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}

/* =========================================================================
   WooCommerce BLOCK cart & checkout.

   WooCommerce 11 ships the block cart by default. It shares nothing with the
   classic `table.shop_table` markup, which is why every cart rule above did
   nothing: product names, quantities and totals kept Goya's dark ink on our
   dark page. These are the wc-block-* equivalents.
   ========================================================================= */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wc-block-cart,
.wc-block-checkout {
	color: var(--tv-paper, #f3efe8);
}

/* Zero-specificity sweep: everything inside the block region inherits the
   light ink, then the rules below re-specify the few exceptions. */
.wp-block-woocommerce-cart :where(*),
.wp-block-woocommerce-checkout :where(*),
.wc-block-mini-cart__drawer :where(*) {
	color: inherit;
}

/* --- line items -------------------------------------------------------- */

.wc-block-cart-items,
.wc-block-cart-items__header,
.wc-block-cart-items__row,
.wc-block-cart-item__wrap {
	border-color: var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
}

.wc-block-cart-items__header,
.wc-block-cart-items__header-product,
.wc-block-cart-items__header-total {
	color: var(--tv-gold, #d6a64a) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
}

.wc-block-components-product-name {
	color: var(--tv-paper, #f3efe8) !important;
	font-weight: 600;
	text-decoration: none;
}

.wc-block-components-product-name:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description,
.wc-block-components-product-details {
	color: var(--tv-muted, #bdb2a1) !important;
	font-weight: 300;
}

.wc-block-cart-item__image img,
.wc-block-cart-item__image {
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11));
	border-radius: 2px;
	background: var(--tv-surface, #38181f);
}

/* --- money ------------------------------------------------------------- */

.wc-block-components-product-price__value,
.wc-block-components-formatted-money-amount,
.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-product-price {
	color: var(--tv-gold, #d6a64a) !important;
	font-variant-numeric: tabular-nums;
}

.wc-block-components-product-price__regular,
.wc-block-components-product-price del {
	color: var(--tv-muted, #bdb2a1) !important;
	opacity: 0.75;
}

.wc-block-components-sale-badge,
.wc-block-components-product-badge {
	background: var(--tv-maroon, #6e0820) !important;
	color: var(--tv-gold-soft, #ecc878) !important;
	border: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26)) !important;
	border-radius: 2px;
	font-size: 0.68rem;
	letter-spacing: 0.06em;
}

/* --- quantity stepper -------------------------------------------------- */

.wc-block-components-quantity-selector {
	background: rgba(0, 0, 0, 0.3) !important;
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
	border-radius: 2px;
}

.wc-block-components-quantity-selector::after {
	border-color: transparent !important;
}

.wc-block-components-quantity-selector__input {
	/* The number was invisible: Goya's dark ink on our dark field. */
	-webkit-appearance: textfield;
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent !important;
	color: var(--tv-paper, #f3efe8) !important;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.wc-block-components-quantity-selector__button {
	background: transparent !important;
	color: var(--tv-paper, #f3efe8) !important;
	border: 0 !important;
	opacity: 1 !important;
}

.wc-block-components-quantity-selector__button:hover:not(:disabled) {
	color: var(--tv-gold, #d6a64a) !important;
}

.wc-block-cart-item__remove-link {
	color: var(--tv-muted, #bdb2a1) !important;
	text-decoration: underline;
}

.wc-block-cart-item__remove-link:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/* --- totals sidebar ---------------------------------------------------- */

.wc-block-cart__sidebar .wc-block-components-sidebar,
.wc-block-checkout__sidebar .wc-block-components-sidebar,
.wc-block-components-totals-wrapper {
	background: var(--tv-surface, #38181f) !important;
	border: 1px solid var(--tv-line, rgba(214, 166, 74, 0.26)) !important;
	border-radius: 3px;
}

.wc-block-components-totals-wrapper {
	border-width: 0 0 1px !important;
	border-radius: 0;
	border-color: var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
	background: transparent !important;
}

.wc-block-cart__totals-title {
	color: var(--tv-gold, #d6a64a) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.wc-block-components-totals-item__label {
	color: var(--tv-muted, #bdb2a1) !important;
}

.wc-block-components-totals-item__value {
	color: var(--tv-paper, #f3efe8) !important;
	font-variant-numeric: tabular-nums;
}

.wc-block-components-totals-footer-item,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--tv-paper, #f3efe8) !important;
	font-weight: 600;
}

.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
	color: var(--tv-gold, #d6a64a) !important;
	font-size: 1.35rem;
}

/* Coupon / shipping accordions */
.wc-block-components-panel__button,
.wc-block-components-panel__button * {
	color: var(--tv-paper, #f3efe8) !important;
}

.wc-block-components-panel__button:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

.wc-block-components-panel__marker,
.wc-block-components-chip {
	background: var(--tv-surface-2, #45222a) !important;
	color: var(--tv-paper, #f3efe8) !important;
}

/* --- inputs ------------------------------------------------------------ */

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__select,
.wc-block-components-combobox-control input {
	background: rgba(0, 0, 0, 0.35) !important;
	color: var(--tv-paper, #f3efe8) !important;
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
	border-radius: 2px;
}

.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-components-select__label {
	color: var(--tv-muted, #bdb2a1) !important;
}

.wc-block-components-text-input.is-active label {
	color: var(--tv-gold, #d6a64a) !important;
}

/* --- buttons ----------------------------------------------------------- */

/*
 * "Proceed to Checkout" rendered black-on-black. It is the one thing on the
 * page that must not inherit the light ink - dark text on gold.
 */
body .wc-block-cart__submit-button,
body .wc-block-components-button.wc-block-cart__submit-button,
body .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button,
body .wc-block-components-button:not(.wc-block-components-panel__button):not(.wc-block-components-quantity-selector__button) {
	background: var(--tv-gold, #d6a64a) !important;
	color: #1a1206 !important;
	border: 1px solid var(--tv-gold, #d6a64a) !important;
	border-radius: 2px !important;
	min-height: 54px;
	font-family: var(--tv-sans, sans-serif);
	font-size: 0.76rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	box-shadow: none !important;
}

body .wc-block-cart__submit-button *,
body .wc-block-components-checkout-place-order-button * {
	color: #1a1206 !important;
}

body .wc-block-cart__submit-button:hover,
body .wc-block-components-checkout-place-order-button:hover {
	background: var(--tv-gold-soft, #ecc878) !important;
	border-color: var(--tv-gold-soft, #ecc878) !important;
}

/* Text-style block buttons (e.g. "Apply") stay quiet. */
body .wc-block-components-button.is-link,
body .wc-block-components-totals-coupon__button {
	background: transparent !important;
	color: var(--tv-gold, #d6a64a) !important;
	border-color: var(--tv-gold-dim, #9c7730) !important;
	min-height: 44px;
}

/* --- empty cart + notices ---------------------------------------------- */

.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2 {
	color: var(--tv-paper, #f3efe8) !important;
	font-family: var(--tv-serif, Georgia, serif) !important;
}

.wc-block-components-notice-banner {
	background: var(--tv-surface, #38181f) !important;
	color: var(--tv-paper, #f3efe8) !important;
	border-color: var(--tv-gold, #d6a64a) !important;
}

.wc-block-components-notice-banner__content,
.wc-block-components-notice-banner__content * {
	color: var(--tv-paper, #f3efe8) !important;
}

/* Cross-sell grid on the empty cart */
.wc-block-grid__product-title,
.wc-block-grid__product-price {
	color: var(--tv-paper, #f3efe8) !important;
}

.wc-block-grid__product-price .woocommerce-Price-amount {
	color: var(--tv-gold, #d6a64a) !important;
}

/* =========================================================================
   Reviews and share on the single product — the last dark-on-dark holdouts
   ========================================================================= */

#reviews,
#reviews *,
.woocommerce-Reviews,
.woocommerce-Reviews *,
.woocommerce-noreviews,
.comment-reply-title,
.woocommerce-review__author,
.woocommerce-review__published-date {
	color: var(--tv-paper, #f3efe8);
}

.woocommerce-noreviews,
.woocommerce-verification-required {
	background: var(--tv-surface, #38181f) !important;
	border-top: 2px solid var(--tv-gold, #d6a64a) !important;
	color: var(--tv-paper, #f3efe8) !important;
}

/* "Add a review" toggle rendered in black. */
body #review_form_wrapper .add-review,
body .add-review,
body .show-review-form,
body a.add_review,
body #reviews .comment-reply-title,
body #respond .form-submit input.submit {
	color: var(--tv-gold, #d6a64a) !important;
	border-color: var(--tv-gold-dim, #9c7730) !important;
}

body #respond .form-submit input.submit {
	background: var(--tv-gold, #d6a64a) !important;
	color: #1a1206 !important;
	border-color: var(--tv-gold, #d6a64a) !important;
}

#respond textarea,
#respond input[type="text"],
#respond input[type="email"] {
	background: rgba(0, 0, 0, 0.35) !important;
	color: var(--tv-paper, #f3efe8) !important;
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
}

#respond label,
.comment-form-rating label {
	color: var(--tv-muted, #bdb2a1) !important;
}

.stars a,
.comment-form-rating .stars a {
	color: var(--tv-gold, #d6a64a) !important;
}

/* Share row: the label was black, the icons near-invisible. */
.single-product .share-links,
.single-product .share-links *,
.single-product .product-share,
.single-product .product-share *,
.et-share,
.et-share * {
	color: var(--tv-muted, #bdb2a1) !important;
}

.single-product .share-links > span:first-child,
.single-product .product-share > span:first-child,
.et-share-label {
	color: var(--tv-paper, #f3efe8) !important;
	font-weight: 600;
}

.single-product .share-links a:hover,
.single-product .product-share a:hover,
.et-share a:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/* =========================================================================
   Round of dark-on-dark fixes: quantity, share, wishlist, load more,
   filters, and the buttons that came out blank.
   ========================================================================= */

/* --- Belt and braces on every brand button ----------------------------- */

/*
 * A gold button must keep dark ink no matter which layer tried to recolour
 * it. -webkit-text-fill-color is included because it beats `color` outright
 * on some elements and is a common silent cause of "the text vanished".
 */
body a.tv-btn--gold,
body a.tv-btn--gold span,
body button.tv-btn--gold,
body button.tv-btn--gold span,
body a.tvb__btn--gold,
body a.tvb__btn--gold span,
body button.tvb__btn--gold,
body button.tvb__btn--gold span {
	color: #1a1206 !important;
	-webkit-text-fill-color: #1a1206 !important;
	text-decoration: none !important;
}

body a.tv-btn--ghost,
body a.tv-btn--ghost span,
body a.tv-btn--link,
body a.tv-btn--link span,
body a.tvb__btn--ghost,
body a.tvb__btn--ghost span {
	color: var(--tv-gold-soft, #ecc878) !important;
	-webkit-text-fill-color: var(--tv-gold-soft, #ecc878) !important;
	text-decoration: none !important;
}

/* --- Quantity: the number itself --------------------------------------- */

/*
 * Goya's input is `input.input-text.qty.text`. Colour alone was not enough -
 * text-fill-color and opacity both have to be pinned, and the field needs
 * real width or the digit sits outside the visible box.
 */
body .quantity input.qty,
body .quantity input.input-text.qty,
body .quantity input[type="number"] {
	color: var(--tv-paper, #f3efe8) !important;
	-webkit-text-fill-color: var(--tv-paper, #f3efe8) !important;
	opacity: 1 !important;
	background: transparent !important;
	border: 0 !important;
	width: 58px !important;
	min-width: 58px;
	text-align: center !important;
	font-size: 1rem !important;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

body .quantity .minus,
body .quantity .plus,
body .quantity .minus svg,
body .quantity .plus svg {
	color: var(--tv-paper, #f3efe8) !important;
	opacity: 1 !important;
}

body .quantity .minus:hover,
body .quantity .plus:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/* --- Share icons ------------------------------------------------------- */

.single-product .share-links a,
.single-product .product-share a,
.et-share a,
.single-product .share-links svg,
.single-product .product-share svg,
.et-social-icons a,
.et-social-icons i {
	color: var(--tv-gold, #d6a64a) !important;
	opacity: 1 !important;
}

.single-product .share-links a:hover,
.single-product .product-share a:hover,
.et-social-icons a:hover {
	color: var(--tv-gold-soft, #ecc878) !important;
}

/* --- Wishlist (YITH) ---------------------------------------------------- */

.wishlist_table,
.wishlist_table th,
.wishlist_table td,
.wishlist-title,
.wishlist-title h2,
.yith_wcwl_wishlist_footer {
	color: var(--tv-paper, #f3efe8) !important;
	border-color: var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
	background: transparent !important;
}

.wishlist_table td.product-name a,
.wishlist_table .product-name a {
	color: var(--tv-paper, #f3efe8) !important;
	font-weight: 600;
}

.wishlist_table td.product-name a:hover {
	color: var(--tv-gold, #d6a64a) !important;
}

/*
 * The price cell rendered a white slab: the <ins> holding the sale price
 * carries its own light background. Clear every descendant, then colour.
 */
.wishlist_table td.product-price,
.wishlist_table td.product-price *,
.wishlist_table .product-price ins,
.wishlist_table .product-price del,
.wishlist_table .product-price bdi,
.wishlist_table .amount {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

.wishlist_table td.product-price ins,
.wishlist_table td.product-price ins * {
	color: var(--tv-gold, #d6a64a) !important;
	-webkit-text-fill-color: var(--tv-gold, #d6a64a) !important;
	text-decoration: none !important;
	font-weight: 600;
}

.wishlist_table td.product-price del,
.wishlist_table td.product-price del * {
	color: var(--tv-muted, #bdb2a1) !important;
	-webkit-text-fill-color: var(--tv-muted, #bdb2a1) !important;
	opacity: 0.75;
}

/* Stock chip */
.wishlist_table .product-stock-status,
.wishlist_table .product-stock-status span {
	color: var(--tv-gold-soft, #ecc878) !important;
	border-color: var(--tv-line, rgba(214, 166, 74, 0.26)) !important;
}

/* Add to cart: was black-on-black, and Goya's loop CSS hides .text off-screen
   so the gold button rendered completely empty. */
body .wishlist_table td.product-add-to-cart a.button,
body .wishlist_table td.product-add-to-cart a.add_to_cart,
body .wishlist_table a.add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	position: relative !important;
	min-height: 44px;
	padding: 0 1.1rem !important;
	background: var(--tv-gold, #d6a64a) !important;
	color: #1a1206 !important;
	-webkit-text-fill-color: #1a1206 !important;
	border: 1px solid var(--tv-gold, #d6a64a) !important;
	border-radius: 2px;
	font-size: 0.72rem !important;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 1 !important;
	visibility: visible !important;
}

body .wishlist_table td.product-add-to-cart a.button .text,
body .wishlist_table td.product-add-to-cart a.add_to_cart .text,
body .wishlist_table a.added_to_cart {
	position: static !important;
	visibility: visible !important;
	opacity: 1 !important;
	transform: none !important;
	left: auto !important;
	right: auto !important;
	color: #1a1206 !important;
	-webkit-text-fill-color: #1a1206 !important;
	display: inline !important;
}

/* Remove (the little x) was invisible. */
body .wishlist_table td.product-remove a,
body .wishlist_table td.product-remove .remove_from_wishlist,
body .wishlist_table td.product-remove .remove,
body .wishlist_table td.product-remove a.remove {
	color: var(--tv-muted, #bdb2a1) !important;
	background: transparent !important;
	border: 1px solid var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
	border-radius: 50%;
	width: 28px;
	height: 28px;
	line-height: 26px !important;
	text-align: center;
	font-size: 1rem !important;
	opacity: 1 !important;
	display: inline-block !important;
}

body .wishlist_table td.product-remove a:hover,
body .wishlist_table td.product-remove a.remove:hover {
	color: var(--tv-gold, #d6a64a) !important;
	border-color: var(--tv-gold, #d6a64a) !important;
	background: transparent !important;
}

/* --- Load more ---------------------------------------------------------- */

/*
 * Goya renders it as `.button.outlined`, and core.css pins .button.outlined
 * to #282828 - dark ink on our dark page.
 */
body a.et-infload-btn,
body .et-infload-btn.button,
body .et-infload-btn.button.outlined,
body .et-shop-infload-btn {
	color: var(--tv-gold, #d6a64a) !important;
	-webkit-text-fill-color: var(--tv-gold, #d6a64a) !important;
	background: transparent !important;
	border: 1px solid var(--tv-gold-dim, #9c7730) !important;
	border-radius: 2px;
	opacity: 1 !important;
	min-height: 50px;
	padding: 0 1.9rem !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-size: 0.74rem !important;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

body a.et-infload-btn:hover,
body .et-infload-btn.button.outlined:hover {
	background: rgba(214, 166, 74, 0.14) !important;
	border-color: var(--tv-gold, #d6a64a) !important;
	color: var(--tv-gold-soft, #ecc878) !important;
	-webkit-text-fill-color: var(--tv-gold-soft, #ecc878) !important;
}

.et-infload-loader,
.et-infload-controls {
	color: var(--tv-muted, #bdb2a1) !important;
}

/* --- Filters (toolbar trigger + the slide-out panel) -------------------- */

body .shop-filters,
body .shop-filters *,
body .et-filters,
body .et-filters *,
body .filters-toggle,
body .filters-toggle *,
body [class*="filters-button"],
body [class*="filters-button"] * {
	color: var(--tv-paper, #f3efe8) !important;
	-webkit-text-fill-color: var(--tv-paper, #f3efe8) !important;
	opacity: 1 !important;
}

body .shop-filters:hover,
body .shop-filters:hover *,
body [class*="filters-button"]:hover * {
	color: var(--tv-gold, #d6a64a) !important;
	-webkit-text-fill-color: var(--tv-gold, #d6a64a) !important;
}

/* The slide-out filter panel itself */
#side-filters,
#side-filters .side-panel-content,
.side-panel,
.side-panel .side-panel-title {
	background: var(--tv-base, #2b1219) !important;
	color: var(--tv-paper, #f3efe8) !important;
}

#side-filters *,
.side-panel .widget,
.side-panel .widget * {
	color: inherit;
	border-color: var(--tv-line-soft, rgba(243, 239, 232, 0.11)) !important;
}

#side-filters .widget-title,
.side-panel .widget-title {
	color: var(--tv-gold, #d6a64a) !important;
}

/* --- Current page in the header ----------------------------------------- */

.tv-hd__nav-item.is-current > a {
	color: var(--tv-gold, #d6a64a) !important;
}

.tv-hd__nav-item.is-current > a::after {
	transform: scaleX(1);
}

.tv-hd__nav-item.is-current.is-trade > a {
	background: rgba(214, 166, 74, 0.16);
	border-color: var(--tv-gold, #d6a64a);
}

.tv-drawer__nav a.is-current {
	color: var(--tv-gold, #d6a64a) !important;
}

.tv-drawer__nav a.is-current::before {
	content: "";
	position: absolute;
	left: -1rem;
	top: 50%;
	width: 3px;
	height: 18px;
	margin-top: -9px;
	background: var(--tv-gold, #d6a64a);
}

.tv-drawer__nav li {
	position: relative;
}

/* No underlines on things that are buttons or icon rows. */
body a.et-infload-btn,
body .et-infload-btn.button.outlined,
body a.et-infload-to-top,
body .share-links a,
body .product-share a,
body .et-share a,
body .wishlist_table a.button:not(.remove_from_wishlist),
body .wishlist_table td.product-remove a {
	text-decoration: none !important;
}

/* =========================================================================
   Wishlist, corrected against the real YITH markup.

   The row prints TWO ways to remove a product: the circular x in the first
   column (td.product-remove) and a plain word "Remove" underneath Add to
   cart (td.product-add-to-cart a.remove_from_wishlist). My earlier rules
   matched both with one selector, so the word inherited the circle's fixed
   28px box and spilled out of it. They are separate things now.
   ========================================================================= */

body .wishlist_table td.product-add-to-cart {
	text-align: center;
	white-space: normal;
}

/* The real Add to cart. Goya prints .wishlist_table .add_to_cart{background:#000}. */
body .wishlist_table td.product-add-to-cart a.add_to_cart,
body .wishlist_table td.product-add-to-cart a.button:not(.remove_from_wishlist) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 40px;
	padding: 0 1.25rem !important;
	background: var(--tv-gold, #d6a64a) !important;
	color: #1a1206 !important;
	-webkit-text-fill-color: #1a1206 !important;
	border: 1px solid var(--tv-gold, #d6a64a) !important;
	border-radius: 2px;
	font-size: 0.7rem !important;
	line-height: 1.2 !important;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
}

body .wishlist_table td.product-add-to-cart a.add_to_cart:hover,
body .wishlist_table td.product-add-to-cart a.button:not(.remove_from_wishlist):hover {
	background: var(--tv-gold-soft, #ecc878) !important;
	border-color: var(--tv-gold-soft, #ecc878) !important;
}

/*
 * "Remove" is a text link, not a button. Every box property the circle rule
 * set has to be unwound explicitly - width and height especially, since that
 * is what was clipping the word.
 */
body .wishlist_table td.product-add-to-cart a.remove_from_wishlist,
body .wishlist_table td.product-add-to-cart .remove_from_wishlist,
body .wishlist_table td.product-add-to-cart a.remove {
	/* Its own line under the button, not squeezed alongside it. */
	display: block !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0.65rem 0 0 !important;
	padding: 0 !important;
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--tv-muted, #bdb2a1) !important;
	-webkit-text-fill-color: var(--tv-muted, #bdb2a1) !important;
	font-size: 0.66rem !important;
	font-weight: 500;
	line-height: 1.5 !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	text-decoration-color: rgba(189, 178, 161, 0.5) !important;
	overflow: visible !important;
	white-space: nowrap;
}

body .wishlist_table td.product-add-to-cart a.remove_from_wishlist:hover,
body .wishlist_table td.product-add-to-cart a.remove:hover {
	color: var(--tv-gold, #d6a64a) !important;
	-webkit-text-fill-color: var(--tv-gold, #d6a64a) !important;
	text-decoration-color: var(--tv-gold, #d6a64a) !important;
	background: none !important;
	border: 0 !important;
}

/* The circular x keeps its own cell and nothing else. */
body .wishlist_table td.product-remove {
	width: 44px;
	text-align: center;
}

/* Product name: a table cell, not body copy - drop the inherited underline. */
body .wishlist_table td.product-name a {
	text-decoration: none !important;
}

body .wishlist_table td.product-name a:hover {
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

/* Share row under the table. */
body .yith-wcwl-share a,
body .yith-wcwl-share li a,
body .yith-wcwl-share svg {
	color: var(--tv-gold, #d6a64a) !important;
	fill: currentColor;
	opacity: 1 !important;
}

body .yith-wcwl-share a:hover {
	color: var(--tv-gold-soft, #ecc878) !important;
}

body .yith-wcwl-share .yith-wcwl-share-title,
body .yith-wcwl-share > span {
	color: var(--tv-muted, #bdb2a1) !important;
}

/* =========================================================================
   Load more / "All products loaded."

   Goya's own rules:
       .et-infload-to-top,
       .et-infload-controls.hide-btn .et-infload-btn { display: none }
       .et-infload-controls.hide-btn .et-infload-to-top { display: block }

   so its JS swaps the two by adding .hide-btn. My earlier rule set
   `display: inline-flex !important` on BOTH, which beat those and left the
   button and the finished message on screen together. Anything below that
   touches display mirrors Goya's own structure so the swap still works.
   ========================================================================= */

body .et-infload-controls:not(.hide-btn) .et-infload-btn {
	display: inline-flex !important;
}

body .et-infload-controls.hide-btn .et-infload-btn {
	display: none !important;
}

/* The finished message is a sentence, not a button: no border, no box. */
body .et-infload-to-top {
	color: var(--tv-muted, #bdb2a1) !important;
	-webkit-text-fill-color: var(--tv-muted, #bdb2a1) !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	font-size: 0.72rem !important;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
}

body .et-infload-controls.hide-btn .et-infload-to-top {
	display: block !important;
}

body .et-infload-to-top:hover {
	color: var(--tv-gold, #d6a64a) !important;
	-webkit-text-fill-color: var(--tv-gold, #d6a64a) !important;
}

/* -------------------------------------------------------------------------
   Filter panel: the price slider.

   noUiSlider draws its track and handles with borders, and my blanket
   `#side-filters * { border-color: ... }` was repainting them, so the handles
   were nearly invisible against the track. They get their own colours back.
   ------------------------------------------------------------------------- */

#side-filters .noUi-target,
.side-panel .noUi-target {
	background: rgba(243, 239, 232, 0.12) !important;
	border: 0 !important;
	box-shadow: none !important;
	height: 3px;
	margin: 1.4rem 0 0.5rem;
}

#side-filters .noUi-connect,
.side-panel .noUi-connect {
	background: var(--tv-gold, #d6a64a) !important;
}

#side-filters .noUi-handle,
.side-panel .noUi-handle {
	width: 17px !important;
	height: 17px !important;
	top: -7px !important;
	right: -8px !important;
	background: var(--tv-gold, #d6a64a) !important;
	border: 1px solid var(--tv-gold, #d6a64a) !important;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5) !important;
	cursor: grab;
}

#side-filters .noUi-handle::before,
#side-filters .noUi-handle::after,
.side-panel .noUi-handle::before,
.side-panel .noUi-handle::after {
	display: none !important;
}

#side-filters .noUi-handle:focus-visible,
.side-panel .noUi-handle:focus-visible {
	outline: 2px solid var(--tv-paper, #f3efe8);
	outline-offset: 2px;
}

#side-filters .slider-values,
.side-panel .slider-values {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 0.4rem;
}

#side-filters .slider-values p,
.side-panel .slider-values p {
	margin: 0;
	font-size: 0.74rem;
	color: var(--tv-muted, #bdb2a1) !important;
}

#side-filters .wcapf-slider-value,
.side-panel .wcapf-slider-value {
	color: var(--tv-gold, #d6a64a) !important;
	font-weight: 600;
}

/* Filter lists in the panel */
#side-filters .wcapf-layered-nav a,
.side-panel .wcapf-layered-nav a {
	display: block;
	padding: 0.34rem 0;
	color: var(--tv-paper, #f3efe8) !important;
	text-decoration: none !important;
}

#side-filters .wcapf-layered-nav a:hover,
#side-filters .wcapf-layered-nav a.active,
.side-panel .wcapf-layered-nav a.active {
	color: var(--tv-gold, #d6a64a) !important;
}

#side-filters .widgettitle,
.side-panel .widgettitle {
	color: var(--tv-gold, #d6a64a) !important;
	font-size: 0.74rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin: 1.4rem 0 0.5rem;
}

#side-filters .et-close,
.side-panel header .et-close {
	background: var(--tv-gold, #d6a64a) !important;
	color: #1a1206 !important;
	-webkit-text-fill-color: #1a1206 !important;
	border: 0 !important;
}
