/* Hedone catalogue: a continuous shop header and a product-led canvas. */
.catalogue-site-header .primary-nav a { position: relative; }
.catalogue-site-header .primary-nav .active::after { position: absolute; right: 0; bottom: -.5rem; left: 0; height: 1px; background: currentColor; content: ''; }
.luxury-catalogue { --catalogue-line: #dedbd5; --catalogue-muted: #706d67; --catalogue-paper: #faf9f6; min-height: calc(100vh - 5rem); padding-bottom: 0; background: var(--catalogue-paper); }
.luxury-catalogue *, .catalogue-drawer * { box-sizing: border-box; }
.luxury-catalogue svg, .catalogue-drawer svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.25; }
.catalogue-bar { position: relative; z-index: 6; display: flex; align-items: center; gap: 2rem; min-height: 3.75rem; padding: 0 2.5vw; border-bottom: 1px solid var(--catalogue-line); background: #f0eee8; }
.catalogue-bar h1 { flex: 0 0 auto; display: flex; align-items: center; gap: .65rem; margin: 0; padding-right: 2rem; border-right: 1px solid #d5d1c7; color: #514d44; font: 500 .65rem var(--sans); letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.catalogue-total { color: var(--catalogue-muted); font: .6rem var(--sans); letter-spacing: 0; }
.catalogue-categories { display: flex; align-self: stretch; align-items: stretch; gap: 1.65rem; min-width: 0; margin: 0 auto 0 0; overflow-x: auto; scrollbar-width: none; }
.catalogue-categories a { position: relative; display: flex; flex: 0 0 auto; align-items: center; color: var(--catalogue-muted); font-size: .72rem; text-decoration: none; white-space: nowrap; }
.catalogue-categories a:hover, .catalogue-categories .is-selected { color: #24241f; }
.catalogue-categories .is-selected::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: #24241f; content: ''; }
.catalogue-controls { display: flex; flex: 0 0 auto; align-items: center; gap: 1.7rem; }
.catalogue-view { display: flex; align-items: center; gap: .5rem; padding-right: 1.4rem; border-right: 1px solid var(--catalogue-line); }
.catalogue-view button, .catalogue-filter-trigger { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 2.75rem; border: 0; padding: 0; background: none; color: #24241f; font: .72rem var(--sans); cursor: pointer; }
.catalogue-view button { width: 1.8rem; color: #aaa69e; }
.catalogue-view button[aria-pressed="true"] { color: #24241f; }
.catalogue-view svg { fill: currentColor; stroke: none; width: 1rem; }
.catalogue-sort { position: relative; }
.catalogue-sort summary { display: flex; align-items: center; gap: .7rem; min-height: 2.75rem; font-size: .72rem; list-style: none; cursor: pointer; }
.catalogue-sort summary::-webkit-details-marker { display: none; }
.catalogue-sort svg { width: .8rem; }
.catalogue-sort nav { position: absolute; top: calc(100% + .4rem); right: -.8rem; z-index: 7; min-width: 13rem; border: 1px solid var(--catalogue-line); padding: .5rem 0; background: var(--catalogue-paper); box-shadow: 0 .6rem 1.5rem #24241f0c; }
.catalogue-sort a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; color: #24241f; font-size: .72rem; text-decoration: none; }
.catalogue-sort a:hover, .catalogue-sort a[aria-current="true"] { background: #eceae3; }
.catalogue-filter-number { display: grid; place-items: center; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #24241f; color: white; font-size: .6rem; }
.catalogue-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: 1rem 2.5vw 0; }
.catalogue-line-intro { margin: 0; padding: 1.1rem 2.5vw 0; color: var(--catalogue-muted); font: .75rem/1.7 var(--sans); max-width: 68rem; }
.catalogue-line-intro strong { color: #24241f; font-weight: 500; margin-right: .6rem; }
.catalogue-active-filters a { display: inline-flex; align-items: center; gap: 1rem; border: 1px solid var(--catalogue-line); padding: .45rem .75rem; color: #48453f; font-size: .65rem; text-decoration: none; }
.catalogue-active-filters .catalogue-clear { border: 0; padding-inline: .4rem; text-decoration: underline; text-underline-offset: .25rem; }
.catalogue-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 1.15rem; padding: 1.6rem 2.5vw 0; }
.luxury-catalogue[data-view="2"] .catalogue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalogue-piece { min-width: 0; }
.catalogue-piece-link { display: block; color: #24241f; text-decoration: none; }
.catalogue-piece-image { position: relative; display: grid; place-items: center; height: min(32rem, 51svh); min-height: 14rem; overflow: hidden; background: #efede7; }
.catalogue-piece-image > img { width: 100%; height: 100%; min-height: 0; object-fit: contain; transition: transform .65s ease, opacity .45s ease; }
.catalogue-piece-image .catalogue-piece-alternate { position: absolute; inset: 0; opacity: 0; }
.catalogue-piece-badge { position: absolute; top: .9rem; left: .9rem; padding: .4rem .6rem; background: #faf9f6ed; color: #514d46; font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.catalogue-piece-link:hover .catalogue-piece-image > img, .catalogue-piece-link:focus-visible .catalogue-piece-image > img { transform: scale(1.025); }
.catalogue-piece-link:hover .catalogue-piece-alternate, .catalogue-piece-link:focus-visible .catalogue-piece-alternate { opacity: 1; }
.catalogue-piece-copy { padding: 1.05rem .1rem 0; }
.catalogue-piece-copy > p:first-child { min-height: .7rem; margin: 0 0 .55rem; color: var(--catalogue-muted); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; }
.catalogue-piece-name { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; }
.catalogue-piece-name h2 { margin: 0; font-size: clamp(1.05rem, 1.35vw, 1.4rem); letter-spacing: -.03em; line-height: 1.25; }
.catalogue-piece-name > span { font-size: .85rem; }
.catalogue-piece-price { display: block; margin-top: .6rem; font-size: .72rem; }
.catalogue-piece-price > span { margin-left: .3rem; color: var(--catalogue-muted); font-size: .6rem; }
.catalogue-piece-sizes { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; color: #54514b; font-size: .6rem; }
.catalogue-piece-sizes > span:first-child { margin-right: .4rem; color: var(--catalogue-muted); }
.catalogue-piece-sizes .is-unavailable { color: #8a867d; text-decoration: line-through; }
.catalogue-piece-arrival { margin: .6rem 0 0; color: var(--catalogue-muted); font-size: .65rem; }
.catalogue-end { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin: 3.5rem 2.5vw 0; border-top: 1px solid var(--catalogue-line); padding: 1.3rem 0; color: var(--catalogue-muted); font-size: .65rem; }
.catalogue-end nav { display: flex; align-items: center; gap: 1.5rem; }
.catalogue-end a { color: #24241f; text-underline-offset: .3rem; }
.catalogue-eyebrow { color: #6c675d; font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }
.catalogue-empty { display: grid; justify-items: center; align-content: center; min-height: 45svh; padding: 3rem 1.5rem; text-align: center; }
.catalogue-empty h2 { margin: 1rem 0; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.045em; }
.catalogue-empty p { max-width: 25rem; color: var(--catalogue-muted); font-size: .8rem; line-height: 1.8; }
.catalogue-empty a { margin-top: 1rem; border-bottom: 1px solid currentColor; padding-bottom: .5rem; color: #24241f; font-size: .7rem; text-decoration: none; }
.catalogue-drawer { --catalogue-line: #dedbd5; position: fixed; inset: 0 0 0 auto; width: min(100%, 30rem); max-width: none; height: 100dvh; max-height: none; margin: 0; border: 0; padding: 0; overflow: hidden; background: #faf9f6; color: #24241f; }
.catalogue-drawer[open] { display: flex; flex-direction: column; animation: catalogue-slide-in .25s ease-out; }
.catalogue-drawer::backdrop { background: #24241f55; backdrop-filter: blur(3px); }
html:has(.catalogue-drawer[open]) { overflow: hidden; }
.catalogue-drawer-heading { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--catalogue-line); padding: 1.8rem 2rem; }
.catalogue-drawer-heading h2 { margin: .65rem 0 0; font-size: 1.9rem; letter-spacing: -.04em; }
.catalogue-drawer-heading button { display: grid; place-items: center; flex: 0 0 auto; width: 2.75rem; height: 2.75rem; border: 0; background: none; color: #24241f; cursor: pointer; }
.catalogue-filter-form { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.catalogue-filter-fields { flex: 1; padding: 0 2rem; overflow-y: auto; overscroll-behavior: contain; }
.catalogue-filter-fields fieldset, .catalogue-filter-fields > label { display: block; min-width: 0; margin: 0; border: 0; border-bottom: 1px solid var(--catalogue-line); padding: 1.5rem 0; }
.catalogue-filter-fields legend { float: none; width: auto; margin: 0 0 1.1rem; padding: 0; font-size: .75rem; font-weight: 500; }
.catalogue-search { font-size: .75rem; }
.catalogue-search > span { display: flex; align-items: center; gap: .8rem; margin-top: .8rem; border-bottom: 1px solid #a39c90; }
.catalogue-search input { width: 100%; min-width: 0; border: 0; padding: .8rem 0; background: none; color: inherit; font: .8rem var(--sans); }
.catalogue-search svg { flex-shrink: 0; }
.catalogue-choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.catalogue-choice-list label, .catalogue-stock-choice { display: flex; align-items: center; gap: .6rem; font-size: .75rem; cursor: pointer; }
.catalogue-drawer input[type="radio"], .catalogue-drawer input[type="checkbox"] { width: .9rem; height: .9rem; margin: 0; accent-color: #31352e; }
.catalogue-size-choices { display: flex; flex-wrap: wrap; gap: .6rem; }
.catalogue-size-choices label { position: relative; cursor: pointer; }
.catalogue-size-choices input { position: absolute; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; cursor: pointer; }
.catalogue-size-choices span { display: grid; place-items: center; min-width: 2.7rem; min-height: 2.6rem; border: 1px solid var(--catalogue-line); padding: .5rem .7rem; font-size: .7rem; }
.catalogue-size-choices input:checked + span { border-color: #31352e; background: #31352e; color: #faf9f6; }
.catalogue-size-choices input:focus-visible + span { outline: 2px solid #8b7857; outline-offset: 3px; }
.catalogue-select-label { display: grid; gap: .8rem; color: #555148; font-size: .7rem; }
.catalogue-select-label select, .catalogue-price-fields input { display: block; width: 100%; min-height: 2.7rem; border: 1px solid var(--catalogue-line); border-radius: 0; padding: .6rem .75rem; background: transparent; color: #24241f; font: .75rem var(--sans); }
.catalogue-price-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.catalogue-price-fields label { display: grid; gap: .5rem; color: #555148; font-size: .65rem; }
.catalogue-filter-note { margin: .7rem 0 0; color: #706d67; font-size: .6rem; line-height: 1.65; }
.catalogue-drawer-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1.5rem; border-top: 1px solid var(--catalogue-line); padding: 1.25rem 2rem; padding-bottom: max(1.25rem, env(safe-area-inset-bottom)); }
.catalogue-drawer-actions a { flex: 0 0 auto; color: #555148; font-size: .7rem; text-underline-offset: .3rem; }
.catalogue-drawer-actions button { display: flex; flex: 1; align-items: center; justify-content: space-between; min-height: 3.1rem; border: 1px solid #31352e; padding: .7rem 1.2rem; background: #31352e; color: #faf9f6; font: .75rem var(--sans); cursor: pointer; }
.catalogue-drawer-actions button:hover { background: #484c42; }
.luxury-catalogue :focus-visible, .catalogue-drawer :focus-visible { outline: 2px solid #8b7857; outline-offset: 4px; }
@keyframes catalogue-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@media (max-width: 1100px) {
    .catalogue-bar { gap: 1.5rem; }
    .catalogue-controls { gap: 1.2rem; }
    .catalogue-view { display: none; }
    .catalogue-categories { gap: 1.1rem; }
    .catalogue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .catalogue-bar { flex-wrap: wrap; gap: 0; min-height: 3.75rem; padding: .5rem 1.25rem 0; }
    .catalogue-bar h1 { flex: 1; border-right: 0; padding-right: .75rem; font-size: .6rem; }
    .catalogue-controls { gap: 1rem; }
    .catalogue-categories { order: 3; flex-basis: 100%; gap: 1.5rem; height: 2.8rem; margin-top: .3rem; }
    .catalogue-grid, .luxury-catalogue[data-view="2"] .catalogue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem .75rem; padding: 1.1rem 1.25rem 0; }
    .catalogue-piece-image { height: auto; min-height: 0; aspect-ratio: 3 / 4; }
    .catalogue-piece-badge { top: .5rem; left: .5rem; padding: .3rem .4rem; font-size: .48rem; }
    .catalogue-piece-copy { padding-top: .8rem; }
    .catalogue-piece-name h2 { font-size: 1.05rem; }
    .catalogue-piece-price { font-size: .65rem; }
    .catalogue-piece-copy > p:first-child { font-size: .5rem; }
    .catalogue-piece-sizes { gap: .45rem; font-size: .55rem; }
    .catalogue-piece-sizes > span:first-child { flex-basis: 100%; }
    .catalogue-active-filters { padding-inline: 1.25rem; }
    .catalogue-end { margin: 2.5rem 1.25rem 0; flex-wrap: wrap; }
                .catalogue-drawer-heading { padding: 1.5rem; }
    .catalogue-drawer-heading h2 { font-size: 1.65rem; }
    .catalogue-filter-fields { padding-inline: 1.5rem; }
    .catalogue-drawer-actions { padding-inline: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .catalogue-piece-image img { transition: none; }
    .catalogue-drawer[open] { animation: none; }
}

/* Footer shares the catalogue margins and gives every item a defined role. */
.catalogue-footer { padding: 0 2.5vw; border-top: 1px solid #dcd8cf; background: #eeece5; color: #39372f; }
.catalogue-footer-main { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 5vw; padding: 3rem 0 1.25rem; }
.catalogue-footer-brand > a:first-child { color: #2d2c27; font: 500 2rem var(--display); letter-spacing: .15em; text-decoration: none; }
.catalogue-footer-brand p { margin: 1.1rem 0 0; color: #6b675e; font-size: .72rem; line-height: 1.9; }
.catalogue-footer-links { display: flex; align-items: flex-start; flex-direction: column; gap: .8rem; padding-top: .35rem; }
.catalogue-footer-links h2 { margin: 0 0 .7rem; color: #514c42; font: 500 .6rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.catalogue-footer-links a { color: #625d53; font-size: .72rem; text-decoration: none; }
.catalogue-footer a:hover { color: #24241f; text-decoration: underline; text-underline-offset: .3rem; }
.catalogue-footer-bottom { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 1rem; min-height: 3rem; border-top: 1px solid #d6d1c6; color: #777064; font-size: .6rem; }
.catalogue-footer-origin { justify-self: center; }
.catalogue-footer-bottom a { display: inline-flex; align-items: center; justify-self: end; gap: .8rem; color: #625d53; text-decoration: none; }
.catalogue-footer :focus-visible { outline: 2px solid #8b7857; outline-offset: 4px; }
@media (max-width: 760px) {
    .catalogue-footer { padding-inline: 1.25rem; }
    .catalogue-footer-main { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.5rem; padding: 2.25rem 0 1.25rem; }
    .catalogue-footer-brand { grid-column: 1 / -1; }
    .catalogue-footer-brand > a:first-child { font-size: 1.8rem; }
    .catalogue-footer-bottom { grid-template-columns: 1fr auto; gap: .8rem; padding: 1rem 0; }
    .catalogue-footer-origin { grid-column: 1; grid-row: 2; justify-self: start; }
    .catalogue-footer-bottom a { grid-column: 2; grid-row: 1 / 3; }
}
