/* Compact catalogue inspired by the approved Claude layout.
   Checkout, order rules, image galleries and exports use the existing application. */
:root{--paper:#fbfcfa;--ground:#f0f4f1;--line:#d9e2dc;--ink:#1f3a31;--muted:#64776c;--radius:14px}
body{background:var(--paper)}
[hidden]{display:none!important}
.prototype-bar{min-height:32px;padding:4px max(24px,calc((100% - 1360px)/2));font-size:11px}
.prototype-bar nav a{padding:3px 8px;font-size:12px}
.prototype-bar [data-view="catalog"]{display:none}
.catalog-header{position:sticky;top:0;z-index:45;min-height:72px;padding:12px max(24px,calc((100% - 1360px)/2));display:grid;grid-template-columns:auto minmax(200px,1fr) auto;gap:24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 12px #103a2e05}
.catalog-header .header-branding{display:flex;gap:16px;align-items:center;min-width:0}
.catalog-header .brand{display:block}
.catalog-header .brand .brand-logo{width:128px;border-radius:8px}
.catalog-header .brand-logo img{display:block;width:100%;height:auto}
.catalog-header .brand .brand-opt{font-size:1.22rem;border-radius:0 8px 8px 0}
.catalog-season{display:flex;align-items:center;gap:8px;padding-left:16px;border-left:1px solid var(--line)}
.catalog-season span{font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.catalog-season strong{font-size:23px;color:var(--berry);letter-spacing:-.03em}
.catalog-header .header-search{justify-self:center;width:100%;max-width:520px;min-width:0;height:42px;border:1px solid #b9c8bf;border-radius:999px;background:var(--paper);padding:0 14px;gap:8px}
.header-search svg{width:18px;height:18px;flex:none;color:var(--muted)}
.header-search input{height:100%;width:100%;min-width:0;font-size:14px;background:transparent;border:0;padding:0}
.catalog-header .header-actions{display:flex;gap:18px;align-items:center}
.catalog-header .howto-link{font-size:12px;white-space:nowrap;border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:4px}
.catalog-header .cart-button{min-height:42px;padding:0 14px;border-radius:999px;gap:9px;font-size:13px;background:var(--pine);box-shadow:none}
.catalog-header .cart-icon{width:22px;height:22px}
.catalog-header .cart-count{background:var(--yellow);color:#3b2f10;font-size:12px;min-width:24px;height:24px;display:grid;place-items:center;border-radius:999px}
#header-cart-total{font-size:12px;max-width:170px}
.catalogue-wrap{max-width:1440px;padding:0 40px 48px}
.shipment-strip{display:flex;align-items:stretch;gap:0;padding:14px 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.shipment-filter{flex:1;display:flex;align-items:center;text-align:left;gap:10px;min-width:178px;padding:8px 12px;border:1px solid transparent;border-radius:9px;background:transparent}
.shipment-filter:hover{background:var(--ground)}
.shipment-filter.active{background:#e4efe8;border-color:var(--pine)}
.shipment-filter strong{display:block;font-size:12px;font-weight:800;white-space:nowrap}
.shipment-filter small{display:block;font-size:11px;color:var(--muted);line-height:1.4;margin-top:2px}
.shipment-filter strong .shipment-id{display:inline;font-weight:500;font-size:10px;margin-left:3px}
.shipment-filter>b{margin-left:auto;font-size:12px;color:var(--muted)}
.shipment-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#618797}
.shipment-dot.stock-dot{background:var(--green)}
.unassigned-filter{min-width:125px;flex:.7}
.catalog-intro{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 0;color:var(--muted)}
.catalog-intro p{font-size:12px;line-height:1.5}
.catalog-intro button{flex-shrink:0;font-size:12px;border:0;background:none;color:var(--pine);padding:0;text-decoration:underline;text-underline-offset:3px}
.catalog-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start;margin-top:8px}
.filters{position:sticky;top:90px;max-height:calc(100dvh - 106px);overflow:auto;scrollbar-width:thin;padding:0;border:0}
.category-menu>summary{display:none}
.category-menu>.category-list{display:block!important;content-visibility:visible;overflow:visible;padding:0;margin:0;max-height:none;white-space:normal}
.category{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px;text-align:left;padding:8px 12px;border:0;border-radius:9px;background:transparent;font-size:13px;line-height:1.45;white-space:normal;color:var(--ink);margin:0}
.category>span:last-child{font-size:11px;color:var(--muted);background:transparent;padding:0}
.category:hover{background:var(--ground)}
.category.active{background:var(--pine);color:#fff;font-weight:700}
.category.active>span:last-child{color:inherit;opacity:.8}
/* The group button opens its catalogue; the separate arrow expands its menu. */
.category-group{border-top:1px solid var(--line);padding-top:5px;margin-top:5px}
.category-group-heading{display:flex;align-items:stretch;border-radius:9px}
.group-select{display:flex;align-items:center;gap:8px;flex:1;min-width:0;text-align:left;padding:9px 4px 9px 8px;border:0;border-radius:9px;background:none;color:var(--ink);font-size:13px;font-weight:750;line-height:1.4}
.group-select:hover,.group-toggle:hover{background:var(--ground)}
.category-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:#eaf1ec;color:var(--pine)}
.category-icon svg{display:block;width:23px;height:23px}
.group-name{flex:1;min-width:0}
.group-count{font-size:11px;font-weight:500;color:var(--muted)}
.group-toggle{display:grid;place-items:center;flex:0 0 28px;min-height:44px;padding:0;border:0;border-radius:8px;background:none;color:var(--muted)}
.group-toggle svg{width:16px;height:16px;transition:transform .15s}
.category-group.is-open .group-toggle svg{transform:rotate(180deg)}
.category-group.is-selected .category-group-heading{background:var(--pine)}
.category-group.is-selected .group-select,.category-group.is-selected .group-toggle{color:#fff}
.category-group.is-selected .group-select:hover,.category-group.is-selected .group-toggle:hover{background:#ffffff12}
.category-group.is-selected .group-count{color:#d3e4da}
.category-group.is-selected .category-icon{background:#ffffff15;color:#fff}
.category-menu summary::-webkit-details-marker{display:none}
.category-children{padding:3px 0 4px}
.category-group .category{padding-left:46px;font-size:12px}
.catalog-subcategory{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:19px;margin-top:10px}
.catalog-subcategory:first-child{border:0;padding-top:0;margin-top:0}
.catalog-subcategory h2{font-size:17px;line-height:1.35;letter-spacing:-.02em;color:var(--pine)}
.catalog-subcategory>span{font-size:11px;color:var(--muted);white-space:nowrap}
.filter-note{border:0;background:#fbf3dc;border-radius:9px;margin-top:18px;padding:12px 14px;font-size:11px;line-height:1.65;color:#635731}
.filter-note strong{font-size:12px;color:#5b4a1c;margin-bottom:4px}
.catalog-results{min-width:0}
.catalog-heading{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:15px;margin:0 0 12px;scroll-margin-top:90px}
.catalog-heading>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.catalog-heading h1{font-size:20px;line-height:1.3;letter-spacing:-.035em;color:var(--pine)}
#product-count{font-size:12px;white-space:nowrap}
.catalog-heading .price-download{min-height:38px;padding:6px 11px;border-radius:9px;gap:8px;background:#fff;box-shadow:none;flex-shrink:0;width:auto;color:var(--pine)}
.catalog-heading .price-download span{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.catalog-heading .price-download strong{font-size:12px}
.catalog-heading .price-download small{font-size:10px;margin-top:0;color:var(--muted)}
.catalog-heading .price-download:hover{background:var(--ground);color:var(--pine)}
.catalog-heading .price-download svg{width:17px;height:17px}
.catalog-topline{gap:12px;margin-bottom:14px;font-size:12px}
.priced-filter{display:flex;align-items:center;gap:7px;white-space:nowrap;color:var(--muted)}
.priced-filter input{width:16px;height:16px;accent-color:var(--pine);margin:0}
.catalog-topline .sort{padding:7px 9px;background:#fff;border:1px solid #b9c8bf;border-radius:8px;font-size:12px;color:var(--ink);max-width:55%}
.filter-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.filter-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;overflow-wrap:anywhere;border:1px solid #b9c8bf;background:#fff;border-radius:999px;padding:6px 11px;font-size:12px;text-align:left}
.filter-chips .filter-chip{background:#e4efe8;border-color:#9bb4a4;color:var(--pine)}
.filter-chip:hover{border-color:var(--pine)}
.filter-chip span{color:var(--muted)}
.clear-filters{border:0;background:transparent;font-size:12px;color:var(--muted);text-decoration:underline;padding:6px}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.product{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;box-shadow:none;min-width:0;display:flex;flex-direction:column}
.product:hover{border-color:#b9c8bf;box-shadow:0 8px 24px #0f372a0a;transform:none}
.product-image{position:relative;aspect-ratio:1/1.08;height:auto;padding:0;background:#f4f4f2;flex-shrink:0}
.product-image img,.product-image img.original-photo{width:100%;height:100%;object-fit:contain;padding:0;mix-blend-mode:normal;transform:none}
.product-image:hover img{transform:none}
.product-image img.original-photo{inset:0}
.product-image .tag{top:9px;left:9px;right:auto;max-width:calc(100% - 18px);font-size:10px;padding:4px 7px;border-radius:6px;line-height:1.3;letter-spacing:0;min-height:0}
.product-body{display:flex;flex-direction:column;gap:6px;padding:12px 13px 13px;flex:1}
.product .sku{font-size:10px;letter-spacing:.04em;line-height:1.4;margin:0;color:var(--muted)}
.product-name{font-size:13px;line-height:1.4;min-height:4.2em;height:4.2em;padding:0;margin:0;font-weight:650;-webkit-line-clamp:3}
.product .availability{font-size:11px;line-height:1.35;min-height:2.7em;margin:0;color:var(--muted)}
.product .price-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;margin:0;margin-top:auto;min-height:28px}
.product .price{font-size:19px;font-weight:800;line-height:1.3;letter-spacing:-.025em;color:var(--pine-deep)}
.product .pending-price{font-size:14px;color:var(--muted)}
.product .price-unit{font-size:10px;white-space:nowrap}
.product .minimum-order-note{display:inline-block;width:auto;padding:2px 5px;border:0;background:#fbf3dc;border-radius:5px;font-size:10px;line-height:1.4;margin:0 0 0 auto;text-align:center;color:#5b4a1c}
.product-bottom{display:flex;align-items:stretch;flex-wrap:nowrap;gap:0;margin-top:3px;min-height:40px}
.product-bottom .button{flex:1;min-width:0;min-height:40px;padding:8px;font-size:12px;line-height:1.3;border-radius:9px;background:var(--berry);border-color:var(--berry);color:#fff}
.product-bottom .button:hover{background:var(--berry-hover)}
.product-bottom:not(.has-cart) .quantity,.product-bottom.has-cart>.button{display:none}
.product-bottom .quantity{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;width:100%;max-width:none;height:40px;min-height:40px;flex:1;border:1px solid var(--pine);border-radius:9px;background:#e4efe8;overflow:hidden;margin:0}
.product-bottom .quantity button{width:auto;min-width:0;height:38px;padding:0;background:#e4efe8;color:var(--pine);font-size:19px;border:0}
.product-bottom .quantity input{width:100%;min-width:0;height:38px;font-size:14px;font-weight:800;background:#fff;border:0;padding:0;text-align:center}
.cart-quantity-note{margin:0;min-height:20px;display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:10px;line-height:1.4;color:var(--pine)}
.cart-quantity-note .button{font-size:10px;min-height:0;padding:0;background:none;border:0;text-decoration:underline;color:var(--muted)}
.related-categories{border-top:1px solid var(--line);padding-top:18px;margin:24px 0}
.related-categories h2{font-size:14px;letter-spacing:0;margin-bottom:10px}
.related-categories>div{display:flex;flex-wrap:wrap;gap:8px}
.load-more{margin:22px 0}
.load-more:has(button[hidden]){display:none}
.catalog-results>.notice{font-size:12px;line-height:1.6;margin-top:24px;padding:14px;border-radius:10px}
.cart-item>img,.detail-image,.gallery-main,.gallery-thumbnail img{object-fit:contain}
@media(max-width:1279px){
  .catalog-header{gap:18px}.catalog-header .howto-link{display:none}
  .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .catalogue-wrap{padding-inline:24px}.catalog-layout{grid-template-columns:216px minmax(0,1fr);gap:24px}
}
@media(max-width:1050px){
  .catalog-season span{display:none}.catalog-header{gap:16px}
  .catalog-header .cart-button>span:first-of-type{display:none}
  #header-cart-total{max-width:135px}.catalog-heading>div{gap:4px;flex-direction:column}
}
@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
  .prototype-bar{padding:4px 16px;min-height:28px;gap:8px;flex-direction:row}
  .prototype-bar .demo-explainer{display:none}.prototype-bar strong{font-size:9px;letter-spacing:0}.prototype-bar nav a{padding:0;font-size:11px}
  .catalog-header{grid-template-columns:1fr auto;gap:10px 12px;padding:10px 16px;min-height:0}
  .catalog-header .header-branding{gap:12px}.catalog-header .brand .brand-logo{width:112px}.catalog-header .brand .brand-opt{font-size:1.07rem}
  .catalog-season{padding-left:12px;gap:6px}.catalog-season span{display:block;font-size:9px}.catalog-season strong{font-size:21px}
  .catalog-header .header-search{grid-column:1/-1;grid-row:2;max-width:none;height:38px}.header-search input{font-size:16px}
  .catalog-header .header-actions{display:none}
  .catalogue-wrap{padding:0 16px 32px}
  .shipment-strip{padding:9px 0;gap:5px;margin-right:-16px;padding-right:16px}
  .shipment-filter{min-width:167px;padding:7px 9px;gap:7px;background:var(--ground);flex:none}
  .shipment-filter strong{font-size:11px}.shipment-filter small{font-size:10px}.shipment-filter strong .shipment-id{font-size:9px}
  .unassigned-filter{min-width:124px}
  .catalog-intro{padding:10px 0;gap:8px}.catalog-intro p{font-size:11px}.catalog-intro button{display:none}
  .catalog-layout{display:block;margin-top:0}
  .filters{position:static;max-height:none;overflow:visible;padding:0;margin:0 0 14px}
  .filters>.filter-note{display:none}
  .category-menu{border:1px solid #b9c8bf;border-radius:10px;background:#fff;overflow:hidden}
  .category-menu>summary{display:flex;gap:8px;align-items:center;list-style:none;padding:10px 12px;font-size:13px;font-weight:750;cursor:pointer}
  .category-menu>summary>span{font-weight:500;color:var(--muted);margin-left:auto;font-size:11px;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .category-menu>summary>b{font-weight:500;font-size:17px;color:var(--muted)}
  .category-menu:not([open])>.category-list{display:none!important}
  .category-menu[open]>.category-list{display:block!important;padding:4px 8px 8px;max-height:55dvh;overflow:auto}
  .category-menu[open]>summary{border-bottom:1px solid var(--line)}
  .group-select{font-size:14px;min-height:48px}.group-toggle{flex-basis:42px}.category-icon{width:32px;height:32px;flex-basis:32px}.catalog-subcategory h2{font-size:15px}.category,.category-group .category{font-size:13px;min-height:42px}
  .catalog-heading{gap:10px;margin-bottom:10px;scroll-margin-top:116px}
  .catalog-heading h1{font-size:18px;line-height:1.25}.catalog-heading>div{gap:3px}
  #product-count{font-size:10px}
  .catalog-heading .price-download{padding:7px 9px;gap:6px;min-height:38px}.catalog-heading .price-download strong{font-size:11px}.catalog-heading .price-download small{font-size:9px}
  .catalog-topline{gap:8px;margin-bottom:12px}.priced-filter{font-size:11px}.catalog-topline .sort{font-size:11px;padding:7px;max-width:52%}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .product{border-radius:11px}.product-image{aspect-ratio:1/1.08}
  .product-image .tag{font-size:9px;top:7px;left:7px;max-width:calc(100% - 14px);padding:4px 5px}
  .product-body{padding:10px;gap:5px}.product .sku{font-size:9px}.product-name{font-size:12px;line-height:1.4;min-height:4.2em;height:4.2em}
  .product .availability{font-size:10px;min-height:2.7em}.product .price{font-size:17px}.product .price-unit{font-size:9px}.product .pending-price{font-size:12px}
  .product .price-line{gap:3px}.product .minimum-order-note{font-size:9px;margin-left:0;padding:2px 4px}
  .product-bottom .button{font-size:11px;min-height:40px}.product-bottom .quantity{grid-template-columns:34px minmax(0,1fr) 34px}
  .cart-quantity-note{font-size:9px;flex-wrap:wrap}.cart-quantity-note .button{font-size:9px}
  .filter-chip{font-size:11px;padding:5px 9px}
  .mobile-cart-bar{display:flex;z-index:50}.floating-actions{bottom:calc(88px + env(safe-area-inset-bottom))}
  .floating-contact-toggle,.floating-actions .back-to-top{display:none!important}
}
@media(prefers-reduced-motion:reduce){.group-toggle svg{transition:none}}
