.catalog-page{padding-top:40px;padding-bottom:80px;min-height:60vh}.catalog-page h1{font-family:var(--pp-heading);font-size:40px;font-weight:400;line-height:1.2;margin:24px 0}.breadcrumbs{font-size:14px;color:var(--pp-muted)}.category-rail{display:flex;gap:0;overflow-x:auto;margin:32px 0;scroll-padding:16px}.category-rail a{flex-shrink:0;padding:14px 16px;min-height:48px;font-size:14px;color:var(--pp-muted);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}.category-rail a[aria-current],.category-rail a[aria-selected=true]{border-bottom-color:var(--pp-brand);color:var(--pp-brand);font-weight:600}.category-rail a:hover{background:var(--pp-subtle)}.catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0}.catalog-card{display:flex;flex-direction:column;gap:8px;height:100%;padding:8px;border:1px solid var(--pp-border);border-radius:12px;text-decoration:none;color:var(--pp-brand);overflow-wrap:anywhere}.catalog-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.catalog-card h2{font:400 16px/24px var(--pp-heading);margin:0}.catalog-card p{font:400 14px/20px var(--pp-body);color:var(--pp-muted);margin:0}.catalog-card strong,.catalog-card span{font-size:14px}.menu-section h2{font:400 32px/42px var(--pp-heading);margin:0 0 24px}.menu-columns{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}.menu-entry{padding:16px 0;break-inside:avoid}.menu-entry h3{font-family:var(--pp-body);font-weight:400;margin:0;font-size:16px;line-height:24px;text-decoration:none;color:var(--pp-text)}.menu-entry p{font-size:14px;color:var(--pp-muted);margin:8px 0}.menu-section[hidden]{display:none}.empty-catalog{padding:40px 0;color:var(--pp-muted)}@media(max-width:1023px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.catalog-page{padding-top:24px}.catalog-page h1{font-size:32px}.menu-columns{grid-template-columns:1fr}.catalog-grid{gap:16px}.category-rail{margin:24px 0}}

.product-photo { display:block; text-decoration:none; border-radius:var(--pp-control-radius); }
.photo-caption { display:block; padding-top:8px; color:var(--pp-brand); font:600 14px/20px var(--pp-body); text-decoration:underline; text-underline-offset:3px; }
.gallery-dialog { width:min(1000px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; padding:24px; border:1px solid var(--pp-border); border-radius:var(--pp-radius); background:var(--pp-surface); color:var(--pp-text); }
.gallery-dialog::backdrop { background:rgb(37 35 33 / .75); }
.gallery-header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.gallery-header h2 { font-size:24px; overflow-wrap:anywhere; }
.gallery-header button { flex-shrink:0; }
.gallery-figure { margin:16px 0; }
.gallery-image { width:100%; height:min(58dvh,640px); object-fit:contain; }
.gallery-count { text-align:center; margin-top:12px; font:400 14px/20px var(--pp-body); color:var(--pp-muted); }
.gallery-controls { display:flex; justify-content:center; gap:8px; }
.gallery-thumbnails { display:flex; overflow-x:auto; gap:8px; margin-top:16px; padding:4px; }
.gallery-thumbnails button { flex:0 0 72px; padding:4px; border:1px solid var(--pp-border-control); background:var(--pp-surface); border-radius:var(--pp-control-radius); }
.gallery-thumbnails button[aria-pressed=true] { border-color:var(--pp-brand); box-shadow:inset 0 0 0 2px var(--pp-brand); }
.gallery-thumbnails img { width:64px; height:64px; object-fit:contain; }
@media(max-width:767px) { .gallery-dialog { padding:16px; } .gallery-header h2 { font-size:20px; } }
