/* ==========================================================================
   GOSHOPCARA — SHOP, ARCHIVE, POLICY PAGES
   Loaded after motion.css.
   ========================================================================== */

/* --------------------------------------------------------------------------
   FIX — button label contrast.
   The inherited stylesheet paints button text near-black; on the burgundy
   fill that fails contrast and reads as a shadow. Labels on any filled
   burgundy surface are forced to white here rather than outlined, because an
   outline on 12px uppercase type blurs the letterforms.
   -------------------------------------------------------------------------- */

.gsc-btn--primary,
.gsc-btn--primary:link,
.gsc-btn--primary:visited,
.gsc-card__add,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	color: #fff !important;
	text-shadow: none;
	-webkit-text-stroke: 0;
}

.gsc-btn--primary:hover,
.gsc-btn--primary:focus-visible,
.gsc-card__add:hover {
	color: #fff !important;
}

/* The two panels that invert to a white button keep dark text. */
.gsc-feature .gsc-btn--primary,
.gsc-news .gsc-btn--primary,
.gsc-statement .gsc-btn--primary {
	color: var(--burgundy-900) !important;
}

.gsc-feature .gsc-btn--primary:hover,
.gsc-news .gsc-btn--primary:hover,
.gsc-statement .gsc-btn--primary:hover {
	color: #fff !important;
}

/* Secondary buttons sit on white, so they keep ink text until they fill. */
.gsc-btn--secondary { color: var(--text); }
.gsc-btn--secondary:hover,
.gsc-btn--secondary:focus-visible { color: #fff !important; }

/* --------------------------------------------------------------------------
   ARCHIVE HEADER
   -------------------------------------------------------------------------- */

/* The archive section sits directly under a transparent header, so it needs
   its own top offset — the hero supplies that on the front page. */
.gsc-archive {
	padding-top: clamp(var(--sp-8), 5vw, 72px);
}

.gsc-archive__head {
	max-width: 760px;
	margin-bottom: clamp(var(--sp-6), 4vw, var(--sp-12));
}

.gsc-archive__head .gsc-label { margin-bottom: var(--sp-3); }
.gsc-archive__head .gsc-lede { margin-top: var(--sp-4); }

.gsc-archive__count {
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--muted);
	margin: var(--sp-4) 0 0;
}

/* --------------------------------------------------------------------------
   FILTER BAR — brief §42 (top bar, no sidebar)
   -------------------------------------------------------------------------- */

.gsc-filter {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	padding-bottom: var(--sp-5);
	margin-bottom: clamp(var(--sp-5), 3vw, var(--sp-8));
	border-bottom: 1px solid var(--border);
	flex-wrap: wrap;
}

.gsc-filter__scroll {
	display: flex;
	gap: var(--sp-2);
	overflow-x: auto;
	flex: 1 1 320px;
	min-width: 0;
	padding-bottom: 2px;
	scrollbar-width: none;
}

.gsc-filter__scroll::-webkit-scrollbar { display: none; }

.gsc-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px var(--sp-4);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--muted);
	white-space: nowrap;
	flex: none;
	transition: color var(--m-base) var(--m-out),
	            border-color var(--m-base) var(--m-out),
	            background var(--m-base) var(--m-out);
}

.gsc-chip:hover {
	color: var(--text);
	border-color: var(--burgundy-700);
}

.gsc-chip.is-on {
	background: var(--burgundy-700);
	border-color: var(--burgundy-700);
	color: #fff;
}

.gsc-chip__n {
	font-size: 10px;
	opacity: .65;
	font-variant-numeric: tabular-nums;
}

.gsc-filter__sort { flex: none; }

.gsc-filter__sort .woocommerce-ordering select,
.gsc-filter__sort select {
	appearance: none;
	-webkit-appearance: none;
	padding: 10px var(--sp-8) 10px var(--sp-4);
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	background: var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B5A5E' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right var(--sp-4) center;
	font-size: 12px;
	font-family: inherit;
	color: var(--text);
	cursor: pointer;
	transition: border-color var(--m-base) var(--m-out);
}

.gsc-filter__sort select:focus {
	outline: none;
	border-color: var(--burgundy-700);
}

.woocommerce .woocommerce-ordering { margin: 0; }

/* --------------------------------------------------------------------------
   PRODUCT GRID
   -------------------------------------------------------------------------- */

/* Fixed column counts, not auto-fill. auto-fill let the column count drift
   with the viewport, so a page of 15 could end on a row of 2 with three empty
   cells beside it. Each breakpoint now divides the page size exactly. */
.gsc-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(var(--sp-3), 1.6vw, var(--sp-5));
}

@media (max-width: 1400px) {
	.gsc-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
	.gsc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
	.gsc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.gsc-grid { gap: var(--sp-3); }
	.gsc-grid .gsc-card__name { font-size: 12.5px; }
	.gsc-grid .gsc-card__body { padding: var(--sp-3) var(--sp-3) var(--sp-4); }
}

/* --------------------------------------------------------------------------
   PAGINATION
   -------------------------------------------------------------------------- */

.woocommerce nav.woocommerce-pagination {
	margin: clamp(var(--sp-8), 5vw, var(--sp-12)) 0 0;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: var(--sp-2);
	border: 0;
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	margin: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 var(--sp-3);
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	font-size: 13px;
	color: var(--muted);
	background: none;
	transition: color var(--m-base) var(--m-out),
	            border-color var(--m-base) var(--m-out),
	            background var(--m-base) var(--m-out);
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	color: var(--text);
	border-color: var(--burgundy-700);
	background: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--burgundy-700);
	border-color: var(--burgundy-700);
	color: #fff;
}

/* --------------------------------------------------------------------------
   POLICY / CONTENT PAGES — brief: readable, consistent, scannable
   -------------------------------------------------------------------------- */

.page-hero {
	padding: clamp(var(--sp-12), 8vw, 120px) 0 clamp(var(--sp-6), 4vw, var(--sp-12));
	border-bottom: 1px solid var(--border);
	background: var(--surface);
}

.page-hero .wrap,
.page-content .wrap {
	width: 100%;
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0 var(--sp-gutter);
}

.page-hero .eyebrow {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--burgundy-700);
	margin-bottom: var(--sp-4);
}

.page-hero h1 {
	font-size: clamp(1.9rem, 4.6vw, 3.4rem);
	line-height: 1.04;
	letter-spacing: -.03em;
	margin: 0;
	max-width: 20ch;
}

.page-hero p {
	margin: var(--sp-4) 0 0;
	color: var(--muted);
	font-size: clamp(.98rem, 1.2vw, 1.1rem);
	max-width: 60ch;
	line-height: 1.68;
}

.page-content {
	padding: clamp(var(--sp-8), 6vw, 88px) 0 clamp(var(--sp-12), 8vw, 120px);
}

/* A readable measure, not a full-bleed wall of text. */
.page-content .entry-content {
	max-width: 74ch;
	font-size: 16.5px;
	line-height: 1.78;
	color: var(--text);
}

.page-content .entry-content > * + * { margin-top: 1.15em; }

.page-content .entry-content h2 {
	font-size: clamp(1.2rem, 2.2vw, 1.65rem);
	letter-spacing: -.02em;
	margin-top: 2.2em;
	padding-top: 1.2em;
	border-top: 1px solid var(--border);
}

.page-content .entry-content h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.page-content .entry-content h3 {
	font-size: clamp(1.02rem, 1.6vw, 1.2rem);
	margin-top: 1.9em;
}

.page-content .entry-content p { color: var(--text); }

.page-content .entry-content a {
	color: var(--burgundy-700);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition: color var(--m-base) var(--m-out);
}

.page-content .entry-content a:hover { color: var(--burgundy-600); }

.page-content .entry-content ul,
.page-content .entry-content ol {
	padding-left: 1.3em;
	color: var(--text);
}

.page-content .entry-content li + li { margin-top: .5em; }

.page-content .entry-content li::marker { color: var(--burgundy-700); }

.page-content .entry-content strong { font-weight: 600; }

.page-content .entry-content blockquote {
	margin-left: 0;
	padding: var(--sp-4) var(--sp-5);
	border-left: 3px solid var(--burgundy-700);
	background: var(--surface);
	border-radius: 0 var(--r-md) var(--r-md) 0;
	color: var(--text);
}

.page-content .entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14.5px;
	margin-top: 1.4em;
}

.page-content .entry-content th,
.page-content .entry-content td {
	text-align: left;
	padding: var(--sp-3) var(--sp-4);
	border-bottom: 1px solid var(--border);
	vertical-align: top;
}

.page-content .entry-content th {
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted);
	font-weight: 600;
	background: var(--surface);
}

.page-content .entry-content hr {
	border: 0;
	border-top: 1px solid var(--border);
	margin: 2.4em 0;
}

/* --------------------------------------------------------------------------
   WOOCOMMERCE SHELL — single product, cart, checkout, account
   -------------------------------------------------------------------------- */

.gsc-woo { padding-top: clamp(var(--sp-8), 5vw, 72px); }

.gsc-woo .woocommerce-notices-wrapper:empty { display: none; }

.gsc-woo__head {
	margin-bottom: clamp(var(--sp-6), 4vw, var(--sp-12));
}

.gsc-woo__head .gsc-label { margin-bottom: var(--sp-3); }

/* --------------------------------------------------------------------------
   PRODUCT PAGE — brief §43 (gallery 60 / info 40, dark editorial)
   -------------------------------------------------------------------------- */

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(var(--sp-6), 4vw, 64px);
	align-items: start;
}

/* The tabs and related rows sit below both columns, not beside them. */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product .woocommerce-product-gallery + .summary ~ * {
	grid-column: 1 / -1;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

/* Gallery */
.woocommerce div.product div.images {
	position: sticky;
	top: calc(var(--header-h) + var(--sp-5));
	/* Below the header's 880, so a sticky pane never covers the nav. */
	z-index: 1;
}

.woocommerce div.product div.images img {
	border-radius: var(--r-lg);
	background: #fff;
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--sp-2);
	margin: var(--sp-3) 0 0;
	padding: 0;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
}

.woocommerce div.product div.images .flex-control-thumbs img {
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	opacity: .62;
	transition: opacity var(--m-base) var(--m-out),
	            border-color var(--m-base) var(--m-out);
}

.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--burgundy-700);
}

/* Summary column */
.woocommerce div.product .summary { padding: 0; }

.woocommerce div.product .woocommerce-product-rating { margin-bottom: var(--sp-4); }

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--muted);
	font-size: 15px;
	line-height: 1.7;
	margin: var(--sp-4) 0;
	padding-bottom: var(--sp-5);
	border-bottom: 1px solid var(--border);
}

.woocommerce div.product form.cart {
	margin: var(--sp-5) 0 0;
	display: grid;
	gap: var(--sp-3);
}

.woocommerce div.product form.cart .quantity {
	float: none;
	margin: 0;
}

.woocommerce div.product form.cart .quantity input.qty {
	width: 100%;
	height: 48px;
	text-align: center;
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	background: var(--bg);
	color: var(--text);
	font-size: 15px;
}

.woocommerce div.product form.cart .button {
	height: 52px;
	font-size: 12px;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 600;
}

.woocommerce div.product .product_meta {
	margin-top: var(--sp-5);
	padding-top: var(--sp-5);
	border-top: 1px solid var(--border);
	font-size: 12.5px;
	color: var(--muted);
	display: grid;
	gap: var(--sp-2);
}

.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .product_meta a { color: var(--burgundy-700); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs {
	margin-top: clamp(var(--sp-8), 5vw, 72px);
	padding-top: clamp(var(--sp-6), 4vw, var(--sp-8));
	border-top: 1px solid var(--border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: var(--sp-2);
	padding: 0;
	margin: 0 0 var(--sp-6);
	border: 0;
	flex-wrap: wrap;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 1px solid var(--border);
	border-radius: 999px;
	background: none;
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 10px var(--sp-4);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--burgundy-700);
	border-color: var(--burgundy-700);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 74ch;
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--text);
	margin: 0;
	padding: 0;
}

/* Related products reuse the shop grid. */
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	font-size: clamp(1.2rem, 2.4vw, 1.8rem);
	letter-spacing: -.02em;
	margin: 0 0 var(--sp-5);
}

.woocommerce div.product .related ul.products,
.woocommerce div.product .upsells ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--sp-4);
	margin: 0;
	padding: 0;
}

.woocommerce div.product .related ul.products::before,
.woocommerce div.product .related ul.products::after { display: none; }

.woocommerce ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-md);
	overflow: hidden;
	padding: 0;
	transition: border-color var(--m-base) var(--m-out),
	            box-shadow var(--m-base) var(--m-out);
}

.woocommerce ul.products li.product:hover {
	border-color: var(--burgundy-700);
	box-shadow: 0 14px 34px rgba(122, 16, 37, .14);
}

.woocommerce ul.products li.product a img {
	margin: 0;
	background: #fff;
	border-radius: 0;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	padding: var(--sp-4);
}

/* The related/upsell loop still renders the inherited card markup
   (.card__title / .card__model / .card__variant / .card__stock), so those
   parts are restyled here rather than left on the old grey palette. */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .card__title {
	font-size: 13.5px !important;
	font-weight: 600;
	line-height: 1.4;
	padding: var(--sp-3) var(--sp-4) 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
	color: var(--text);
}

.woocommerce ul.products li.product .card__model {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--text);
}

.woocommerce ul.products li.product .card__variant {
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted);
}

.woocommerce ul.products li.product .price {
	display: block;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--text);
	padding: var(--sp-2) var(--sp-4) 0;
	margin: 0;
}

.woocommerce ul.products li.product .card__stock {
	display: block;
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: var(--sp-2) var(--sp-4) var(--sp-4);
	color: var(--muted);
}

.woocommerce ul.products li.product .card__stock--in { color: #0E6B45; }
.woocommerce ul.products li.product .card__stock--out { color: var(--burgundy-700); }

.woocommerce ul.products li.product .loop-title-link { display: block; }

/* The loop badge is the inherited "Staff pick" flag. */
.woocommerce ul.products li.product .loop-badge {
	position: absolute;
	top: var(--sp-3);
	left: var(--sp-3);
	z-index: 2;
	background: var(--burgundy-700);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 5px var(--sp-2);
	border-radius: var(--r-sm);
}

.woocommerce ul.products li.product { position: relative; }

/* The loop's own add-to-cart link is hidden: the card links to the product
   page, where options and stock are shown in full. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { display: none; }

@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product div.images { position: static; }
}

/* --------------------------------------------------------------------------
   CART
   -------------------------------------------------------------------------- */

.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: clamp(var(--sp-5), 3vw, var(--sp-8));
	align-items: start;
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .gsc-ship-bar { grid-column: 1 / -1; }

.woocommerce-cart table.shop_table {
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	margin: 0;
}

.woocommerce-cart table.shop_table th {
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
	background: var(--surface);
	padding: var(--sp-4);
	border: 0;
}

.woocommerce-cart table.shop_table td {
	padding: var(--sp-4);
	border-top: 1px solid var(--border);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table img {
	width: 64px !important;
	border-radius: var(--r-md);
	background: #fff;
}

.woocommerce-cart .cart-collaterals {
	width: auto;
	float: none;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	width: auto;
	float: none;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	padding: var(--sp-5);
	background: var(--surface);
	position: sticky;
	top: calc(var(--header-h) + var(--sp-5));
	/* Below the header's 880, so a sticky pane never covers the nav. */
	z-index: 1;
}

.woocommerce-cart .cart_totals h2 {
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin: 0 0 var(--sp-4);
	color: var(--muted);
}

.woocommerce-cart .cart_totals table { border: 0; margin: 0; }
.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
	border: 0;
	border-bottom: 1px solid var(--border);
	padding: var(--sp-3) 0;
	background: none;
}

.woocommerce-cart .wc-proceed-to-checkout { padding: var(--sp-5) 0 0; }

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	text-align: center;
	height: 52px;
	line-height: 52px;
	padding: 0;
	font-size: 12px;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 600;
}

@media (max-width: 900px) {
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart .cart-collaterals .cart_totals { position: static; }
}

/* --------------------------------------------------------------------------
   CHECKOUT — brief §45 (2 columns desktop, sticky summary)
   -------------------------------------------------------------------------- */

.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: clamp(var(--sp-5), 3vw, var(--sp-8));
	align-items: start;
}

.woocommerce-checkout #customer_details { grid-column: 1; }

.woocommerce-checkout h3 {
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0 0 var(--sp-4);
}

.woocommerce-checkout .woocommerce-checkout-review-order {
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	padding: var(--sp-5);
	background: var(--surface);
	position: sticky;
	top: calc(var(--header-h) + var(--sp-5));
	/* Below the header's 880, so a sticky pane never covers the nav. */
	z-index: 1;
}

.woocommerce-checkout #order_review table { border: 0; margin: 0; }
.woocommerce-checkout #order_review th,
.woocommerce-checkout #order_review td {
	border: 0;
	border-bottom: 1px solid var(--border);
	padding: var(--sp-3) 0;
	background: none;
}

.woocommerce form .form-row {
	padding: 0;
	margin: 0 0 var(--sp-4);
}

.woocommerce form .form-row label {
	font-size: 11.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 6px;
	display: block;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	height: 46px;
	padding: 0 var(--sp-4);
	border: 1px solid var(--border);
	background: var(--bg);
	color: var(--text);
	font-size: 14.5px;
	width: 100%;
}

.woocommerce form .form-row textarea { height: auto; padding: var(--sp-3) var(--sp-4); }

.woocommerce #payment {
	background: none;
	border-radius: 0;
	padding: 0;
}

.woocommerce #payment ul.payment_methods {
	border: 0;
	padding: 0;
	margin: 0 0 var(--sp-4);
}

.woocommerce #payment div.form-row { padding: 0; }

.woocommerce #payment #place_order {
	width: 100%;
	height: 52px;
	font-size: 12px;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 600;
}

@media (max-width: 900px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout .woocommerce-checkout-review-order { position: static; }
}

/* --------------------------------------------------------------------------
   ACCOUNT — brief §46
   -------------------------------------------------------------------------- */

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 230px minmax(0, 1fr);
	gap: clamp(var(--sp-5), 3vw, var(--sp-8));
	align-items: start;
}

.woocommerce-account.logged-out .woocommerce { grid-template-columns: 1fr; max-width: 460px; }

.woocommerce-account .woocommerce-MyAccount-navigation {
	width: auto;
	float: none;
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	overflow: hidden;
	background: var(--surface);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: var(--sp-3) var(--sp-4);
	font-size: 13px;
	color: var(--muted);
	transition: color var(--m-base) var(--m-out), background var(--m-base) var(--m-out);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--text); background: var(--surface-2); }

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--burgundy-700);
	color: #fff;
	font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content {
	width: auto;
	float: none;
	font-size: 15px;
	line-height: 1.7;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	padding: var(--sp-6);
	background: var(--surface);
	margin: 0;
}

.woocommerce-account table.shop_table {
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.woocommerce-account table.shop_table th {
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
	background: var(--surface);
	padding: var(--sp-3) var(--sp-4);
	border: 0;
}

.woocommerce-account table.shop_table td {
	padding: var(--sp-3) var(--sp-4);
	border-top: 1px solid var(--border);
}

@media (max-width: 760px) {
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}

.woocommerce div.product .product_title {
	font-size: clamp(1.5rem, 3vw, 2.4rem);
	letter-spacing: -.028em;
	line-height: 1.08;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--text);
	font-size: clamp(1.2rem, 2.2vw, 1.7rem);
	font-weight: 700;
}

.woocommerce div.product p.price del { color: var(--muted); font-weight: 400; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--burgundy-700); }

.woocommerce div.product form.cart .button { width: 100%; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--r-md);
	background: var(--surface);
	color: var(--text);
}

/* --------------------------------------------------------------------------
   POLICY COMPONENTS — tw_facts / tw_bars / tw_timeline / tw_split / etc.

   These blocks predate the Burgundy system and read a separate --c-* palette
   that is still grey-and-brass. Rather than rewrite 262 inherited rules, the
   old tokens are re-pointed at the new ones, so every policy component adopts
   the site palette in one place.
   -------------------------------------------------------------------------- */

:root {
	--c-ink: var(--text);
	--c-ink-soft: #2E1A1F;
	--c-body: #3A2A2E;
	--c-muted: var(--muted);
	--c-line: var(--border);
	--c-line-soft: rgba(23, 9, 13, .07);
	--c-bg: var(--bg);
	--c-bg-alt: var(--surface);
	--c-bg-deep: var(--burgundy-950);

	/* The accent trio drove the brass highlights; it now carries burgundy. */
	--c-brass: var(--burgundy-700);
	--c-brass-dk: var(--burgundy-800);
	--c-brass-lt: rgba(122, 16, 37, .07);

	--c-sale: var(--burgundy-700);
	--c-ok: #0E6B45;
	--c-ok-bg: rgba(14, 107, 69, .08);

	--radius: var(--r-md);
	--radius-lg: var(--r-lg);
	--radius-pill: 999px;

	--shadow-sm: 0 1px 2px rgba(23, 9, 13, .06);
	--shadow-md: 0 10px 28px rgba(23, 9, 13, .10);
}

/* Fact strip — the four headline numbers at the top of each policy. */
.entry-content .tw-facts__grid {
	gap: var(--sp-3);
}

.entry-content .tw-fact {
	border-radius: var(--r-lg);
	border-color: var(--border);
	background: var(--surface);
	transition: border-color var(--m-base) var(--m-out),
	            box-shadow var(--m-base) var(--m-out);
}

.entry-content .tw-fact:hover {
	border-color: var(--burgundy-700);
	box-shadow: 0 10px 24px rgba(122, 16, 37, .10);
}

.entry-content .tw-fact__icon svg { stroke: var(--burgundy-700); }

/* Bars, timeline and split blocks pick up the rounded system. */
.entry-content .tw-bars,
.entry-content .tw-timeline,
.entry-content .tw-split,
.entry-content .tw-checklist,
.entry-content .tw-rates,
.entry-content .tw-address,
.entry-content .tw-faq,
.entry-content .tw-related,
.entry-content .tw-note {
	border-radius: var(--r-lg);
}

.entry-content .tw-bar__fill { border-radius: var(--r-sm); }

/* Anchored headings get a burgundy marker instead of a brass one. */
.entry-content .tw-anchor { color: var(--burgundy-700); }

/* Table of contents rail. */
.entry-content .tw-toc a:hover { color: var(--burgundy-700); }

/* --------------------------------------------------------------------------
   INHERITED COMPONENTS — assurance rows, cookie notice, sticky buy bar.
   These still render from the original theme, so they are brought onto the
   Burgundy palette and radius rather than left looking like another site.
   -------------------------------------------------------------------------- */

.pdp-assurance {
	margin-top: var(--sp-5);
	padding: var(--sp-4);
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	background: var(--surface);
	display: grid;
	gap: var(--sp-3);
}

.pdp-assurance__row {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-3);
	font-size: 13px;
	line-height: 1.55;
	color: var(--text);
}

.pdp-assurance__row .icon {
	width: 17px;
	height: 17px;
	flex: none;
	margin-top: 1px;
	stroke: var(--burgundy-700);
}

/* Cookie notice */
.cookie-note {
	border-radius: var(--r-lg);
	border: 1px solid var(--border);
	background: var(--bg);
	box-shadow: 0 18px 44px rgba(23, 9, 13, .14);
}

.cookie-note a { color: var(--burgundy-700); }

/* Inherited button class, used by the cookie notice and the sticky buy bar. */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px var(--sp-5);
	border-radius: var(--r-md);
	border: 1px solid var(--burgundy-700);
	background: var(--burgundy-700);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	font-family: inherit;
	line-height: 1;
	transition: background var(--m-base) var(--m-out),
	            border-color var(--m-base) var(--m-out),
	            color var(--m-base) var(--m-out);
}

.btn:hover { background: var(--burgundy-600); border-color: var(--burgundy-600); color: #fff; }

.btn--ghost {
	background: none;
	border-color: var(--border-strong);
	color: var(--text);
}

.btn--ghost:hover {
	background: var(--burgundy-700);
	border-color: var(--burgundy-700);
	color: #fff;
}

.btn--sm { padding: 9px var(--sp-4); font-size: 11px; }

/* Sticky buy bar on the product page */
.buy-bar {
	border-top: 1px solid var(--border);
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.buy-bar__cta { white-space: nowrap; }

/* --------------------------------------------------------------------------
   FREE-SHIPPING PROGRESS — cart and checkout
   -------------------------------------------------------------------------- */

.gsc-ship-bar {
	margin: 0 0 var(--sp-6);
	padding: var(--sp-4) var(--sp-5);
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	background: var(--surface);
}

.gsc-ship-bar.is-done {
	border-color: var(--burgundy-700);
	background: rgba(122, 16, 37, .05);
}

.gsc-ship-bar__text {
	margin: 0 0 var(--sp-3);
	font-size: 13px;
	letter-spacing: .02em;
	color: var(--text);
}

.gsc-ship-bar__text .woocommerce-Price-amount {
	font-weight: 700;
	color: var(--burgundy-700);
}

.gsc-ship-bar.is-done .gsc-ship-bar__text {
	font-weight: 600;
	color: var(--burgundy-700);
}

.gsc-ship-bar__track {
	height: 4px;
	border-radius: 2px;
	background: var(--border);
	overflow: hidden;
}

.gsc-ship-bar__fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--burgundy-700);
	transform-origin: left;
	transition: transform .6s var(--m-out);
}

/* --------------------------------------------------------------------------
   POLICY SUMMARY CARDS — used on the "all policies" overview
   -------------------------------------------------------------------------- */

.gsc-policies {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: var(--sp-4);
	margin-top: var(--sp-8);
}

.gsc-policy {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	padding: var(--sp-5);
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	background: var(--surface);
	transition: border-color var(--m-base) var(--m-out),
	            box-shadow var(--m-base) var(--m-out);
}

.gsc-policy:hover {
	border-color: var(--burgundy-700);
	box-shadow: 0 12px 30px rgba(122, 16, 37, .12);
}

.gsc-policy__title {
	font-size: 15px;
	font-weight: 600;
	margin: 0;
	letter-spacing: -.01em;
}

.gsc-policy__text {
	font-size: 13.5px;
	color: var(--muted);
	margin: 0;
	line-height: 1.6;
}

.gsc-policy__go {
	margin-top: auto;
	padding-top: var(--sp-3);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--burgundy-700);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.gsc-policy:hover .gsc-policy__go .gsc-arrow { transform: translateX(4px); }
