.catalog-hero { align-items: end; background: var(--paper); border-bottom: 1px solid var(--line); color: var(--ink); display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: 1.15fr .85fr; padding: 2rem max(4vw, calc((100vw - var(--max)) / 2)) 1.75rem; }
.catalog-hero .eyebrow { margin-bottom: .65rem; }
.catalog-hero h1 { font-size: clamp(1.9rem, 2.55vw, 2.65rem); line-height: 1.08; margin-bottom: 0; }
.catalog-hero > p { color: #58675f; font-size: .94rem; line-height: 1.55; margin-bottom: .2rem; max-width: 500px; }
.catalog-shell { padding: 1.75rem max(4vw, calc((100vw - var(--max)) / 2)) 7rem; }
.catalog-toolbar { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding-bottom: 1.5rem; }
.catalog-search { align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: 8px; display: flex; gap: .6rem; max-width: 560px; padding: 0 1rem; width: 50%; }
.catalog-search svg { fill: none; height: 20px; stroke: currentColor; stroke-width: 1.8; width: 20px; }
.catalog-search input { background: transparent; border: 0; color: var(--ink); outline: 0; padding: .95rem 0; width: 100%; }
.catalog-count { color: var(--sage); font-size: .9rem; }
.catalog-layout { display: grid; gap: 1.25rem; grid-template-columns: 210px minmax(0, 1fr); margin-top: 2rem; }
.catalog-filters { align-self: start; position: sticky; top: 105px; }
.filter-heading { align-items: center; display: flex; justify-content: space-between; }
.filter-heading strong { font-family: var(--font-display); font-size: 1.1rem; }.filter-heading button { background: none; border: 0; color: var(--orange); cursor: pointer; }
.filter-group { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1.3rem; }
.filter-group > span { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .1em; margin-bottom: .8rem; text-transform: uppercase; }
.filter-option { align-items: center; cursor: pointer; display: flex; font-size: .9rem; gap: .6rem; margin: .65rem 0; }
.filter-option input { accent-color: var(--orange); height: 16px; width: 16px; }
.filter-category-group { border-bottom: 1px solid rgba(18,37,30,.07); padding: .15rem 0 .55rem; }
.filter-category-group:last-child { border-bottom: 0; }
.filter-option-category { font-weight: 750; }
.filter-subcategories { border-left: 1px solid var(--line); margin: .1rem 0 .5rem .5rem; padding-left: 1rem; }
.filter-option-subcategory { color: #65736c; font-size: .8rem; margin: .5rem 0; }
.filter-option-subcategory input { height: 14px; width: 14px; }
.taxonomy-filter-image { width: 28px; height: 28px; border-radius: 5px; object-fit: cover; }
.filter-option-category, .filter-option-subcategory { align-items: center; display: flex; gap: .45rem; }
.filter-help { background: var(--forest); border-radius: var(--radius-md); color: var(--white); margin-top: 2.5rem; padding: 1.35rem; }
.filter-help p { color: rgba(255,255,255,.58); font-size: .82rem; }.filter-help a { color: var(--mint); font-size: .85rem; font-weight: 800; }
.catalog-products { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.product-card { background: transparent; border: 1px solid transparent; border-radius: var(--radius-md); cursor: pointer; display: flex; flex-direction: column; min-height: 450px; overflow: hidden; transition: border-color .2s, transform .2s, box-shadow .2s; }
.product-card:hover { border-color: rgba(240,100,50,.35); box-shadow: var(--shadow-sm); transform: translateY(-4px); }
.product-card-link { color: inherit; cursor: pointer; display: flex; flex: 1; flex-direction: column; min-height: 0; }
.product-image { align-items: center; background: transparent; display: flex; height: 250px; justify-content: center; overflow: hidden; padding: 1.3rem; position: relative; }
.product-image img { height: 185px; max-width: 145px; object-fit: contain; transition: transform .25s ease; width: 145px; }
.product-card:hover .product-image img { transform: scale(1.035); }
.product-badge { background: var(--white); border-radius: 6px; font-size: .62rem; font-weight: 800; left: 1rem; letter-spacing: .08em; padding: .42rem .6rem; position: absolute; text-transform: uppercase; top: 1rem; z-index: 2; }
.product-info { display: flex; flex: 1; flex-direction: column; padding: 1.2rem; }
.product-info small { color: var(--orange); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.product-info p { color: #66736d; font-size: .84rem; }
.product-card-footer { border-top: 1px solid var(--line); margin: 0 1.2rem 1.1rem; padding-top: .8rem; }
.product-card-cart { background: var(--forest); border: 1px solid var(--forest); border-radius: 7px; color: var(--white); cursor: pointer; font-size: .82rem; font-weight: 800; min-height: 42px; padding: .62rem .85rem; transition: background .18s ease, border-color .18s ease, transform .18s ease; width: 100%; }
.product-card-cart:hover, .product-card-cart:focus-visible, .product-card-cart.is-added { background: var(--forest-2); border-color: var(--forest-2); transform: translateY(-1px); }
.product-card-cart:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.catalog-products .product-info h3, .related-grid .product-info h3 { color: var(--forest); font-size: clamp(1.05rem, 1.2vw, 1.2rem); letter-spacing: -.025em; line-height: 1.2; margin: .45rem 0; }
.catalog-products .product-card { min-height: 450px; }
.catalog-products .product-image { height: 250px; }
.catalog-products .product-image img, .related-grid .product-image img { height: 185px; max-width: 145px; width: 145px; }
.empty-products { align-items: center; background: var(--cream); border-radius: var(--radius-md); display: flex; flex-direction: column; grid-column: 1 / -1; justify-content: center; min-height: 360px; padding: 2rem; text-align: center; }
.empty-products p { color: var(--sage); }

.product-page { padding: 1.25rem max(4vw, calc((100vw - var(--max)) / 2)) 6rem; }
.breadcrumbs { color: var(--sage); display: flex; flex-wrap: wrap; font-size: .78rem; gap: .55rem; margin: .8rem 0 2rem; }.breadcrumbs a:hover { color: var(--orange); }
.product-hero { align-items: center; display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); }
.product-gallery { align-items: center; background: transparent; display: flex; justify-content: center; min-height: 500px; overflow: visible; position: relative; }
.product-gallery::before { display: none; }
.product-gallery img { filter: drop-shadow(0 16px 18px rgba(12,40,31,.12)); height: 440px; max-width: 78%; object-fit: contain; position: relative; width: 360px; }
.product-gallery .product-badge { background: transparent; color: var(--sage); left: 0; padding: 0; top: 0; }
.product-gallery { align-content: center; display: grid; gap: .8rem; grid-template-columns: minmax(0,1fr); justify-items: center; }
.product-gallery-stage { align-items: center; display: grid; grid-template-columns: 38px minmax(0,1fr) 38px; height: 440px; justify-items: center; max-width: 100%; position: relative; width: 100%; }
.product-gallery-stage img { grid-column: 2; grid-row: 1; }
.product-gallery-arrow { align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: 50%; color: var(--forest); cursor: pointer; display: grid; font-size: 1.5rem; height: 36px; justify-items: center; line-height: 1; padding: 0 0 3px; width: 36px; z-index: 1; }
.product-gallery-arrow:hover { border-color: var(--forest-2); }
.product-gallery-arrow.previous { grid-column: 1; grid-row: 1; }
.product-gallery-arrow.next { grid-column: 3; grid-row: 1; }
.product-gallery-thumbnails { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.product-gallery-thumbnail { align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: 6px; cursor: pointer; display: grid; height: 62px; justify-items: center; overflow: hidden; padding: 3px; width: 62px; }
.product-gallery-thumbnail.active { border-color: var(--forest-2); box-shadow: 0 0 0 1px var(--forest-2); }
.product-gallery-thumbnail img { filter: none; height: 100%; max-width: 100%; object-fit: contain; width: 100%; }
.product-gallery-count { color: var(--sage); font-size: .72rem; }
.product-details { align-self: center; }
.product-details .category-label { color: var(--orange); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.product-details h1 { color: var(--forest); font-size: clamp(1.65rem, 1.9vw, 1.85rem); letter-spacing: -.035em; line-height: 1.16; margin: .65rem 0 .85rem; max-width: 680px; }
.product-details .product-summary { color: #526159; font-size: 14px; line-height: 1.65; max-width: 580px; }
.challenge-pill { background: var(--mint-pale); border-radius: 6px; color: var(--forest); display: inline-flex; font-size: .82rem; font-weight: 700; margin: .8rem 0 1.2rem; padding: .4rem .62rem; }
.product-purchase { background: var(--white); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(12,40,31,.06); margin: 0 0 .9rem; padding: 1rem; }
.product-purchase-head { align-items: flex-end; display: flex; justify-content: space-between; }
.product-purchase-head span, .product-variant-field > span:first-child, .product-quantity-field > span:first-child { color: var(--sage); display: block; font-size: .64rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.product-purchase-head strong { display: block; font-family: var(--font-display); font-size: 1.25rem; margin-top: .05rem; }.product-purchase-head small { color: var(--forest-2); font-size: .75rem; font-weight: 700; }
.product-variant-field { display: block; margin-top: .75rem; }.product-variant-field select, .product-option-static { appearance: none; background-color: var(--paper); border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font-size: .88rem; margin-top: .25rem; min-height: 41px; padding: .6rem .75rem; width: 100%; }.product-variant-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2311251e' stroke-width='2'%3E%3Cpath d='m3 5 4 4 4-4'/%3E%3C/svg%3E"); background-position: calc(100% - .85rem) center; background-repeat: no-repeat; padding-right: 2.3rem; }.product-option-static { align-items: center; display: flex; }
.product-purchase-row { align-items: end; display: grid; gap: .65rem; grid-template-columns: 112px 1fr; margin-top: .65rem; }
.quantity-control { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 32px 1fr 32px; margin-top: .25rem; overflow: hidden; }
.quantity-control button { background: transparent; border: 0; color: var(--ink); cursor: pointer; font-size: 1rem; height: 40px; }.quantity-control input { appearance: textfield; background: transparent; border: 0; color: var(--ink); font-size: .88rem; font-weight: 700; min-width: 0; outline: 0; text-align: center; width: 100%; }.quantity-control input::-webkit-inner-spin-button { appearance: none; }
.add-cart-button { font-size: .88rem; min-height: 42px; padding: .55rem 1rem; width: 100%; }.add-cart-button:disabled { cursor: not-allowed; opacity: .5; }
.product-purchase-meta { color: var(--sage); font-size: .68rem; margin: .55rem 0 0; }.product-cart-message { color: var(--forest-2); font-size: .72rem; font-weight: 700; margin: .18rem 0 0; }
.product-actions { align-items: center; display: flex; gap: 1rem; }.product-actions .button { font-size: .86rem; min-height: 42px; padding: .55rem 1rem; }.product-actions .arrow-link { font-size: .86rem; }
.product-body { align-items: start; display: grid; gap: 1.2rem; grid-template-columns: minmax(0,1fr) minmax(220px,280px); margin-top: 2.5rem; }
.product-story > .product-content-section{margin-top:1.5rem}.product-image-text.no-image{grid-template-columns:1fr}
.product-story, .product-resources { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 1.5rem; }
.product-story h2 { font-size: 20px; line-height: 1.3; margin: 0 0 .75rem; }.product-story > p { color: #5d6b64; font-size: 14px; line-height: 1.65; max-width: 740px; }
.feature-list { display: grid; gap: .75rem; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 2rem 0 0; padding: 0; }
.feature-list li { background: var(--cream); border-radius: 8px; font-size: 14px; font-weight: 650; line-height: 1.5; padding: .85rem; }
.feature-list li::before { color: var(--orange); content: '✓'; margin-right: .5rem; }
.product-resources { background: var(--forest); color: var(--white); }
.product-resources h3{font-size:16px;line-height:1.35;margin:.15rem 0 .6rem}.product-resources p { color: rgba(255,255,255,.68);font-size:13px;line-height:1.5;margin:.4rem 0 .7rem; }
.resource-link { align-items: center; border-top: 1px solid rgba(255,255,255,.15); display: flex; font-size:13px;font-weight:700; justify-content:space-between; padding:.65rem 0; }.resource-link span { color: var(--mint); }
.size-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .85rem; }.size-list span { border: 1px solid rgba(255,255,255,.2); border-radius: 6px; font-size: 12px; padding: .35rem .5rem; }
.related-section { margin-top: 3.25rem; }.related-section h2 { font-size: 20px; line-height:1.3; margin: .15rem 0 0; }.related-grid { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fill,minmax(230px,280px)); margin-top: .8rem; }.related-grid .product-card { min-height: 0; }.related-grid .product-image { height: 150px; padding: .55rem; }.related-grid .product-image img { height: 118px; max-width: 105px; width: 105px; }.related-grid .product-info { padding: .45rem .65rem .55rem; }.related-grid .product-info small { font-size: .58rem; }.related-grid .product-info h3 { font-size: .92rem; line-height: 1.2; margin: .2rem 0; }.related-grid .product-info p { display: -webkit-box; font-size: .72rem; line-height: 1.35; margin: .15rem 0 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }.related-grid .product-card-footer { margin: 0 .65rem .6rem; padding-top: .45rem; }.related-grid .product-card-cart { font-size: .72rem; min-height: 34px; padding: .4rem .6rem; }
.product-rich-content{display:grid;gap:1rem;margin-top:2.25rem}.product-content-section,.product-faq,.product-download{border:1px solid var(--line);border-radius:12px;background:var(--white)}.product-content-section{padding:1.35rem}.product-content-section h2{color:var(--forest);font-size:20px;line-height:1.3;margin:0 0 .65rem}.product-content-section p{color:#5d6b64;font-size:14px;line-height:1.65;max-width:820px}.product-content-section ul{display:grid;gap:.55rem;margin:.85rem 0 0;padding-left:1.2rem}.product-content-section li{color:#42524a;font-size:14px;line-height:1.5}.product-benefits ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;list-style:none;padding:0}.product-benefits li{background:var(--cream);border-radius:8px;padding:.75rem .85rem}.product-benefits li:before{content:'✓';color:var(--orange);font-weight:900;margin-right:.55rem}.product-image-text{align-items:center;display:grid;gap:clamp(1.5rem,4vw,4rem);grid-template-columns:1fr 1fr}.product-image-text.reverse>div{order:2}.product-image-text img{border-radius:9px;height:300px;object-fit:contain;width:100%}.product-application{display:grid;gap:1.5rem;grid-template-columns:.75fr 1.25fr}.product-application .section-number{color:var(--orange);display:block;font:800 .75rem var(--font-display);letter-spacing:.1em;margin-bottom:.65rem}.product-application ol{display:grid;gap:.55rem;margin:0;padding-left:1.4rem}.product-video-frame{aspect-ratio:16/9;margin-top:1rem;overflow:hidden;border-radius:10px}.product-video-frame iframe{border:0;height:100%;width:100%}.product-faq{overflow:hidden}.product-faq summary{cursor:pointer;font:700 14px var(--font-display);padding:.9rem 1.1rem}.product-faq[open] summary{border-bottom:1px solid var(--line)}.product-faq>div{color:#5d6b64;font-size:14px;padding:.2rem 1.1rem 1rem}.product-download{align-items:center;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;transition:border-color .2s,transform .2s}.product-download:hover{border-color:var(--orange);transform:translateY(-2px)}.product-download span small,.product-download span strong,.product-download span em{display:block}.product-download span small{color:var(--orange);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.product-download span strong{font-size:14px;margin-top:.25rem}.product-download span em{color:var(--sage);font-size:13px;font-style:normal;margin-top:.25rem}.product-download>b{color:var(--forest);font-size:.8rem}.recently-viewed{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.5rem}
@media(max-width:760px){.product-benefits ul,.product-image-text,.product-application{grid-template-columns:1fr}.product-image-text.reverse>div{order:initial}.product-image-text img{height:260px}.product-rich-content{margin-top:2.4rem}}
@media(max-width:560px){.product-page .related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.65rem}.related-grid .product-image{height:125px}.related-grid .product-image img{height:100px;max-width:86px;width:86px}.related-grid .product-info{padding:.4rem .5rem .45rem}.related-grid .product-info h3{font-size:.82rem}.related-grid .product-info p{font-size:.68rem}.related-grid .product-card-footer{margin:0 .5rem .5rem;padding-top:.4rem}.related-grid .product-card-cart{font-size:.67rem;min-height:32px;padding:.35rem .4rem}.related-section{margin-top:2.25rem}.recently-viewed{margin-top:1.5rem;padding-top:1.2rem}}
.product-video-frame video{display:block;height:100%;object-fit:contain;width:100%}
