/* Tolerance Labs storefront: layout and WooCommerce block overrides. Tokens live in theme.json. */

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
::selection { background: var(--wp--preset--color--accent-soft); }

/* Header (its look is in the "New design" block below) */
/* The template-part wrapper sticks, not the header: the wrapper is exactly the header's height, so a sticky header inside it had no room and scrolled away. */
.wp-site-blocks > .wp-block-template-part:has(> .ts-header:not(.ts-header--checkout)) { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ts-header:not(.ts-header--checkout)) { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ts-header:not(.ts-header--checkout)) { top: 46px; } }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ts-header:not(.ts-header--checkout)) { top: 0; } }
.ts-nav a { color: var(--wp--preset--color--ink-2); }
.ts-nav a:hover { color: var(--wp--preset--color--ink); }
.ts-search .wp-block-search__inside-wrapper { border: 0; background: var(--wp--preset--color--tile); border-radius: 999px; padding: 2px 4px 2px 14px; min-width: 190px; }
.ts-search input { background: transparent; border: 0; font-size: 0.875rem; }
.ts-search input:focus { outline: none; }
.ts-search .wp-block-search__button { border-radius: 999px; background: transparent; color: var(--wp--preset--color--ink-2); padding: 0.4rem; }

.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--wp--preset--color--ink); box-shadow: inset 0 0 0 1px var(--wp--preset--color--ink); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--surface); }

.ts-section { margin-top: var(--wp--preset--spacing--70) !important; }
.ts-rail__head { margin-bottom: 1.5rem; gap: 1rem; }
.ts-rail__head h2 { margin: 0; }
.ts-rail__lede { color: var(--wp--preset--color--muted); margin: 0.4rem 0 0; max-width: 60ch; }
.ts-see-all { margin: 0; font-weight: 500; font-size: 0.9rem; }

/* Product grid and cards (Faire: supplier under the image; Apple: quiet tiles) */
.ts-products .wc-block-product-template { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 1.5rem !important; }
.ts-products .wc-block-product-template.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ts-products .wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; }
@media (max-width: 1000px) { .ts-products .wc-block-product-template, .ts-products .wc-block-product-template.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem !important; } }
.ts-products .wc-block-product { text-align: left; }
/* Price and Compare sit at the foot of every card, so they line up across a row whatever the title or chips take. */
.ts-products .wc-block-product-template > li, .ts-products .wc-block-product { display: flex !important; flex-direction: column; }
.ts-products .ts-card-price { margin-top: auto !important; padding-top: 0.5rem; }
.ts-card-title a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ts-card-img { margin: 0 !important; }
.ts-card-img a, .ts-card-img .wc-block-components-product-image { display: block; background: var(--wp--preset--color--tile); border-radius: 6px; overflow: hidden; }
.ts-card-img img { aspect-ratio: 1; object-fit: contain !important; padding: 9%; box-sizing: border-box; mix-blend-mode: multiply; transition: transform .3s ease; background: transparent !important; }
.wc-block-product:hover .ts-card-img img { transform: scale(1.035); }
.ts-card-title { font-size: 0.95rem !important; font-weight: 600; line-height: 1.35 !important; margin: 0.2rem 0 0 !important; font-family: var(--wp--preset--font-family--sans) !important; letter-spacing: -0.01em !important; }
.ts-card-title a { color: var(--wp--preset--color--ink); }
.ts-card-price { margin-top: 0.5rem !important; font-size: 0.95rem !important; text-align: left !important; }
.ts-card-price .ts-badge { font-size: 0.75rem; }
.ts-empty { color: var(--wp--preset--color--muted); }

/* Archive layout */
.ts-archive-head h1 { margin: 0.5rem 0 0.5rem; }
.ts-term-desc { color: var(--wp--preset--color--muted); max-width: 64ch; }
.ts-archive-head .ts-subcats { margin-top: 1.25rem; }
.ts-toolbar { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: 0.9rem; margin-bottom: 1.75rem; font-size: 0.875rem; color: var(--wp--preset--color--muted); }
.ts-toolbar__title { margin: 0 !important; }
.ts-toolbar select { font: inherit; }
.ts-toolbar select:not(.orderby) { border: 1px solid var(--wp--preset--color--line); border-radius: 3px; padding: 0.4rem 0.9rem; background: var(--wp--preset--color--surface); }
/* The sidebar sticks, and scrolls on its own when the filters are taller than
   the window, so every filter and the Apply button stay reachable. */
/* Keep slider outlines and focus rings inside the sidebar's scroll clipping area. */
.ts-shop-sidebar { position: sticky; top: 88px; align-self: flex-start; max-height: calc(100vh - 104px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-inline: 0.5rem; }
/* The negative margin cancels the padding's shift, so filters share the page's left edge (beats WordPress's flex-child margin reset). */
.ts-shop-layout > .ts-shop-sidebar { margin-inline-start: -0.5rem; }
.admin-bar .ts-shop-sidebar { top: 120px; max-height: calc(100vh - 136px); }
/* Taller than the screen (market.js sets is-tall): flow with the page instead of hiding filters in an inner scroll box. */
.ts-shop-sidebar.is-tall { position: static; max-height: none; overflow: visible; }
.ts-filters { font-size: 0.875rem; }
/* Keep every filter inside the 240px sidebar: browsers give <fieldset> a
   groove border and min-width:min-content, which pushed lists into the grid. */
.ts-shop-sidebar, .ts-filters, .ts-filters > * { min-width: 0; max-width: 100%; }
.ts-filters fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ts-filters legend { padding: 0; }
.ts-filters .wc-block-product-filter-checkbox-list__items,
.ts-filters .wc-block-product-filter-checkbox-list__item { width: auto; max-width: 100%; }
.ts-filters label { overflow-wrap: anywhere; }
/* Price filter: WooCommerce lays out two fixed 170px boxes; make them share the width. */
.ts-filters .wc-block-product-filter-price-slider__content { grid-template-columns: minmax(0, 1fr) 0 minmax(0, 1fr) !important; column-gap: 0.5rem; }
.ts-filters .wc-block-product-filter-price-slider__content input[type="text"] { width: 100%; min-width: 0; box-sizing: border-box; }
.ts-filters .wp-block-woocommerce-product-filter-attribute,
.ts-filters .wp-block-woocommerce-product-filter-price,
.ts-filters .wp-block-woocommerce-product-filter-taxonomy { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: 1.1rem; margin-bottom: 1.1rem; }
.ts-filter-heading { font-size: 0.75rem !important; text-transform: uppercase; letter-spacing: 0.08em; color: var(--wp--preset--color--muted); margin: 0 0 0.6rem !important; font-weight: 600 !important; }
.ts-filters .wc-block-product-filter-checkbox-list__items { gap: 0.35rem; }
.ts-filters input[type=checkbox] { accent-color: var(--wp--preset--color--ink); }
@media (max-width: 781px) { .ts-shop-sidebar { position: static; max-height: none; overflow: visible; } }

/* Product page (Apple: big image, sticky buy box, typeset specs) */
.ts-pdp { margin-top: 1rem; }
.ts-pdp__media .woocommerce-product-gallery, .ts-pdp__media .wp-block-woocommerce-product-image-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.ts-pdp__media .woocommerce-product-gallery__image, .ts-pdp__media .flex-viewport { background: var(--wp--preset--color--tile); border-radius: 8px; overflow: hidden; }
.ts-pdp__media .woocommerce-product-gallery__image img { aspect-ratio: 4 / 3.4; object-fit: contain; padding: 7%; box-sizing: border-box; mix-blend-mode: multiply; }
.ts-pdp__media .flex-control-thumbs { display: flex; gap: 0.6rem; margin-top: 0.75rem !important; padding: 0 14px 14px !important; } /* inset from the panel's rounded corner */
.ts-pdp__media .flex-control-thumbs li { width: 76px !important; background: var(--wp--preset--color--tile); border-radius: 6px; overflow: hidden; }
.ts-pdp__media .flex-control-thumbs img { mix-blend-mode: multiply; padding: 6px; box-sizing: border-box; opacity: .7; }
.ts-pdp__media .flex-control-thumbs img.flex-active { opacity: 1; }
.ts-buybox { position: sticky; top: 100px; display: grid; gap: 1rem; }
.ts-pdp__title { font-size: clamp(2rem, 3vw, 2.75rem) !important; margin: 0 !important; }
.ts-pdp__price { margin: 0 !important; }
.ts-pdp__excerpt { color: var(--wp--preset--color--ink-2); font-size: 0.95rem; }
.ts-buybox form.cart { display: flex; gap: 0.75rem; align-items: stretch; margin: 0.25rem 0 0.5rem; }
.ts-buybox .quantity input { height: 100%; width: 4.5rem; border: 1px solid var(--wp--preset--color--line); border-radius: 3px; text-align: center; font: inherit; background: var(--wp--preset--color--surface); }
.ts-buybox .single_add_to_cart_button { flex: 1; font-size: 1rem !important; padding: 0.95rem 1.5rem !important; }
.ts-pdp-details { margin-top: var(--wp--preset--spacing--70) !important; }
.ts-about .wp-block-post-content { color: var(--wp--preset--color--ink-2); font-size: 0.95rem; }
.ts-supplier-panel { margin-bottom: 2.5rem; }

/* Cart and checkout blocks */
.wc-block-cart, .wc-block-checkout { font-size: 0.95rem; }

/* Footer */
.ts-footer { background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--line); }
.ts-footer h4 { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--wp--preset--color--muted); }
.ts-footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; font-size: 0.9rem; }
.ts-footer-lede { color: var(--wp--preset--color--muted); max-width: 40ch; font-size: 0.9rem; }
.ts-footer-fine { color: var(--wp--preset--color--subtle); font-size: 0.75rem; margin-top: 3rem !important; max-width: 90ch; }

/* Plain pages: breadcrumb, title and body share one left edge (templates/page*.html). */
.ts-page-head .ts-page-title { margin: 0.6rem 0 0; }
.ts-page-lede { color: var(--wp--preset--color--ink-2); font-size: 1.1rem; max-width: 62ch; margin-top: 0; }
.ts-guide-updated { color: var(--wp--preset--color--muted); font-size: 14px; margin: 0 0 0.75rem; }
.ts-page-body > * { margin-left: 0 !important; }
.ts-page-body h2 { font-size: 24px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.25; margin: 2.5rem 0 0.75rem; } /* as in guide articles */
.ts-page-body h3 { font-size: 1.15rem; margin: 1.75rem 0 0.5rem; }
.ts-page-body ul { padding-left: 1.2rem; display: grid; gap: 0.4rem; }
.ts-page--wide .ts-page-body > p, .ts-page--wide .ts-page-body > ul { max-width: 72ch; }
.woocommerce-cart .wp-block-woocommerce-empty-cart-block, .wc-block-cart__empty-cart__title { font-family: var(--wp--preset--font-family--serif); }

/* Header tools: compare count and a visible Log in / My account link. */
.ts-header-tools { align-items: center; }
.ts-header-compare[hidden] { display: none; }
.ts-header-compare .ts-icon { width: 18px; height: 18px; }
.ts-header-compare__count { background: var(--wp--preset--color--accent); color: #fff; border-radius: 999px; min-width: 1.3em; text-align: center; padding: 0 0.35em; font-size: 0.75rem; line-height: 18px; }
.ts-account .wc-block-customer-account__account-icon { width: 24px; height: 24px; } /* the cart icon's size */
.ts-header--checkout { position: static; }
.ts-checkout-note { margin: 0; font-size: 0.8125rem; color: var(--wp--preset--color--muted); }
@media (max-width: 781px) { .ts-checkout-note, .ts-header-compare span:not(.ts-header-compare__count) { display: none; } }

/* Product gallery fills its column (WooCommerce's block wrapper caps it at 512px). */
.ts-pdp__media .wp-block-woocommerce-product-image-gallery { width: 100% !important; max-width: none !important; }
.ts-pdp__media .woocommerce-product-gallery__image img { width: 100% !important; height: auto; }

/* Hover zoom, Amazon style (market.js): a lens over the photo and a magnified pane beside it. */
.ts-pdp__media { position: relative; }
.ts-zoom-lens { position: absolute; margin: 0; pointer-events: none; border: 1px solid var(--wp--preset--color--ink-2); background: rgba(255,255,255,.35); box-shadow: 0 0 0 9999px rgba(250,250,249,.25); z-index: 5; display: none; }
.ts-zoom-pane { position: absolute; margin: 0; top: 0; left: calc(100% + var(--wp--preset--spacing--60, 2rem)); width: min(620px, calc(100vw - 100% - 4rem)); aspect-ratio: 1; background-color: #fff; background-repeat: no-repeat; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; box-shadow: 0 18px 40px rgba(28,25,23,.14); z-index: 40; display: none; }
.ts-zoom-on .ts-zoom-lens, .ts-zoom-on .ts-zoom-pane { display: block; }
.ts-zoom-hint { position: absolute; right: 12px; bottom: 12px; z-index: 4; font-size: 0.75rem; color: var(--wp--preset--color--ink-2); background: rgba(255,255,255,.9); border-radius: 3px; padding: 0.25rem 0.6rem; pointer-events: none; }
@media (hover: none), (max-width: 1000px) { .ts-zoom-lens, .ts-zoom-pane, .ts-zoom-hint { display: none !important; } }

/* ======================================================================
   New design (matches the home page): white page, light-grey panels,
   Geist, pill nav and pill buttons, the TL monogram logo.
   ====================================================================== */
body { font-feature-settings: normal; }
::selection { background: var(--wp--preset--color--accent-soft); }

/* Header: logo left, section pill, then search, compare, account, cart and the request button. */
.ts-header { position: relative; z-index: 50; background: rgba(255, 255, 255, .86); backdrop-filter: saturate(1.2) blur(14px); -webkit-backdrop-filter: saturate(1.2) blur(14px); border-bottom: 0; padding: 0 !important; } /* 64px, as the home header */
/* Side padding is the page's own gutter (theme.json root padding), so the logo lines up with the content below. */
.ts-header__in { height: 64px; padding: 0 var(--wp--style--root--padding-right) 0 var(--wp--style--root--padding-left); gap: 32px; }
/* The logo exactly as on the home page (assets/home/style.css .brand). */
.ts-logo { font-size: 20px !important; font-weight: 500 !important; letter-spacing: -0.02em; }
.ts-logo a { color: var(--wp--preset--color--ink); text-decoration: none; display: inline-flex; align-items: center; gap: 11px; height: 40px; }
.ts-logo a::before { content: ""; width: 26px; height: 26px; flex: 0 0 auto; background: url("../logo-tl.svg") center / contain no-repeat; }
/* Same place as the home page: the section pill right after the logo, tools at the far right,
   so the logo and nav never move between pages whatever tools a page shows. */
.ts-header__in { justify-content: flex-start !important; }
/* Checkout: the note stays beside the logo, Back to cart goes to the right edge like the store's button. */
.ts-header--checkout .wp-block-woocommerce-cart-link { margin-left: auto; }
.ts-header .ts-header-tools { margin-left: auto; }
.ts-header .ts-nav { margin-left: 0; }
.ts-header-tools { margin-left: auto; }
/* Every header control is 40px tall: pill 1 + 2 + 34 + 2 + 1. */
.ts-nav .wp-block-navigation__container { background: var(--wp--preset--color--tile); border: 1px solid transparent; border-radius: 999px; padding: 2px; gap: 2px; }
.ts-nav .wp-block-navigation-item__content { display: block; padding: 8px 14px !important; line-height: 18px; border-radius: 999px; font-size: 14px; font-weight: 400; color: var(--wp--preset--color--ink-2); text-decoration: none !important; }
.ts-nav .wp-block-navigation-item__content:hover, .ts-nav .current-menu-item .wp-block-navigation-item__content { background: #fff; color: var(--wp--preset--color--ink); }
.ts-header-tools { gap: 14px !important; }
.ts-account a { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.875rem; font-weight: 500; white-space: nowrap; }
body:not(.logged-in) .ts-account a { padding: 0; } /* WooCommerce pads the logged-out link */
body:not(.logged-in) .ts-account a:hover { color: var(--wp--preset--color--ink-2); }
.ts-header-compare { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem; color: var(--wp--preset--color--ink); white-space: nowrap; background: var(--wp--preset--color--tile); border-radius: 999px; font-weight: 500; padding: 0 0.8rem; height: 40px; box-sizing: border-box; }
/* Store buttons have rounded-square corners (10px), as the front page's hero buttons (the owner, 2026-10-29). */
.ts-cta { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; font-size: 15px; font-weight: 500; line-height: 1; padding: 11px 18px; border-radius: 10px; background: var(--wp--preset--color--ink-2); color: #fff !important; text-decoration: none !important; border: 1px solid var(--wp--preset--color--ink-2); transition: background .2s, color .2s; }
.ts-cta:hover { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); }
.ts-header .ts-cta { height: 40px; box-sizing: border-box; padding-block: 0; }
.ts-cta--line { background: transparent; color: var(--wp--preset--color--ink) !important; margin-top: 1.25rem; }
.ts-cta--line:hover { background: var(--wp--preset--color--ink); color: #fff !important; }
.ts-cta__short { display: none; }
/* The six header links (Parts, Finished Products, Suppliers, Guides, Financing, Sourcing) on one line. Narrower screens tighten them. */
.ts-logo a { white-space: nowrap; }
.ts-nav .wp-block-navigation__container { flex-wrap: nowrap; }
@media (max-width: 1599px) { .ts-nav .wp-block-navigation-item__content { padding: 8px 10px !important; } }
/* Below 1366px the menu moves behind the menu button (WordPress only does that below 600px), so the
   logo, search, Compare, account, cart and the button always fit on the row without overlapping. */
@media (min-width: 600px) and (max-width: 1365px) {
	.ts-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ts-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.ts-header .ts-nav { order: 3; margin-left: 0; }
	.ts-header-tools { margin-left: auto; }
}
/* Nav labels never wrap ("How it works" on three lines) when Compare appears. */
.ts-nav .wp-block-navigation-item__content { white-space: nowrap; }
/* The store header carries the catalog's sections, Financing and Sourcing, so the
   search box is always there to type in. It takes the room between the nav and the tools. */
.ts-header .ts-header-tools { flex: 1 1 auto; justify-content: flex-end; min-width: 0; align-items: center; }
/* Account, cart, Compare and the button share one centre line: each sits in a 40px box. */
.ts-header__in { align-items: center !important; }
.ts-header .ts-account, .ts-header .ts-account a, .ts-header .wc-block-mini-cart, .ts-header .ts-header-compare-wrap { display: inline-flex; align-items: center; height: 40px; }
.ts-header .ts-account a { justify-content: center; min-width: 40px; }
.ts-header .ts-search { flex: 0 1 380px; min-width: 160px; }
.ts-header .ts-search .wp-block-search__inside-wrapper { min-width: 0; width: 100%; height: 40px; box-sizing: border-box; }
.ts-header .ts-search input { min-width: 0; padding-inline: 8px 4px; } /* WordPress's 25px sides clipped the placeholder in narrow boxes */
/* Below 1600px Compare shows its icon and count only, so the search box keeps its room next to the six header links. */
@media (max-width: 1599px) {
	.ts-header-compare > span:not(.ts-header-compare__count) { display: none; }
	.ts-header .ts-header-tools { gap: 10px !important; }
}
@media (max-width: 1240px) { .ts-header__in { gap: 24px !important; } }
/* With the menu behind its button, logo, search, tools and the button are all 10px apart. */
@media (max-width: 1365px) {
	.ts-header__in { gap: 10px !important; }
	.ts-header .ts-search { min-width: 120px; }
}
/* Tablets with Compare showing: the button says Request, so the search field keeps room to type
   (120px and more at 768px; "Send a request" left it 94px). Without Compare it matches the home page. */
@media (min-width: 721px) and (max-width: 1365px) {
	.ts-header-tools:has(.ts-header-compare-wrap:not([hidden])) .ts-cta__long { display: none; }
	.ts-header-tools:has(.ts-header-compare-wrap:not([hidden])) .ts-cta__short { display: inline; }
}
/* Phones and small tablets: the logo row, then the search box on its own row under it. */
@media (max-width: 720px) {
	.ts-header__in { flex-wrap: wrap !important; height: auto !important; padding-top: 10px !important; padding-bottom: 10px !important; row-gap: 10px !important; }
	.ts-header .ts-header-tools { display: contents; }
	.ts-header .ts-header-tools > * { order: 2; }
	.ts-header .ts-header-tools > .ts-header-compare-wrap:not([hidden]), .ts-header .ts-header-tools > .ts-account { margin-left: auto; }
	.ts-header .ts-header-tools > .ts-header-compare-wrap:not([hidden]) ~ .ts-account { margin-left: 0; }
	.ts-header .ts-nav { order: 3; }
	.ts-header .ts-header-tools > .ts-search { order: 10; flex: 1 1 100%; max-width: none; margin: 0; }
	/* One row for logo, Compare, account, cart, the button and the menu: the button says Request. */
	.ts-cta__long { display: none; }
	.ts-cta__short { display: inline; }
}
/* Compare list: the header button opens it; each product can be removed there. */
.ts-header-compare-wrap { position: relative; }
.ts-header-compare-wrap[hidden] { display: none; }
button.ts-header-compare { border: 0; font: inherit; font-size: 0.8125rem; cursor: pointer; }
/* Opens under its button, 8px below the header bar (the 40px button sits 12px above the bar's 1px bottom edge). */
.ts-compare-menu { position: absolute; right: 0; top: calc(100% + 21px); width: 320px; box-sizing: border-box; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; box-shadow: 0 18px 40px rgba(28,25,23,.14); padding: 14px; z-index: 60; }
.ts-compare-menu[hidden] { display: none; }
.ts-compare-menu__title { margin: 0 0 8px; font-size: 0.75rem; color: var(--wp--preset--color--muted); }
.ts-compare-menu__items { list-style: none; margin: 0; padding: 0; }
.ts-compare-menu__items li { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-top: 1px solid var(--wp--preset--color--line); font-size: 0.8125rem; line-height: 1.3; }
.ts-compare-menu__items li:first-child { border-top: 0; }
.ts-compare-menu__items li span { flex: 1; }
.ts-compare-menu__items button { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); background: #fff; cursor: pointer; font-size: 1rem; line-height: 1; color: var(--wp--preset--color--ink); }
.ts-compare-menu__items button:hover { background: var(--wp--preset--color--ink); color: #fff; }
.ts-compare-menu__actions { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.ts-compare-menu__go { padding: 0.5rem 1.1rem !important; font-size: 0.8125rem !important; }
.ts-compare-menu__go.is-disabled { opacity: .45; pointer-events: none; }
.ts-compare-menu__clear { background: none; border: 0; padding: 0; font: inherit; font-size: 0.8125rem; color: var(--wp--preset--color--muted); text-decoration: underline; cursor: pointer; }
.ts-compare-menu__hint { margin: 8px 0 0; font-size: 0.75rem; color: var(--wp--preset--color--muted); }
@media (max-width: 900px) {
	.ts-header .ts-logo { font-size: 18px !important; }
	.ts-header .ts-nav { order: 3; margin-left: 0; }
	.ts-header-tools { margin-left: auto; }
	.ts-header .ts-cta { padding-inline: 14px; font-size: 14px; }
	.ts-header-compare { padding: 0 0.55rem; }
	.ts-compare-menu { width: min(320px, calc(100vw - 32px)); }
}
/* Two-row header: the list opens as a sheet 8px under the whole header (the header is its containing block). */
@media (max-width: 720px) {
	.ts-header-compare-wrap { position: static; }
	.ts-compare-menu { left: var(--wp--style--root--padding-left); right: var(--wp--style--root--padding-right); top: calc(100% + 9px); width: auto; }
}
@media (max-width: 599px) {
	.ts-header .ts-logo a { font-size: 0; gap: 0; }
	.ts-header .ts-logo a::before { width: 28px; height: 28px; }
}
@media (max-width: 420px) { .ts-header__in { gap: 6px !important; } .ts-header .ts-header-tools { gap: 4px !important; } }
/* Small phones: logo, search, account, cart, request and menu all fit on one row. */
@media (max-width: 480px) {
	.ts-header__in { gap: 10px !important; }
	.ts-header-tools { gap: 6px !important; }
	.ts-header .ts-cta { padding-inline: 12px; font-size: 13px; }
}
.ts-header--checkout .wc-block-cart-link { font-size: 14px; font-weight: 500; }

/* Footer, as on the home page: a hairline, the logo, plain links in sentence case. */
/* Side padding is the page gutter (theme.json root padding), so the footer columns line up with the content. */
.ts-footer { margin-top: clamp(4rem, 8vw, 6rem) !important; padding: 56px var(--wp--style--root--padding-right) 36px var(--wp--style--root--padding-left) !important; }
.ts-footer > .alignwide { max-width: none; }
.ts-footer h4 { font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--wp--preset--color--subtle); margin-bottom: 0.9rem; }
.ts-footer-links { gap: 0.55rem; font-size: 15px; }
.ts-footer-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ts-footer-lede { color: var(--wp--preset--color--muted); font-size: 15px; max-width: 36ch; margin-top: 1rem; }
@media (max-width: 781px) { .ts-footer { padding-top: 40px !important; padding-bottom: 28px !important; } }

/* Text, as on the home page: descriptions in ink-2 rather than grey, card names at 500. */
.ts-term-desc, .ts-rail__lede, .ts-page-lede, .ts-guides-area .ts-page-lede, .ts-guide-close p { color: var(--wp--preset--color--ink-2); }
.ts-card-title { font-weight: 500; }

/* Headings: light Geist, tight tracking. */
h1.wp-block-post-title, .wp-block-query-title, .ts-pdp__title { font-weight: 300 !important; letter-spacing: -0.045em; }
.ts-section-title, .ts-directory__prov { font-weight: 300; letter-spacing: -0.035em; }
.ts-brand-header__name { font-weight: 300; letter-spacing: -0.045em; } /* the page H1: same tracking as theme.json's h1 on every other page */
h1 em, h2 em { font-style: normal; color: var(--wp--preset--color--ink); font-weight: 500; }

/* Panels are light grey on the white page, with soft corners. */
.ts-pdp__media .woocommerce-product-gallery, .ts-pdp__media .wp-block-woocommerce-product-image-gallery { background: var(--wp--preset--color--tile); border-radius: 18px; overflow: hidden; }
.ts-key-specs { border-radius: 16px; }
.ts-supplier-card { border-radius: 16px; background: var(--wp--preset--color--tile); box-shadow: none; }
.ts-note { border-radius: 12px; }
.ts-badge { border-radius: 999px; }
.ts-rfq-link { color: var(--wp--preset--color--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--wp--preset--color--line); }
.ts-rfq-link:hover { text-decoration-color: var(--wp--preset--color--ink); }
.wc-block-components-quantity-selector { border-radius: 10px !important; }
/* Quantity: same height as Add to cart, in line with it (WooCommerce's clearfix would sit in the row as a gap). */
.ts-buybox form.cart::before, .ts-buybox form.cart::after { display: none !important; }
.ts-buybox form.cart .quantity { margin: 0; }
.ts-pdp .quantity input.qty { box-sizing: border-box; height: 100%; width: 5rem; margin: 0; padding: 0 0.5rem; text-align: center; border: 1px solid var(--wp--preset--color--line); border-radius: 10px !important; }
.ts-card-img a, .wc-block-components-product-image { border-radius: 14px; overflow: hidden; }

/* Notices: quiet grey bars, not green boxes. */
.wc-block-components-notice-banner { border-radius: 14px !important; border: 0 !important; background: var(--wp--preset--color--tile) !important; color: var(--wp--preset--color--ink) !important; font-size: 15px; }
.wc-block-components-notice-banner.is-success > svg { background: var(--wp--preset--color--ink) !important; }
.wc-block-components-notice-banner.is-error > svg { background: var(--wp--preset--color--accent) !important; }

/* Cart and checkout blocks. */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-size: 15px; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { background: var(--wp--preset--color--tile); border-radius: 18px; padding: 24px !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-components-sidebar .wc-block-components-totals-wrapper { border-color: var(--wp--preset--color--line) !important; }
.wc-block-cart-items { border-bottom-color: var(--wp--preset--color--line) !important; }
.wc-block-cart-items__header { font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--wp--preset--color--subtle); font-weight: 400 !important; }
.wc-block-cart-item__image img { border-radius: 12px; background: var(--wp--preset--color--tile); }
.wc-block-components-product-name { font-weight: 500; text-decoration: none !important; }
.wc-block-components-text-input input, .wc-block-components-text-input textarea, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-block-components-textarea { border-radius: 12px !important; border-color: #d6d6d6 !important; background: #fff !important; }
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus { border-color: var(--wp--preset--color--ink) !important; box-shadow: none !important; }
.wc-block-components-checkout-step__title, .wc-block-components-title { font-weight: 500 !important; letter-spacing: -0.02em; }
.wc-block-components-checkout-step__description { color: var(--wp--preset--color--muted); }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: 14px !important; }
.wc-block-components-radio-control--highlight-checked::after { border-radius: 14px !important; border: 1px solid var(--wp--preset--color--line) !important; box-shadow: none !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { border-radius: 14px !important; box-shadow: inset 0 0 0 1px var(--wp--preset--color--ink) !important; }
.wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; border-radius: 0; }
.wc-block-cart__totals-title { text-transform: none !important; font-size: 18px !important; font-weight: 500 !important; letter-spacing: -0.01em; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { border-radius: 10px !important; min-height: 52px; font-weight: 500 !important; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { font-variant-numeric: tabular-nums; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 500 !important; font-size: 18px !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 6px; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked + .wc-block-components-checkbox__mark { fill: #fff; }
.wc-block-components-order-summary-item__image img { border-radius: 10px; background: #fff; }
.wc-block-components-order-summary-item__quantity { background: var(--wp--preset--color--ink) !important; color: #fff !important; border-color: var(--wp--preset--color--ink) !important; }
/* The order summary and the cart list each item by its name and price only: the short description repeated the product page (owner, 2026-10-20). */
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description, .wc-block-cart-items .wc-block-components-product-metadata__description { display: none; }
.wc-block-cart__empty-cart__title { font-weight: 300; letter-spacing: -0.04em; }

/* Sub-category pills, filter and spec-group labels in sentence case (no caps eyebrows). */
.ts-spec-table h3, .ts-eyebrow, .wc-block-components-product-metadata h3 { text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; font-weight: 500 !important; color: var(--wp--preset--color--ink) !important; }
.ts-spec-table h3 { color: var(--wp--preset--color--subtle) !important; }
.wc-block-components-sort-select__select, .woocommerce-ordering select, .orderby { border-radius: 10px !important; border: 1px solid var(--wp--preset--color--line) !important; padding: 0.5rem 2rem 0.5rem 1rem !important; background-color: #fff; }

/* My account: soft panels and inputs. */
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { border: 0 !important; border-radius: 18px !important; background: var(--wp--preset--color--tile); padding: 28px !important; }
.woocommerce form .input-text, .woocommerce-Input { border-radius: 12px !important; border: 1px solid #d6d6d6 !important; background: #fff !important; padding: 0.75rem 0.9rem !important; font-size: 16px !important; min-height: 50px; box-sizing: border-box; } /* 16px: iOS does not zoom; 50px: the checkout fields' height */
.woocommerce form .input-text:focus { border-color: var(--wp--preset--color--ink) !important; outline: none; }
/* The account menu (ink-filled current item) is styled in the plugin's market.css only. */

/* Menu-button widths (below 1366px): the header's blur would make it the containing block of the full-screen
   menu and trap the menu inside the 64px bar, so wherever the menu button shows, the header is solid. */
@media (max-width: 1365px) {
	.ts-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; }
	/* The open menu: a full-height drawer over the dimmed page, never inside the header bar; a long list scrolls
	   in the drawer. On a phone it is the full width; from 600px a 380px drawer on the right (below). */
	.ts-nav .wp-block-navigation__responsive-container.is-menu-open { --ts-menu-fs: 22px; --ts-menu-py: 12px; top: 0; bottom: 0; height: auto; max-height: none; overflow-y: auto; overscroll-behavior: contain; background: #fff; padding: 20px var(--wp--style--root--padding-right) 28px var(--wp--style--root--padding-left); box-shadow: 0 0 0 100vmax rgba(15, 15, 15, 0.35), 0 12px 30px rgba(0, 0, 0, 0.12); }
	.ts-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 8px; }
	/* One rhythm for every item (the owner, 2026-10-29: the gaps differed): no gap or margin between items,
	   the same size and padding on each top-level link, and the same 1px line above each item but the first. */
	.ts-nav .is-menu-open .wp-block-navigation__responsive-container-content, .ts-nav .is-menu-open .wp-block-navigation__container { align-items: stretch !important; }
	.ts-nav .is-menu-open .wp-block-navigation__container { flex-direction: column !important; width: 100%; background: none; padding: 0; gap: 0 !important; }
	.ts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; margin: 0 !important; padding: 0; border: 0; border-radius: 0; }
	.ts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item + .wp-block-navigation-item { border-top: 1px solid var(--wp--preset--color--line); }
	.ts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: block; width: 100%; box-sizing: border-box; font-size: var(--ts-menu-fs) !important; font-weight: 300; letter-spacing: -0.02em; line-height: 1.2; padding: var(--ts-menu-py) 0 !important; border-radius: 0; background: none !important; color: var(--wp--preset--color--ink); }
	/* Under Parts and Finished Products, their categories; the list ends with the same padding as a link. */
	.ts-nav .is-menu-open .ts-nav-cats { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; padding: 0 0 calc(var(--ts-menu-py) + 4px); }
	.ts-nav-cats__group { min-width: 0; }
	.ts-nav-cats__cat { display: block; font-size: 15px; font-weight: 400; line-height: 1.3; color: var(--wp--preset--color--ink-2); text-decoration: none; }
	/* The link under the pointer, pressed or reached with the keyboard, and the current page, are bold. */
	.ts-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:is(:hover, :focus-visible, :active),
	.ts-nav .is-menu-open .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
	.ts-nav-cats__cat:is(:hover, :focus-visible, :active), .ts-nav-cats__cat.is-current { font-weight: 600; color: var(--wp--preset--color--ink); }
	.ts-nav .is-menu-open a:focus:not(:focus-visible) { outline: none; }
	.ts-nav .is-menu-open a:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; border-radius: 4px; }
}
/* From 600px the menu is a narrow drawer on the right, the full height, over the dimmed page (the owner,
   2026-10-29: half the page was too wide). The categories are in one column. */
@media (min-width: 600px) and (max-width: 1365px) {
	.ts-nav .wp-block-navigation__responsive-container.is-menu-open { --ts-menu-fs: 20px; --ts-menu-py: 11px; left: auto; right: 0; width: 380px; box-sizing: border-box; border-radius: 16px 0 0 16px; padding: 20px 28px 28px; }
	.ts-nav .is-menu-open .ts-nav-cats { grid-template-columns: minmax(0, 1fr); gap: 9px; }
}
/* The inline header links (1366px and wider) carry no category list. */
.ts-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .ts-nav-cats { display: none; }

/* ===== Guides in the new design: a light headline, a grid of grey cards, readable articles, the home's request close ===== */
.ts-guides-area .ts-page-head { padding-top: 48px !important; padding-bottom: 8px !important; }
.ts-guides-area h1.ts-page-title, .ts-guides-area h1.wp-block-post-title { line-height: 1.06; } /* size: theme.json h1, one scale for every page */
.ts-guides-area .ts-page-lede { font-size: 16px; color: var(--wp--preset--color--muted); max-width: 60ch; margin-top: 0.75rem; }

/* Index: one rounded block of grey cards split by hairlines, as on the home page. */
.ts-guide-home .ts-guides { margin-top: 2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--wp--preset--color--line); border: 1px solid var(--wp--preset--color--line); border-radius: 18px; overflow: hidden; }
.ts-guides-area .ts-guide { display: flex; flex-direction: column; background: var(--wp--preset--color--tile); border-radius: 0; box-shadow: none; padding: 22px 24px 22px; min-height: 240px; text-decoration: none; transition: background .2s; }
.ts-guides-area .ts-guide:hover { background: #fafafa; box-shadow: none; color: var(--wp--preset--color--ink); }
.ts-guides-area .ts-guide:hover .ts-guide__title { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.ts-guides-area .ts-guide__kicker { font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 400; letter-spacing: 0.02em; text-transform: none; color: var(--wp--preset--color--subtle); }
.ts-guides-area .ts-guide__title { font-family: var(--wp--preset--font-family--sans); font-size: 21px; font-weight: 400; line-height: 1.2; letter-spacing: -0.02em; margin: 1.25rem 0 0.6rem; }
.ts-guides-area .ts-guide p { font-size: 14.5px; line-height: 1.55; color: var(--wp--preset--color--muted); margin: 0 0 1.25rem; }
.ts-guides-area .ts-guide__more { margin-top: auto; font-size: 14px; font-weight: 500; }
@media (max-width: 1000px) { .ts-guide-home .ts-guides { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ts-guide-home .ts-guides, .ts-guides--compact { grid-template-columns: 1fr !important; } .ts-guides-area .ts-guide { min-height: 0; } }

/* Article: reading width, light section heads over a hairline, quiet lists. */
.ts-guide-article .ts-page-body > .ts-page-lede { font-size: 19px; line-height: 1.5; color: var(--wp--preset--color--ink-2); }
.ts-guide-article .ts-page-body > h2 { font-size: 24px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.25; margin: 3rem 0 0.9rem; padding-top: 1.75rem; border-top: 1px solid var(--wp--preset--color--line); }
.ts-guide-article .ts-page-body > h3 { font-size: 18px; font-weight: 500; margin: 2rem 0 0.5rem; }
.ts-guide-article .ts-page-body > p, .ts-guide-article .ts-page-body > ul li, .ts-guide-article .ts-page-body > ol li { font-size: 16.5px; line-height: 1.7; color: var(--wp--preset--color--ink-2); }
.ts-guide-article .ts-page-body strong { font-weight: 500; color: var(--wp--preset--color--ink); }
.ts-guide-article .ts-page-body > ul { gap: 0.6rem; }
.ts-guide-article .ts-page-body > ul li::marker { color: var(--wp--preset--color--subtle); }
.ts-guide-article .ts-page-body a:not(.ts-cta):not(.ts-guide) { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #c9c9c9; }
.ts-guide-article .ts-page-body a:not(.ts-cta):not(.ts-guide):hover { text-decoration-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--ink); }
.ts-guide-article .ts-page-body table { border-collapse: collapse; width: 100%; font-size: 15px; }
.ts-guide-article .ts-page-body th, .ts-guide-article .ts-page-body td { text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--wp--preset--color--line); }

/* More guides after an article. */
.ts-guide-more { margin-top: 4rem; }
.ts-guide-more h2 { font-size: 20px; font-weight: 400; letter-spacing: -0.02em; margin: 0 0 1rem; }
@media (min-width: 641px) { .ts-guides--compact { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } .ts-guides--compact .ts-guide { min-height: 150px; } } /* phones: one column (640px rule above) */
.ts-guides--compact { gap: 1px !important; background: var(--wp--preset--color--line); border: 1px solid var(--wp--preset--color--line); border-radius: 16px; overflow: hidden; }
.ts-guides--compact .ts-guide { padding: 18px 20px; }
.ts-guides--compact .ts-guide__title { font-size: 17px; margin-top: 0; }

/* The home page's close: grey panel, a light two-tone line, the request button. */
.ts-guide-close { margin-top: 4rem; background: var(--wp--preset--color--tile); border-radius: 22px; padding: clamp(32px, 5vw, 56px) clamp(20px, 4vw, 48px); text-align: center; }
.ts-guide-close h2 { font-size: clamp(26px, 2.8vw, 40px) !important; font-weight: 300 !important; letter-spacing: -0.04em; line-height: 1.1; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.ts-guide-close h2 span { color: #a3a3a3; }
.ts-guide-close p { font-size: 16px; color: var(--wp--preset--color--muted); max-width: 52ch; margin: 0.9rem auto 0 !important; }
.ts-guide-close .ts-cta { margin-top: 1.5rem; padding: 14px 22px; }
/* Hairlines drawn on the cards (not grid gaps), so an empty last slot stays grey. */
.ts-guide-home .ts-guides, .ts-guides--compact { gap: 0 !important; background: var(--wp--preset--color--tile) !important; }
.ts-guides-area .ts-guides .ts-guide { border-right: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); margin: 0 -1px -1px 0; }
.ts-guides-area .ts-page-head { padding-bottom: 0 !important; }
.ts-guides-area .ts-page-body > .ts-page-lede:first-child { margin-top: 0.25rem; }
.ts-guides-area .ts-guides .ts-guide { background: transparent; }
.ts-guides-area .ts-guides .ts-guide:hover { background: rgba(255, 255, 255, .55); }
/* Menu items carry no background of their own (their square corners poked past the pill's rounded ends). */
.ts-nav .wp-block-navigation__container > .wp-block-navigation-item { background: transparent !important; border-radius: 999px; }

/* Catalog pages (categories, suppliers, search) at the directory's scale: a smaller head, four cards a row. */
.ts-archive-head h1 { line-height: 1.06; margin: 0.4rem 0 0.4rem; } /* size: theme.json h1 */
.ts-term-desc, .ts-term-desc p { font-size: 15px; }
.ts-archive-head .ts-subcats { margin-top: 1rem; }
@media (min-width: 1200px) { .ts-shop-main .ts-products .wc-block-product-template.columns-3 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 1.25rem !important; } }
.ts-shop-main .ts-card-title { font-size: 14.5px !important; }
.ts-shop-main .ts-card-supplier { font-size: 12.5px; margin-top: 0.6rem; }
.ts-shop-main .ts-chip { font-size: 13px; }
.ts-shop-main .wc-block-components-product-price { font-size: 15px; }

/* The current section's pill: functions.php marks its link current-menu-item (rule beside .ts-nav above). */

/* ===== UI pass 2026-10-09 ===== */
/* Touch targets: every control people tap on a phone or tablet is at least 40px each way (the visual size can stay smaller). */
@media (max-width: 1040px) {
	.ts-nav .wp-block-navigation__responsive-container-open, .ts-nav .wp-block-navigation__responsive-container-close { width: 40px; height: 40px; justify-content: center; align-items: center; }
}
@media (max-width: 720px) {
	.ts-header .ts-search .wp-block-search__inside-wrapper { padding: 0 0 0 14px; }
	.ts-header .ts-search .wp-block-search__button { min-width: 40px; min-height: 40px; margin: 0; }
	.ts-compare-menu__items button { width: 40px; height: 40px; border: 7px solid transparent; background-clip: padding-box; box-shadow: inset 0 0 0 1px var(--wp--preset--color--line); }
	.ts-compare-menu__clear { padding: 10px 0; }
	.ts-footer-links { gap: 0; }
	.ts-footer-links li { margin: 0; }
	.ts-footer-links a { display: inline-block; padding: 8px 0; }
	.ts-header--checkout .wc-block-cart-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0; box-sizing: border-box; } /* a 40px tap target that keeps the row at 60px */
	.ts-header--checkout .ts-header__in { min-height: 60px; }
	.wp-block-woocommerce-breadcrumbs a, .woocommerce-breadcrumb a { display: inline-block; padding: 11px 0; margin: -11px 0; }
}
/* Fields under 16px make iOS Safari zoom in on focus. */
@media (max-width: 1100px) { .ts-search input, .ts-toolbar select, .ts-range__inputs input { font-size: 16px !important; } }

/* Grid pagination: 40px page numbers, the current one filled. */
.wp-block-query-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 40px; height: 40px; border-radius: 4px; box-sizing: border-box; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--ink); color: #fff; }
.wp-block-query-pagination-next, .wp-block-query-pagination-previous { display: inline-flex; align-items: center; min-height: 40px; }

/* Freight is quoted after the order: the $0 rate must not also read "Free". */
.wc-block-components-radio-control__secondary-label:has(> .wc-block-checkout__shipping-option--free:only-child), .wc-block-checkout__shipping-option--free, .wc-block-components-totals-shipping .wc-block-components-totals-item__value > strong:only-child { display: none; }

/* Empty cart (functions.php replaces WooCommerce's sad face and "New in store" grid). */
.ts-empty-cart { padding: clamp(1rem, 4vw, 3rem) 0; }
.ts-empty-cart .wc-block-cart__empty-cart__title { font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--xl); font-weight: 400; letter-spacing: -0.02em; text-align: left; margin: 0 0 0.6rem; }
.ts-empty-cart .wc-block-cart__empty-cart__title::before { display: none; }
.ts-empty-cart p { color: var(--wp--preset--color--ink-2); margin: 0 0 1.5rem; max-width: 52ch; }
.ts-empty-cart__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.ts-empty-cart__actions .ts-cta--line { margin-top: 0; }

/* Cart quantity stepper: Geist, not the browser's Arial, and 40px buttons. */
body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { font-family: inherit; font-size: 15px; } /* body: WooCommerce's cart.css loads after this file */
.wc-block-components-quantity-selector { min-height: 42px; } /* 40px buttons inside its 1px border */
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 40px; }
.wc-block-cart-item__remove-link { min-width: 40px; min-height: 40px; display: inline-flex !important; align-items: center; justify-content: center; }
/* Line-item description and quantity badge: WooCommerce's 0.75em came out at 11px. */
.wc-block-components-product-metadata, body .wc-block-components-product-metadata .wc-block-components-product-metadata__description > p { font-size: 13px; line-height: 1.45; }
body .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity, body .wc-block-components-order-summary-item__quantity { font-size: 12px; }

/* Checkout: one 1px ring on the chosen option (the container's ring drew a second, offset one). */
.wc-block-components-radio-control--highlight-checked::after { display: none !important; }
.wc-block-components-radio-control__option::after, .wc-block-components-radio-control-accordion-option::after { box-shadow: none !important; border: 0 !important; }
/* "Log in" on the Contact information line, with a 40px target. */
.wc-block-checkout__contact-fields .wc-block-components-checkout-step__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.wc-block-checkout__contact-fields .wc-block-components-checkout-step__heading-content { display: block; }
.wc-block-checkout__contact-fields .wc-block-components-checkout-step__heading .wc-block-checkout__login-prompt { float: none; display: block; line-height: 20px; padding: 10px 0; margin: -10px 0; }

/* Links inside sentences look like links. */
.wc-block-checkout__terms a, .woocommerce-privacy-policy-text a, .ts-page-body > p a:not(.ts-cta), .ts-page-body > ul li a:not(.ts-cta), .ts-page-body > ol li a:not(.ts-cta) { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #c9c9c9; }

/* Remember me: the checkout's 20px rounded checkbox, not the browser's 13px one. */
.woocommerce form .woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center; gap: 0.6rem; min-height: 40px; cursor: pointer; }
.woocommerce form .woocommerce-form__input-checkbox { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 0; border: 1px solid #d6d6d6; border-radius: 6px; background: #fff center / 14px no-repeat; cursor: pointer; }
.woocommerce form .woocommerce-form__input-checkbox:checked { background-color: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }
.woocommerce form .woocommerce-form__input-checkbox:focus-visible { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 2px; }

/* 404: the store's search box, at full width. */
.ts-404 .ts-search { max-width: 520px; margin-top: 1.5rem; }
.ts-404 .ts-search .wp-block-search__inside-wrapper { min-width: 0; height: 50px; box-sizing: border-box; }
.ts-404 .ts-search input { font-size: 16px; }
.ts-404__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.75rem; }
.ts-404__actions .ts-cta--line { margin-top: 0; }

/* Cart drawer: compact buttons (the owner, 2026-10-29: "View my cart" and "Go to checkout" were 78px tall),
   with the same rounded-square corners as the front page's buttons. */
.wc-block-mini-cart__footer { padding-block: 16px !important; }
.wc-block-mini-cart__footer-actions { gap: 8px !important; margin-top: 12px; }
.wc-block-mini-cart__footer-actions .wc-block-components-button { flex: 1 1 0; min-height: 40px !important; height: 40px; padding: 0 14px !important; border-radius: 10px !important; font-size: 14px !important; font-weight: 600; line-height: 1 !important; }
.wc-block-mini-cart__footer-actions .wc-block-components-button .wc-block-components-button__text { line-height: 1; }
