/**
 * SVMPForge — WooCommerce, WooCommerce Blocks and the licence server
 * (apfw-ls-*) mapped onto the design tokens in main.css. Shared patterns
 * (button, micro-label, card surface, data table, heading, status pill) are
 * declared once as selector groups; sections are numbered below.
 *
 * @package SVMPForge
 */

/* 01 Shells */
/* Cart, checkout and My Account come through page.php: widen that column. */
.sf-wc-account.logged-in .sf-page .sf-container--narrow,.woocommerce-cart .sf-page .sf-container--narrow,.woocommerce-checkout .sf-page .sf-container--narrow{max-width:calc(var(--sf-max) + 2 * var(--sf-gutter))}
.sf-wc-account.logged-in .sf-page .sf-prose,.woocommerce-cart .sf-page .sf-prose,.woocommerce-checkout .sf-page .sf-prose{max-width:none;font-size:1rem;line-height:1.6}
/* Prose styling must not leak into WooCommerce markup. */
.sf-prose .woocommerce ul,.sf-prose .woocommerce ol,.sf-prose [class*="wp-block-woocommerce"] ul,.sf-prose [class*="wp-block-woocommerce"] ol{margin:0;padding:0;list-style:none}
.sf-prose .woocommerce li + li,.sf-prose [class*="wp-block-woocommerce"] li + li,.sf-prose .woocommerce > * + *,.sf-prose [class*="wp-block-woocommerce"] > * + *{margin-top:0}
.sf-prose .woocommerce img,.sf-prose [class*="wp-block-woocommerce"] img{border:0}
.sf-prose .woocommerce table,.sf-prose [class*="wp-block-woocommerce"] table{border-collapse:separate;border-spacing:0}
.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout{max-width:none;margin:0}
/* Theme-wrapped tables scroll in their own container. */
.sf-wc-scroll{position:relative;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.woocommerce .clear{display:none}
.sf-wc .woocommerce::before,.sf-wc .woocommerce::after,.sf-wc .woocommerce-customer-details::before,.sf-wc .woocommerce-customer-details::after,.woocommerce .col2-set::before,.woocommerce .col2-set::after,.woocommerce ul.products::before,.woocommerce ul.products::after,.woocommerce div.product::before,.woocommerce div.product::after,.woocommerce form .form-row::before,.woocommerce form .form-row::after,.woocommerce ul.order_details::before,.woocommerce ul.order_details::after{content:none}
.sf-wc-breadcrumb{margin:0 0 var(--sf-space-5);font-family:var(--sf-font-mono);font-size:0.75rem;color:var(--sf-muted)}
.sf-wc-breadcrumb a:hover{color:var(--sf-brand);text-decoration:underline}

/* 02 Primitives */
/* Buttons: WooCommerce, Blocks and licence-server buttons all read as .sf-btn */
.woocommerce .button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wc-block-components-button:not(.is-link),.wp-block-woocommerce-empty-cart-block .wp-block-button__link,.apfw-ls-button,.apfw-ls-copy{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r);background:var(--sf-surface);color:var(--sf-ink);font-family:var(--sf-font-sans);font-size:0.9375rem;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap;cursor:pointer;box-shadow:none;transition:background-color .15s var(--sf-ease), border-color .15s var(--sf-ease), color .15s var(--sf-ease), filter .15s var(--sf-ease)}
.woocommerce .button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.apfw-ls-copy:hover,.apfw-ls-button--secondary:hover{border-color:var(--sf-ink-2);color:var(--sf-ink);background:var(--sf-surface)}
/* Primary fill */
.woocommerce .button.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,.woocommerce button[type="submit"].button,.wc-block-components-button:not(.is-link):not(.outlined),.wp-block-woocommerce-empty-cart-block .wp-block-button__link,.apfw-ls-button{background:var(--sf-grad-brand,var(--sf-brand));border-color:transparent;color:#fff;box-shadow:var(--sf-glow-btn,none)}
.woocommerce .button.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover,.woocommerce button[type="submit"].button:hover,.wc-block-components-button:not(.is-link):not(.outlined):hover,.wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover,.apfw-ls-button:hover{background:var(--sf-grad-brand,var(--sf-brand-hover));border-color:transparent;color:#fff;filter:brightness(1.06)}
/* Secondary / small / ghost */
.wc-block-components-button.outlined,.apfw-ls-button--secondary{background:var(--sf-surface);border-color:var(--sf-line-strong);color:var(--sf-ink)}
.woocommerce table.shop_table td .button,.woocommerce .woocommerce-message .button,.woocommerce .woocommerce-info .button,.woocommerce ul.products li.product .button,.woocommerce-MyAccount-downloads-file,.apfw-ls-copy,.apfw-ls-button--danger{min-height:36px;padding:0 14px;border-radius:8px;font-size:0.875rem}
.apfw-ls-button--danger{background:var(--sf-surface);border-color:var(--sf-line-strong);color:var(--sf-err)}
.apfw-ls-button--danger:hover{background:var(--sf-err-tint);border-color:var(--sf-err);color:var(--sf-err)}
.apfw-ls-copy.is-copied{border-color:var(--sf-ok);background:var(--sf-ok-tint);color:var(--sf-ok-ink,#065F46)}
.wc-block-components-button.is-link,.wc-block-components-totals-coupon-link{color:var(--sf-brand);font-weight:600}
.woocommerce a.button.wc-backward,.wc-block-components-checkout-return-to-cart-button{gap:6px;padding-inline:12px;border-color:transparent;background:transparent;color:var(--sf-brand)}
.woocommerce button[type="submit"][name="update_cart"],.woocommerce button[type="submit"][name="apply_coupon"]{background:var(--sf-surface);border-color:var(--sf-line-strong);color:var(--sf-ink)}
.woocommerce a.button.wc-backward:hover,.wc-block-components-checkout-return-to-cart-button:hover{background:var(--sf-brand-tint);border-color:transparent;color:var(--sf-brand-ink)}
.woocommerce .button.disabled,.woocommerce .button:disabled,.woocommerce .button:disabled[disabled],.wc-block-components-button:disabled{opacity:.5;cursor:not-allowed}
.woocommerce a.button.alt.disabled,.woocommerce button.button.alt.disabled,.woocommerce input.button.alt.disabled,.woocommerce button.button.alt:disabled,.woocommerce button.button.alt:disabled[disabled]{background:var(--sf-grad-brand,var(--sf-brand));border-color:transparent;color:#fff}
.woocommerce .button.loading::after,.woocommerce .button.added::after{display:none}
/* Micro label: mono, uppercase, muted */
.woocommerce table.shop_table thead th,.wc-block-cart-items .wc-block-cart-items__header th,[class^="wc-block-order-confirmation-"] thead th,.apfw-ls-activations thead th,.apfw-ls-meta dt,.wc-block-cart__totals-title,.wc-block-components-checkout-order-summary__title-text,.wc-block-components-order-summary .wc-block-components-panel__button,.woocommerce-cart .cart_totals h2,.wc-block-order-confirmation-summary-list-item__key,.woocommerce-order ul.woocommerce-order-overview li,.woocommerce .woocommerce-orders-table__cell-order-status,.woocommerce div.product .product_meta,.woocommerce .woocommerce-OrderUpdate-meta{font-family:var(--sf-font-mono);font-size:0.6875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--sf-muted)}
.woocommerce .woocommerce-result-count{margin:0;float:none;font-family:var(--sf-font-mono);font-size:0.75rem;color:var(--sf-muted)}
/* Card surface */
.woocommerce div.product form.cart,.woocommerce fieldset,.woocommerce-checkout form.checkout_coupon,.woocommerce-checkout form.woocommerce-form-login,.woocommerce-cart .cart_totals,.woocommerce-form-login,.woocommerce-form-register,.woocommerce-ResetPassword,.woocommerce-Address,.woocommerce-order ul.woocommerce-order-overview,.wc-block-order-confirmation-summary,.wc-block-cart .wc-block-cart__sidebar,.wc-block-checkout__sidebar .wc-block-components-order-summary,.apfw-ls-license,.woocommerce .woocommerce-OrderUpdate{padding:var(--sf-space-5);border:var(--sf-border);border-radius:var(--sf-r);background:var(--sf-surface)}
.woocommerce-customer-details address,[class$="-confirmation-billing-address"],[class$="-confirmation-shipping-address"],.woocommerce-checkout #payment div.payment_box,.woocommerce-checkout .woocommerce-terms-and-conditions{padding:var(--sf-space-4);border:var(--sf-border);border-radius:var(--sf-r-sm);background:var(--sf-surface);font-style:normal;color:var(--sf-ink-2);line-height:1.6}
/* Data tables */
.woocommerce table.shop_table,.sf-wc .wc-block-cart-items,[class^="wc-block-order-confirmation-"] table,.apfw-ls-activations,.apfw-ls-order-keys__table{width:100%;margin:0 0 var(--sf-space-5);border:var(--sf-border);border-radius:var(--sf-r);border-collapse:separate;border-spacing:0;background:var(--sf-surface);font-size:0.9375rem;color:var(--sf-ink-2)}
.woocommerce table.shop_table th,.woocommerce table.shop_table td,.sf-wc .wc-block-cart-items th,.sf-wc .wc-block-cart-items td,[class^="wc-block-order-confirmation-"] th,[class^="wc-block-order-confirmation-"] td,.apfw-ls-activations th,.apfw-ls-activations td,.apfw-ls-order-keys__table td{padding:14px 16px;border:0;border-bottom:var(--sf-border);text-align:start;vertical-align:middle;line-height:1.45;color:var(--sf-ink-2)}
.woocommerce table.shop_table thead th,.wc-block-cart-items .wc-block-cart-items__header th,[class^="wc-block-order-confirmation-"] thead th,.apfw-ls-activations thead th{padding-block:10px;border-bottom:1px solid var(--sf-line-strong)}
.woocommerce table.shop_table tbody tr:last-child td,.woocommerce table.shop_table tbody tr:last-child th,.wc-block-cart-items tbody tr:last-child td,[class^="wc-block-order-confirmation-"] tbody tr:last-child td,.apfw-ls-activations tbody tr:last-child td,.apfw-ls-order-keys__table tr:last-child td{border-bottom:0}
.woocommerce table.shop_table tfoot th,.woocommerce table.shop_table tfoot td,.wc-block-order-confirmation-totals tfoot th,.wc-block-order-confirmation-totals tfoot td{border-top:var(--sf-border);border-bottom:0;font-weight:600;color:var(--sf-ink)}
.woocommerce table.shop_table tfoot tr:last-child th,.woocommerce table.shop_table tfoot tr:last-child td{border-top:1px solid var(--sf-line-strong);font-size:1.0625rem}
.woocommerce .amount,.woocommerce .woocommerce-Price-amount,.wc-block-components-formatted-money-amount,.wc-block-components-product-price{color:var(--sf-ink);font-variant-numeric:tabular-nums}
/* Headings inside store views */
.woocommerce-checkout h3,.woocommerce-checkout #order_review_heading,.woocommerce-order-details__title,.woocommerce-column__title,.woocommerce-customer-details h2,[class^="wc-block-order-confirmation-"] h2,.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3,.sf-wc-account .woocommerce > h2,.woocommerce-account .u-columns h2,.wc-block-components-checkout-step__title,.wc-block-components-title,.woocommerce #reviews h2,.woocommerce #reviews h3{margin:0 0 var(--sf-space-4);font-family:var(--sf-font-sans);font-size:var(--sf-text-h3);font-weight:600;letter-spacing:-0.01em;line-height:1.3;color:var(--sf-ink);text-transform:none}
.woocommerce section.related > h2,.woocommerce section.up-sells > h2{margin:0 0 var(--sf-space-5);font-size:var(--sf-text-h2);font-weight:600;letter-spacing:-0.015em;color:var(--sf-ink)}
/* Status pills */
.apfw-ls-status,.woocommerce span.onsale{display:inline-flex;align-items:center;gap:6px;min-height:22px;padding:2px 9px;border-radius:999px;background:var(--sf-surface-2);color:var(--sf-ink-2);font-family:var(--sf-font-mono);font-size:0.6875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;line-height:1.2;white-space:nowrap}
.apfw-ls-status::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:currentColor}
.apfw-ls-status--active{background:var(--sf-ok-tint);color:var(--sf-ok-ink,#065F46)}
.apfw-ls-status--expired{background:var(--sf-warn-tint);color:var(--sf-warn-ink,#92400E)}
.apfw-ls-status--disabled{background:var(--sf-err-tint);color:var(--sf-err-ink,#B91C1C)}
.woocommerce span.onsale{position:absolute;top:12px;inset-inline-start:12px;background:var(--sf-brand-tint);color:var(--sf-brand-ink)}

/* 03 Notices — the .sf-notice tokens */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notice,.wc-block-components-notice-banner,.apfw-ls-notice{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 var(--sf-space-5);padding:12px 16px;border:1px solid var(--sf-line);border-inline-start-width:3px;border-radius:var(--sf-r-sm);background:var(--sf-surface);color:var(--sf-ink-2);font-size:0.9375rem;line-height:1.5;list-style:none}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{content:none}
.woocommerce-message,.woocommerce-notice--success,.wc-block-components-notice-banner.is-success,.apfw-ls-notice--ok{border-color:var(--sf-ok);background:var(--sf-ok-tint);color:var(--sf-ok-ink,#065F46)}
.woocommerce-info,.woocommerce-notice--info,.wc-block-components-notice-banner.is-info{border-color:var(--sf-info);background:var(--sf-info-tint);color:var(--sf-brand-ink,#3730A3)}
.woocommerce-error,.woocommerce-notice--error,.wc-block-components-notice-banner.is-error,.apfw-ls-notice--err{border-color:var(--sf-err);background:var(--sf-err-tint);color:var(--sf-err-ink,#B91C1C)}
.wc-block-components-notice-banner.is-warning{border-color:var(--sf-warn);background:var(--sf-warn-tint);color:var(--sf-warn-ink,#92400E)}
.woocommerce-message a,.woocommerce-info a,.woocommerce-error a,.wc-block-components-notice-banner a{color:inherit;font-weight:600}
.woocommerce-error{flex-direction:column;align-items:flex-start}
.woocommerce-error li,.wc-block-components-notice-banner li{margin:0}
.woocommerce-message .button,.woocommerce-info .button{margin-inline-start:auto}
.wc-block-components-notice-banner > svg{flex:none;width:20px;height:20px;fill:currentColor}
.wc-block-components-notice-banner__content{flex:1 1 240px}
.woocommerce-notices-wrapper:empty{display:none}

/* 04 Forms */
.woocommerce form .form-row{display:block;margin:0 0 var(--sf-space-4);padding:0}
.woocommerce form .form-row label,.wc-block-components-text-input label,.wc-block-components-select .wc-block-components-select__label,.wc-block-components-combobox label,.wc-block-components-textarea label{display:block;margin-bottom:6px;font-size:var(--sf-text-small);font-weight:600;line-height:1.4;color:var(--sf-ink)}
.woocommerce form .form-row label.checkbox,.woocommerce form .form-row label.woocommerce-form__label-for-checkbox,.woocommerce-form-login__rememberme{display:flex;align-items:flex-start;gap:10px;font-weight:400;color:var(--sf-ink-2);cursor:pointer}
.woocommerce form .form-row .required{border:0;color:var(--sf-err);text-decoration:none}
.woocommerce form .form-row .optional{color:var(--sf-muted);font-weight:400}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce .woocommerce-Input,.wc-block-components-text-input input,.wc-block-components-textarea textarea,.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,.wc-block-components-select .wc-block-components-select__select{display:block;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r-sm);background:var(--sf-surface);color:var(--sf-ink);font-family:inherit;font-size:1rem;line-height:1.4;box-shadow:none}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus,.woocommerce form .form-row select:focus,.woocommerce .woocommerce-Input:focus,.wc-block-components-text-input input:focus,.wc-block-components-textarea textarea:focus,.wc-block-components-select .wc-block-components-select__select:focus{outline:2px solid var(--sf-focus);outline-offset:2px;border-color:var(--sf-brand);box-shadow:none}
.woocommerce form .form-row textarea,.wc-block-components-textarea textarea{min-height:120px;resize:vertical}
.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select{border-color:var(--sf-err)}
.woocommerce form .form-row.woocommerce-validated input.input-text,.woocommerce form .form-row.woocommerce-validated select{border-color:var(--sf-ok)}
.woocommerce input[type="checkbox"],.woocommerce input[type="radio"],.wc-block-components-checkbox__input{accent-color:var(--sf-brand);width:18px;height:18px;margin:2px 0 0}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked{background:var(--sf-brand);border-color:var(--sf-brand)}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{float:none;width:100%}
.woocommerce fieldset legend{padding:0 8px;font-size:var(--sf-text-h4);font-weight:600;color:var(--sf-ink)}
.woocommerce-privacy-policy-text,.wc-block-checkout__terms,.wc-block-components-checkout-policies{color:var(--sf-muted);font-size:var(--sf-text-small)}
/* Selects get the same chevron as .sf-select */
.woocommerce form .form-row select,.woocommerce .woocommerce-ordering select,.woocommerce div.product form.cart .variations select{padding-inline-end:40px;background-color:var(--sf-surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235B6B84' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;appearance:none;-webkit-appearance:none}
/* select2 (country pickers on the classic checkout) */
/* Quantity */
.woocommerce .quantity .qty{width:76px;min-height:44px;padding:8px 6px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r-sm);background:var(--sf-surface);color:var(--sf-ink);font-family:var(--sf-font-mono);font-size:0.9375rem;text-align:center}
.woocommerce .quantity .qty:focus{outline:2px solid var(--sf-focus);outline-offset:2px;border-color:var(--sf-brand)}
.wc-block-components-quantity-selector{max-width:108px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r-sm);background:var(--sf-surface)}
.wc-block-components-quantity-selector::after{display:none}

/* 05 Shop archive */
.sf-wc-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sf-space-3);margin:0 0 var(--sf-space-5);padding-bottom:var(--sf-space-4);border-bottom:var(--sf-border)}
.sf-wc-toolbar:empty{display:none}
.woocommerce .woocommerce-ordering{float:none;margin:0}
.woocommerce .woocommerce-ordering select{width:auto;min-height:40px;padding-block:8px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r-sm);color:var(--sf-ink);font-size:var(--sf-text-small)}
.woocommerce ul.products{display:grid;gap:var(--sf-space-4);grid-template-columns:minmax(0, 1fr);margin:0;padding:0;list-style:none}
.woocommerce ul.products li.product,.woocommerce ul.products[class*="columns-"] li.product{position:relative;display:flex;flex-direction:column;width:auto;margin:0;padding:var(--sf-space-4);float:none;clear:none;border:var(--sf-border);border-radius:var(--sf-r);background:var(--sf-surface);transition:border-color .15s var(--sf-ease)}
.woocommerce ul.products li.product:hover{border-color:var(--sf-line-strong)}
.woocommerce ul.products li.product a{text-decoration:none}
.woocommerce ul.products li.product a img{width:100%;margin:0 0 var(--sf-space-4);border:var(--sf-border);border-radius:var(--sf-r-sm);background:var(--sf-surface-2);aspect-ratio:4 / 3;object-fit:contain}
.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product h2,.woocommerce ul.products li.product h3{margin:0 0 6px;padding:0;font-size:1.0625rem;font-weight:600;line-height:1.35;color:var(--sf-ink)}
.woocommerce ul.products li.product .price{margin:0 0 var(--sf-space-4);color:var(--sf-ink);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}
.woocommerce ul.products li.product .price ins,.woocommerce div.product p.price ins{text-decoration:none}
.woocommerce ul.products li.product .button{margin-top:auto;align-self:flex-start}
.woocommerce nav.woocommerce-pagination{margin:var(--sf-space-7) 0 0}
.woocommerce nav.woocommerce-pagination ul{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;border:0}
.woocommerce nav.woocommerce-pagination ul li{margin:0;border:0;overflow:visible}
.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:40px;min-height:40px;padding:0 12px;border:var(--sf-border);border-radius:var(--sf-r-sm);background:var(--sf-surface);color:var(--sf-ink);font-family:var(--sf-font-mono);font-size:0.875rem;text-decoration:none}
.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--sf-brand);color:var(--sf-brand);background:var(--sf-surface)}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--sf-grad-brand,var(--sf-brand));border-color:transparent;color:#fff}
.woocommerce .woocommerce-no-products-found .woocommerce-info{border-color:var(--sf-line);background:var(--sf-surface);color:var(--sf-ink-2)}

/* 06 Single product */
.woocommerce div.product{display:grid;gap:var(--sf-space-6);grid-template-columns:minmax(0, 1fr)}
.woocommerce div.product div.images,.woocommerce div.product div.summary{width:auto;margin:0;float:none}
.woocommerce div.product > .woocommerce-tabs,.woocommerce div.product > .related,.woocommerce div.product > .up-sells,.woocommerce div.product > .sf-wc-plans,.woocommerce div.product > section,.woocommerce div.product > #reviews{grid-column:1 / -1}
.woocommerce div.product .product_title{margin:0 0 var(--sf-space-3);font-size:var(--sf-text-h1);font-weight:600;line-height:1.1;letter-spacing:-0.02em;color:var(--sf-ink)}
.woocommerce div.product p.price,.woocommerce div.product span.price{margin:0 0 var(--sf-space-4);color:var(--sf-ink);font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums}
.woocommerce div.product p.price del{color:var(--sf-muted);font-size:1.125rem;font-weight:400}
.woocommerce div.product .woocommerce-product-details__short-description{margin:0 0 var(--sf-space-5);color:var(--sf-ink-2);font-size:var(--sf-text-lead);line-height:1.55}
.woocommerce div.product form.cart{margin:0 0 var(--sf-space-5)}
.woocommerce div.product form.cart .variations{width:100%;margin:0 0 var(--sf-space-4);border:0}
.woocommerce div.product form.cart .variations tr{display:block}
.woocommerce div.product form.cart .variations th,.woocommerce div.product form.cart .variations td{display:block;padding:0;border:0}
.woocommerce div.product form.cart .variations th.label{margin-bottom:6px;font-size:var(--sf-text-small);font-weight:600;text-align:start;color:var(--sf-ink)}
.woocommerce div.product form.cart .variations td.value{margin-bottom:var(--sf-space-4)}
.woocommerce div.product form.cart .variations select{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r-sm);color:var(--sf-ink);font-size:1rem}
.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation{margin-bottom:var(--sf-space-4)}
.woocommerce div.product form.cart .woocommerce-variation:empty{margin:0}
.woocommerce div.product form.cart .woocommerce-variation-price .price{font-size:1.375rem}
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,.woocommerce div.product form.cart:not(.variations_form){display:flex;flex-wrap:wrap;align-items:center;gap:var(--sf-space-3)}
.woocommerce div.product form.cart div.quantity{margin:0;float:none}
.woocommerce div.product .product_meta{margin-top:var(--sf-space-4);padding-top:var(--sf-space-4);border-top:var(--sf-border);letter-spacing:0.02em;text-transform:none}
/* Tabs */
.woocommerce div.product .woocommerce-tabs{margin-top:var(--sf-space-6)}
.woocommerce div.product .woocommerce-tabs ul.tabs{display:flex;flex-wrap:wrap;gap:var(--sf-space-5);margin:0 0 var(--sf-space-5);padding:0;border-bottom:1px solid var(--sf-line-strong);list-style:none}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs::after,.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{content:none;display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{margin:0;padding:0;border:0;border-radius:0;background:transparent}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:block;padding:10px 0;border-bottom:2px solid transparent;color:var(--sf-muted);font-size:0.9375rem;font-weight:600;text-decoration:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{color:var(--sf-ink)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{border-bottom-color:var(--sf-brand);color:var(--sf-ink)}
.woocommerce div.product .woocommerce-tabs .panel{max-width:var(--sf-prose-max);margin:0;padding:0;border:0;box-shadow:none;color:var(--sf-ink-2);line-height:1.65}
.woocommerce div.product .woocommerce-tabs .panel p{margin:0 0 1em}
.woocommerce div.product .woocommerce-tabs .panel ul{padding-inline-start:1.4em;list-style:disc}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child{margin-top:0}
/* Reviews */

/* 07 "Choose your plan" cards */
.sf-wc-plans{margin-top:var(--sf-space-7);padding-top:var(--sf-space-7);border-top:var(--sf-border)}
.sf-wc-plans .sf-section__head{margin-bottom:var(--sf-space-5)}
.sf-wc-plans .sf-section__head .sf-lead{font-size:1.0625rem}

/* 08 Cart — block and classic */
.wc-block-components-sidebar-layout .wc-block-components-main{padding-inline-end:var(--sf-space-6)}
.wc-block-components-sidebar-layout .wc-block-components-sidebar{padding:0}
.wc-block-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,.wc-block-checkout__sidebar .wc-block-components-order-summary{border-color:var(--sf-line)}
.wc-block-cart__submit-button,.wc-block-components-checkout-place-order-button,.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,.woocommerce #place_order{display:flex;width:100%;min-height:52px;font-size:1.0625rem;float:none}
.wc-block-cart-item__image img,.wc-block-components-order-summary-item__image img,.woocommerce table.shop_table .product-thumbnail img{width:56px;height:auto;border:var(--sf-border);border-radius:var(--sf-r-sm)}
.wc-block-components-product-name,.woocommerce table.shop_table td.product-name a{color:var(--sf-ink);font-weight:600;text-decoration:none}
.wc-block-components-product-name:hover,.woocommerce table.shop_table td.product-name a:hover{color:var(--sf-brand)}
.wc-block-components-product-metadata,.wc-block-components-product-details,.woocommerce table.shop_table dl.variation,.woocommerce .wc-item-meta{margin:4px 0 0;padding:0;color:var(--sf-muted);font-size:var(--sf-text-small);list-style:none}
.woocommerce table.shop_table dl.variation dt,.woocommerce .wc-item-meta li strong{color:var(--sf-ink-2);font-weight:600}
.woocommerce table.shop_table dl.variation dd,.woocommerce .wc-item-meta li{margin:0}
.wc-block-cart-item__remove-link{color:var(--sf-muted);font-size:0.8125rem;text-decoration:underline}
.wc-block-cart-item__remove-link:hover{color:var(--sf-err)}
.woocommerce table.shop_table .product-remove a.remove{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--sf-surface-2);color:var(--sf-muted);font-size:16px;text-decoration:none}
.woocommerce table.shop_table .product-remove a.remove:hover{background:var(--sf-err-tint);color:var(--sf-err)}
.woocommerce table.shop_table td.actions{padding:var(--sf-space-4) 16px;border-top:var(--sf-border);background:var(--sf-surface-2)}
.wc-block-components-totals-item,.wc-block-components-totals-item__label{color:var(--sf-ink-2);font-size:0.9375rem}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{color:var(--sf-ink);font-size:1.0625rem;font-weight:600}
.woocommerce-cart .cart-collaterals{display:block;width:100%}
.woocommerce-cart .cart_totals{float:none;width:100%;max-width:420px;margin-inline-start:auto}
.woocommerce-cart .cart_totals h2{margin:0 0 var(--sf-space-4)}
.woocommerce-cart .cart_totals table.shop_table{margin:0;border:0}
.woocommerce-cart .cart_totals table.shop_table th,.woocommerce-cart .cart_totals table.shop_table td{padding:10px 0}
.woocommerce-cart .cart_totals tr.order-total th,.woocommerce-cart .cart_totals tr.order-total td{border-top:1px solid var(--sf-line-strong);border-bottom:0;color:var(--sf-ink);font-size:1.0625rem}
.woocommerce-cart .wc-proceed-to-checkout{padding:var(--sf-space-4) 0 0}
/* Empty cart */
.wc-block-cart__empty-cart__title{margin:0 0 var(--sf-space-3);font-size:var(--sf-text-h2);font-weight:600;letter-spacing:-0.015em;color:var(--sf-ink)}
.wc-block-cart__empty-cart__title::before{content:none}
.wp-block-woocommerce-empty-cart-block p{max-width:62ch;color:var(--sf-ink-2)}
.wp-block-woocommerce-empty-cart-block h2{margin-top:var(--sf-space-6);font-size:var(--sf-text-h3);color:var(--sf-ink)}
.woocommerce .cart-empty{margin:0 0 var(--sf-space-4);padding:0;border:0;background:transparent;color:var(--sf-ink-2);font-size:var(--sf-text-lead)}
.woocommerce .return-to-shop{margin:var(--sf-space-4) 0 0}

/* 09 Checkout — block and classic */
.wc-block-components-checkout-step{border:0}
.wc-block-components-checkout-step__heading{margin:0 0 var(--sf-space-2)}
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option{border:var(--sf-border);border-radius:var(--sf-r-sm);background:var(--sf-surface)}
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted{border-color:var(--sf-brand);box-shadow:inset 0 0 0 1px var(--sf-brand)}
.wc-block-components-radio-control__input:checked{border-color:var(--sf-brand);color:var(--sf-brand)}
.wc-block-components-payment-method-label{color:var(--sf-ink);font-weight:600}
.wc-block-components-order-summary-item__quantity{border-color:var(--sf-line-strong);background:var(--sf-surface);color:var(--sf-ink-2)}
.wc-block-checkout__actions{padding-top:var(--sf-space-4)}
.wc-block-checkout__terms a,.wc-block-components-checkout-policies a{color:var(--sf-brand)}
.woocommerce-checkout form.checkout_coupon,.woocommerce-checkout form.woocommerce-form-login{margin:0 0 var(--sf-space-5)}
.woocommerce-checkout .col2-set{display:grid;gap:var(--sf-space-5);grid-template-columns:minmax(0, 1fr)}
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{width:auto;float:none}
.woocommerce-checkout #customer_details{margin-bottom:var(--sf-space-6)}
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total,.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{text-align:end}
.woocommerce-checkout #payment{margin-top:var(--sf-space-5);border-radius:var(--sf-r);background:var(--sf-surface-2)}
.woocommerce-checkout #payment ul.payment_methods{padding:var(--sf-space-4);border-bottom:var(--sf-border);list-style:none}
.woocommerce-checkout #payment ul.payment_methods li{margin:0 0 var(--sf-space-3);padding:0}
.woocommerce-checkout #payment div.payment_box{margin:8px 0 0;font-size:var(--sf-text-small)}
.woocommerce-checkout #payment div.payment_box::before,.woocommerce-checkout #payment div.payment_box::after{content:none;display:none}
.woocommerce-checkout #payment div.form-row.place-order{margin:0;padding:var(--sf-space-4)}

/* 10 Order received & order details */
.woocommerce-order .woocommerce-thankyou-order-received,.wc-block-order-confirmation-status{margin:0 0 var(--sf-space-5);padding:var(--sf-space-5);border:1px solid var(--sf-ok);border-inline-start-width:3px;border-radius:var(--sf-r);background:var(--sf-ok-tint);color:var(--sf-ok-ink,#065F46);font-size:var(--sf-text-lead);font-weight:600}
.woocommerce-order ul.woocommerce-order-overview,.wc-block-order-confirmation-summary{display:grid;gap:var(--sf-space-4);grid-template-columns:minmax(0, 1fr);margin:0 0 var(--sf-space-6);list-style:none}
.woocommerce-order ul.woocommerce-order-overview li,.wc-block-order-confirmation-summary-list-item{margin:0;padding:0;border:0;float:none}
.woocommerce-order ul.woocommerce-order-overview li strong,.wc-block-order-confirmation-summary-list-item__value{display:block;margin-top:4px;color:var(--sf-ink);font-family:var(--sf-font-sans);font-size:1rem;font-weight:600;letter-spacing:normal;text-transform:none}
.woocommerce-order-details,.woocommerce-customer-details,[class^="wc-block-order-confirmation-"]{margin-bottom:var(--sf-space-6)}
.woocommerce-customer-details .col2-set,.woocommerce-columns--addresses{display:grid;gap:var(--sf-space-4);grid-template-columns:minmax(0, 1fr)}
.woocommerce-customer-details .col2-set .col-1,.woocommerce-customer-details .col2-set .col-2{width:auto;float:none}
/* Licence keys block (licence server plugin, thank-you + order view) */
.apfw-ls-order-keys{margin-top:var(--sf-space-6)}
.apfw-ls-order-keys__table code{display:inline-block;padding:6px 10px;border:var(--sf-border);border-radius:var(--sf-r-sm);background:var(--sf-surface-2);color:var(--sf-ink);font-family:var(--sf-font-mono);font-size:0.9375rem;letter-spacing:0.04em}

/* 11 My Account */
.sf-wc-account.logged-in .woocommerce{display:grid;gap:var(--sf-space-5);grid-template-columns:minmax(0, 1fr);align-items:start}
.sf-wc-account.logged-in .woocommerce > .woocommerce-notices-wrapper{grid-column:1 / -1}
.woocommerce-account .woocommerce-MyAccount-navigation{min-width:0;width:auto;margin:0;float:none}
.woocommerce-account .woocommerce-MyAccount-navigation ul{margin:0;padding:0;overflow:hidden;border:var(--sf-border);border-radius:var(--sf-r);background:var(--sf-surface);list-style:none}
.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0;border-bottom:var(--sf-border)}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child{border-bottom:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:12px 16px;border-inline-start:3px solid transparent;color:var(--sf-ink-2);font-size:0.9375rem;font-weight:500;text-decoration:none}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--sf-surface-2);color:var(--sf-ink)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{border-inline-start-color:var(--sf-brand);background:var(--sf-brand-tint);color:var(--sf-brand-ink);font-weight:600}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{color:var(--sf-muted)}
.woocommerce-account .woocommerce-MyAccount-content{min-width:0;width:auto;padding:0;float:none}
.woocommerce-MyAccount-content > p{margin:0 0 var(--sf-space-4);color:var(--sf-ink-2)}
.woocommerce-MyAccount-content > p a,.woocommerce-MyAccount-content .woocommerce-Address-title .edit{font-weight:600}
.woocommerce-MyAccount-content h2 + h3,.woocommerce-MyAccount-content h3:first-child{margin-top:0}
.woocommerce-MyAccount-content .woocommerce-pagination{display:flex;gap:var(--sf-space-3);margin-top:var(--sf-space-5)}
.woocommerce .woocommerce-orders-table__cell-order-number a{font-family:var(--sf-font-mono);font-weight:500}
.sf-wc-dashboard-links{margin:var(--sf-space-5) 0 0}
.sf-wc-dashboard-link{display:block;padding:var(--sf-space-4);color:var(--sf-ink-2);text-decoration:none;transition:border-color .15s var(--sf-ease)}
.sf-wc-dashboard-link:hover{border-color:var(--sf-line-strong);color:var(--sf-ink-2)}
.sf-wc-dashboard-link .sf-card__title{display:block;margin-bottom:4px;color:var(--sf-ink)}
.sf-wc-dashboard-link__text{display:block;color:var(--sf-muted);font-size:var(--sf-text-small);line-height:1.5}
/* Addresses, account details, login / register / lost password */
.woocommerce-Addresses.col2-set,.woocommerce-account .u-columns.col2-set{display:grid;gap:var(--sf-space-4);grid-template-columns:minmax(0, 1fr)}
.woocommerce-Addresses .col-1,.woocommerce-Addresses .col-2,.woocommerce-account .u-columns.col2-set .col-1,.woocommerce-account .u-columns.col2-set .col-2{width:auto;float:none}
.woocommerce-Address-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sf-space-3);margin-bottom:var(--sf-space-3)}
.woocommerce-Address-title h2,.woocommerce-Address-title h3{margin:0;font-size:var(--sf-text-h4)}
.woocommerce-Address address{color:var(--sf-ink-2);font-style:normal;line-height:1.6}
.woocommerce-address-fields__field-wrapper{margin-bottom:var(--sf-space-4)}
.woocommerce-EditAccountForm fieldset{margin:var(--sf-space-5) 0 0}
.woocommerce-EditAccountForm .form-row span em{display:block;margin-top:6px;color:var(--sf-muted);font-size:0.8125rem;font-style:normal}
.woocommerce-form-login,.woocommerce-form-register,.woocommerce-ResetPassword{max-width:520px}
.sf-wc-login-intro{max-width:62ch;margin:0 0 var(--sf-space-5);color:var(--sf-ink-2)}
.woocommerce-form-login__submit,.woocommerce-form-register__submit,.woocommerce-ResetPassword .woocommerce-Button{width:100%;margin:0;float:none}
.woocommerce-LostPassword,.woocommerce-form-login .lost_password{margin:var(--sf-space-4) 0 0;font-size:var(--sf-text-small)}

/* 12 Licenses endpoint (apfw-ls-*) */
.apfw-ls-account__intro{max-width:72ch;margin:0 0 var(--sf-space-5);color:var(--sf-ink-2)}
.apfw-ls-license{margin:0 0 var(--sf-space-4)}
.apfw-ls-license--expired{border-inline-start:3px solid var(--sf-warn)}
.apfw-ls-license--disabled{border-inline-start:3px solid var(--sf-err);opacity:1}
.apfw-ls-license__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sf-space-3);margin:0 0 var(--sf-space-4)}
.apfw-ls-license__plan{margin:0;color:var(--sf-ink);font-size:var(--sf-text-h4);font-weight:600;line-height:1.35}
.apfw-ls-key{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 var(--sf-space-4);padding:6px 6px 6px 14px;border:1px solid var(--sf-line-strong);border-radius:var(--sf-r-sm);background:var(--sf-surface)}
.apfw-ls-key__value{flex:1 1 auto;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;color:var(--sf-ink);font-family:var(--sf-font-mono);font-size:0.9375rem;letter-spacing:0.06em;text-overflow:ellipsis;white-space:nowrap}
.apfw-ls-meta{display:grid;grid-template-columns:max-content minmax(0, 1fr);gap:8px var(--sf-space-5);margin:0 0 var(--sf-space-4);font-size:0.9375rem}
.apfw-ls-meta dt{margin:0;padding-top:3px;font-size:0.75rem;letter-spacing:0.04em}
.apfw-ls-meta dd{margin:0;color:var(--sf-ink)}
.apfw-ls-activations{border-radius:var(--sf-r-sm)}
.apfw-ls-activations th,.apfw-ls-activations td{padding:10px 14px;white-space:nowrap}
.apfw-ls-activations td:first-child{color:var(--sf-ink);font-family:var(--sf-font-mono);font-size:0.875rem}
.apfw-ls-activations form{margin:0}
.apfw-ls-actions{display:flex;flex-wrap:wrap;gap:var(--sf-space-3)}

/* 13 Responsive */

@media (min-width: 600px) {
	.woocommerce ul.products{gap:var(--sf-space-5);grid-template-columns:repeat(2, minmax(0, 1fr))}
	.woocommerce form .form-row-first,.woocommerce form .form-row-last{display:inline-block;width:calc(50% - 10px);vertical-align:top}
	.woocommerce form .form-row-first{margin-inline-end:16px}
	.woocommerce-checkout .col2-set,.woocommerce-customer-details .col2-set,.woocommerce-columns--addresses,.woocommerce-Addresses.col2-set,.woocommerce-account .u-columns.col2-set{grid-template-columns:repeat(2, minmax(0, 1fr))}
	.woocommerce-order ul.woocommerce-order-overview,.wc-block-order-confirmation-summary{grid-template-columns:repeat(2, minmax(0, 1fr))}
}

@media (min-width: 900px) {
	.woocommerce ul.products.columns-3{grid-template-columns:repeat(3, minmax(0, 1fr))}
	.woocommerce ul.products.columns-4{grid-template-columns:repeat(4, minmax(0, 1fr))}
	.woocommerce ul.products.columns-2{grid-template-columns:repeat(2, minmax(0, 1fr))}
	.woocommerce ul.products.columns-1{grid-template-columns:minmax(0, 1fr)}
	.woocommerce div.product{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:var(--sf-space-7);align-items:start}
	.sf-wc-no-image .woocommerce div.product{grid-template-columns:minmax(0, 1fr)}
	.sf-wc-no-image .woocommerce div.product div.summary{max-width:72ch}
	.woocommerce-order ul.woocommerce-order-overview,.wc-block-order-confirmation-summary{grid-template-columns:repeat(4, minmax(0, 1fr))}
	.sf-wc-account.logged-in .woocommerce{grid-template-columns:240px minmax(0, 1fr);gap:var(--sf-space-7)}
}

@media (min-width: 1200px) {
	.sf-wc-account.logged-in .woocommerce{grid-template-columns:260px minmax(0, 1fr)}
	.woocommerce div.product{gap:var(--sf-space-8)}
}

@media (max-width: 599px) {
	.apfw-ls-license__header{align-items:flex-start}
	.apfw-ls-meta{grid-template-columns:minmax(0, 1fr);gap:2px}
	.apfw-ls-meta dd + dt{margin-top:10px}
	.apfw-ls-actions .apfw-ls-button{flex:1 1 auto}
	.sf-wc-toolbar{flex-direction:column;align-items:stretch}
	.woocommerce .woocommerce-ordering select{width:100%}
}
