.shop-main{padding:calc(6.5rem + env(safe-area-inset-top,0px)) 1.5rem 4rem;max-width:1200px;margin:0 auto}
.shop-hero{max-width:42rem;margin-bottom:2rem}
.shop-preview-banner{margin:0 0 1.5rem;padding:.85rem 1.1rem;border-radius:12px;background:linear-gradient(135deg,#fff8e8,#f5e6c8);border:1px dashed var(--accent);font-size:.9rem;color:var(--fg-dim)}
.shop-preview-banner strong{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;margin-right:.35rem}
.mock-checkout{max-width:32rem}
.mock-checkout h1{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .35rem}
.mock-checkout-note{color:var(--fg-dim);margin:0 0 1.25rem;font-size:.95rem}
.mock-checkout-card{padding:1rem 1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:1rem}
.mock-checkout-card h2{margin:0 0 .5rem;font-size:1.05rem}
.mock-checkout-card p{margin:.25rem 0;color:var(--fg-dim);font-size:.9rem}
.mock-checkout-totals{display:grid;grid-template-columns:1fr auto;gap:.35rem 1.5rem;margin:0 0 1.25rem;font-size:.95rem}
.mock-checkout-totals dt{color:var(--fg-dim);margin:0}
.mock-checkout-totals dd{margin:0;text-align:right}
.mock-pay-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 .5rem}
.mock-pay-fields{display:grid;gap:.5rem;margin-bottom:1.25rem}
.mock-pay-fields input{width:100%;padding:.65rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);opacity:.65;font-family:inherit}
.shop-hero .eyebrow{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0 0 .75rem}
.shop-hero h1{font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.03em;margin:0 0 .75rem;line-height:1.1}
.shop-hero p{color:var(--fg-dim);margin:0;font-size:1rem}
.order-summary{margin:1.25rem 0;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-align:left}
.order-summary p{margin:.35rem 0;font-size:.95rem;color:var(--fg)}
.shop-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 2rem}
.shop-filters button,.shop-filters a{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.45rem .9rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--accent);cursor:pointer;text-decoration:none;font-family:inherit}
.shop-filters button[aria-pressed=true],.shop-filters a.active{border-color:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem}
.shop-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column}
.shop-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.1)}
.shop-card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#111}
.shop-card.is-cap img,.shop-card[data-garment=cap] img,.shop-card[data-garment=cap_dad] img,.shop-card[data-garment=mug] img{aspect-ratio:1/1}
.shop-card .meta{padding:.85rem 1rem 1rem;flex:1;display:flex;flex-direction:column;gap:.35rem}
.shop-card .lane{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}
.shop-card h2{margin:0;font-size:.95rem;line-height:1.25}
.shop-card .price{font-size:.9rem;font-weight:700;margin-top:auto}
.shop-card .status-sold{font-size:.7rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.06em}
.pdp-layout{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
@media(max-width:860px){.pdp-layout{grid-template-columns:1fr}}
.pdp-media img{width:100%;border-radius:14px;background:#111}
.pdp-media.is-cap img,.pdp-media.is-square img{aspect-ratio:1/1;object-fit:cover}
.pdp-media:not(.is-cap):not(.is-square) img{aspect-ratio:3/4;object-fit:cover}
.pdp-buy h1{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .35rem;line-height:1.15}
.pdp-buy .subtitle{color:var(--fg-dim);margin:0 0 1rem;font-size:.95rem}
.pdp-price{font-size:1.75rem;font-weight:800;margin:0 0 1rem;letter-spacing:-.02em}
.pdp-price small{font-size:.85rem;font-weight:500;color:var(--fg-dim)}
.size-picker{margin:1rem 0}
.size-picker legend{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;color:var(--fg-dim)}
.size-options{display:flex;flex-wrap:wrap;gap:.4rem}
.size-options button{min-width:2.75rem;padding:.45rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);font:inherit;font-weight:600;cursor:pointer}
.size-options button[aria-pressed=true]{border-color:var(--accent);background:rgba(189,101,16,.12);color:var(--accent)}
.size-options button:disabled{opacity:.4;cursor:not-allowed}
.qty-row{display:flex;align-items:center;gap:.75rem;margin:1rem 0}
.qty-row label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-dim)}
.qty-row input{width:4rem;padding:.45rem;border:1px solid var(--border);border-radius:8px;font:inherit}
.pdp-note{font-size:.85rem;color:var(--fg-dim);margin:1rem 0;line-height:1.5}
.pdp-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0}
.checkout-msg{font-size:.85rem;color:var(--accent);margin-top:.75rem;min-height:1.25rem}
.breadcrumb{font-size:.8rem;margin-bottom:1.25rem}
.breadcrumb a{color:var(--fg-dim)}
.shipping-banner{margin:0 0 2rem;padding:1rem 1.25rem;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-size:.9rem;color:var(--fg-dim)}
.nav a.nav-active{font-weight:700;color:var(--accent)}
