.catalog-card { display:flex; flex-direction:column; min-width:0; }
.catalog-card .product-visual { position:relative; display:block; width:100%; height:auto; aspect-ratio:1; padding:0; overflow:hidden; background:#f7f5f0; border-bottom:1px solid #edece6; }
.catalog-card .product-visual img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.product-photo-count { position:absolute; bottom:12px; left:12px; padding:6px 10px; border:1px solid #e2e4de; border-radius:30px; background:#ffffffed; color:#3c5e61; font-size:12px; }
.catalog-card .favorite { background:#fffffff0; border:1px solid #e1e8e3; min-width:44px; min-height:44px; top:12px; right:12px; }
.catalog-card .product-info { display:flex; flex:1; flex-direction:column; padding:22px; }
.catalog-card .product-info h3 { font-size:20px; line-height:1.4; margin-top:8px; }
.catalog-card .product-info > p { font-size:15px; margin-top:8px; color:#556c70; }
.catalog-details-link { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; margin:12px 0 6px; padding:0; text-align:left; color:#326c5c; font-weight:650; font-size:15px; }
.catalog-details-link .icon { width:19px; }
.catalog-card .product-price { margin-top:auto; padding-top:18px; border-top:1px solid #e8eeeb; }
.price-pending { color:#526b70; font-size:16px; font-weight:550; line-height:1.5; }
.catalog-product-modal { max-width:1000px; width:calc(100% - 40px); }
.catalog-product-modal .modal-head h2 { font-size:22px; line-height:1.4; padding-right:10px; }
.catalog-product-modal .modal-head { position:sticky; top:0; z-index:3; background:#fff; padding-block:10px; border-bottom:1px solid #e5ebe7; }
.catalog-detail { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:30px; align-items:start; }
.product-gallery { min-width:0; }
.photo-stage { overflow:auto; height:min(60vh,500px); border:1px solid #e9e8e2; border-radius:16px; background:#f7f5f0; overscroll-behavior:contain; }
.product-photo-button { display:block; width:100%; height:100%; padding:0; cursor:zoom-in; }
.product-photo-button img { display:block; width:100%; height:100%; max-width:none; object-fit:contain; }
.photo-stage.is-zoomed .product-photo-button { width:220%; height:auto; cursor:zoom-out; }
.photo-stage.is-zoomed .product-photo-button img { height:auto; }
.gallery-caption { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 12px; margin-top:8px; color:#4b666c; font-size:14px; }
.photo-zoom { display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:8px 10px; font-size:14px; color:#326c5c; font-weight:650; }
.photo-zoom .icon { width:18px; height:18px; }
.product-thumbnails { display:flex; gap:10px; margin-top:8px; }
.product-thumbnails button { width:86px; padding:5px 5px 7px; border:2px solid transparent; border-radius:12px; background:#f6f7f4; color:#536970; font-size:13px; line-height:1.5; }
.product-thumbnails button[aria-pressed="true"] { border-color:#397863; background:#edf6ef; color:#245c49; }
.product-thumbnails img { display:block; width:100%; height:auto; border-radius:7px; }
.catalog-detail-copy { padding-top:7px; }
.catalog-detail-copy .eyebrow { font-size:11px; line-height:1.7; }
.catalog-detail-copy h3 { font-size:25px; line-height:1.35; margin:13px 0; color:#214b57; }
.catalog-detail-copy > p { color:#526b72; font-size:16px; }
.catalog-detail-copy .price { margin:22px 0; }
.catalog-detail-copy .gallery-instruction { margin-bottom:22px; font-size:15px; }
.catalog-order-note { margin-top:18px; padding:15px; border:1px solid #e0e7de; border-radius:12px; background:#f4f7f1; color:#556a61; font-size:14px; line-height:1.7; }
.catalog-note { display:flex; gap:12px; padding:16px 18px; border:1px solid #d6e5de; border-radius:13px; margin:18px 0 25px; background:#f2f7f3; color:#4e685e; }
.catalog-note p { font-size:14px; }
.catalog-note .icon { margin-top:2px; }
.protein-shop-illustration.catalog-hero-photo { min-height:230px; align-self:stretch; }
.catalog-hero-photo > img { width:100%; height:250px; object-fit:contain; border-radius:20px; }
.protein-shop .filters { flex-wrap:wrap; }
@media(max-width:760px) {
  .catalog-detail { grid-template-columns:1fr; gap:24px; }
  .catalog-product-modal { width:calc(100% - 24px); padding:22px; }
  .photo-stage { height:min(48dvh,360px); }
  .catalog-detail-copy h3 { font-size:23px; }
  .catalog-detail-copy .button { width:100%; }
  .catalog-detail-copy .price { margin:17px 0; }
}
@media(max-width:560px) {
  .catalog-card .product-info { padding:20px; }
  .catalog-card .product-visual { height:auto; min-height:0; padding:0; }
  .catalog-card .product-visual img { min-height:0; }
  .catalog-card .product-price { gap:13px; }
  .catalog-product-modal .modal-head h2 { font-size:20px; }
  .catalog-note { padding:15px; }
  .protein-shop .filters { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .protein-shop .filter { padding-inline:8px; font-size:14px; }
}
