/* Bookshelf rhythm: art keeps its own shape; thumbnails share a baseline. */
.thorn3-bag { width: var(--thorn3-control-height); justify-content: center; }
.thorn3-home-hero { width: 100%; background: #57575a; color: #fff; }
.thorn3-home-hero .thorn3-slideshow { position: relative; width: 100%; min-width: 0; overflow: hidden; }
.thorn3-home-hero .thorn3-slide { position: relative; display: grid; place-items: center; isolation: isolate; width: 100%; min-height: clamp(24rem,40vw,34rem); padding: 3.5rem var(--thorn3-gutter) 5rem; }
.thorn3-home-hero .thorn3-slide::before { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgba(21,21,25,.56),rgba(21,21,25,.42)); }
.thorn3-home-hero .thorn3-slide-image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.thorn3-home-hero .thorn3-slide-3 .thorn3-slide-image { object-position: center 68%; transform: scaleX(-1); }
.thorn3-home-hero .thorn3-slide-copy { position: relative; z-index: 2; width: min(100%,72rem); text-align: center; color: #fff; text-shadow: 0 2px 10px #1119; }
.thorn3-home-hero .thorn3-slide h2 { max-width: none; margin: 0 0 1rem; padding: 0; color: #fff; font-size: clamp(2rem,4.2vw,4.25rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.08; text-transform: uppercase; }
.thorn3-home-hero .thorn3-slide p { max-width: 58rem; margin: 0 auto 1.75rem; color: #fff; font-size: clamp(1rem,1.55vw,1.35rem); font-weight: 600; line-height: 1.45; }
.thorn3-home-hero .thorn3-slide-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: .65rem 1.4rem; border: 2px solid #fff; border-radius: 8px; background: #19191c30; color: #fff; font-size: clamp(1rem,1.5vw,1.25rem); font-weight: 700; line-height: 1.2; text-decoration: none; text-shadow: none; }
.thorn3-home-hero .thorn3-slide-button:hover { background: #fff; border-color: #fff; color: #171719 !important; text-decoration: none; }
.thorn3-home-hero .thorn3-slideshow-controls { position: absolute; bottom: .5rem; left: 50%; z-index: 2; display: flex; justify-content: center; align-items: center; gap: .15rem; transform: translateX(-50%); color: #fff; }
.thorn3-home-hero .thorn3-slideshow-controls button { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: .35rem; border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer; font-size: 1.25rem; line-height: 1; }
.thorn3-home-hero .thorn3-slideshow-controls button:hover, .thorn3-home-hero .thorn3-slideshow-controls button:focus-visible { background: #1119; color: #fff; }
.thorn3-home-hero .thorn3-slide-dots { display: flex; align-items: center; }
.thorn3-home-hero .thorn3-slide-dots button::after { content: ''; display: block; width: 9px; height: 9px; border-radius: 50%; background: #fffa; }
.thorn3-home-hero .thorn3-slide-dots button[aria-pressed="true"]::after { width: 11px; height: 11px; background: #fff; }
.thorn3-collection { padding-top: var(--thorn3-space-6); }
.thorn3-gallery-heading { padding-top: clamp(2rem,4vw,4rem); padding-bottom: 0; }
.thorn3-gallery-heading + .thorn3-filter { padding-top: 0; }
.thorn3-filter a { text-decoration: none; padding-inline: var(--thorn3-space-3); }
.thorn3-filter a[aria-current] { color: var(--thorn3-paper); background: var(--thorn3-ink); }
.thorn3-shelf { clear: both; position: relative; min-width: 0; overflow-x: hidden; }
.thorn3-shelf-controls { display: flex; justify-content: flex-end; align-items: center; gap: var(--thorn3-space-3); margin-bottom: var(--thorn3-space-4); }
.thorn3-shelf-controls button { width: 44px; height: 44px; border: 1px solid var(--thorn3-line); border-radius: 50%; background: transparent; color: var(--thorn3-ink); cursor: pointer; }
.thorn3-shelf-controls button:hover:not(:disabled) { color: var(--thorn3-gold); background: var(--thorn3-ink); }
.thorn3-shelf-controls button:disabled { opacity: .35; cursor: default; }
.thorn3-shelf-track, .thorn3-site .woocommerce ul.products.thorn3-shelf-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 6rem)/4); gap: 2rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 4px; padding: 8px 4px 28px; margin: 0; list-style: none; scrollbar-width: thin; scrollbar-color: var(--thorn3-muted) transparent; }
.thorn3-site .woocommerce ul.products.thorn3-shelf-track::before, .thorn3-site .woocommerce ul.products.thorn3-shelf-track::after { display: none; }
.thorn3-shelf-card, .thorn3-site .woocommerce ul.products.thorn3-shelf-track li.product { scroll-snap-align: start; float: none; width: auto; margin: 0; min-width: 0; display: flex; flex-direction: column; align-items: stretch; }
.thorn3-shelf-art, .thorn3-site .woocommerce ul.products li.product .thorn3-shelf-art { display: flex; justify-content: center; align-items: end; height: 280px; padding: 0 0 20px; border-bottom: 1px solid var(--thorn3-line); text-decoration: none; }
.thorn3-shelf-art img, .thorn3-site .woocommerce ul.products li.product .thorn3-shelf-art img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; aspect-ratio: auto; background: transparent; border-radius: 1px; margin: 0; box-shadow: 0 8px 12px -9px #11100e88; }
.thorn3-shelf-card h2, .thorn3-site .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.125rem; line-height: 1.35; letter-spacing: -.02em; margin: 16px 0 6px; padding: 0; }
.thorn3-shelf-card h2 a { text-decoration: none; }
.thorn3-shelf-card p { margin-bottom: 8px; }
.thorn3-shelf-caption { font-size: 12px; color: var(--thorn3-muted); }
.thorn3-site .woocommerce ul.products.thorn3-shelf-track li.product .button { align-self: start; margin-top: auto; font-size: 14px; padding: 10px 14px; }
.thorn3-site .woocommerce ul.products.thorn3-shelf-track li.product .price { margin-bottom: 16px; }
.thorn3-site .woocommerce ul.products.thorn3-shelf-track li.product .button::after { display: none; }
/* Gold is a signal on dark surfaces; light-surface links use the accessible action blue. */
body.thorn3-site .thorn3-dark a:hover { color: var(--thorn3-gold); }
@media (max-width: 63.99rem) { .thorn3-shelf-track, .thorn3-site .woocommerce ul.products.thorn3-shelf-track { grid-auto-columns: calc((100% - 4rem)/3); } .thorn3-shelf-art, .thorn3-site .woocommerce ul.products li.product .thorn3-shelf-art { height: 230px; } }
@media (max-width: 47.99rem) { .thorn3-shelf-track, .thorn3-site .woocommerce ul.products.thorn3-shelf-track { grid-auto-columns: 68%; gap: 1.5rem; } .thorn3-shelf-art, .thorn3-site .woocommerce ul.products li.product .thorn3-shelf-art { height: 270px; } .thorn3-home-hero .thorn3-slide { min-height: 25rem; padding-block: 3rem 4.75rem; } .thorn3-home-hero .thorn3-slide h2 { font-size: clamp(1.8rem,8vw,2.6rem); } }
