/* Extensions of the homepage design system; all colours and spacing use its tokens. */
.product-facts dl{margin:18px 0;font-size:13px;border-block:1px solid var(--pt-line);padding-block:10px}
.product-facts dl:empty{display:none}.product-facts dl>div{display:grid;grid-template-columns:minmax(90px,35%) 1fr;gap:14px;padding-block:6px}
.product-facts dt{color:var(--pt-muted)}.product-facts dd{margin:0;overflow-wrap:anywhere}
.product-delivery{background:var(--pt-beige);border:1px solid var(--pt-line);border-radius:12px;padding:18px;margin-block:20px;font-size:13px;line-height:1.6}
.pt-commerce .product-delivery h2{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:0;margin:0 0 10px}
.product-delivery p{margin-bottom:10px}.product-delivery a{text-decoration:underline;display:inline-flex;align-items:center;min-height:44px}
.woocommerce .product-search input{width:100%}
.pt-commerce{padding-block:28px 48px;min-height:60vh}
.pt-commerce .woocommerce-breadcrumb{font-size:13px;color:var(--pt-muted);margin-bottom:28px;line-height:1.7}
.pt-commerce .woocommerce-breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.catalog-heading{max-width:780px;margin-bottom:24px}
.catalog-heading .eyebrow{margin-bottom:12px}
.catalog-heading h1{font-size:36px;letter-spacing:-.5px;margin-bottom:16px}
.catalog-heading .term-description{color:var(--pt-muted)}
.catalog-families{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.catalog-families .filter-pill{min-height:44px;display:inline-flex;align-items:center}
.catalog-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:28px}
.catalog-sidebar{min-width:0}
.catalog-filter-panel{background:var(--pt-white);border:1px solid var(--pt-line);border-radius:var(--pt-card-radius);overflow:hidden}
.catalog-filter-panel>summary{padding:18px;font-weight:700;cursor:pointer;min-height:48px}
.catalog-filter-content{padding:0 18px 20px}
.catalog-categories{margin:0 0 18px}
.catalog-categories a{display:flex;align-items:center;min-height:44px;padding-block:9px;font-size:13px;line-height:1.4;border-bottom:1px solid var(--pt-line)}
.catalog-categories a[aria-current=page]{font-weight:700;color:var(--pt-focus)}
.catalog-filter-form{display:grid;gap:14px;font-size:13px}
.catalog-filter-form fieldset{margin:0;padding:0;border:0;min-width:0}
.catalog-filter-form legend{font-weight:700;margin-bottom:10px}
.catalog-price-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.catalog-price-fields input{display:block;width:100%;min-height:44px;padding:10px 8px;margin-top:6px;font-size:14px}
.catalog-checkbox{display:flex;align-items:center;gap:10px;min-height:44px;line-height:1.4}
.catalog-checkbox input{width:18px;height:18px;flex-shrink:0;accent-color:var(--pt-focus)}
.catalog-filter-form select{width:100%;min-height:44px;padding:10px;font-size:14px}
.catalog-filter-form>.button{font-size:14px;min-height:44px}
.catalog-reset{min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:underline}
.catalog-results{min-width:0;scroll-margin-top:24px}
.catalog-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:18px;min-height:28px}
.catalog-toolbar .woocommerce-result-count{margin:0;font-size:14px;float:none;color:var(--pt-muted)}
.catalog-toolbar .woocommerce-notices-wrapper{flex-basis:100%}
.catalog-toolbar .woocommerce-notices-wrapper:empty{display:none}
.catalog-results .product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.catalog-results .product-copy h3{font-size:17px;min-height:42px}
.catalog-results .product-specs{font-size:13px;min-height:40px}
.catalog-results .product-category{font-size:11px}
.catalog-results .product-copy{padding:16px}
.catalog-results .product-image{height:170px}
.catalog-results .quantity-control{flex:0 0 46%;min-width:0}
.catalog-results .quantity-control input{width:100%;padding:0}
.catalog-results .add-button{font-size:13px;padding-inline:8px}
.pt-commerce nav.woocommerce-pagination{margin-top:28px}
.pt-commerce nav.woocommerce-pagination ul{border:0;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pt-commerce nav.woocommerce-pagination ul li{border:0;float:none}
.pt-commerce nav.woocommerce-pagination ul li a,.pt-commerce nav.woocommerce-pagination ul li span{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--pt-line);border-radius:10px;background:var(--pt-white);color:var(--pt-ink)}
.pt-commerce nav.woocommerce-pagination ul li span.current,.pt-commerce nav.woocommerce-pagination ul li a:hover{background:var(--pt-gold);border-color:var(--pt-gold)}
.pt-commerce .woocommerce-message,.pt-commerce .woocommerce-info,.pt-commerce .woocommerce-error{background:var(--pt-beige);color:var(--pt-ink);border-top-color:var(--pt-gold);border-radius:10px;overflow-wrap:anywhere}
.pt-commerce .woocommerce-message::before,.pt-commerce .woocommerce-info::before{color:var(--pt-focus)}
.pt-commerce .woocommerce-message .button{line-height:1.3}
/* Retain the native gallery, variation form, stock validation and structured data. */
.pt-commerce div.product{display:flow-root}
.pt-commerce div.product div.images{width:46%;margin-bottom:32px;background:var(--pt-white);border:1px solid var(--pt-line);border-radius:var(--pt-radius);padding:28px;overflow:hidden}
.pt-commerce div.product div.images img{aspect-ratio:1;object-fit:contain}
.pt-commerce div.product div.summary{width:49%;margin-bottom:32px}
.pt-commerce div.product .product_title{font-size:34px;line-height:1.2;letter-spacing:-.4px;margin-bottom:18px}
.pt-demo-label{display:inline-flex;align-items:center;padding:6px 12px;border-radius:7px;background:var(--pt-beige);font-size:12px;font-weight:700;margin-bottom:10px}
.pt-commerce div.product p.price,.pt-commerce div.product span.price{color:var(--pt-ink);font-size:30px;font-weight:700;margin-block:22px}
.pt-commerce div.product p.price .woocommerce-Price-currencySymbol{font-size:16px}
.pt-commerce .woocommerce-product-details__short-description{color:var(--pt-muted);font-size:16px;line-height:1.65}
.pt-bulk-explanation{font-size:14px;border-left:3px solid var(--pt-gold);padding:12px 16px;background:var(--pt-white);margin-block:20px}
.pt-bulk-explanation small{display:block;color:var(--pt-muted);font-size:12px;margin-top:6px}
.pt-commerce div.product form.cart{margin-block:22px;display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.pt-commerce div.product form.cart div.quantity{float:none;margin:0}
.pt-commerce div.product form.cart .qty{width:84px;min-height:48px;background:var(--pt-white);padding:12px}
.pt-commerce div.product form.cart .button{float:none;min-height:48px;line-height:1.3;font-size:16px;border:1px solid var(--pt-gold);padding:12px 20px;background:var(--pt-gold);color:var(--pt-ink)}
.pt-commerce div.product form.cart .button:hover{background:var(--pt-gold-hover)}
.pt-commerce div.product form.cart .button.disabled{opacity:.45;cursor:not-allowed}
.pt-commerce div.product form.cart table.variations{width:100%;margin-bottom:8px}
.pt-commerce div.product form.cart table.variations th,.pt-commerce div.product form.cart table.variations td{padding:8px 0;border:0;vertical-align:middle}
.pt-commerce div.product form.cart table.variations select{width:100%;min-height:48px}
.pt-commerce .single_variation_wrap{width:100%}
.pt-commerce .woocommerce-variation-add-to-cart{display:flex;gap:12px;flex-wrap:wrap}
.pt-commerce .reset_variations{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline}
.pt-commerce div.product .stock{color:var(--pt-muted);font-size:14px;font-weight:700}
.pt-commerce div.product .out-of-stock{color:var(--pt-red)}
.pt-commerce .product_meta{font-size:13px;color:var(--pt-muted);border-top:1px solid var(--pt-line);padding-top:18px;display:grid;gap:8px}
.pt-commerce .product_meta a{text-decoration:underline}
.pt-commerce div.product .woocommerce-tabs{clear:both;background:var(--pt-white);border:1px solid var(--pt-line);border-radius:var(--pt-radius);padding:24px;margin-bottom:36px}
.pt-commerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:10px;overflow:visible}
.pt-commerce div.product .woocommerce-tabs ul.tabs::before,.pt-commerce div.product .woocommerce-tabs ul.tabs li::before,.pt-commerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.pt-commerce div.product .woocommerce-tabs ul.tabs li{margin:0;padding:0;border:1px solid var(--pt-line);border-radius:10px;background:var(--pt-cream)}
.pt-commerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--pt-beige);border-color:var(--pt-gold)}
.pt-commerce div.product .woocommerce-tabs ul.tabs li a{padding:12px 16px;min-height:44px;color:var(--pt-ink);font-size:14px}
.pt-commerce div.product .woocommerce-tabs .panel{margin:0;line-height:1.7}
.pt-commerce div.product .woocommerce-tabs h2,.pt-commerce .related>h2,.pt-commerce .upsells>h2{font-size:25px;margin-bottom:18px}
.pt-commerce .related,.pt-commerce .upsells{clear:both}
.pt-commerce ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.pt-commerce ul.products::before,.pt-commerce ul.products::after{display:none}
.pt-commerce ul.products li.product{float:none!important;width:auto!important;margin:0!important;display:flex;flex-direction:column}
.pt-commerce ul.products li.product a img{height:170px;object-fit:contain;margin-bottom:16px}
.pt-commerce ul.products li.product .woocommerce-loop-product__title{font-size:17px;line-height:1.4}
.pt-commerce ul.products li.product .price{color:var(--pt-ink);font-weight:700;font-size:20px;margin-block:10px 18px}
.pt-commerce ul.products li.product .button{min-height:44px;font-size:14px;text-align:center;margin-top:auto}
.pt-commerce span.onsale{background:var(--pt-gold);color:var(--pt-ink);border-radius:8px;min-height:32px;line-height:1.4;padding:8px 12px;z-index:2}
@media(max-width:1100px){.catalog-layout{grid-template-columns:212px minmax(0,1fr);gap:22px}.catalog-results .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-results .add-button{font-size:14px}.pt-commerce div.product .product_title{font-size:30px}}
@media(max-width:980px){.catalog-results .quantity-control button{min-width:44px}.catalog-results .product-add{flex-wrap:wrap}.catalog-results .quantity-control{flex:1 0 100%;height:46px}.catalog-results .add-button{flex:1 0 100%;min-height:44px}.pt-commerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.pt-commerce{padding-block:22px 32px}.catalog-heading h1{font-size:28px}.catalog-heading{margin-bottom:18px}.catalog-families{gap:8px;margin-bottom:22px}.catalog-families .filter-pill{font-size:12px;padding-inline:12px}.catalog-layout{grid-template-columns:1fr;gap:22px}.catalog-filter-content{display:grid;grid-template-columns:1fr 1fr;gap:24px}.catalog-categories{margin:0}.pt-commerce div.product div.images,.pt-commerce div.product div.summary{float:none;width:100%}.pt-commerce div.product div.images{padding:20px;max-width:460px;margin-inline:auto}.pt-commerce div.product .product_title{font-size:28px}.pt-commerce div.product .woocommerce-tabs{padding:20px}.pt-commerce ul.products{gap:12px}}
@media(max-width:480px){.catalog-filter-content{grid-template-columns:1fr;gap:18px}.catalog-heading h1{font-size:26px}.catalog-results .product-grid{gap:12px}.catalog-results .product-copy{padding:12px 10px}.catalog-results .product-copy h3{font-size:14px;min-height:55px}.catalog-results .product-specs{font-size:12px;min-height:50px}.catalog-results .product-category{font-size:10px;min-height:30px}.catalog-results .product-image{height:125px}.catalog-results .add-button{font-size:13px}.pt-commerce div.product div.images{padding:18px}.pt-commerce div.product .product_title{font-size:26px}.pt-commerce div.product .woocommerce-tabs ul.tabs li a{padding:12px;font-size:13px}.pt-commerce ul.products li.product .woocommerce-loop-product__title{font-size:14px}.pt-commerce ul.products li.product a img{height:120px}.pt-commerce ul.products li.product .price{font-size:17px}.pt-commerce ul.products li.product .button{font-size:12px;padding-inline:8px}.pt-commerce .woocommerce-message .button{float:none;display:table;margin-bottom:12px}.catalog-results .empty-results{padding:22px}.catalog-results .empty-results h2{font-size:22px}}
@media(max-width:700px){.catalog-filter-form input,.catalog-filter-form select,.catalog-results .quantity-control input{font-size:16px}}
