*{box-sizing:border-box}
.shop-page{min-height:100%;margin:0;background:var(--surface-page);color:var(--text-body);font:var(--fs-body)/1.5 var(--font-sans);letter-spacing:var(--ls-body)}
.shop-header{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-4);align-items:start;padding:var(--space-5) var(--gutter);border-bottom:3px solid var(--rule-strong);background:var(--surface-card)}
.shop-mark{width:32px;height:32px;background:var(--blue-800);box-shadow:inset 0 -6px 0 var(--red-600)}
.shop-heading h1{margin:0;color:var(--text-strong);font:var(--fw-bold) var(--fs-h1)/1 var(--font-sans);letter-spacing:var(--ls-heading);text-transform:lowercase}
.shop-heading p{margin:var(--space-2) 0 0;color:var(--text-body)}
.shop-contact{margin-top:var(--space-2);color:var(--eyebrow);font-size:var(--fs-caption);font-weight:var(--fw-semibold);letter-spacing:var(--ls-caps);text-transform:lowercase}
.shop-main{width:min(var(--container-xl),100%);margin:0 auto;padding:var(--space-6) var(--gutter) var(--space-8)}
.shop-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5);padding:var(--space-3) 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.shop-tags{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line-strong)}
.shop-tag{min-height:var(--control-h);padding:0 var(--control-pad-x);border:0;border-right:1px solid var(--line-strong);background:var(--surface-card);color:var(--text-body);font:var(--fw-semibold) var(--fs-label)/1 var(--font-sans);letter-spacing:var(--ls-label);text-transform:lowercase;cursor:pointer}
.shop-tag:last-child{border-right:0}.shop-tag:hover{background:var(--surface-hover)}.shop-tag.active{background:var(--surface-selected-solid);color:var(--text-on-selected)}
.shop-search{flex:1;min-width:min(280px,100%)}.shop-search input{width:100%;min-height:var(--control-h);padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:0;background:var(--surface-card);color:var(--text-strong);font:inherit}.shop-search input:focus,.shop-tag:focus-visible,.shop-product-card:focus-visible,.shop-button:focus-visible,.shop-dialog-close:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}
.shop-product-card{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;border:0;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface-card);color:inherit;font:inherit;text-align:left;cursor:pointer}.shop-product-card:hover{box-shadow:inset 0 0 0 2px var(--brand)}
.shop-product-image{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;overflow:hidden;border-bottom:1px solid var(--line-strong);background:var(--surface-sunken)}.shop-product-image img{width:100%;height:100%;object-fit:cover}.shop-no-photo{color:var(--text-muted);font-size:var(--fs-caption);letter-spacing:var(--ls-caps);text-transform:lowercase}
.shop-product-details{display:flex;flex:1;flex-direction:column;padding:var(--space-4)}.shop-kicker{margin-bottom:var(--space-2);color:var(--eyebrow);font-size:var(--fs-caption);font-weight:var(--fw-semibold);letter-spacing:var(--ls-caps);text-transform:lowercase}.shop-product-title{min-height:2.7em;margin:0 0 var(--space-3);overflow:hidden;color:var(--text-strong);font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:1.35;text-transform:lowercase}.shop-product-footer{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--line-strong)}.shop-product-size{color:var(--text-muted);font-size:var(--fs-caption)}.shop-product-price,.shop-price{color:var(--text-strong);font:var(--fw-bold) var(--fs-h3)/1 var(--font-numeric);font-variant-numeric:tabular-nums}
.shop-empty,.shop-load-error,.shop-loading{grid-column:1/-1;padding:var(--space-7) var(--space-4);border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);color:var(--text-muted);text-align:center}.shop-loading{border-top:3px solid var(--brand)}.shop-load-error{border-top:3px solid var(--danger)}.shop-load-error .shop-tag{margin-top:var(--space-3);border:1px solid var(--line-strong)}
.shop-dialog[hidden]{display:none}.shop-dialog{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:rgba(24,23,18,.48)}
.shop-dialog-card{position:relative;width:min(960px,100%);max-height:85vh;overflow:auto;border:2px solid var(--rule-strong);background:var(--surface-card);box-shadow:var(--shadow-pop)}.shop-dialog-close{position:absolute;z-index:2;top:var(--space-3);right:var(--space-3);display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:0;background:var(--surface-card);color:var(--text-strong);cursor:pointer}.shop-dialog-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:square;stroke-width:2}
.shop-dialog-grid{display:grid;grid-template-columns:1.1fr 1fr}.shop-dialog-image{display:flex;align-items:center;justify-content:center;min-height:480px;background:var(--surface-sunken);border-right:1px solid var(--line-strong)}.shop-dialog-image img{max-width:100%;max-height:80vh;object-fit:contain}.shop-dialog-info{padding:var(--space-6)}.shop-dialog-info h2,.shop-status-card h2{margin:0 0 var(--space-3);color:var(--text-strong);font:var(--fw-bold) var(--fs-h2)/1.15 var(--font-sans);letter-spacing:var(--ls-heading);text-transform:lowercase}.shop-price{margin-bottom:var(--space-5)}.shop-description{margin-bottom:var(--space-5);color:var(--text-body);line-height:1.6;white-space:pre-wrap}
.shop-specs{width:100%;margin-bottom:var(--space-5);border-collapse:collapse;font-size:var(--fs-body-sm)}.shop-specs th,.shop-specs td{padding:var(--space-2) 0;border-bottom:1px solid var(--line-strong);text-align:left;vertical-align:top}.shop-specs th{width:120px;color:var(--eyebrow);font-weight:var(--fw-semibold);letter-spacing:var(--ls-caps);text-transform:lowercase}.shop-specs td{color:var(--text-strong)}
.shop-actions{display:grid;gap:var(--space-3)}.shop-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--control-h-lg);padding:0 var(--control-pad-x);border:1px solid var(--line-strong);border-radius:0;background:var(--surface-card);color:var(--text-strong);font:var(--fw-bold) var(--fs-label)/1 var(--font-sans);letter-spacing:var(--ls-label);text-align:center;text-decoration:none;text-transform:lowercase;cursor:pointer}.shop-button.primary{border-color:var(--surface-brand);background:var(--surface-brand);color:var(--text-on-brand)}.shop-button:hover{background:var(--surface-hover)}.shop-button.primary:hover{background:var(--brand-strong)}.shop-inline-error{margin:0;color:var(--danger);font-size:var(--fs-body-sm);text-align:center}
.shop-status-card{width:min(430px,100%);padding:var(--space-6);border-top:6px solid var(--warning);text-align:center}.shop-status-card[data-tone="success"]{border-top-color:var(--success)}.shop-status-band{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4);color:var(--eyebrow);font-size:var(--fs-caption);font-weight:var(--fw-semibold);letter-spacing:var(--ls-caps);text-transform:lowercase}.shop-status-band p{margin:0}.shop-status-mark{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--warning);background:var(--warning-tint);color:var(--amber-800)}.shop-status-card[data-tone="success"] .shop-status-mark{border-color:var(--success);background:var(--green-100);color:var(--green-800)}.shop-status-mark svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:2}.shop-status-card>#status-text{margin:0 0 var(--space-5);color:var(--text-body)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:820px){.shop-header{padding:var(--space-5) var(--space-4)}.shop-heading h1{font-size:var(--fs-h2)}.shop-dialog-grid{grid-template-columns:1fr}.shop-dialog-image{min-height:300px;border-right:0;border-bottom:1px solid var(--line-strong)}.shop-dialog-info{padding:var(--space-5)}.shop-filter-bar{align-items:stretch;flex-direction:column}.shop-search{width:100%}.shop-tags{justify-content:center}}
