:root{
  --black:#000000;
  --white:#ffffff;
  --panel:#0a0a0a;
  --border:#2a2a2a;
  --muted:#9a9a9a;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  background:var(--black);
  color:var(--white);
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
}
::selection{background:var(--white);color:var(--black);}
a{color:inherit;}

/* SITE HEADER (used on every page) */
.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px;
  max-width:1100px;
  margin:0 auto;
}
.site-logo{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}
.site-logo img{
  width:36px;
  height:36px;
  object-fit:contain;
}
.site-logo span{
  font-family:'Anton',sans-serif;
  font-size:16px;
  letter-spacing:0.02em;
  text-transform:uppercase;
}
.site-nav a{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--muted);
  transition:color .2s ease;
}
.site-nav a:hover{color:var(--white);}

/* HERO (index page) */
.hero{
  min-height:80vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px 20px;
  position:relative;
}
.hero-logo{
  width:min(340px, 60vw);
  height:auto;
  margin-bottom:28px;
  animation:fadeUp 0.9s ease both;
}
.hero-tagline{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.35em;
  text-transform:uppercase;
  color:var(--muted);
  animation:fadeUp 0.9s ease 0.15s both;
}
.hero-sub{
  font-family:'Anton',sans-serif;
  font-size:clamp(28px,5vw,52px);
  text-transform:uppercase;
  letter-spacing:0.01em;
  margin-top:22px;
  line-height:1.05;
  max-width:780px;
  animation:fadeUp 0.9s ease 0.3s both;
}
.hero-cta{
  margin-top:36px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--white);
  border:1px solid var(--white);
  padding:14px 28px;
  text-decoration:none;
  transition:background .25s ease, color .25s ease;
  animation:fadeUp 0.9s ease 0.45s both;
}
.hero-cta:hover{background:var(--white);color:var(--black);}

@keyframes fadeUp{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}

.scroll-cue{
  position:absolute;
  bottom:36px;
  left:50%;
  transform:translateX(-50%);
  width:1px;
  height:48px;
  background:var(--border);
  overflow:hidden;
}
.scroll-cue::after{
  content:'';
  position:absolute;
  top:-48px;
  left:0;
  width:1px;
  height:48px;
  background:var(--white);
  animation:scrollLine 1.8s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{top:-48px;}
  100%{top:48px;}
}

/* TORN DIVIDER */
.torn-divider{
  width:100%;
  height:48px;
  background:var(--white);
  clip-path:polygon(
    0% 30%, 3% 10%, 6% 35%, 9% 5%, 12% 40%, 15% 15%, 18% 45%,
    21% 20%, 24% 50%, 27% 10%, 30% 38%, 33% 8%, 36% 42%, 39% 18%,
    42% 48%, 45% 12%, 48% 36%, 51% 6%, 54% 44%, 57% 22%, 60% 50%,
    63% 14%, 66% 40%, 69% 10%, 72% 46%, 75% 20%, 78% 52%, 81% 8%,
    84% 38%, 87% 16%, 90% 48%, 93% 24%, 96% 42%, 100% 30%,
    100% 100%, 0% 100%
  );
}

/* CATALOG (index page) */
.catalog{
  background:var(--white);
  color:var(--black);
  padding:70px 24px 100px;
}
.catalog-head{
  max-width:1100px;
  margin:0 auto 32px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
  border-bottom:2px solid var(--black);
  padding-bottom:20px;
}
.catalog-title{
  font-family:'Anton',sans-serif;
  font-size:clamp(28px,4vw,42px);
  text-transform:uppercase;
}
.catalog-count{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:#555;
}

.catalog-controls{
  max-width:1100px;
  margin:0 auto 40px;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
}
.search-wrap{
  position:relative;
  flex:1 1 280px;
  max-width:420px;
}
.search-input{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--black);
  padding:10px 28px 10px 0;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  letter-spacing:0.03em;
  color:var(--black);
  outline:none;
}
.search-input::placeholder{color:#999;}
.search-icon{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:14px;
  height:14px;
  pointer-events:none;
}
.search-icon svg{width:100%;height:100%;stroke:#999;}

.filter-tabs{
  display:flex;
  gap:0;
  border:1px solid var(--black);
}
.filter-tab{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  background:var(--white);
  color:var(--black);
  border:none;
  border-right:1px solid var(--black);
  padding:10px 18px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.filter-tab:last-child{border-right:none;}
.filter-tab:hover{background:#eee;}
.filter-tab.active{background:var(--black);color:var(--white);}

.grid{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1px;
  background:var(--black);
  border:1px solid var(--black);
}
.grid > *{min-width:0;}
.card.is-hidden{display:none;}
.card{
  background:var(--white);
  color:var(--black);
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:background .25s ease, color .25s ease;
  text-decoration:none;
}
.card:hover{background:var(--black);color:var(--white);}
.card-index{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.15em;
  color:#888;
}
.card:hover .card-index{color:#bbb;}
.card-brand{
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#888;
  border:1px solid #ccc;
  padding:3px 8px;
  align-self:flex-start;
}
.card:hover .card-brand{color:#ccc;border-color:#444;}

.thumb{
  position:relative;
  width:100%;
  padding-top:100%;
  background:#ececec;
  border:1px solid #d8d8d8;
  overflow:hidden;
}
.thumb img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;}
.thumb.placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  color:#999;
  text-transform:uppercase;
  letter-spacing:0.1em;
}
.card:hover .thumb{border-color:#333;}
.card:hover .thumb.placeholder{background:#111;color:#666;}

.card-name{
  font-family:'Anton',sans-serif;
  font-size:20px;
  text-transform:uppercase;
  letter-spacing:0.01em;
}
.card-desc{
  font-size:13px;
  color:#555;
  line-height:1.5;
}
.card:hover .card-desc{color:#ccc;}

.card-cta{
  margin-top:auto;
  padding-top:10px;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border-top:1px solid #e5e5e5;
}
.card:hover .card-cta{border-top-color:#333;}
.card-cta span{
  display:inline-block;
  margin-top:10px;
  border-bottom:1px solid currentColor;
  padding-bottom:1px;
}

.empty-state{
  display:none;
  max-width:1100px;
  margin:0 auto;
  padding:60px 20px;
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#888;
  border:1px dashed #ccc;
}
.empty-state.is-visible{display:block;}

.note{
  max-width:1100px;
  margin:56px auto 0;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.05em;
  color:#999;
  text-align:center;
}

/* PRODUCT PAGE */
.product-page{
  background:var(--white);
  color:var(--black);
  padding:20px 24px 100px;
}
.breadcrumb{
  max-width:1100px;
  margin:0 auto 30px;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:#888;
}
.breadcrumb a{
  text-decoration:none;
  color:#888;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.breadcrumb a:hover{color:var(--black);border-color:var(--black);}

.product-layout{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:56px;
}
.product-layout > *{min-width:0;}
@media (max-width:800px){
  .product-layout{grid-template-columns:1fr;}
}

/* Product carousel (large) */
.pcarousel{
  position:relative;
  width:100%;
  padding-top:100%;
  background:#ececec;
  border:1px solid #d8d8d8;
  overflow:hidden;
}
.pcarousel-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}
.pcarousel-slide.active{opacity:1;}
.pcarousel-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border:none;
  background:rgba(255,255,255,0.9);
  color:var(--black);
  font-family:'IBM Plex Mono',monospace;
  font-size:16px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease;
  z-index:2;
}
.pcarousel-arrow:hover{background:var(--white);}
.pcarousel-prev{left:12px;}
.pcarousel-next{right:12px;}
.pcarousel-dots{
  position:absolute;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:7px;
  z-index:2;
  flex-wrap:wrap;
  justify-content:center;
  max-width:80%;
}
.pcarousel-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  border:1px solid var(--black);
  background:rgba(255,255,255,0.7);
  padding:0;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.pcarousel-dot.active{background:var(--black);transform:scale(1.2);}

.pthumbs{
  display:flex;
  gap:8px;
  margin-top:10px;
  overflow-x:auto;
  padding-bottom:4px;
}
.pthumb{
  width:56px;
  height:56px;
  flex:0 0 auto;
  border:1px solid #d8d8d8;
  cursor:pointer;
  overflow:hidden;
  opacity:0.55;
  transition:opacity .2s ease, border-color .2s ease;
}
.pthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pthumb.active{opacity:1;border-color:var(--black);}

/* Product info */
.product-info{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.product-brand{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:#888;
  border:1px solid #ccc;
  padding:4px 10px;
  align-self:flex-start;
}
.product-title{
  font-family:'Anton',sans-serif;
  font-size:clamp(30px,4vw,44px);
  text-transform:uppercase;
  line-height:1.05;
}
.product-desc{
  font-size:15px;
  line-height:1.6;
  color:#333;
  max-width:46ch;
}

.buy-box{
  margin-top:10px;
  border:1px solid var(--black);
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.buy-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.buy-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#666;
}
.buy-btn{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--white);
  background:var(--black);
  padding:12px 22px;
  border:1px solid var(--black);
  transition:background .2s ease, color .2s ease;
  white-space:nowrap;
}
.buy-btn:hover{background:var(--white);color:var(--black);}
.buy-btn.outline{
  background:transparent;
  color:var(--black);
}
.buy-btn.outline:hover{background:var(--black);color:var(--white);}

.buy-divider{
  height:1px;
  background:#e5e5e5;
}
.discount-note{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.05em;
  color:#666;
  background:#f4f4f4;
  border:1px dashed #bbb;
  padding:10px 12px;
}
.discount-note strong{
  color:var(--black);
  letter-spacing:0.1em;
}

.related-section{
  max-width:1100px;
  margin:90px auto 0;
}
.related-title{
  font-family:'Anton',sans-serif;
  font-size:22px;
  text-transform:uppercase;
  border-bottom:2px solid var(--black);
  padding-bottom:14px;
  margin-bottom:24px;
}
.related-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1px;
  background:var(--black);
  border:1px solid var(--black);
}
.related-grid > *{min-width:0;}
.related-card{
  background:var(--white);
  color:var(--black);
  padding:18px;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  transition:background .2s ease, color .2s ease;
}
.related-card:hover{background:var(--black);color:var(--white);}
.related-thumb{
  position:relative;
  width:100%;
  padding-top:100%;
  overflow:hidden;
  background:#ececec;
  border:1px solid #d8d8d8;
}
.related-thumb img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;}
.related-name{
  font-family:'Anton',sans-serif;
  font-size:14px;
  text-transform:uppercase;
}

@media (max-width:600px){
  .catalog-head{flex-direction:column;align-items:flex-start;}
}

/* MOBILE: force 2-column grid for catalog and related products */
@media (max-width:640px){
  .grid,
  .related-grid{
    grid-template-columns:repeat(2, 1fr) !important;
  }
  .card{
    padding:14px 12px;
    gap:8px;
  }
  .card-name{font-size:15px;}
  .card-desc{font-size:11px;}
  .card-index{font-size:9px;}
  .card-brand{font-size:8px;padding:2px 6px;}
  .card-cta{font-size:9px;padding-top:6px;}
  .card-cta span{margin-top:6px;}

  .related-card{padding:10px;gap:6px;}
  .related-name{font-size:12px;}
}

/* SITE FOOTER */
.site-footer{
  background:var(--black);
  color:var(--white);
  padding:36px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  text-align:center;
}
.footer-social{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--white);
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  border:1px solid var(--white);
  padding:10px 20px;
  transition:background .2s ease, color .2s ease;
}
.footer-social:hover{background:var(--white);color:var(--black);}
.footer-social svg{width:16px;height:16px;fill:currentColor;}
.footer-note{
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
}

/* ===== POLISH PASS ===== */

/* Visible keyboard focus (accessibility) without changing the look for mouse users */
a:focus-visible, button:focus-visible, .pthumb:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}
.search-input:focus-visible{border-bottom-width:2px;}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
}

/* Touch screens: no "stuck" black hover state after tapping a card */
@media (hover: none){
  .card:hover{background:var(--white);color:var(--black);}
  .card:hover .card-index{color:#888;}
  .card:hover .card-brand{color:#888;border-color:#ccc;}
  .card:hover .thumb{border-color:#d8d8d8;}
  .card:hover .card-desc{color:#555;}
  .card:hover .card-cta{border-top-color:#e5e5e5;}
  .related-card:hover{background:var(--white);color:var(--black);}
  .card:active, .related-card:active{background:var(--black);color:var(--white);}
}

/* Carousel: swipe-friendly on touch, thumbnails as real buttons */
.pcarousel{touch-action:pan-y;}
.pthumb{padding:0;background:none;}

/* Copy-code button inside the discount note */
.discount-note{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.copy-code{
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  background:var(--black);
  color:var(--white);
  border:1px solid var(--black);
  padding:6px 10px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
  white-space:nowrap;
}
.copy-code:hover{background:var(--white);color:var(--black);}

/* Affiliate disclosure in footer */
.footer-disclosure{
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  letter-spacing:0.05em;
  color:#666;
  max-width:520px;
  line-height:1.6;
}

/* Mobile product page: full-width, easy-to-tap buy buttons */
@media (max-width:640px){
  .buy-row{flex-direction:column;align-items:stretch;gap:8px;}
  .buy-btn{text-align:center;padding:14px 22px;}
  .pcarousel-arrow{width:34px;height:34px;}
}

/* LANGUAGE SWITCH (header) */
.site-nav{display:flex;align-items:center;gap:20px;}
.lang-switch{
  display:inline-flex;
  border:1.5px solid currentColor;
  font-family:'IBM Plex Mono',monospace;
  line-height:1;
}
.site-nav .lang-opt{
  display:inline-block;
  padding:9px 14px;
  font-size:14px;
  font-weight:500;
  letter-spacing:0.1em;
  text-decoration:none;
  color:inherit;
  opacity:.65;
  transition:opacity .2s ease;
}
.site-nav a.lang-opt:hover{opacity:1;color:inherit;}
.site-nav .lang-opt.is-current{opacity:1;background:var(--white);color:var(--black);}
/* light-header pages (product pages) */
.site-header[style*="#000"] .site-nav .lang-opt.is-current{background:var(--black);color:var(--white);}
@media (max-width:640px){
  .site-nav{gap:14px;}
  .site-nav .lang-opt{padding:8px 12px;font-size:13px;}
}
@media (max-width:480px){
  /* breadcrumb already links back to the catalog on small screens */
  .site-nav > a:not(.lang-opt){display:none;}
}

/* GRID LINES: drawn by each card, so an unfilled last row stays white */
.grid,
.related-grid{
  gap:0;
  background:transparent;
  border:0;
  border-top:1px solid var(--black);
  border-left:1px solid var(--black);
}
.grid > .card,
.related-grid > .related-card{
  border-right:1px solid var(--black);
  border-bottom:1px solid var(--black);
}

/* MOBILE HERO: tighter so the first products show on load (desktop unchanged) */
@media (max-width:640px){
  .hero{min-height:0;padding:24px 20px 44px;}
  .hero-logo{
    width:210px;
    height:118px;
    object-fit:cover;      /* trims only the black margin around the logo */
    margin-bottom:14px;
  }
  .hero-tagline{font-size:11px;letter-spacing:0.3em;}
  .hero-sub{font-size:26px;margin-top:12px;}
  .hero-cta{margin-top:20px;padding:12px 24px;}
  .scroll-cue{display:none;}
  .torn-divider{height:28px;}
  .catalog{padding-top:32px;}
  .catalog-head{flex-direction:row;align-items:flex-end;margin-bottom:20px;padding-bottom:14px;}
  .catalog-controls{margin-bottom:20px;}
}

/* keep the scroll line below the button on shorter laptop screens */
@media (min-width:641px){
  .hero{padding-bottom:104px;}
}

/* Bigger, easier-to-read US store coupon */
.discount-note{font-size:14px;line-height:1.5;color:#333;padding:14px 16px;}
.discount-note strong{font-size:17px;letter-spacing:0.08em;}
.copy-code{font-size:12px;padding:9px 14px;}
@media (max-width:640px){
  .discount-note{font-size:13px;}
  .discount-note strong{font-size:16px;}
}

/* Product spec list (height, material…) */
.product-specs{
  margin:22px 0 26px;
  border-top:1px solid var(--black);
  max-width:46ch;
}
.spec-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
  border-bottom:1px solid #ddd;
}
.spec-row dt{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#666;
  padding-top:2px;
}
.spec-row dd{
  font-size:15px;
  color:var(--black);
  text-align:right;
}

/* Buy links first, description and specs after */
.buy-box + .product-specs{margin-top:28px;}

/* ---- Design polish ---- */
/* Hero logo: trim the black margin baked into the image so the hero is tighter */
@media (min-width:641px){
  .hero-logo{width:340px;height:190px;object-fit:cover;}
}
/* Header logo uses the tight-cropped icon */
.site-logo img{object-fit:cover;}
/* Spec list lines up with the buy box */
.product-specs{max-width:none;}
/* Thumbnails: wrap on desktop, swipe without a scrollbar on phones */
.pthumbs{scrollbar-width:none;}
.pthumbs::-webkit-scrollbar{display:none;}
@media (min-width:641px){
  /* one row that always fits under the photo, however many photos there are */
  .pthumbs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,64px);overflow:visible;}
  .pthumb{width:auto;height:auto;padding:0;}
  .pthumb img{height:auto;aspect-ratio:auto;}
}

/* "Listing comes with the full figure." — a bit larger and right under the name */
.product-title + .product-desc{
  margin-top:-10px;
  font-size:18px;
  line-height:1.45;
  color:#222;
}
@media (max-width:640px){
  .product-title + .product-desc{font-size:17px;margin-top:-8px;}
}
/* Spec list in the same typeface as the description */
.spec-row dt,
.spec-row dd{
  font-family:'Inter',sans-serif;
  font-size:16px;
  letter-spacing:0;
  text-transform:none;
  line-height:1.45;
  padding-top:0;
}
.spec-row dt{color:#666;}
.spec-row dd{color:#222;}

/* Other Brands: note under the description */
.product-note{
  font-size:14px;
  line-height:1.55;
  color:#666;
  max-width:52ch;
  margin-top:-6px;
}
.product-note strong{color:var(--black);font-weight:600;}
.product-note + .product-specs{margin-top:8px;}
/* four filter tabs must fit on phones */
@media (max-width:640px){
  .filter-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .filter-tab{border-right:1px solid var(--black);border-bottom:1px solid var(--black);text-align:center;}
  .filter-tab:nth-child(2n){border-right:none;}
  .filter-tab:nth-last-child(-n+2){border-bottom:none;}
}

/* LIGHTBOX: tap a product photo to see it full screen */
.pcarousel-slide{cursor:zoom-in;}
.pcarousel-slide.active{pointer-events:auto;}
.pcarousel-zoom{
  position:absolute; top:12px; right:12px; z-index:2;
  width:36px; height:36px; padding:9px;
  border:none; background:rgba(255,255,255,0.9); color:var(--black);
  cursor:pointer; transition:background .2s ease;
}
.pcarousel-zoom:hover{background:var(--white);}
.pcarousel-zoom svg{width:100%;height:100%;display:block;}
html.lightbox-open, html.lightbox-open body{overflow:hidden;}
.lightbox{
  position:fixed; inset:0; z-index:1000;
  background:#000;
  display:flex; align-items:center; justify-content:center;
  padding:56px 16px;
}
.lightbox[hidden]{display:none;}
.lightbox-img{
  max-width:min(100%, 1400px); max-height:100%;
  width:auto; height:auto; object-fit:contain; display:block;
  user-select:none; -webkit-user-drag:none;
}
.lightbox-close{
  position:absolute; top:10px; right:12px;
  width:44px; height:44px; border:none; background:transparent;
  color:var(--white); font-size:34px; line-height:1; cursor:pointer;
}
.lightbox-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border:none;
  background:rgba(255,255,255,0.9); color:var(--black);
  font-family:'IBM Plex Mono',monospace; font-size:16px; cursor:pointer;
}
.lightbox-arrow:hover{background:var(--white);}
.lightbox-prev{left:16px;}
.lightbox-next{right:16px;}
.lightbox-count{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.15em;
  color:#bbb;
}
.lightbox-close:focus-visible, .lightbox-arrow:focus-visible, .pcarousel-zoom:focus-visible{outline:2px solid var(--white); outline-offset:2px;}
@media (max-width:640px){
  .lightbox{padding:56px 0;}
  .lightbox-arrow{width:38px;height:38px;}
  .lightbox-prev{left:8px;} .lightbox-next{right:8px;}
}

/* "Listing comes with the full figure" closer to the figure name */
.card-name{line-height:1.15;}
.card-name + .card-desc{margin-top:-8px;}
@media (max-width:640px){
  .card-name + .card-desc{margin-top:-5px;}
}

/* small notice under the International (AliExpress) link */
.buy-disclaimer{
  margin:-8px 0 0;
  font-size:12px;
  line-height:1.5;
  color:#777;
}

/* <picture> (AVIF + JPG fallback) must not change the layout around the image */
picture{display:contents;}

/* Accessories list under the specs */
.product-about{margin-top:-6px;}
.product-about .about-label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#666;margin-bottom:8px;}
.product-about p{margin:0;font-size:16px;line-height:1.6;color:#333;}
