/* =====================================================================
   ShimmerGrace — WooCommerce-specific styling
   (Shop loop / cards already styled in main.css §9; this file covers
   single product, cart, checkout, account and global WC chrome.)
   ===================================================================== */

/* ---------------------------------------------------------------------
   Global WooCommerce notices
   ------------------------------------------------------------------- */
.woocommerce-message, .woocommerce-error, .woocommerce-info,
.woocommerce-noreviews, p.no-comments {
	list-style: none;
	background: var(--sg-white);
	border: 1px solid var(--sg-border);
	border-left: 4px solid var(--sg-teal);
	padding: 16px 20px;
	margin: 0 0 24px;
	border-radius: var(--sg-radius-sm);
	font-size: .92rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.woocommerce-error { border-left-color: #c0455a; }
.woocommerce-message .button, .woocommerce-error .button { padding: .7em 1.4em; font-size: .7rem; }
.woocommerce-notices-wrapper:empty { display: none; }

/* ---------------------------------------------------------------------
   Shop toolbar
   ------------------------------------------------------------------- */
.sg-shop__header { padding-top: 30px; }
.sg-shop__title { margin-bottom: 6px; }
.sg-shop__toolbar {
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
	padding: 20px 0; border-top: 1px solid var(--sg-border-soft); border-bottom: 1px solid var(--sg-border-soft);
	margin-bottom: 40px;
}
.sg-shop__count { margin: 0; color: var(--sg-muted); font-size: .88rem; }
.sg-shop__filter-toggle { display: none; }
.sg-shop__sort .orderby { border: 1px solid var(--sg-border); padding: .7em 2em .7em 1em; border-radius: var(--sg-radius-sm); background: var(--sg-white); color: var(--sg-navy); appearance: none; }
.sg-shop__layout { display: grid; grid-template-columns: 240px 1fr; gap: 50px; align-items: start; }
.sg-shop__sidebar { position: sticky; top: calc(var(--sg-header-h) + 20px); }
.sg-shop-filters-drawer {
	position: fixed; inset: 0; z-index: 650; background: var(--sg-ivory);
	overflow-y: auto; transform: translateY(100%); transition: transform var(--sg-transition);
}
.sg-shop-filters-drawer.is-open { transform: translateY(0); }
.sg-shop-filters-drawer__header { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--sg-border); position: sticky; top: 0; background: var(--sg-ivory); font-weight: 500; }
.sg-shop-filters-drawer__body { padding: 20px; }

/* Price filter widget */
.price_slider_wrapper .ui-slider { position: relative; height: 4px; background: var(--sg-border); border-radius: 2px; margin: 16px 4px; }
.price_slider_wrapper .ui-slider-range { position: absolute; height: 100%; background: var(--sg-navy); border-radius: 2px; }
.price_slider_wrapper .ui-slider-handle { position: absolute; top: 50%; width: 16px; height: 16px; margin-top: -8px; margin-left: -8px; background: var(--sg-teal); border: 2px solid var(--sg-navy); border-radius: 50%; cursor: pointer; }
.price_slider_amount { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; font-size: .82rem; }
.price_slider_amount .button { padding: .5em 1em; font-size: .65rem; }
.wc-layered-nav-term.chosen a { color: var(--sg-navy); font-weight: 600; }

/* ---------------------------------------------------------------------
   Single product
   ------------------------------------------------------------------- */
.sg-product-page { padding-bottom: 40px; }
.sg-product-top { display: grid; grid-template-columns: 1.15fr 1fr; gap: 64px; padding: 20px 0 50px; align-items: start; }

.woocommerce-product-gallery { position: sticky; top: calc(var(--sg-header-h) + 20px); }
.woocommerce-product-gallery__wrapper { margin: 0; border-radius: var(--sg-radius); overflow: hidden; background: var(--sg-mint); }
.woocommerce-product-gallery__image { margin: 0 !important; }
.woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; padding: 0; }
.flex-control-thumbs li { list-style: none; width: 74px; }
.flex-control-thumbs img { border-radius: var(--sg-radius-sm); aspect-ratio: 4/5; object-fit: cover; cursor: pointer; opacity: .6; transition: opacity var(--sg-transition); border: 1px solid transparent; }
.flex-control-thumbs img:hover, .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--sg-navy); }
.woocommerce-product-gallery__trigger { background: var(--sg-white); border-radius: 50%; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; }

.sg-product__eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; color: var(--sg-teal-tint); }
.sg-product__eyebrow a { color: var(--sg-navy); opacity: .7; }
.sg-product__color-line { font-size: .85rem; color: var(--sg-muted); margin: -6px 0 14px; }
.sg-product__color-line span { color: var(--sg-navy); font-weight: 500; }
.sg-product-summary .product_title { font-size: clamp(1.8rem, 2.6vw, 2.4rem); margin-bottom: 10px; }
.sg-product-summary .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.sg-product-summary .woocommerce-review-link { font-size: .82rem; color: var(--sg-muted); }
.sg-product-summary p.price {
	font-family: var(--sg-font-sans); font-size: 1.5rem; color: var(--sg-navy); margin-bottom: 18px;
}
.sg-product-summary p.price del { font-size: 1.05rem; color: var(--sg-muted); opacity: .7; margin-right: 10px; }
.sg-product-summary p.price ins { text-decoration: none; font-weight: 600; }
.sg-product-summary .woocommerce-product-details__short-description { color: var(--sg-charcoal); margin-bottom: 26px; max-width: 46ch; }
.sg-product-summary .stock { display: inline-block; font-size: .85rem; padding: .3em .8em; border-radius: 999px; background: var(--sg-mint); color: var(--sg-navy); margin-bottom: 16px; }
.sg-product-summary .stock.out-of-stock { background: #f4d9de; color: #8c2f42; }

/* Variations form */
.sg-product-summary .variations_form { margin-bottom: 10px; }
.sg-product-summary table.variations { width: 100%; border: none; margin-bottom: 6px; }
.sg-product-summary table.variations tbody, .sg-product-summary table.variations tr { display: block; }
.sg-product-summary table.variations td { display: block; border: none; padding: 0; }
.sg-product-summary table.variations tr + tr { margin-top: 20px; }
.sg-product-summary table.variations td.label { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-navy); margin-bottom: 10px; font-weight: 500; }
.sg-product-summary table.variations td.value select { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.reset_variations { display: inline-block; margin-top: 10px; font-size: .78rem; color: var(--sg-muted); text-decoration: underline; }

.sg-swatch-group { display: flex; flex-wrap: wrap; gap: 10px; }
.sg-swatch {
	min-width: 44px; height: 44px; padding: 0 14px;
	border: 1px solid var(--sg-border); border-radius: var(--sg-radius-sm);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: .82rem; color: var(--sg-navy); background: var(--sg-white);
	transition: border-color var(--sg-transition), background var(--sg-transition), color var(--sg-transition);
}
.sg-swatch:hover { border-color: var(--sg-navy); }
.sg-swatch.is-selected { background: var(--sg-navy); border-color: var(--sg-navy); color: var(--sg-white); }
.sg-swatch.is-disabled { opacity: .35; text-decoration: line-through; pointer-events: none; }
.sg-swatch--color { width: 40px; height: 40px; min-width: 40px; padding: 0; border-radius: 50%; position: relative; }
.sg-swatch--color span { position: absolute; inset: 4px; border-radius: 50%; }
.sg-swatch--color.is-selected { box-shadow: 0 0 0 2px var(--sg-navy); border-color: var(--sg-white); }

.sg-size-guide-trigger {
	display: inline-flex; align-items: center; gap: 6px;
	margin-bottom: 16px; font-size: .8rem; letter-spacing: .04em; text-transform: uppercase;
	color: var(--sg-navy); text-decoration: underline; text-decoration-color: var(--sg-teal);
}
.sg-size-guide-trigger .sg-icon { width: 15px; height: 15px; color: var(--sg-teal); }

.woocommerce-variation.single_variation { margin: 14px 0; }
.woocommerce-variation-price .price { font-size: 1.3rem !important; }
.woocommerce-variation-availability { margin-bottom: 10px; }

.sg-product-summary .quantity { display: inline-flex; align-items: center; border: 1px solid var(--sg-border); border-radius: var(--sg-radius-sm); margin-right: 12px; }
.quantity .qty { width: 46px; text-align: center; border: none; padding: .9em 0; background: transparent; }
.sg-qty-step {
	width: 40px; height: 100%; padding: .9em 0; color: var(--sg-navy); font-size: 1rem;
	display: inline-flex; align-items: center; justify-content: center;
}
.sg-qty-step:hover { background: var(--sg-navy-tint); }

.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.single_add_to_cart_button { min-width: 200px; }
.sg-trust-row { display: flex; flex-wrap: wrap; gap: 20px; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--sg-border-soft); }
.sg-trust-row li { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--sg-muted); }
.sg-trust-row .sg-icon { color: var(--sg-navy); width: 18px; height: 18px; }

.product_meta { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--sg-border-soft); font-size: .82rem; color: var(--sg-muted); display: flex; flex-direction: column; gap: 6px; }
.product_meta a { color: var(--sg-navy); }

/* Tabs */
.woocommerce-tabs { margin-top: 60px; }
.woocommerce-tabs ul.tabs { display: flex; gap: 34px; border-bottom: 1px solid var(--sg-border); list-style: none; padding: 0; flex-wrap: wrap; }
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs li a { display: inline-block; padding: 0 0 16px; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-muted); }
.woocommerce-tabs ul.tabs li.active a { color: var(--sg-navy); border-bottom: 2px solid var(--sg-teal); }
.woocommerce-tabs .panel { padding: 34px 0 10px; max-width: 780px; }
.sg-tab-content p { margin-bottom: 1em; }
.sg-tab-content__links { display: flex; gap: 18px; }
.sg-tab-content__links a { text-decoration: underline; color: var(--sg-navy); }
table.shop_attributes { width: 100%; border-collapse: collapse; }
table.shop_attributes th, table.shop_attributes td { border: 1px solid var(--sg-border-soft); padding: 10px 14px; text-align: left; font-size: .9rem; }
table.shop_attributes th { background: var(--sg-ivory); width: 200px; font-weight: 500; }

/* Reviews */
#reviews .comment-form-rating select { padding: .6em; border: 1px solid var(--sg-border); }
#reviews .commentlist { list-style: none; padding: 0; }
#reviews .comment_container { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--sg-border-soft); }
#reviews .avatar { border-radius: 50%; width: 48px; height: 48px; }
#reviews .comment-form input[type="text"], #reviews .comment-form input[type="email"], #reviews .comment-form textarea {
	width: 100%; padding: .9em 1em; border: 1px solid var(--sg-border); border-radius: var(--sg-radius-sm); margin-bottom: 14px;
}
#reviews .form-submit input { width: auto; }

/* Related / Complete the Look / Upsells */
.sg-related-look, .upsells.products { padding: 80px 0 20px; border-top: 1px solid var(--sg-border-soft); margin-top: 40px; }
.upsells.products > h2 { font-family: var(--sg-font-serif); font-size: clamp(1.8rem, 2.6vw, 2.5rem); color: var(--sg-navy); margin-bottom: 44px; padding: 0 24px; max-width: var(--sg-container); margin-left: auto; margin-right: auto; }
.upsells.products ul.products, .upsells.products > .products { padding: 0 24px; max-width: var(--sg-container); margin: 0 auto; }

/* ---------------------------------------------------------------------
   Cart page
   ------------------------------------------------------------------- */
.sg-page__content table.shop_table_responsive,
.sg-page__content table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
table.shop_table th { text-align: left; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-navy); padding: 14px 10px; border-bottom: 1px solid var(--sg-border); }
table.shop_table td { padding: 18px 10px; border-bottom: 1px solid var(--sg-border-soft); vertical-align: middle; }
td.product-thumbnail img { width: 84px; border-radius: var(--sg-radius-sm); }
td.product-name a { font-weight: 500; }
td.product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px;
	border-radius: 50%; color: var(--sg-navy); font-size: 1.2rem; background: var(--sg-mint);
}
.actions .coupon { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.actions .coupon input#coupon_code { padding: 1em; border: 1px solid var(--sg-border); border-radius: var(--sg-radius-sm); }
.cart-collaterals { display: flex; justify-content: flex-end; }
.cart_totals { width: 100%; max-width: 420px; background: var(--sg-white); border: 1px solid var(--sg-border); border-radius: var(--sg-radius); padding: 30px; }
.cart_totals h2 { font-size: 1.2rem; }
.cart_totals table { width: 100%; }
.cart_totals table td, .cart_totals table th { border: none; border-bottom: 1px solid var(--sg-border-soft); padding: 12px 0; }
.wc-proceed-to-checkout { margin-top: 16px; }
.wc-proceed-to-checkout a { display: flex; width: 100%; }

/* ---------------------------------------------------------------------
   Checkout
   ------------------------------------------------------------------- */
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr; gap: 0; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: start; }
#customer_details { grid-column: 1; }
#order_review, #payment { grid-column: 2; grid-row: 1 / span 2; background: var(--sg-white); border: 1px solid var(--sg-border); border-radius: var(--sg-radius); padding: 30px; position: sticky; top: calc(var(--sg-header-h) + 20px); }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { margin-top: 34px; }
.woocommerce-form-row, p.form-row { margin-bottom: 18px; }
.woocommerce-form-row label, p.form-row label { display: block; font-size: .82rem; color: var(--sg-navy); margin-bottom: 6px; }
.woocommerce-input-wrapper input, .woocommerce-input-wrapper select, .woocommerce-input-wrapper textarea,
form.checkout input[type="text"], form.checkout input[type="email"], form.checkout input[type="tel"], form.checkout textarea, form.checkout select {
	width: 100%; padding: .95em 1em; border: 1px solid var(--sg-border); border-radius: var(--sg-radius-sm); background: var(--sg-white);
}
.select2-container .select2-selection--single { height: 46px !important; border: 1px solid var(--sg-border) !important; display: flex; align-items: center; padding: 0 1em; }
#payment { margin-top: 0; }
ul.wc_payment_methods { list-style: none; padding: 0; }
ul.payment_methods li { border-bottom: 1px solid var(--sg-border-soft); padding: 14px 0; }
.payment_box { background: var(--sg-ivory); padding: 14px; margin-top: 10px; border-radius: var(--sg-radius-sm); font-size: .88rem; }
#place_order { width: 100%; margin-top: 18px; }

/* ---------------------------------------------------------------------
   My Account
   ------------------------------------------------------------------- */
.woocommerce-account .sg-page__content { display: grid; grid-template-columns: 240px 1fr; gap: 50px; align-items: start; }
.sg-account-nav ul { display: flex; flex-direction: column; gap: 4px; }
.sg-account-nav a { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--sg-radius-sm); font-size: .88rem; color: var(--sg-navy); }
.sg-account-nav li.is-active a, .sg-account-nav a:hover { background: var(--sg-mint); }
.sg-account-nav .sg-icon { width: 16px; height: 16px; }
.woocommerce-MyAccount-content { max-width: 760px; }
.sg-account-dashboard__quick-links { display: flex; flex-wrap: wrap; gap: 14px; margin: 24px 0 30px; }
.sg-account-quick-link {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	padding: 20px; border: 1px solid var(--sg-border); border-radius: var(--sg-radius); width: 130px; text-align: center; font-size: .82rem;
}
.sg-account-quick-link:hover { border-color: var(--sg-navy); }
.woocommerce-MyAccount-orders, table.my_account_orders { width: 100%; border-collapse: collapse; }
.woocommerce-orders-table__cell-order-actions .button { padding: .6em 1.2em; font-size: .65rem; margin: 2px; }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.woocommerce-Address { border: 1px solid var(--sg-border); border-radius: var(--sg-radius); padding: 24px; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; }
.woocommerce-form-login, .woocommerce-form-register { max-width: 460px; }
.woocommerce-form-login .form-row, .woocommerce-form-register .form-row { margin-bottom: 16px; }
.woocommerce-form-login input, .woocommerce-form-register input, .woocommerce-EditAccountForm input, .woocommerce-Address-title + address ~ * input {
	width: 100%; padding: .9em 1em; border: 1px solid var(--sg-border); border-radius: var(--sg-radius-sm);
}
.u-columns.woocommerce-Login { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }

/* ---------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.sg-shop__layout { grid-template-columns: 1fr; }
	.sg-shop__sidebar { display: none; }
	.sg-shop__filter-toggle { display: inline-flex; align-items: center; gap: 8px; }
	.sg-product-top { grid-template-columns: 1fr; gap: 34px; }
	.woocommerce-product-gallery { position: static; }
	form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
	#order_review, #payment { position: static; grid-column: 1; grid-row: auto; }
	.woocommerce-account .sg-page__content { grid-template-columns: 1fr; }
	.sg-account-nav ul { flex-direction: row; flex-wrap: wrap; }
	.woocommerce-Addresses { grid-template-columns: 1fr; }
	.u-columns.woocommerce-Login { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.cart_totals { max-width: 100%; }
	table.shop_table thead { display: none; }
	table.shop_table tr { display: grid; grid-template-columns: 84px 1fr; gap: 4px 14px; padding: 16px 0; border-bottom: 1px solid var(--sg-border-soft); }
	table.shop_table td { border: none; padding: 2px 0; }
	td.product-thumbnail { grid-row: 1 / span 4; }
}
