/* Gumroad collection: scoped to product cards and consulting band. */
.gr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.gr-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gr-grid--single { grid-template-columns:minmax(0,1fr); max-width:760px; }
.gr-cover { width:100%; aspect-ratio:1005/565; object-fit:contain; background:#0a0a0a; margin-bottom:28px; }
.gr-card { display:flex; flex-direction:column; min-width:0; padding:32px 28px; border:1px solid #333; background:#141414; }
.gr-category { font-family:var(--font-display); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:#bbb; margin-bottom:24px; }
.gr-card h3 { font-size:clamp(1.5rem,2.3vw,2rem); line-height:1.13; margin-bottom:20px; }
.gr-description { font-size:.95rem; line-height:1.65; color:#c2c2c2; }
.gr-purchase { margin-top:auto; padding-top:28px; }
.gr-price { font-family:var(--font-display); font-size:2.5rem; line-height:1; color:#fff; margin-bottom:24px; }
.gr-price span { display:block; font-family:var(--font-body); font-size:.73rem; line-height:1.5; color:#b4b4b4; margin-top:10px; }
.gr-cta { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; letter-spacing:.05em; }
.gr-checkout-note { font-size:.8rem; color:#aaa; margin:24px 0 0; }
.gr-consulting-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:48px; }
.gr-consulting h2 { margin-bottom:16px; }
.gr-consulting .lead { margin-bottom:0; }
@media(max-width:1000px) { .gr-grid { grid-template-columns:1fr; } .gr-card { padding:28px; } .gr-consulting-inner { grid-template-columns:1fr; gap:24px; } .gr-consulting .btn { justify-self:start; } }
@media(max-width:480px) { .gr-card { padding:26px 22px; } .gr-category { margin-bottom:18px; } }

.products-hero { padding:clamp(52px,7vw,96px) 0 64px; }
.products-hero h1 { font-size:clamp(3rem,7vw,6rem); line-height:1; }
.gr-checkout-note a { text-decoration:underline; text-underline-offset:4px; }
.gr-card .gr-cta { white-space:normal; }
.gr-grid--single { margin-inline:auto; }

/* Collection navigation stays usable with JavaScript disabled. */
.gr-collections { display:flex; flex-wrap:wrap; gap:10px; padding:0 0 26px; margin:0 0 12px; border-bottom:1px solid #333; }
.gr-collections a { display:block; border:1px solid #454545; padding:12px 16px; font:500 .85rem/1.4 var(--font-body); color:#eee; }
.gr-collections a:hover { background:#fff; color:#111; }
.gr-collection { padding:40px 0 12px; scroll-margin-top:100px; }
.gr-collection+.gr-collection { margin-top:24px; border-top:1px solid #333; }
.gr-collection-heading { max-width:720px; margin-bottom:26px; }
.gr-collection-heading h3 { font-size:clamp(1.65rem,3vw,2.3rem); margin:8px 0 12px; }
.gr-collection-heading p { color:#bbb; }
.gr-collection .gr-grid { gap:20px; }
.gr-empty { padding:20px 0; }
.gr-empty a { text-decoration:underline; text-underline-offset:4px; }
@media (min-width:761px) and (max-width:1000px) { .gr-collection .gr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gr-collection .gr-grid--single { grid-template-columns:1fr; } }
@media (max-width:760px) { .gr-collection { padding-top:28px; } .gr-collections { gap:8px; } .gr-collections a { font-size:.8rem; padding:11px 13px; } }
@media (min-width:761px) {
 .gr-grid--single .gr-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); column-gap:26px; align-items:start; }
 .gr-grid--single .gr-cover { grid-column:1; grid-row:1/5; margin-bottom:0; align-self:center; }
 .gr-grid--single .gr-category,.gr-grid--single h3,.gr-grid--single .gr-description,.gr-grid--single .gr-purchase { grid-column:2; }
 .gr-grid--single .gr-category { margin-bottom:12px; }
 .gr-grid--single .gr-purchase { padding-top:12px; }
}
.gr-pending { margin-top:40px; padding:26px 28px; border:1px dashed #555; background:#0c0c0c; }
.gr-pending h3 { margin:8px 0 16px; font-size:1.5rem; }
.gr-pending ul { padding-left:20px; margin:0 0 16px; }
.gr-pending li { margin-bottom:10px; color:#ddd; }
.gr-pending li span,.gr-pending>p:last-child { color:#aaa; font-size:.85rem; }
@media(max-width:480px) { .gr-pending { padding:22px; } }
