.piece-detail-page {
    background: radial-gradient(ellipse at 30% 15%, #fcfaf5, #f8f6ef 75%);
    --gutter: clamp(1.25rem, 5.7vw, 5rem);
}
.piece-detail { padding: 0 var(--gutter) 1.25rem; }
.piece-breadcrumbs { padding-block: 1.1rem 1.2rem; font-size: .76rem; line-height: 1.6; }
.piece-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .45em .8em; padding: 0; margin: 0; list-style: none; }
.piece-breadcrumbs li + li::before { content: "/"; margin-right: .8em; color: var(--muted); }
.piece-breadcrumbs a:hover { color: var(--bronze); text-decoration: underline; text-underline-offset: .25em; }
.piece-overview { display: grid; grid-template-columns: minmax(0, 1.47fr) minmax(0, 1fr); align-items: start; gap: clamp(1.75rem, 3.2vw, 3rem); }
.piece-gallery { min-width: 0; }
.piece-gallery__image { position: relative; display: block; overflow: hidden; background: #9c8975; cursor: zoom-in; }
.piece-gallery__image > img { width: 100%; height: auto; aspect-ratio: 535 / 530; object-fit: cover; }
.piece-gallery__frame { position: relative; }
.piece-gallery__image { aspect-ratio: 535 / 530; }
.piece-gallery__image > img { position: absolute; top: 0; left: 0; max-width: none; height: 100%; transform-origin: 0 0; will-change: transform; user-select: none; -webkit-user-drag: none; }
.piece-gallery__image.is-zoomed { cursor: grab; touch-action: none; }
.piece-gallery__image.is-panning { cursor: grabbing; }
.piece-zoom { position: absolute; left: .85rem; bottom: .85rem; z-index: 2; display: flex; align-items: center; gap: .5rem; padding: .3rem .6rem; border: 1px solid #f8f4e8cc; border-radius: 999px; color: #fffdf4; background: #392b20b0; }
.piece-zoom[hidden] { display: none; }
.piece-zoom__button { width: 1.6rem; height: 1.6rem; padding: 0; border: 0; border-radius: 50%; color: inherit; font: inherit; font-size: 1.2rem; line-height: 1; background: transparent; cursor: pointer; }
.piece-zoom__button:hover { background: #ffffff30; }
.piece-zoom__range { width: min(9rem, 28vw); accent-color: #d8b878; cursor: pointer; }
.piece-zoom button:focus-visible, .piece-zoom input:focus-visible { outline: 2px solid #d8b878; outline-offset: 2px; }
.piece-gallery__zoom { position: absolute; right: .85rem; bottom: .85rem; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid #f8f4e8cc; border-radius: 50%; color: #fffdf4; background: #392b2070; }
.piece-gallery__zoom .icon { width: 1.4rem; height: 1.4rem; }
.piece-gallery__thumbnails { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; margin-top: .45rem; }
.piece-gallery__thumbnail { display: block; min-width: 0; padding: 2px; border: 1px solid transparent; }
.piece-gallery__thumbnail[aria-current="true"] { border-color: var(--bronze); }
.piece-gallery__thumbnail img { width: 100%; height: auto; aspect-ratio: 1.1; object-fit: cover; }
.piece-gallery__thumbnail:hover { border-color: var(--bronze); }
.piece-summary { padding-top: .1rem; }
.piece-summary .eyebrow { font-size: clamp(.62rem, 1.05vw, .82rem); letter-spacing: .13em; }
.piece-summary h1 { margin: .3em 0 .2em; font-size: clamp(2.4rem, 3.9vw, 4rem); line-height: 1.02; letter-spacing: -.035em; }
.piece-summary__origin { margin-bottom: .55rem; font-family: var(--heading); font-size: clamp(1.4rem, 2.3vw, 2.15rem); font-weight: 500; line-height: 1.25; }
.piece-summary__reference { margin-bottom: 0; font: .76rem/1.6 Arial, sans-serif; color: #5f605c; }
.piece-summary__rule { width: 2.5rem; height: 1px; margin-block: 1.15rem; background: var(--bronze); }
.piece-summary__intro { margin-bottom: 1.25rem; color: #3c3d39; font-size: clamp(.85rem, 1.32vw, 1.05rem); line-height: 1.65; }
.piece-facts { margin: 0; color: #3d3e39; font-size: clamp(.8rem, 1.3vw, 1rem); line-height: 1.6; }
.piece-facts > div { display: grid; grid-template-columns: minmax(5.25rem, .46fr) minmax(0, 1fr); gap: .75rem; margin-bottom: .1rem; }
.piece-facts dt, .piece-facts dd { margin: 0; }
.piece-facts dd a:hover { color: var(--bronze); text-decoration: underline; text-underline-offset: .25em; }
.piece-summary__description { margin-top: 1.8rem; padding-top: 1rem; border-top: 1px solid #bda689; }
.piece-summary__subtitle { margin: 1.1rem 0 .5rem; font-family: var(--heading); font-size: 1.25rem; font-weight: 500; }
.piece-summary__description .piece-summary__intro:last-child { margin-bottom: 0; }
.piece-enquire { margin-top: 1.8rem; padding-top: 1rem; border-top: 1px solid #bda689; }
.piece-enquire__price { margin-bottom: .6rem; font-family: var(--heading); font-size: clamp(1.8rem, 2.6vw, 2.6rem); font-weight: 500; line-height: 1.2; letter-spacing: -.025em; }
.piece-enquire > .button, .piece-contact .button { display: flex; width: 100%; min-height: 2.9rem; padding: .55rem .75rem; border-radius: 2px; font-size: clamp(.85rem, 1.4vw, 1.12rem); }
.piece-enquire > .button + .button { margin-top: .7rem; }
.piece-enquire > .button .icon { width: 1.7rem; height: 1.7rem; }
.piece-button--outline { color: #51412d; border-color: var(--bronze); background: transparent; }
.piece-button--outline:hover { background: #ede5d6; }
.piece-enquire__note { margin-top: .9rem; color: #5f605c; font: .73rem/1.6 Arial, sans-serif; }
.piece-visit { margin-top: 1.25rem; font-size: clamp(.8rem, 1.3vw, 1rem); }
.piece-information { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(2rem, 6.5vw, 5rem); align-items: start; margin-top: 2rem; }
.piece-about, .piece-contact { min-width: 0; }
.piece-about > h2 { margin-bottom: .55rem; font-size: clamp(2rem, 2.75vw, 2.8rem); line-height: 1.15; letter-spacing: -.035em; }
.piece-tabs__list { display: flex; border-bottom: 1px solid var(--line); }
.piece-tabs__list a { display: flex; justify-content: center; align-items: center; min-height: 2.75rem; padding: .65rem 1rem; border-bottom: 3px solid transparent; margin-bottom: -1px; color: #4b4c47; font-size: clamp(.75rem, 1.25vw, .95rem); white-space: nowrap; }
.piece-tabs__list a:hover { color: var(--bronze); }
.piece-tabs__list [aria-selected="true"] { border-bottom-color: #6f5737; color: var(--ink); }
.piece-tab-panel { padding-top: 1.45rem; color: #3d3e39; font-size: clamp(.85rem, 1.3vw, 1.02rem); line-height: 1.65; scroll-margin-top: 2rem; }
.piece-tab-panel p { margin-bottom: 1.1rem; }
.piece-tab-panel > :last-child { margin-bottom: 0; }
.piece-tab-panel__title { margin-bottom: .75rem; font-size: 1.5rem; }
.piece-tabs.is-ready .piece-tab-panel__title { display: none; }
.piece-contact { margin-top: 1rem; padding: 1.1rem 1.2rem 1.2rem; border: 1px solid #e0d3c1; border-radius: 2px; background: #f4f0e733; }
.piece-contact h2 { margin-bottom: .75rem; font-size: clamp(1.65rem, 2.25vw, 2.1rem); line-height: 1.15; letter-spacing: -.025em; }
.piece-contact textarea { display: block; width: 100%; min-height: 5rem; max-height: 18rem; resize: vertical; padding: .6rem .7rem; margin-bottom: .75rem; border: 1px solid #e0d3c1; border-radius: 3px; color: #43443f; background: #fffefa; font: .76rem/1.6 Arial, sans-serif; }
.piece-contact .button { min-height: 2.65rem; font-size: clamp(.8rem, 1.25vw, 1rem); }
.piece-contact .button .icon { width: 1.5rem; height: 1.5rem; }
.piece-related { margin-top: 3.25rem; }
.piece-related__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; margin-bottom: .8rem; }
.piece-related__heading h2 { margin: 0; font-size: clamp(1.85rem, 2.4vw, 2.5rem); line-height: 1.15; letter-spacing: -.025em; }
.piece-related__heading > a { flex: 0 0 auto; font-size: .76rem; }
.piece-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.piece-related .piece-card__image { aspect-ratio: 1.7; }
.piece-related .piece-card__image img { height: 100%; object-fit: cover; object-position: center 12%; }
.piece-related .piece-card__body { padding: .5rem 0 0; }
.piece-related .piece-card__type { margin-bottom: .1rem; font-size: .6rem; letter-spacing: .12em; }
.piece-related .piece-card h3 { margin-bottom: .15rem; font-size: clamp(1.2rem, 1.8vw, 1.8rem); line-height: 1.1; }
.piece-related .piece-card__origin { margin-bottom: .35rem; font-size: .72rem; line-height: 1.6; }
.piece-related .piece-card .text-link { font-size: .8rem; }
.piece-lightbox { width: min(62rem, calc(100% - 2rem)); max-height: calc(100svh - 2rem); padding: .75rem 1rem; overflow: auto; }
.piece-lightbox__heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.piece-lightbox .piece-lightbox__heading h2 { margin: 0; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1.15; }
.piece-lightbox__heading .icon-button { flex: 0 0 auto; }
.piece-lightbox__stage { display: grid; place-items: center; min-height: 8rem; }
.piece-lightbox__stage img { width: auto; height: auto; max-height: calc(100svh - 13rem); object-fit: contain; }
.piece-lightbox__controls { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: .5rem; }
.piece-lightbox .piece-lightbox__controls p { margin: 0; text-align: center; font-size: .8rem; line-height: 1.5; }
.piece-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

@media (max-width: 1000px) and (min-width: 761px) {
    .piece-detail-page { --gutter: 2rem; }
    .piece-overview { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.5rem; }
    .piece-summary h1 { font-size: 2.5rem; }
    .piece-facts > div { grid-template-columns: 5rem minmax(0, 1fr); gap: .5rem; }
    .piece-information { gap: 1.75rem; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
    .piece-tabs__list a { padding-inline: .75rem; }
}
@media (max-width: 760px) {
    .piece-detail-page { --gutter: 1.5rem; }
    .piece-breadcrumbs { padding-block: 1rem; font-size: .7rem; }
    .piece-overview { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
    .piece-gallery__thumbnail { padding: 2px; }
    .piece-summary h1 { max-width: 16em; font-size: clamp(2.65rem, 8vw, 3.5rem); }
    .piece-summary .eyebrow { font-size: .68rem; }
    .piece-summary__origin { font-size: 1.65rem; }
    .piece-summary__intro { font-size: .95rem; }
    .piece-summary__reference { font-size: .8rem; }
    .piece-facts { font-size: .88rem; }
    .piece-facts > div { grid-template-columns: minmax(5rem, .4fr) minmax(0, 1fr); margin-bottom: .3rem; }
    .piece-enquire { margin-top: 1.4rem; }
    .piece-enquire__price { font-size: 2rem; }
    .piece-enquire > .button { min-height: 3.25rem; font-size: .95rem; }
    .piece-enquire__note { font-size: .75rem; }
    .piece-visit { margin-top: .75rem; font-size: .85rem; }
    .piece-information { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; margin-top: 2.25rem; }
    .piece-about > h2 { font-size: 2.25rem; }
    .piece-tabs__list { justify-content: space-between; }
    .piece-tabs__list a { flex: 1 1 auto; min-height: 3rem; padding: .65rem .25rem; font-size: .75rem; }
    .piece-tab-panel { font-size: .9rem; line-height: 1.75; padding-top: 1.25rem; }
    .piece-contact { margin-top: 0; padding: 1.25rem; }
    .piece-contact h2 { font-size: 1.9rem; }
    .piece-contact textarea { min-height: 6rem; font-size: .85rem; }
    .piece-contact .button { min-height: 3.1rem; font-size: .9rem; }
    .piece-related { margin-top: 2.5rem; }
    .piece-related__heading { flex-direction: column; align-items: flex-start; gap: .5rem; margin-bottom: 1rem; }
    .piece-related__heading h2 { font-size: 2rem; }
    .piece-related__heading > a { min-height: 2.75rem; font-size: .8rem; }
    .piece-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem .85rem; }
    .piece-related .piece-card__image { aspect-ratio: 1; }
    .piece-related .piece-card__body { padding-top: .65rem; }
    .piece-related .piece-card__type { min-height: 1.5em; font-size: .55rem; }
    .piece-related .piece-card h3 { font-size: 1.3rem; line-height: 1.1; }
    .piece-related .piece-card__origin { font-size: .68rem; }
    .piece-related .piece-card .text-link { font-size: .75rem; }
}
@media (max-width: 360px) {
    .piece-detail-page { --gutter: 1.1rem; }
    .piece-tabs__list a { font-size: .67rem; }
    .piece-contact { padding: 1rem; }
    .piece-related .piece-card h3 { font-size: 1.15rem; }
}

.piece-gallery__empty { display: flex; min-height: 18rem; align-items: center; justify-content: center; padding: 1.5rem; background: #e6dfd2; color: #6b5d49; text-align: center; }
