/* =====================================================================
   RELIQRA STOREFRONT ENGINE  —  shared, tokenized component stylesheet
   ---------------------------------------------------------------------
   Pulled from the "Reliqra Storefront Themes" Claude Design project
   (2026-06-20). ONE stylesheet. The whole shop re-skins per tenant by
   swapping the :root token block (emitted inline in <head> by the render
   layer). References var(--token) only — never a hardcoded paint value.
   Canonical token names live in /tokens/tokens.md. No JS required:
   catalog + PDP are fully usable with JS off; the cart drawer and mobile
   nav are CSS-only (checkbox toggles); enhance.js is strictly progressive.
   ===================================================================== */

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--font-display); color:var(--fg); line-height:1.12; letter-spacing:-.012em; font-weight:600; margin:0;}
a{color:inherit; text-decoration:none;}
img,svg{display:block; max-width:100%;}
ul{margin:0; padding:0; list-style:none;}
button{font:inherit;}

/* Every number is monospace + tabular (per the Reliqra design system). */
.num{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1; letter-spacing:-.01em;}

/* Accessible focus — visible everywhere. */
:focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:6px;}

/* Skip link */
.skip{position:absolute; left:-9999px; top:0; background:var(--brand); color:var(--on-brand); padding:.7rem 1.1rem; z-index:90; border-radius:0 0 var(--radius-sm) 0; font-weight:600;}
.skip:focus{left:0;}

.wrap{max-width:var(--maxw); margin:0 auto; padding-left:clamp(1rem,4vw,2rem); padding-right:clamp(1rem,4vw,2rem);}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}

/* TOP ANNOUNCEMENT BAR */
.topbar{background:var(--brand); color:var(--on-brand); font-size:.78rem; letter-spacing:.04em;}
.topbar .wrap{display:flex; justify-content:center; align-items:center; gap:.4rem .9rem; padding:.55rem 1rem; text-align:center; flex-wrap:wrap;}
.topbar .wrap > span{white-space:nowrap;}
.topbar .sep{opacity:.4;}
.topbar strong{color:var(--accent); font-weight:600;}

/* HEADER  (sticky; CSS-only hamburger — no JS, no display:none dead-end) */
.nav-toggle, .cart-toggle{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;}
header.site{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid var(--line);}
.head-row{display:flex; align-items:center; gap:.9rem; padding:.85rem 0;}
.hamburger{display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; flex:0 0 auto; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--surface); cursor:pointer; color:var(--fg);}
.hamburger:hover{border-color:var(--accent);}
.hamburger .bars{display:block; width:18px; height:2px; background:currentColor; position:relative;}
.hamburger .bars::before,.hamburger .bars::after{content:""; position:absolute; left:0; width:18px; height:2px; background:currentColor;}
.hamburger .bars::before{top:-6px;} .hamburger .bars::after{top:6px;}
.logo{display:flex; align-items:center; gap:.6rem; flex:0 0 auto;}
.logo .crest{width:40px; height:40px; flex:0 0 40px;}
.logo .name{display:flex; flex-direction:column; line-height:1.05; font-family:var(--font-display);}
.logo .name b{font-size:1.2rem; font-weight:600; color:var(--fg); letter-spacing:.005em;}
.logo .name small{font-size:.6rem; letter-spacing:.26em; text-transform:uppercase; color:var(--accent-2); font-family:var(--font);}
.search{display:flex; align-items:center; gap:.5rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-pill); padding:.5rem .9rem; color:var(--muted);}
.search svg{flex:0 0 auto; width:17px; height:17px;}
.search input{border:0; outline:0; background:transparent; font:inherit; font-size:.9rem; color:var(--fg); flex:1; min-width:0;}
.search input::placeholder{color:var(--muted);}
.search-desktop{flex:1 1 auto; max-width:420px;}
.head-actions{margin-left:auto; display:flex; align-items:center; gap:.5rem; flex:0 0 auto;}
.cart-link{display:inline-flex; align-items:center; gap:.5rem; background:var(--brand); color:var(--on-brand); padding:.55rem .95rem; border-radius:var(--radius-pill); font-size:.9rem; font-weight:600; cursor:pointer; border:0;}
.cart-link:hover{background:var(--brand-ink);}
.cart-link .count{font-family:var(--font-mono); font-variant-numeric:tabular-nums; background:var(--accent); color:var(--on-accent); font-weight:700; border-radius:var(--radius-pill); min-width:1.35rem; text-align:center; font-size:.76rem; padding:.06rem .4rem;}
.cart-link svg{width:18px; height:18px;}
.primary-nav{overflow:hidden;}
.primary-nav .inner{display:flex; flex-direction:column; gap:.25rem; padding:.3rem 0 .8rem;}
.primary-nav a{display:block; padding:.7rem .25rem; font-weight:600; font-size:1rem; color:var(--fg); border-bottom:1px solid var(--line);}
.primary-nav a:hover{color:var(--accent-2);}
.search-mobile{margin:.4rem 0 .6rem; background:var(--bg);}
.primary-nav{max-height:0; transition:max-height .28s ease;}
.nav-toggle:checked ~ header .primary-nav,
.nav-toggle:checked + header .primary-nav{max-height:30rem;}
.cat-row{border-top:1px solid var(--line); background:var(--surface);}
.cat-scroll{display:flex; gap:.5rem; overflow-x:auto; padding:.7rem 0; -webkit-overflow-scrolling:touch; scrollbar-width:thin;}
.cat-scroll::-webkit-scrollbar{height:6px;}
.cat-scroll::-webkit-scrollbar-thumb{background:var(--line); border-radius:var(--radius-pill);}
.pill{flex:0 0 auto; border:1px solid var(--line); background:var(--surface); color:var(--fg); padding:.42rem .9rem; border-radius:var(--radius-pill); font-weight:600; font-size:.82rem; cursor:pointer; white-space:nowrap;}
.pill:hover{border-color:var(--accent); color:var(--accent-2);}
.pill[aria-current="true"],.pill.active{background:var(--brand); color:var(--on-brand); border-color:var(--brand);}

/* BUTTONS */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:600; font-size:.95rem; padding:.85rem 1.5rem; border-radius:var(--radius-pill); cursor:pointer; border:1px solid transparent; transition:transform .08s ease, background .15s ease, border-color .15s ease;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent); color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-2); color:var(--on-accent);}
.btn-dark{background:var(--brand); color:var(--on-brand);}
.btn-dark:hover{background:var(--brand-ink);}
.btn-ghost{background:transparent; border-color:var(--line); color:var(--brand);}
.btn-ghost:hover{border-color:var(--accent);}

/* HERO / INTRO */
.hero{padding:clamp(2.2rem,6vw,4.5rem) 0 clamp(1.5rem,4vw,3rem);}
.hero-grid{display:grid; grid-template-columns:1fr; gap:clamp(1.5rem,5vw,3.5rem); align-items:center;}
.hero .eyebrow{font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent-2); margin:0 0 1rem; font-weight:600;}
.hero h1{font-size:clamp(2.1rem,6vw,3.7rem); margin:0 0 1.1rem; text-wrap:balance;}
.hero h1 em{font-style:italic; color:var(--accent-2);}
.hero p.lede{font-size:clamp(1.02rem,2.1vw,1.2rem); color:var(--muted); max-width:48ch; margin:0 0 1.7rem; text-wrap:pretty;}
.hero-actions{display:flex; gap:.7rem; flex-wrap:wrap;}
.hero-stats{display:flex; gap:1.8rem; margin-top:1.9rem; flex-wrap:wrap;}
.hero-stats div{font-size:.8rem; color:var(--muted);}
.hero-stats b{display:block; font-size:1.35rem; color:var(--fg); font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-weight:600; letter-spacing:-.02em;}
.hero-feature{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.4rem,4vw,2.4rem); box-shadow:var(--shadow-lg);}
.hero-feature .tag{position:absolute; top:1rem; right:1rem; background:var(--brand); color:var(--on-brand); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; padding:.35rem .7rem; border-radius:var(--radius-pill); font-weight:600;}
.hero-feature figure{margin:0; text-align:center;}
.hero-feature .coin-xl{width:min(260px,68%); margin:0 auto .9rem;}
.hero-feature figcaption{color:var(--muted); font-size:.82rem;}
.hero-feature h2{font-size:1.3rem; margin:.7rem 0 .25rem;}
.hero-feature .price{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:1.3rem; color:var(--fg); font-weight:600;}

/* SECTION HEADINGS */
.sec{padding:clamp(2rem,5vw,3.6rem) 0;}
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.6rem; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:.9rem;}
.sec-head .eyebrow{font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--accent-2); margin:0 0 .35rem; font-weight:600;}
.sec-head h2{font-size:clamp(1.6rem,3.6vw,2.3rem);}
.sec-head .more{font-size:.88rem; white-space:nowrap; color:var(--accent-2); font-weight:600;}
.sec-head .more:hover{text-decoration:underline;}
.band{background:var(--bg-band); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* CATALOG GRID + COIN CARD */
.grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(.8rem,2vw,1.6rem);}
@media(min-width:640px){.grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:980px){.grid{grid-template-columns:repeat(4,1fr);}}
.card{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:color-mix(in srgb, var(--accent) 45%, var(--line));}
.card .media{position:relative; aspect-ratio:1/1; background:radial-gradient(circle at 50% 38%, var(--surface) 0%, var(--surface-2) 72%); display:grid; place-items:center; padding:1.2rem;}
.card .media .coin{width:78%; height:78%;}
.card .stretch{position:absolute; inset:0; z-index:1;}
.card .stretch:focus-visible{outline:3px solid var(--accent); outline-offset:-3px;}
.card .body > *,.card .badges,.card .wish,.card form{position:relative; z-index:2;}
.badges{position:absolute; top:.7rem; left:.7rem; display:flex; flex-direction:column; gap:.4rem; align-items:flex-start; z-index:2;}
.badge{font-size:.6rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:.28rem .55rem; border-radius:var(--radius-pill); color:var(--on-brand);}
.badge.new{background:var(--success);}
.badge.rare{background:var(--brand);}
.badge.sale{background:var(--accent-2);}
.wish{position:absolute; top:.6rem; right:.6rem; width:32px; height:32px; border-radius:50%; background:color-mix(in srgb, var(--surface) 90%, transparent); border:1px solid var(--line); display:grid; place-items:center; cursor:pointer; color:var(--muted); z-index:2;}
.wish:hover{color:var(--accent-2); border-color:var(--accent);}
.wish svg{width:16px; height:16px;}
.card .body{padding:.9rem .95rem 1rem; display:flex; flex-direction:column; gap:.5rem; flex:1;}
.chips{display:flex; gap:.4rem; flex-wrap:wrap;}
.chip{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:.68rem; font-weight:600; padding:.22rem .5rem; border-radius:var(--radius-sm); background:var(--surface-2); border:1px solid var(--line); color:var(--muted); letter-spacing:.01em;}
.chip.grade{background:var(--accent-soft); border-color:color-mix(in srgb, var(--accent) 35%, var(--line)); color:var(--accent-2);}
.chip.grader{background:transparent; border-color:color-mix(in srgb, var(--accent) 35%, var(--line)); color:var(--accent-2);}
.card h3.title{font-size:.98rem; line-height:1.25; font-weight:600; letter-spacing:-.005em;}
.card .meta{color:var(--muted); font-size:.8rem; margin:0;}
.card .rating{display:flex; align-items:center; gap:.4rem; font-size:.76rem; color:var(--muted);}
.card .rating .stars{color:var(--accent); letter-spacing:1px;}
.card .rating .num{color:var(--fg);}
.price-row{margin-top:auto; display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; padding-top:.3rem;}
.price{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:1.15rem; font-weight:600; color:var(--fg); letter-spacing:-.02em;}
.price.deal{color:var(--accent-2);}
.was{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:.8rem; color:var(--muted); text-decoration:line-through;}
.sold{margin-left:auto; font-size:.78rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.05em;}
.card .add{width:100%; border:1px solid var(--accent); color:var(--accent-2); background:transparent; border-radius:var(--radius-sm); padding:.6rem; font-weight:600; font-size:.85rem; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.5rem;}
.card .add:hover{background:var(--accent); color:var(--brand);}
.card form{margin-top:.1rem;}

/* PRODUCT DETAIL (PDP) */
.crumbs{font-size:.8rem; color:var(--muted); margin:0 0 1.2rem; display:flex; gap:.4rem; flex-wrap:wrap; align-items:center;}
.crumbs a:hover{color:var(--accent-2);}
.crumbs .num{color:var(--fg);}
.pdp{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);}
.pdp-grid{display:grid; grid-template-columns:1fr; gap:0;}
.pdp-media{position:relative; background:radial-gradient(circle at 50% 40%, var(--surface) 0%, var(--surface-2) 78%); display:grid; place-items:center; padding:clamp(2rem,6vw,3.5rem); min-height:320px; border-bottom:1px solid var(--line);}
.pdp-media .badges{top:1.1rem; left:1.1rem;}
.pdp-media .coin{width:min(330px,80%); filter:drop-shadow(0 18px 30px color-mix(in srgb, var(--brand) 22%, transparent));}
.pdp-thumbs{position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); display:flex; gap:.5rem;}
.pdp-thumbs .t{width:46px; height:46px; border-radius:var(--radius-sm); border:1px solid var(--line); background:var(--surface); display:grid; place-items:center; cursor:pointer;}
.pdp-thumbs .t svg{width:78%; height:78%;}
.pdp-thumbs .t[aria-current="true"]{border-color:var(--accent); border-width:2px;}
.pdp-info{padding:clamp(1.5rem,4vw,2.6rem);}
.pdp-info .pdp-chips{display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem;}
.pdp-chips .c{font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:.72rem; font-weight:600; letter-spacing:.03em; padding:.32rem .65rem; border-radius:var(--radius-pill);}
.c.dark{background:var(--brand); color:var(--on-brand);}
.c.gold{border:1px solid var(--accent); color:var(--accent-2);}
.c.green{background:color-mix(in srgb, var(--success) 14%, var(--surface)); color:var(--success); border:1px solid color-mix(in srgb, var(--success) 40%, var(--surface));}
.pdp-info h1{font-size:clamp(1.6rem,3.6vw,2.3rem); margin-bottom:.5rem;}
.pdp-rating{display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--muted); margin-bottom:1.1rem;}
.pdp-rating .stars{color:var(--accent); letter-spacing:1px;}
.pdp-rating .num{color:var(--fg);}
.pdp-price{display:flex; align-items:baseline; gap:.7rem; flex-wrap:wrap; margin-bottom:1.1rem;}
.pdp-price .price{font-size:2rem;}
.pdp-price small{font-size:.82rem; color:var(--muted); font-family:var(--font);}
.pdp-info p.desc{color:color-mix(in srgb, var(--fg) 78%, var(--muted)); margin:0 0 1.5rem; max-width:56ch; text-wrap:pretty;}
.pdp-actions{display:flex; gap:.7rem; flex-wrap:wrap; margin-bottom:1.3rem;}
.pdp-actions .btn-primary{flex:1; min-width:170px;}
.pdp-actions .btn-dark{flex:1; min-width:150px;}
.ship-note{display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:var(--muted); margin-bottom:1.6rem;}
.ship-note svg{width:16px; height:16px; color:var(--success); flex:0 0 auto;}
.specs{border-top:1px solid var(--line); padding-top:1.3rem;}
.specs h2{font-size:1.05rem; margin:0 0 .8rem;}
.specs dl{display:grid; grid-template-columns:auto 1fr; gap:.5rem 1.2rem; margin:0; font-size:.88rem;}
.specs dt{color:var(--muted);}
.specs dd{margin:0; color:var(--fg); text-align:right; font-weight:500;}
.specs dd.num{justify-self:end;}

/* TRUST STRIP */
.trust{background:var(--brand); color:var(--on-brand);}
.trust .grid4{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; padding:clamp(1.8rem,4vw,2.8rem) 0;}
.trust .item{display:flex; flex-direction:column; gap:.4rem;}
.trust .item svg{width:28px; height:28px; color:var(--accent);}
.trust .item h3{color:var(--on-brand); font-size:.98rem; font-family:var(--font); font-weight:600;}
.trust .item p{margin:0; font-size:.83rem; color:color-mix(in srgb, var(--on-brand) 72%, transparent); line-height:1.5;}

/* FOOTER (+ small "Powered by Reliqra" mark — the only Reliqra brand) */
footer.site{background:var(--bg-band); border-top:1px solid var(--line); padding:clamp(2.2rem,5vw,3.2rem) 0 1.8rem;}
.foot-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.8rem 1.5rem;}
.foot-grid .brand-col{grid-column:1 / -1;}
footer h4{font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent-2); margin:0 0 .9rem;}
footer .links{display:flex; flex-direction:column; gap:.5rem;}
footer .links a{color:var(--fg); font-size:.88rem;}
footer .links a:hover{color:var(--accent-2);}
footer .blurb{color:var(--muted); font-size:.88rem; max-width:36ch; margin:.7rem 0 0; text-wrap:pretty;}
.foot-bottom{display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:2.2rem; padding-top:1.4rem; border-top:1px solid var(--line); font-size:.8rem; color:var(--muted);}
.powered{display:inline-flex; align-items:center; gap:.45rem;}
.powered b{color:var(--fg); font-weight:600;}
.powered .q{background:linear-gradient(135deg,#59C8FF,#C7DDF3); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight:800;}

/* CART DRAWER (CSS-only via .cart-toggle checkbox — works with JS OFF) */
.drawer-scrim{position:fixed; inset:0; background:color-mix(in srgb, var(--brand) 45%, transparent); opacity:0; visibility:hidden; transition:opacity .22s ease, visibility .22s ease; z-index:80;}
.drawer{position:fixed; top:0; right:0; height:100%; width:min(390px,92vw); background:var(--surface); box-shadow:var(--shadow-lg); z-index:81; transform:translateX(100%); transition:transform .26s ease; display:flex; flex-direction:column;}
.cart-toggle:checked ~ .drawer-scrim{opacity:1; visibility:visible;}
.cart-toggle:checked ~ .drawer{transform:translateX(0);}
.drawer-head{display:flex; align-items:center; justify-content:space-between; padding:1.1rem 1.2rem; border-bottom:1px solid var(--line);}
.drawer-head h2{font-size:1.15rem;}
.drawer-close{cursor:pointer; font-size:1.5rem; line-height:1; color:var(--muted); background:none; border:0; padding:.2rem .5rem;}
.drawer-close:hover{color:var(--fg);}
.drawer-body{padding:1rem 1.2rem; overflow:auto; flex:1; display:flex; flex-direction:column; gap:.9rem;}
.ci{display:flex; gap:.8rem; align-items:center;}
.ci .thumb{width:52px; height:52px; border-radius:var(--radius-sm); background:var(--surface-2); display:grid; place-items:center; flex:0 0 auto;}
.ci .thumb svg{width:82%; height:82%;}
.ci .t b{font-size:.88rem; display:block; font-weight:600;}
.ci .t small{font-size:.76rem; color:var(--muted); font-family:var(--font-mono);}
.ci .ci-price{margin-left:auto; font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-weight:600;}
.drawer-foot{padding:1.1rem 1.2rem; border-top:1px solid var(--line);}
.drawer-foot .row{display:flex; justify-content:space-between; margin-bottom:.6rem; font-size:.9rem;}
.drawer-foot .row span:last-child{font-family:var(--font-mono); font-variant-numeric:tabular-nums;}
.drawer-foot .row.total{font-size:1.05rem; font-weight:600; margin-bottom:1rem; color:var(--fg);}
.drawer-foot .btn-primary{width:100%;}

/* RESPONSIVE — mobile-first; this block lights up the desktop layout */
@media(min-width:760px){
  .trust .grid4{grid-template-columns:repeat(4,1fr);}
  .foot-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;}
  .foot-grid .brand-col{grid-column:auto;}
}
@media(min-width:860px){
  .hero-grid{grid-template-columns:1.1fr .9fr;}
  .pdp-grid{grid-template-columns:1.05fr 1fr;}
  .pdp-media{border-bottom:0; border-right:1px solid var(--line);}
  .hamburger{display:none;}
  .primary-nav{max-height:none !important; overflow:visible; margin-left:auto;}
  .primary-nav .inner{flex-direction:row; align-items:center; gap:.3rem; padding:0;}
  .primary-nav a{border-bottom:2px solid transparent; padding:.45rem .8rem; border-radius:var(--radius-pill); font-size:.92rem;}
  .primary-nav a:hover{background:var(--bg-band);}
  .search-mobile{display:none;}
  .head-actions{margin-left:.4rem;}
}
@media(max-width:859px){
  .search-desktop{display:none;}
  .logo{margin-right:auto;}
  .head-actions{margin-left:0;}
}

/* CATEGORY GEOMETRY — one engine, three collectible shapes.
   Set data-catalog on <html>: "coins" (round, default) | "cards" | "comics". */
.card .media .art{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
[data-catalog="cards"] .card .media,
[data-catalog="comics"] .card .media{padding:0; background:var(--surface-2);}
[data-catalog="cards"] .card .media{aspect-ratio:63/88;}   /* 2.5" × 3.5" trading card */
[data-catalog="comics"] .card .media{aspect-ratio:2/3;}    /* standard comic cover */
[data-catalog="cards"] .grid,
[data-catalog="comics"] .grid{grid-template-columns:repeat(2,1fr);}
@media(min-width:640px){
  [data-catalog="cards"] .grid,[data-catalog="comics"] .grid{grid-template-columns:repeat(3,1fr);}
}
@media(min-width:980px){
  [data-catalog="cards"] .grid,[data-catalog="comics"] .grid{grid-template-columns:repeat(4,1fr);}
}
.slab-tag{position:absolute; top:.6rem; left:.6rem; z-index:2; display:inline-flex; align-items:center; gap:.3rem; font-family:var(--font-mono); font-size:.62rem; font-weight:600; letter-spacing:.02em; padding:.26rem .5rem; border-radius:var(--radius-sm); background:color-mix(in srgb, var(--surface) 88%, transparent); border:1px solid var(--line); color:var(--fg); backdrop-filter:blur(4px);}
.art.ph{display:grid; place-items:center; background:
  repeating-linear-gradient(135deg, var(--surface-2) 0 13px, color-mix(in srgb, var(--line) 55%, var(--surface-2)) 13px 15px);}
.art.ph .ph-label{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.02em; color:var(--muted);
  background:color-mix(in srgb, var(--surface) 82%, transparent); padding:.25rem .55rem; border-radius:var(--radius-sm); border:1px solid var(--line);}
.art-frame{position:relative; border-radius:var(--radius-sm); overflow:hidden; box-shadow:var(--shadow-lg);}
.art-frame .art{position:absolute; inset:0; width:100%; height:100%;}
[data-catalog="cards"] .pdp-media .art-frame{width:min(280px,72%); aspect-ratio:63/88;}
[data-catalog="comics"] .pdp-media .art-frame{width:min(280px,72%); aspect-ratio:2/3;}

/* CLIENT CONFIG TOGGLES — set as attributes; map to SiteConfig fields. */
[data-logo="off"] .logo .crest{display:none;}
[data-subtitle="off"] .logo .name small{display:none;}
[data-announce="off"] .topbar{display:none;}
[data-search="off"] .search{display:none;}
[data-ratings="off"] .rating,
[data-ratings="off"] .pdp-rating{display:none;}
[data-density="compact"] .card .body{padding:.7rem .75rem .8rem; gap:.35rem;}
[data-density="compact"] .grid{gap:.7rem;}
[data-density="compact"] .sec{padding:clamp(1.5rem,4vw,2.6rem) 0;}
@media(min-width:980px){
  [data-density="compact"] .grid{grid-template-columns:repeat(5,1fr);}
  [data-density="compact"][data-catalog="coins"] .grid{grid-template-columns:repeat(5,1fr);}
}
[data-shape="sharp"]{--radius:4px; --radius-sm:3px; --radius-pill:6px;}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important;}
  .primary-nav,.drawer,.drawer-scrim,.card,.btn{transition:none !important;}
}
