/* =============================================================================
   Bio Lotus — WooCommerce Style Overrides
   Loaded on: is_woocommerce() | is_cart() | is_checkout() | is_account_page()

   Sections
     1.  Shared / resets
     2.  WC notices
     3.  Breadcrumb
     4.  Product archive (shop, category)
     5.  Product cards
     6.  Sale badge
     7.  Pagination
     8.  Single product — layout
     9.  Single product — gallery
    10.  Single product — info column
    11.  Product tabs
    12.  Related / upsells
    13.  Cart
    14.  Checkout
    15.  My Account
    16.  Responsive
   ============================================================================= */


/* ── 1. SHARED / RESETS ───────────────────────────────────────────────────── */

/* Page top-padding so content clears fixed header */
.woocommerce-page .site-main,
.woocommerce.post-type-archive .site-main,
.woocommerce.single-product .site-main {
	padding-top: var(--bl-header-h, 108px);
}

/* Container width */
.woocommerce,
.woocommerce-page {
	--wc-max: var(--bl-max-width);
}

/* WC resets all buttons — restore our font */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	font-family: var(--bl-font-sans);
	border-radius: 2px;
	transition: background 180ms var(--bl-ease), color 180ms var(--bl-ease),
	            opacity 180ms var(--bl-ease);
}

/* Primary WC button → matches bl-btn-primary */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.wc-forward,
.woocommerce .checkout-button {
	background:     var(--bl-bold);
	color:          #FDFAF2;
	border:         none;
	padding:        12px 28px;
	font-size:      10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight:    500;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce .checkout-button:hover {
	background: var(--bl-text);
	color:      #FDFAF2;
}

/* Secondary / outline button */
.woocommerce a.button:not(.alt):not(.wc-forward),
.woocommerce button.button:not(.alt) {
	background:     transparent;
	color:          var(--bl-text-mid);
	border:         1px solid var(--bl-line);
	padding:        10px 22px;
	font-size:      10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight:    400;
}
.woocommerce a.button:not(.alt):not(.wc-forward):hover,
.woocommerce button.button:not(.alt):hover {
	border-color: var(--bl-text-mid);
	color:        var(--bl-text);
}


/* ── 2. WC NOTICES ────────────────────────────────────────────────────────── */

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	font-family:    var(--bl-font-sans);
	font-size:      13px;
	letter-spacing: .02em;
	border-radius:  2px;
	border-top:     none;
	padding:        14px 20px;
}
.woocommerce-message {
	border-left:     3px solid var(--bl-accent);
	background:      var(--bl-accent-soft);
	color:           var(--bl-text);
}
.woocommerce-info {
	border-left:  3px solid var(--bl-bold);
	background:   var(--bl-bold-soft);
	color:        var(--bl-text);
}
.woocommerce-error {
	border-left:  3px solid #C0392B;
	background:   #FBEAEA;
	color:        var(--bl-text);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	color: inherit;
}

/* Notice action button */
.woocommerce-message .button,
.woocommerce-info .button {
	float:      inline-end;
	margin-top: -2px;
}


/* ── 3. BREADCRUMB ────────────────────────────────────────────────────────── */

.woocommerce-breadcrumb {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .08em;
	color:          var(--bl-text-faint);
	margin-bottom:  28px;
	padding:        0;
	background:     none;
}

.woocommerce-breadcrumb a {
	color:           var(--bl-text-faint);
	text-decoration: none;
	transition:      color 180ms var(--bl-ease);
}
.woocommerce-breadcrumb a:hover { color: var(--bl-accent); }


/* ── 4. PRODUCT ARCHIVE ───────────────────────────────────────────────────── */

/* Page layout: padding + inner max-width */
.woocommerce-page.woocommerce-shop .site-main,
.tax-product_cat .site-main {
	padding-inline: var(--bl-padding-x);
}

/* Archive header */
.woocommerce-products-header {
	padding-bottom: 32px;
	border-bottom:  1px solid var(--bl-line);
	margin-bottom:  40px;
}
.woocommerce-products-header__title.page-title {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      clamp(32px, 4vw, 52px);
	color:          var(--bl-text);
	letter-spacing: .04em;
	line-height:    1.1;
}

/* Ordering / results count bar */
.woocommerce-ordering,
.woocommerce-result-count {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .06em;
	color:          var(--bl-text-faint);
}

.woocommerce-ordering select {
	font-family:     var(--bl-font-sans);
	font-size:       11px;
	letter-spacing:  .06em;
	color:           var(--bl-text-mid);
	border:          1px solid var(--bl-line);
	background:      var(--bl-surface);
	padding:         6px 28px 6px 10px;
	border-radius:   2px;
	appearance:      none;
	-webkit-appearance: none;
	cursor:          pointer;
}
.woocommerce-ordering select:focus {
	outline:        2px solid var(--bl-accent);
	outline-offset: 2px;
}

/* Product grid */
.woocommerce ul.products {
	display:               grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap:                   1px;
	background:            var(--bl-line);
	border:                1px solid var(--bl-line);
	list-style:            none;
	margin:                0;
	padding:               0;
}


/* ── 5. PRODUCT CARDS ─────────────────────────────────────────────────────── */

.woocommerce ul.products li.product {
	background:  var(--bl-surface);
	padding:     0;
	margin:      0;
	position:    relative;
	overflow:    hidden;
	transition:  box-shadow 240ms var(--bl-ease);
}
.woocommerce ul.products li.product:hover {
	box-shadow: 0 4px 24px rgba(28,23,16,.08);
	z-index:    1;
}

/* Card image area */
.woocommerce ul.products li.product a img {
	width:      100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	display:    block;
	transition: transform 400ms var(--bl-ease);
}
.woocommerce ul.products li.product:hover a img {
	transform: scale(1.03);
}

/* Overflow container for image */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display:  block;
	overflow: hidden;
}

/* Card text area */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
	font-family:    var(--bl-font-serif);
	font-weight:    300;
	font-size:      18px;
	color:          var(--bl-text);
	letter-spacing: .03em;
	line-height:    1.25;
	padding:        16px 20px 4px;
	margin:         0;
}

/* Star rating in card */
.woocommerce ul.products li.product .star-rating {
	margin: 4px 20px 8px;
	font-size: .8em;
}

/* Price in card */
.woocommerce ul.products li.product .price {
	display:      block;
	font-family:  var(--bl-font-sans);
	font-size:    14px;
	font-weight:  400;
	color:        var(--bl-text-mid);
	padding:      0 20px 6px;
	letter-spacing: .02em;
}
.woocommerce ul.products li.product .price del {
	color:    var(--bl-text-faint);
	font-size: 12px;
	opacity:  .8;
}
.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color:           var(--bl-bold);
	font-weight:     500;
}

/* Add-to-cart button in card */
.woocommerce ul.products li.product .button {
	display:         block;
	width:           calc(100% - 40px);
	margin:          10px 20px 20px;
	text-align:      center;
	background:      var(--bl-bold);
	color:           #FDFAF2;
	border:          none;
	padding:         10px 0;
	font-size:       10px;
	letter-spacing:  .16em;
	text-transform:  uppercase;
	font-weight:     500;
	border-radius:   2px;
	transition:      background 180ms var(--bl-ease),
	                 opacity   180ms var(--bl-ease);
}
.woocommerce ul.products li.product .button:hover {
	background: var(--bl-text);
	color:      #FDFAF2;
}
.woocommerce ul.products li.product .button.loading {
	opacity: .6;
	pointer-events: none;
}
.woocommerce ul.products li.product .button.added {
	background: var(--bl-accent);
}

/* Added-to-cart checkmark link */
.woocommerce ul.products li.product .added_to_cart {
	display:        block;
	text-align:     center;
	margin:         -10px 20px 10px;
	font-size:      10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color:          var(--bl-accent);
}


/* ── 6. SALE BADGE ────────────────────────────────────────────────────────── */

.woocommerce span.onsale {
	position:     absolute;
	top:          14px;
	inset-inline-end: 14px;
	background:   var(--bl-bold);
	color:        #FDFAF2;
	font-family:  var(--bl-font-sans);
	font-size:    10px;
	font-weight:  500;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding:      5px 10px;
	border-radius: 2px;
	min-height:   auto;
	min-width:    auto;
	line-height:  1.4;
	z-index:      2;
}


/* ── 7. PAGINATION ────────────────────────────────────────────────────────── */

.woocommerce nav.woocommerce-pagination {
	margin-top: 48px;
	text-align: center;
}
.woocommerce nav.woocommerce-pagination ul {
	display:     inline-flex;
	gap:         2px;
	border:      none;
	background:  none;
}
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce nav.woocommerce-pagination ul li a {
	font-family:    var(--bl-font-sans);
	font-size:      12px;
	letter-spacing: .08em;
	color:          var(--bl-text-mid);
	border:         1px solid var(--bl-line);
	background:     var(--bl-surface);
	padding:        8px 14px;
	border-radius:  2px;
	transition:     border-color 180ms var(--bl-ease),
	                color        180ms var(--bl-ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: var(--bl-accent);
	color:        var(--bl-accent);
	background:   var(--bl-surface);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background:   var(--bl-bold);
	color:        #FDFAF2;
	border-color: var(--bl-bold);
}


/* ── 8. SINGLE PRODUCT — LAYOUT ──────────────────────────────────────────── */

.woocommerce div.product {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   0 64px;
	max-width:             var(--bl-max-width);
	margin:                0 auto;
	padding:               0 var(--bl-padding-x) 64px;
	align-items:           start;
}

/* Full-width rows inside the grid */
.woocommerce div.product .woocommerce-breadcrumb,
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product #reviews,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
}


/* ── 9. SINGLE PRODUCT — GALLERY ─────────────────────────────────────────── */

.woocommerce div.product .woocommerce-product-gallery {
	position: sticky;
	top:      calc(var(--bl-header-h) + 24px);
}

/* Reset Flexslider defaults (margin-bottom:60px, border, box-shadow, bg)
   that create empty space around the product gallery */
.woocommerce div.product .woocommerce-product-gallery .flexslider {
	margin:        0;
	padding:       0;
	border:        none;
	box-shadow:    none;
	border-radius: 0;
	background:    transparent;
}
.woocommerce div.product .woocommerce-product-gallery .flex-viewport {
	max-height: none;
}

/* Image wrapper — remove inline-element gap at bottom */
.woocommerce div.product .woocommerce-product-gallery__image {
	display: block;
	margin:  0;
	padding: 0;
}
.woocommerce div.product .woocommerce-product-gallery__image a {
	display:     block;
	line-height: 0; /* eliminates the ~4px gap below inline images */
}

/* Main image */
.woocommerce div.product .woocommerce-product-gallery__image img {
	width:        100%;
	height:       auto;
	display:      block;
	border-radius: 1px;
}

/* Thumbnail strip */
.woocommerce div.product .flex-control-thumbs {
	display: flex;
	gap:     8px;
	margin-top: 12px;
	list-style: none;
	padding:    0;
}
.woocommerce div.product .flex-control-thumbs li {
	width: 72px;
	flex-shrink: 0;
}
.woocommerce div.product .flex-control-thumbs img {
	width:        72px;
	height:       72px;
	object-fit:   cover;
	cursor:       pointer;
	border:       1px solid transparent;
	border-radius: 1px;
	transition:   border-color 180ms var(--bl-ease);
}
.woocommerce div.product .flex-control-thumbs img:hover,
.woocommerce div.product .flex-control-thumbs .flex-active img {
	border-color: var(--bl-accent);
}

/* Sale badge on single product */
.woocommerce div.product span.onsale {
	top:             20px;
	inset-inline-end: 20px;
}


/* ── 10. SINGLE PRODUCT — INFO COLUMN ────────────────────────────────────── */

.woocommerce div.product .entry-summary {
	padding-top: 8px;
}

/* Category breadcrumb line */
.woocommerce div.product .posted_in {
	font-family:    var(--bl-font-sans);
	font-size:      10px;
	letter-spacing: .20em;
	text-transform: uppercase;
	color:          var(--bl-accent);
	display:        block;
	margin-bottom:  12px;
}
.woocommerce div.product .posted_in a {
	color: var(--bl-accent);
}

/* Product title */
.woocommerce div.product .product_title {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      clamp(28px, 3vw, 42px);
	color:          var(--bl-text);
	letter-spacing: .04em;
	line-height:    1.1;
	margin-bottom:  16px;
}

/* Star rating */
.woocommerce div.product .woocommerce-product-rating {
	display:     flex;
	align-items: center;
	gap:         10px;
	margin-bottom: 18px;
}
.woocommerce div.product .star-rating {
	color:     var(--bl-accent);
	font-size: .9em;
}
.woocommerce div.product .woocommerce-review-link {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	color:          var(--bl-text-faint);
	letter-spacing: .04em;
}

/* Star rating spans */
.star-rating {
	overflow:   hidden;
	position:   relative;
	height:     1em;
	line-height: 1;
	font-size:  .9em;
	width:      5.4em;
	color:      var(--bl-accent);
}
.star-rating::before {
	content:    "\73\73\73\73\73";
	float:      inline-start;
	top:        0;
	left:       0;
	position:   absolute;
	color:      var(--bl-line);
	letter-spacing: .1em;
}
.star-rating span {
	overflow:    hidden;
	float:       inline-start;
	top:         0;
	left:        0;
	position:    absolute;
	padding-top: 1.5em;
}
.star-rating span::before {
	content:        "\73\73\73\73\73";
	top:            0;
	position:       absolute;
	left:           0;
	color:          var(--bl-accent);
	letter-spacing: .1em;
}

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family:    var(--bl-font-sans);
	font-size:      22px;
	font-weight:    400;
	color:          var(--bl-text);
	letter-spacing: .02em;
	margin-bottom:  20px;
	display:        block;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color:     var(--bl-text-faint);
	font-size: 16px;
	opacity:   .8;
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
	color:           var(--bl-bold);
	font-weight:     500;
}

/* Short description */
.woocommerce div.product .woocommerce-product-details__short-description {
	font-family:   var(--bl-font-sans);
	font-size:     13px;
	color:         var(--bl-text-mid);
	line-height:   1.75;
	letter-spacing: .02em;
	margin-bottom: 28px;
	border-top:    1px solid var(--bl-line);
	padding-top:   20px;
}

/* Quantity input */
.woocommerce div.product form.cart .quantity input {
	font-family:  var(--bl-font-sans);
	font-size:    14px;
	font-weight:  400;
	color:        var(--bl-text);
	border:       1px solid var(--bl-line);
	background:   var(--bl-surface);
	border-radius: 2px;
	padding:      10px 12px;
	width:        72px;
	text-align:   center;
}
.woocommerce div.product form.cart .quantity input:focus {
	outline:       2px solid var(--bl-accent);
	outline-offset: 2px;
}

/* Add to cart button — single product */
.woocommerce div.product form.cart .single_add_to_cart_button {
	background:     var(--bl-bold);
	color:          #FDFAF2;
	border:         none;
	padding:        14px 36px;
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight:    500;
	border-radius:  2px;
	cursor:         pointer;
	transition:     background 180ms var(--bl-ease);
	min-width:      200px;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--bl-text);
}
.woocommerce div.product form.cart .single_add_to_cart_button.loading {
	opacity: .7;
}

/* Meta (SKU, categories, tags) */
.woocommerce div.product .product_meta {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	color:          var(--bl-text-faint);
	letter-spacing: .06em;
	margin-top:     24px;
	border-top:     1px solid var(--bl-line);
	padding-top:    18px;
}
.woocommerce div.product .product_meta a {
	color: var(--bl-text-mid);
}
.woocommerce div.product .product_meta a:hover {
	color: var(--bl-accent);
}


/* ── 11. PRODUCT TABS ─────────────────────────────────────────────────────── */

.woocommerce div.product .woocommerce-tabs {
	margin-top: 48px;
	border-top: 1px solid var(--bl-line);
}

/* Tab navigation */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display:      flex;
	gap:          0;
	list-style:   none;
	margin:       0;
	padding:      0;
	border-bottom: 1px solid var(--bl-line);
	background:   none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border:     none;
	border-radius: 0;
	margin:     0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight:    400;
	color:          var(--bl-text-faint);
	padding:        16px 24px;
	display:        block;
	border-bottom:  2px solid transparent;
	transition:     color 180ms var(--bl-ease),
	                border-color 180ms var(--bl-ease);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color:        var(--bl-accent);
	border-color: var(--bl-accent);
}

/* Tab content panels */
.woocommerce div.product .woocommerce-tabs .panel {
	padding:    32px 0;
	font-family: var(--bl-font-sans);
	font-size:  14px;
	color:      var(--bl-text-mid);
	line-height: 1.8;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      26px;
	color:          var(--bl-text);
	letter-spacing: .03em;
	margin-bottom:  20px;
}
.woocommerce div.product .woocommerce-tabs .panel table {
	width:          100%;
	border-collapse: collapse;
	font-size:      13px;
}
.woocommerce div.product .woocommerce-tabs .panel table th,
.woocommerce div.product .woocommerce-tabs .panel table td {
	padding:       10px 14px;
	border-bottom: 1px solid var(--bl-line);
	text-align:    start;
}
.woocommerce div.product .woocommerce-tabs .panel table th {
	color:      var(--bl-text-faint);
	font-weight: 400;
	width:       35%;
}

/* Review form inside tabs */
#review_form #respond {
	background: var(--bl-bg-alt);
	padding:    28px;
	border-radius: 2px;
}
#review_form .comment-form-rating label {
	font-family:    var(--bl-font-sans);
	font-size:      12px;
	letter-spacing: .08em;
	color:          var(--bl-text-mid);
}


/* ── 12. RELATED / UPSELLS ────────────────────────────────────────────────── */

.woocommerce div.product .related,
.woocommerce div.product .upsells {
	margin-top: 64px;
	padding-top: 40px;
	border-top: 1px solid var(--bl-line);
}

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      clamp(24px, 2.5vw, 34px);
	color:          var(--bl-text);
	letter-spacing: .04em;
	margin-bottom:  32px;
}

.woocommerce div.product .related ul.products,
.woocommerce div.product .upsells ul.products {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}


/* ── 13. CART ─────────────────────────────────────────────────────────────── */

.woocommerce-cart .woocommerce {
	max-width:    var(--bl-max-width);
	margin:       0 auto;
	padding:      0 var(--bl-padding-x) 64px;
}

/* Cart table */
.woocommerce-cart table.shop_table {
	border-collapse: collapse;
	width:           100%;
	border:          none;
	font-family:     var(--bl-font-sans);
	font-size:       14px;
}
.woocommerce-cart table.shop_table thead th {
	font-size:      10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color:          var(--bl-text-faint);
	font-weight:    400;
	padding:        10px 14px;
	border-bottom:  1px solid var(--bl-line);
	background:     none;
}
.woocommerce-cart table.shop_table tbody tr {
	border-bottom: 1px solid var(--bl-line);
}
.woocommerce-cart table.shop_table tbody td {
	padding:    18px 14px;
	background: none;
	border:     none;
	vertical-align: middle;
}

/* Product image cell */
.woocommerce-cart table.shop_table td.product-thumbnail img {
	width:        80px;
	height:       80px;
	object-fit:   cover;
	border-radius: 1px;
}

/* Product name link */
.woocommerce-cart table.shop_table td.product-name a {
	font-family:    var(--bl-font-serif);
	font-size:      16px;
	font-weight:    300;
	color:          var(--bl-text);
	letter-spacing: .02em;
	text-decoration: none;
}
.woocommerce-cart table.shop_table td.product-name a:hover { color: var(--bl-accent); }

/* Price & subtotal in cart */
.woocommerce-cart table.shop_table td.product-price,
.woocommerce-cart table.shop_table td.product-subtotal {
	font-size:  15px;
	color:      var(--bl-text-mid);
	text-align: end;
}

/* Remove × button */
.woocommerce-cart table.shop_table td.product-remove a.remove {
	font-size:   18px;
	color:       var(--bl-text-faint) !important;
	font-weight: 300;
	line-height: 1;
	transition:  color 180ms var(--bl-ease);
}
.woocommerce-cart table.shop_table td.product-remove a.remove:hover {
	color:      #C0392B !important;
	background: none;
}

/* Cart quantity input */
.woocommerce-cart table.shop_table td.product-quantity .qty {
	width:        62px;
	border:       1px solid var(--bl-line);
	border-radius: 2px;
	padding:      7px 8px;
	font-family:  var(--bl-font-sans);
	font-size:    13px;
	text-align:   center;
}

/* Cart actions row */
.woocommerce-cart table.shop_table tr.cart_item td.actions {
	text-align: end;
	padding-top: 24px;
}
.woocommerce-cart input[name="update_cart"] {
	background:     transparent;
	border:         1px solid var(--bl-line);
	color:          var(--bl-text-mid);
	font-size:      10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding:        9px 20px;
	border-radius:  2px;
	transition:     border-color 180ms var(--bl-ease);
}
.woocommerce-cart input[name="update_cart"]:hover {
	border-color: var(--bl-text-mid);
}

/* Cart collaterals layout */
.woocommerce-cart .cart-collaterals {
	margin-top: 32px;
}
.woocommerce-cart .cart_totals {
	float:     inline-end;
	width:     min(100%, 380px);
	background: var(--bl-bg-alt);
	padding:   28px;
	border-radius: 2px;
}
.woocommerce-cart .cart_totals h2 {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      22px;
	color:          var(--bl-text);
	letter-spacing: .04em;
	margin-bottom:  20px;
}
.woocommerce-cart .cart_totals table {
	width:           100%;
	border-collapse: collapse;
	font-family:     var(--bl-font-sans);
	font-size:       14px;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	padding:       10px 0;
	border-bottom: 1px solid var(--bl-line);
}
.woocommerce-cart .cart_totals table th {
	color:      var(--bl-text-faint);
	font-weight: 400;
	font-size:  12px;
	letter-spacing: .06em;
}
.woocommerce-cart .cart_totals table tr.order-total th,
.woocommerce-cart .cart_totals table tr.order-total td {
	font-weight:   500;
	border-bottom: none;
	font-size:     16px;
	color:         var(--bl-text);
}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
	margin-top: 20px;
}
.woocommerce-cart .cart_totals .checkout-button {
	display:        block;
	width:          100%;
	text-align:     center;
	background:     var(--bl-bold);
	color:          #FDFAF2;
	padding:        14px;
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight:    500;
	border-radius:  2px;
	transition:     background 180ms var(--bl-ease);
}
.woocommerce-cart .cart_totals .checkout-button:hover {
	background: var(--bl-text);
	color:      #FDFAF2;
}


/* ── 14. CHECKOUT ─────────────────────────────────────────────────────────── */

.woocommerce-checkout .woocommerce {
	max-width: var(--bl-max-width);
	margin:    0 auto;
	padding:   0 var(--bl-padding-x) 64px;
}

/* 2-col layout */
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
	/* Handled via WC default float or flex — rely on WC's own layout,
	   override only typography */
}

/* Section headings */
.woocommerce-checkout h3#order_review_heading,
.woocommerce-checkout h3.woocommerce-column__title {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      22px;
	color:          var(--bl-text);
	letter-spacing: .04em;
	margin-bottom:  20px;
	padding-bottom: 12px;
	border-bottom:  1px solid var(--bl-line);
}

/* Form fields */
.woocommerce-checkout .form-row label {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .10em;
	text-transform: uppercase;
	color:          var(--bl-text-mid);
	font-weight:    400;
	margin-bottom:  6px;
	display:        block;
}
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
	font-family:    var(--bl-font-sans);
	font-size:      13px;
	color:          var(--bl-text);
	border:         1px solid var(--bl-line);
	background:     var(--bl-surface);
	border-radius:  2px;
	padding:        11px 14px;
	width:          100%;
	transition:     border-color 180ms var(--bl-ease);
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
	outline:        2px solid var(--bl-accent);
	outline-offset: 2px;
	border-color:   var(--bl-accent);
}

/* Order review table */
.woocommerce-checkout #order_review table.shop_table {
	font-family:     var(--bl-font-sans);
	font-size:       13px;
	border-collapse: collapse;
	width:           100%;
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	padding:       10px 14px;
	border-bottom: 1px solid var(--bl-line);
}
.woocommerce-checkout #order_review table.shop_table tr.order-total td {
	font-weight: 500;
	font-size:   15px;
	color:       var(--bl-text);
}

/* Place order button */
.woocommerce-checkout #place_order {
	display:        block;
	width:          100%;
	background:     var(--bl-bold);
	color:          #FDFAF2;
	border:         none;
	padding:        16px;
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .20em;
	text-transform: uppercase;
	font-weight:    500;
	border-radius:  2px;
	cursor:         pointer;
	margin-top:     24px;
	transition:     background 180ms var(--bl-ease);
}
.woocommerce-checkout #place_order:hover { background: var(--bl-text); }


/* ── 15. MY ACCOUNT ───────────────────────────────────────────────────────── */

.woocommerce-account .woocommerce {
	max-width:    var(--bl-max-width);
	margin:       0 auto;
	padding:      0 var(--bl-padding-x) 64px;
	display:      grid;
	grid-template-columns: 220px 1fr;
	gap:          0 48px;
	align-items:  start;
}

/* Account navigation */
.woocommerce-account .woocommerce-MyAccount-navigation {
	position: sticky;
	top:      calc(var(--bl-header-h) + 24px);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin:     0;
	padding:    0;
	border:     1px solid var(--bl-line);
	border-radius: 2px;
	overflow:   hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display:        block;
	font-family:    var(--bl-font-sans);
	font-size:      12px;
	letter-spacing: .10em;
	text-transform: uppercase;
	color:          var(--bl-text-mid);
	text-decoration: none;
	padding:        13px 18px;
	border-bottom:  1px solid var(--bl-line);
	transition:     background 180ms var(--bl-ease),
	                color      180ms var(--bl-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a {
	border-bottom: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--bl-bg-alt);
	color:      var(--bl-text);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
	background:  var(--bl-accent);
	color:       #FDFAF2;
	font-weight: 500;
}

/* Account content area */
.woocommerce-account .woocommerce-MyAccount-content {
	min-width: 0;
}
.woocommerce-account .woocommerce-MyAccount-content h2 {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      26px;
	color:          var(--bl-text);
	letter-spacing: .04em;
	margin-bottom:  24px;
	border-bottom:  1px solid var(--bl-line);
	padding-bottom: 16px;
}
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content table {
	font-family: var(--bl-font-sans);
	font-size:   14px;
	color:       var(--bl-text-mid);
	line-height: 1.7;
}

/* Login / Register forms (account page) */
.woocommerce-account .woocommerce-form input[type="text"],
.woocommerce-account .woocommerce-form input[type="email"],
.woocommerce-account .woocommerce-form input[type="password"] {
	font-family:   var(--bl-font-sans);
	font-size:     13px;
	color:         var(--bl-text);
	border:        1px solid var(--bl-line);
	background:    var(--bl-surface);
	border-radius: 2px;
	padding:       11px 14px;
	width:         100%;
	transition:    border-color 180ms var(--bl-ease);
}
.woocommerce-account .woocommerce-form input:focus {
	outline:       2px solid var(--bl-accent);
	outline-offset: 2px;
}
.woocommerce-account .woocommerce-form label {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: .10em;
	text-transform: uppercase;
	color:          var(--bl-text-mid);
	margin-bottom:  6px;
	display:        block;
}
.woocommerce-account .woocommerce-form .woocommerce-Button {
	background:     var(--bl-bold);
	color:          #FDFAF2;
	border:         none;
	padding:        12px 32px;
	font-family:    var(--bl-font-sans);
	font-size:      10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight:    500;
	border-radius:  2px;
	cursor:         pointer;
	transition:     background 180ms var(--bl-ease);
}
.woocommerce-account .woocommerce-form .woocommerce-Button:hover {
	background: var(--bl-text);
}


/* ── 16. RESPONSIVE ───────────────────────────────────────────────────────── */

/* Tablet: 2-col product grid → tighter spacing */
@media (max-width: 1100px) {
	.woocommerce div.product {
		gap: 0 40px;
	}
}

/* Tablet: switch to mobile layout */
@media (max-width: 900px) {
	/* Single product: stack gallery + info */
	.woocommerce div.product {
		grid-template-columns: 1fr;
		gap:                   32px 0;
	}
	.woocommerce div.product .woocommerce-product-gallery {
		position: static;
	}

	/* Cart: full-width totals */
	.woocommerce-cart .cart_totals {
		float: none;
		width: 100%;
	}

	/* Account: stack nav + content */
	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation {
		position: static;
	}
}

@media (max-width: 640px) {
	/* Hide thumbnail column in cart table */
	.woocommerce-cart table.shop_table td.product-thumbnail,
	.woocommerce-cart table.shop_table th.product-thumbnail {
		display: none;
	}

	/* 2-col product grid on small mobile */
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 400px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}
