/* Product rows use matching visual sizes in the neighbouring serving cards. */
#tableware .dishware-duo {
  --glass-unit:min(112px,calc((100cqw - 36px) / 3.4));
  grid-template-rows:1fr 1fr; gap:24px; padding:28px 20px;
}
#tableware .dishware-glass-row,
#tableware .dishware-plate-row {
  display:flex; width:100%; min-width:0; min-height:0; justify-content:center;
}
#tableware .dishware-glass-row { container-type:inline-size; align-items:flex-end; gap:clamp(8px,1.1vw,16px); }
#tableware .colors .dishware-glass-row { gap:9px; }
#tableware .dishware-glass-set { display:flex; align-items:flex-end; flex-shrink:0; gap:3px; }
#tableware .dishware-plate-row { align-items:center; gap:8px; }
#tableware .dishware-fragment { position:relative; display:block; overflow:hidden; flex-shrink:0; }
#tableware .dishware-glass { height:calc(var(--glass-unit) * var(--glass-scale)); }
#tableware .dishware-plate { flex:0 0 calc((100% - 24px) / 4); aspect-ratio:1; display:grid; place-items:center; }
#tableware .dishware-plate .dishware-fragment { width:100%; }
#tableware .dishware-fragment img {
  position:absolute; width:var(--fragment-width); max-width:none; height:auto; max-height:none;
  left:var(--fragment-left); top:var(--fragment-top); mix-blend-mode:multiply;
}

/* The same compact introduction and illustrated cards as the furniture section. */
:is(#textile,#tableware,#ceremony-zones) { padding-block:28px; scroll-margin-top:-24px; }
.category-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.43fr); gap:28px; align-items:stretch; margin-bottom:30px; }
.category-story-copy { min-width:0; }
.category-intro .label { margin-bottom:8px; font-size:.6875rem; line-height:1.5; }
.category-intro h2 { font-size:2.125rem; line-height:1.15; }
.category-intro .lead { margin-top:12px; font-size:.9375rem; line-height:1.6; max-width:720px; }
.category-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:20px; }
.category-card { display:grid; grid-template-columns:44px minmax(0,1fr); align-content:start; gap:8px 12px; min-width:0; padding:16px; border:1px solid #e0e0e0; border-radius:12px; background:#fff; }
.category-icon { grid-column:1; grid-row:1; width:44px; height:44px; color:var(--ink); }
.category-card h3 { grid-column:2; align-self:center; font-size:1rem; line-height:1.35; font-weight:600; text-wrap:pretty; }
.category-card p { grid-column:1/-1; margin:0; font-size:.875rem; line-height:1.55; color:var(--muted); }
.category-visual-column { display:flex; flex-direction:column; gap:12px; min-width:0; }
.category-photo { position:relative; flex:1; min-height:210px; overflow:hidden; border-radius:14px; background:var(--soft); }
.category-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#textile .category-photo img { object-position:52% 70%; }
#tableware .category-photo img { object-position:48% 65%; }
#ceremony-zones .category-photo img { object-position:center 75%; }
#textile .textile-materials { margin-bottom:20px; gap:8px; }
@media(min-width:901px) and (max-height:750px) {
  :is(#textile,#tableware,#ceremony-zones) { padding-block:22px; }
  .category-intro h2 { font-size:2rem; }
  .category-intro .lead { font-size:.875rem; }
  .category-benefits { margin-top:16px; gap:10px; }
  .category-card { padding:14px; }
  .category-visual-column { gap:10px; }
}
@media(max-width:900px) {
  .category-story { grid-template-columns:minmax(0,1fr) 160px; gap:16px 24px; }
  .category-story-copy,.category-visual-column { display:contents; }
  .category-intro { grid-column:1; grid-row:1; align-self:center; }
  .category-photo { grid-column:2; grid-row:1; min-height:0; aspect-ratio:1; align-self:center; }
  .category-benefits { grid-column:1/-1; grid-row:2; margin:0; }
  .category-final { grid-column:1/-1; grid-row:3; }
}
@media(max-width:600px) {
  :is(#textile,#tableware,#ceremony-zones) { padding-block:14px; }
  .category-story { grid-template-columns:minmax(0,1fr) 96px; gap:12px 16px; margin-bottom:24px; }
  .category-intro { display:contents; }
  .category-heading { grid-column:1; grid-row:1; align-self:center; }
  .category-intro .label { font-size:.625rem; letter-spacing:.07em; margin-bottom:6px; }
  .category-intro h2 { font-size:1.875rem; }
  #ceremony-zones .category-intro h2 { font-size:1.625rem; }
  .category-intro .lead { grid-column:1/-1; grid-row:2; margin:0; font-size:.875rem; line-height:1.55; }
  .category-photo { border-radius:10px; }
  .category-benefits { grid-row:3; grid-template-columns:1fr; gap:8px; }
  .category-final { grid-row:4; margin-top:-4px; }
  .category-card { grid-template-columns:36px minmax(0,1fr); gap:4px 12px; padding:10px 12px; }
  .category-icon { width:36px; height:36px; }
  .category-card h3 { font-size:.9375rem; }
  .category-card p { font-size:.875rem; line-height:1.5; }
  #textile .textile-materials { gap:6px; }
}
@media print {
  .category-card { break-inside:avoid; }
}
