
/* Layout: workshop parts catalogue — red/black DJC band, then a photo-led row per part with three price columns aligned like a ledger. */
:root{
  /* Palette taken from djcbowling.com stylesheet: brand reds, near-black header, warm white page, grey text */
  --bg:#FFFCFC; --paper:#FFFFFF; --ink:#0D0D0D; --muted:#747575; --line:#E6E1DF;
  --red:#F50C13; --red-ink:#D10A10; --chip:#F4EDF0; --plate:#0D0D0D; --black:#0D0D0D; --onblack:#FFFCFC;
  --f-display:"Saira Condensed","Arial Narrow",Helvetica,Arial,sans-serif;
  --f-body:"Saira",Helvetica,Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;margin:0}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* Site header (mirrors djcbowling.com: black bar, white nav, red CTA) */
.site{background:var(--black);color:var(--onblack)}
.site .wrap{padding-block:14px;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.site .logo{display:block}
.site .logo img{width:250px;max-width:100%;height:auto;display:block}
.site nav{display:flex;align-items:center;gap:6px 22px;flex-wrap:wrap}
.site nav a{color:var(--onblack);text-decoration:none;font:600 15px var(--f-display);letter-spacing:.06em;text-transform:uppercase}
.site nav a:hover,.site nav a:focus-visible{color:var(--red);outline:none}
.btn-red{display:inline-block;background:var(--red);border:2px solid var(--red);color:var(--onblack)!important;font:700 15px var(--f-display);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:9px 18px;border-radius:2px;cursor:pointer}
.btn-red:hover{background:var(--red-ink);border-color:var(--red-ink);color:var(--onblack)!important}
.heading{background:var(--black);color:var(--onblack);border-top:1px solid #262626;border-bottom:5px solid var(--red)}
.heading .wrap{padding-block:34px 30px;display:grid;gap:10px}
.crumb{font:500 13px var(--f-body);color:#A9A7A7}
.crumb a{color:#A9A7A7}
.crumb a:hover{color:var(--red)}
.heading h1{margin:0;font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(32px,5.6vw,56px);line-height:1;letter-spacing:.01em;text-wrap:balance}
.heading h1 em{font-style:normal;color:var(--red)}
.brands{font:600 13px var(--f-display);letter-spacing:.16em;text-transform:uppercase;color:#A9A7A7}
.meta{display:flex;flex-wrap:wrap;gap:6px 22px;color:#C9C5BD;font-size:14px}
.meta b{color:var(--onblack);font-weight:600}

/* Toolbar */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line); padding: 1rem 0;}
.bar .wrap{padding-block:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.search{flex:1 1 240px;min-width:0;position:relative}
.search input{width:100%;box-sizing: border-box;font:inherit;padding:9px 12px 9px 36px;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink)}
.search input:focus{outline:2px solid var(--red);outline-offset:1px;border-color:transparent}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}
.jump{display:flex;gap:6px;flex-wrap:wrap}
.jump a{font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:14px;text-decoration:none;color:var(--ink);background:var(--chip);padding:7px 11px;border-radius:4px}
.jump a:hover,.jump a:focus-visible{background:var(--red);color:var(--onblack);outline:none}

/* Sections */
main .wrap{padding-block:12px 40px}
.brand{margin-top:34px}
.brand-h{margin:0 0 4px;font-family:var(--f-display);font-weight:700;text-transform:uppercase;font-size:26px;letter-spacing:.03em;display:flex;align-items:center;gap:14px}
.brand-h::after{content:"";flex:1;height:2px;background:var(--ink);opacity:.85}
.brand-h span{background:var(--red);color:var(--onblack);padding:3px 14px 1px;border-radius:2px}
.group{margin-top:18px}
.group-h{margin:0 0 8px;font-family:var(--f-display);font-weight:600;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--red-ink)}

.thead,.item{display:grid;grid-template-columns:150px minmax(0,1fr) 108px 108px 108px;gap:0 14px;align-items:center}
.thead{padding:8px 14px;background:var(--black);color:var(--onblack)!important;border-radius:2px 2px 0 0;font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.thead span:nth-child(n+3){text-align:right}
.items{list-style:none;margin:0;padding:0;background:var(--paper);border:1px solid var(--line);border-top:0;border-radius:0 0 2px 2px;overflow:hidden}
.item{padding:10px 14px;border-top:1px solid var(--line)}
.item:first-child{border-top:0}
.item:hover{background:color-mix(in srgb,var(--red) 4%,var(--paper))}

.thumb{all:unset;cursor:zoom-in;position:relative;display:block;width:150px;max-width:100%;aspect-ratio:16/9;border-radius:5px;overflow:hidden;background:var(--chip)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.thumb:hover img{transform:scale(1.04)}
.thumb:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.more{position:absolute;right:5px;bottom:5px;background:var(--red);color:#fff;font:600 12px var(--f-display);letter-spacing:.05em;padding:2px 6px;border-radius:3px}
.nophoto{cursor:default;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font:600 11px var(--f-display);letter-spacing:.14em;text-transform:uppercase}

.id{display:flex;flex-direction:column;gap:3px;min-width:0}
.pn{font-family:var(--f-mono);font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.desc{font-weight:600;font-size:16px;line-height:1.25}
.p{text-align:right;font-variant-numeric:tabular-nums;font-weight:500;font-size:15px;white-space:nowrap}
.p .cur{color:var(--muted);margin-right:1px}
.p.sale{font-weight:700}
.na{color:var(--muted);opacity:.6;font-weight:400;font-size:13px}
.call{color:var(--red-ink);font-weight:600;font-size:13px;white-space:normal}
.empty{padding:24px;text-align:center;color:var(--muted)}

/* Notes + footer */
.notes{margin-top:40px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--red);border-radius:8px;padding:18px 22px}
.notes h2{margin:0 0 8px;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em;font-size:20px}
.notes ul{margin:0;padding-left:18px;display:grid;gap:6px}
.notes li{max-width:75ch}
.sitefoot{background:var(--black);color:#C9C5BD;border-top:5px solid var(--red);margin-top:48px}
.sitefoot .wrap{padding-block:34px;display:grid;grid-template-columns:auto 1fr;gap:18px 40px;align-items:start}
.sitefoot img{width:200px;max-width:100%;height:auto;display:block}
.sitefoot .cols{display:flex;flex-wrap:wrap;gap:14px 40px}
.sitefoot h4{margin:0 0 6px;font:700 15px var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--onblack)}
.sitefoot p{margin:0;line-height:1.6;font-size:14px}
.sitefoot a{color:#C9C5BD}.sitefoot a:hover{color:var(--red)}
.sitefoot .copy{grid-column:1/-1;border-top:1px solid #262626;padding-top:14px;font-size:13px;color:#8d8b8b}
@media (max-width:760px){.sitefoot .wrap{grid-template-columns:1fr}}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:20;background:rgba(10,10,11,.88);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lb img{max-width:min(1000px,100%);max-height:78vh;border-radius:6px;background:#fff}
.lb .cap{color:#f1efed;text-align:center;font-weight:600}
.lb .cap small{display:block;font:500 12px var(--f-mono);color:#bdb8b4;margin-top:2px}
.lb button{font:600 15px var(--f-display);letter-spacing:.08em;text-transform:uppercase;background:#2a2a2c;color:#fff;border:0;border-radius:4px;padding:8px 14px;cursor:pointer}
.lb button:focus-visible{outline:2px solid var(--red)}
.lb .ctrl{display:flex;gap:8px;align-items:center;color:#bdb8b4;font-family:var(--f-mono);font-size:12px}
.lb .x{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:max(14px,env(safe-area-inset-right,0px))}

@media (max-width:760px){
  .site nav{gap:6px 16px}
  .site nav a.hide-sm{display:none}
  .thead{display:none}
  .item{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"t i i" "a b c";gap:10px 8px;padding:12px}
  .item .thumb{grid-area:t;width:100%}
  .item .id{grid-area:i}
  .item .p{text-align:left;background:var(--chip);border-radius:5px;padding:6px 8px;white-space:normal}
  .item .p::before{content:attr(data-l);display:block;font:600 11px var(--f-display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .item .r1{grid-area:a}.item .r2{grid-area:b}.item .r3{grid-area:c}
}
/* No-price catalogue variant */
.np .thead,.np .item{grid-template-columns:150px minmax(0,1fr) auto}
.np .thead span:nth-child(3){text-align:right}
.avail{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.chip{font:600 13px var(--f-display);letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:4px;background:var(--chip);color:var(--ink)}
@media (max-width:760px){
  .np .item{grid-template-columns:120px minmax(0,1fr);grid-template-areas:"t i" "t v"}
  .np .item .avail{grid-area:v;justify-content:flex-start}
}
@media print{.np .thead,.np .item{grid-template-columns:96px minmax(0,1fr) auto}}
@media (prefers-reduced-motion:reduce){.thumb img{transition:none}}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff;color:#000;font-size:11px}
  .bar,.lb{display:none!important}
  .site nav,.btn-red{display:none!important}
  .item{break-inside:avoid;padding:5px 10px}
  .thead,.item{grid-template-columns:96px minmax(0,1fr) 80px 80px 80px}
  .thumb{width:96px}
  .brand{break-before:auto}
}