.shop-header { position: sticky; top: 0; z-index: 20; background: rgba(255,245,227,.92); backdrop-filter: blur(14px); border-bottom: 1px solid #55473d18; }.shop-header-inner { max-width: 1320px; margin: auto; padding: 17px 40px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }.shop-header nav { display: flex; gap: 34px; font-size: 13px; font-weight: 600; color: var(--text-muted); }.shop-header nav a:hover, .shop-header nav .active { color: var(--accent-text); }.shop-actions { display: flex; gap: 17px; }.shop-actions button, .shop-bag { border: 0; background: none; padding: 4px; display: grid; place-items: center; position: relative; }.shop-actions svg, .shop-bag svg { width: 19px; height: 19px; stroke-width: 1.7; }.shop-bag span { position: absolute; right: -7px; top: -8px; background: var(--terra); color: white; border-radius: 20px; font-size: 9px; width: 15px; height: 15px; display: grid; place-items: center; }.catalog-hero { max-width: 1320px; margin: auto; padding: 88px 40px 90px; display: flex; justify-content: space-between; align-items: end; border-bottom: 1px solid #55473d18; }.breadcrumb { display: flex; gap: 10px; font-size: 11px; color: var(--text-muted); margin-bottom: 34px; }.breadcrumb a:hover { color: var(--accent-text); }.catalog-hero h1 { font-size: clamp(48px, 6.4vw, 88px); margin-bottom: 25px; }.catalog-hero > div:first-child > p:last-child { color: var(--text-muted); font-size: 15px; line-height: 1.7; max-width: 430px; }.hero-dots { font-family: monospace; color: var(--accent-text); font-size: 38px; line-height: .52; letter-spacing: 7px; transform: rotate(8deg); padding: 0 50px 40px 0; }.catalog-layout { max-width: 1320px; margin: auto; padding: 65px 40px 130px; display: grid; grid-template-columns: 210px 1fr; gap: 72px; }.filter-title { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #55473d22; padding-bottom: 15px; margin-bottom: 24px; }.filter-title span, fieldset legend { font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: .12em; }.filter-title button { background: none; border: 0; color: var(--accent-text); font-size: 10px; }.search-field { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--border); padding: 10px 0; margin-bottom: 31px; }.search-field svg { width: 14px; color: var(--accent-text); }.search-field input { background: none; border: 0; outline: 0; width: 100%; font: inherit; font-size: 11px; color: var(--ink); }.search-field input::placeholder { color: var(--text-muted); }fieldset { border: 0; padding: 0; margin: 0 0 30px; }fieldset legend { margin-bottom: 15px; }.check-row { display: flex; gap: 10px; align-items: center; font-size: 12px; color: var(--text-muted); margin-bottom: 13px; cursor: pointer; }.check-row input { accent-color: var(--accent-text); }.price-values { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-muted); margin-bottom: 10px; }.price-slider { width: 100%; accent-color: var(--accent-text); }.catalog-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 34px; }.catalog-toolbar .eyebrow { margin-bottom: 10px; }.catalog-toolbar h2 { font-family: Georgia, serif; font-size: 25px; font-weight: normal; margin: 0; }.toolbar-actions { display: flex; align-items: center; gap: 25px; }.sort-select { display: flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: 11px; position: relative; }.sort-select select { appearance: none; border: 0; background: transparent; color: var(--ink); font: inherit; padding: 9px 20px 9px 0; outline: 0; }.sort-select svg { width: 13px; position: absolute; right: 0; pointer-events: none; }.mobile-filter-button { display: none; }.catalog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 52px 22px; }.catalog-image { height: 300px; position: relative; overflow: hidden; display: block; background: var(--sand); }.catalog-image img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transition: transform .6s ease; }.catalog-card:hover .catalog-image img { transform: scale(1.06); }.catalog-badge { position: absolute; left: 14px; bottom: 14px; background: var(--white); padding: 7px 9px; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }.catalog-meta { display: flex; justify-content: space-between; gap: 12px; padding: 17px 0 12px; }.catalog-meta h2 { font-family: Georgia, serif; font-size: 20px; font-weight: normal; margin: 0 0 7px; }.catalog-meta p { font-size: 11px; color: var(--text-muted); line-height: 1.45; margin: 0; max-width: 190px; }.catalog-meta strong { font-size: 13px; white-space: nowrap; }.catalog-actions { border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; padding-top: 12px; font-size: 11px; }.catalog-actions button { background: none; border: 0; font-weight: bold; padding: 0; }.catalog-actions button:hover, .catalog-actions a:hover { color: var(--accent-text); }.catalog-actions button span { font-size: 18px; margin-left: 6px; font-weight: normal; }.catalog-actions a { color: var(--text-muted); display: inline-flex; gap: 6px; align-items: center; }.catalog-actions svg { width: 13px; }.empty-products { text-align: center; padding: 100px 30px; border: 1px solid #55473d18; }.empty-products > span { color: var(--accent-text); font-size: 38px; }.empty-products h2 { font-size: 34px; margin: 18px 0 10px; }.empty-products p { color: var(--text-muted); font-size: 13px; margin-bottom: 25px; }.shop-toast { position: fixed; z-index: 50; top: 85px; right: 25px; background: var(--ink); color: var(--cream); padding: 14px 18px; font-size: 12px; box-shadow: 0 10px 30px #55473d33; display: flex; gap: 9px; align-items: center; animation: slide .3s ease; }.shop-toast svg { width: 15px; color: var(--peach); }.filter-overlay { position: fixed; inset: 0; z-index: 40; background: #55473d55; }.filter-drawer { background: var(--cream); height: 100%; width: min(390px, 92vw); margin-left: auto; padding: 25px; overflow-y: auto; }.drawer-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }.drawer-head h2 { font-size: 32px; margin: 0; }.drawer-head button { border: 0; background: none; }.drawer-head svg { width: 20px; }.drawer-done { width: 100%; margin-top: 6px; }.detail-wrap { max-width: 1200px; margin: auto; padding: 50px 40px 130px; }.back-link { display: inline-flex; gap: 8px; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 50px; }.back-link:hover { color: var(--accent-text); }.back-link svg { width: 15px; }.detail-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 90px; align-items: center; }.detail-image { background: var(--sand); height: 570px; overflow: hidden; }.detail-image img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }.detail-copy h1 { font-size: clamp(48px, 6vw, 78px); line-height: .95; margin: 0 0 18px; }.detail-price { font-size: 18px; }.detail-description { color: var(--text-muted); font-size: 15px; line-height: 1.75; max-width: 410px; margin: 28px 0 32px; }.quantity-row { display: flex; justify-content: space-between; align-items: center; max-width: 410px; font-size: 12px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 16px 0; }.quantity-control { display: flex; align-items: center; gap: 17px; }.quantity-control button { border: 0; background: none; padding: 0; }.quantity-control svg { width: 14px; }.add-detail { border: 0; width: 100%; max-width: 410px; margin-top: 16px; }.product-specs { max-width: 410px; border-top: 1px solid var(--border); margin-top: 34px; padding-top: 17px; }.product-specs div { display: flex; justify-content: space-between; gap: 20px; padding: 8px 0; font-size: 11px; }.product-specs dt { color: var(--text-muted); }.product-specs dd { margin: 0; text-align: right; }.related-products { margin-top: 140px; }.related-products h2 { font-size: 44px; margin: 0 0 35px; }.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }.related-card img { width: 100%; height: 230px; object-fit: cover; mix-blend-mode: multiply; background: var(--sand); }.related-card > div { padding-top: 14px; display: grid; grid-template-columns: 1fr auto; gap: 7px; }.related-card span { grid-column: 1 / -1; text-transform: uppercase; color: var(--accent-text); font-size: 9px; letter-spacing: .1em; }.related-card h3 { font-family: Georgia, serif; font-size: 19px; font-weight: normal; margin: 0; }.related-card strong { font-size: 12px; }
@media (max-width: 800px) { .shop-header-inner { padding: 15px 22px; }.shop-header nav { display: none; }.catalog-hero { padding: 55px 22px 65px; }.hero-dots { padding-right: 0; font-size: 27px; }.catalog-layout { display: block; padding: 45px 22px 90px; }.catalog-layout > aside { display: none; }.catalog-toolbar { align-items: start; flex-direction: column; margin-bottom: 28px; }.toolbar-actions { width: 100%; justify-content: space-between; }.mobile-filter-button { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--border); background: none; padding: 9px 12px; font-size: 11px; }.mobile-filter-button svg { width: 14px; }.catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 14px; }.catalog-image { height: 190px; }.catalog-meta { display: block; }.catalog-meta h2 { font-size: 18px; }.catalog-meta strong { display: block; margin-top: 8px; }.catalog-actions a { display: none; }.detail-wrap { padding: 35px 22px 90px; }.detail-grid { grid-template-columns: 1fr; gap: 45px; }.detail-image { height: 360px; }.detail-copy h1 { font-size: 54px; }.related-products { margin-top: 90px; }.related-grid { grid-template-columns: 1fr 1fr; gap: 24px 14px; }.related-card:last-child { display: none; }.related-card img { height: 165px; }.related-products h2 { font-size: 36px; }.product-specs div { flex-direction: column; gap: 3px; }.product-specs dd { text-align: left; } }
@media (max-width: 420px) { .catalog-grid { grid-template-columns: 1fr; }.catalog-image { height: 280px; }.hero-dots { display: none; } }

/* Keep the existing card layout while making images and card whitespace navigable. */
.product-card, .catalog-card { cursor: pointer; }
.product-image-link { display: block; height: 100%; }
.product-image-link:focus-visible { outline-offset: -4px; }

/* Shared cart links retain the existing header icon treatment. */
.header-actions .cart-link, .shop-header .cart-link {
  position: relative; display: inline-grid; place-items: center;
  min-width: 44px; min-height: 44px; border-radius: 50%;
}
.cart-link svg { width: 19px; height: 19px; stroke-width: 1.7; }
.cart-link > span { position: absolute; right: 0; top: 0; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 20px; display: grid; place-items: center; background: var(--accent-text); color: var(--white); font-size: 10px; }
.catalog-card[hidden] { display: none !important; }
