/* Approved catalogue layout; colors and fonts inherit the Phase 2 tokens. */
.site-main--shop .shop-container{padding-top:22px;padding-bottom:0}
.site-main--shop .woocommerce-breadcrumb{margin:0 0 14px;font-size:14px;color:var(--bu-color-text-2)}
/* Rank Math breadcrumbs inside the shop container: no nested container padding (design: breadcrumb flush with the heading). */
.site-main--shop .shop-container>.breadcrumbs{max-width:none;padding:0;margin:0 0 14px;font-size:14px}
.bu-archive-header{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 40px;padding-bottom:26px;
/* Full-width rule under the intro (design). */
border-image:linear-gradient(to top,var(--bu-color-border) 1px,transparent 1px) fill 0/0/0 100vmax}
.bu-archive-header h1{margin:0;font-size:var(--bu-text-h1);line-height:.95;text-transform:uppercase;overflow-wrap:anywhere}
.bu-archive-header__description{max-width:520px;font-size:16px;line-height:1.5;color:var(--bu-color-text-2)}
.bu-archive-header__description p{margin:0}
.bu-category-shortcuts{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:14px 0;
/* Full-bleed band (design) while the chips stay aligned with the container. */
border-image:linear-gradient(to top,var(--bu-color-border) 1px,var(--bu-color-surface) 1px) fill 0/0/0 100vmax}
.bu-category-shortcuts a{flex:none;display:flex;gap:10px;align-items:center;height:44px;padding:0 14px 0 6px;border:var(--bu-border);background:var(--bu-color-white);font-size:14px;font-weight:var(--bu-weight-medium)}
.bu-category-shortcuts a.bu-category-shortcuts__all{padding:0 16px;background:var(--bu-color-ink);border-color:var(--bu-color-ink);color:var(--bu-color-white)}
.bu-category-shortcuts__thumb{width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--bu-color-white)}
.bu-category-shortcuts img{max-width:28px;max-height:28px;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply}
.bu-catalogue{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(24px,3vw,40px);padding:clamp(24px,3vw,40px) 0 clamp(40px,5vw,64px)}
.bu-catalogue:not(:has(.bu-filters)){grid-template-columns:minmax(0,1fr)}
.bu-catalogue__results{min-width:0}
.bu-filters{position:sticky;top:132px}
.bu-filters>details>summary{font-size:15px;font-weight:600;min-height:44px;cursor:pointer}
.bu-filters form{display:grid;gap:28px}
.bu-filters fieldset{border:0;padding:0;margin:0;min-width:0}
.bu-filters legend,.bu-filter-group__title{font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px;padding:0}
.bu-filter-group>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin:0;cursor:pointer;list-style:none}
.bu-filter-group>summary::-webkit-details-marker{display:none}
.bu-filter-group>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform var(--bu-transition)}
.bu-filter-group[open]>summary::after{transform:rotate(225deg)}
.bu-filter-options{border-top:var(--bu-border)}
.bu-filter-option__choice{display:flex;align-items:center;gap:10px}
.bu-filter-option__count{font-size:13px;color:var(--bu-color-muted)}
.bu-filters select{width:100%}
.bu-clear-filters{text-decoration:underline;min-height:44px}
.bu-catalogue-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding-bottom:16px;margin-bottom:20px;border-bottom:var(--bu-border)}
.bu-catalogue-toolbar p{margin:0;color:var(--bu-color-text-2);font-size:15px}
.bu-catalogue-toolbar form{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}
.bu-catalogue-toolbar select,.bu-catalogue-toolbar button{min-height:44px;padding:0 10px;border:1px solid var(--bu-color-border-input);background:var(--bu-color-white)}
.bu-filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.bu-filter-chips a{padding:10px 12px;background:var(--bu-color-ink);color:var(--bu-color-white);min-height:44px;font-size:14px}
.site-main--shop ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;margin:0;list-style:none}
.site-main--shop ul.products::before,.site-main--shop ul.products::after{content:none}
.site-main--shop ul.products li.product{float:none;width:auto;margin:0;min-width:0}
.bu-product-card{display:flex;flex-direction:column;border:var(--bu-border);height:100%;background:var(--bu-color-white)}
.bu-product-card:hover{border-color:var(--bu-color-ink)}
.bu-product-card__image{height:272px;padding:24px;display:flex;align-items:center;justify-content:center}
.site-main--shop ul.products .bu-product-card__image img{width:100%;height:100%;object-fit:contain;margin:0;mix-blend-mode:multiply}
.bu-product-card__body{padding:0 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.bu-product-card__context{font-size:14px;line-height:normal;letter-spacing:.04em;text-transform:uppercase;font-weight:var(--bu-weight-medium);color:var(--bu-color-text-3)}
.bu-product-card :is(h2,h3){font-family:var(--bu-font-body);font-weight:600;font-size:16px;line-height:1.3;margin:0;min-height:42px;overflow-wrap:anywhere;color:var(--bu-color-ink)}
.bu-product-card__action{margin-top:auto;padding-top:14px}
.bu-product-card__action .bu-button{width:100%;min-height:46px;height:auto;font-size:15px;margin:0;text-align:center}
.bu-catalogue-empty{text-align:center;padding:64px 24px;border:1px dashed var(--bu-color-border-input)}
.bu-catalogue-empty h2{font-size:24px;margin:0 0 8px}
.bu-pagination{margin-top:32px}
.bu-pagination ul{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}
.bu-pagination a,.bu-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:var(--bu-border)}
.bu-pagination .current{background:var(--bu-color-ink);color:var(--bu-color-white)}
.bu-catalogue-assistance{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding:clamp(28px,3.5vw,44px) 0;color:var(--bu-color-white);
/* Full-bleed strip (design), content aligned with the container. */
background-color:var(--bu-color-ink);border-image:linear-gradient(var(--bu-color-ink),var(--bu-color-ink)) fill 0/0/0 100vmax}
.bu-catalogue-assistance h2{font-size:clamp(30px,3vw,40px);line-height:1;text-transform:uppercase;color:inherit;margin:0}
.bu-catalogue-assistance .bu-button{height:52px;min-height:52px;padding:0 26px;font-size:16px;white-space:nowrap}
.bu-catalogue-assistance p{color:var(--bu-color-on-dark-2);margin:8px 0 0;font-size:16px;max-width:520px;text-wrap:pretty}
.site-main--shop div.product{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:clamp(28px,4vw,64px);padding:20px 0 64px}
.site-main--shop div.product .summary{float:none;width:auto;margin:0;min-width:0;display:flex;flex-direction:column;gap:22px}
.site-main--shop div.product .product_title{font-size:clamp(36px,3.6vw,52px);line-height:.95;text-transform:uppercase;margin:0}
.bu-product-context{font-size:14px;text-transform:uppercase;color:var(--bu-color-text-3);letter-spacing:.04em;font-weight:var(--bu-weight-medium);margin-bottom:-14px}
.woocommerce-product-details__short-description{font-size:16px;line-height:1.55}
.woocommerce-product-details__short-description p{margin:0}
.bu-gallery{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:start;position:sticky;top:140px}
.bu-gallery:has(.bu-gallery__stage:only-child){grid-template-columns:1fr}
.bu-gallery__thumbs{display:flex;flex-direction:column;gap:10px;max-height:650px;overflow:auto}
.bu-gallery__thumbs a{flex:none;width:72px;height:88px;border:var(--bu-border);padding:6px;display:flex}
.bu-gallery__thumbs a[aria-current]{border:2px solid var(--bu-color-ink)}
.bu-gallery__thumbs img{width:100%;height:100%;object-fit:contain}
.bu-gallery__stage{min-width:0}
.bu-gallery__photo{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;border:var(--bu-border);padding:clamp(20px,3vw,40px);cursor:zoom-in}
.bu-gallery__photo[hidden]{display:none}
.bu-gallery__photo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply}
.bu-gallery-dialog{max-width:92vw;max-height:92vh;border:var(--bu-border);padding:16px}
.bu-gallery-dialog::backdrop{background:var(--bu-overlay-background)}
.bu-gallery-dialog img{display:block;width:auto;height:auto;max-width:85vw;max-height:75vh;object-fit:contain}
.bu-gallery-dialog button{min-height:44px;padding:8px 16px;background:var(--bu-color-white);border:1px solid var(--bu-color-ink)}
.bu-product-selection{display:grid;gap:14px}
.site-main--shop div.product form.cart{margin:0}
.bu-product-selection .variations{width:100%;border:0;border-collapse:collapse;margin:0}
.bu-product-selection .variations th{text-align:left;padding:8px 12px 8px 0;font-size:14px;width:28%}
.bu-product-selection .variations td{padding:8px 0}
.bu-product-selection .variations select{width:100%;max-width:100%}
.bu-product-selection .single_variation_wrap{display:none}
.bu-selection-status,.bu-selection-note{font-size:14px;line-height:1.5;color:var(--bu-color-text-2);margin:0}
.bu-quantity{display:grid;gap:6px}
.bu-quantity label{font-size:14px;font-weight:600}
.bu-quantity>div{display:flex;width:fit-content;border:1px solid var(--bu-color-border-input)}
.bu-quantity button{width:46px;min-height:50px;border:0;background:var(--bu-color-white)}
.bu-quantity input{width:68px;min-height:50px;padding:0 4px;text-align:center;border-width:0 1px}
.no-js .bu-quantity button{display:none}
.bu-product-details,.bu-related{grid-column:1/-1}
.bu-product-details{padding:clamp(28px,4vw,48px) 0;
/* Full-bleed surface band with rules (design). */
border-image:linear-gradient(to bottom,var(--bu-color-border) 1px,var(--bu-color-surface) 1px,var(--bu-color-surface) calc(100% - 1px),var(--bu-color-border) calc(100% - 1px)) fill 0/0/0 100vmax}
/* Product Details / Branding Enquiries accordions (design, measured): #CFCAC2 rules between items; 60px trigger,
   18px/600, 18px chevron at the far right; panel = specs (1.3fr) + copy (1fr), 48px apart, stacked below 1000px;
   spec rows 15px/1.5, 10px padding, 160px label column, #E3DFD8 rules. */
.bu-acc-list{border-top:1px solid var(--bu-color-border-input)}
.bu-acc{border-bottom:1px solid var(--bu-color-border-input)}
.bu-acc__trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;font-size:18px;font-weight:var(--bu-weight-semibold);line-height:1.3;color:var(--bu-color-ink);cursor:pointer;list-style:none}
.bu-acc__trigger::-webkit-details-marker{display:none}
.bu-acc__icon{flex:none;transition:transform .25s ease}
.bu-acc[open]:not(.is-closing) .bu-acc__icon{transform:rotate(180deg)}
.bu-acc__panel{overflow:hidden}
.bu-acc__grid{display:grid;gap:16px 48px;align-items:start;padding-bottom:24px}
.bu-acc__rows{margin:0;border-top:var(--bu-border)}
.bu-acc__row{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:16px;padding:10px 0;border-bottom:var(--bu-border);font-size:15px;line-height:1.5}
.bu-acc__row dt{color:var(--bu-color-muted)}
.bu-acc__row dd{margin:0;color:var(--bu-color-ink);overflow-wrap:anywhere}
.bu-acc__copy{font-size:15px;line-height:1.6;color:var(--bu-color-text);overflow-wrap:anywhere;text-wrap:pretty}
.bu-acc__copy>*{margin:0}
.bu-acc__copy>*+*{margin-top:12px}
.bu-acc__link{justify-self:start;display:inline-flex;align-items:center;min-height:24px;font-size:15px;font-weight:var(--bu-weight-semibold);color:var(--bu-color-accent)}
@media(min-width:1000px){.bu-acc__grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.bu-acc__icon{transition:none}}
/* Design: section padding clamp(40px,5vw,72px); heading left, note right (wraps below when narrow), 24px above the cards. */
.bu-related{padding:clamp(40px,5vw,72px) 0}
.bu-related__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:24px}
.bu-related__head h2{margin:0;font-size:clamp(34px,3.8vw,52px);line-height:.95;text-transform:uppercase}
.bu-related__note{margin:0;font-size:15px;color:var(--bu-color-muted)}
.site-main--shop .bu-related ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:999.98px){
.bu-catalogue{grid-template-columns:1fr}.bu-filters{position:static;border:var(--bu-border);padding:16px}
.site-main--shop ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
.site-main--shop div.product{grid-template-columns:minmax(0,1fr)}
.site-main--shop div.product .summary{grid-row:1}
.site-main--shop div.product .product_title{font-size:clamp(34px,8vw,44px)}
.bu-gallery{position:static;grid-template-columns:minmax(0,1fr)}
.bu-gallery__thumbs{flex-direction:row;grid-row:2}
.site-main--shop .bu-related ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639.98px){.bu-product-card__image{height:300px}.bu-catalogue-assistance{padding:28px 0}}
@media(max-width:419.98px){.site-main--shop ul.products,.site-main--shop .bu-related ul.products{grid-template-columns:minmax(0,1fr)}}
.bu-filter-option{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;min-height:44px;border-bottom:1px solid var(--bu-color-hairline);font-size:15px}.bu-filter-option input{width:18px;height:18px;margin:0;accent-color:var(--bu-color-accent)}
.site-main--shop .bu-product-card :is(h2,h3){text-transform:none}
.site-main--shop .bu-product-card .bu-button{padding:0 14px}
.site-main--shop .bu-product-card .bu-button:hover{color:var(--bu-color-white)}
@media(max-width:999.98px){
.site-main--shop div.product .summary{display:contents}
.site-main--shop div.product .bu-product-context{grid-row:1}
.site-main--shop div.product .product_title{grid-row:2}
.bu-gallery{grid-row:3}
.woocommerce-product-details__short-description{grid-row:4}
.bu-product-selection{grid-row:5}
}
.site-main--shop .woocommerce-breadcrumb a{text-decoration:underline;text-underline-offset:3px}.bu-product-context a{display:inline-flex;align-items:center;min-height:28px;text-decoration:underline;text-underline-offset:3px}
.bu-filter-open{display:none}
.bu-filter-dialog{inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:88vh;border:var(--bu-border);padding:20px}
.bu-filter-dialog::backdrop{background:var(--bu-overlay-background)}
.bu-filter-dialog form{display:grid;gap:20px}
.bu-filter-dialog fieldset{border:0;margin:0;padding:0}
.bu-filter-dialog legend{font-weight:600}
.bu-filter-dialog__close{display:block;margin-left:auto;min-height:44px;padding:0 14px;border:var(--bu-border);background:var(--bu-color-white)}
@media(max-width:999.98px){.js .bu-filter-open{display:block;min-height:44px;padding:0 14px;border:1px solid var(--bu-color-ink);background:var(--bu-color-white)}.bu-filters[data-bu-filters-enhanced],.js .bu-filters:not([data-bu-filters-static]){display:none}.js .bu-filters[data-bu-filters-static]~.bu-catalogue__results .bu-filter-open{display:none}}
.site-main--shop .bu-catalogue__results ul.products li.bu-product-list-item.product{width:100%;float:none;margin:0}.site-main--shop div.product div.entry-summary.summary{width:auto;float:none;margin:0}.site-main--shop .bu-related .bu-product-card :is(h2,h3){font-family:var(--bu-font-body);font-size:16px;line-height:1.3;text-transform:none}.site-main--shop div.product form.bu-product-selection table.variations{width:100%}.site-main--shop div.product form.bu-product-selection table.variations td{width:72%}.site-main--shop div.product form.bu-product-selection table.variations select{width:100%;max-width:100%;min-height:48px}
.site-main--shop ul.products .bu-product-card a.bu-product-card__image img{width:100%;height:100%;object-fit:contain;margin:0}/* Genuine prices (rare in this quote catalogue): WooCommerce's default price colour fails WCAG contrast. */
.site-main--shop .price,.site-main--shop .price bdi,.site-main--shop .price .amount,.bu-product-card .price,.bu-product-card .price bdi{color:var(--bu-color-ink);font-weight:var(--bu-weight-semibold)}
.site-main--shop .price del,.site-main--shop .price del bdi{color:var(--bu-color-text-2)}
/* Real-catalogue QA: breadcrumb trail and the native "Clear options" link meet the 24px target minimum (WCAG 2.5.8). */
.site-main--shop .woocommerce-breadcrumb a,.site-main--shop .reset_variations{display:inline-flex;align-items:center;min-height:24px}
/* Desktop: the inline filter panel has no "Filter products" disclosure heading (design). */
@media(min-width:1000px){.bu-filters>details>summary{display:none}}
.bu-catalogue-toolbar p strong{color:var(--bu-color-ink);font-weight:var(--bu-weight-semibold)}
/* Phase 6.6 (design): variation selects as a labelled grid, labels above (native WooCommerce markup kept). */
.site-main--shop div.product form.bu-product-selection table.variations tbody{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px}
.site-main--shop div.product form.bu-product-selection table.variations tr{display:flex;flex-direction:column;gap:6px}
.site-main--shop div.product form.bu-product-selection table.variations th,.site-main--shop div.product form.bu-product-selection table.variations td{width:auto;padding:0;line-height:1.4}
.site-main--shop div.product form.bu-product-selection table.variations th{font-size:14px;font-weight:600}
.site-main--shop div.product form.bu-product-selection table.variations select{min-height:48px;height:48px;padding:0 12px;font-size:15px}
/* With JS the combination is checked live, so the no-JS "Check options" submit is not shown. */
.js .bu-product-selection button[name="bu_check_options"]{display:none}
.bu-product-help{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.bu-product-help .bu-button{min-height:48px;padding:0 20px;font-size:15px}
.bu-product-help__sizes{display:inline-flex;align-items:center;min-height:24px;font-size:15px;color:var(--bu-color-text-2);text-decoration:underline;text-underline-offset:3px}
/* Design: zoom badge in the corner of the main photograph. */
.bu-gallery__photo{position:relative;cursor:zoom-in}
.bu-gallery__zoom{position:absolute;right:12px;bottom:12px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bu-color-white);border:1px solid var(--bu-color-border-input);color:var(--bu-color-ink);pointer-events:none}
/* Phase 6.6 (design): count first, then Filter and Sort. */
.bu-catalogue-toolbar p{order:-1;margin-right:auto}
@media(max-width:999.98px){.bu-catalogue-toolbar{justify-content:flex-start;gap:10px}.js .bu-filter-open{font-weight:var(--bu-weight-semibold)}}
.site-main--shop .reset_variations[style*="hidden"]{display:none}
/* Phase 6.6 (design): mobile sticky action on product pages. */
.bu-product-bar{display:none}
@media(max-width:999.98px){.single-product .site-footer{margin-bottom:84px}.bu-product-bar{position:fixed;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:var(--bu-border);background:var(--bu-color-white);box-shadow:0 -10px 30px rgba(15,16,17,.08);transition:transform .2s ease}.bu-product-bar.is-hidden{transform:translateY(110%);visibility:hidden}.bu-product-bar__text{flex:1;min-width:0;margin:0;line-height:1.4}.bu-product-bar__name,.bu-product-bar__summary{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bu-product-bar__name{font-size:13px;color:var(--bu-color-muted)}.bu-product-bar__summary{font-size:14px;font-weight:var(--bu-weight-semibold)}.bu-product-bar .bu-button{min-height:48px;padding:0 18px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.bu-product-bar{transition:none}}
.site-main--shop div.product form.bu-product-selection table.variations{margin:0}.bu-product-selection .single_variation_wrap{display:contents}.bu-product-selection .woocommerce-variation:empty{display:none}
