*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1f2933;background:#fafafa;line-height:1.45}
a{color:#0b6bcb}
header.site{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#1f2933}
header.site a{color:#fff;text-decoration:none;font-weight:600}
header.site nav a{margin-left:1rem;font-weight:400}
main{max-width:1100px;margin:0 auto;padding:1rem}
.cats a{display:inline-block;margin:0 .5rem .5rem 0}
.cats a[aria-current]{font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.card-item{background:#fff;border:1px solid #e3e7eb;border-radius:8px;padding:.75rem}
.card-item img{width:100%;height:auto;border-radius:6px;background:#eceff1}
.card-item h2{font-size:1.05rem;margin:.5rem 0 .25rem}
.price{font-weight:700;font-size:1.1rem;margin:.25rem 0}
.desc{color:#52606d}
.product{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:800px){.product{grid-template-columns:1fr 1fr}}
.media img{width:100%;height:auto;border-radius:8px;background:#eceff1}
.viewer{margin-top:.5rem;min-height:2.5rem}
.viewer canvas{width:100%;height:360px;border-radius:8px;background:#eceff1;display:block}
form label{display:block;margin:.5rem 0}
form input,form select,form textarea{display:block;width:100%;max-width:28rem;padding:.4rem;font:inherit}
form input[type=radio],form input[type=checkbox]{display:inline;width:auto}
fieldset{border:1px solid #e3e7eb;border-radius:6px;margin:.75rem 0}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
button{font:inherit;padding:.45rem .9rem;border-radius:6px;border:1px solid #0b6bcb;background:#0b6bcb;color:#fff;cursor:pointer}
button[disabled]{opacity:.5;cursor:not-allowed}
.notice{background:#fff4e5;border:1px solid #f0c36d;padding:.5rem .75rem;border-radius:6px}
.form-error{color:#b00020}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border-bottom:1px solid #e3e7eb;padding:.4rem .5rem;text-align:left;vertical-align:top}
.swatch{display:inline-block;width:.9rem;height:.9rem;border-radius:50%;border:1px solid #999;vertical-align:middle}
.pay a{display:inline-block;margin:.25rem .5rem .25rem 0}
.events li{margin:.25rem 0}
