/* shop.css: /shop/, the shirts and the bag. Loaded by templates/shop.html only; uses the site's tokens (site.css :root). */
.sh-facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0 0 clamp(28px,4vw,48px);color:var(--ink2)}
.sh-facts b{color:var(--ink);font-weight:500;margin-right:6px}
.shirts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:clamp(36px,4vw,56px) clamp(18px,2.4vw,32px)}
.shirt{display:flex;flex-direction:column;gap:16px;scroll-margin-top:calc(var(--hh) + 24px)}
/* the printer's mockups are on white: the tile is white too, so the flat reads as the product photo it is */
.sh-img{position:relative;display:block;width:100%;aspect-ratio:1/1;padding:0;border:0;background:#fff;overflow:hidden;cursor:zoom-in}
.sh-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sh-img .sh-front{opacity:0;transition:opacity .35s}
@media (hover:hover){.sh-img:hover .sh-front{opacity:1}}
.sh-img:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.sh-meta h3{font:700 clamp(19px,1.6vw,23px)/1.15 var(--sans);margin:6px 0}
.sh-meta p{color:var(--ink2);margin:0 0 14px;font-size:14.5px;text-wrap:pretty}
.sizes{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.sizes button{min-width:44px;height:36px;padding:0 10px;border:1px solid var(--line2);background:none;color:var(--ink2);font:500 11px/1 var(--mono);letter-spacing:.1em;cursor:pointer}
.sizes button:hover{color:var(--ink);border-color:var(--ink2)}
.sizes button[aria-checked="true"]{color:#0a0b0d;background:var(--ink);border-color:var(--ink)}
.shirt .add{cursor:pointer;justify-content:center}
.shirt .add:disabled{opacity:.5;cursor:default}
.sh-sizes{margin:clamp(48px,6vw,80px) 0 0;max-width:820px;border-top:1px solid var(--line);padding-top:14px}
.sh-sizes summary{cursor:pointer;color:var(--ink2)}
.sh-sizes table{width:100%;border-collapse:collapse;margin:22px 0 6px;font:400 13px/1.4 var(--mono)}
.sh-sizes caption{text-align:left;color:var(--ink2);font:400 14px/1.4 var(--sans);margin-bottom:8px}
.sh-sizes th,.sh-sizes td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right}
.sh-sizes th:first-child{text-align:left;color:var(--ink2);font-weight:400}
.sh-sizes thead th{color:var(--ink);font-weight:500}
.sh-sizes p{color:var(--ink2);font-size:14px}
.sh-note{margin:32px 0 0;max-width:46em;color:var(--ink3);font-size:13.5px}
.sh-dlg{padding:0;border:0;background:transparent;max-width:min(96vw,1000px);max-height:96vh;overflow:visible}
.sh-dlg::backdrop{background:rgba(5,6,8,.9)}
.sh-dlg img{display:block;max-width:100%;max-height:92vh;width:auto;height:auto}
.sh-dlg-x{position:absolute;top:-6px;right:-6px;transform:translate(50%,-50%);width:36px;height:36px;border:1px solid var(--line2);background:var(--bg2);color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
@media (max-width:700px){.sh-dlg-x{transform:none;top:8px;right:8px}}
.bag{position:fixed;right:clamp(10px,2vw,24px);bottom:clamp(10px,2vw,24px);width:min(380px,calc(100vw - 20px));max-height:calc(100vh - var(--hh) - 40px);display:flex;flex-direction:column;background:rgba(17,19,23,.97);border:1px solid var(--line2);z-index:60;box-shadow:0 18px 60px rgba(0,0,0,.55)}
.bag[hidden]{display:none}
.bag-h{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.bag-x{background:none;border:0;color:var(--ink2);font-size:22px;line-height:1;cursor:pointer}
.bag-items{list-style:none;margin:0;padding:4px 16px;overflow:auto}
.bag-items li{display:grid;grid-template-columns:1fr auto auto;gap:4px 14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.bi-n{grid-column:1/-1;font-weight:700}
.bi-q{display:inline-flex;align-items:center;gap:10px}
.bi-q button{width:26px;height:26px;border:1px solid var(--line2);background:none;color:var(--ink);cursor:pointer}
.bi-p{font:500 12px var(--mono);color:var(--ink)}
.bag-f{padding:14px 16px 16px;display:grid;gap:10px}
.bag-go{justify-content:center}
.bag-go[aria-disabled]{opacity:.45;pointer-events:none}
.bag-fine{margin:0;color:var(--ink3);font-size:12px}
.bag-b{position:fixed;right:clamp(10px,2vw,24px);bottom:clamp(10px,2vw,24px);height:42px;padding:0 16px;display:inline-flex;align-items:center;background:var(--ink);color:#0a0b0d;border:0;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;z-index:59;cursor:pointer}
.bag-b[hidden]{display:none}
.bag-b b{margin-left:8px}
