/* LaminatLux catalog: tactile photography with warm neutral, shared color roles. */
.listing-page .product-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:48px 28px;
  align-items:start;
}
.listing-page .product-card{
  position:relative;
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.listing-page .product-card .product-photo{
  display:block;
  position:relative;
  aspect-ratio:1.07;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(var(--ink-rgb),.08);
  border-radius:10px;
  background:var(--surface-soft);
  box-shadow:0 2px 12px rgba(var(--ink-rgb),.035);
  transform:none;
  translate:none;
  transition:box-shadow 600ms var(--ease-lux);
}
.listing-page .product-card .product-photo>img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  backface-visibility:hidden;
  transform:translate3d(0,0,0) scale(1);
  transform-origin:center;
  filter:none;
  transition:transform 650ms cubic-bezier(.2,.65,.3,1);
}
.listing-page .product-card .product-photo:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:-4px;
}
.listing-page .product-card .product-badge{
  top:16px;
  left:16px;
  max-width:calc(100% - 88px);
  padding:5px 10px;
  border:1px solid var(--surface);
  border-radius:20px;
  background:var(--surface);
  color:var(--ink);
  font-size:10px;
  line-height:1.5;
  letter-spacing:.025em;
}
.listing-page .product-card .save-button{
  top:13px;
  right:13px;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid var(--surface);
  border-radius:50%;
  background:var(--surface);
  color:var(--ink);
  box-shadow:0 2px 10px rgba(var(--ink-rgb),.04);
  translate:none;
  transform:none;
  transition:background-color 300ms ease,border-color 300ms ease,color 300ms ease;
}
.listing-page .product-card .save-button svg{
  width:19px;
  height:19px;
  stroke-width:1.5;
}
.listing-page .product-card .save-button[aria-pressed=true]{
  border-color:var(--favorite);
  background:var(--favorite);
  color:var(--on-favorite);
}
.listing-page .product-card .product-meta{
  min-width:0;
  padding:19px 3px 0;
  background:transparent;
}
.listing-page .product-card .product-meta-top{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:5px 14px;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
  letter-spacing:.025em;
}
.listing-page .product-card .product-meta-top>span:first-child{
  color:var(--muted);
  font-size:12px;
  font-weight:500;
}
.listing-page .product-card .product-meta-top>span:last-child{
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.listing-page .product-card .product-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:46px;
  margin-top:9px;
}
.listing-page .product-card .product-title-row>a{
  min-width:0;
  max-width:100%;
}
.listing-page .product-card .product-meta h3{
  margin:0;
  color:var(--ink);
  font-size:27px;
  font-weight:400;
  line-height:1.18;
  letter-spacing:-.035em;
  overflow-wrap:anywhere;
}
.listing-page .product-card .material-swatch{
  display:block;
  flex:0 0 36px;
  width:36px;
  height:36px;
  margin:0;
  border:2px solid var(--surface);
  border-radius:50%;
  object-fit:cover;
  background:var(--surface-soft);
  box-shadow:0 0 0 1px var(--line);
}
.listing-page .product-card .product-meta-bottom{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:6px 14px;
  margin-top:13px;
  padding-top:13px;
  border-top:1px solid var(--line);
  font-size:20px;
  line-height:1.4;
}
.listing-page .product-card .product-meta-bottom>span,
.listing-page .product-card .product-meta-bottom>span:last-child{
  color:var(--ink);
  font-size:20px;
  font-weight:500;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.listing-page .product-card .product-meta-bottom small{
  margin-left:5px;
  color:var(--muted);
  font-size:12px;
  font-weight:400;
  white-space:nowrap;
}
.listing-page .product-card .product-details-link{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  width:auto;
  height:auto;
  min-height:44px;
  max-width:100%;
  padding:2px 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--ink);
  font-size:12px;
  font-weight:500;
  line-height:1.5;
  white-space:nowrap;
  text-decoration:underline;
  text-decoration-color:var(--line-strong);
  text-underline-offset:5px;
  text-decoration-thickness:1px;
  transition:color 250ms ease,text-decoration-color 250ms ease;
}
.listing-page .product-card .product-spec-line{
  margin-top:9px;
  color:var(--muted);
  font-size:12px;
  font-weight:400;
  line-height:1.7;
  letter-spacing:0;
}
.listing-page .product-card .product-spec-line>span{
  padding:0 4px;
  color:var(--line-strong);
}
@media(hover:hover) and (pointer:fine){
  .listing-page .product-card .product-photo:hover{
    box-shadow:0 5px 20px rgba(var(--ink-rgb),.075);
  }
  .listing-page .product-card .product-photo:hover>img,
  .listing-page .product-card .product-photo:focus-visible>img{
    transform:translate3d(0,0,0) scale(1.035);
  }
  .listing-page .product-card .save-button:hover{
    translate:none;
    background:var(--surface-hover);
    border-color:var(--line);
  }
  .listing-page .product-card .save-button[aria-pressed=true]:hover{
    background:var(--favorite-hover);
    border-color:var(--favorite-hover);
  }
  .listing-page .product-card .product-details-link:hover{
    color:var(--ink);
    text-decoration-color:var(--accent);
  }
}
@media(max-width:1100px){
  .listing-page .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 23px}
  .listing-page .product-card .product-meta h3{font-size:25px}
}
@media(max-width:850px){
  .listing-page .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 22px}
  .listing-page .product-card .product-meta{padding-top:17px}
  .listing-page .product-card .product-meta h3{font-size:25px}
  .listing-page .product-card .product-meta-top{font-size:10px;gap:4px 9px}
  .listing-page .product-card .product-meta-top>span:first-child{font-size:11px}
  .listing-page .product-card .product-meta-bottom,
  .listing-page .product-card .product-meta-bottom>span,
  .listing-page .product-card .product-meta-bottom>span:last-child{font-size:19px}
  .listing-page .product-card .product-spec-line{font-size:11px}
}
@media(max-width:600px){
  .listing-page .product-grid{gap:34px 18px}
  .listing-page .product-card .product-title-row{gap:10px;min-height:42px}
  .listing-page .product-card .product-meta h3{font-size:23px}
  .listing-page .product-card .material-swatch{flex-basis:32px;width:32px;height:32px}
  .listing-page .product-card .product-meta-bottom{gap:3px 10px;margin-top:10px;padding-top:10px}
  .listing-page .product-card .product-meta-bottom small{margin-left:3px;font-size:11px}
  .listing-page .product-card .product-details-link{font-size:11px}
  .listing-page .product-card .product-spec-line>span{padding:0 2px}
}
@media(max-width:480px){
  .listing-page .product-grid{grid-template-columns:minmax(0,1fr);gap:35px}
  .listing-page .product-card .product-photo{aspect-ratio:1.08;border-radius:10px}
  .listing-page .product-card .product-meta{padding:17px 2px 0}
  .listing-page .product-card .product-meta-top{font-size:11px}
  .listing-page .product-card .product-meta-top>span:first-child{font-size:12px}
  .listing-page .product-card .product-title-row{margin-top:8px;min-height:45px;gap:16px}
  .listing-page .product-card .product-meta h3{font-size:27px}
  .listing-page .product-card .material-swatch{flex-basis:36px;width:36px;height:36px}
  .listing-page .product-card .product-meta-bottom{margin-top:12px;padding-top:11px}
  .listing-page .product-card .product-meta-bottom,
  .listing-page .product-card .product-meta-bottom>span,
  .listing-page .product-card .product-meta-bottom>span:last-child{font-size:20px}
  .listing-page .product-card .product-details-link{min-height:44px;font-size:12px}
  .listing-page .product-card .product-meta-bottom small{font-size:12px;margin-left:5px}
  .listing-page .product-card .product-spec-line{font-size:12px;margin-top:8px}
}
@media(prefers-reduced-motion:reduce){
  .listing-page .product-card .product-photo,
  .listing-page .product-card .product-photo>img,
  .listing-page .product-card .save-button{transition:none}
  .listing-page .product-card .product-photo:hover>img,
  .listing-page .product-card .product-photo:focus-visible>img{transform:translate3d(0,0,0) scale(1)}
}
