/* Grip-X workshop shop. See design.md. WooCommerce owns prices, stock and checkout. */
:root { --gx-shop-media: var(--color-bg-soft); }
.gx-shop-page { --gx-shop-error: #ffb4a7; }
.gx-shop-page .gx-template { padding-block: 2rem var(--gx-space-section); }
.gx-shop-page .gx-content-wrap, .gx-shop-content { width: min(var(--container-width), 100% - var(--gx-gutter) * 2); min-width: 0; }
.gx-shop-page .gx-entry-content { color: var(--color-text); }
.gx-shop-page .gx-page-headline { margin: 1.5rem 0 2rem; }
.gx-shop-page .gx-page-headline h1 { font-size: var(--gx-text-heading); }
.gx-shop-page :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { font-family: var(--gx-font-body); font-size: var(--gx-text-body); line-height: 1.6; }
.gx-shop-page :is(h1,h2,h3) { color: var(--color-text); text-transform: none; }
.gx-shop-page :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) [hidden] { display: none !important; }

/* The header counter is a quiet, always reachable shop control. */
.gx-header .gx-cart-link { flex-shrink: 0; gap: .65rem; min-height: 44px; padding: .6rem .85rem; background: var(--color-bg-soft); color: var(--color-text); font-size: var(--gx-text-small); }
.gx-cart-link .gx-icon { width: 1.3rem; height: 1.3rem; }
.gx-cart-link__count { display: inline-grid; place-items: center; min-width: 1.5rem; height: 1.5rem; padding-inline: .25rem; background: var(--color-primary); color: var(--gx-ink); border-radius: 50%; font-variant-numeric: tabular-nums; }
@media (min-width: 992px) { .gx-header__inner > .gx-cart-link { order: 3; } }
@media (max-width: 1399px) { .gx-cart-link__label { display: none; } .gx-header__inner { gap: .75rem; } }
@media (max-width: 991px) { .gx-header .gx-cart-link { margin-left: auto; } .gx-header__inner .gx-branding { min-width: 0; } }

/* Shop opening: the catalog is the focus, advice is one tap away. */
.woocommerce .woocommerce-breadcrumb { color: var(--color-muted); margin: 0 0 2rem; font-size: var(--gx-text-small); line-height: 1.6; }
.woocommerce .woocommerce-breadcrumb a { color: var(--color-muted); }
.gx-shop-intro { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3rem; align-items: end; margin: 1.5rem 0 3rem; }
.gx-shop-intro h1 { max-width: 17ch; margin: 0 0 1.25rem; font-size: var(--gx-text-display); line-height: .98; letter-spacing: -.05em; }
.gx-shop-intro > div > p { max-width: 43ch; font-size: var(--gx-text-lead); margin: 0; line-height: 1.45; }
.gx-shop-advice { display: flex; gap: 1rem; align-items: center; padding-bottom: .4rem; }
.gx-shop-advice > .gx-icon { width: 3.5rem; height: 3.5rem; color: var(--color-primary); }
.gx-shop-advice p { color: var(--color-muted); margin: 0; font-size: var(--gx-text-small); }
.gx-shop-advice a { display: inline-flex; align-items: center; gap: .7rem; min-height: 44px; color: var(--color-text); text-decoration: underline; }
.gx-shop-discovery { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-bottom: 2rem; padding-block: 1rem; border-block: 1px solid var(--color-border); }
.gx-shop-categories { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.gx-shop-categories a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-muted); text-decoration: none; }
.gx-shop-categories a[aria-current], .gx-shop-categories a:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: .5em; }
.gx-shop-search { display: flex; flex: 0 1 330px; min-width: 200px; border: 1px solid var(--color-border); background: var(--color-bg-soft); }
.gx-shop-search input { width: 100%; min-width: 0; color: var(--color-text); background: transparent; border: 0; border-radius: 0; padding: .7rem .9rem; font: inherit; }
.gx-shop-search input::placeholder { color: var(--color-muted); }
.gx-shop-search button { display: grid; place-items: center; flex: 0 0 48px; color: var(--color-text); background: transparent; border: 0; cursor: pointer; }
.gx-shop-search button:hover { color: var(--color-primary); }
.woocommerce .woocommerce-result-count { margin-block: .75rem 1.5rem; color: var(--color-muted); font-size: var(--gx-text-small); }
.woocommerce .woocommerce-ordering { margin-bottom: 1.5rem; }
.woocommerce .term-description { max-width: 65ch; margin-bottom: 2rem; }

/* Full-width square images: no pale frame, inset or colour-altering blend. */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3rem 1.75rem; padding: 0; margin: 0 0 3rem; clear: both; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none; width: auto; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { width: 100%; flex: 1; text-decoration: none; }
.woocommerce ul.products.columns-1 { grid-template-columns: 1fr; }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.gx-product-stage { position: relative; overflow: hidden; background: var(--gx-shop-media); margin-bottom: 1.25rem; }
.woocommerce ul.products li.product .gx-product-stage img { width: 100%; aspect-ratio: 1; object-fit: contain; padding: 0; margin: 0; border-radius: 0; background: transparent; mix-blend-mode: normal; }
.woocommerce ul.products li.product a img { object-fit: contain; }
.woocommerce .gx-product-category { font-family: var(--gx-font-body); color: var(--color-muted); font-size: var(--gx-text-small); font-weight: 400; letter-spacing: 0; margin: 0 0 .5rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--gx-font-body); font-size: var(--gx-text-lead); font-weight: 600; letter-spacing: -.02em; line-height: 1.2; color: var(--color-text); padding: 0; margin-bottom: 1rem; }
.woocommerce ul.products li.product .price { font-size: 1.35rem; font-weight: 600; color: var(--color-text); margin: 1.25rem 0 0; }
.woocommerce .price del { color: var(--color-muted); font-weight: 400; }
.woocommerce .price ins { text-decoration: none; }
.woocommerce .price small { font-size: var(--gx-text-small); font-weight: 400; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale { top: .75rem; left: .75rem; right: auto; margin: 0; padding: .3rem .7rem; min-height: 0; min-width: 0; border-radius: 0; line-height: 1.5; background: var(--color-primary); color: var(--gx-ink); font-weight: 600; z-index: 2; }
.woocommerce .gx-product-specs { margin: 1rem 0; font-size: var(--gx-text-small); }
.gx-product-specs > div { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1fr); gap: 1rem; padding-block: .45rem; }
.gx-product-specs dt { color: var(--color-muted); font-weight: 400; }
.gx-product-specs dd { margin: 0; color: var(--color-text); overflow-wrap: anywhere; }
.gx-product-specs--compact > div { padding-block: .2rem; }
.woocommerce ul.products li.product .button { margin-top: 1.25rem; }
.woocommerce .star-rating { color: var(--color-primary); }
.woocommerce .added_to_cart { padding: .7rem 0; color: var(--color-primary); }

/* A product reads like an equipment sheet: image, specification, purchase. */
.woocommerce div.product { position: relative; }
.woocommerce div.product div.images { float: left; width: 54%; margin-bottom: 3rem; }
.woocommerce div.product div.summary { float: right; width: 41%; margin-bottom: 3rem; }
.woocommerce div.product div.images .woocommerce-product-gallery__image { background: var(--gx-shop-media); }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { aspect-ratio: 1; object-fit: contain; border-radius: 0; }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: .75rem; margin-top: .75rem; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { float: none; width: 22%; background: var(--gx-shop-media); }
.woocommerce div.product .gx-product-overview { display: flow-root; position: relative; }
@media (min-width: 992px) {
  .woocommerce div.product .gx-product-overview {
    display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr);
    column-gap: clamp(2rem,5vw,5rem); align-items: start; margin-bottom: 3rem;
    --gx-gallery-top: 2rem;
  }
  .admin-bar.woocommerce div.product .gx-product-overview { --gx-gallery-top: calc(2rem + 32px); }
  .woocommerce div.product .gx-product-overview > :is(div.images,div.summary),
  .woocommerce #content div.product .gx-product-overview > :is(div.images,div.summary) {
    float: none; width: 100%; min-width: 0; margin-bottom: 0;
  }
  .woocommerce div.product .gx-product-overview > div.images {
    scroll-margin-top: var(--gx-gallery-top); align-self: start;
  }
  .woocommerce div.product .gx-product-overview > div.images.gx-gallery-fits { position: sticky; top: var(--gx-gallery-top); }
  .woocommerce div.product .gx-product-overview .woocommerce-product-gallery__image img:not(.zoomImg) {
    max-height: calc(100svh - var(--gx-gallery-top) - 8rem);
  }
  .woocommerce div.product .gx-product-overview .flex-control-thumbs { flex-wrap: wrap; }
  .woocommerce div.product .gx-product-overview div.images .flex-control-thumbs li { width: 64px; }
  .woocommerce div.product .gx-product-overview .flex-control-thumbs img { width: 64px; height: 64px; object-fit: contain; }
}
.woocommerce div.product .product_title { font-size: clamp(2.4rem,3.7vw,4rem); line-height: 1.02; letter-spacing: -.04em; margin: 0 0 1.5rem; }
.woocommerce div.product :is(p.price,span.price) { color: var(--color-text); font-size: 2rem; font-weight: 600; }
.woocommerce-product-details__short-description { color: var(--color-muted); margin-block: 1.5rem; }
.woocommerce div.product .gx-product-specs--detail { padding: .75rem 1.25rem; background: var(--color-bg-soft); margin-bottom: 1.75rem; }
.woocommerce div.product form.cart { margin-bottom: 1.5rem; }
.woocommerce div.product form.cart .variations { margin: 0 0 1rem; border: 0; }
.woocommerce div.product form.cart .variations :is(th,td) { padding: .4rem 0; background: transparent; border: 0; text-align: left; }
.woocommerce div.product form.cart .variations th { padding-right: 1rem; }
.woocommerce div.product form.cart .variations select { width: 100%; }
.woocommerce div.product form.cart .button { min-height: 52px; }
.woocommerce .quantity .qty { width: 5rem; min-height: 52px; padding: .65rem; background: var(--color-bg-soft); color: var(--color-text); border: 1px solid var(--color-border); border-radius: 0; font: inherit; }
.woocommerce div.product .stock { color: #b0d0b8; }
.woocommerce div.product .out-of-stock { color: var(--gx-shop-error, #ffb4a7); }
.woocommerce .product_meta { color: var(--color-muted); font-size: var(--gx-text-small); display: flex; flex-direction: column; gap: .4rem; }
.gx-product-help { display: flex; align-items: start; gap: 1rem; padding-top: 1.5rem; margin-top: 1.5rem; border-top: 1px solid var(--color-border); }
.gx-product-help > .gx-icon { color: var(--color-primary); margin-top: .1rem; }
.woocommerce .gx-product-help h2 { font: 600 var(--gx-text-body)/1.3 var(--gx-font-body); letter-spacing: 0; margin: 0 0 .5rem; }
.gx-product-help p { color: var(--color-muted); font-size: var(--gx-text-small); margin: 0 0 .5rem; }
.gx-product-help a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-text); }
.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 1.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 2rem; display: flex; flex-wrap: wrap; gap: 1rem clamp(1.5rem,3vw,3rem); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--color-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--color-muted); padding: .8rem 0; font-weight: 500; min-height: 44px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border-bottom: 2px solid var(--color-primary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-text); }
.woocommerce div.product .woocommerce-tabs .panel { padding: 0; max-width: 65rem; background: transparent; }
.woocommerce div.product .woocommerce-tabs .panel h2, .woocommerce .related > h2, .woocommerce .upsells > h2 { font-size: clamp(2rem,3vw,3rem); margin: 0 0 1.5rem; }
.woocommerce .related, .woocommerce .upsells { clear: both; padding-top: 3rem; }
.woocommerce table.shop_attributes { border-color: var(--color-border); }
.woocommerce table.shop_attributes :is(th,td) { border-color: var(--color-border); padding: .75rem 1rem; text-align: left; font-style: normal; }
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: 0; border-radius: 0; background: var(--color-bg-soft); }
.woocommerce #reviews #comments ol.commentlist li .meta { color: var(--color-muted); }

/* Buttons, inputs and messages shared by classic pages and WooCommerce Blocks. */
.woocommerce #respond input#submit,
.woocommerce :is(a.button,button.button,input.button),
.woocommerce :is(a.button.alt,button.button.alt,input.button.alt),
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-button:not(.is-link) {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .8rem 1.4rem; background: var(--color-primary); color: var(--gx-ink); border: 0; border-radius: var(--gx-radius-control); font: 600 var(--gx-text-body)/1.4 var(--gx-font-body); text-decoration: none; text-align: center; white-space: normal; transition: background-color 180ms ease;
}
.woocommerce #respond input#submit:hover,
.woocommerce :is(a.button,button.button,input.button):hover,
.woocommerce :is(a.button.alt,button.button.alt,input.button.alt):hover,
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-button:not(.is-link):hover { background: var(--gx-accent-hover); color: var(--gx-ink); }
.woocommerce :is(button.button:disabled,button.button:disabled[disabled],button.button.alt.disabled) { opacity: .5; color: var(--gx-ink); background: var(--color-primary); cursor: not-allowed; }
.woocommerce :is(input.input-text,textarea,select), .woocommerce form .form-row :is(input.input-text,textarea,select), .woocommerce-page .woocommerce-ordering select { min-height: 48px; max-width: 100%; padding: .75rem; font: inherit; border: 1px solid var(--color-border); border-radius: 0; background: var(--color-bg-soft); color: var(--color-text); color-scheme: dark; }
.woocommerce :is(input,textarea)::placeholder { color: var(--color-muted); opacity: 1; }
.woocommerce :is(input[type=checkbox],input[type=radio]) { accent-color: var(--color-primary); }
.woocommerce form .form-row label { color: var(--color-text); }
.woocommerce .required { color: var(--color-primary); }
.gx-shop-page :is(a,button,input,textarea,select):focus-visible, .gx-cart-link:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }
.woocommerce-error,.woocommerce-info,.woocommerce-message { background: var(--color-bg-soft); color: var(--color-text); border-top-color: var(--color-primary); border-radius: 0; line-height: 1.6; }
.woocommerce-info::before,.woocommerce-message::before { color: var(--color-primary); }
.woocommerce-error { border-top-color: var(--gx-shop-error, #ffb4a7); }
.woocommerce-error::before { color: var(--gx-shop-error, #ffb4a7); }
.woocommerce form .form-row.woocommerce-invalid :is(input.input-text,select) { border-color: var(--gx-shop-error, #ffb4a7); }

/* Cart and checkout share the same clear three-step orientation. */
.gx-commerce-steps { margin-bottom: 3rem; }
.gx-commerce-steps ol { display: flex; flex-wrap: wrap; gap: 1rem 3rem; list-style: none; margin: 0; padding: 0; }
.gx-commerce-steps li { display: flex; align-items: center; gap: .75rem; color: var(--color-muted); font-size: var(--gx-text-small); }
.gx-commerce-steps li[aria-current] { color: var(--color-text); }
.gx-commerce-steps__number { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--color-border); border-radius: 50%; font-variant-numeric: tabular-nums; }
.gx-commerce-steps [aria-current] .gx-commerce-steps__number { color: var(--gx-ink); background: var(--color-primary); border-color: var(--color-primary); }
.gx-shop-page .gx-entry-content .gx-commerce-steps a { color: var(--color-text); }
.woocommerce table.shop_table { width: 100%; background: transparent; border: 0; border-radius: 0; border-collapse: collapse; }
.woocommerce table.shop_table :is(th,td) { padding: 1rem .75rem; border: 0; border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.woocommerce table.shop_table th { background: transparent; font-weight: 500; font-size: var(--gx-text-small); }
.woocommerce table.shop_table thead th { color: var(--color-muted); }
.woocommerce-cart table.cart img { width: 80px; max-width: 80px; background: var(--gx-shop-media); border-radius: 0; }
.woocommerce-cart table.cart .product-name a { color: var(--color-text); font-weight: 600; text-decoration: none; }
.woocommerce-cart table.cart td.actions { padding: 1.5rem 0; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 160px; }
.woocommerce a.remove { color: var(--color-muted) !important; width: 44px; height: 44px; display: inline-grid; place-items: center; font-size: 1.5rem; }
.woocommerce a.remove:hover { background: var(--color-card); color: var(--color-text) !important; }
.woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; padding: clamp(1.25rem,3vw,2rem); background: var(--color-bg-soft); border: 0; }
.woocommerce .cart_totals h2 { margin: 0 0 1.5rem; font-size: 2rem; }
.woocommerce .cart_totals .order-total { font-size: 1.3rem; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 1.5rem 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; margin: 0; font-size: var(--gx-text-body); }
.woocommerce .cart-collaterals .cross-sells { width: 100%; float: none; }
.gx-shop-continue { clear: both; margin-block: 2rem; }
.gx-shop-continue a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; color: var(--color-text); }
.gx-empty-cart-motif { color: var(--color-primary); margin: 2rem 0; }
.gx-empty-cart-motif .gx-icon { width: 5rem; height: 5rem; }
.woocommerce form :is(.form-row-first,.form-row-last) { min-width: 0; }
.woocommerce form.checkout :is(h3,#order_review_heading) { font-size: 2rem; margin: 0 0 1.5rem; }
.woocommerce form .form-row { padding: 0; margin-bottom: 1.25rem; }
.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register { background: var(--color-bg-soft); border-color: var(--color-border); border-radius: 0; }
.woocommerce-checkout #order_review { padding: clamp(1.25rem,3vw,2rem); background: var(--color-bg-soft); }
.woocommerce-checkout-review-order-table .product-name { width: 65%; overflow-wrap: anywhere; }
.woocommerce #payment, .woocommerce-checkout #payment, .woocommerce-cart #payment { background: transparent; border: 0; border-radius: 0; }
.woocommerce #payment ul.payment_methods { padding: 1.5rem 0; border-bottom-color: var(--color-border); }
.woocommerce #payment div.payment_box { background: var(--color-card); color: var(--color-text); border-radius: 0; }
.woocommerce #payment div.payment_box::before { border-bottom-color: var(--color-card); }
.woocommerce #payment div.form-row { padding: 1.5rem 0 0; }
.woocommerce #payment #place_order { float: none; width: 100%; min-height: 52px; }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 1rem; }
.woocommerce .woocommerce-terms-and-conditions { color: var(--color-text); background: var(--color-card); }
.woocommerce .woocommerce-privacy-policy-text { color: var(--color-muted); font-size: var(--gx-text-small); }

/* SelectWoo dropdowns are attached to body, outside the form. */
.gx-shop-page .select2-container--default .select2-selection--single, .gx-shop-page .select2-dropdown { background: var(--color-bg-soft); border-color: var(--color-border); color: var(--color-text); border-radius: 0; }
.gx-shop-page .select2-container--default .select2-selection--single { min-height: 48px; }
.gx-shop-page .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--color-text); padding: .55rem .75rem; }
.gx-shop-page .select2-container--default .select2-selection--single .select2-selection__arrow { top: 10px; }
.gx-shop-page .select2-container--default .select2-selection__placeholder { color: var(--color-muted); }
.gx-shop-page .select2-search__field { background: var(--color-bg); color: var(--color-text); }
.gx-shop-page .select2-container--default .select2-results__option[aria-selected=true] { background: var(--color-card); }
.gx-shop-page .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--color-primary); color: var(--gx-ink); }

/* Blocks: preserve Store API, validation, native layout and extensibility. */
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) {
  color: var(--color-text); --wc-form-color-text: var(--color-text); --wc-form-color-background: var(--color-bg-soft); --wc-form-border-color: var(--color-border); --wc-form-color-secondary: var(--color-muted); --wc-form-color-primary: var(--color-primary); --wc-separator-color: var(--color-border);
}
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-sidebar { background: var(--color-bg-soft); padding: clamp(1.25rem,3vw,2rem); border: 0; border-radius: 0; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) :is(.wc-block-components-totals-wrapper,.wc-block-cart-items,.wc-block-cart-items td,.wc-block-cart-items th,.wc-block-components-order-summary-item,.wc-block-components-checkout-step,.wc-block-components-radio-control__option) { border-color: var(--color-border); }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-product-name { color: var(--color-text); font-weight: 600; text-decoration: none; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-product-image img { background: var(--gx-shop-media); border-radius: 0; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-text-input input,
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-blocks-components-select .wc-blocks-components-select__select,
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-textarea,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type],
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input[type]:focus-within { background: var(--color-bg-soft); color: var(--color-text); border-color: var(--color-border); border-radius: 0; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-text-input label,
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-blocks-components-select label,
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-product-metadata,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input label { color: var(--color-muted); }
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input.has-error label { color: var(--gx-shop-error); }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) :is(.wc-block-components-radio-control__option,.wc-block-components-radio-control-accordion-content,.wc-block-components-quantity-selector) { background: var(--color-bg-soft); color: var(--color-text); }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-quantity-selector { border-color: var(--color-border); border-radius: 0; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-quantity-selector input { background: transparent; color: var(--color-text); }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-quantity-selector button { color: var(--color-text); }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-product-badge { border-color: var(--color-primary); color: var(--color-primary); border-radius: 0; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-checkout-step__description { color: var(--color-muted); }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-notice-banner { background: var(--color-card); color: var(--color-text); }
.gx-shop-page .wc-block-components-totals-coupon__button { color: var(--color-text); }
.gx-shop-page .wc-block-cart__submit-container { background: var(--color-bg-soft); }
.gx-shop-page .wc-block-components-radio-control__input { accent-color: var(--color-primary); }
.gx-shop-page .wc-block-components-radio-control__input:checked::before { background: var(--color-primary); }
.gx-shop-page .wc-block-checkout__terms { color: var(--color-muted); }
.gx-shop-page .wc-block-components-title { font-family: var(--gx-font-display); }

/* Checkout selections and Germanized's separately styled order summary.
   Specificity also covers Germanized's late inline stylesheet without changing its settings. */
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar {
  align-self: flex-start;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-checkout__shipping-method-container {
  background: var(--color-bg-soft); border-radius: 0; padding: .375rem; gap: .375rem;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-checkout__shipping-method-option {
  min-height: 56px; padding: .75rem 1rem; border: 2px solid transparent; border-radius: 0;
  color: var(--color-text); background: transparent;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-checkout__shipping-method-option:hover {
  background: var(--color-card);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-checkout__shipping-method-option--selected {
  background: var(--color-card); color: var(--color-primary); border-color: var(--color-primary);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-checkout__shipping-method-option:focus-visible {
  outline: 3px solid var(--color-primary); outline-offset: 3px;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-radio-control__input {
  background: var(--color-bg); border-color: var(--color-muted);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked {
  border-color: var(--color-primary);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked::before {
  background: var(--color-primary);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:focus-visible {
  outline: 3px solid var(--color-primary); outline-offset: 3px;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-blocks-components-select__expand {
  fill: var(--color-muted);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked :is(.wc-block-components-radio-control-accordion-option--checked-option-highlighted,.wc-block-components-radio-control__option--checked-option-highlighted) {
  border-radius: 0; box-shadow: inset 0 0 0 1.5px var(--color-primary);
}
.gx-shop-page .wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
  border: 0; border-radius: 0; color: var(--color-text);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
  font: 600 1.75rem/1.15 var(--gx-font-display); letter-spacing: -.035em; margin: 0;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-sidebar .wc-block-components-order-summary {
  background: var(--color-card); color: var(--color-text); padding: 1rem; border: 0; border-radius: 0;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-name {
  font: 600 var(--gx-text-body)/1.35 var(--gx-font-body); letter-spacing: 0; color: var(--color-text); margin: 0 0 .5rem;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description {
  min-width: 0; overflow-wrap: anywhere;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__total-price {
  white-space: nowrap; color: var(--color-text);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__quantity,
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__quantity span {
  background: var(--color-primary); color: var(--gx-ink);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img {
  border-radius: 0; background: var(--gx-shop-media);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item {
  color: var(--color-text); font-size: 1.5rem; font-weight: 600;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__description {
  font-size: var(--gx-text-small); font-weight: 400; color: var(--color-muted);
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-gzd-checkout-submit {
  border-top: 1px solid var(--color-border); padding-top: 1rem;
}
.gx-shop-page .wp-block-woocommerce-checkout .wc-gzd-checkout-submit .wc-block-checkout__actions {
  padding-block: 1.5rem 0;
}
/* Germanized applies the same pale highlight to the classic checkout table. */
.gx-shop-page.woocommerce-checkout .woocommerce table.woocommerce-checkout-review-order-table {
  background: var(--color-card); color: var(--color-text);
}
@media (max-width: 599px) {
  .gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
    display: grid; grid-template-columns: 48px minmax(0,1fr); gap: .75rem 1rem;
  }
  .gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image {
    grid-column: 1; grid-row: 1 / span 2;
  }
  .gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description {
    grid-column: 2; padding: 0;
  }
  .gx-shop-page .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__total-price {
    grid-column: 2; padding: 0; text-align: left;
  }
}

/* Confirmation, account and pagination remain part of the same shop. */
.woocommerce nav.woocommerce-pagination ul,.woocommerce nav.woocommerce-pagination ul li { border-color: var(--color-border); }
.woocommerce nav.woocommerce-pagination ul li :is(a,span) { padding: .8rem 1rem; min-height: 44px; }
.woocommerce nav.woocommerce-pagination ul li :is(span.current,a:hover,a:focus) { background: var(--color-primary); color: var(--gx-ink); }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 2rem; background: var(--color-bg-soft); }
.woocommerce-MyAccount-navigation li a { display: block; padding: .85rem 1rem; color: var(--color-text); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--color-primary); }
.woocommerce .woocommerce-customer-details address { border: 0; border-radius: 0; background: var(--color-bg-soft); padding: 1.5rem; }
.woocommerce ul.order_details { padding: 0; }
.woocommerce ul.order_details li { border-color: var(--color-border); margin-bottom: 1rem; }
.woocommerce-order-received .woocommerce-order-overview { padding: 1.5rem; background: var(--color-bg-soft); }

@media (min-width: 1100px) {
  .woocommerce-cart .gx-entry-content > .woocommerce:has(> .woocommerce-cart-form) { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,1fr); gap: 2rem; align-items: start; }
  .woocommerce-cart .gx-entry-content > .woocommerce > :is(.woocommerce-notices-wrapper,.gx-shop-continue) { grid-column: 1/-1; }
  .woocommerce-cart .cart-collaterals { width: 100%; min-width: 0; }
  .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 0 4rem; align-items: start; }
  .woocommerce form.checkout #customer_details { grid-column: 1; grid-row: 1/span 4; }
  .woocommerce form.checkout #customer_details > :is(.col-1,.col-2) { float: none; width: 100%; }
  .woocommerce form.checkout #order_review_heading, .woocommerce form.checkout #order_review { grid-column: 2; }
}
@media (max-width: 1099px) {
  .gx-shop-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .gx-shop-advice { justify-self: start; }
  .gx-shop-intro h1 { font-size: clamp(3rem,7vw,5rem); }
  .gx-shop-discovery { align-items: stretch; flex-direction: column; gap: 1rem; }
  .gx-shop-search { flex-basis: auto; max-width: 100%; }
  .woocommerce ul.products, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .woocommerce div.product div.images { width: 49%; }
  .woocommerce div.product div.summary { width: 46%; }
  .woocommerce-cart .cart-collaterals { margin-top: 2rem; }
  .woocommerce form.checkout #customer_details > :is(.col-1,.col-2) { float: none; width: 100%; }
  .woocommerce-checkout #order_review_heading { margin-top: 2rem; }
}
@media (max-width: 767px) {
  .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
  .woocommerce div.product div.images { margin-bottom: 2rem; }
  .woocommerce div.product .product_title { font-size: clamp(2.25rem,8vw,3rem); }
  .woocommerce-cart table.cart .product-thumbnail { display: block; text-align: left !important; }
  .woocommerce-cart table.cart .product-thumbnail::before { display: none; }
  .woocommerce table.shop_table_responsive tr { margin-bottom: 1.5rem; background: var(--color-bg-soft); }
  .woocommerce table.shop_table_responsive tr:nth-child(2n) td { background: transparent; }
  .woocommerce-cart table.cart td.actions { padding: 1rem; }
  .woocommerce ul.order_details li { float: none; border: 0; }
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none; width: 100%; }
}
@media (max-width: 599px) {
  .gx-shop-page .gx-template { padding-top: 1.25rem; }
  .gx-shop-intro { margin-top: .5rem; }
  .gx-shop-intro h1 { font-size: 3rem; }
  .gx-shop-intro > div > p { font-size: 1.25rem; }
  .gx-shop-categories { gap: .25rem 1.2rem; }
  .woocommerce ul.products, .woocommerce ul.products.columns-2, .woocommerce ul.products.columns-4 { grid-template-columns: 1fr; gap: 2.75rem; }
  .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; }
  .woocommerce .woocommerce-ordering select { width: 100%; }
  .gx-commerce-steps { margin-bottom: 2rem; }
  .gx-commerce-steps ol { gap: .75rem; justify-content: space-between; }
  .gx-commerce-steps li { flex-direction: column; gap: .4rem; font-size: .875rem; }
  .woocommerce div.product form.cart .variations :is(th,td) { display: block; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { width: 48%; }
  .woocommerce-cart table.cart td.actions .coupon .button { width: 48%; font-size: .9rem; }
  .woocommerce-cart table.cart .product-name { overflow-wrap: anywhere; }
  .woocommerce .gx-product-specs { font-size: .9375rem; }
}
@media (prefers-reduced-motion: reduce) { .woocommerce :is(a,button) { transition: none; } }

/* Native controls stay legible in the dark palette, including OS dropdowns. */
.gx-shop-page { color-scheme: dark; }
.gx-shop-page .gx-page::before { display: none; }
.woocommerce .price, .woocommerce-Price-amount, .wc-block-components-formatted-money-amount { font-variant-numeric: tabular-nums; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger.gx-gallery-trigger { display: grid; place-items: center; width: 44px; height: 44px; background: var(--color-bg-soft); color: var(--color-text); text-indent: 0; }
.woocommerce div.product div.images .gx-gallery-trigger::before { position: static; display: block; width: 22px; height: 22px; border: 0; border-radius: 0; background: currentColor; mask: url('../icons/magnifying-glass.svg') center / contain no-repeat; }
.woocommerce div.product div.images .gx-gallery-trigger::after { display: none; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-quantity-selector { min-height: 44px; }
:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) .wc-block-components-quantity-selector button { min-width: 44px; }
.gx-shop-page .wc-block-cart .wc-block-cart__totals-title { font: 600 1.6rem/1.2 var(--gx-font-display); text-transform: none; padding-top: 0; }
.gx-shop-page .wc-block-components-order-summary { border-color: var(--color-border); border-radius: 0; }

.woocommerce .gx-product-unavailable { margin: .75rem 0 0; color: var(--color-muted); font-size: var(--gx-text-small); }
@media (max-width: 599px) {
  .gx-shop-page .wc-block-cart table.wc-block-cart-items { display: block; width: 100%; }
  .gx-shop-page .wc-block-cart table.wc-block-cart-items tbody { display: block; }
  .gx-shop-page .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 1rem; padding-block: 1.25rem; border-bottom: 1px solid var(--color-border); }
  .gx-shop-page .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row td { width: auto; min-width: 0; padding: 0; border: 0; }
  .gx-shop-page .wc-block-cart .wc-block-cart-item__image { grid-column: 1; grid-row: 1; }
  .gx-shop-page .wc-block-cart .wc-block-cart-item__product { grid-column: 2; grid-row: 1; }
  .gx-shop-page .wc-block-cart .wc-block-cart-item__total { grid-column: 2; grid-row: 2; }
  .gx-shop-page .wc-block-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper { align-items: flex-start; }
  .gx-shop-page .wc-block-cart .wc-block-components-quantity-selector { width: 132px; }
}

/* Store notices may be rendered outside the Cart/Checkout block itself. */
.gx-shop-page .wc-block-components-notice-banner:is(.is-info,.is-success,.is-error,.is-warning) { background: var(--color-card); color: var(--color-text); border-color: var(--color-border); }
.gx-shop-page .wc-block-components-notice-banner:is(.is-info,.is-success,.is-warning) > svg { background: var(--color-primary); fill: var(--gx-ink); }
.gx-shop-page .wc-block-components-notice-banner.is-error > svg { background: var(--gx-shop-error); fill: var(--gx-ink); }
.gx-shop-page .wc-block-components-notice-banner__dismiss { color: var(--color-text); min-width: 44px; min-height: 44px; }
.gx-shop-page .wc-block-components-validation-error, .woocommerce .coupon-error-notice { color: var(--gx-shop-error); }
.gx-shop-page .wc-block-components-text-input.has-error input[aria-invalid=true], .woocommerce input[aria-invalid=true] { border-color: var(--gx-shop-error); }
.woocommerce form .form-row .required { color: var(--color-primary); }
.woocommerce-cart .woocommerce table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: .5rem; max-width: 100%; }
.woocommerce-cart .woocommerce table.cart td.actions .coupon .input-text { width: 160px; margin: 0; }
.woocommerce-cart .woocommerce table.cart td.actions .coupon .coupon-error-notice { flex-basis: 100%; }
.woocommerce-cart .woocommerce table.cart td.actions > .button { margin-top: .5rem; }
@media (max-width: 599px) {
  .woocommerce-cart .woocommerce table.cart td.actions .coupon .input-text { width: 100%; }
  .woocommerce-cart .woocommerce table.cart td.actions .coupon .button { width: 100%; }
}
/* Allow enough room for German product names in the order summary. */
@media (min-width: 1100px) {
  .gx-shop-page .wc-block-components-sidebar-layout .wc-block-components-main { width: 60%; padding-right: clamp(2rem,4vw,4rem); }
  .gx-shop-page .wc-block-components-sidebar-layout .wc-block-components-sidebar { width: 40%; flex: 0 0 40%; }
}
.gx-shop-page .wc-block-components-order-summary { border: 0; }
.gx-shop-page .wc-block-components-order-summary-item__quantity { background: var(--color-primary); color: var(--gx-ink); border-color: var(--color-primary); box-shadow: none; }
.gx-shop-page .wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss { color: var(--color-text); background: transparent; }
.gx-shop-page .wc-block-components-notice-banner__dismiss svg { fill: currentColor; }
/* WooCommerce's classic layout uses #content in its coupon width rule. */
.woocommerce-cart #content #coupon_code { width: 160px; max-width: 100%; }
@media (max-width: 599px) { .woocommerce-cart #content #coupon_code { width: 100%; } }
