/* The store's own pages on a site set up through the chat. Theme presets only, so they follow the style guide. */
body{ --gs-store-radius:var(--wp--custom--gs--radius,14px); --gs-store-button:var(--wp--custom--gs--button-radius,999px); --gs-store-line:var(--wp--preset--color--accent-6,color-mix(in srgb,currentColor 18%,transparent)); }
body.woocommerce-page h1,body.woocommerce-page h2,body.woocommerce-page h3,.wc-block-cart h2,.wc-block-checkout h2{ font-family:var(--gs-font-heading,inherit); }

/* Product cards: the catalogue, search, related products and a products section on a built page. */
.wc-block-product,.wc-block-grid__product,ul.products li.product{ position:relative; display:flex; flex-direction:column; padding:0 0 18px!important; overflow:hidden; text-align:left!important; border:1px solid var(--wp--preset--color--accent-6,#ddd)!important; border-radius:var(--wp--custom--gs--radius,14px)!important; background:color-mix(in srgb,var(--wp--preset--color--base) 82%,transparent); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.wc-block-product:hover,.wc-block-grid__product:hover,ul.products li.product:hover{ transform:translateY(-4px); border-color:var(--wp--preset--color--brand-primary); box-shadow:0 18px 40px color-mix(in srgb,var(--wp--preset--color--brand-primary) 18%,transparent); }
.wc-block-product .wc-block-components-product-image,ul.products li.product a img{ margin:0 0 14px!important; border-radius:0!important; }
.wc-block-product .wc-block-components-product-image img,ul.products li.product a img{ width:100%; aspect-ratio:1; object-fit:cover; transition:transform .45s ease; }
.wc-block-product:hover .wc-block-components-product-image img,ul.products li.product:hover a img{ transform:scale(1.04); }
.wc-block-grid__product > :not(.wc-block-grid__product-link),.wc-block-grid__product-link > :not(.wc-block-grid__product-image),.wc-block-product > :not(.wc-block-components-product-image),ul.products li.product .woocommerce-loop-product__title,ul.products li.product .price,ul.products li.product .button{ margin-inline:18px!important; }
.wc-block-product .wp-block-post-title,ul.products li.product .woocommerce-loop-product__title{ padding:0!important; font-family:var(--gs-font-heading,inherit); font-size:1.1rem!important; line-height:1.3; text-align:left!important; }
.wc-block-product .wp-block-post-title a,.wc-block-grid__product-link{ color:inherit; text-decoration:none; }
.wc-block-grid__product-title{ font-family:var(--gs-font-heading,inherit); font-weight:600; text-align:left; }
.wc-block-grid__product-price{ color:var(--wp--preset--color--brand-primary)!important; font-weight:700; text-align:left; }
.wc-block-grid__product-image{ margin:0 0 14px!important; }
.wc-block-grid__product-add-to-cart{ margin-top:auto!important; text-align:left; }
.wc-block-components-product-price,.wp-block-woocommerce-product-price,ul.products li.product .price{ color:var(--wp--preset--color--brand-primary)!important; font-weight:700; text-align:left!important; }
.wc-block-product .wp-block-woocommerce-product-button{ margin-top:auto!important; text-align:left!important; }

.wc-block-product .wp-block-woocommerce-product-button,.wc-block-product .wp-block-woocommerce-product-button .wp-element-button,.wc-block-grid__product-add-to-cart .wp-block-button__link,ul.products li.product .button{ box-sizing:border-box; width:calc(100% - 36px); }
.wc-block-product .wp-block-woocommerce-product-button .wp-element-button{ width:100%; }
.wc-block-product .wp-element-button,.wc-block-grid__product-add-to-cart .wp-block-button__link,ul.products li.product .button{ padding:.7em 1em!important; font-size:.95rem!important; text-align:center; white-space:nowrap; }
.wc-block-grid__products{ gap:clamp(16px,2vw,24px); }
.wc-block-grid__product{ flex:1 1 200px!important; max-width:none!important; margin:0!important; }
.wc-block-grid__product-image img{ width:100%; aspect-ratio:1; object-fit:cover; }

/* Buttons and fields, in the cart, the checkout, a product and the account. */
.wc-block-components-button:not(.is-link),.wp-block-woocommerce-product-button .wp-element-button,.wc-block-grid__product-add-to-cart .wp-block-button__link,.wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wc-block-cart__submit-button{ border:0!important; border-radius:var(--gs-store-button)!important; background:var(--wp--preset--color--brand-primary)!important; color:var(--wp--preset--color--base)!important; font-weight:600; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.wc-block-components-button:not(.is-link):hover,.wp-block-woocommerce-product-button .wp-element-button:hover,.wc-block-grid__product-add-to-cart .wp-block-button__link:hover,.wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{ transform:translateY(-2px); box-shadow:0 10px 24px color-mix(in srgb,var(--wp--preset--color--brand-primary) 35%,transparent); }
.wc-block-components-text-input input,.wc-block-components-textarea,.wc-blocks-components-select__select,.wc-block-components-quantity-selector,.wp-block-woocommerce-add-to-cart-form .quantity .qty,.woocommerce form .input-text,.woocommerce form select{ border:1px solid var(--gs-store-line)!important; border-radius:calc(var(--gs-store-radius)*.6)!important; background:var(--wp--preset--color--base)!important; color:var(--wp--preset--color--contrast)!important; }
.wc-block-components-text-input input:focus,.woocommerce form .input-text:focus{ outline:2px solid var(--wp--preset--color--brand-primary); outline-offset:1px; }
.wc-block-components-sale-badge,.wc-block-components-product-sale-badge,span.onsale{ border:0!important; border-radius:var(--gs-store-button)!important; background:var(--wp--preset--color--brand-secondary,var(--wp--preset--color--brand-primary))!important; color:var(--wp--preset--color--base)!important; }

/* gs-store-select: the checkout's dropdowns, which the theme paints grey. */
.wc-blocks-components-select .wc-blocks-components-select__container,.wc-blocks-components-select .wc-blocks-components-select__select{ background:var(--wp--preset--color--base)!important; color:var(--wp--preset--color--contrast)!important; }
.wc-blocks-components-select .wc-blocks-components-select__label{ color:var(--wp--preset--color--contrast)!important; opacity:.7; }
body:has(.wc-block-checkout) .gs-mini-cart-btn,body:has(.wc-block-checkout) .wc-block-mini-cart{ display:none; }

/* Panels: the cart and checkout columns, order details, the account. */
.wp-block-woocommerce-cart-order-summary-block,.wc-block-components-sidebar .wc-block-components-panel,.wp-block-woocommerce-checkout-order-summary-block,.wc-block-components-checkout-step,.wc-block-order-confirmation-summary,.wc-block-order-confirmation-totals,.wc-block-order-confirmation-address-wrapper,.woocommerce-MyAccount-navigation,.woocommerce-MyAccount-content{ padding:clamp(16px,2.4vw,26px)!important; border:1px solid var(--gs-store-line); border-radius:var(--gs-store-radius); background:color-mix(in srgb,var(--wp--preset--color--base) 82%,transparent); }
.wc-block-components-checkout-step{ margin-bottom:18px!important; }
.wc-block-components-checkout-step__title,.wc-block-components-title,.wc-block-cart__totals-title{ font-family:var(--gs-font-heading,inherit)!important; color:var(--wp--preset--color--accent-1,inherit); }
.wc-block-components-totals-item__value,.wc-block-formatted-money-amount{ font-weight:600; }
.wc-block-components-notice-banner{ border-radius:calc(var(--gs-store-radius)*.6)!important; }
.woocommerce-MyAccount-navigation ul{ margin:0; padding:0; list-style:none; }
.woocommerce-MyAccount-navigation a{ display:block; padding:8px 0; color:inherit; text-decoration:none; }
.woocommerce-MyAccount-navigation .is-active a{ color:var(--wp--preset--color--brand-primary); font-weight:700; }

/* A product's own page. */
.wp-block-woocommerce-product-image-gallery img,.woocommerce-product-gallery img{ border-radius:var(--gs-store-radius); }
.woocommerce-tabs ul.tabs li.active a{ color:var(--wp--preset--color--brand-primary); }
.wp-block-woocommerce-breadcrumbs,.woocommerce-breadcrumb{ font-size:.85rem; opacity:.75; }
.wp-block-query-pagination a,.wp-block-query-pagination .current{ padding:.3em .7em; border-radius:var(--gs-store-button); }
.wp-block-query-pagination .current{ background:var(--wp--preset--color--brand-primary); color:var(--wp--preset--color--base); }

/* A products section on a built page. It stays out of sight until there's something to show. */
.gs-sec-products:not(:has(li.product)){ display:none; }
.gs-sec-products .woocommerce{ margin-top:clamp(24px,3.5vw,44px); }
.gs-sec-products ul.products{ display:grid!important; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:clamp(16px,2vw,24px); margin:0!important; padding:0!important; list-style:none; }
.gs-sec-products ul.products::before,.gs-sec-products ul.products::after{ content:none!important; }
.gs-sec-products ul.products li.product{ float:none!important; width:auto!important; margin:0!important; }
.gs-sec-products .gs-page-button{ margin-top:clamp(20px,3vw,32px); }

/* The catalogue's hero, live search and category filters. */
.gs-store-hero{ width:100vw; max-width:100vw; margin:0 calc(50% - 50vw) clamp(20px,3vw,32px); padding:clamp(40px,7vw,84px) clamp(20px,5vw,48px); background:radial-gradient(90% 130% at 100% 0,color-mix(in srgb,var(--wp--preset--color--brand-secondary,var(--wp--preset--color--brand-primary)) 45%,transparent),transparent 60%),var(--wp--preset--color--brand-primary); color:var(--wp--preset--color--base); }
.gs-store-hero-inner{ max-width:1120px; margin:0 auto; }
.gs-store-hero h1{ margin:0 0 .25em; color:inherit!important; font-family:var(--gs-font-heading,inherit); font-size:clamp(2.2rem,5vw,4rem); line-height:1.1; }
.gs-store-hero p{ margin:0 0 1.4em; max-width:60ch; opacity:.9; font-size:clamp(1rem,1.5vw,1.2rem); }
.gs-store-search{ position:relative; display:flex; gap:8px; max-width:620px; padding:7px; border-radius:var(--gs-store-button); background:var(--wp--preset--color--base); box-shadow:0 18px 40px rgba(0,0,0,.22); }
.gs-store-search input[type=search]{ flex:1; min-width:0; padding:.55em 1em; border:0!important; outline:0; background:transparent!important; color:var(--wp--preset--color--contrast)!important; font:inherit; }
.gs-store-search button{ flex:none; padding:.6em 1.5em; border:0; border-radius:var(--gs-store-button); background:var(--wp--preset--color--brand-primary); color:var(--wp--preset--color--base); font-family:var(--gs-font-body,inherit); font-weight:600; cursor:pointer; }
.gs-store-results{ position:absolute; z-index:40; top:calc(100% + 8px); left:0; right:0; overflow:hidden; border:1px solid var(--gs-store-line); border-radius:var(--gs-store-radius); background:var(--wp--preset--color--base); color:var(--wp--preset--color--contrast); box-shadow:0 22px 50px rgba(0,0,0,.25); }
.gs-store-result{ display:flex; align-items:center; gap:12px; padding:10px 14px; color:inherit; text-decoration:none; }
.gs-store-result:hover,.gs-store-result:focus-visible{ background:color-mix(in srgb,var(--wp--preset--color--brand-primary) 9%,transparent); }
.gs-store-result img{ flex:none; width:46px; height:46px; object-fit:cover; border-radius:8px; }
.gs-store-result b{ display:block; font-weight:600; line-height:1.25; }
.gs-store-result span{ color:var(--wp--preset--color--brand-primary); font-size:.9rem; font-weight:700; }
.gs-store-none{ margin:0; padding:14px; }
.gs-store-pills{ display:flex; flex-wrap:wrap; gap:8px; width:100%; max-width:none!important; margin:0 0 clamp(16px,2.4vw,26px)!important; }
.gs-store-pill{ padding:.5em 1.1em; border:1px solid var(--gs-store-line); border-radius:var(--gs-store-button); background:var(--wp--preset--color--base); color:var(--wp--preset--color--contrast)!important; font-size:.92rem; font-weight:600; text-decoration:none!important; transition:transform .2s ease,border-color .2s ease; }
.gs-store-pill span{ opacity:.6; font-weight:500; }
.gs-store-pill:hover{ transform:translateY(-2px); border-color:var(--wp--preset--color--brand-primary); }
.gs-store-pill.is-now{ border-color:var(--wp--preset--color--brand-primary); background:var(--wp--preset--color--brand-primary); color:var(--wp--preset--color--base)!important; }
.gs-store-pill.is-now span{ opacity:.8; }

/* A product's own page: the price stands out, the story reads like a page, and no second title. */
body.single-product .wp-block-post-title{ font-size:clamp(1.9rem,3.6vw,3rem)!important; line-height:1.15; }
body.single-product .wp-block-woocommerce-product-price,body.single-product .wc-block-components-product-price{ font-size:clamp(1.3rem,2vw,1.7rem)!important; }
body.single-product .wp-block-post-excerpt{ font-size:clamp(1.02rem,1.3vw,1.18rem); line-height:1.6; }
.woocommerce-Tabs-panel > h2:first-child,.wp-block-woocommerce-product-details .woocommerce-Tabs-panel--description > h2:first-child{ display:none; }
.woocommerce-Tabs-panel--description{ max-width:76ch; font-size:1.05rem; line-height:1.7; }
.woocommerce-Tabs-panel--description h3,.woocommerce-Tabs-panel--description h4{ margin:1.6em 0 .5em; color:var(--wp--preset--color--accent-1,inherit); font-family:var(--gs-font-heading,inherit); }
.woocommerce-Tabs-panel--description ul{ padding-left:1.2em; }
.woocommerce-Tabs-panel--description li::marker{ color:var(--wp--preset--color--brand-primary); }
.wc-tabs li.active a,.woocommerce-tabs ul.tabs li.active a{ font-weight:700; }

/* Buttons take the brand's font, not the browser's. The cart's title lines up with its table. */
.wc-block-components-button:not(.is-link),.wp-element-button,.wc-block-grid__product-add-to-cart .wp-block-button__link,.single_add_to_cart_button,.wc-block-cart__submit-button{ font-family:var(--gs-font-body,inherit)!important; }
body.woocommerce-cart .wp-block-post-title,body.woocommerce-checkout .wp-block-post-title{ max-width:var(--wp--style--global--wide-size,1200px)!important; width:100%; margin-inline:auto!important; }

@media (prefers-reduced-motion:reduce){ .gs-store-pill{ transition:none!important; } .wc-block-product,.wc-block-product img,ul.products li.product,ul.products li.product img,.wc-block-components-button{ transition:none!important; } .wc-block-product:hover,ul.products li.product:hover{ transform:none; } }

/* The checkout's payment options, which the network's dark styles leave unreadable on a light site. */
body:has(.wc-block-checkout) .wc-block-components-radio-control-accordion-option,body:has(.wc-block-checkout) .wc-block-components-radio-control__option{ background:color-mix(in srgb,var(--wp--preset--color--base) 70%,#fff)!important; border-color:var(--wp--preset--color--accent-6,#ddd)!important; box-shadow:none!important; }
body:has(.wc-block-checkout) .wc-block-components-radio-control-accordion-option--checked-option-highlighted,body:has(.wc-block-checkout) .wc-block-components-radio-control__option-checked{ border-color:var(--wp--preset--color--brand-primary)!important; }
body:has(.wc-block-checkout) .wc-block-components-radio-control__label,body:has(.wc-block-checkout) .wc-block-components-radio-control__label *,body:has(.wc-block-checkout) .wc-block-components-payment-method-label{ color:var(--wp--preset--color--contrast)!important; opacity:1!important; font-weight:600; }
body:has(.wc-block-checkout) .wc-block-components-radio-control-accordion-content{ background:transparent!important; color:var(--wp--preset--color--contrast)!important; box-shadow:none!important; }
body:has(.wc-block-checkout) .wc-block-components-radio-control__input{ border-color:var(--wp--preset--color--brand-primary)!important; background:var(--wp--preset--color--base)!important; }
body:has(.wc-block-checkout) .wc-block-components-radio-control-accordion-content p:not([style*="background"]):not([style*="background"] *),body:has(.wc-block-checkout) .wc-block-components-radio-control-accordion-content span:not([style*="background"]):not([style*="background"] *),body:has(.wc-block-checkout) .wc-block-components-radio-control-accordion-content div:not([style*="background"]):not([style*="background"] *){ color:var(--wp--preset--color--contrast)!important; opacity:1!important; }

/* Gateway logos, drawn by the gateways' own labels (contracts-and-payments bridge-marks.js). */
.gend-bridge-label{ display:inline-flex; align-items:center; gap:12px; width:100%; font-weight:700; }
.gend-bridge-mark{ flex:none; display:inline-flex; }
.gend-bridge-mark span{ display:inline-block; width:30px; height:30px; border-radius:50%; overflow:hidden; box-shadow:0 0 0 2px var(--wp--preset--color--base,#fff); }
.gend-bridge-mark span + span{ margin-left:-9px; }
.gend-bridge-mark svg{ display:block; width:100%; height:100%; }

/* The balance panel at checkout, in the store's colours rather than the network's dark ones. */
body .gend-wallet-panel{ background:var(--wp--preset--color--base)!important; color:var(--wp--preset--color--contrast)!important; border:1px solid var(--gs-store-line)!important; border-radius:var(--gs-store-radius)!important; box-shadow:0 14px 36px color-mix(in srgb,var(--wp--preset--color--contrast) 10%,transparent)!important; -webkit-backdrop-filter:none!important; backdrop-filter:none!important; }
body .gend-wallet-panel::before{ background:linear-gradient(90deg,transparent,var(--wp--preset--color--brand-primary),var(--wp--preset--color--brand-secondary,var(--wp--preset--color--brand-primary)),transparent)!important; }
body .gend-wallet-panel *{ font-family:var(--gs-font-body,inherit)!important; }
body .gend-wallet-panel .gend-wallet-title,body .gend-wallet-panel .gend-wallet-row-title,body .gend-wallet-panel .gend-wallet-due{ color:var(--wp--preset--color--contrast)!important; }
body .gend-wallet-panel .gend-wallet-title{ font-family:var(--gs-font-heading,inherit)!important; }
body .gend-wallet-panel .gend-wallet-sub,body .gend-wallet-panel .gend-wallet-row-bal,body .gend-wallet-panel .gend-wallet-row-hint,body .gend-wallet-panel .gend-wallet-cur,body .gend-wallet-panel .gend-wallet-summary{ color:color-mix(in srgb,var(--wp--preset--color--contrast) 68%,transparent)!important; }
body .gend-wallet-panel .gend-wallet-badge{ background:var(--wp--preset--color--brand-primary)!important; color:var(--wp--preset--color--base)!important; }
body .gend-wallet-panel .gend-wallet-row{ background:color-mix(in srgb,var(--wp--preset--color--brand-primary) 4%,var(--wp--preset--color--base))!important; border-color:var(--gs-store-line)!important; border-radius:calc(var(--gs-store-radius)*.8)!important; }
body .gend-wallet-panel .gend-wallet-row.is-on{ border-color:var(--wp--preset--color--brand-primary)!important; }
body .gend-wallet-panel .gend-wallet-pill{ background:var(--wp--preset--color--brand-primary)!important; color:var(--wp--preset--color--base)!important; box-shadow:none!important; border-radius:var(--gs-store-button)!important; }
body .gend-wallet-panel .gend-wallet-pill.is-ghost{ background:transparent!important; color:var(--wp--preset--color--brand-primary)!important; box-shadow:inset 0 0 0 1px var(--wp--preset--color--brand-primary)!important; }
body .gend-wallet-panel .gend-wallet-input{ background:var(--wp--preset--color--base)!important; color:var(--wp--preset--color--contrast)!important; border-color:var(--gs-store-line)!important; color-scheme:light; }
body .gend-wallet-panel .gend-wallet-due{ border-top-color:var(--gs-store-line)!important; }
body .gend-wallet-panel .gend-wallet-meter{ background:var(--gs-store-line)!important; }
body .gend-wallet-panel .gend-wallet-meter i{ background:var(--wp--preset--color--brand-primary)!important; box-shadow:none!important; }

/* Order received and order view: the store's colours, readable text. */
.woocommerce-order-details,.woocommerce-customer-details,.woocommerce-order-overview{ color:var(--wp--preset--color--contrast)!important; }
.woocommerce-order-details .woocommerce-table,.woocommerce-customer-details address,.woocommerce-order-details .shop_table{ background:var(--wp--preset--color--base)!important; color:var(--wp--preset--color--contrast)!important; border:1px solid var(--gs-store-line)!important; border-radius:var(--gs-store-radius)!important; border-collapse:separate!important; overflow:hidden; }
.woocommerce-order-details .woocommerce-table th,.woocommerce-order-details .woocommerce-table td,.woocommerce-order-details .shop_table th,.woocommerce-order-details .shop_table td{ background:transparent!important; color:var(--wp--preset--color--contrast)!important; border-color:var(--gs-store-line)!important; padding:14px 18px!important; }
.woocommerce-order-details .woocommerce-table thead th,.woocommerce-order-details .shop_table thead th{ background:color-mix(in srgb,var(--wp--preset--color--brand-primary) 8%,var(--wp--preset--color--base))!important; color:var(--wp--preset--color--contrast)!important; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.woocommerce-order-details .woocommerce-table a,.woocommerce-order-details .shop_table a{ color:var(--wp--preset--color--brand-primary)!important; }
.woocommerce-order-details .woocommerce-table tfoot th,.woocommerce-order-details .woocommerce-table tfoot td{ font-weight:700; }
.woocommerce-order-details h2,.woocommerce-customer-details h2{ font-family:var(--gs-font-heading,inherit); color:var(--wp--preset--color--accent-1,inherit); }

/* The customer's account: a menu beside the page, in the store's look. */
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation){ display:grid; grid-template-columns:minmax(200px,240px) 1fr; gap:clamp(20px,3vw,40px); align-items:start; }
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after{ content:none!important; display:none!important; }
body.woocommerce-account .woocommerce-MyAccount-navigation,body.woocommerce-account .woocommerce-MyAccount-content{ float:none!important; width:auto!important; }
body.woocommerce-account .woocommerce-MyAccount-navigation{ position:sticky; top:90px; padding:10px; border:1px solid var(--gs-store-line); border-radius:var(--gs-store-radius); background:var(--wp--preset--color--base); }
body.woocommerce-account .woocommerce-MyAccount-navigation li{ margin:0; }
body.woocommerce-account .woocommerce-MyAccount-navigation a{ padding:10px 14px!important; border-radius:calc(var(--gs-store-radius)*.6); font-family:var(--gs-font-body,inherit); }
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover{ background:color-mix(in srgb,var(--wp--preset--color--brand-primary) 8%,transparent); }
body.woocommerce-account .woocommerce-MyAccount-navigation .is-active a{ background:var(--wp--preset--color--brand-primary); color:var(--wp--preset--color--base)!important; }
body.woocommerce-account .woocommerce-MyAccount-content{ min-width:0; color:var(--wp--preset--color--contrast); }
body.woocommerce-account .woocommerce-MyAccount-content table{ background:var(--wp--preset--color--base); border:1px solid var(--gs-store-line); border-radius:var(--gs-store-radius); border-collapse:separate; overflow:hidden; }
body.woocommerce-account .woocommerce-MyAccount-content .button{ border-radius:var(--gs-store-button)!important; background:var(--wp--preset--color--brand-primary)!important; color:var(--wp--preset--color--base)!important; }
@media (max-width:760px){ body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation){ grid-template-columns:1fr; } body.woocommerce-account .woocommerce-MyAccount-navigation{ position:static; } body.woocommerce-account .woocommerce-MyAccount-navigation ul{ display:flex; flex-wrap:wrap; gap:4px; } }
