/* Hallmark · macrostructure: Catalogue · design-system: design.md · genre: industrial editorial · nav: N11 · footer: Ft1 */
@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700&family=IBM+Plex+Sans:wght@400;600&display=swap');
@import url("./tokens.css");
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{scroll-padding-top:6rem}body{font:400 1rem/1.6 var(--body);color:var(--ink);background:var(--paper)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.08;font-style:normal;overflow-wrap:anywhere;min-width:0}h1{font-size:clamp(2.5rem,4.8vw,4.25rem)}h2{font-size:clamp(2rem,3vw,2.75rem)}h3{font-size:1.6rem}button,input,select,textarea{font-family:var(--body);font-size:1rem}a{color:inherit;text-underline-offset:.3em}button,a,input{touch-action:manipulation}button{cursor:pointer}a,button{ -webkit-tap-highlight-color:transparent}button:disabled{opacity:.55;cursor:not-allowed}img{max-width:100%;display:block}button,input,select,textarea{border-radius:var(--radius)}:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.dark :focus-visible{outline-color:var(--on-dark)}[hidden]{display:none!important}.wrap{max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.preview-strip{background:var(--dark);color:var(--on-dark-muted);text-align:center;font-size:.75rem;padding:var(--s2) var(--s4)}.site-header{position:sticky;top:0;z-index:var(--z-nav);background:var(--paper)}.header-inner{height:5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--s5)}.brand{font:700 2rem/1 var(--display);display:inline-flex;align-items:center;gap:var(--s3);text-decoration:none;white-space:nowrap}.brand-mark{width:1.55rem;height:1.55rem;border:3px solid currentColor;border-bottom:0;border-radius:1.6rem 1.6rem 0 0;position:relative}.brand-mark:after{content:'';position:absolute;bottom:0;left:calc(50% - 1.5px);height:70%;width:3px;background:var(--accent)}.desktop-nav{display:flex;align-items:center;gap:var(--s6)}.desktop-nav>a,.desktop-nav>button{color:var(--muted);text-decoration:none;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}.desktop-nav>button{background:none;border:0;padding:0}.desktop-nav>.button{color:var(--dark)}.desktop-nav>[aria-current=page]{color:var(--ink);font-weight:600}.button{min-height:3rem;padding:var(--s3) var(--s5);display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);font-weight:600;font-size:.9375rem;line-height:1.2;white-space:nowrap;text-decoration:none;background:var(--accent);color:var(--dark);border:1px solid transparent;border-radius:.25rem}.button:hover{background:var(--accent-hover)}.button:active{transform:translateY(1px)}.button.outline{background:none;color:var(--ink);border-color:var(--ink)}.button.outline:hover{background:var(--paper2)}.button.small{min-height:44px;padding:var(--s2) var(--s4);font-size:.875rem}.menu-toggle{display:none;background:none;border:1px solid var(--ink);color:var(--ink);min-height:44px;padding:var(--s2) var(--s4)}.mega{position:absolute;inset:100% 0 auto;background:var(--surface);padding:var(--s6) 0;border-bottom:1px solid var(--rule)}.mega-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6)}.mega a{display:block;text-decoration:none;border-top:2px solid var(--rule);padding-top:var(--s4)}.mega a:hover{border-color:var(--accent)}.mega strong{display:block;font:700 1.5rem/1.2 var(--display);margin-bottom:var(--s2)}.mega span{font-size:.875rem;color:var(--muted)}.mobile-menu a{display:block;text-decoration:none;padding:var(--s3) 0;border-bottom:1px solid var(--rule)}.mobile-menu{padding-bottom:var(--s5)}
.breadcrumbs{padding-block:var(--s5);display:flex;gap:var(--s2);align-items:center;font-size:.875rem;color:var(--muted);flex-wrap:wrap}.breadcrumbs a{text-decoration:none;white-space:nowrap}.breadcrumbs [aria-current]{color:var(--ink)}.catalog-intro{padding-top:var(--s4);padding-bottom:var(--s7);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s8);align-items:end}.catalog-intro p{color:var(--muted);max-width:46ch;margin-top:var(--s4)}.selection-help{border-left:1px solid var(--rule);padding-left:var(--s6);font-size:.9375rem}.selection-help strong{display:block;color:var(--ink);margin-bottom:var(--s2)}.selection-help a{display:inline-block;color:var(--link);font-weight:600;margin-top:var(--s3);min-height:32px}.category-tabs{display:flex;gap:var(--s6);border-bottom:1px solid var(--rule);margin-bottom:var(--s7)}.category-tabs button{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);padding:var(--s4) 0;display:inline-flex;align-items:center;gap:var(--s3);white-space:nowrap;font-size:.9375rem}.category-tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--ink);font-weight:600}.count{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--muted)}.catalog-layout{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:var(--s7);align-items:start;padding-bottom:var(--s8)}.filters{position:sticky;top:6.5rem}.filters h2{font:600 1rem/1.4 var(--body);margin-bottom:var(--s5)}.filter-block{border-top:1px solid var(--rule);padding-block:var(--s5)}.filter-block legend,.filter-block h3{font:600 .875rem/1.4 var(--body);margin-bottom:var(--s3)}.filter-block fieldset{border:0;padding:0;margin:0}.filter-option{display:flex;align-items:center;gap:var(--s3);min-height:40px;font-size:.875rem;cursor:pointer}.filter-option input{accent-color:var(--ink);width:1rem;height:1rem;flex-shrink:0}.filter-hint{font-size:.8125rem;color:var(--muted);margin-top:var(--s3)}.text-button{background:none;border:0;color:var(--link);padding:var(--s2) 0;min-height:44px;font-weight:600;font-size:.875rem;text-decoration:underline;text-underline-offset:.3em}.mobile-filter-toggle{display:none}.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:center;margin-bottom:var(--s5)}.search-field{position:relative}.search-field input{height:3rem;width:100%;padding:0 2.5rem 0 var(--s4);background:var(--surface);border:1px solid var(--field);color:var(--ink)}.search-clear{position:absolute;right:.5rem;top:.25rem;width:2.5rem;height:2.5rem;background:none;border:0;color:var(--muted);font-size:1.25rem}.sort{height:3rem;background:var(--surface);border:1px solid var(--field);padding:0 var(--s3);color:var(--ink);max-width:13rem}.results-line{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s5);font-size:.875rem;color:var(--muted)}.results-line p{font-variant-numeric:tabular-nums}.active-filters{display:flex;gap:var(--s2);flex-wrap:wrap}.active-filter{background:var(--paper2);color:var(--ink);border:0;padding:.35rem var(--s3);font-size:.8125rem;min-height:36px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}.product-card{border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);display:flex;flex-direction:column;min-width:0;overflow:clip}.product-photo{display:block;position:relative;aspect-ratio:4/3;background:var(--paper2)}.product-photo img{height:100%;width:100%;object-fit:contain}.ai-label{position:absolute;bottom:var(--s2);left:var(--s2);font-size:.625rem;padding:.2rem .4rem;line-height:1.3;background:var(--dark);color:var(--on-dark);border-radius:.2rem}.product-body{padding:var(--s5);display:flex;flex-direction:column;flex:1}.family-label{font-size:.75rem;color:var(--muted);margin-bottom:var(--s2)}.product-card h3{font-size:1.5rem;line-height:1.12;min-height:3.4em}.product-card h3 a{text-decoration:none}.product-card h3 a:hover{text-decoration:underline}.product-meta{font-size:.8125rem;color:var(--muted);margin-block:var(--s4);display:grid;gap:var(--s2)}.product-meta div{display:flex;gap:var(--s2);justify-content:space-between;border-bottom:1px solid var(--rule);padding-bottom:var(--s2)}.product-meta dt,.product-meta dd{margin:0}.product-meta dd{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.product-card .actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:auto;padding-top:var(--s2)}.details-link{color:var(--link);font-size:.875rem;font-weight:600;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.compare-label{display:inline-flex;align-items:center;gap:var(--s2);font-size:.8125rem;min-height:44px;cursor:pointer;white-space:nowrap}.compare-label input{accent-color:var(--ink)}.empty-state{background:var(--paper2);padding:var(--s8);text-align:left}.empty-state p{color:var(--muted);margin-block:var(--s4)}.pagination{display:flex;gap:var(--s2);align-items:center;justify-content:center;padding-top:var(--s7);flex-wrap:wrap}.pagination button{height:44px;min-width:44px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);padding:0 var(--s3)}.pagination button[aria-current=page]{background:var(--ink);color:var(--on-dark)}.catalog-note{font-size:.8125rem;color:var(--muted);margin-top:var(--s6);max-width:70ch}.compare-bar{position:fixed;inset:auto 0 0;background:var(--dark);color:var(--on-dark);z-index:180;padding:var(--s3) 0}.compare-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.compare-bar p{font-size:.875rem}.compare-bar .actions{display:flex;gap:var(--s4);align-items:center}.compare-bar .text-button{color:var(--on-dark)}.compare-bar .selection-count{font-variant-numeric:tabular-nums}.status-message{font-size:.875rem;color:var(--link);min-height:1.5em}
.help-band{background:var(--paper2);padding-block:var(--s8)}.help-band .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s7);align-items:center}.help-band p{max-width:58ch;color:var(--muted);margin-top:var(--s4)}.help-band .button{justify-self:end}.site-footer{background:var(--dark);color:var(--on-dark);padding-block:var(--s8) var(--s7)}.site-footer .brand{font-size:3rem}.site-footer p{color:var(--on-dark-muted);margin-top:var(--s3);max-width:60ch;font-size:.9375rem}.footer-links{display:flex;align-items:center;gap:var(--s6);flex-wrap:wrap;margin-block:var(--s6);padding-block:var(--s4);border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark)}.footer-links a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;text-decoration:none}.copyright{font-size:.8125rem!important}dialog{position:fixed;inset:0;margin:auto;width:min(92vw,70rem);height:fit-content;max-height:85dvh;overflow:auto;padding:var(--s6);border:0;border-radius:var(--radius);background:var(--surface);color:var(--ink);z-index:var(--z-modal)}dialog::backdrop{background:color-mix(in oklch,var(--dark) 72%,transparent)}.dialog-close{display:block;margin:0 0 var(--s5) auto;min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--rule);padding:var(--s2) var(--s4)}.comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-block:var(--s6)}.comparison-item{min-width:0;border:1px solid var(--rule);padding:var(--s4)}.comparison-item img{aspect-ratio:4/3;width:100%;object-fit:contain;background:var(--paper2)}.comparison-item h3{margin-block:var(--s4);font-size:1.5rem}.comparison-item dl{font-size:.875rem}.comparison-item dt{color:var(--muted);margin-top:var(--s3)}.comparison-item dd{margin:0}.comparison-item a{margin-top:var(--s5)}.privacy-copy{max-width:65ch}.privacy-copy p{margin-top:var(--s4)}
.product-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s8);padding-block:var(--s4) var(--s8);align-items:start}.detail-image{position:relative;background:var(--paper2);aspect-ratio:4/3;border-radius:var(--radius);overflow:clip}.detail-image img{width:100%;height:100%;object-fit:contain}.detail-thumbs{display:flex;gap:var(--s3);margin-top:var(--s4)}.detail-thumbs button{padding:var(--s1);border:1px solid var(--rule);background:var(--surface);width:6rem}.detail-thumbs button[aria-pressed=true]{border-color:var(--ink)}.detail-thumbs img{height:4rem;width:100%;object-fit:contain}.detail-caption{font-size:.8125rem;color:var(--muted);margin-top:var(--s4)}.product-summary h1{font-size:clamp(2.5rem,3.8vw,3.5rem);margin-top:var(--s3)}.product-summary .description{color:var(--muted);margin-block:var(--s5);max-width:55ch}.quick-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:var(--s5);margin:0 0 var(--s5)}.quick-specs dt{font-size:.8125rem;color:var(--muted)}.quick-specs dd{font:600 .9375rem/1.4 var(--body);margin:var(--s1) 0 0}.product-summary .button{width:100%;margin-bottom:var(--s3)}.product-summary .note{font-size:.8125rem;color:var(--muted)}.detail-nav{display:flex;gap:var(--s6);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:var(--s4);flex-wrap:wrap}.detail-nav a{font-weight:600;color:var(--muted);text-decoration:none;min-height:32px;white-space:nowrap}.detail-section{padding-block:var(--s8);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s8)}.detail-section h2{font-size:2.25rem}.detail-section p{max-width:65ch;color:var(--muted)}.spec-table{width:100%;border-collapse:collapse;font-size:.9375rem}.spec-table th,.spec-table td{padding:var(--s4) 0;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.5}.spec-table th{text-align:left;font-weight:400;color:var(--muted);width:46%;padding-right:var(--s5)}.spec-table td{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.spec-footnote{font-size:.8125rem;margin-top:var(--s5);color:var(--muted)}.application-list{display:grid;gap:var(--s5);padding:0;margin:0;list-style:none}.application-list li{border-top:1px solid var(--rule);padding-top:var(--s4)}.application-list h3{font:600 1rem/1.4 var(--body);margin-bottom:var(--s2)}.package-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5);padding:0;list-style:none}.package-list li{padding-top:var(--s4);border-top:1px solid var(--rule);font-size:.9375rem}.questions details{padding-block:var(--s5);border-top:1px solid var(--rule)}.questions summary{min-height:44px;cursor:pointer;font-weight:600}.questions details p{margin-top:var(--s3)}.related{background:var(--paper2);padding-block:var(--s8)}.related .product-grid{margin-top:var(--s6)}.source-disclosure{margin-top:var(--s5);font-size:.8125rem}.source-disclosure summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--muted)}.source-disclosure a{color:var(--link)}.detail-quote{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.product-grid{gap:var(--s6)}}
@media(max-width:1100px){.desktop-nav{gap:var(--s4);font-size:.875rem}.catalog-layout{grid-template-columns:12rem minmax(0,1fr);gap:var(--s5)}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-intro,.product-hero{gap:var(--s6)}.category-tabs{gap:var(--s5)}.category-tabs button{font-size:.875rem}.product-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.product-summary h1{font-size:2.7rem}}
@media(max-width:800px){.desktop-nav{display:none}.menu-toggle{display:block}.mega{display:none}.catalog-intro{grid-template-columns:minmax(0,1fr);gap:var(--s5);padding-bottom:var(--s5)}.selection-help{padding-left:0;border-left:0}.selection-help p{margin-top:0}.category-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--s4);margin-bottom:var(--s5)}.category-tabs button{justify-content:space-between}.catalog-layout{grid-template-columns:minmax(0,1fr);gap:var(--s5)}.filters{position:static;display:none;background:var(--paper2);padding:var(--s5);border:1px solid var(--rule)}.filters.is-open{display:block}.filter-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}.mobile-filter-toggle{display:inline-flex;margin-bottom:var(--s4)}.toolbar{gap:var(--s3)}.help-band .wrap{grid-template-columns:minmax(0,1fr);gap:var(--s5)}.help-band .button{justify-self:start}.product-hero{grid-template-columns:minmax(0,1fr);gap:var(--s6)}.product-summary h1{font-size:clamp(2.5rem,6vw,3.5rem)}.detail-image{max-height:480px;aspect-ratio:3/2}.detail-section{grid-template-columns:minmax(0,1fr);gap:var(--s5);padding-block:var(--s7)}.comparison{grid-template-columns:minmax(0,1fr)}.comparison-item{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--s4)}.comparison-item h3{margin-top:0}.comparison-item dl,.comparison-item>a{grid-column:2}.comparison-item img{grid-row:1/3}.detail-quote{display:block;position:fixed;inset:auto 0 0;padding:var(--s3) var(--s4) max(var(--s3),env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--rule);z-index:180}.detail-quote .button{width:100%}.site-footer{padding-bottom:7rem}}
@media(max-width:480px){.header-inner{height:4.5rem}.preview-strip{font-size:.625rem}.breadcrumbs{padding-block:var(--s4);font-size:.8125rem}.catalog-intro h1{font-size:2.7rem}.category-tabs{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s4)}.toolbar{grid-template-columns:minmax(0,1fr)}.sort{max-width:none;width:100%}.product-grid{grid-template-columns:minmax(0,1fr)}.product-photo{aspect-ratio:3/2}.product-card h3{min-height:0;font-size:1.75rem}.product-body{padding:var(--s5)}.product-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}.product-meta div{display:block}.product-meta dd{text-align:left;margin-top:var(--s1)}.filter-groups{grid-template-columns:minmax(0,1fr)}.results-line{align-items:flex-start;flex-direction:column}.active-filters{max-width:100%}.help-band,.related{padding-block:var(--s7)}.help-band h2{font-size:2.2rem}.empty-state{padding:var(--s6)}.compare-bar .wrap{align-items:flex-start;gap:var(--s3)}.compare-bar p{font-size:.8125rem;max-width:12ch}.compare-bar .actions{gap:var(--s3)}.compare-bar .text-button{font-size:.8125rem}.compare-bar .button{padding:var(--s2) var(--s3);font-size:.8125rem}.product-summary h1{font-size:2.7rem}.quick-specs{gap:var(--s4)}.detail-nav{gap:var(--s5);font-size:.875rem}.package-list{grid-template-columns:minmax(0,1fr)}.spec-table{font-size:.875rem}.spec-table th{width:44%;padding-right:var(--s4)}dialog{padding:var(--s5);width:calc(100% - 1.5rem)}.comparison-item{grid-template-columns:5rem minmax(0,1fr)}.footer-links{gap:var(--s3) var(--s5)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
