/* Forge engine: WooCommerce bridge (shop, product, cart, checkout, account
   routes). WooCommerce's layout and small-screen CSS stay; its general sheet is
   dropped and repainted here from tokens. Checkout rules port the house's proven
   classic checkout, tokenized; store-core's checkout-ui emits the .sc-co-* markup.
   1 surfaces 2 notices 3 buttons 4 fields 5 selects 6 quantity 7 product grid
   8 ordering and pagination 9 single product 10 cart page 11 cart summary
   12 checkout layout 13 order review 14 payment and Stripe 15 consent and terms
   16 order received 17 my account 18 small screens */

/* 1. surfaces */
.woocommerce, .woocommerce-page { --field-bg: var(--raised); --field-line: var(--line-strong); }
.woocommerce .onsale, .woocommerce span.onsale, .woocommerce .star-rating, .woocommerce p.stars { display: none; }
.woocommerce .blockUI.blockOverlay { background: color-mix(in srgb, var(--bg) 70%, transparent) !important; opacity: 1 !important; }
.woocommerce .woocommerce-breadcrumb { font-size: var(--t-xs); color: var(--muted); margin-bottom: var(--s4); }
.woocommerce .woocommerce-breadcrumb a { color: var(--muted); }

/* 2. notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper > div { list-style: none; margin: 0 0 var(--s5); padding: var(--s4) var(--s5); border: 1px solid var(--line-strong); border-left: 3px solid var(--accent-text); border-radius: var(--radius); background: var(--surface); color: var(--fg); font-size: var(--t-sm); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s4); }
.woocommerce-error { border-left-color: var(--danger); }
.woocommerce-error li { list-style: none; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button, .woocommerce-info .button { margin-left: auto; order: 2; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { color: var(--accent-text); }

/* 3. buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button { display: inline-flex; align-items: center; justify-content: center; gap: var(--s2); min-height: var(--tap); padding: 0 1.25rem; border: 1px solid var(--line-strong); border-radius: var(--radius); background: transparent; color: var(--fg); font-family: var(--font-body); font-size: var(--t-sm); font-weight: var(--w-semi); letter-spacing: 0.04em; text-transform: var(--case-button); line-height: 1.1; text-decoration: none; }
.woocommerce a.button:hover, .woocommerce button.button:hover { border-color: var(--fg); background: transparent; color: var(--fg); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce a.checkout-button, .woocommerce #place_order { background: var(--cta); border-color: var(--cta); color: var(--on-cta); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce .single_add_to_cart_button:hover,
.woocommerce a.checkout-button:hover, .woocommerce #place_order:hover { background: var(--cta-hover); border-color: var(--cta-hover); color: var(--on-cta); }
.woocommerce .button:disabled, .woocommerce .button.disabled, .woocommerce .button:disabled[disabled] { opacity: 0.5; cursor: not-allowed; }
.woocommerce a.added_to_cart { display: none; }

/* 4. fields and labels */
.woocommerce form .form-row { margin: 0 0 var(--s4); padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-size: var(--t-xs); line-height: 1.4; font-weight: var(--w-semi); color: var(--muted); letter-spacing: 0.02em; }
.woocommerce form .form-row .required { color: var(--muted); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--muted); font-weight: var(--w-regular); }
/* Field hints (WooCommerce's own stylesheet is not loaded). */
.woocommerce form .form-row .description { display: block; margin-top: 6px; font-size: var(--t-xs); line-height: 1.5; color: var(--muted); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { min-height: var(--tap); padding: 0 0.8rem; border: 1px solid var(--field-line); border-radius: var(--radius); background-color: var(--field-bg); color: var(--fg); font-size: var(--t-sm); line-height: 1.4; box-shadow: none; }
.woocommerce form .form-row textarea { padding: 0.7rem 0.8rem; min-height: 6.5rem; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus { border-color: var(--focus); outline: 2px solid color-mix(in srgb, var(--focus) 35%, transparent); outline-offset: 0; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--danger); }
.woocommerce form .form-row.woocommerce-invalid label { color: var(--danger); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--field-line); }
/* Checkbox and radio labels are sentences, not field labels. */
.woocommerce form .form-row label.checkbox, .woocommerce-form__label-for-checkbox, #payment label { display: flex; align-items: flex-start; gap: var(--s2); min-height: var(--tap); font-size: var(--t-sm); font-weight: var(--w-medium); color: var(--fg); letter-spacing: normal; text-transform: none; }
.woocommerce-form__label-for-checkbox input { margin-top: 3px; flex-shrink: 0; }
.woocommerce form .password-input { display: flex; position: relative; }
.woocommerce form .show-password-input { position: absolute; right: 0; top: 0; width: var(--tap); height: var(--tap); background: none; border: 0; color: var(--muted); }
.woocommerce form .show-password-input::after { content: ""; display: block; width: 18px; height: 18px; margin: auto; background: currentColor; -webkit-mask: var(--icon-eye) center / contain no-repeat; mask: var(--icon-eye) center / contain no-repeat; }
:root { --icon-eye: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }

/* 5. selects */
.woocommerce select { appearance: none; -webkit-appearance: none; padding-right: 2.4rem; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 19px) 55%, calc(100% - 14px) 55%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.select2-container--default .select2-selection--single { min-height: var(--tap); display: flex; align-items: center; border: 1px solid var(--field-line); border-radius: var(--radius); background: var(--field-bg); }
.select2-dropdown { background: var(--surface); color: var(--fg); }

/* 6. quantity */
.woocommerce .quantity .qty { width: 4.5rem; min-height: var(--tap); padding: 0 0.4rem; text-align: center; border: 1px solid var(--field-line); border-radius: var(--radius); background: var(--field-bg); color: var(--fg); font-size: var(--t-base); }
.woocommerce .quantity .qty:focus { border-color: var(--focus); }

/* 7. product grid (archive, related, up-sells) */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); margin: 0 0 var(--s7); padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 0; }
@media (min-width: 768px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); } }
@media (min-width: 1100px) { .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 380px) { .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); } }

/* 8. ordering, result count and pagination */
.shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s6); }
.shop-toolbar .filters { margin-bottom: 0; }
.shop-tools { display: flex; align-items: center; gap: var(--s4); margin-left: auto; }
.woocommerce .woocommerce-result-count { margin: 0; font-size: var(--t-sm); color: var(--muted); }
.woocommerce .woocommerce-ordering { margin: 0; }
.woocommerce .woocommerce-ordering select { min-height: var(--tap); padding: 0 2.4rem 0 0.9rem; border: 1px solid var(--line-strong); border-radius: var(--radius-pill); background-color: var(--surface); color: var(--fg); font-size: var(--t-sm); }
.woocommerce nav.woocommerce-pagination ul { display: flex; justify-content: center; gap: var(--s2); border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { display: inline-flex; align-items: center; justify-content: center; min-width: var(--tap); min-height: var(--tap); border: 1px solid var(--line-strong); border-radius: var(--radius); color: var(--fg); background: transparent; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--fg); color: var(--bg); border-color: var(--fg); }

/* 9. single product (WooCommerce's forms inside the PDP) */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: var(--s3); margin: 0; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; flex: 1 1 12rem; min-height: 52px; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: var(--s2); border: 0; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; border: 0; }
.woocommerce div.product form.cart .variations label { font-size: var(--t-xs); font-weight: var(--w-semi); color: var(--muted); letter-spacing: 0.06em; text-transform: uppercase; }
.woocommerce div.product form.cart .variations select { min-width: 100%; margin: var(--s2) 0 var(--s4); }
.woocommerce div.product form.cart .reset_variations { font-size: var(--t-xs); color: var(--muted); }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: var(--s3); font-size: var(--t-lg); font-weight: var(--w-semi); }
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--s3); width: 100%; }
.woocommerce div.product p.stock { font-size: var(--t-sm); color: var(--muted); margin-bottom: var(--s3); }
.woocommerce div.product p.stock.out-of-stock { color: var(--danger); }
.woocommerce div.product p.stock.available-on-backorder { color: var(--muted); }
.woocommerce div.product .woocommerce-product-gallery { opacity: 1 !important; float: none; width: auto; }
.woocommerce div.product div.summary { float: none; width: auto; margin: 0; }

/* 10. cart page (item cards) */
.cartx { display: grid; gap: var(--s6); align-items: start; }
@media (min-width: 960px) { .cartx { grid-template-columns: minmax(0, 1fr) 400px; gap: var(--s7); } .cartx-side { position: sticky; top: calc(var(--nav-h) + var(--s5)); } }
.cartx-items { display: grid; gap: var(--s3); }
.cartx-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--s4); padding: var(--s4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.cartx-thumb { display: block; width: 96px; height: 96px; border-radius: var(--radius); background: var(--photo-bg); overflow: hidden; }
.cartx-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.cartx-body { display: grid; gap: var(--s2); min-width: 0; }
.cartx-top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s3); }
.cartx-name { display: inline-flex; align-items: center; min-width: var(--tap); min-height: var(--tap); color: var(--fg); font-weight: var(--w-semi); text-decoration: none; text-transform: var(--case-title); }
.cartx-price { font-weight: var(--w-semi); font-feature-settings: "tnum" 1; white-space: nowrap; }
.cartx-meta { font-size: var(--t-xs); color: var(--muted); display: grid; gap: 2px; }
.cartx-meta .variation { display: flex; flex-wrap: wrap; gap: 0 var(--s2); margin: 0; }
.cartx-meta .variation dd, .cartx-meta .variation p { margin: 0; }
.cartx-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); margin-top: var(--s2); flex-wrap: wrap; }
.cartx-remove { display: inline-flex; align-items: center; gap: var(--s1); min-height: var(--tap); padding: 0 var(--s2); color: var(--muted) !important; font-size: var(--t-xs); text-decoration: none; border-radius: var(--radius); }
.cartx-remove:hover { color: var(--danger) !important; background: transparent !important; }
.cartx-actions { display: flex; justify-content: flex-end; }
.js .cartx-update { display: none; }
.backorder_notification { color: var(--muted); font-size: var(--t-xs); margin: 0; }

/* 11. cart summary panel */
.cartx-panel, .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; padding: var(--s5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); display: grid; gap: var(--s4); }
.cartx-panel-title { font-size: var(--t-md); text-transform: var(--case-title); }
.cartx-promo { border-bottom: 1px solid var(--line); padding-bottom: var(--s3); }
.cartx-promo-toggle { display: inline-flex; align-items: center; gap: var(--s2); min-height: var(--tap); font-size: var(--t-sm); font-weight: var(--w-semi); color: var(--accent-text); }
.cartx-promo-row { display: flex; gap: var(--s2); margin-top: var(--s2); }
.cartx-lines { display: grid; gap: var(--s3); font-size: var(--t-sm); }
.cartx-line { display: flex; justify-content: space-between; gap: var(--s3); }
.cartx-line dt { color: var(--muted); }
.cartx-line dd { text-align: right; font-feature-settings: "tnum" 1; white-space: nowrap; }
.cartx-line--discount dd { color: var(--success); }
.cartx-line .woocommerce-remove-coupon { margin-left: var(--s2); color: var(--muted); font-size: var(--t-xs); }
.cartx-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: var(--s4); border-top: 1px solid var(--line); font-size: var(--t-lg); font-weight: var(--w-bold); }
.cartx-total strong { font-feature-settings: "tnum" 1; }
.cartx-total small { font-size: var(--t-xs); font-weight: var(--w-regular); color: var(--muted); display: block; }
.wc-proceed-to-checkout { padding: 0 !important; }
.wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 52px; margin: 0 !important; font-size: var(--t-sm); }
.cartx-fine { display: flex; align-items: center; justify-content: center; gap: var(--s1); font-size: var(--t-xs); color: var(--muted); }
.woocommerce .cart-collaterals .cross-sells { display: none; }

/* 12. checkout layout and steps
   store-core's checkout-ui prints the steps (.sc-co-*) and styles their parts
   with --sc-* tokens (mapped in base.css). The theme owns the page layout: two
   columns, steps down the left, the summary sticky on the right. */
.woocommerce-billing-fields__field-wrapper::after, .woocommerce-shipping-fields__field-wrapper::after { content: ""; display: table; clear: both; }
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading { font-size: var(--t-md); margin: 0 0 var(--s4); }
.woocommerce-checkout #customer_details h3, .woocommerce-checkout .woocommerce-additional-fields h3 { font-family: var(--font-mono); font-size: var(--t-xs); font-weight: var(--w-medium); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.woocommerce-checkout #customer_details, .woocommerce-checkout #payment, .woocommerce-checkout .sc-co-done { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(1.1rem, 3vw, 1.75rem); }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout .col2-set .col-2 { margin-top: var(--s5); }
#ship-to-different-address label { display: inline-flex; align-items: center; gap: var(--s2); font-size: var(--t-sm); text-transform: none; letter-spacing: normal; color: var(--fg); }
.sc-co-topbar { margin-bottom: var(--s5); }
.sc-co-back { min-height: var(--tap); font-weight: var(--w-semi); color: var(--muted); }
.sc-co-step-head h2 { font-size: var(--t-md); letter-spacing: var(--track-title); }
.sc-co-step-head--pay { margin-top: var(--s5); }
.sc-co-coupon-toggle, .sc-co-edit { min-height: var(--tap); font-weight: var(--w-semi); }
.sc-co-continue-btn { min-height: 52px; border-radius: var(--radius); text-transform: var(--case-button); letter-spacing: 0.04em; }
.sc-co-continue-btn:hover { background: var(--cta-hover); }
@media (min-width: 981px) {
  .woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; column-gap: var(--s7); row-gap: 0; align-items: start; }
  .woocommerce-checkout form.checkout > .sc-co-step-head:not(.sc-co-step-head--pay) { grid-column: 1; grid-row: 1; }
  .woocommerce-checkout form.checkout > .sc-co-chips { grid-column: 1; grid-row: 2; }
  .woocommerce-checkout form.checkout > #wc-stripe-express-checkout-element, .woocommerce-checkout form.checkout > .wc-stripe-express-checkout-element { grid-column: 1; grid-row: 3; }
  .woocommerce-checkout form.checkout > p:not([class]) { grid-column: 1; grid-row: 4; text-align: center; }
  .woocommerce-checkout form.checkout > .sc-co-done { grid-column: 1; grid-row: 5; }
  .woocommerce-checkout form.checkout > .col2-set { grid-column: 1; grid-row: 6; float: none; width: auto; }
  .woocommerce-checkout form.checkout > .sc-co-continue { grid-column: 1; grid-row: 7; }
  /* The review wrapper dissolves so the table and #payment become grid items;
     no DOM moves, so the gateways' own hooks are untouched. */
  .woocommerce-checkout .woocommerce-checkout-review-order { display: contents; }
  .woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; float: none; width: auto; }
  .woocommerce-checkout .woocommerce-checkout-review-order-table { grid-column: 2; grid-row: 2 / span 8; position: sticky; top: calc(var(--nav-h) + var(--s5)); align-self: start; }
  .woocommerce-checkout .sc-co-step-head--pay { grid-column: 1; grid-row: 8; }
  .woocommerce-checkout form.checkout #payment { grid-column: 1; grid-row: 9; }
  .woocommerce-checkout form.checkout > wc-order-attribution-inputs { grid-column: 1; grid-row: 1; height: 0; }
  .woocommerce-checkout form.checkout #customer_details, .woocommerce-checkout form.checkout #order_review, .woocommerce-checkout form.checkout #order_review_heading { float: none; width: auto; max-width: none; }
  .woocommerce-checkout form.checkout::after { content: none; }
}

/* 13. order review (the summary card) */
.woocommerce-checkout-review-order-table { width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); border-collapse: separate; border-spacing: 0; overflow: hidden; font-size: var(--t-sm); }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: var(--s3) var(--s4); text-align: left; border-top: 1px solid var(--line); vertical-align: middle; }
.woocommerce-checkout-review-order-table thead th, .woocommerce-checkout-review-order-table .sc-co-sum-head td { border-top: 0; font-family: var(--font-mono); font-size: var(--t-xs); font-weight: var(--w-medium); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table td:last-child { text-align: right; font-feature-settings: "tnum" 1; }
.woocommerce-checkout-review-order-table .product-name { font-weight: var(--w-semi); }
.woocommerce-checkout-review-order-table .wc-item-meta, .woocommerce-checkout-review-order-table .wc-item-meta li { font-size: var(--t-xs); color: var(--muted); list-style: none; margin: 2px 0 0; padding: 0; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: var(--t-md); font-weight: var(--w-bold); }
.woocommerce-checkout-review-order-table #shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.woocommerce-checkout-review-order-table #shipping_method li { display: flex; align-items: center; justify-content: flex-end; gap: var(--s2); }
.sc-co-coupon-row td { text-align: left !important; }

/* 14. payment and Stripe */
.woocommerce-checkout #payment { background: var(--surface); }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 0 var(--s4); margin: 0; border-bottom: 1px solid var(--line); display: grid; gap: var(--s3); list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; margin: 0; }
.woocommerce-checkout #payment .wc_payment_method > label { font-size: var(--t-sm); font-weight: var(--w-semi); display: inline-flex; align-items: center; gap: var(--s2); }
.woocommerce-checkout #payment .wc_payment_method > label img { max-height: 22px; width: auto; display: inline-block; }
.woocommerce-checkout #payment div.payment_box { background: transparent; color: var(--muted); padding: var(--s3) 0 0; margin: 0; border-radius: 0; font-size: var(--t-sm); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment fieldset { border: 0; padding: 0; margin: 0; }
.woocommerce-checkout #payment fieldset:empty, .woocommerce-checkout #payment .woocommerce-SavedPaymentMethods:empty { display: none; }
.woocommerce-checkout #payment div.form-row.place-order { padding: var(--s4) 0 0; margin: 0; }
.woocommerce-checkout #payment #place_order { float: none; width: 100%; min-height: 54px; font-size: var(--t-sm); }
/* Stripe measures field styling with this input; it must never be seen. */
.woocommerce-checkout #wc-stripe-hidden-style-input, .woocommerce-checkout input[id*="hidden-style-input"] { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; opacity: 0 !important; pointer-events: none; clip: rect(0, 0, 0, 0); }
/* Stripe's Payment Element draws its own bordered fields; no box inside a box. */
.woocommerce-checkout .wc-stripe-upe-element, .woocommerce-checkout #wc-stripe-upe-element { border: 0; padding: 0; background: transparent; }
#wc-stripe-express-checkout-element, .wc-stripe-express-checkout-element { margin: 0 0 var(--s4); width: 100%; max-width: none; }
#wc-stripe-express-checkout-element > *, .wc-stripe-express-checkout-element > * { width: 100% !important; max-width: none !important; }
.wc-stripe-express-checkout-button-separator, .woocommerce-checkout form.checkout > p:not([class]) { text-align: center; font-size: var(--t-xs); letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--muted); margin: 0 0 var(--s4); }
/* An express separator with no express buttons is an orphaned "OR". */
#wc-stripe-express-checkout-element:empty + .wc-stripe-express-checkout-button-separator,
#wc-stripe-express-checkout-element[style*="none"] + .wc-stripe-express-checkout-button-separator { display: none; }

/* 15. consent and terms (store-core styles its consent box) */
.woocommerce-terms-and-conditions-wrapper { font-size: var(--t-sm); color: var(--muted); margin-top: var(--s4); }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin: 0 0 var(--s3); }
.woocommerce-terms-and-conditions { max-height: 14rem; overflow-y: auto; padding: var(--s4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--raised); }
.woocommerce-terms-and-conditions-checkbox-text { color: var(--fg); }

/* 16. order received */
.woocommerce-order { display: grid; gap: var(--s5); }
.woocommerce-order p.woocommerce-thankyou-order-received { font-family: var(--font-display); font-size: var(--t-xl); font-weight: var(--w-bold); color: var(--fg); margin: 0; }
.woocommerce ul.order_details { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s4) var(--s7); margin: 0; padding: var(--s5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li { float: none; margin: 0; padding: 0; border: 0; font-size: var(--t-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.woocommerce ul.order_details li strong { display: block; margin-top: 4px; font-size: var(--t-base); letter-spacing: 0; text-transform: none; color: var(--fg); }
/* The e-Transfer card (site-etransfer) reads --etx-* from here. */
.woocommerce .etx-card { --etx-surface: var(--surface); --etx-raised: var(--raised); --etx-ink: var(--fg); --etx-muted: var(--muted); --etx-line: var(--line-strong); --etx-accent: var(--accent-text); --etx-radius: var(--radius-lg); --etx-font-display: var(--font-display); max-width: none; }
/* The crypto card (site-crypto) reads --crypto-* from here. */
.woocommerce .crypto-card { --crypto-surface: var(--surface); --crypto-raised: var(--raised); --crypto-ink: var(--fg); --crypto-muted: var(--muted); --crypto-line: var(--line-strong); --crypto-accent: var(--accent-text); --crypto-radius: var(--radius-lg); --crypto-font-display: var(--font-display); --crypto-font-mono: var(--font-mono); max-width: none; }
.woocommerce table.shop_table { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--surface); font-size: var(--t-sm); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: var(--s3) var(--s4); border-top: 1px solid var(--line); text-align: left; }
.woocommerce table.shop_table thead th { border-top: 0; font-family: var(--font-mono); font-size: var(--t-xs); font-weight: var(--w-medium); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.woocommerce .woocommerce-customer-details address { padding: var(--s4) var(--s5); border: 1px solid var(--line); border-radius: var(--radius-lg); font-style: normal; background: var(--surface); }

/* 17. my account */
.woocommerce-account .woocommerce { display: grid; gap: var(--s6); }
@media (min-width: 900px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; } }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation li a { display: flex; align-items: center; min-height: var(--tap); padding: 0 var(--s4); border-radius: var(--radius); color: var(--fg); text-decoration: none; font-size: var(--t-sm); font-weight: var(--w-medium); }
.woocommerce-MyAccount-navigation li a:hover { background: var(--surface); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--surface); box-shadow: inset 2px 0 0 var(--accent-text); }
@media (max-width: 899px) {
  .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; gap: var(--s2); scrollbar-width: none; }
  .woocommerce-MyAccount-navigation li a { white-space: nowrap; border: 1px solid var(--line); border-radius: var(--radius-pill); }
  .woocommerce-MyAccount-navigation li.is-active a { box-shadow: none; border-color: var(--fg); }
}
.woocommerce-account .woocommerce-orders-table .button { min-height: 36px; font-size: var(--t-xs); }
.woocommerce-Addresses { display: grid; gap: var(--s5); }
@media (min-width: 700px) { .woocommerce-Addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.woocommerce-Addresses .col-1, .woocommerce-Addresses .col-2 { float: none; width: auto; }
.woocommerce-Address-title h2 { font-size: var(--t-md); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { max-width: 30rem; margin: 0 0 var(--s6); padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.woocommerce-account:not(.logged-in) .u-columns { display: grid; gap: var(--s6); }
/* woocommerce-layout's clearfix ::before/::after are not grid cells. */
.woocommerce-account:not(.logged-in) .u-columns::before, .woocommerce-account:not(.logged-in) .u-columns::after { content: none; }
.woocommerce form.register > p:not(.form-row), .woocommerce form.register .woocommerce-privacy-policy-text { font-size: var(--t-xs); line-height: 1.6; color: var(--muted); margin: 0 0 var(--s3); }
@media (min-width: 900px) { .woocommerce-account:not(.logged-in) .u-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.woocommerce-account .u-column1, .woocommerce-account .u-column2 { float: none !important; width: auto !important; }
.woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; min-height: var(--tap); margin-right: var(--s4); }
.woocommerce-LostPassword { font-size: var(--t-sm); margin-top: var(--s3); }

/* 18. responsive and small screens */
@media (max-width: 980px) {
  .woocommerce-checkout-review-order-table { margin-block: var(--s5); }
  .woocommerce-checkout #order_review_heading { margin-top: var(--s6); }
}
@media (max-width: 767px) {
  /* Under 16px iOS Safari zooms on focus. */
  .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
  .woocommerce .quantity .qty, .select2-container .select2-selection--single, .woocommerce-checkout .input-text, .woocommerce-checkout select { font-size: max(16px, var(--t-base)) !important; }
  .cartx-card { grid-template-columns: 72px minmax(0, 1fr); padding: var(--s3); }
  .cartx-thumb { width: 72px; height: 72px; }
  .shop-tools { width: 100%; justify-content: space-between; margin-left: 0; }
}
