/**
 * WooCommerce chrome the theme does not otherwise own: notices, ratings,
 * quantity inputs, the mini cart and form layouts.
 *
 * WooCommerce's own general/layout stylesheets are dequeued, so anything it
 * normally styles has to be covered here.
 */

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

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var( --tcgsf-gap-sm );
	margin: 0 0 var( --tcgsf-gap );
	padding: 14px 18px;
	border: 1px solid var( --tcgsf-border );
	border-left-width: 4px;
	border-radius: var( --tcgsf-radius-sm );
	background: var( --tcgsf-surface );
	list-style: none;
	font-size: 15px;
}

.woocommerce-message { border-left-color: var( --tcgsf-success ); background: var( --tcgsf-success-soft ); }
.woocommerce-info    { border-left-color: var( --tcgsf-primary ); background: var( --tcgsf-primary-soft ); }
.woocommerce-error   { border-left-color: var( --tcgsf-danger ); background: var( --tcgsf-danger-soft ); }

.woocommerce-error li { margin: 0; }

.woocommerce-message .button,
.woocommerce-info .button {
	margin-left: auto;
	padding: 8px 16px;
	border-radius: var( --tcgsf-radius-sm );
	background: var( --tcgsf-primary );
	color: #fff;
	font-size: 14px;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
 * Generic WooCommerce buttons
 *
 * Doubled class so these beat any plugin or parent rule of equal weight.
 * ----------------------------------------------------------------------- */

.woocommerce .button.button,
.woocommerce a.button.button,
.woocommerce button.button.button,
.woocommerce input.button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border: 1px solid var( --tcgsf-primary );
	border-radius: var( --tcgsf-radius-sm );
	background: var( --tcgsf-primary );
	color: #fff;
	font-family: var( --tcgsf-font );
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s var( --tcgsf-ease );
}

.woocommerce .button.button:hover,
.woocommerce a.button.button:hover,
.woocommerce button.button.button:hover {
	background: var( --tcgsf-primary-dark );
	border-color: var( --tcgsf-primary-dark );
	color: #fff;
}

.woocommerce .button.button.alt { background: var( --tcgsf-accent ); border-color: var( --tcgsf-accent ); color: #3a2a00; }
.woocommerce .button.button.alt:hover { background: #b1831a; border-color: #b1831a; color: #3a2a00; }

.woocommerce .button.button[disabled] { opacity: 0.55; cursor: not-allowed; }

/* --------------------------------------------------------------------------
 * Price and rating
 * ----------------------------------------------------------------------- */

.woocommerce .price,
.woocommerce span.price {
	color: var( --tcgsf-ink );
	font-weight: 700;
}

.woocommerce .price del { color: var( --tcgsf-muted ); font-weight: 400; }
.woocommerce .price ins { text-decoration: none; color: var( --tcgsf-danger ); }

.star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1em;
	overflow: hidden;
	font-size: 13px;
	line-height: 1;
	color: var( --tcgsf-accent );
}

.star-rating::before,
.star-rating span::before {
	content: '★★★★★';
	position: absolute;
	top: 0;
	left: 0;
	letter-spacing: 0.08em;
}

.star-rating::before { color: var( --tcgsf-border ); }

.star-rating span {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	padding-top: 1.5em;
}

/* --------------------------------------------------------------------------
 * Quantity
 * ----------------------------------------------------------------------- */

.quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var( --tcgsf-border );
	border-radius: var( --tcgsf-radius-sm );
	overflow: hidden;
	background: var( --tcgsf-surface );
}

.quantity .qty {
	width: 62px;
	padding: 10px 4px;
	border: 0;
	border-radius: 0;
	text-align: center;
	font-weight: 600;
	-moz-appearance: textfield;
}

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

.tcgsf-qty-btn {
	width: 40px;
	border: 0;
	background: var( --tcgsf-surface-alt );
	color: var( --tcgsf-ink );
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.tcgsf-qty-btn:hover { background: var( --tcgsf-primary-soft ); color: var( --tcgsf-primary ); }

/* --------------------------------------------------------------------------
 * Mini cart
 * ----------------------------------------------------------------------- */

.woocommerce ul.cart_list,
.woocommerce ul.product_list_widget {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.cart_list li,
.woocommerce ul.product_list_widget li {
	display: grid;
	grid-template-columns: 60px minmax( 0, 1fr ) auto;
	gap: 12px;
	align-items: start;
	padding: 14px 0;
	border-bottom: 1px solid var( --tcgsf-border );
}

.woocommerce ul.cart_list li img,
.woocommerce ul.product_list_widget li img {
	width: 60px;
	height: 80px;
	border-radius: var( --tcgsf-radius-sm );
	object-fit: cover;
	float: none;
	margin: 0;
}

.woocommerce ul.cart_list li a { display: block; font-size: 14px; font-weight: 600; color: var( --tcgsf-ink ); }
.woocommerce ul.cart_list li .quantity { display: block; border: 0; font-size: 13px; color: var( --tcgsf-muted ); }

.woocommerce ul.cart_list li a.remove {
	grid-column: 3;
	grid-row: 1;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var( --tcgsf-surface-alt );
	color: var( --tcgsf-danger );
	font-size: 16px;
	line-height: 24px;
	text-align: center;
}

.widget_shopping_cart_content .total {
	display: flex;
	justify-content: space-between;
	padding: var( --tcgsf-gap-sm ) 0;
	margin: 0;
	border-top: 2px solid var( --tcgsf-border );
	font-size: 16px;
}

.widget_shopping_cart_content .buttons {
	display: grid;
	gap: 8px;
	margin: 0;
}

.woocommerce .widget_shopping_cart_content .buttons .button {
	width: 100%;
}

.woocommerce-mini-cart__empty-message {
	padding: var( --tcgsf-gap ) 0;
	text-align: center;
	color: var( --tcgsf-muted );
}

/* --------------------------------------------------------------------------
 * Forms shared by cart, checkout and account
 * ----------------------------------------------------------------------- */

.woocommerce form .form-row {
	display: flex;
	flex-direction: column;
	margin: 0 0 var( --tcgsf-gap-sm );
	padding: 0;
}

.woocommerce form .form-row label { margin-bottom: 5px; }

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: 100%;
}

@media ( min-width: 640px ) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		width: calc( 50% - 7px );
		display: inline-flex;
		vertical-align: top;
	}

	.woocommerce form .form-row-first { margin-right: 14px; }
}

.woocommerce .select2-container--default .select2-selection--single {
	height: 44px;
	border: 1px solid var( --tcgsf-border );
	border-radius: var( --tcgsf-radius-sm );
	background: var( --tcgsf-surface );
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 42px;
	color: var( --tcgsf-ink );
	padding-left: 14px;
}

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

/* --------------------------------------------------------------------------
 * Tables
 * ----------------------------------------------------------------------- */

.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var( --tcgsf-border );
	border-radius: var( --tcgsf-radius );
	overflow: hidden;
	background: var( --tcgsf-surface );
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 14px 16px;
	border-bottom: 1px solid var( --tcgsf-border );
	text-align: left;
	vertical-align: middle;
}

.woocommerce table.shop_table thead th {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var( --tcgsf-muted );
	background: var( --tcgsf-surface-alt );
}

.woocommerce table.shop_table img { width: 60px; height: 80px; border-radius: var( --tcgsf-radius-sm ); object-fit: cover; }

/* The password-visibility toggle relies on WooCommerce's icon font, which this
   theme does not load; draw an eye instead of an empty box. */
.woocommerce-form .show-password-input,
.woocommerce-EditAccountForm .show-password-input { position: absolute; right: 2px; top: 50%; width: 44px; height: 44px; margin-top: -22px; padding: 0; border: 0; background: transparent no-repeat center / 22px 22px; cursor: pointer; opacity: .6; }
.woocommerce-form .show-password-input::after,
.woocommerce-EditAccountForm .show-password-input::after { content: none; }
.woocommerce-form .show-password-input,
.woocommerce-EditAccountForm .show-password-input { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2362626e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/><circle cx='12' cy='12' r='3'/></svg>"); }
.woocommerce-form .password-input,
.woocommerce-EditAccountForm .password-input { position: relative; display: block; }
.woocommerce-form .password-input input,
.woocommerce-EditAccountForm .password-input input { padding-right: 48px; }
/* Classic cart cross-sells and product-page related lists share the shop grid. */
.cross-sells ul.products.tcgsf-grid, .related ul.products.tcgsf-grid, .up-sells ul.products.tcgsf-grid { margin-top: 12px; }
