.catalog-intro{padding:50px var(--margin) 55px;display:flex;justify-content:space-between;gap:60px;align-items:flex-end}
.catalog-intro h1{font-size:var(--display);margin-top:30px;line-height:.98}
.back-link{display:inline-block;font-size:var(--small);padding:8px 0}
.catalog-intro-note{max-width:360px;padding-bottom:5px}
.catalog-intro-note .text-link{margin-top:14px}
.catalog-tools{background:var(--soft);padding:30px var(--margin)}
.search-label{font-size:var(--lead);display:block;font-weight:500}
.search-row{display:flex;gap:30px;align-items:center;margin-top:15px}
.search-box{display:flex;align-items:center;gap:16px;background:var(--white);padding:0 18px;width:min(670px,70%);min-height:56px}
.search-box svg{flex-shrink:0}
.search-box input{margin:0;background:transparent;border:0;padding:16px 0;min-width:0;min-height:56px;font-size:var(--body)}
.search-box:focus-within{outline:3px solid var(--forest);outline-offset:3px}
.search-box input:focus-visible{outline:none}
#clear-search{background:transparent;border:0;min-width:36px;min-height:44px;font-size:var(--lead);color:var(--ink)}
#result-count{font-size:var(--small)}
.family-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.family-filter{display:inline-flex;gap:16px;align-items:center;padding:12px 17px;min-height:46px;border:0;border-radius:0;background:var(--paper);color:var(--ink);font-size:var(--small);transition:background-color 160ms ease,transform 160ms var(--ease)}
.family-filter span{opacity:.7}
.family-filter[aria-pressed=true]{background:var(--forest);color:var(--white)}
.family-filter:active{transform:scale(.975)}
.catalog-results{padding:50px var(--margin) 80px}
.catalog-group+.catalog-group{margin-top:110px}
.catalog-group[hidden],.catalog-item[hidden],#empty-results[hidden],#clear-search[hidden]{display:none}
.group-heading{display:flex;justify-content:space-between;align-items:baseline;gap:30px;margin-bottom:28px}
.group-heading h2{font-size:var(--heading);max-width:900px}
.group-heading p{font-size:var(--small);white-space:nowrap}
.full-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;align-items:start}
.catalog-item{background:var(--white);min-width:0}
.item-photo{position:relative;padding:18px;background:var(--white);height:225px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.item-photo img{width:100%;height:100%;object-fit:contain;transition:transform 400ms var(--ease)}
.reference-photo{padding:0}
.reference-photo img{object-fit:cover}
.photo-caption{position:absolute;left:12px;bottom:12px;background:var(--paper);color:var(--ink);padding:5px 9px;font-size:var(--small)}
.item-content{padding:8px 20px 18px}
.item-content h3{font-size:var(--lead);min-height:48px;display:flex;align-items:flex-start;line-height:1.2}
.item-content details{font-size:var(--small);margin-top:10px}
.item-content summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;min-height:40px;list-style:none}
.item-content summary::-webkit-details-marker{display:none}
.item-content summary span{font-size:var(--lead)}
.item-content details[open] summary span{transform:rotate(45deg)}
.item-content details p{font-size:var(--small);line-height:1.5;margin:10px 0}
.product-source{font-size:var(--small);text-decoration:underline;text-underline-offset:3px;line-height:1.6;display:block;padding:6px 0}
.item-quote{font-size:var(--small);font-weight:500;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:46px;margin-top:8px;color:var(--forest);background:var(--soft);padding:10px 12px;transition:background-color 160ms ease,transform 160ms var(--ease)}
.item-quote span{font-size:var(--lead)}
.item-quote:active{transform:scale(.975)}
#empty-results{padding:65px 0;max-width:700px}
#empty-results h2{font-size:var(--heading)}
#empty-results>p{margin-top:22px}
#empty-results .button{margin-top:25px}
#empty-results .text-link{display:flex;margin-top:10px}
.catalog-end{padding:75px var(--margin);background:var(--forest);color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:70px}
.catalog-end h2{font-size:var(--heading)}
.catalog-end>div{max-width:440px}
.catalog-end .button{margin-top:25px}
@media(hover:hover) and (pointer:fine){.family-filter:not([aria-pressed=true]):hover{background:#d7e1d3}.item-quote:hover{background:#d7e1d3}.catalog-item:hover .item-photo img{transform:scale(1.025)}}
@media(max-width:1100px){.full-product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.item-photo{height:210px}.group-heading h2{font-size:38px}}
@media(max-width:800px){.catalog-intro{padding-top:30px;gap:40px}.catalog-intro-note{max-width:310px}.catalog-intro h1{font-size:60px}.search-row{justify-content:space-between}.search-box{width:73%}.full-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.item-photo{height:240px}.catalog-end{align-items:flex-start;gap:40px}.catalog-end>div{max-width:330px}.group-heading h2{font-size:38px}}
@media(max-width:540px){.catalog-intro{display:block;padding:22px 22px 35px}.catalog-intro h1{font-size:44px;margin-top:24px}.catalog-intro-note{margin-top:25px;max-width:none}.catalog-tools{padding:25px 22px}.search-row{display:block;margin-top:14px}.search-box{width:100%;padding:0 12px;gap:10px}.search-box input{font-size:16px}.search-box input::placeholder{font-size:14px}#result-count{margin-top:16px}.family-filters{gap:8px;margin-top:18px}.family-filter{padding:10px 12px;gap:10px;font-size:14px;min-height:44px}.catalog-results{padding:35px 16px 55px}.group-heading{display:block;margin-bottom:22px;padding:0 6px}.group-heading h2{font-size:30px}.group-heading p{margin-top:10px}.catalog-group+.catalog-group{margin-top:45px}.full-product-grid{gap:20px 12px}.item-photo{height:165px;padding:8px}.reference-photo{padding:0}.photo-caption{font-size:13px;left:5px;bottom:5px;padding:4px 5px;max-width:calc(100% - 10px)}.item-content{padding:8px 10px 12px}.item-content h3{font-size:18px;min-height:44px}.item-content summary{font-size:13px;min-height:44px;line-height:1.4}.item-quote{font-size:13px;padding:9px;line-height:1.35;gap:8px;min-height:52px}.item-quote span{font-size:18px}.item-content details p,.product-source{font-size:13px}.catalog-end{display:block;padding:45px 22px}.catalog-end h2{font-size:38px}.catalog-end>div{margin-top:25px;max-width:none}#empty-results{padding:35px 6px}#empty-results h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.item-photo img,.family-filter,.item-quote{transition:none}}

.group-heading p,#result-count{font-size:var(--body)}

/* Same grid, alignment and type hierarchy as the main site. */
.catalog-intro{padding-block:44px 56px;display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter)}
.catalog-intro-note{max-width:54ch;justify-self:start}
.catalog-intro h1{line-height:1.04}
.catalog-results{padding:56px var(--margin) var(--section)}
.full-product-grid{align-items:stretch}
.catalog-item{display:flex;flex-direction:column}
.item-content{display:flex;flex:1;flex-direction:column}
.item-content h3{min-height:2.5em;text-wrap:initial}
.item-content details{margin-bottom:14px}
.item-content summary{min-height:44px;line-height:1.45}
.item-quote{margin-top:auto;justify-content:center;text-align:center}
.catalog-end{padding:var(--section) var(--margin);display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter)}
.catalog-end>div{max-width:54ch}
.catalog-group{scroll-margin-top:28px}
@media(max-width:800px){.catalog-intro{gap:32px}.catalog-intro h1{font-size:56px}.catalog-end{align-items:start}.group-heading h2{font-size:36px}.group-heading{gap:24px}.group-heading p{font-size:14px}}
@media(max-width:540px){.catalog-intro{display:block;padding:24px var(--margin) 36px}.catalog-intro h1{font-size:44px}.catalog-intro-note{margin-top:24px}.catalog-tools{padding:26px var(--margin)}.catalog-results{padding:36px var(--margin) 56px}.group-heading{padding:0}.full-product-grid{gap:16px 12px}.item-photo{height:auto;aspect-ratio:1}.item-content{padding:10px 12px 14px}.item-content h3{font-size:18px;min-height:2.5em;overflow-wrap:anywhere}.item-quote{min-height:48px}.item-content details p,.product-source{font-size:13px}.catalog-end{display:block;padding:48px var(--margin)}.catalog-end h2{font-size:38px}.catalog-end>div{margin-top:24px}.group-heading h2{font-size:32px}}
@media(max-width:359px){.item-content{padding:8px 9px 12px}.item-content h3{font-size:17px}.item-content summary{font-size:12px;gap:6px}.item-quote{font-size:12px;padding-inline:6px}}
