/* Collection pages share a compact, product-first layout. */
.catalog-page .shop-hero { height: auto; min-height: 0; margin-top: 0; padding: 108px 1.5rem 1.5rem; background: radial-gradient(ellipse at 80% 0%, #f2e5df 0%, transparent 65%), #fbf6f0; text-align: left; display: block; }
.catalog-page .shop-hero::before, .catalog-page .shop-hero-banner { display: none; }
.catalog-page .shop-hero-inner { max-width: 1256px; margin: 0 auto; }
.catalog-page .shop-hero h1 { max-width: 900px; margin: .3rem 0 .8rem; font-family: 'Cormorant Garamond', 'Playfair Display', serif; color: #2d1b22; font-size: clamp(2.25rem, 4.3vw, 3.5rem); font-weight: 500; line-height: 1.08; text-shadow: none; }
.catalog-page .shop-hero p { max-width: 670px; margin: 0; font-size: 1rem; color: #5c4438; line-height: 1.65; }
.catalog-page .shop-hero .eyebrow { font-size: .7rem; font-weight: 600; letter-spacing: .18em; color: #80543f; text-transform: uppercase; display: block; }
.catalog-page .shop-hero .eyebrow::before, .catalog-page .shop-hero .eyebrow::after { display: none; }
.catalog-page .shop-hero .catalog-hero-note { margin-top: .9rem; font-size: .82rem; }
.catalog-hero-note span { margin: 0 .5rem; }
.catalog-hero-note a { color: #5a3344; font-weight: 600; text-underline-offset: 3px; }
.catalog-page .shop-main { max-width: 1320px; padding: 1.25rem 1.5rem 4rem; margin: 0 auto; }
.catalog-page .controls-row { margin-bottom: .9rem; padding-bottom: 1rem; gap: 1rem; border-bottom: 1px solid #e7d9d1; }
.catalog-page .filter-bar { gap: .4rem; }
.catalog-page .filter-btn { min-height: 44px; padding: .55rem .95rem; color: #5c4438; background: #fffaf6; border: 1px solid #ded0c8; font-size: .82rem; }
.catalog-page .filter-btn.active { color: #fff; background: #5a3344; border-color: #5a3344; }
.catalog-page .filter-btn::after { display: none; }
.catalog-page .sort-search-row { flex: 1; justify-content: flex-end; flex-wrap: wrap; }
.catalog-page .search-input { width: min(100%, 300px); min-width: 245px; min-height: 46px; font-size: .87rem; background: #fff; }
.catalog-page .sort-select { min-height: 46px; max-width: 100%; background: #fff; font-size: .84rem; }
.catalog-utilities { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1.35rem; color: #5c4438; font-size: .82rem; }
.catalog-utilities p { margin: 0; }
.catalog-utility-actions { display: flex; align-items: center; gap: 1rem; }
.catalog-stock-filter { display: inline-flex; align-items: center; gap: .5rem; cursor: pointer; min-height: 44px; white-space: nowrap; }
.catalog-stock-filter input { width: 18px; height: 18px; accent-color: #5a3344; }
.catalog-clear { border: 0; background: transparent; color: #5a3344; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 44px; font: inherit; }
.catalog-page [hidden] { display: none !important; }
.catalog-page .product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 1.25rem; }
.catalog-page .product-card { background: #fff; border: 1px solid #e9ded8; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; box-shadow: 0 5px 18px rgba(61,31,42,.035); }
.catalog-page .card-img-wrap { aspect-ratio: 3/4; width: 100%; background: #f4ebe6; }
.catalog-page .card-img-link { display: block; width: 100%; height: 100%; }
.catalog-page .card-img-wrap img { width: 100%; height: 100%; display: block; object-fit: cover; }
.catalog-page .card-body { padding: 1rem; display: flex; flex-direction: column; flex: 1; }
.catalog-card-category { margin: 0 0 .45rem; color: #80543f; font: 600 .66rem/1.4 Inter, sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.catalog-page .card-name { font-size: 1.18rem; line-height: 1.3; margin: 0 0 .6rem; color: #2d1b22; }
.catalog-page .card-name a { color: inherit; text-decoration: none; }
.catalog-page .card-name a:hover { text-decoration: underline; text-underline-offset: 3px; }
.catalog-page .card-price-row { margin: 0 0 .55rem; }
.catalog-page .card-price { font: 600 1rem/1.4 Inter, sans-serif; color: #5a3344; }
.catalog-page .stock-badge { font-size: .75rem; letter-spacing: 0; margin: 0 0 .8rem; color: #35623e; }
.catalog-page .stock-badge.low { color: #8a5426; }
.catalog-page .stock-badge.out { color: #943d3d; }
.catalog-page .stock-badge.unknown { color: #6e5b50; }
.catalog-page .stock-dot { background: currentColor; }
.catalog-card-actions { margin-top: auto; display: grid; gap: .65rem; }
.catalog-details { color: #5a3344; font-size: .83rem; font-weight: 600; display: flex; align-items: center; justify-content: space-between; min-height: 44px; text-decoration: none; border-top: 1px solid #eee4dd; }
.catalog-details:hover { text-decoration: underline; text-underline-offset: 3px; }
.catalog-page .card-order-btn { min-height: 46px; border-radius: 8px; background: #5a3344; color: white; text-decoration: none; font: 600 .83rem/1.4 Inter, sans-serif; display: flex; align-items: center; justify-content: center; padding: .7rem .5rem; }
.catalog-page .catalog-ask { background: #f6ede7; color: #5a3344; border: 1px solid #d9c4b9; }
.catalog-sold-out { position: absolute; top: .75rem; left: .75rem; background: #fffaf5; color: #713e44; padding: .35rem .6rem; border-radius: 5px; font-size: .73rem; font-weight: 600; }
.catalog-gallery-controls { position: absolute; bottom: .6rem; left: 50%; transform: translateX(-50%); display: flex; align-items: center; background: rgba(255,250,246,.96); border-radius: 999px; color: #3d1f2a; box-shadow: 0 2px 8px #3d1f2a15; }
.catalog-gallery-controls button { border: 0; background: none; min-width: 44px; min-height: 44px; font-size: 1.5rem; color: #3d1f2a; cursor: pointer; border-radius: 50%; }
.catalog-image-position { font: 500 .7rem/1 Inter, sans-serif; white-space: nowrap; }
.catalog-page .empty-state { grid-column: 1/-1; padding: 3rem 1rem; background: #fffaf5; border: 1px solid #e7d9d1; border-radius: 16px; text-align: center; }
.catalog-page .empty-state h2 { font-family: 'Cormorant Garamond', serif; font-size: 2rem; margin-bottom: .7rem; }
.catalog-page .empty-state p { max-width: 520px; margin: 0 auto 1rem; color: #5c4438; }
.catalog-page .empty-state button, .catalog-page .empty-state a { display: inline-block; padding: .8rem 1rem; font: 600 .9rem/1.4 Inter, sans-serif; color: #5a3344; border: 1px solid #d7bfb2; border-radius: 8px; background: #fff; margin: .3rem; cursor: pointer; }
.catalog-page .load-more-btn { border-radius: 8px; background: #5a3344; color: #fff; min-height: 48px; font-size: .9rem; padding: .8rem 1.5rem; }
.catalog-guide { max-width: 1256px; margin: 0 auto 3.5rem; padding: 2rem; background: #f1e5de; border-radius: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.catalog-guide .eyebrow { color: #80543f; font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; margin-bottom: .6rem; }
.catalog-guide h2 { font: 500 2rem/1.12 'Cormorant Garamond', serif; color: #2d1b22; margin-bottom: .8rem; }
.catalog-guide p { color: #5c4438; line-height: 1.7; }
.catalog-guide-links { display: grid; align-content: center; gap: .5rem; }
.catalog-guide-links a { min-height: 48px; padding: .65rem 0; border-bottom: 1px solid #d6c3b7; color: #5a3344; text-decoration: none; display: flex; justify-content: space-between; align-items: center; font-size: .9rem; }
.catalog-page :is(button, input, select, a):focus-visible { outline: 3px solid #5a3344; outline-offset: 3px; }
@media (max-width: 1050px) { .catalog-page .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .catalog-page .sort-search-row { justify-content: flex-start; flex: 1 1 100%; } }
@media (max-width: 720px) {
 .catalog-page .shop-hero { padding: 92px 1rem 1.25rem; }
 .catalog-page .shop-hero h1 { font-size: 2.25rem; }
 .catalog-page .shop-hero p { font-size: .9rem; }
 .catalog-page .shop-hero .catalog-hero-note { display: none; }
 .catalog-page .shop-main { padding: 1rem 1rem 3rem; }
 .catalog-page .controls-row { gap: .7rem; }
 .catalog-page .filter-bar { overflow-x: auto; flex-wrap: nowrap; width: 100%; padding-bottom: .3rem; }
 .catalog-page .filter-btn { flex-shrink: 0; }
 .catalog-page .sort-search-row { display: grid; grid-template-columns: minmax(0,1fr); gap: .65rem; width: 100%; }
 .catalog-page .search-wrap, .catalog-page .search-input { width: 100%; min-width: 0; }
 .catalog-page .search-input { font-size: 16px; }
 .catalog-page .sort-select { width: 100%; font-size: 16px; }
 .catalog-page .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
 .catalog-page .product-card { border-radius: 11px; }
 .catalog-page .card-body { padding: .75rem .6rem; }
 .catalog-page .card-name { font-size: 1.03rem; line-height: 1.25; overflow-wrap: anywhere; }
 .catalog-page .card-price { font-size: .91rem; }
 .catalog-page .stock-badge { font-size: .67rem; }
 .catalog-details { font-size: .76rem; }
 .catalog-page .card-order-btn { font-size: .76rem; }
 .catalog-gallery-controls { bottom: .35rem; }
 .catalog-gallery-controls button { min-width: 36px; min-height: 44px; }
 .catalog-image-position { font-size: .6rem; }
 .catalog-utilities { align-items: center; flex-wrap: wrap; gap: .25rem .5rem; margin-bottom: .8rem; }
 .catalog-utility-actions { width: auto; flex-wrap: wrap; gap: .5rem; margin-left: auto; }
 .catalog-guide { grid-template-columns: 1fr; margin: 0 1rem 2.5rem; padding: 1.4rem; gap: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { .catalog-page *, .catalog-page *::before, .catalog-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
