/* Shop styles. Loaded only on catalog, product, cart, checkout, account and wishlist pages, and only when WooCommerce is active.
   Everything reads theme.json tokens (--wp--preset--*, --wp--custom--*): no hex colours, no font names. The shop therefore follows
   whatever brand design is applied to the theme. Motion: transform and opacity only, never when prefers-reduced-motion is set. */

.fixed4u-shop { --fixed4u-shop-gap: var(--wp--custom--space--gap, 1.25rem); }
.fixed4u-shop a { text-underline-offset: 0.2em; }
.fixed4u-shop .wc-block-breadcrumbs, .fixed4u-shop .woocommerce-breadcrumb { margin-block: 1rem 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.fixed4u-shop .wc-block-breadcrumbs a, .fixed4u-shop .woocommerce-breadcrumb a { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); }
.fixed4u-shop__toolbar { align-items: center; margin-block: 1rem; }
.fixed4u-shop__toolbar select, .fixed4u-shop select.orderby { min-height: var(--wp--custom--touch, 2.75rem); padding: 0.4em 2em 0.4em 0.9em; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); background-color: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font: inherit; }
.fixed4u-shop-page > .wp-block-post-title { margin-bottom: 1.5rem; }

/* product grid cards (the product collection block's own markup) */
.fixed4u-shop__grid .wc-block-product-template { gap: var(--fixed4u-shop-gap); padding: 0; margin: 0; list-style: none; }
.fixed4u-shop__grid .wc-block-product { position: relative; display: flex; flex-direction: column; gap: 0.5rem; padding: 0; background: var(--wp--preset--color--base); border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--m); overflow: hidden; }
.fixed4u-shop__grid .wc-block-components-product-image { margin: 0; }
.fixed4u-shop__grid .wc-block-components-product-image img { display: block; width: 100%; height: auto; }
.fixed4u-shop__grid .fixed4u-pcard__title, .fixed4u-shop__grid .wp-block-post-title { margin: 0.25rem 1rem 0; font-size: var(--wp--preset--font-size--base); }
.fixed4u-shop__grid .wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.fixed4u-shop__grid .wp-block-post-title a:hover { text-decoration: underline; }
.fixed4u-shop__grid .wc-block-components-product-price { margin: 0 1rem; color: var(--wp--preset--color--contrast); font-weight: 600; }
.fixed4u-shop__grid .wc-block-components-product-price ins { text-decoration: none; }
.fixed4u-shop__grid .wc-block-components-product-price del { color: var(--wp--preset--color--muted); font-weight: 400; }
.fixed4u-shop__grid .wp-block-button { margin: auto 1rem 1rem; }
.fixed4u-shop__grid .wp-block-button__link, .fixed4u-shop__grid .wc-block-components-product-button__button { min-height: var(--wp--custom--touch, 2.75rem); width: 100%; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--wp--custom--radius--s); }
.fixed4u-pagination { margin-block: 2rem; gap: 0.25rem; }
.fixed4u-pagination a, .fixed4u-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: var(--wp--custom--touch, 2.75rem); min-height: var(--wp--custom--touch, 2.75rem); border-radius: var(--wp--custom--radius--s); color: var(--wp--preset--color--contrast); text-decoration: none; }
.fixed4u-pagination .page-numbers.current { background: var(--wp--preset--color--accent); color: var(--wp--custom--color--on-accent); }

/* product page */
.fixed4u-product__top { gap: clamp(1.5rem, 4vw, 3rem); margin-block: 1.5rem 2rem; }
.fixed4u-product__summary > * + * { margin-top: 1rem; }
.fixed4u-product .woocommerce-product-gallery img { border-radius: var(--wp--custom--radius--m); }
.fixed4u-product .quantity .qty { min-height: var(--wp--custom--touch, 2.75rem); min-width: 4.5rem; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--base); color: inherit; font: inherit; }
.fixed4u-product .single_add_to_cart_button, .fixed4u-product .wp-element-button { min-height: var(--wp--custom--touch, 2.75rem); }
.fixed4u-product table.variations select { min-height: var(--wp--custom--touch, 2.75rem); border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--base); color: inherit; font: inherit; }
.fixed4u-product .wc-block-components-product-price { color: var(--wp--preset--color--contrast); font-weight: 700; }
.fixed4u-product .wc-block-components-product-price ins { text-decoration: none; }
.fixed4u-product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.fixed4u-product .woocommerce-tabs ul.tabs a { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); padding: 0 1rem; border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); text-decoration: none; }
.fixed4u-product .woocommerce-tabs ul.tabs li.active a { background: var(--wp--preset--color--accent); color: var(--wp--custom--color--on-accent); }

/* cart, checkout, account */
.fixed4u-shop-page .wc-block-components-button, .fixed4u-shop-page .wp-element-button { min-height: var(--wp--custom--touch, 2.75rem); border-radius: var(--wp--custom--radius--s); }
.fixed4u-shop-page input[type="text"], .fixed4u-shop-page input[type="email"], .fixed4u-shop-page input[type="tel"], .fixed4u-shop-page input[type="password"], .fixed4u-shop-page select, .fixed4u-shop-page textarea { min-height: var(--wp--custom--touch, 2.75rem); border-radius: var(--wp--custom--radius--s); }
.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); padding: 0 1rem; border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--wp--preset--color--accent); color: var(--wp--custom--color--on-accent); }
@media (min-width: 48rem) { .woocommerce-account .woocommerce { display: grid; grid-template-columns: 14rem 1fr; gap: 2rem; align-items: start; } .woocommerce-MyAccount-navigation ul { flex-direction: column; } }
.woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { padding: 1.5rem; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--m); }
.woocommerce-error, .woocommerce-message, .woocommerce-info { padding: 1rem 1.25rem; margin: 0 0 1.5rem; list-style: none; border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--surface); }
.woocommerce-error { color: var(--wp--preset--color--error); }

@media (prefers-reduced-motion: reduce) { .fixed4u-shop *, .fixed4u-shop *::before, .fixed4u-shop *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }

/* ---------- product cards: badges, second image, image actions ---------- */
.fixed4u-shop .wc-block-components-product-image { position: relative; overflow: hidden; }
.fixed4u-pcard__alt { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; pointer-events: none; transition: opacity 250ms ease-out; }
@media (hover: hover) { .wc-block-product:hover .fixed4u-pcard__alt, .wc-block-product:focus-within .fixed4u-pcard__alt { opacity: 1; } }
.fixed4u-badges { position: absolute; z-index: 2; top: 0.6rem; left: 0.6rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.fixed4u-badge { padding: 0.2em 0.65em; border-radius: var(--wp--custom--radius--s); font-size: var(--wp--preset--font-size--small); font-weight: 700; line-height: 1.4; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.fixed4u-badge--sale { background: var(--wp--preset--color--error); color: var(--wp--preset--color--base); }
.fixed4u-badge--new { background: var(--wp--preset--color--accent); color: var(--wp--custom--color--on-accent); }
.fixed4u-badge--out { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); }
.fixed4u-pcard__actions { position: absolute; z-index: 3; top: 0.6rem; right: 0.6rem; display: flex; flex-direction: column; gap: 0.4rem; }
.fixed4u-act { display: inline-flex; align-items: center; justify-content: center; width: var(--wp--custom--touch, 2.75rem); height: var(--wp--custom--touch, 2.75rem); padding: 0; border: 0; border-radius: 50%; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); box-shadow: 0 1px 4px var(--wp--custom--color--line); cursor: pointer; transition: transform 200ms ease-out, opacity 200ms ease-out; }
.fixed4u-act:hover { transform: scale(1.06); }
.fixed4u-act[hidden] { display: none; }
@media (hover: hover) { .fixed4u-pcard__actions .fixed4u-qv-open { opacity: 0; transform: translateY(-4px); } .wc-block-product:hover .fixed4u-pcard__actions .fixed4u-qv-open, .fixed4u-pcard__actions .fixed4u-qv-open:focus-visible { opacity: 1; transform: none; } }
.fixed4u-shop :focus-visible, .fixed4u-qv-dialog :focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* ---------- quick view dialog ---------- */
html.fixed4u-lock { overflow: hidden; }
.fixed4u-qv-dialog { width: min(56rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; border: 0; border-radius: var(--wp--custom--radius--m); background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); box-shadow: 0 24px 60px var(--wp--custom--color--scrim, rgba(0,0,0,.3)); overflow: auto; }
.fixed4u-qv-dialog::backdrop { background: var(--wp--custom--color--scrim, rgba(0, 0, 0, 0.5)); }
.fixed4u-qv-dialog[open] { animation: fixed4u-pop 220ms ease-out; }
@keyframes fixed4u-pop { from { opacity: 0; transform: translateY(12px) scale(0.98); } to { opacity: 1; transform: none; } }
.fixed4u-qv-close { position: absolute; z-index: 5; top: 0.6rem; right: 0.6rem; display: inline-flex; align-items: center; justify-content: center; width: var(--wp--custom--touch, 2.75rem); height: var(--wp--custom--touch, 2.75rem); border: 0; border-radius: 50%; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); cursor: pointer; }
.fixed4u-qv { display: grid; gap: 0; }
@media (min-width: 48rem) { .fixed4u-qv { grid-template-columns: 1fr 1fr; } }
.fixed4u-qv__media { position: relative; display: flex; background: var(--wp--preset--color--surface); }
.fixed4u-qv__img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1 / 1; }
.fixed4u-qv__body { display: flex; flex-direction: column; gap: 0.85rem; padding: clamp(1.25rem, 3vw, 2rem); }
.fixed4u-qv__title { margin: 0; padding-right: 2.5rem; font-size: var(--wp--preset--font-size--h3); }
.fixed4u-qv__price { margin: 0; font-size: var(--wp--preset--font-size--lede); font-weight: 700; }
.fixed4u-qv__price ins { text-decoration: none; }
.fixed4u-qv__price del { color: var(--wp--preset--color--muted); font-weight: 400; }
.fixed4u-qv__desc > * { margin: 0; color: var(--wp--preset--color--muted); }
.fixed4u-attr { display: grid; gap: 0.35rem; }
.fixed4u-attr__label { font-weight: 600; }
.fixed4u-attr__select, .fixed4u-qv__qty { min-height: var(--wp--custom--touch, 2.75rem); padding: 0.4em 0.8em; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--base); color: inherit; font: inherit; }
.fixed4u-qv__buy { display: flex; gap: 0.6rem; align-items: stretch; }
.fixed4u-qv__qty { width: 5rem; }
.fixed4u-qv__add { flex: 1; min-height: var(--wp--custom--touch, 2.75rem); }
.fixed4u-qv__add[disabled] { opacity: 0.55; cursor: not-allowed; }
.fixed4u-qv__status { margin: 0; min-height: 1.5em; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.fixed4u-qv__more { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); }
.fixed4u-qv-loading, .fixed4u-qv-error { padding: 3rem 2rem; margin: 0; text-align: center; }
@media (prefers-reduced-motion: reduce) { .fixed4u-qv-dialog[open] { animation: none; } .fixed4u-pcard__alt, .fixed4u-act { transition: none; } }


/* ---------- catalog layout and filters (WooCommerce's own Product Filters block, restyled with tokens) ---------- */
.fixed4u-shop__layout { gap: clamp(1.25rem, 3vw, 2.5rem); margin-top: 1rem; align-items: flex-start; }
.fixed4u-shop__filters { position: relative; }
@media (min-width: 48rem) { .fixed4u-shop__filters .wp-block-woocommerce-product-filters { position: sticky; top: 1rem; } }
.fixed4u-shop__grid .wc-block-product-template { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.fixed4u-shop__grid .wc-block-product-template > li { width: auto; margin: 0; }
.wp-block-woocommerce-product-filters h2, .wp-block-woocommerce-product-filters h3 { font-size: var(--wp--preset--font-size--base); font-weight: 700; }
.wp-block-woocommerce-product-filters > * + * { margin-top: 1.5rem; }
.wc-block-product-filter-checkbox-list__list, .wc-block-product-filter-chips__items { margin: 0; padding: 0; list-style: none; border: 0; }
.wc-block-product-filter-checkbox-list__item { display: flex; min-height: var(--wp--custom--touch, 2.75rem); align-items: center; }
.wc-block-product-filter-checkbox-list__label { display: inline-flex; align-items: center; gap: 0.6rem; min-height: var(--wp--custom--touch, 2.75rem); cursor: pointer; }
.wc-block-product-filter-checkbox-list__input-wrapper, .wc-block-product-filter-checkbox-list__input { cursor: pointer; }
.wc-block-product-filter-checkbox-list__input { width: 1.25rem; height: 1.25rem; accent-color: var(--wp--preset--color--accent); }
.wp-block-woocommerce-product-filter-price .wc-block-product-filter-price-slider, .wp-block-woocommerce-product-filter-price { max-width: 100%; overflow: hidden; }
.wp-block-woocommerce-product-filter-price input[type="text"] { min-height: var(--wp--custom--touch, 2.75rem); width: 100%; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--base); color: inherit; }
.wc-block-product-filter-removable-chips__items, .wp-block-woocommerce-product-filter-removable-chips ul { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.wc-block-product-filter-removable-chips__item, .wc-block-product-filter-removable-chips__remove, .wp-block-woocommerce-product-filter-clear-button button { min-height: var(--wp--custom--touch, 2.75rem); border-radius: 999px; }
.wp-block-woocommerce-product-filter-clear-button .wp-block-button__link, .wp-block-woocommerce-product-filter-clear-button button { background: transparent; color: var(--wp--custom--color--link, var(--wp--preset--color--accent)); text-decoration: underline; }
/* mobile: WooCommerce turns the filters into a button + slide-in drawer (overlayMode "mobile"); style the controls */
.wc-block-product-filters__open-overlay, .wc-block-product-filters__close-overlay { min-height: var(--wp--custom--touch, 2.75rem); }
.wc-block-product-filters__overlay-dialog { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.fixed4u-shop__grid .wp-block-query-pagination, .fixed4u-shop__grid .fixed4u-pagination { margin-top: 2rem; }
.wp-block-woocommerce-product-filters fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.wc-block-product-filter-checkbox-list__input { border: 1.5px solid var(--wp--preset--color--muted); border-radius: 0.3rem; background: var(--wp--preset--color--base); }
.wc-block-product-filter-checkbox-list__input:checked { background-color: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); }
.fixed4u-shop { padding-inline: var(--wp--custom--space--gutter, 1.25rem); padding-bottom: var(--wp--custom--space--section, 3rem); }


/* ---------- single product ---------- */
.fixed4u-gallery { display: grid; gap: 0.75rem; }
.fixed4u-gallery .wp-block-woocommerce-product-gallery-large-image { position: relative; border-radius: var(--wp--custom--radius--m); overflow: hidden; }
.fixed4u-gallery img { border-radius: inherit; }
.fixed4u-gallery [class*="thumbnails"] { gap: 0.5rem; }
.fixed4u-gallery [class*="next-previous"] button, .fixed4u-gallery [class*="next-previous"] a { min-width: var(--wp--custom--touch, 2.75rem); min-height: var(--wp--custom--touch, 2.75rem); }
.fixed4u-stockleft { margin: 0 0 0.75rem; padding: 0.35em 0.8em; display: inline-block; border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.fixed4u-vat { margin: 0.25rem 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.fixed4u-shop__row { margin-top: clamp(2rem, 5vw, 3.5rem); }
.fixed4u-shop__rowtitle { margin-bottom: 1rem; font-size: var(--wp--preset--font-size--h3); }

/* swatches */
.fixed4u-swatch-source { position: absolute !important; left: 0; top: 0; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
td.value, .fixed4u-attr { position: relative; }
.fixed4u-swatches { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block: 0.35rem; }
.fixed4u-swatch { display: inline-flex; align-items: center; justify-content: center; min-width: var(--wp--custom--touch, 2.75rem); min-height: var(--wp--custom--touch, 2.75rem); padding: 0 1rem; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font: inherit; font-weight: 600; cursor: pointer; transition: border-color 150ms ease-out, background-color 150ms ease-out; }
.fixed4u-swatch:hover { border-color: var(--wp--preset--color--contrast); }
.fixed4u-swatch[aria-checked="true"] { border-color: var(--wp--preset--color--contrast); box-shadow: inset 0 0 0 1px var(--wp--preset--color--contrast); }
.fixed4u-swatch.is-dot { width: var(--wp--custom--touch, 2.75rem); padding: 0; border-radius: 50%; background: var(--swatch); position: relative; }
.fixed4u-swatch.is-dot[aria-checked="true"]::after { content: ""; position: absolute; inset: 0.25rem; border-radius: 50%; border: 2px solid var(--wp--preset--color--base); box-shadow: 0 0 0 1px var(--wp--preset--color--contrast); }
.fixed4u-swatch.is-unavailable { opacity: 0.45; cursor: not-allowed; text-decoration: line-through; }
.fixed4u-swatch.is-dot.is-unavailable { text-decoration: none; background-image: linear-gradient(135deg, transparent 46%, var(--wp--preset--color--contrast) 47%, var(--wp--preset--color--contrast) 53%, transparent 54%); }

/* sticky add-to-cart bar (phones) */
.fixed4u-sticky-atc { position: fixed; z-index: 60; left: 0; right: 0; bottom: 0; display: none; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.6rem var(--wp--custom--space--gutter, 1rem) calc(0.6rem + env(safe-area-inset-bottom)); background: var(--wp--preset--color--base); border-top: 1px solid var(--wp--custom--color--line); box-shadow: 0 -6px 18px var(--wp--custom--color--line); transform: translateY(0); }
.fixed4u-sticky-atc__info { display: flex; flex-direction: column; min-width: 0; }
.fixed4u-sticky-atc__title { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fixed4u-sticky-atc__price { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.fixed4u-sticky-atc__price ins { text-decoration: none; }
.fixed4u-sticky-atc__btn { flex: none; min-height: var(--wp--custom--touch, 2.75rem); }
@media (max-width: 47.99rem) { .fixed4u-sticky-atc:not([hidden]) { display: flex; animation: fixed4u-slide-up 220ms ease-out; } }
@keyframes fixed4u-slide-up { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .fixed4u-sticky-atc:not([hidden]) { animation: none; } .fixed4u-swatch { transition: none; } }


/* wishlist hearts and sale countdown */
.fixed4u-wish.is-on { color: var(--wp--preset--color--error); }
.fixed4u-wish.is-on .fixed4u-heart { fill: currentColor; }
.fixed4u-wish-row { display: flex; align-items: center; gap: 0.5rem; margin: 0.75rem 0 0; }
.fixed4u-wish-row .fixed4u-act { box-shadow: none; border: 1px solid var(--wp--custom--color--line); }
.fixed4u-wish-empty { padding-block: 1.5rem; color: var(--wp--preset--color--muted); }
.fixed4u-countdown { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem; margin: 0.5rem 0 0; padding: 0.4rem 0.8rem; border-radius: var(--wp--custom--radius--s); background: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--small); }
.fixed4u-countdown__label { color: var(--wp--preset--color--muted); }
.fixed4u-countdown__time { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--error); }
.fixed4u-countdown[hidden] { display: none; }


/* ---------- cart and checkout polish ---------- */
.fixed4u-header--checkout .fixed4u-header__inner { justify-content: space-between; }
.fixed4u-secure { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; font-weight: 600; color: var(--wp--preset--color--muted); }
.fixed4u-back { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); }
.fixed4u-footer--checkout { margin-top: var(--wp--custom--space--section, 3rem); padding-top: 0; }
.fixed4u-footer--checkout .fixed4u-footer__legal { margin-top: 0; }
.fixed4u-trust { display: grid; gap: 1.5rem; margin-top: clamp(2rem, 5vw, 3rem); padding: 1.5rem; border-radius: var(--wp--custom--radius--m); background: var(--wp--preset--color--surface); }
@media (min-width: 48rem) { .fixed4u-trust { grid-template-columns: 1fr auto; align-items: center; } }
.fixed4u-trust__list { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.fixed4u-trust__item { display: flex; gap: 0.75rem; align-items: flex-start; }
.fixed4u-trust__icon { display: inline-flex; flex: none; color: var(--wp--preset--color--accent); }
.fixed4u-trust__text { display: block; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.fixed4u-pay { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; color: var(--wp--preset--color--muted); }
.fixed4u-pay__item svg { display: block; width: 3.5rem; height: auto; }
.wc-block-checkout, .wc-block-cart { margin-top: 0; }
.fixed4u-shop-page .wc-block-components-checkout-place-order-button, .fixed4u-shop-page .wc-block-cart__submit-button { min-height: 3.25rem; }

/* 44px touch targets for the pieces WooCommerce renders itself */
.fixed4u-shop__grid .wp-block-post-title a { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); }
.wc-block-components-quantity-selector { min-height: var(--wp--custom--touch, 2.75rem); }
.wc-block-components-quantity-selector__button, .wc-block-components-quantity-selector__input { min-height: var(--wp--custom--touch, 2.75rem); min-width: var(--wp--custom--touch, 2.75rem); }
.wc-block-cart-item__remove-link { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); }
.wc-block-product-search__field, .wc-block-product-search__button { min-height: var(--wp--custom--touch, 2.75rem); }
.wc-block-product-search__field { padding-inline: 1em; border: 1px solid var(--wp--custom--color--line); border-radius: var(--wp--custom--radius--s); }
.wc-block-components-product-name, .wc-block-components-product-metadata { overflow-wrap: anywhere; }
.fixed4u-product .wp-block-post-terms a, .wc-block-components-product-name { display: inline-flex; align-items: center; min-height: var(--wp--custom--touch, 2.75rem); }

/* two product columns on phones */
@media (max-width: 39.99rem) {
	.fixed4u-shop__grid .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
	.fixed4u-shop__grid .wp-block-post-title, .fixed4u-shop__grid .wc-block-components-product-price { margin-inline: 0.75rem; }
	.fixed4u-shop__grid .wp-block-button { margin-inline: 0.75rem; }
	.fixed4u-pcard__actions { top: 0.4rem; right: 0.4rem; }
}

/* reserve the gallery's space so the page does not shift when its parts arrive: thumbnails (when there are any) take a fixed column on the left */
.fixed4u-gallery { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; align-items: start; }
.fixed4u-gallery:has(.wc-block-product-gallery-thumbnails) { grid-template-columns: 20% minmax(0, 1fr); }
.fixed4u-gallery .wc-block-product-gallery-thumbnails { grid-column: 1; grid-row: 1; max-height: 100%; }
.fixed4u-gallery .wp-block-woocommerce-product-gallery-large-image { grid-column: 2; grid-row: 1; aspect-ratio: 1 / 1; background: var(--wp--preset--color--surface); }
.fixed4u-gallery:not(:has(.wc-block-product-gallery-thumbnails)) .wp-block-woocommerce-product-gallery-large-image { grid-column: 1; }
.fixed4u-gallery .wp-block-woocommerce-product-gallery-large-image img { width: 100%; height: 100%; object-fit: cover; }

/* product tabs: closed panels are hidden (shop.js opens them) */
.woocommerce-tabs .woocommerce-Tabs-panel { display: none; }
.woocommerce-tabs .woocommerce-Tabs-panel.is-open { display: block; }
.woocommerce-tabs ul.tabs li.active a { text-decoration: none; }

/* the cart and checkout blocks fill in after the script runs: reserve their space so the trust area and footer do not jump */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { min-height: 70vh; }
