.cws-catalog-groups { display: grid; gap: 44px; }
.cws-group-heading { padding-bottom: 20px; border-top: 1px solid #e8e8e8; padding-top: 22px; }
.cws-group-heading h3 { font-family: var(--serif); font-size: 29px; line-height: 1.2; margin: 0 0 8px; font-weight: 400; }
.cws-group-heading p { font-size: 13px; line-height: 1.6; margin: 0; color: #555; }
.life-theme .product-grid { align-items: stretch; }
.life-theme .product-card { display: flex; flex-direction: column; }
.life-theme .product-photo,
.life-theme .product-photo.book,
.life-theme .product-photo.tee {
  height: auto;
  aspect-ratio: 1 / 1;
  flex: none;
  background: #fff;
  border: 1px solid #ededed;
  border-radius: 0;
}
.life-theme .product-photo img,
.life-theme .product-photo.book img,
.life-theme .product-photo.tee img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: clamp(12px, 2vw, 22px);
}
.life-theme .product-meta,
.life-theme .product-card.is-book .product-meta { display: block; }
.life-theme .product-meta h3 { line-height: 1.35; }
.life-theme .product-price,
.life-theme .product-card.is-book .product-price { margin-top: 10px; font-size: 15px; }
.life-theme .product-bottom { margin-top: auto; padding-top: 16px; gap: 8px; align-items: center; }
.life-theme .product-bottom > span { font-size: 7px; letter-spacing: .6px; }
.life-theme .quick-add {
  flex: none;
  width: auto;
  height: auto;
  min-height: 40px;
  padding: 9px 12px;
  border-radius: 0;
  font-size: 11px;
  line-height: 1.3;
}
.life-theme .legacy-product-grid a img { height: auto; aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
.life-theme .reminder-product img { width: 60px; height: 60px; object-fit: contain; background: #fff; }
.cws-commerce .woocommerce ul.products li.product a img,
.cws-commerce .woocommerce div.product div.images .woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
.cws-tumbler-dialog { width: min(960px, 94vw); max-height: 90dvh; padding: 36px; border: 1px solid #111; overflow-y: auto; }
.cws-tumbler-dialog::backdrop { background: #0009; }
.cws-tumbler-dialog > h2 { font-family: var(--serif); font-size: clamp(29px, 4vw, 43px); line-height: 1.15; margin: 0 0 12px; }
.cws-tumbler-dialog > p:not(.eyebrow) { font-size: 14px; margin-bottom: 25px; }
.cws-tumbler-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.cws-tumbler-option { display: flex; flex-direction: column; padding: 12px; border: 1px solid #dedede; text-decoration: none; color: #111; }
.cws-tumbler-option:hover { border-color: #111; background: #fdf3f8; }
.cws-tumbler-option img { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: contain; padding: 8px; background: #fff; }
.cws-tumbler-option h3 { font-size: 18px; line-height: 1.3; margin: 14px 0 8px; }
.cws-tumbler-option p { font-size: 14px; margin: 0 0 18px; }
.cws-tumbler-option > span { margin-top: auto; display: block; text-align: center; background: #111; color: #fff; padding: 12px 8px; font-size: 12px; line-height: 1.3; }
@media (max-width: 580px) {
  .cws-catalog-groups { gap: 30px; }
  .cws-group-heading h3 { font-size: 25px; }
  .cws-group-heading p { font-size: 12px; }
  .life-theme .product-meta h3 { font-size: 16px; }
  .life-theme .product-bottom { display: block; }
  .life-theme .product-bottom > span { display: none; }
  .life-theme .quick-add { width: 100%; min-height: 44px; font-size: 12px; }
  .cws-tumbler-dialog { padding: 40px 18px 22px; }
  .cws-tumbler-options { grid-template-columns: minmax(0,1fr); gap: 15px; }
  .cws-tumbler-option { display: grid; grid-template-columns: 116px minmax(0,1fr); gap: 0 14px; padding: 12px; align-items: center; }
  .cws-tumbler-option img { grid-row: 1 / 4; padding: 4px; }
  .cws-tumbler-option h3 { font-size: 16px; margin: 0 0 8px; }
  .cws-tumbler-option p { font-size: 13px; margin: 0 0 10px; }
  .cws-tumbler-option > span { font-size: 11px; padding: 12px 5px; }
}
@media (max-width: 360px) {
  .cws-tumbler-option { grid-template-columns: 90px minmax(0,1fr); gap: 0 10px; }
}
