/* Presentation for public material catalogues only; product data and forms stay page-owned. */
.public-catalog { background: #fff; }
.public-catalog .room-hero-grid { gap: clamp(28px, 4vw, 64px); }
.public-catalog .room-hero-photo { min-height: 0; }
.public-catalog .room-hero-photo img { max-height: 480px; }
.public-catalog > section.container { padding-top: 52px !important; padding-bottom: 28px !important; padding-inline: 12px !important; }
.public-catalog > section.container:last-of-type { padding-bottom: 68px !important; }
.public-catalog #eshop-products, .public-catalog #product-list { padding-block: 56px; }
.public-catalog #product-list { background: var(--comfy-paper, #f5f2ed) !important; }
.public-catalog .public-section-heading { margin-bottom: 28px; }
.public-catalog .public-section-heading h2 { font-size: clamp(1.6rem, 2.4vw, 2.2rem); line-height: 1.2; }
.public-catalog .public-section-heading p { max-width: 64ch; font-size: 1rem; line-height: 1.7; color: var(--comfy-muted, #6a645e); }
.public-catalog #searchForm, .public-catalog #eshop-products form { padding: 24px; border: 1px solid var(--comfy-line, #ded8ce) !important; border-radius: 10px !important; box-shadow: none !important; background: var(--comfy-paper, #f5f2ed) !important; }
.public-catalog #eshop-products form h3 { font-size: 1.2rem; margin-bottom: 22px !important; }
.public-catalog #eshop-products .col-lg-8 > h3 { font-size: 1.2rem; text-align: left !important; }
.public-catalog .form-label { font-size: .85rem; font-weight: 600; color: var(--comfy-ink, #292622); margin-bottom: 8px; }
.public-catalog .form-control, .public-catalog .form-select { min-height: 46px; border-color: var(--comfy-line, #ded8ce); border-radius: 6px; color: var(--comfy-ink, #292622); font-size: .95rem; }
.public-catalog .form-control:focus, .public-catalog .form-select:focus { border-color: var(--comfy-red, #b22222); box-shadow: 0 0 0 3px rgba(178, 34, 34, .1); }
.public-catalog .btn { min-height: 46px; padding: 11px 18px; border-radius: 6px; font-size: .9rem; font-weight: 600; line-height: 1.45; white-space: normal; }
.public-catalog .btn-primary { background: var(--comfy-red, #b22222); border-color: var(--comfy-red, #b22222); color: #fff; }
.public-catalog .btn-primary:hover { background: #951c1c; border-color: #951c1c; }
.public-catalog .btn-secondary { color: var(--comfy-ink, #292622); background: #fff; border-color: var(--comfy-line, #ded8ce); }
.public-catalog .btn-secondary:hover { border-color: var(--comfy-red, #b22222); color: var(--comfy-red, #b22222); }
.public-catalog .card { border: 1px solid var(--comfy-line, #ded8ce) !important; border-radius: 10px !important; box-shadow: none !important; overflow: hidden; background: #fff; }
.public-catalog .card-body { padding: 22px; }
.public-catalog .card-title { color: var(--comfy-ink, #292622); font-size: 1.15rem !important; font-weight: 600 !important; line-height: 1.35; text-transform: none !important; overflow-wrap: anywhere; }
.public-catalog .card .lead, .public-catalog .card-text { font-size: .94rem; line-height: 1.65; color: var(--comfy-muted, #6a645e); }
.public-catalog .card .lead { margin-top: 8px; }
.public-catalog .card strong { font-weight: 600; color: var(--comfy-ink, #292622); }
.public-catalog .card-img-top, .public-catalog #searchResults .card img { width: 100%; height: 240px !important; object-fit: contain !important; padding: 18px; background: #fff; border-radius: 0; }
.public-catalog .card-img-top { flex-shrink: 0; min-height: 240px; }
.public-catalog #searchResults .ratio { --bs-aspect-ratio: 72%; background: var(--comfy-paper, #f5f2ed); }
.public-catalog #searchResults .ratio img { height: 100% !important; padding: 0; object-fit: cover !important; }
.public-catalog #searchResults .card > .text-center { text-align: left !important; padding: 8px 8px 0; }
.public-catalog #searchResults .card .text-center .card-title { margin-bottom: 0; }
.public-catalog #searchResults .hover-raise:hover, .public-catalog .hover-zoom:hover { transform: none !important; box-shadow: none !important; }
.public-catalog #product-list .card-title { height: auto !important; min-height: 3em; overflow: visible !important; }
.public-catalog #product-list .card-text[style] { height: 12rem !important; overflow-y: auto !important; padding-right: 8px; overflow-wrap: anywhere; scrollbar-width: thin; }
.public-catalog #product-list .card-text.text-danger { color: var(--comfy-red, #b22222) !important; font-size: 1.15rem !important; }
.public-catalog #product-list .card-text.text-dark { font-size: .85rem; color: var(--comfy-muted, #6a645e) !important; }
.public-catalog #product-list .input-group { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; align-items: stretch; }
.public-catalog #product-list .input-group > .form-control { width: 100%; border-radius: 6px !important; min-width: 0; }
.public-catalog #product-list .input-group > .btn { margin: 0; border-radius: 6px !important; padding-inline: 10px; }
.public-catalog .custom-row-cols-5 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.public-catalog .custom-row-cols-5 > .col { width: auto !important; margin: 0; padding: 0; min-width: 0; }
.public-catalog .custom-row-cols-5 a { display: flex !important; align-items: center; gap: 12px; padding: 12px; height: 100%; border: 1px solid var(--comfy-line, #ded8ce); border-radius: 8px; color: var(--comfy-ink, #292622); text-align: left; background: #fff; }
.public-catalog .custom-row-cols-5 a:hover { border-color: var(--comfy-red, #b22222); color: var(--comfy-red, #b22222); }
.public-catalog .custom-row-cols-5 img { width: 62px; height: 72px; flex: 0 0 62px; object-fit: contain !important; box-shadow: none !important; border-radius: 0 !important; }
.public-catalog .custom-row-cols-5 a div { margin-top: 0 !important; font-size: .82rem; line-height: 1.4; font-weight: 500 !important; overflow-wrap: anywhere; }
.public-catalog a:focus-visible, .public-catalog button:focus-visible { outline: 3px solid rgba(178, 34, 34, .45); outline-offset: 3px; }
@media (max-width: 1199.98px) {
    .public-catalog .custom-row-cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-catalog #product-list .input-group { grid-template-columns: 64px minmax(0, 1fr); }
    .public-catalog #product-list .input-group > .btn { font-size: .82rem; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
    .public-catalog #searchResults > .row > *, .public-catalog #product-list .container > .row > * { flex: 0 0 auto; width: 50%; }
    .public-catalog .custom-row-cols-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .public-catalog .room-hero-photo img { max-height: none; }
    .public-catalog > section.container { padding-top: 36px !important; padding-bottom: 20px !important; }
    .public-catalog > section.container:last-of-type { padding-bottom: 44px !important; }
    .public-catalog #eshop-products, .public-catalog #product-list { padding-block: 40px; }
    .public-catalog #searchForm, .public-catalog #eshop-products form { padding: 18px !important; }
    .public-catalog .public-section-heading { margin-bottom: 22px; }
    .public-catalog .card-body { padding: 20px; }
    .public-catalog .custom-row-cols-5 { gap: 10px; }
    .public-catalog .custom-row-cols-5 a { flex-direction: column; align-items: flex-start; gap: 8px; }
    .public-catalog .custom-row-cols-5 img { width: 100%; height: 78px; flex-basis: auto; }
    .public-catalog .card-img-top, .public-catalog #searchResults .card img { height: 220px !important; }
    .public-catalog .card-img-top { min-height: 220px; }
    .public-catalog #product-list .input-group { grid-template-columns: 72px minmax(0, 1fr); }
    .public-catalog #product-list .input-group > .btn { font-size: .9rem; }
}
