/* =========================================================================
   The Coffee Store: WooCommerce (shop, product, cart, checkout, account).
   Replaces WooCommerce's default stylesheets. Tokens from theme.css.
   ========================================================================= */

/* Notices --------------------------------------------------------------- */

.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.wc-block-components-notice-banner {
	list-style: none;
	margin: 0 0 24px;
	padding: 16px 20px;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-option);
	color: var(--tcs-ink);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.woocommerce-error { border-color: var(--tcs-accent); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button,
.woocommerce-info .button { order: 2; }
.woocommerce-info a:not(.button) { font-weight: 700; }

/* Buttons --------------------------------------------------------------- */

.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 20px;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: transparent;
	color: var(--tcs-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.woocommerce .button:hover { background: var(--tcs-raised); border-color: var(--tcs-ink); color: var(--tcs-ink); transform: translateY(-2px); }
.woocommerce .button.alt,
.woocommerce .button.btn-solid,
.woocommerce .checkout-button,
.single_add_to_cart_button {
	background: var(--acc);
	border-color: var(--acc);
	color: var(--tcs-bg);
}
.woocommerce .button.alt:hover,
.woocommerce .button.btn-solid:hover,
.woocommerce .checkout-button:hover,
.single_add_to_cart_button:hover {
	background: var(--acc);
	border-color: var(--acc);
	color: var(--tcs-bg);
	filter: brightness(1.08);
	box-shadow: 0 14px 30px -12px var(--acc);
}
.woocommerce .button:disabled,
.woocommerce .button.disabled { opacity: .5; cursor: not-allowed; transform: none; }
.woocommerce .button.loading { opacity: .6; pointer-events: none; }
.woocommerce .button.added::after { content: "✓"; }

/* Breadcrumb ------------------------------------------------------------ */

.tcs-breadcrumb { font-size: 14px; color: var(--tcs-muted); display: flex; flex-wrap: wrap; gap: 8px; }
.tcs-breadcrumb a { color: var(--tcs-muted); }

/* Shop archive ---------------------------------------------------------- */

.tcs-archive-head { padding-top: 48px; }
.tcs-archive-head__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-top: 16px; }
.tcs-archive-head__desc { color: var(--tcs-muted); font-size: 18px; }
.tcs-archive-head__desc p { margin: 12px 0 0; }
.tcs-sort { display: flex; align-items: center; gap: 12px; }
.tcs-sort__label { font-size: 14px; color: var(--tcs-muted); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select.orderby {
	min-height: 44px;
	padding: 0 16px;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	font: inherit;
}

.tcs-shop { padding: 40px 0 96px; display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.tcs-filters { flex: 1 1 240px; max-width: 100%; display: flex; flex-direction: column; gap: 32px; }
.tcs-filter { display: flex; flex-direction: column; gap: 12px; }
.tcs-filter__title { font-weight: 700; font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tcs-muted); }
.tcs-shop__results { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.tcs-result-count { color: var(--tcs-muted); font-size: 14px; }

.tcs-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.tcs-pill {
	min-height: 44px;
	padding: 0 18px;
	display: inline-flex;
	align-items: center;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: transparent;
	color: var(--tcs-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}
.tcs-pill[aria-pressed="true"] { border-color: var(--acc); background: var(--acc); color: var(--tcs-bg); }
.tcs-pill[aria-pressed="true"]:hover { color: var(--tcs-bg); }
.tcs-pill[aria-pressed="false"]:hover { border-color: var(--tcs-muted); background: var(--tcs-raised); color: var(--tcs-ink); transform: translateY(-2px); }
.tcs-pill:disabled { opacity: .35; cursor: not-allowed; transform: none; }

.tcs-check { display: flex; align-items: center; gap: 10px; min-height: 32px; color: var(--tcs-ink); text-decoration: none; }
.tcs-check:hover { color: var(--tcs-ink); }
.tcs-check__box {
	position: relative;
	width: 18px;
	height: 18px;
	flex: none;
	border: 2px solid var(--tcs-subtle);
	border-radius: 4px;
}
.tcs-check:hover .tcs-check__box { border-color: var(--tcs-muted); }
.tcs-check[aria-checked="true"] .tcs-check__box { background: var(--acc); border-color: var(--acc); }
.tcs-check[aria-checked="true"] .tcs-check__box::after {
	content: "";
	position: absolute;
	left: 4px;
	top: 0;
	width: 5px;
	height: 10px;
	border: solid var(--tcs-bg);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.tcs-promo { background: var(--tcs-raised); border-radius: var(--tcs-r-tile); padding: 20px; display: flex; flex-direction: column; gap: 8px; }

/* Product grid & card --------------------------------------------------- */

ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
	gap: 24px;
}
.tcs-section ul.products,
.related ul.products,
.upsells ul.products,
.cross-sells ul.products { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
ul.products::before, ul.products::after { display: none; }
ul.products li.product { position: relative; margin: 0; width: auto; float: none; display: flex; flex-direction: column; gap: 14px; }

.tcs-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--tile, var(--tcs-raised));
	border-radius: var(--tcs-r-tile);
	overflow: hidden;
	text-decoration: none;
}
.tcs-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.tcs-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	background: rgba(14, 12, 11, .8);
	color: var(--tcs-ink);
	font-size: 12px;
	font-weight: 700;
	padding: 5px 10px;
	border-radius: var(--tcs-r-pill);
	line-height: 1.5;
}
.tcs-badge--accent { top: 20px; left: 20px; background: var(--acc); color: var(--tcs-bg); font-size: 13px; padding: 6px 12px; }
.tcs-card__head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.tcs-card__head .woocommerce-loop-product__title { margin: 0; font: inherit; letter-spacing: 0; }
.tcs-card__title { font-weight: 700; font-size: 17px; text-decoration: none; }
.tcs-card__notes { color: var(--tcs-muted); font-size: 14px; }
.tcs-card__price { font-weight: 700; font-size: 17px; white-space: nowrap; text-align: right; }
.price del { color: var(--tcs-muted); font-weight: 400; font-size: .85em; margin-right: 6px; }
.price ins { text-decoration: none; }
ul.products li.product .button { width: 100%; min-height: 44px; font-size: 14px; }
ul.products li.product .added_to_cart { align-self: center; font-size: 14px; font-weight: 700; }

/* Related / upsells: image + name + price only (Product.dc.html) */
.related ul.products li.product .button,
.upsells ul.products li.product .button,
.related .tcs-card__notes,
.upsells .tcs-card__notes,
.related .tcs-badge,
.upsells .tcs-badge { display: none; }

/* Pagination */
.woocommerce-pagination ul.page-numbers { list-style: none; margin: 0; padding: 16px 0 0; display: flex; gap: 8px; justify-content: center; border: 0; }
.woocommerce-pagination ul.page-numbers li { margin: 0; border: 0; }
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid var(--tcs-border);
	font-weight: 700;
	text-decoration: none;
	color: var(--tcs-ink);
}
.woocommerce-pagination .page-numbers a:hover { background: var(--tcs-raised); border-color: var(--tcs-ink); transform: translateY(-2px); }
.woocommerce-pagination .page-numbers span.current { background: var(--acc); border-color: var(--acc); color: var(--tcs-bg); }

.woocommerce-no-products-found .woocommerce-info { justify-content: flex-start; }

/* Single product -------------------------------------------------------- */

.single-product .tcs-wc-main { padding-top: 32px; }
.single-product .tcs-breadcrumb { margin-bottom: 24px; }
.single-product .tcs-wc-main > div.product {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 500px), 1fr));
	gap: 56px;
	align-items: start;
}
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > .upsells,
.single-product div.product > section { grid-column: 1 / -1; }

.tcs-gallery { display: flex; flex-direction: column; gap: 16px; }
.tcs-gallery__main { position: relative; aspect-ratio: 1; background: var(--tile, var(--tcs-raised)); border-radius: var(--tcs-r-lg); overflow: hidden; }
.tcs-gallery__main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tcs-gallery__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.tcs-gallery__thumb {
	aspect-ratio: 1;
	padding: 0;
	overflow: hidden;
	border-radius: var(--tcs-r-thumb);
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	cursor: pointer;
}
.tcs-gallery__thumb[aria-pressed="true"] { border: 2px solid var(--acc); }
.tcs-gallery__thumb[aria-pressed="false"]:hover { border-color: var(--tcs-muted); transform: translateY(-2px); }
.tcs-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--tcs-ease); }
.tcs-gallery__thumb:hover img { transform: scale(1.1); }

.single-product .summary { display: flex; flex-direction: column; gap: 12px; }
.single-product .product_title {
	margin: 0;
	font-family: var(--tcs-font-display);
	font-weight: 800;
	font-size: 60px;
	line-height: 1;
	letter-spacing: -0.04em;
}
.single-product .summary > .price { margin: 0; font-size: 30px; font-weight: 700; }
.single-product .summary > .price del { font-size: 18px; text-decoration: line-through; }
.woocommerce-product-details__short-description { color: var(--tcs-muted); font-size: 18px; max-width: 560px; }
.woocommerce-product-details__short-description p { margin: 0 0 12px; }
.woocommerce-product-details__short-description p:last-child { margin: 0; }
.woocommerce-product-rating { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--tcs-muted); }
.woocommerce-product-rating a { color: var(--tcs-muted); }

.tcs-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.tcs-tag { border: 1px solid var(--tcs-line-strong); border-radius: var(--tcs-r-pill); padding: 6px 14px; font-size: 14px; text-decoration: none; color: var(--tcs-ink); }
.tcs-tag:hover { border-color: var(--tcs-muted); color: var(--tcs-ink); }

.single-product .summary form.cart { margin-top: 16px; }
.single-product form.cart:not(.variations_form),
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.single-product form.cart .single_add_to_cart_button {
	flex: 1 1 240px;
	min-height: 56px;
	border-radius: var(--tcs-r-pill);
	font-size: 17px;
	font-weight: 700;
	padding: 0 28px;
}
.single-product form.cart .single_add_to_cart_button.disabled { opacity: .5; }

table.variations { width: 100%; border: 0; border-collapse: collapse; margin: 0 0 8px; }
table.variations tbody, table.variations tr, table.variations th, table.variations td { display: block; padding: 0; border: 0; text-align: left; }
table.variations tr { margin-bottom: 28px; }
table.variations th { margin-bottom: 10px; }
table.variations th label { font-weight: 700; }
table.variations .tcs-pill { font-size: 15px; }
table.variations select:not(.tcs-visually-hidden) {
	min-height: 44px;
	padding: 0 16px;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	font: inherit;
}
.reset_variations { display: inline-block; margin-top: 10px; font-size: 14px; color: var(--tcs-muted); }
.single_variation_wrap { display: flex; flex-direction: column; gap: 16px; }
.woocommerce-variation-price .price { font-size: 22px; font-weight: 700; }
.woocommerce-variation-description { color: var(--tcs-muted); }
.stock { margin: 0; font-size: 14px; color: var(--tcs-muted); }
.stock.out-of-stock { color: var(--acc); font-weight: 700; }

.tcs-perks {
	margin-top: 16px;
	border-top: 1px solid var(--tcs-line);
	padding-top: 20px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 16px;
	font-size: 14px;
	color: var(--tcs-muted);
}
.tcs-perks span { display: flex; gap: 10px; align-items: center; }
.tcs-perks svg { color: var(--tcs-ink); flex: none; }

/* Quantity stepper */
.quantity { display: inline-flex; align-items: center; }
.quantity input.qty {
	width: 64px;
	min-height: 48px;
	text-align: center;
	font-weight: 700;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: transparent;
	color: var(--tcs-ink);
	font: inherit;
	-moz-appearance: textfield;
	appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity.qty { border: 1px solid var(--tcs-border); border-radius: var(--tcs-r-pill); height: 48px; }
.quantity.qty input.qty { width: 32px; min-height: 0; height: 100%; padding: 0; border: 0; background: transparent; box-shadow: none; }
.quantity.qty input.qty:focus { box-shadow: none; }
.tcs-qty-btn {
	width: 46px;
	height: 46px;
	border: 0;
	padding: 0;
	background: transparent;
	color: var(--tcs-ink);
	font: inherit;
	font-size: 20px;
	cursor: pointer;
	border-radius: var(--tcs-r-pill);
}
.tcs-qty-btn:hover { background: var(--tcs-line); }
.single-product form.cart .quantity.qty { height: 56px; }
.single-product form.cart .tcs-qty-btn { width: 52px; height: 54px; font-size: 22px; }

/* Tabs */
.woocommerce-tabs { padding-top: 88px; }
.woocommerce-tabs ul.tabs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--tcs-line); }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: none; }
.woocommerce-tabs ul.tabs li a {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0 20px;
	margin-bottom: -1px;
	font-weight: 700;
	color: var(--tcs-muted);
	text-decoration: none;
	border-bottom: 3px solid transparent;
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--tcs-ink); }
.woocommerce-tabs ul.tabs li.active a { color: var(--tcs-ink); border-bottom-color: var(--acc); }
.woocommerce-Tabs-panel { padding: 32px 0; max-width: 760px; color: var(--tcs-muted); font-size: 17px; animation: tcs-fade .45s ease both; }
.woocommerce-Tabs-panel p { margin: 0 0 16px; }
.woocommerce-Tabs-panel strong { color: var(--tcs-ink); }
.woocommerce-Tabs-panel h2 { font-size: 24px; margin: 0 0 16px; }
table.shop_attributes { width: 100%; border-collapse: collapse; }
table.shop_attributes th,
table.shop_attributes td { padding: 12px 0; border-bottom: 1px solid var(--tcs-line); text-align: left; vertical-align: top; }
table.shop_attributes th { width: 30%; font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--tcs-muted); font-weight: 400; }
table.shop_attributes td { color: var(--tcs-ink); font-weight: 700; }
table.shop_attributes td p { margin: 0; }

/* Reviews */
#reviews .commentlist { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-direction: column; gap: 16px; }
#reviews .comment_container { display: flex; gap: 16px; background: var(--tcs-surface); border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-option); padding: 20px; }
#reviews .comment_container img.avatar { width: 48px; height: 48px; border-radius: 50%; }
#reviews .comment-text { flex: 1; }
#reviews .meta { font-size: 14px; }
#reviews .meta strong { color: var(--tcs-ink); }
#review_form .comment-reply-title { display: block; font-family: var(--tcs-font-display); font-weight: 800; font-size: 24px; color: var(--tcs-ink); margin-bottom: 16px; }
#review_form .comment-form { display: flex; flex-direction: column; gap: 16px; }
#review_form .comment-form p { margin: 0; display: flex; flex-direction: column; gap: 6px; }
#review_form label { font-size: 14px; color: var(--tcs-muted); }
#review_form .form-submit input[type="submit"] {
	align-self: flex-start;
	min-height: 44px;
	padding: 0 20px;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: transparent;
	color: var(--tcs-ink);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
#review_form .form-submit input[type="submit"]:hover { background: var(--tcs-raised); border-color: var(--tcs-ink); }
p.stars { margin: 0; }
p.stars a { display: inline-block; width: 1.2em; overflow: hidden; color: transparent; position: relative; text-decoration: none; }
p.stars a::before { content: "★"; position: absolute; left: 0; top: 0; color: var(--tcs-line-strong); }
p.stars:hover a::before, p.stars.selected a::before { color: var(--acc); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: var(--tcs-line-strong); }

.star-rating { position: relative; display: inline-block; width: 5.4em; height: 1.1em; line-height: 1; font-size: 14px; letter-spacing: .1em; overflow: hidden; }
.star-rating::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--tcs-line-strong); }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; padding-top: 1.5em; height: 0; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--acc); }

/* Related / upsells / cross-sells */
.related, .upsells { padding: 40px 0 96px; }
.cross-sells { margin-top: 64px; }
.related > h2, .upsells > h2, .cross-sells > h2 {
	margin: 0 0 32px;
	font-family: var(--tcs-font-display);
	font-weight: 800;
	font-size: 40px;
	letter-spacing: -0.03em;
}

/* Forms (checkout, account, cart shipping calculator) -------------------- */

.woocommerce form .form-row { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.woocommerce form .form-row label { font-size: 14px; color: var(--tcs-muted); }
.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.woocommerce form .form-row .required { color: var(--acc); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--tcs-subtle); }
.woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce form textarea {
	width: 100%;
	min-height: 52px;
	padding: 0 16px;
	border-radius: var(--tcs-r-input);
	border: 1px solid var(--tcs-border);
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	font: inherit;
}
.woocommerce form textarea.input-text { padding: 14px 16px; min-height: 120px; }
.woocommerce form .input-text:hover, .woocommerce form select:hover { border-color: var(--tcs-subtle); }
.woocommerce form .input-text:focus, .woocommerce form select:focus { border-color: var(--acc); box-shadow: 0 0 0 4px var(--tcs-accent-ring); outline: none; }
.woocommerce form .woocommerce-invalid .input-text,
.woocommerce form .woocommerce-invalid select,
.woocommerce form .woocommerce-invalid .select2-selection { border-color: var(--acc); }
.checkout-inline-error-message { margin: 0; color: var(--acc); font-size: 13px; }
.woocommerce .password-input { position: relative; display: block; }
.woocommerce .show-password-input { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: 0; color: var(--tcs-muted); cursor: pointer; }
.woocommerce .show-password-input::after { content: "👁"; }

/* selectWoo (country / state) */
.select2-container .select2-selection--single {
	height: 52px;
	border-radius: var(--tcs-r-input);
	border: 1px solid var(--tcs-border);
	background: var(--tcs-surface);
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 50px; padding-left: 16px; color: var(--tcs-ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 50px; right: 10px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: var(--tcs-muted) transparent transparent; }
.select2-container--focus .select2-selection--single,
.select2-container--open .select2-selection--single { border-color: var(--acc); }
.select2-dropdown { background: var(--tcs-surface); border-color: var(--tcs-border); color: var(--tcs-ink); border-radius: var(--tcs-r-input); overflow: hidden; }
.select2-container--default .select2-search--dropdown .select2-search__field { background: var(--tcs-bg); border: 1px solid var(--tcs-border); color: var(--tcs-ink); border-radius: var(--tcs-r-sm); min-height: 40px; padding: 0 12px; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--acc); color: var(--tcs-bg); }
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] { background: var(--tcs-raised); }

.blockUI.blockOverlay { background: rgba(14, 12, 11, .6) !important; }

/* Cart & checkout page shell -------------------------------------------- */

.tcs-wc-page { padding-top: 48px; padding-bottom: 96px; }
.tcs-wc-page--checkout { padding-top: 40px; }
.tcs-cart-title { margin: 0 0 32px; }

.tcs-summary {
	flex: 1 1 340px;
	max-width: 100%;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-card);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.tcs-summary__title { margin: 0; font-family: var(--tcs-font-display); font-weight: 800; font-size: 28px; letter-spacing: -0.02em; }
.tcs-summary__note { margin: 12px 0 0; text-align: center; color: var(--tcs-muted); font-size: 13px; }
.tcs-summary__back { text-align: center; font-size: 14px; color: var(--tcs-muted); }

/* Totals rows (cart totals + checkout review) */
.cart_totals > h2 { display: none; }
.cart_totals table,
.tcs-review { display: block; width: 100%; border-collapse: collapse; border: 0; margin: 0; }
.cart_totals table tbody,
.tcs-review tfoot { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--tcs-line); padding-top: 20px; }
.cart_totals tr,
.tcs-review tfoot tr { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.cart_totals th,
.cart_totals td,
.tcs-review th,
.tcs-review td { padding: 0; border: 0; text-align: left; vertical-align: top; }
.cart_totals th,
.tcs-review tfoot th { color: var(--tcs-muted); font-weight: 400; }
.cart_totals td,
.tcs-review tfoot td { text-align: right; }
.cart_totals tr.order-total,
.tcs-review tr.order-total { border-top: 1px solid var(--tcs-line); margin-top: 10px; padding-top: 20px; align-items: baseline; }
.cart_totals tr.order-total th,
.tcs-review tr.order-total th { color: var(--tcs-ink); font-weight: 700; font-size: 18px; }
.cart_totals tr.order-total .amount,
.tcs-review tr.order-total .amount { font-family: var(--tcs-font-display); font-weight: 800; font-size: 30px; }
.cart_totals tr.order-total small,
.tcs-review tr.order-total small { display: block; font-size: 13px; color: var(--tcs-muted); }
.cart_totals .woocommerce-remove-coupon,
.tcs-review .woocommerce-remove-coupon { font-size: 13px; color: var(--tcs-muted); margin-left: 6px; }

.cart_totals tr.shipping td,
.cart_totals tr.woocommerce-shipping-totals td { max-width: 65%; }
.cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cart_totals .woocommerce-shipping-methods li { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.cart_totals .woocommerce-shipping-methods input { accent-color: var(--tcs-accent); margin: 0; }
.woocommerce-shipping-destination,
.cart_totals .woocommerce-shipping-calculator { margin: 6px 0 0; font-size: 13px; color: var(--tcs-muted); }
.shipping-calculator-button { font-weight: 700; color: var(--tcs-ink); }
.shipping-calculator-form { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; text-align: left; }

.wc-proceed-to-checkout { padding-top: 20px; }
.woocommerce .wc-proceed-to-checkout .checkout-button {
	width: 100%;
	min-height: 56px;
	font-size: 17px;
}

/* Cart ------------------------------------------------------------------ */

.tcs-cart { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.tcs-cart__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 16px; margin: 0; }

.tcs-ship-progress {
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-tile);
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.tcs-ship-progress__track { height: 8px; border-radius: var(--tcs-r-pill); background: var(--tcs-line); overflow: hidden; }
.tcs-ship-progress .bar { height: 100%; background: var(--acc); border-radius: var(--tcs-r-pill); transition: width .7s var(--tcs-ease); }

.tcs-lines { display: flex; flex-direction: column; }
.tcs-line { border-bottom: 1px solid var(--tcs-line); padding: 20px 0; display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.tcs-line__media { width: 112px; height: 132px; flex: 0 0 auto; background: var(--tile, var(--tcs-raised)); border-radius: var(--tcs-r-thumb); overflow: hidden; }
.tcs-line__media a { display: block; width: 100%; height: 100%; }
.tcs-line__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcs-line__info { flex: 1 1 200px; display: flex; flex-direction: column; gap: 4px; }
.tcs-line__name { font-weight: 700; font-size: 18px; }
.tcs-line__name a { text-decoration: none; }
dl.variation { margin: 0; display: flex; flex-wrap: wrap; gap: 0 6px; color: var(--tcs-muted); font-size: 14px; }
dl.variation dt, dl.variation dd { margin: 0; }
dl.variation dd p { margin: 0; }
dl.variation dd:not(:last-child)::after { content: " ·"; }
.tcs-line__total { min-width: 80px; text-align: right; font-weight: 700; font-size: 18px; }
.icon-x {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--tcs-line);
	background: transparent;
	color: var(--tcs-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
.icon-x:hover { border-color: var(--tcs-muted); color: var(--tcs-ink); transform: rotate(90deg); }
.tcs-cart__actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.tcs-cart__actions:empty { display: none; }
.tcs-back { align-self: flex-start; padding-top: 8px; }

.tcs-coupon { display: flex; flex-direction: column; gap: 8px; }
.tcs-coupon label { font-size: 14px; color: var(--tcs-muted); }
.tcs-coupon__row { display: flex; gap: 8px; }
.tcs-coupon input#coupon_code {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 48px;
	padding: 0 16px;
	border-radius: var(--tcs-r-pill);
	border: 1px solid var(--tcs-border);
	background: var(--tcs-bg);
	color: var(--tcs-ink);
	font: inherit;
}
.tcs-coupon .btn { min-height: 48px; padding: 0 20px; }
.coupon-error-notice { margin: 0; color: var(--acc); font-size: 13px; }

.tcs-empty {
	border: 1px dashed var(--tcs-border);
	border-radius: var(--tcs-r-tile);
	padding: 48px 24px;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: center;
}
.tcs-empty .woocommerce-info,
.tcs-empty .cart-empty { margin: 0; padding: 0; background: none; border: 0; font-weight: 700; font-size: 20px; justify-content: center; }
.tcs-empty .return-to-shop { margin: 0; }
.tcs-empty .return-to-shop .button { min-height: 48px; padding: 0 24px; font-size: 16px; }

/* Checkout -------------------------------------------------------------- */

.tcs-steps { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; font-weight: 700; color: var(--tcs-muted); }
.tcs-steps a { color: var(--tcs-muted); }
.tcs-steps__sep { color: var(--tcs-border); }
.tcs-steps [aria-current="step"] { color: var(--acc); }

.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info { justify-content: flex-start; }
form.checkout_coupon,
form.woocommerce-form-login {
	margin: 0 0 24px;
	padding: 20px;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-option);
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}
form.checkout_coupon p:not(.form-row) { flex: 1 1 100%; margin: 0; color: var(--tcs-muted); }
form.checkout_coupon .form-row { flex: 1 1 200px; }
form.checkout_coupon .input-text { background: var(--tcs-bg); }

.tcs-checkout { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.tcs-checkout__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 40px; }
.tcs-checkout .tcs-summary { flex-basis: 360px; }
.tcs-customer, .woocommerce-billing-fields { display: flex; flex-direction: column; gap: 40px; }
.tcs-fieldset { display: flex; flex-direction: column; gap: 16px; }
.tcs-legend,
.woocommerce-additional-fields > h3 {
	margin: 0;
	font-family: var(--tcs-font-display);
	font-weight: 800;
	font-size: 30px;
	letter-spacing: -0.02em;
	line-height: 1.2;
}
.tcs-fields,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.tcs-fields .form-row,
.woocommerce-shipping-fields__field-wrapper .form-row,
.woocommerce-additional-fields__field-wrapper .form-row,
.woocommerce-address-fields__field-wrapper .form-row { grid-column: 1 / -1; }
.tcs-fields .form-row-first,
.woocommerce-shipping-fields__field-wrapper .form-row-first,
.woocommerce-address-fields__field-wrapper .form-row-first { grid-column: 1; }
.tcs-fields .form-row-last,
.woocommerce-shipping-fields__field-wrapper .form-row-last,
.woocommerce-address-fields__field-wrapper .form-row-last { grid-column: 2; }
.woocommerce-shipping-fields { display: flex; flex-direction: column; gap: 16px; }
#ship-to-different-address { margin: 0; font-family: var(--tcs-font-body); font-size: 16px; font-weight: 700; letter-spacing: 0; }
#ship-to-different-address label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.woocommerce-account-fields { display: flex; flex-direction: column; gap: 12px; }
.woocommerce-additional-fields { display: flex; flex-direction: column; gap: 16px; }
.woocommerce-additional-fields:empty { display: none; }

/* Option rows: shipping methods + payment methods */
.tcs-options,
.wc_payment_methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.tcs-option { position: relative; }
.tcs-option input[type="radio"],
.wc_payment_method > input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tcs-option label,
.wc_payment_method > label {
	width: 100%;
	min-height: 64px;
	padding: 14px 18px;
	border-radius: var(--tcs-r-thumb);
	background: var(--tcs-surface);
	color: var(--tcs-ink);
	border: 1px solid var(--tcs-line);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 14px;
	font-weight: 700;
}
.tcs-option label:hover,
.wc_payment_method > label:hover { border-color: var(--tcs-muted); }
.tcs-option__dot,
.wc_payment_method > label::before {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	flex: 0 0 auto;
	border: 2px solid var(--tcs-border);
	transition: border .2s ease;
}
.wc_payment_method > label::before { content: ""; }
.tcs-option__text { flex: 1 1 auto; }
.tcs-option__price { font-weight: 700; }
.tcs-option input:checked + label,
.tcs-option input[type="hidden"] + label,
.wc_payment_method > input:checked + label,
.wc_payment_methods > .wc_payment_method:only-child > label { border: 2px solid var(--acc); padding: 13px 17px; }
.tcs-option input:checked + label .tcs-option__dot,
.tcs-option input[type="hidden"] + label .tcs-option__dot,
.wc_payment_method > input:checked + label::before,
.wc_payment_methods > .wc_payment_method:only-child > label::before { border: 6px solid var(--acc); background: var(--tcs-bg); }
.tcs-option input:focus-visible + label,
.wc_payment_method > input:focus-visible + label { outline: 2px solid var(--acc); outline-offset: 3px; }
.wc_payment_method > label img { max-height: 24px; width: auto; margin-left: auto; }
.wc_payment_method .payment_box {
	margin-top: 12px;
	background: var(--tcs-surface);
	border: 1px solid var(--tcs-line);
	border-radius: var(--tcs-r-option);
	padding: 20px;
	color: var(--tcs-muted);
	font-size: 14px;
	animation: tcs-fade .45s ease both;
}
.wc_payment_method .payment_box p { margin: 0 0 8px; }
.wc_payment_method .payment_box p:last-child { margin: 0; }
.wc_payment_method .payment_box .input-text,
.wc_payment_method .payment_box select { background: var(--tcs-bg); }
.wc_payment_method .payment_box fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.wc_payment_methods > li:not(.wc_payment_method) { display: block; }
.tcs-option-empty { margin: 0; color: var(--tcs-muted); }

/* Order review (summary column) */
.tcs-review tbody { display: flex; flex-direction: column; gap: 16px; margin-bottom: 20px; }
.tcs-review tbody tr { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.tcs-review td.product-name { display: flex; align-items: center; gap: 14px; flex: 1 1 auto; }
.tcs-review td.product-total { font-weight: 700; white-space: nowrap; }
.tcs-review__media { position: relative; width: 64px; height: 76px; border-radius: var(--tcs-r-sm); background: var(--tile, var(--tcs-raised)); flex: 0 0 auto; }
.tcs-review__media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--tcs-r-sm); display: block; }
.tcs-review__qty {
	position: absolute;
	top: -8px;
	right: -8px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--tcs-border);
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.tcs-review__text { display: flex; flex-direction: column; }
.tcs-review__name { font-weight: 700; }
.tcs-review tfoot { margin: 0; }

.tcs-checkout .place-order { margin: 0; display: flex; flex-direction: column; gap: 16px; }
.tcs-checkout #place_order { width: 100%; min-height: 56px; font-size: 17px; }
.woocommerce-terms-and-conditions-wrapper { display: flex; flex-direction: column; gap: 12px; font-size: 14px; color: var(--tcs-muted); }
.woocommerce-terms-and-conditions-wrapper p { margin: 0; }
.woocommerce-terms-and-conditions-wrapper .form-row { flex-direction: row; }
.woocommerce-terms-and-conditions { max-height: 200px; overflow: auto; padding: 16px; border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-sm); }
.woocommerce-privacy-policy-text p { font-size: 13px; }

/* Order received / order details / account ----------------------------- */

.woocommerce-order { display: flex; flex-direction: column; gap: 32px; }
.woocommerce-thankyou-order-received { font-family: var(--tcs-font-display); font-weight: 800; font-size: 30px; margin: 0; }
ul.woocommerce-order-overview { list-style: none; margin: 0; padding: 24px; display: flex; flex-wrap: wrap; gap: 24px 40px; background: var(--tcs-surface); border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-card); color: var(--tcs-muted); font-size: 14px; }
ul.woocommerce-order-overview strong { display: block; color: var(--tcs-ink); font-size: 16px; }
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 { font-size: 28px; margin: 0 0 16px; }

.woocommerce table.shop_table:not(.tcs-review) { width: 100%; border-collapse: collapse; border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-option); overflow: hidden; }
.woocommerce table.shop_table:not(.tcs-review) th,
.woocommerce table.shop_table:not(.tcs-review) td { padding: 14px 16px; border-bottom: 1px solid var(--tcs-line); text-align: left; }
.woocommerce table.shop_table:not(.tcs-review) thead th { color: var(--tcs-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.woocommerce table.shop_table:not(.tcs-review) tbody tr:hover { background: var(--tcs-surface); }
.woocommerce table.shop_table:not(.tcs-review) tfoot th { color: var(--tcs-muted); font-weight: 400; }
.woocommerce-customer-details address { font-style: normal; padding: 20px; border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-option); color: var(--tcs-muted); }
.woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; }

.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { flex: 1 1 100%; }
.woocommerce-MyAccount-navigation { flex: 1 1 220px; max-width: 100%; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; border-radius: var(--tcs-r-sm); color: var(--tcs-muted); text-decoration: none; font-weight: 700; }
.woocommerce-MyAccount-navigation a:hover { background: var(--tcs-surface); color: var(--tcs-ink); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--tcs-raised); color: var(--tcs-ink); }
.woocommerce-MyAccount-content { flex: 999 1 560px; min-width: 0; color: var(--tcs-muted); }
.woocommerce-MyAccount-content p { margin: 0 0 16px; }
.woocommerce-MyAccount-content strong, .woocommerce-MyAccount-content mark { color: var(--tcs-ink); background: none; }
.woocommerce-account .u-columns,
.woocommerce-account #customer_login { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; flex: 1 1 100%; }
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
.woocommerce-EditAccountForm,
.woocommerce-address-fields { display: flex; flex-direction: column; gap: 16px; }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--tcs-line); border-radius: var(--tcs-r-option); padding: 20px; margin: 0; display: flex; flex-direction: column; gap: 16px; }

/* Responsive ------------------------------------------------------------ */

@media (max-width: 900px) {
	.woocommerce-tabs { padding-top: 72px; }
}
@media (max-width: 720px) {
	.tcs-legend, .woocommerce-additional-fields > h3 { font-size: 24px; }
	.tcs-fields, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
	.tcs-fields .form-row-first, .tcs-fields .form-row-last,
	.woocommerce-shipping-fields__field-wrapper .form-row-first, .woocommerce-shipping-fields__field-wrapper .form-row-last,
	.woocommerce-address-fields__field-wrapper .form-row-first, .woocommerce-address-fields__field-wrapper .form-row-last { grid-column: 1; }
	.woocommerce-tabs { padding-top: 56px; }
	.single-product .product_title { font-size: 2.6rem; line-height: 1.02; }
	.related > h2, .upsells > h2, .cross-sells > h2 { font-size: 2rem; }
	.tcs-summary { padding: 24px 20px; }
}
@media (max-width: 480px) {
	.single-product .product_title { font-size: 2.2rem; }
	.tcs-line__media { width: 88px; height: 104px; }
}
