:root {
  --ink: #0d0e0d;
  --ink-2: #171917;
  --paper: #f1ede3;
  --paper-2: #d8d0c0;
  --gold: #c8a04b;
  --gold-light: #ead49a;
  --line: rgba(200, 160, 75, 0.42);
  --muted: #a7a498;
  --max: 1440px;
  --serif: "Cormorant Garamond", Georgia, serif;
  --display: "Italiana", Georgia, serif;
  --sans: "Inter", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--paper); background: var(--ink); font-family: var(--sans); line-height: 1.6; overflow-x: clip; }
img { display: block; width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--gold-light); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: fixed; left: 1rem; top: 0; transform: translateY(-150%); z-index: 1000; padding: .7rem 1rem; color: var(--ink); background: var(--gold-light); font-weight: 700; }
.skip-link:focus { top: 1rem; transform: none; }
.site-header.not-found-header { position: relative; }
.not-found-main { padding: clamp(2rem, 6vw, 5rem) max(1.25rem, 5vw); }
.not-found-main .hero-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.not-found-main .button { max-width: 100%; white-space: normal; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; min-height: 82px; padding: .65rem clamp(1rem, 3vw, 3.5rem); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(1rem, 3vw, 3rem); background: linear-gradient(180deg, rgba(8,9,8,.98), rgba(8,9,8,.88)); border-bottom: 1px solid rgba(200,160,75,.24); backdrop-filter: blur(16px); transition: min-height .25s ease, background .25s ease; }
.site-header.compact { min-height: 68px; background: rgba(8,9,8,.97); }
.brand-lockup { min-width: 225px; display: flex; align-items: center; gap: .75rem; text-decoration: none; }
.brand-lockup strong, .brand-lockup small { display: block; }
.brand-lockup strong { font: 600 1rem/1.05 var(--serif); letter-spacing: .07em; text-transform: uppercase; }
.brand-lockup small { margin-top: .12rem; color: var(--gold); font: 500 .68rem/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; }
.rr-logo-crop { position: relative; display: block; flex: 0 0 52px; width: 52px; height: 52px; overflow: hidden; }
.rr-logo-crop img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.deb-crop { position: relative; display: block; flex: 0 0 58px; width: 58px; height: 50px; overflow: hidden; }
.deb-crop img { position: absolute; width: 239px; max-width: none; left: -11px; top: -15px; }
.site-nav { display: flex; justify-content: center; gap: clamp(.8rem, 2vw, 2rem); }
.site-nav a { position: relative; padding: .55rem 0; color: #f4f1e9; font-size: .73rem; font-weight: 600; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.site-nav a::after { content: ""; position: absolute; inset: auto 50% 0; height: 1px; background: var(--gold); transition: inset .2s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { inset-inline: 0; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; }
.header-line { color: var(--gold); font: italic 1rem/1 var(--serif); white-space: nowrap; }
.menu-button { display: none; }
.site-header.needs-menu { grid-template-columns:minmax(0,1fr) 48px; }
.site-header.needs-menu .header-actions { display:none; }
.site-header.needs-menu .menu-button { display:grid; width:48px; height:48px; place-content:center; gap:5px; color:white; background:transparent; border:1px solid rgba(200,160,75,.45); }
.site-header.needs-menu .menu-button > span:not(.sr-only) { width:22px; height:1px; background:currentColor; }
.site-header.needs-menu .menu-button[aria-expanded="true"] > span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.site-header.needs-menu .menu-button[aria-expanded="true"] > span:nth-child(2) { opacity:0; }
.site-header.needs-menu .menu-button[aria-expanded="true"] > span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
.site-header.needs-menu .site-nav { position:absolute; inset:100% 0 auto; display:none; padding:.7rem 1rem 1.3rem; flex-direction:column; gap:0; background:rgba(8,9,8,.98); border-bottom:1px solid var(--line); }
.site-header.needs-menu .site-nav.open { display:flex; }
.site-header.needs-menu .site-nav a { min-height:46px; display:flex; align-items:center; }

main { padding-top: 82px; }
section { scroll-margin-top: 78px; }
.section-dark, .section-ink { background: var(--ink); }
.section-paper { color: #24251f; background: var(--paper); }
.eyebrow { margin: 0 0 .8rem; color: var(--gold); font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.section-paper .eyebrow, .story-feature .eyebrow { color: #795c25; }
.maker-methods-inner .eyebrow { color: var(--gold-light); }
.section-heading { max-width: var(--max); margin: 0 auto; padding: 0 clamp(1.1rem, 5vw, 5rem); }
.section-heading.centered { max-width: 800px; text-align: center; }
.section-heading.split { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 4rem; align-items: end; }
.section-heading h2, .philosophy-copy h2, .contact-inner h2 { margin: 0; font: 500 clamp(2.45rem, 5vw, 5rem)/.96 var(--display); letter-spacing: -.03em; }
.section-heading p:last-child { margin: .8rem 0 0; color: inherit; opacity: .72; }

.hero { max-width: 1800px; min-height: calc(100vh - 82px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.hero-brand { display: grid; place-items: center; padding: clamp(1rem, 3vw, 3.2rem); background: radial-gradient(circle at 50% 38%, #28241b, #0d0e0d 72%); border-right: 1px solid var(--line); }
.hero-brand img { max-width: 500px; box-shadow: 0 30px 80px rgba(0,0,0,.42); }
.hero-visual { position: relative; min-height: min(700px, calc(100vh - 82px)); overflow: hidden; }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,11,10,.18), rgba(10,11,10,.08) 34%, rgba(10,11,10,.83) 100%), linear-gradient(0deg, rgba(10,11,10,.9), rgba(10,11,10,.05) 68%); }
.hero-visual > img { height: 100%; object-fit: cover; object-position: center; }
.hero-deb-mark { position: absolute; z-index: 1; top: 50%; right: clamp(1.5rem, 9vw, 9rem); width: clamp(180px, 24vw, 360px); height: auto !important; opacity: .18; mix-blend-mode: screen; transform: translateY(-50%); filter: drop-shadow(0 8px 24px rgba(0,0,0,.55)); object-fit: contain !important; pointer-events: none; }
.asset-label { position: absolute; top: 1rem; right: 1rem; z-index: 2; padding: .35rem .55rem; color: rgba(255,255,255,.78); background: rgba(0,0,0,.62); border: 1px solid rgba(255,255,255,.25); font-size: .63rem; letter-spacing: .12em; text-transform: uppercase; }
.hero-overlay { position: absolute; z-index: 2; top: clamp(7rem, 16vh, 10rem); left: clamp(1.2rem, 5vw, 5rem); max-width: 720px; padding: clamp(1.2rem, 2.5vw, 2rem); background: linear-gradient(90deg, rgba(7,8,7,.94), rgba(7,8,7,.78) 78%, rgba(7,8,7,.24)); border-left: 2px solid var(--gold); box-shadow: 0 18px 50px rgba(0,0,0,.26); }
.hero-overlay h1 { margin: 0; color: #fff; font: 500 clamp(3rem, 6vw, 6.8rem)/.85 var(--display); letter-spacing: -.04em; text-shadow: 0 4px 34px rgba(0,0,0,.8); }
.hero-overlay h1 em { color: var(--gold-light); font-family: var(--serif); font-weight: 500; }
.hero-overlay > p:not(.eyebrow) { max-width: 620px; margin: 1.5rem 0 0; color: #ebe7dd; font-size: clamp(.95rem, 1.5vw, 1.17rem); }
.button-row { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .8rem 1.2rem; border: 1px solid var(--gold); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-gold { color: var(--ink); background: var(--gold); }
.button-gold:hover { background: var(--gold-light); }
.button-ghost { color: #fff; background: rgba(0,0,0,.28); }
.button-ghost:hover { color: var(--ink); background: var(--gold-light); }

.story-section { padding: clamp(4.5rem, 8vw, 8rem) 0; }
.transformation-grid { max-width: 1180px; margin: 3rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(20,20,18,.16); }
.transformation-card { min-width: 0; padding-bottom: 1.5rem; background: var(--paper); }
.transformation-card figure { position: relative; margin: 0 0 1.4rem; aspect-ratio: 4 / 3; overflow: hidden; background: #222; }
.transformation-card figure img { height: 100%; object-fit: cover; transition: transform .6s ease; }
.transformation-card.is-concept figure { background: #171815; }
.transformation-card.is-concept figure img { object-fit: contain; }
.transformation-card:hover figure img { transform: scale(1.025); }
.transformation-card figcaption { position: absolute; inset: auto .6rem .6rem; padding: .28rem .42rem; color: #fff; background: rgba(0,0,0,.72); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.transformation-card > span, .transformation-card h3, .transformation-card p { margin-inline: 1.1rem; }
.transformation-card > span { color: #856b2f; font-size: .68rem; font-weight: 700; letter-spacing: .08em; }
.transformation-card h3 { margin-top: .35rem; margin-bottom: .45rem; font: 600 1.45rem/1 var(--serif); }
.transformation-card p { margin-top: 0; margin-bottom: 0; color: #5e5d55; font-size: .86rem; line-height: 1.6; }

.workshop-stories { padding: 0 0 clamp(4.5rem, 8vw, 8rem); }
.workshop-stories .section-heading { padding-top: 1rem; }
.story-gallery { max-width: var(--max); margin: 3rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; gap: 1.25rem; }
.project-story { display: grid; grid-template-columns: minmax(240px, .72fr) repeat(3, minmax(0, 1fr)); min-height: 430px; overflow: hidden; color: var(--paper); background: var(--ink-2); border: 1px solid rgba(200,160,75,.3); }
.project-story-copy { padding: clamp(1.4rem, 3vw, 2.4rem); align-self: center; }
.story-number { display: block; margin-bottom: 2.6rem; color: var(--gold); font: 600 .72rem/1 var(--sans); letter-spacing: .18em; }
.project-story-copy h3 { margin: 0 0 1rem; font: 600 clamp(1.75rem, 2.7vw, 2.8rem)/.98 var(--serif); }
.project-story-copy > p:last-child { margin: 0; color: #bbb7ad; font-size: .86rem; }
.story-image { position: relative; min-width: 0; margin: 0; overflow: hidden; border-left: 1px solid rgba(200,160,75,.22); background: #080908; }
.story-image img { height: 100%; padding: .55rem; object-fit: cover; object-position: center; transition: transform .6s ease; }
.story-image:hover img { transform: scale(1.025); }
.story-image-concept { padding: .7rem; }
.story-image-concept img { object-fit: contain; object-position: center; }
.story-image-result img { object-fit: contain; object-position: center; background: #080908; }
.story-image figcaption { position: absolute; inset: auto .65rem .65rem; padding: .3rem .5rem; color: #fff; background: rgba(0,0,0,.78); border: 1px solid rgba(255,255,255,.18); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }

.portfolio-section { padding: clamp(4.5rem, 8vw, 8rem) 0; }
.portfolio-section .section-heading p:last-child { color: #c5c1b8; }
.feature-grid { max-width: var(--max); margin: 3rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.feature { position: relative; aspect-ratio: 4 / 3; min-height: 0; overflow: hidden; border: 1px solid var(--line); }
.feature-wide { grid-row: auto; }
.feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.94) 0, rgba(0,0,0,.48) 52%, rgba(0,0,0,.1) 100%); }
.feature img { height: 100%; object-fit: cover; transition: transform .7s ease; }
.feature-focus-lower img { object-position: center 76%; }
.feature-contained { background: #111210; }
.feature-contained img { object-fit: contain; }
.feature:hover img { transform: scale(1.025); }
.feature div { position: absolute; z-index: 2; inset: auto 1.2rem 1.2rem; max-width: calc(100% - 2.4rem); padding: .75rem .85rem; background: rgba(5,6,5,.66); border-left: 2px solid var(--gold); }
.feature span { color: var(--gold-light); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.feature h3 { margin: .35rem 0 .2rem; font: 600 clamp(1.6rem, 3vw, 3rem)/1 var(--serif); }
.feature p { max-width: 600px; margin: 0; color: #f1eee6; font-size: .85rem; }

.collections-section { padding: clamp(4.5rem, 8vw, 8rem) 0; border-top: 1px solid rgba(255,255,255,.07); }
.collection-grid { max-width: var(--max); margin: 3rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; grid-template-columns: repeat(4, 1fr); }
.collection-grid article { min-height: 200px; padding: 1.4rem; border: solid rgba(200,160,75,.25); border-width: 1px 0 0 1px; background: linear-gradient(145deg, #1c1d1b, #111210); }
.collection-grid article:nth-child(4n), .collection-grid article:last-child { border-right-width: 1px; }
.collection-grid article:nth-last-child(-n+3) { border-bottom-width: 1px; }
.collection-grid span { color: var(--gold); font-size: .65rem; letter-spacing: .16em; }
.collection-grid h3 { margin: 2.6rem 0 .45rem; font: 600 1.5rem/1.05 var(--serif); }
.collection-grid p { margin: 0; color: var(--muted); font-size: .82rem; }
.collection-panels { max-width: var(--max); margin: 4rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.collection-panel { position: relative; min-height: 250px; overflow: hidden; padding: clamp(1.5rem, 4vw, 3rem); display: flex; align-items: flex-end; border: 1px solid var(--line); background: radial-gradient(circle at 85% 15%, rgba(200,160,75,.22), transparent 42%), linear-gradient(135deg, #1b1d1a, #0e100f); }
.collection-panel::after { content: ""; position: absolute; inset: 1rem; border: 1px solid rgba(234,212,154,.18); pointer-events: none; }
.collection-panel div { position: relative; z-index: 2; }
.collection-panel h3 { margin: 0; font: 600 2rem/1 var(--serif); }
.collection-panel p:last-child { max-width: 500px; margin: .5rem 0 0; color: #f1eee6; font-size: .86rem; }

.philosophy-section { min-height: 680px; display: grid; grid-template-columns: minmax(320px, .7fr) minmax(0, 1.3fr); }
.philosophy-mark { display: grid; place-items: center; min-height: 500px; background: #10110f; }
.deb-crop-large { width: 330px; height: 300px; flex-basis: 330px; }
.deb-crop-large img { width: 1090px; left: -49px; top: -65px; }
.philosophy-copy { padding: clamp(4rem, 8vw, 8rem); align-self: center; }
.philosophy-copy .lead { max-width: 800px; margin: 1.5rem 0 2.5rem; font: 500 clamp(1.25rem, 2vw, 1.75rem)/1.35 var(--serif); }
.principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.principles div { padding-top: 1rem; border-top: 1px solid #a18343; }
.principles strong { font: 700 1.25rem/1 var(--serif); }
.principles p { color: #66645b; font-size: .84rem; }
blockquote { margin: 3rem 0 0; padding: 1rem 0 1rem 1.4rem;  font: italic 1.25rem/1.4 var(--serif); }

.contact-section { position: relative; min-height: 620px; display: grid; place-items: center; padding: 5rem 1.2rem; text-align: center; background: radial-gradient(circle at 50% 0%, #25251e 0%, #111310 62%, #0b0c0a 100%); }
.contact-inner { width: min(100%, 980px); }
.contact-inner h2 { font-size: clamp(3rem, 7vw, 7rem); }
.contact-inner > p:not(.eyebrow) { max-width: 620px; margin: 1.2rem auto 2rem; color: #e3dfd6; font: 500 1.35rem/1.4 var(--serif); }
.inquiry-form { margin: 2rem auto 0; padding: clamp(1.1rem, 3vw, 2rem); text-align: left; color: var(--paper); background: rgba(13,14,13,.88); border: 1px solid rgba(200,160,75,.46); box-shadow: 0 22px 70px rgba(0,0,0,.24); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.inquiry-form label, .admin-login label { display: grid; gap: .38rem; color: #e5e0d5; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.inquiry-form label > span, .admin-login label > span { color: #a7a498; font-weight: 500; letter-spacing: 0; text-transform: none; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea, .admin-login input { width: 100%; min-height: 46px; padding: .7rem .75rem; color: #f2eee5; background: #1a1c1a; border: 1px solid rgba(255,255,255,.22); border-radius: 0; font: inherit; }
.inquiry-form textarea { resize: vertical; }
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus, .admin-login input:focus { border-color: var(--gold-light); outline: 2px solid rgba(234,212,154,.45); outline-offset: 2px; }
.field-wide { grid-column: 1 / -1; }
.check-label { display: flex; grid-template-columns: auto 1fr; align-items: start; gap: .6rem; color: #c9c4b8; font-size: .74rem; font-weight: 500; letter-spacing: 0; line-height: 1.45; text-transform: none; }
.check-label input { width: 18px; min-height: 18px; margin-top: .1rem; accent-color: var(--gold); }
.inquiry-form .button { margin-top: 1.2rem; }
.form-note, .direct-email { display: block; margin: .8rem 0 0; color: #e4dfd5; font-size: .75rem; }
.inquiry-form .form-note { overflow-wrap: anywhere; font-size: .875rem; }
.inquiry-form input:not([type="checkbox"]), .inquiry-form select, .inquiry-form textarea { font: 400 1rem/1.5 var(--sans); letter-spacing: normal; text-transform: none; }
.direct-email { margin-top: 1.2rem; color: var(--gold-light); text-decoration: underline; }

.showroom-section { padding: clamp(4.5rem, 8vw, 8rem) 0; border-top: 1px solid rgba(255,255,255,.08); }
.storefront-grid { max-width: var(--max); margin: 3rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.storefront-card { overflow: hidden; color: var(--paper); background: var(--ink-2); border: 1px solid rgba(200,160,75,.32); }
.storefront-card img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.storefront-card-placeholder { aspect-ratio: 4 / 3; display: grid; place-items: center; color: var(--gold-light); background: radial-gradient(circle at 50% 35%, rgba(200,160,75,.25), transparent 48%), linear-gradient(145deg, #252721, #10120f); font: 600 clamp(2.4rem, 6vw, 4rem)/1 var(--serif); letter-spacing: .08em; }
.storefront-card-body { padding: 1rem; }
.storefront-card h3 { margin: .3rem 0 .55rem; font: 600 1.4rem/1 var(--serif); }
.storefront-card p { margin: 0; color: var(--muted); font-size: .76rem; }
.availability { display: inline-flex; padding: .25rem .4rem; color: var(--gold-light); border: 1px solid rgba(200,160,75,.4); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.availability.is-concept { color: #d5d1c6; border-color: rgba(255,255,255,.25); }

.shop-section { padding: clamp(4.5rem, 8vw, 8rem) 0; }
.shop-grid { max-width: var(--max); margin: 3rem auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.shop-card { overflow: hidden; color: var(--ink); background: #fbf8f0; border: 1px solid rgba(37,37,31,.18); box-shadow: 0 14px 36px rgba(37,37,31,.08); }
.shop-card figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: #ded8cb; }
.shop-card figure img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.shop-card-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: #866b30; background: radial-gradient(circle at 50% 35%, rgba(200,160,75,.24), transparent 48%), linear-gradient(145deg, #eee7d8, #d6cdbc); }
.shop-card-placeholder span { display: grid; place-items: center; width: 5rem; height: 5rem; border: 1px solid rgba(111,87,39,.45); border-radius: 50%; font: 600 1.8rem/1 var(--serif); letter-spacing: .08em; }
.shop-card-body { padding: 1.1rem; }
.shop-category { display: block; margin-bottom: .55rem; color: #866b30; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.shop-card-body .availability { margin-bottom: .45rem; color: #6f5727; border-color: rgba(111,87,39,.35); }
.shop-card h3 { margin: .25rem 0 .5rem; font: 600 clamp(1.45rem, 2.5vw, 2rem)/1 var(--serif); }
.shop-card p { min-height: 2.8rem; margin: 0; color: #5c5a51; font-size: .82rem; line-height: 1.45; }
.shop-card .shop-price { min-height: 0; margin-top: .8rem; color: #2f2d27; font: 600 1.35rem/1 var(--serif); }
.shop-card .button { width: 100%; margin-top: 1rem; color: var(--ink); background: transparent; }
.shop-card .button:hover { color: var(--ink); background: var(--gold-light); }
.shop-note { max-width: 720px; margin: 1.2rem auto 0; padding: 0 1.1rem; color: #5c5a51; font-size: .78rem; text-align: center; }

.admin-dialog { width: min(92vw, 1080px); max-height: 88vh; padding: 0; color: #24251f; background: var(--paper); border: 1px solid var(--gold); box-shadow: 0 30px 100px rgba(0,0,0,.55); }
.admin-dialog::backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(4px); }
.admin-dialog .admin-shell { padding: clamp(1.2rem, 3vw, 2.5rem); overflow: auto; }
.admin-dialog .section-heading { padding: 0; }
.admin-dialog .section-heading.centered { max-width: 800px; }
.admin-dialog .section-heading p:last-child { color: #4f4d45; opacity: 1; }
.dialog-close { display: block; margin-left: auto; padding: .5rem .7rem; color: #4f4d45; background: transparent; border: 1px solid rgba(37,37,31,.28); font: 600 .7rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.dialog-close:hover { color: var(--ink); background: var(--gold-light); }
.admin-shell { max-width: 1080px; margin: 0 auto; padding: 0 clamp(1.1rem, 5vw, 5rem); }
.admin-login { width: min(100%, 560px); margin: 2rem auto 0; padding: 1.4rem; display: grid; gap: 1rem; background: #e6dfd0; border: 1px solid rgba(37,37,31,.16); }
.admin-login label { color: #454239; }
.admin-login input { color: #24251f; background: #fbf8f0; border-color: rgba(37,37,31,.26); }
.admin-login .form-note { color: #66645b; }
.dashboard-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 3rem 0 1rem; }
.dashboard-head h3 { margin: 0; font: 600 clamp(1.8rem, 4vw, 3rem)/1 var(--serif); }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.dashboard-card, .inventory-panel { padding: 1.2rem; background: #e6dfd0; border: 1px solid rgba(37,37,31,.16); }
.dashboard-card strong { display: block; margin-top: .3rem; font: 600 1.6rem/1 var(--serif); }
.dashboard-card p { margin-bottom: 0; color: #66645b; font-size: .82rem; }
.dashboard-label, .inventory-head span { color: #856b2f; font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.inventory-panel { margin-top: 1rem; }
.inventory-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.inventory-head h4 { margin: 0; font: 600 1.5rem/1 var(--serif); }
.inventory-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: .8rem; padding: .8rem 0; border-top: 1px solid rgba(37,37,31,.16); }
.inventory-row strong { display: block; font: 600 1.1rem/1 var(--serif); }
.inventory-row small { color: #66645b; }
.inventory-controls { display: flex; align-items: center; gap: .4rem; }
.inventory-controls button { width: 38px; height: 38px; color: #24251f; background: transparent; border: 1px solid #a18343; font-size: 1.15rem; cursor: pointer; }
.inventory-quantity { min-width: 2rem; text-align: center; font-weight: 700; }

.site-footer { max-width: var(--max); margin: 0 auto; min-height: 130px; padding: 1.5rem clamp(1.1rem, 5vw, 5rem); display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #aaa69d; background: var(--ink); }
.footer-brand { display: flex; align-items: center; gap: .7rem; color: #f3efe6; font-family: var(--serif); }
.footer-brand p, .site-footer p { margin: 0; }
.site-footer > p { color: var(--gold); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.footer-links { display: flex; align-items: center; gap: 1rem; }
.site-footer > a, .footer-links a { font-size: .75rem; text-decoration: none; text-transform: uppercase; }
.footer-links .site-credit { display: inline-flex; flex-direction: column; justify-content: center; min-height: 44px; color: #c7c1b5; font-size: .72rem; line-height: 1.5; text-transform: none; }
.site-credit span { color: #dfc087; font-weight: 600; }
.site-credit:hover span, .site-credit:focus-visible span { color: #fff0c9; text-decoration: underline; }
.admin-link { padding: 0; color: #b9b39f; background: transparent; border: 0; font: inherit; cursor: pointer; }
.admin-link:hover, .admin-link:focus-visible { color: var(--gold-light); text-decoration: underline; }

.admin-page { min-height: 100vh; display: grid; place-items: center; padding: 2rem; color: #24251f; background: var(--paper); }
.admin-page-shell { width: min(100%, 44rem); padding: clamp(2rem, 6vw, 5rem); background: #fbf8f0; border: 1px solid rgba(37,37,31,.18); box-shadow: 0 24px 70px rgba(37,37,31,.14); }
.admin-page-shell h1 { max-width: 14ch; margin: .4rem 0 1rem; font-family: 'Cormorant Garamond', serif; font-size: clamp(2.5rem, 6vw, 5rem); line-height: .92; }
.admin-page-shell p:not(.eyebrow) { max-width: 38rem; color: #5b584e; }
.admin-page-shell h2 { margin: 0; font: 600 clamp(1.8rem, 4vw, 3rem)/1 var(--serif); }
.admin-footnote { margin: 1rem 0 1.5rem; font-size: .78rem; }
.admin-page .button-ghost { color: var(--ink); background: transparent; }
.admin-page .button-ghost:hover { color: var(--ink); background: var(--gold-light); }

.reveal { opacity: 1; transform: none; transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: .08s; }
.delay-2 { transition-delay: .16s; }
.delay-3 { transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 1120px) {
  .site-header { grid-template-columns: auto 1fr auto; }
  .header-line { display: none; }
  .site-nav { justify-self: end; }
  .hero { grid-template-columns: 1fr; }
  .transformation-grid { grid-template-columns: 1fr 1fr; }
  .project-story { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .project-story-copy { grid-column: 1 / -1; }
  .story-number { margin-bottom: 1.4rem; }
  .story-image { min-height: 360px; border-top: 1px solid rgba(200,160,75,.22); }
  .story-image-concept { min-height: 520px; }
  .collection-grid { grid-template-columns: repeat(3, 1fr); }
  .storefront-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .collection-grid article:nth-child(4n) { border-right-width: 0; }
  .collection-grid article:nth-child(3n), .collection-grid article:last-child { border-right-width: 1px; }
  .collection-grid article:nth-last-child(-n+3) { border-bottom-width: 1px; }
}

@media (max-width: 1200px) {
  .header-line { display: none; }
}

@media (max-width: 820px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto auto; }
  .site-header .menu-button { grid-column: 2; grid-row: 1; }
  .site-header .header-actions { grid-column: 3; grid-row: 1; }
  .site-header .header-line { display: none; }
  .menu-button { display: grid; width: 48px; height: 48px; place-content: center; gap: 5px; color: white; background: transparent; border: 1px solid rgba(200,160,75,.45); }
  .menu-button > span:not(.sr-only) { width: 22px; height: 1px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .menu-button[aria-expanded="true"] > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-button[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-button[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-nav { position: absolute; inset: 100% 0 auto; display: none; padding: .7rem 1rem 1.3rem; flex-direction: column; gap: 0; background: rgba(8,9,8,.98); border-bottom: 1px solid var(--line); }
  .site-nav.open { display: flex; }
  .site-nav a { min-height: 46px; display: flex; align-items: center; }
  .hero { min-height: 0; grid-template-columns: 1fr; }
  .hero-brand { padding: 1.1rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .hero-brand img { max-width: 285px; }
  .hero-visual { min-height: 700px; }
  .hero-visual::after { background: linear-gradient(0deg, rgba(10,11,10,.9), rgba(10,11,10,.05) 74%); }
  .section-heading.split { grid-template-columns: 1fr; gap: 1.5rem; }
  .feature-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-story { grid-template-columns: 1fr 1fr; }
  .story-image { min-height: 420px; }
  .story-image-concept { grid-column: 1 / -1; min-height: 620px; }
  .feature, .feature-wide { min-height: 0; grid-row: auto; }
  .shop-grid { grid-template-columns: 1fr; }
  .inventory-row { grid-template-columns: 1fr auto; }
  .inventory-row .availability { grid-column: 1; grid-row: 2; justify-self: start; }
  .inventory-row .inventory-controls { grid-column: 2; grid-row: 1 / span 2; }
  .collection-grid { grid-template-columns: 1fr 1fr; }
  .collection-grid article:nth-child(3n) { border-right-width: 0; }
  .collection-grid article:nth-child(2n), .collection-grid article:last-child { border-right-width: 1px; }
  .collection-panels { grid-template-columns: 1fr; }
  .philosophy-section { grid-template-columns: 1fr; }
  .philosophy-mark { min-height: 400px; }
  .site-footer { flex-direction: column; justify-content: center; text-align: center; }
  .header-actions { gap: .5rem; }
  .form-grid { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-head { align-items: start; flex-direction: column; }
}

@media (max-width: 520px) {
  main { padding-top: 72px; }
  .site-header { min-height: 72px; padding-inline: .75rem; }
  .brand-lockup { min-width: 0; }
  .brand-lockup strong { font-size: .78rem; }
  .brand-lockup small { font-size: .58rem; }
  .brand-lockup .rr-logo-crop { flex-basis: 44px; width: 44px; height: 44px; }
  .header-actions { justify-self: end; }
  .header-line { display: none; }
  .hero-visual { min-height: 650px; }
  .hero-visual > img { object-position: 49% center; }
  .hero-deb-mark { top: 31%; right: 1rem; width: min(46vw, 220px); opacity: .14; }
  .hero-overlay { top: auto; right: 1rem; bottom: 1.2rem; left: 1rem; }
  .hero-overlay h1 { font-size: clamp(2.8rem, 14vw, 4.3rem); }
  .button-row { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .transformation-grid { grid-template-columns: 1fr; }
  .project-story { grid-template-columns: 1fr; }
  .story-image, .story-image-concept { grid-column: auto; min-height: 360px; border-left: 0; }
  .story-image-concept { min-height: 480px; }
  .feature-contained { min-height: 0; }
  .feature, .feature-wide { min-height: 0; }
  .collection-grid { grid-template-columns: 1fr; }
  .collection-grid article { min-height: 165px; border-right-width: 1px !important; border-bottom-width: 0; }
  .collection-grid article:last-child { border-bottom-width: 1px; }
  .collection-panel { min-height: 0; }
  .principles { grid-template-columns: 1fr; }
  .philosophy-copy { padding: 4rem 1.2rem; }
  .philosophy-mark { min-height: 330px; }
  .deb-crop-large { width: 250px; height: 225px; flex-basis: 250px; }
  .deb-crop-large img { width: 835px; left: -40px; top: -52px; }
  .storefront-grid { grid-template-columns: 1fr; }
  .inventory-row { grid-template-columns: 1fr auto; }
  .inventory-row .availability { grid-column: 1 / -1; grid-row: 2; width: max-content; }
  .footer-links { flex-direction: column; gap: .6rem; }
}

/* 2026-09 storefront and story refresh: copy lives beside imagery, never over it. */
.site-nav a[aria-current="page"] { color: var(--gold-light); }
.hero { min-height: min(710px, calc(100vh - 82px)); grid-template-columns: minmax(380px, .82fr) minmax(0, 1.18fr); }
.hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-width: 0; padding: clamp(2.3rem, 5vw, 5.5rem); background: radial-gradient(circle at 16% 18%, #25251e, #111310 64%); border-right: 1px solid var(--line); }
.hero-copy h1 { max-width: 690px; margin: 0; font: 500 clamp(3.2rem, 5.3vw, 6.6rem)/.92 var(--display); letter-spacing: -.045em; }
.hero-copy > p:not(.eyebrow) { max-width: 460px; margin: 1.7rem 0 0; color: #d9d4c8; font-size: clamp(1rem, 1.45vw, 1.18rem); line-height: 1.6; }
.hero-copy .button-row { margin-top: 2rem; }
.hero-footnote { margin-top: clamp(2.5rem, 7vw, 6rem); color: var(--gold-light); font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.hero-visual { min-height: 620px; margin: 0; background: #27251f; }
.hero-visual::after { display: none; }
.hero-visual > img { height: 100%; object-fit: cover; object-position: center; }
.hero-visual figcaption { position: absolute; inset: auto 0 0; padding: 1rem 1.4rem; color: #eee9df; background: rgba(13,14,13,.92); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.story-section { padding-bottom: clamp(3rem, 6vw, 6rem); }
.transformation-grid { max-width: var(--max); gap: 1.25rem; background: transparent; }
.transformation-card { padding-bottom: 1.7rem; border: 1px solid rgba(36,36,30,.14); background: #faf7ef; }
.transformation-card figure { aspect-ratio: 1.38; background: #e5dfd2; }
.transformation-card figure img { object-fit: cover; object-position: center; }
.transformation-card:nth-child(2) figure img { object-position: center 65%; }
.transformation-card:nth-child(3) figure img { object-position: center 52%; }
.transformation-card h3 { font-size: 1.8rem; }
.transformation-card p { font-size: .9rem; }
.transformation-card { display:flex; flex-direction:column; }
.transformation-card figure { flex:none; }
.transformation-card > a { align-self:center; display:flex; align-items:center; justify-content:center; min-height:44px; margin:1rem 1.1rem 0; padding:.35rem .5rem; text-align:center; color:#6d5427; font-weight:600; text-underline-offset:.2em; }
.transformation-card > p { margin-bottom:.35rem; }
.transformation-card > a { margin-top:auto; }

/* One centered story, using the site's existing paper, ink and serif hierarchy. */
.completed-feature { padding:clamp(2.5rem,6vw,5rem) max(1.25rem,5vw); border-block:1px solid #d3cbb8; text-align:center; }
.completed-feature > div { max-width:820px; margin-inline:auto; }
.completed-feature h2 { margin:.5rem 0 1rem; color:var(--ink); font:500 clamp(1.8rem,4.4vw,3.8rem)/1.12 var(--serif); text-wrap:balance; }
.completed-feature > div > p:not(.eyebrow) { max-width:64ch; margin:0 auto 1.5rem; color:#55584f; font-size:1.05rem; line-height:1.65; text-wrap:pretty; }
.completed-feature .button { color:#f5f0e5; background:#252b24; border-color:#252b24; max-width:100%; }
.completed-feature .button:hover { color:#f5f0e5; background:#363e33; }
.completed-feature .completed-feature-detail { max-width:620px; margin-top:2rem; padding-top:1.5rem; border-top:1px solid #d3cbb8; }
.completed-feature-detail > span { display:block; margin-bottom:.4rem; color:#6d5427; font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.completed-feature-detail > strong { display:block; margin-bottom:.6rem; color:var(--ink); font:600 1.7rem/1.2 var(--serif); }
.completed-feature .completed-feature-detail > p { margin:0; font-size:.95rem; }
.workshop-stories { padding-top: 1rem; }
.maker-methods { padding: 0 1.1rem clamp(4rem, 6vw, 6rem); }
.maker-methods-inner { max-width: var(--max); margin: auto; padding: clamp(2rem, 4vw, 3.5rem); color: var(--paper); background: var(--ink-2); border-left: 4px solid var(--gold); display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, .7fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.maker-methods h2 { max-width: 700px; margin: .7rem 0 1rem; font: 500 clamp(2rem, 3.3vw, 3.5rem)/1 var(--serif); }
.maker-methods-copy > p:last-child { max-width: 790px; margin: 0; color: #d9d4c8; font-size: clamp(.95rem, 1.3vw, 1.08rem); line-height: 1.7; }
.maker-methods figure { margin: 0; padding: .7rem; background: #e9e4da; }
.maker-methods figure img { display: block; width: 100%; max-height: 340px; object-fit: contain; }
.maker-methods figcaption { padding: .8rem .3rem .25rem; color: #2c2b26; font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.project-story { display: grid; grid-template-columns: 1fr 1fr; min-height: 0; gap: 1px; background: #d7d0bf; border: 1px solid rgba(36,36,30,.15); }
.project-story-copy { grid-column: 1 / -1; padding: clamp(1.8rem, 3vw, 3rem); color: var(--paper); background: var(--ink-2); }
.project-story-copy h3 { max-width: 710px; font-size: clamp(2rem, 3.2vw, 3.3rem); }
.project-story-copy > p:last-child { max-width: 700px; font-size: .98rem; }
.story-image { min-height: 0; padding: 0; border: 0; background: #e9e4d8; }
.story-image img { width: 100%; height: 360px; padding: 0; object-fit: cover; object-position: center 45%; }
.story-image-result { grid-column: 1 / -1; }
.story-image-result img { height: clamp(280px, 42vw, 620px); object-fit: contain; object-position: center; background: #e9e4d8; }
.story-image figcaption { position: static; display: block; padding: .75rem 1.1rem; color: #24251f; background: #faf7ef; border: 0; font-size: .68rem; font-weight: 700; letter-spacing: .16em; }
.collections-section { padding: clamp(3.5rem, 6vw, 6rem) 0; }
.collection-links { max-width: 850px; margin: 2.5rem auto 0; padding: 0 1.1rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.collection-links a { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem; padding: 1.4rem 1.5rem; color: var(--paper); border: 1px solid var(--line); font: 600 1.45rem/1.1 var(--serif); text-decoration: none; transition: background .2s ease; }
.collection-links a:hover { background: #272720; }
.collection-links span { color: var(--gold); font: 400 1.4rem/1 var(--sans); }
.shop-section { padding-top: clamp(4rem, 6vw, 6rem); }
.shop-section .section-heading.centered { max-width: 930px; }
.shop-section h1 { margin: 0; font: 500 clamp(3rem, 5.5vw, 5.5rem)/.94 var(--display); letter-spacing: -.035em; }
.shop-section .section-heading p:last-child { max-width: 580px; margin: 1.2rem auto 0; color: #58564e; opacity: 1; font-size: 1rem; }
.shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem; margin-top: 3.5rem; }
.shop-card { display: flex; flex-direction: column; background: #faf8f2; border: 1px solid #d4ccbb; box-shadow: none; }
.shop-card figure { aspect-ratio: 1.52; background: #e6e0d4; }
.shop-card figure img { width: 100%; height: 100%; object-fit: cover; }
.shop-card figure.photo-portrait img { object-fit: cover; object-position: center 52%; }
.shop-card figure.photo-chairs img { object-position: center 54%; }
.shop-card figure.photo-wide img { object-fit: contain; background: #e6e0d4; }
.shop-card figure.photo-fire img { object-position: center 42%; }
.shop-card-body { display: flex; flex: 1; flex-direction: column; padding: clamp(1.2rem, 2vw, 2rem); }
.shop-card h2 { margin: .1rem 0 .5rem; font: 600 clamp(1.75rem, 2.7vw, 2.6rem)/1 var(--serif); }
.shop-card-body > p { min-height: 0; max-width: 490px; margin-bottom: 1.7rem; font-size: .9rem; }
.shop-card-end { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid #d8d0c0; }
.shop-card .shop-price { margin: 0; font-size: 1.9rem; line-height: 1; white-space: nowrap; }
.shop-price small { display: block; margin-bottom: .35rem; color: #79756a; font: 600 .62rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.shop-card-link { color: #6d5324; font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-align: right; text-decoration: none; text-transform: uppercase; }
.shop-card-link:hover { text-decoration: underline; }
.shop-secondary { max-width: var(--max); margin: clamp(4rem, 7vw, 7rem) auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); }
.shop-secondary h2 { margin: 0; font: 500 clamp(2.5rem, 4vw, 4rem)/1 var(--display); }
.shop-secondary > p:not(.eyebrow) { max-width: 650px; color: #615e55; }
.project-grid { margin-top: 2rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.project-card { min-height: 270px; padding: 1.5rem; display: flex; flex-direction: column; align-items: flex-start; background: #e7e0d2; border: 1px solid #c6bca8; }
.project-index { margin-bottom: 2.2rem; color: #907744; font: 600 .66rem/1 var(--sans); letter-spacing: .18em; }
.project-card h3 { margin: 0 0 .55rem; font: 600 1.75rem/1 var(--serif); }
.project-card > p { min-height: 0; font-size: .84rem; }
.project-card-end { width: 100%; margin-top: auto; padding-top: 1rem; display: flex; justify-content: space-between; align-items: end; gap: .7rem; border-top: 1px solid #c6bca8; }
.project-card-end strong { font: 600 1.15rem/1 var(--serif); white-space: nowrap; }
.project-card-end a { color: #6d5324; font-size: .66rem; font-weight: 700; text-align: right; text-decoration: none; text-transform: uppercase; }
.project-card-end a:hover { text-decoration: underline; }
.shop-note { max-width: 850px; margin-top: 2.5rem; font-size: .84rem; line-height: 1.6; }
@media (max-width: 1120px) { .hero { grid-template-columns: minmax(330px, .82fr) minmax(0, 1.18fr); } }
@media (max-width: 820px) { .hero { grid-template-columns: 1fr; } .hero-copy { padding: 3.5rem 2rem; } .hero-visual { min-height: 0; aspect-ratio: 1.35; } .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .hero-copy { padding: 3.3rem 1.25rem; } .hero-copy h1 { font-size: clamp(3.3rem, 13vw, 5rem); } .hero-visual { aspect-ratio: 1.08; } .hero-visual > img { object-position: center; } .hero-footnote { margin-top: 2.2rem; } .transformation-grid, .shop-grid, .project-grid, .collection-links, .project-story { grid-template-columns: minmax(0, 1fr); } .story-image-result { grid-column: 1; } .story-image img { height: 280px; } .story-image-result img { height: auto; aspect-ratio: 4 / 3; object-position: center; } .shop-card figure { aspect-ratio: 1.36; } .project-card { min-height: 230px; } }
.prepared-email { display: inline-flex; margin-top: 1rem; text-decoration: none; }
.prepared-email[hidden] { display: none; }
@media (min-width: 901px) { .site-header { grid-template-columns: auto 1fr; } .site-nav { justify-self: end; } .header-actions { display: none; } }
@media (max-width: 400px) { .shop-section h1 { font-size: 2.6rem; } }

/* Featured work and custom project ideas share one card rhythm. */
.shop-section { padding-top: clamp(2.5rem, 4vw, 4rem); }
.shop-section h1 { font-size: clamp(3rem, 4.6vw, 4.8rem); }
.shop-card h3 { margin: .1rem 0 .5rem; font: 600 clamp(1.75rem, 2.7vw, 2.6rem)/1 var(--serif); }
.shop-group-heading { max-width: var(--max); margin: clamp(3.2rem, 5vw, 5rem) auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); }
.shop-group-heading h2 { max-width: 750px; margin: .4rem 0 0; font: 500 clamp(2.3rem, 3.6vw, 3.7rem)/1 var(--display); }
.shop-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 2rem; }
.shop-card { grid-column: span 2; min-width: 0; }
.shop-card:nth-last-child(-n + 2) { grid-column: span 2; }
.project-card { min-width: 0; min-height: 0; padding: 0; overflow: hidden; background: #faf8f2; border-color: #d4ccbb; }
.project-card-image { width: 100%; margin: 0; aspect-ratio: 1.34; background: #e6e0d4; }
.project-card-image img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.project-card-content { display: flex; flex: 1; flex-direction: column; align-items: stretch; padding: 1.25rem; }
.project-card-content > p { margin: .4rem 0 1.5rem; min-height: 0; color: #56534b; font-size: .88rem; line-height: 1.5; }
.project-card h3 { margin-top: .45rem; font-size: clamp(1.55rem, 2.2vw, 2.05rem); }
.project-card-end { align-items: end; }
.project-card-end a, .shop-card-link { line-height: 1.35; }
@media (max-width: 820px) { .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .shop-card, .shop-card:nth-last-child(-n + 2) { grid-column: auto; } .shop-card:last-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .shop-grid { grid-template-columns: 1fr; } .shop-card, .shop-card:nth-last-child(-n + 2), .shop-card:last-child { grid-column: auto; } .shop-group-heading { margin-top: 3rem; } .shop-card figure, .project-card-image { aspect-ratio: 1.24; } }

/* Single, filterable project shop: the photograph and its copy have separate space. */
.shop-toolbar { max-width: var(--max); margin: clamp(2.4rem, 5vw, 4rem) auto 0; padding: 0 clamp(1.1rem, 5vw, 5rem); display: flex; justify-content: space-between; align-items: end; gap: 1rem; border-bottom: 1px solid #cfc5b3; }
.shop-filters { display: flex; flex-wrap: wrap; gap: .25rem; }
.shop-filters button { padding: .8rem .95rem; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #5b594f; font: 700 .7rem/1.2 var(--sans); letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.shop-filters button:hover, .shop-filters button:focus-visible { color: #24251f; }
.shop-filters button[aria-pressed="true"] { color: #24251f; border-color: #ab853e; }
.shop-count { padding-bottom: .9rem; color: #625d52; font-size: .75rem; white-space: nowrap; }
.shop-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.15rem; margin-top: 1.6rem; }
.shop-card { grid-column: span 2; }
.shop-grid[data-count="11"] .shop-card:nth-last-child(-n + 2), .shop-grid[data-count="2"] .shop-card { grid-column: auto; }
.shop-grid[data-count="1"] .shop-card { grid-column: auto; }
.shop-card figure { aspect-ratio: 1.28; }
.shop-card figure.photo-portrait img { object-position: center 65%; }
.shop-card figure.photo-door img { object-position: center 62%; }
.shop-card figure.photo-set img { object-position: center 88%; }
.shop-card-body { padding: 1.25rem; }
.shop-card-meta { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.shop-card-meta .shop-category { margin: 0; }
.shop-kind { flex: 0 0 auto; color: #777166; font-size: .64rem; letter-spacing: .04em; }
.shop-card h3 { min-height: 2.15em; margin: .7rem 0 .45rem; font-size: clamp(1.45rem, 1.9vw, 1.9rem); }
.shop-card-body > p { min-height: 3.3em; margin-bottom: 1.4rem; }
.shop-card-end { flex-wrap: wrap; align-items: end; }
.shop-card .shop-price { font-size: 1.7rem; }
.shop-card-link { max-width: 7.5rem; }
@media (max-width: 900px) { .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .shop-card, .shop-grid[data-count="11"] .shop-card:nth-last-child(-n + 2), .shop-grid[data-count="2"] .shop-card, .shop-grid[data-count="1"] .shop-card { grid-column: auto; } .shop-grid[data-count="11"] .shop-card:last-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .shop-toolbar { display: block; } .shop-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .shop-filters button { text-align: left; } .shop-count { display: block; padding: .7rem .95rem; } .shop-grid { grid-template-columns: 1fr; } .shop-grid .shop-card, .shop-grid[data-count="11"] .shop-card:nth-last-child(-n + 2), .shop-grid[data-count="2"] .shop-card, .shop-grid[data-count="1"] .shop-card, .shop-grid[data-count="11"] .shop-card:last-child { grid-column: auto; } .shop-card figure { aspect-ratio: 1.34; } .shop-card h3, .shop-card-body > p { min-height: 0; } }

/* Craig's collection board, with honest separation of completed work, current pieces, and concepts. */
.site-nav a[aria-current="page"]::after { inset-inline: 0; }
.collections-hero { min-height: min(680px, 80vh); display: grid; grid-template-columns: minmax(350px, .8fr) minmax(0, 1.2fr); align-items: stretch; overflow: hidden; border-bottom: 1px solid var(--line); }
.collections-hero-copy { align-self: center; max-width: 720px; padding: clamp(3rem, 6vw, 6rem); }
.collections-hero h1 { margin: 0; font: 500 clamp(3.3rem, 5.5vw, 6rem)/.93 var(--display); letter-spacing: -.035em; }
.collections-hero-copy > p:not(.eyebrow) { max-width: 530px; color: #d2cbbd; font-size: 1rem; }
.collections-hero > img { height: 100%; min-height: 570px; object-fit: cover; object-position: center; background: #221b15; }
.collections-jump { position: sticky; top: 68px; z-index: 30; display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(.3rem, 3vw, 3rem); padding: .65rem 1rem; background: #191a17; border-bottom: 1px solid var(--line); }
.collections-jump a { padding: .45rem; color: var(--paper); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.collections-jump a:hover { color: var(--gold-light); }
.collection-chapter { padding: clamp(4rem, 7vw, 7rem) clamp(1.1rem, 5vw, 5rem); scroll-margin-top: 125px; }
.chapter-heading { max-width: 1240px; margin: 0 auto 2.5rem; }
.chapter-heading h2 { max-width: 920px; margin: 0; font: 500 clamp(3rem, 5vw, 5rem)/.95 var(--display); letter-spacing: -.03em; }
.chapter-heading > p:last-child { max-width: 750px; margin: 1rem 0 0; opacity: .75; }
.collection-card-grid { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.collection-card { min-width: 0; overflow: hidden; color: #24251f; background: #fbf9f2; border: 1px solid #d5cdbd; }
.collection-card > img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; object-position: center; background: #dcd5c6; }
.collection-card > div { min-height: 175px; padding: 1.2rem; }
.collection-card span { color: #856b2f; font-size: .65rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.collection-card h3 { margin: .35rem 0 .5rem; font: 600 1.7rem/.98 var(--serif); }
.collection-card p { margin: 0; color: #615e55; font-size: .84rem; line-height: 1.5; }
.current-chapter { background: #171915; }
.current-chapter .chapter-heading > p:last-child { color: #d8d1c4; }
.collection-card-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.collection-card-grid-two .collection-card > img { aspect-ratio: 1.65; }
.future-chapter { padding-bottom: clamp(4.5rem, 7vw, 7rem); }
.concept-grid { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }
.concept-card { min-height: 270px; padding: 1.35rem; display: flex; flex-direction: column; background: #e7dfd0; border: 1px solid #cabc9f; }
.concept-card:nth-child(2) { background: #ece2d3; }.concept-card:nth-child(3) { background: #dddfe0; }.concept-card:nth-child(4) { background: #ead8c1; }.concept-card:nth-child(5) { background: #d5d2cf; }
.concept-card span { color: #83642e; font-size: .67rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.concept-card h3 { margin: auto 0 .7rem; font: 600 clamp(1.5rem, 2vw, 2.2rem)/1 var(--serif); }
.concept-card p { margin: 0; color: #555148; font-size: .81rem; line-height: 1.5; }
.collection-cta { max-width: 1240px; margin: 3rem auto 0; padding: 2rem 2.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--paper); background: #191a17; }
.collection-cta h2 { margin: 0; font: 500 clamp(2rem, 3vw, 3rem)/1 var(--display); }
.shop-grid[data-count="13"] .shop-card:last-child { grid-column: auto; }
@media (max-width: 1100px) { .collection-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .concept-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .collections-hero { grid-template-columns: 1fr; } .collections-hero > img { min-height: 0; max-height: 500px; aspect-ratio: 1.7; } .shop-grid[data-count="13"] .shop-card:last-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .hero-visual { aspect-ratio: 1.5; } .collections-hero-copy { padding: 3.5rem 1.25rem 2rem; } .collections-hero h1 { font-size: clamp(3.2rem, 13vw, 5rem); } .collections-hero > img { min-height: 0; aspect-ratio: 1.5; } .collections-jump { top: 68px; justify-content: space-around; gap: .1rem; } .collections-jump a { font-size: .58rem; } .collection-card-grid, .collection-card-grid-two, .concept-grid { grid-template-columns: 1fr; } .collection-card-grid-two .collection-card > img { aspect-ratio: 4 / 3; } .concept-card { min-height: 220px; } .collection-cta { padding: 1.6rem; flex-direction: column; align-items: flex-start; } .shop-grid[data-count="13"] .shop-card:last-child { grid-column: auto; } }

/* Finished objects stay centered and fully legible across card widths. */
.transformation-card figure, .shop-card figure { aspect-ratio: 4 / 3; }
.transformation-card figure img, .shop-card figure img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.shop-card-body { min-width: 0; }
.shop-card h3 { overflow-wrap: anywhere; }
@media (max-width: 820px) { .maker-methods-inner { grid-template-columns: 1fr; } .maker-methods figure { max-width: 440px; } }

/* DEB master mark supplied by Craig: preserve the artwork and its full bounds. */
.deb-logo { display: block; flex: 0 0 54px; width: 54px; height: 48px; background: #080908; }
.deb-logo img { width: 100%; height: 100%; object-fit: contain; }
.brand-lockup { min-width: 245px; }
.brand-lockup strong { font-size: .9rem; }
.brand-lockup small { letter-spacing: .12em; }
.footer-brand .deb-logo { flex-basis: 62px; width: 62px; height: 52px; }
.rr-collection-mark { width: min(230px, 44vw); height: auto; margin: 2rem auto 0; border: 1px solid rgba(200,160,75,.35); }
.deb-principles { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 3rem; align-items: center; padding: clamp(3rem, 6vw, 6rem) clamp(1.1rem, 5vw, 5rem); }
.deb-principles > div, .deb-principles ul { width: 100%; max-width: 700px; margin: 0 auto; }
.deb-principles h2 { margin: 0; font: 500 clamp(2.6rem, 4.5vw, 5rem)/.95 var(--display); }
.deb-principles p:last-child { max-width: 620px; color: #ddd5c4; }
.deb-principles ul { padding-left: 1.1rem; color: #ddd5c4; }
.deb-principles li { padding: .45rem 0; border-bottom: 1px solid rgba(200,160,75,.22); }

/* One homepage hero. On narrow screens, keep the entire chair-and-table set visible. */
.hero { position: relative; display: block; min-height: min(730px, calc(100vh - 82px)); isolation: isolate; }
.hero-visual { position: absolute; inset: 0; min-height: 0; height: 100%; }
.hero-visual > img { width: 100%; height: 100%; object-fit: contain; object-position: center; background: #211a15; }
.hero-copy { position: relative; z-index: 2; width: min(46rem, 57%); min-height: min(730px, calc(100vh - 82px)); padding: clamp(2.3rem, 5vw, 5.5rem); background: linear-gradient(90deg, rgba(8,9,8,.95), rgba(8,9,8,.8) 68%, rgba(8,9,8,0)); border-right: 0; }
.hero-copy h1 { font-size: clamp(3.2rem, 5.2vw, 6.5rem); }
.hero-footnote { margin-top: 2rem; }

/* Uniform shop cards: no last-item expansion and no product crop. */
.shop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.shop-grid .shop-card, .shop-grid[data-count] .shop-card, .shop-grid[data-count] .shop-card:last-child, .shop-grid[data-count] .shop-card:nth-last-child(-n + 2) { grid-column: auto; }
.shop-card { min-width: 0; }
.shop-card { scroll-margin-top: 100px; }
.shop-card figure, .shop-card figure.shop-photo { width: 100%; height: 260px; aspect-ratio: auto; margin: 0; background: #241f1a; }
.shop-card figure img, .shop-card figure.shop-photo img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.shop-card figure.shop-photo-board img { padding: .4rem; }
.shop-gallery-controls { display: flex; border-top: 1px solid #d4ccbb; border-bottom: 1px solid #d4ccbb; }
.shop-gallery-controls button { flex: 1; padding: .6rem; color: #5d584d; background: #eee9df; border: 0; cursor: pointer; font: 600 .7rem/1 var(--sans); }
.shop-gallery-controls button + button { border-left: 1px solid #d4ccbb; }
.shop-gallery-controls button[aria-pressed="true"] { color: #171815; background: #ddcfad; }
.shop-options { margin: 0 0 1.25rem; }
.shop-options > span { display: block; margin-bottom: .5rem; color: #80652b; font-size: .64rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.shop-options > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.shop-options button { padding: .34rem .55rem; color: #49483f; background: #f1ede3; border: 1px solid #c9bfac; cursor: pointer; font: 600 .67rem/1.25 var(--sans); }
.shop-options button[aria-pressed="true"] { color: #181914; background: #e6d3aa; border-color: #a78037; }
.shop-card .shop-quote { font-size: 1.25rem; }
.shop-card h3 { min-height: 0; }

/* Craig's project boards remain intact; finished-piece views are shown alongside. */
.collections-jump { position: sticky; top: 82px; }
.collection-chapter:first-of-type { padding-top: clamp(3rem, 5vw, 5rem); }
.chapter-heading h1 { max-width: 920px; margin: 0; font: 500 clamp(3rem, 5vw, 5rem)/.95 var(--display); letter-spacing: -.03em; }
.board-gallery { max-width: 1240px; margin: 0 auto; display: grid; gap: 1.25rem; }
.board-feature { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .7fr); gap: clamp(1rem, 3vw, 3rem); align-items: center; padding: clamp(1rem, 3vw, 2rem); background: #faf8f1; border: 1px solid #d8cfbd; }
.board-feature:nth-child(even) { background: #eae3d6; }
.board-feature-media { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: .7rem; align-items: center; }
.board-piece { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #241e17; }
.board-full { display: block; min-width: 0; color: inherit; text-decoration: none; }
.board-full img { width: 100%; max-height: 390px; object-fit: contain; background: #171715; }
.board-full span { display: block; padding: .4rem 0; color: #79602d; font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.board-feature-copy h3 { margin: .3rem 0 .6rem; font: 600 clamp(1.9rem, 3vw, 3.2rem)/.95 var(--serif); }
.board-feature-copy > p:not(.eyebrow) { color: #5c594f; font-size: .9rem; }
.board-feature-copy > a { color: #725a2b; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.current-chapter .board-feature { color: #24251f; }
.future-chapter .board-feature-media { grid-template-columns: minmax(0, 1fr); }
.future-chapter .board-full img { max-height: 430px; }

@media (max-width: 1050px) {
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .board-feature { grid-template-columns: 1fr; }
  .board-feature-copy { order: -1; }
}
@media (max-width: 820px) {
  .deb-principles { grid-template-columns: 1fr; gap: 1rem; }
  .hero { display: flex; flex-direction: column-reverse; min-height: 0; }
  .hero-visual { position: relative; aspect-ratio: 16 / 9; width: 100%; height: auto; }
  .hero-copy { width: 100%; min-height: 0; padding: 3rem 1.5rem; background: #151510; }
  .hero-copy h1 { font-size: clamp(3rem, 8vw, 5rem); }
  .collections-jump { top: 68px; }
}
@media (max-width: 620px) {
  .brand-lockup { min-width: 0; }
  .brand-lockup strong { font-size: .78rem; }
  .brand-lockup small { font-size: .56rem; }
  .shop-filters { display: flex; flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
  .shop-filters button { flex: 0 0 auto; }
  .collections-jump { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
  .collections-jump a { flex: 0 0 auto; }
  .shop-grid { grid-template-columns: 1fr; }
  .shop-card figure, .shop-card figure.shop-photo { height: 240px; }
  .board-feature-media { grid-template-columns: 1fr; }
  .board-full img { max-height: none; }
  .hero-copy h1 { font-size: clamp(2.8rem, 12vw, 4.3rem); }
}
@media (max-width: 620px) {
  .story-section .section-heading h2,
  .collections-section .section-heading h2,
  .transformation-card h3 { overflow-wrap: anywhere; }
}

@media (max-width: 620px) {
  .collections-jump { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: .35rem .25rem; overflow: visible; white-space: normal; }
  .collections-jump a { min-width: 0; padding: .45rem .15rem; text-align: center; font-size: .55rem; line-height: 1.25; }
  .shop-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .1rem; overflow: visible; white-space: normal; }
  .shop-filters button { min-width: 0; padding: .65rem .45rem; flex: initial; text-align: center; font-size: .61rem; white-space: normal; }
}

/* Local review refinement: compact pages, complete product views, and readable stories. */
.collections-jump { top: 68px; }
.hero { display: flex; align-items: center; min-height: clamp(520px, 44vw, 710px); }
.hero-visual { overflow: hidden; }
.hero-visual > img { object-fit: cover; object-position: center 54%; }
.hero-copy { width: clamp(350px, 32vw, 470px); min-height: 0; margin-left: clamp(1rem, 5.8vw, 6rem); padding: clamp(1.15rem, 1.7vw, 1.7rem); background: rgba(8, 9, 8, .62); border-left: 1px solid var(--gold); box-shadow: 0 16px 45px rgba(0, 0, 0, .18); }
.hero-copy .eyebrow { margin-bottom: .6rem; font-size: .62rem; letter-spacing: .28em; }
.hero-copy h1 { max-width: none; font-size: clamp(2.65rem, 3.55vw, 3.7rem); line-height: .94; letter-spacing: -.045em; }
.hero-copy h1 span { display: block; }
.hero-copy > p:not(.eyebrow) { max-width: 360px; margin-top: .85rem; color: #f0eae0; font: 500 clamp(1rem, 1.3vw, 1.2rem)/1.3 var(--serif); }
.hero-copy .button-row { flex-wrap: nowrap; gap: .45rem; margin-top: 1.1rem; }
.hero-copy .button { min-height: 41px; padding: .6rem .7rem; font-size: .56rem; letter-spacing: .035em; white-space: nowrap; }
.hero-wall-mark { position: absolute; z-index: 2; top: 0; right: 18.5%; width: clamp(135px, 13.5vw, 205px); padding: 0; background: none; box-shadow: none; transform: none; opacity: .94; -webkit-mask-image: radial-gradient(ellipse 70% 70% at center, #000 58%, transparent 100%); mask-image: radial-gradient(ellipse 70% 70% at center, #000 58%, transparent 100%); }
.hero-wall-art { display: block; aspect-ratio: 1; overflow: hidden; }
.hero-wall-art img { width: 100%; height: 100%; object-fit: cover; }
.hero-wall-mark::before { content: ""; position: absolute; z-index: 1; top: 86%; left: 39%; width: 23%; height: 12%; background: #d4bc98; filter: blur(3px); }
.hero-wall-deb { position: absolute; z-index: 2; top: 87%; left: 42%; width: 16%; height: auto; margin: 0; object-fit: contain; filter: invert(1); mix-blend-mode: multiply; }
.story-section { padding: clamp(2.7rem, 4vw, 4rem) 0; }
.story-section .section-heading.centered { max-width: 920px; }
.story-section .section-heading h2 { text-wrap:balance; }
.section-heading h1, .section-heading h2, .philosophy-copy h2, .contact-inner h2, .workshop-heading h2 { text-wrap:balance; }
.shop-card-body > p, .collection-story-intro p { text-wrap:pretty; }
.heading-tail { display:inline-block; max-width:100%; white-space:normal; vertical-align:baseline; text-wrap:balance; }
.story-section .section-heading h2 { max-width: 820px; margin: 0 auto; font-size: clamp(2.5rem, 4.2vw, 4.1rem); }
.transformation-grid { margin-top: 1.7rem; }
.transformation-card { padding-bottom: 1.2rem; }
.transformation-card figure { margin-bottom: 1rem; aspect-ratio: 1.27; background: #e8e0d2; }
.transformation-card figure img, .transformation-card:nth-child(2) figure img, .transformation-card:nth-child(3) figure img { object-fit: contain; object-position: center; }
.maker-methods { padding-bottom: clamp(2rem, 3.5vw, 3rem); }
.maker-methods-inner { padding: clamp(1.4rem, 2.8vw, 2.4rem); }
.maker-methods figure img { max-height: 230px; }
.deb-principles { gap: 1.5rem; padding-block: clamp(2.4rem, 4vw, 3.7rem); }
.deb-principles h2 { font-size: clamp(2.5rem, 4vw, 4.2rem); }
.collections-section { padding-block: clamp(2.5rem, 4vw, 4rem); }
.collections-section .section-heading h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.collections-section .rr-collection-mark { width: min(150px, 34vw); margin-top: 1.2rem; }
.collection-links { margin-top: 1.4rem; }

.shop-section { padding-block: clamp(2.3rem, 4vw, 3.8rem); }
.shop-section h1 { font-size: clamp(2.9rem, 4.7vw, 4.6rem); }
.shop-section h1 span { display: block; }
.shop-toolbar { margin-top: clamp(1.8rem, 3vw, 2.8rem); }
.shop-grid { display: block; max-width: var(--max); margin: 0 auto; padding: 0 clamp(1.1rem, 5vw, 5rem); }
.shop-group { margin-top: clamp(2rem, 3.5vw, 3.2rem); }
.shop-group h2 { margin: 0 0 1rem; font: 600 clamp(1.8rem, 2.6vw, 2.6rem)/1.1 var(--serif); }
.shop-group-grid, .shop-group[data-group="furniture"] .shop-group-grid, .shop-group[data-group="garden"] .shop-group-grid, .shop-group[data-group="heritage"] .shop-group-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; align-items: start; }
.shop-card { width: 100%; min-width: 0; display: block; background: #faf8f2; }
.shop-card figure.shop-photo { position: relative; width: 100%; height: auto; aspect-ratio: 1.15; overflow: hidden; isolation: isolate; margin: 0; background: #e3dacb; }
.shop-card figure.shop-photo::before { content: ""; position: absolute; z-index: 0; inset: -18px; background: var(--photo) center / cover no-repeat; filter: blur(12px) saturate(.8); opacity: .72; }
.product-photo-media { position: relative; z-index: 1; display: block; width: 100%; height: 100%; margin: auto; }
.product-photo-media > img:first-child { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.shop-card[data-product-id="patriotic"] .product-photo-media > img:first-child, .shop-card[data-product-id="mushroom"] .product-photo-media > img:first-child, .shop-card[data-product-id="seasons"] .product-photo-media > img:first-child { object-fit: cover; }
.product-photo-media.is-branded { width: auto; max-width: 100%; aspect-ratio: 1; }
.product-photo-media.is-branded > img:first-child { object-fit: cover; }
.piece-marks { position: absolute; inset: 0; pointer-events: none; }
.piece-mark { position: absolute; display: block; width: auto !important; height: auto !important; object-fit: contain !important; filter: drop-shadow(0 0 1.5px #fff) drop-shadow(0 1px 1px rgba(0,0,0,.5)); }
.piece-mark-tub { left: 68%; top: 53%; max-width: 19%; max-height: 16%; transform: translate(-50%, -50%) rotate(-3deg); }
.piece-mark-pail { left: 42%; top: 51%; max-width: 10%; max-height: 10%; transform: translate(-50%, -50%) rotate(-3deg); }
.piece-mark-tray { left: 49%; top: 73%; max-width: 9%; max-height: 9%; transform: translate(-50%, -50%) rotate(2deg); }
.shop-photo figcaption { position: absolute; z-index: 2; right: .65rem; bottom: .65rem; padding: .2rem .45rem; color: #fff; background: rgba(18,20,18,.8); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.shop-photo figcaption[hidden] { display: none; }
.shop-card-body { display: block; padding: 1.2rem; }
.shop-card h3 { min-height: 0; margin: .35rem 0 .4rem; font-size: clamp(1.5rem, 2vw, 1.9rem); overflow-wrap: normal; }
.shop-card-body > p { min-height: 0; margin: 0 0 1rem; font-size: .86rem; line-height: 1.5; }
.shop-category { font-size: .67rem; }
.shop-options { margin: 0 0 1rem; }
.shop-options > span { font-size: .68rem; }
.shop-options button { min-height: 40px; padding: .52rem .7rem; font-size: .82rem; }
.shop-card-end { min-height: 66px; margin-top: 0; padding-top: .8rem; }
.shop-card .shop-price { font-size: 1.5rem; }
.shop-card .shop-quote { font-size: 1.15rem; }
.shop-card-link { max-width: 8rem; font-size: .73rem; }
.shop-note { margin-top: 2rem; }

.collection-chapter { padding: clamp(2.7rem, 4.5vw, 4.5rem) clamp(1.1rem, 5vw, 5rem); }
.collection-chapter:first-of-type { padding-top: clamp(2.7rem, 4.5vw, 4.5rem); }
.chapter-heading { max-width: 1240px; margin: 0 auto 1.5rem; }
.chapter-heading h1, .chapter-heading h2 { font-size: clamp(2.8rem, 4.8vw, 4.8rem); }
.chapter-heading > p:last-child { max-width: 780px; margin-top: .7rem; opacity: .82; }
.board-gallery { gap: 1rem; }
.story-feature { min-width: 0; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 1fr); align-items: stretch; overflow: hidden; color: #25251f; background: #fbf8ef; border: 1px solid #d5cbb8; }
.story-feature:nth-child(even) { background: #ede5d6; }
.story-feature-intro { padding: clamp(1.3rem, 2.5vw, 2rem); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.story-feature-intro h3 { margin: .1rem 0 .5rem; font: 600 clamp(1.9rem, 3vw, 3rem)/.98 var(--serif); }
.story-feature-intro > p:not(.eyebrow) { max-width: 460px; margin: 0; color: #5e5b50; font-size: .92rem; }
.story-feature-intro > a { margin-top: 1.2rem; color: #705629; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.story-feature-intro > a:hover { text-decoration: underline; }
.story-feature-image { position: relative; isolation: isolate; min-width: 0; height: clamp(280px, 27vw, 350px); margin: 0; overflow: hidden; background: #171715; }
.story-feature-image::before { content: ""; position: absolute; z-index: 0; inset: -10px; background: var(--photo) center / cover no-repeat; filter: blur(5px) brightness(.55); opacity: 1; }
.story-feature-image .product-photo-media > img:first-child { object-fit: contain; }
.story-feature-image figcaption { position: absolute; z-index: 2; right: .8rem; bottom: .8rem; padding: .25rem .55rem; color: #fff; background: rgba(17,19,17,.83); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.story-feature-documentation { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); align-items: stretch; border-top: 1px solid #d5cbb8; }
.story-feature-steps { display: flex; flex-direction: column; justify-content: center; padding: 1.25rem; background: #f1ebdd; }
.story-feature-steps-title { margin: 0 0 .8rem; color: #795c25; font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.story-feature-steps > div { display: flex; gap: .75rem; padding: .8rem .2rem; }
.story-feature-steps > div + div { border-top: 1px solid #d5cbb8; }
.story-feature-steps span { color: #937339; font-size: .7rem; font-weight: 700; }
.story-feature-steps p { margin: 0; color: #4f4d45; font-size: .9rem; line-height: 1.5; }
.collection-theme-options { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.collection-theme-options button { padding: .38rem .58rem; color: #504c42; background: #f2ebdb; border: 1px solid #cbbda3; cursor: pointer; font: 600 .72rem/1.2 var(--sans); }
.collection-theme-options button[aria-pressed="true"] { color: #171917; background: #e6d1a3; border-color: #a98036; }
.collection-original { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem; margin: 0; padding: .7rem; background: #171715; }
.collection-original img { width: auto; max-width: 100%; max-height: 700px; height: auto; }
.collection-original figcaption { color: #e2d4b7; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.current-chapter .story-feature { color: #25251f; }

@media (max-width: 1100px) {
  .shop-group .shop-group-grid, .shop-group[data-group="furniture"] .shop-group-grid, .shop-group[data-group="garden"] .shop-group-grid, .shop-group[data-group="heritage"] .shop-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .hero { flex-direction: column-reverse; min-height: 0; }
  .hero-visual { position: relative; width: 100%; height: auto; aspect-ratio: 16 / 9; }
  .hero-visual > img { object-fit: cover; object-position: center; }
  .hero-wall-mark { top: 0; right: 18.5%; width: 22vw; }
  .hero-copy { width: 100%; margin-left: 0; padding: 2.5rem 1.5rem; background: #151510; border-left: 0; box-shadow: none; }
  .hero-copy h1 { max-width: 650px; font-size: clamp(3rem, 8vw, 5rem); line-height: .9; }
  .hero-copy h1 span { display: inline; }
  .hero-copy .button-row { flex-wrap: wrap; }
  .story-feature { grid-template-columns: 1fr; }
  .story-feature-image { grid-row: 1; height: auto; aspect-ratio: 1.55; }
  .story-feature-documentation { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .hero-visual { aspect-ratio: 16 / 9; }
  .hero-wall-mark { top: 0; right: 18%; width: 23vw; }
  .hero-copy { padding: 2rem 1.25rem 2.2rem; }
  .hero-copy h1 { font-size: clamp(2.8rem, 12vw, 4.3rem); }
  .hero-copy .button { white-space: normal; }
  .story-section .section-heading h2 { font-size: clamp(2.4rem, 10vw, 3.5rem); }
  .transformation-card figure { aspect-ratio: 1.35; }
  .shop-group .shop-group-grid, .shop-group[data-group="furniture"] .shop-group-grid, .shop-group[data-group="garden"] .shop-group-grid, .shop-group[data-group="heritage"] .shop-group-grid { grid-template-columns: 1fr; }
  .shop-card figure.shop-photo { height: auto; aspect-ratio: 1.15; }
  .story-feature-steps { display: block; }
  .story-feature-image { aspect-ratio: 1.2; }
  .collection-original { display: flex; }
}
@media (max-width: 400px) {
  .shop-section h1 { font-size: 2.45rem; line-height: .98; }
}

/* Collection themes share a consistent full-width story layout below. */
.collection-theme-options { margin: .35rem 0 1rem; }
.collection-theme-options button { min-height: 36px; }
.collection-chapter { padding-block: clamp(2.8rem, 4vw, 4.2rem); }
.chapter-heading { margin-bottom: 1.5rem; }
.chapter-heading h1, .chapter-heading h2 { font-size: clamp(2.8rem, 4.4vw, 4.4rem); }
.chapter-heading h1, .chapter-heading h2 { overflow-wrap: anywhere; }
.collection-cta { margin-top: 1.5rem; }

/* A continuous shop grid keeps related collections together without category-end holes. */
.shop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem; margin-top: 1.5rem; }
.shop-grid .shop-card, .shop-grid[data-count] .shop-card, .shop-grid[data-count] .shop-card:last-child, .shop-grid[data-count] .shop-card:nth-last-child(-n + 2) { grid-column: auto; }
.shop-card { display: flex; flex-direction: column; }
.shop-card figure.shop-photo { height: auto; aspect-ratio: 1.3; background: #c7baaa; }
.shop-card-body { display: flex; flex-direction: column; padding: 1.1rem; }
.shop-card h3 { margin: .35rem 0 .5rem; font-size: clamp(1.55rem, 2.1vw, 2.05rem); }
.shop-card-body > p { margin-bottom: .95rem; font-size: .84rem; }
.shop-card-end { min-height: 0; margin-top: .8rem; padding-top: .8rem; }
.shop-card .shop-price { font-size: 1.55rem; }
.shop-grid[data-filter="furniture"], .shop-grid[data-filter="garden"], .shop-grid[data-filter="heritage"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* The mural is part of the hero photograph; the text is a compact readable overlay. */
.hero { min-height: clamp(620px, 47vw, 820px); }
.hero-visual > img { object-fit: cover; object-position: center 20%; }
.hero-copy { align-self: flex-start; width: clamp(315px, 30vw, 430px); margin-top: clamp(3.2rem, 6vw, 5rem); margin-left: clamp(1rem, 5.8vw, 5.5rem); padding: clamp(1.15rem, 1.5vw, 1.55rem); background: rgba(8, 9, 8, .68); }
.hero-copy h1 { font-size: clamp(2.55rem, 3.3vw, 3.5rem); line-height: .95; }
.hero-copy .button-row { flex-wrap: wrap; }

@media (max-width: 820px) {
  .shop-grid, .shop-grid[data-filter="furniture"], .shop-grid[data-filter="garden"], .shop-grid[data-filter="heritage"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { min-height: 0; }
  .hero-copy { width: 100%; margin: 0; background: #151510; }
}
@media (max-width: 620px) {
  .shop-grid, .shop-grid[data-filter="furniture"], .shop-grid[data-filter="garden"], .shop-grid[data-filter="heritage"] { grid-template-columns: 1fr; }
  .hero-visual { aspect-ratio: 16 / 9; }
  .hero-copy { padding: 1.8rem 1.25rem 2rem; }
  .shop-section { padding-top: 1.6rem; }
  .shop-section .section-heading.centered { margin-bottom: 0; }
  .shop-toolbar { margin-top: 1.25rem; }
  .shop-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .1rem; }
  .shop-filters button { padding: .6rem .25rem; font-size: .61rem; line-height: 1.25; }
  .shop-count { padding: .55rem .65rem; }
}

/* Catalog composition: one outer width, consistent controls, complete objects. */
.board-gallery { display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; max-width:1240px; margin:0 auto; }
.collection-story { display:block; width:100%; min-width:0; overflow:hidden; background:#faf8f2; border:1px solid #c6b797; }
.collection-story[hidden], .collection-slide[hidden] { display:none!important; }
.collection-story-header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1.5rem; padding:1.5rem 1.75rem; color:#f7f0df; background:#1b1e1a; }
.collection-story-intro, .collection-story-actions { min-width:0; }
.collection-story-intro .eyebrow { margin:0 0 .45rem; color:#d6b56d; font-size:.72rem; }
.collection-story-intro h3 { margin:0 0 .5rem; font:600 clamp(2rem,3vw,3rem)/1.08 var(--serif); text-wrap:balance; overflow-wrap:anywhere; }
.collection-story-intro > [data-collection-detail] { max-width:46rem; margin:0; color:#ded6c7; font-size:1rem; line-height:1.5; }
.collection-status { display:inline-block; margin-top:.7rem; padding:.18rem 0; color:#f8e1ae; font:600 .82rem/1.4 var(--sans); }
.collection-story-actions { display:flex; flex-direction:column; align-items:flex-start; gap:.8rem; max-width:26rem; }
.collection-story-actions > a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.65rem .9rem; color:#f7e0aa; border:1px solid #d6b56d; font-size:.86rem; font-weight:700; text-decoration:none; text-align:center; }
.collection-story-actions > a:hover { color:#1b1e1a; background:#e2c487; }
.collection-variant-picker > span { display:block; margin-bottom:.4rem; color:#e2c487; font-size:.75rem; font-weight:600; }
.collection-theme-options { display:flex; flex-wrap:wrap; gap:.4rem; }
.collection-theme-options button { min-height:44px; padding:.55rem .75rem; color:#f8efd9; background:#31352f; border:1px solid #b99b5f; font:600 .85rem/1.35 var(--sans); cursor:pointer; }
.collection-theme-options button[aria-pressed="true"] { color:#1b1e1a; background:#e2c487; }
.collection-story-gallery { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); align-items:start; gap:1.5rem; padding:1.5rem; background:#faf8f2; }
.collection-finished { display:block; min-width:0; margin:0; background:transparent; }
.collection-finished > button { position:relative; display:block; width:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.collection-finished > button img { display:block; width:100%; height:auto; max-height:420px; object-fit:contain; background:transparent; }
.collection-finished figcaption { margin:.6rem 0 0; padding:0; color:#625a4c; font-size:.73rem; line-height:1.5; font-weight:600; }
.collection-zoom-hint { display:inline-block; position:static; transform:none; margin:.5rem 0 0; padding:.4rem .65rem; color:#faf8f2; background:#30352e; font:600 .72rem/1.4 var(--sans); }
.collection-process { min-width:0; padding:0; background:transparent; border:0; }
.collection-process-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.collection-process-top .eyebrow { display:none; }
.collection-process-top h4 { margin:0; color:#22241f; font:600 clamp(1.65rem,2.2vw,2.2rem)/1.15 var(--serif); text-wrap:balance; }
.collection-slide-controls { display:flex; align-items:center; gap:.35rem; flex-shrink:0; }
.collection-slide-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; color:#252720; background:#eee7d9; border:1px solid #ae9663; font-size:1.25rem; cursor:pointer; }
.collection-slide-controls button:hover { background:#d8bc80; }
.collection-slide-controls span { min-width:2.8rem; color:#615744; font-size:.8rem; font-weight:600; text-align:center; }
.collection-slide { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-width:0; height:var(--process-slide-height,440px); background:#f0ebe0; }
.collection-slide.is-landscape-photo { grid-template-columns:minmax(0,1fr); grid-template-rows:280px minmax(0,1fr); height:var(--process-slide-height,440px); }
.collection-slide-image { min-width:0; min-height:0; overflow:hidden; background:#f0ebe0; }
.collection-slide-image button { display:block; position:relative; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.collection-slide-image img { display:block; width:100%; height:100%; object-fit:contain; max-width:100%; max-height:100%; }
.collection-slide-image .collection-zoom-hint { position:absolute; right:.65rem; bottom:.65rem; margin:0; }
.collection-slide-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:.65rem; min-width:0; padding:1.25rem; text-align:left; }
.collection-slide-count { display:none; }
.collection-slide-copy h4 { margin:0 0 .6rem; color:#21231e; font:600 1.65rem/1.12 var(--serif); text-wrap:balance; }
.collection-slide-copy p { margin:0; color:#4c4c44; font-size:.94rem; line-height:1.5; text-wrap:pretty; }
.collection-slide-copy small { display:block; margin-top:.75rem; color:#625c51; font-size:.8rem; line-height:1.4; }
.collection-slide-dots { display:flex; justify-content:center; gap:.2rem; padding:.3rem 0; }
.collection-slide-dots button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; cursor:pointer; }
.collection-slide-dots button::after { content:''; width:8px; height:8px; border-radius:50%; background:#938365; }
.collection-slide-dots button[aria-current="true"]::after { background:#654919; transform:scale(1.3); }
.collection-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem 1.25rem; margin:.35rem 0 0; padding-top:1rem; border-top:1px solid #d6cbb8; }
.collection-facts div { min-width:0; }
.collection-facts dt { color:#745a2b; font-size:.75rem; line-height:1.4; font-weight:700; }
.collection-facts dd { margin:.2rem 0 0; color:#3f4038; font-size:.88rem; line-height:1.45; overflow-wrap:anywhere; }
.collection-story-gallery.is-concept { grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); }
.collection-concept-panel { min-width:0; padding:1rem; }
.collection-concept-panel .collection-facts { margin:0; border:0; padding:0; }

.collection-finished-panel { min-width:0; }
.collection-finished-panel .collection-facts { margin-top:1rem; }
.collection-story [style] { min-width:0; }
.collection-story:has(.collection-variant-picker) .collection-finished > button img { height:var(--variant-photo-height,auto); }
/* Short stories keep their introduction, choices and facts together beside the photo. */
.collection-story.is-compact-story { display:block; }
.is-compact-story .collection-story-gallery { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); align-items:start; }
.is-compact-story .collection-finished { padding:0; }
.is-compact-story .collection-finished img { max-height:420px; }
.is-compact-story .collection-concept-panel { padding:.25rem 0; background:transparent; }
.is-compact-story .collection-facts { border:0; padding:0; margin:0; }
.is-compact-story .collection-facts dt { color:#745a2b; }
.is-compact-story .collection-facts dd { color:#3f4038; }
.collection-story.is-compact-story:not(.is-wide-story) { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr); grid-template-rows:max-content auto; grid-template-areas:"photo intro" "photo facts"; align-items:start; column-gap:1.5rem; row-gap:1rem; padding:1.5rem; }
.is-compact-story:not(.is-wide-story) .collection-story-gallery { display:contents; }
.is-compact-story:not(.is-wide-story) .collection-finished { grid-area:photo; }
.is-compact-story:not(.is-wide-story) .collection-story-header { grid-area:intro; display:flex; flex-direction:column; align-items:stretch; padding:0; gap:1rem; background:transparent; color:#22241f; }
.is-compact-story:not(.is-wide-story) .collection-story-intro .eyebrow { color:#745a2b; }
.is-compact-story:not(.is-wide-story) .collection-story-intro > [data-collection-detail] { color:#4c4c44; }
.is-compact-story:not(.is-wide-story) .collection-status { color:#745a2b; }
.is-compact-story:not(.is-wide-story) .collection-story-actions { max-width:none; flex-direction:row; flex-wrap:wrap; align-items:end; }
.is-compact-story:not(.is-wide-story) .collection-story-actions > a { color:#57431d; border-color:#ae9663; }
.is-compact-story:not(.is-wide-story) .collection-variant-picker > span { color:#745a2b; }
.is-compact-story:not(.is-wide-story) .collection-concept-panel { grid-area:facts; }



/* All shop cards share a media frame and stretch only to their own row. */
.shop-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; align-items:stretch; gap:1.25rem; margin-top:1.5rem; }
.shop-grid .shop-card { display:flex; flex-direction:column; grid-column:auto; width:100%; min-width:0; height:100%; background:#faf8f2; }
.shop-grid .shop-card figure.shop-photo { display:flex; flex-direction:column; width:100%; height:auto; min-height:0; margin:0; aspect-ratio:auto; background:#e7e1d5; }
.shop-grid .shop-card figure.shop-photo::before { display:none; }
.shop-photo .product-photo-media { position:relative; display:block; width:100%; height:auto; aspect-ratio:var(--shop-photo-ratio,1.5); overflow:hidden; }
.shop-grid .shop-card[data-product-id] .product-photo-media > img:first-child { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.shop-photo .photo-caption { display:block; position:static; min-height:2.9rem; margin:0; padding:.6rem .8rem; color:#f7f0e2; background:#1a1e19; font:600 .72rem/1.4 var(--sans); }
.shop-card .shop-card-body { display:flex; flex-direction:column; flex:1; min-width:0; padding:1.2rem; }
.shop-category { font-size:.72rem; line-height:1.5; }
.shop-card h3 { margin:.45rem 0 .5rem; min-height:0; font-size:1.85rem; line-height:1.12; text-wrap:balance; overflow-wrap:anywhere; }
.shop-card-body > p { margin:0 0 .85rem; min-height:0; font-size:.94rem; line-height:1.5; }
.shop-options { margin:.3rem 0 1rem; }
.shop-options > span { font-size:.76rem; }
.shop-options > div { display:flex; flex-wrap:wrap; gap:.35rem; }
.shop-options button { min-height:44px; padding:.5rem .65rem; font-size:.83rem; }
.shop-card .shop-card-end { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:.8rem; min-height:0; margin-top:auto; padding-top:1rem; }
.shop-card .shop-price { overflow-wrap:anywhere; min-width:0; max-width:100%; margin:0; font-size:1.7rem; white-space:normal; }
.shop-card .shop-price small { color:#625b4b; line-height:1.4; font-size:.72rem; white-space:normal; }
.shop-card .shop-quote { font-size:1.6rem; }
.shop-card-link { max-width:none; margin:0; font-size:.77rem; }
.catalog-availability { display:block; margin-top:.3rem; color:#5b5a51; font:500 .8rem/1.4 var(--sans); }
.catalog-retry { min-height:44px; padding:.55rem .7rem; color:#292920; background:#f4ebd7; border:1px solid #927137; font:600 .85rem/1.3 var(--sans); cursor:pointer; }
.shop-grid:empty, .board-gallery:empty { min-height:60vh; }

/* Short, aligned browse controls; long categories remain in the product content. */
.catalog-scope { display:flex; flex-wrap:wrap; gap:.5rem; max-width:1240px; margin:1rem auto 1.25rem; }
.shop-section .catalog-scope { justify-content:center; padding-inline:1.25rem; }
.catalog-scope button, .catalog-scope a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; padding:.65rem .9rem; color:#292920; background:#faf8f2; border:1px solid #a28c62; font:600 .88rem/1.4 var(--sans); text-decoration:none; text-align:center; cursor:pointer; }
.catalog-scope button[aria-pressed="true"] { color:#fff4db; background:#252b24; border-color:#252b24; }
.collection-browse-chapter { padding-top:2.5rem; }
.collection-browse-chapter .chapter-heading { margin-bottom:1.25rem; }
.collections-browser { display:grid; grid-template-columns:minmax(0,1fr) 155px; align-items:start; gap:1rem; max-width:1240px; min-width:0; margin:0 auto 1.5rem; padding:1rem; border:1px solid #c9b893; background:#eae3d6; }
.collections-browser-main { min-width:0; }
.collections-browser-label, .collections-browser-sort label { display:block; margin:0 0 .5rem; color:#6d5427; font-size:.76rem; font-weight:600; }
.collections-filter-options, .shop-filters { display:flex; flex-wrap:wrap; gap:.4rem; min-width:0; overflow:visible; white-space:normal; }
.collections-filter-options button, .shop-filters button { flex:0 1 auto; min-width:0; min-height:44px; max-width:100%; padding:.55rem .8rem; color:#292920; background:#faf8f2; border:1px solid #b9a983; font:600 .86rem/1.4 var(--sans); letter-spacing:normal; text-transform:none; text-align:center; cursor:pointer; }
.collections-filter-options button[aria-pressed="true"], .shop-filters button[aria-pressed="true"] { color:#fff9ec; background:#242720; border-color:#242720; }
.collections-browser-sort select { min-height:44px; width:100%; max-width:100%; padding:.55rem .7rem; color:#292920; background:#faf8f2; border:1px solid #b9a983; font:600 .86rem/1.4 var(--sans); }
.collections-browser-count { grid-column:1/-1; margin:0; color:#625b4b; font-size:.82rem; }
.shop-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; max-width:1240px; margin:1rem auto 0; padding:0; }
.shop-count { flex:1 1 100%; min-height:0; padding:0; font-size:.82rem; color:#625b4b; white-space:normal; overflow-wrap:anywhere; }
.catalog-scope :focus-visible, .collections-filter-options button:focus-visible, .shop-filters button:focus-visible { outline:3px solid #89621f; outline-offset:3px; }
.collection-theme-options button:focus-visible { outline:3px solid #e2c487; outline-offset:3px; }
.inquiry-trap { display:none !important; }
.inquiry-form input::placeholder, .inquiry-form textarea::placeholder { color:#aaa79c; opacity:1; }
.contact-inner { min-width:0; max-width:100%; }
.contact-inner h1 { margin:0; font:500 clamp(2.6rem,6vw,5.5rem)/1.03 var(--display); letter-spacing:-.025em; overflow-wrap:anywhere; }
.contact-inner .eyebrow { letter-spacing:.08em; overflow-wrap:anywhere; }
.contact-inner .heading-tail { white-space:normal; }
.catalog-scope button:active, .collection-slide-controls button:active, .shop-options button:active, .collection-theme-options button:active { transform:scale(.97); }

.catalog-scope button, .catalog-scope a, .shop-options button, .collections-filter-options button, .shop-filters button, .collection-theme-options button, .collection-facts dt, .collection-slide-copy h4, .collection-slide-copy p { overflow-wrap:anywhere; }

/* Viewport-fitting dialog has an explicit remaining-height media row. */
.collection-zoom { width:min(94vw,1280px); max-width:none; height:90dvh; max-height:90dvh; margin:auto; padding:0; overflow:hidden; color:#f7f2e8; background:#1d201c; border:1px solid #b99b5f; }
.collection-zoom[open] { display:grid; grid-template-rows:auto minmax(0,1fr); }
.collection-zoom::backdrop { background:rgb(12 14 12 / 90%); }
.collection-zoom-bar { display:flex; align-items:center; justify-content:space-between; gap:.7rem; min-height:60px; padding:.5rem .75rem; }
.collection-zoom-bar strong { min-width:0; font-size:.9rem; line-height:1.3; overflow-wrap:anywhere; }
.collection-zoom-bar > div { display:flex; flex-shrink:0; gap:.35rem; }
.collection-zoom-bar button { width:44px; height:44px; padding:0; color:#f7f2e8; background:#31352f; border:1px solid #a68b54; font-size:1.4rem; cursor:pointer; }
.collection-zoom-bar [data-zoom-close] { color:#1b1e1a; background:#e2c487; font-size:1.8rem; }
.collection-zoom-media { display:flex; align-items:center; justify-content:center; min-height:0; min-width:0; padding:12px; overflow:hidden; }
.collection-zoom-media img { flex:none; display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.image-dialog-open { overflow:hidden; }

/* The retained Home image has a readable, substantial text panel. */
.hero-copy { width:min(620px,48%); margin-left:clamp(1rem,4vw,4rem); margin-top:clamp(2rem,4vw,3.5rem); padding:clamp(1.5rem,2.6vw,2.5rem); background:rgba(13,17,13,.94); }
.hero-copy h1 { font-size:clamp(3rem,4.4vw,4.5rem); line-height:1.03; }
.hero-copy > p:not(.eyebrow) { max-width:440px; font-size:clamp(1.1rem,1.5vw,1.35rem); line-height:1.4; }
.hero-copy .eyebrow { font-size:.73rem; letter-spacing:.16em; }
.hero-copy .button-row { display:flex; flex-wrap:wrap; gap:.65rem; width:100%; margin-top:1.4rem; }
.hero-copy .button { min-height:48px; max-width:100%; padding:.8rem 1rem; font-size:.73rem; line-height:1.4; white-space:normal; text-align:center; }
.hero-copy > * { flex-shrink:0; }
.heading-tail { white-space:normal; }

@media (max-width:1023px) {
  .collection-story-header { grid-template-columns:minmax(0,1fr); }
  .collection-story-actions { max-width:none; flex-direction:row; flex-wrap:wrap; align-items:end; }
  .collection-story-gallery { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:1rem; padding:1rem; }
  .collection-process-top { flex-wrap:wrap; gap:.6rem; }
  .collection-slide { grid-template-columns:minmax(0,1fr); grid-template-rows:280px minmax(0,1fr); height:var(--process-slide-height,440px); }
  .collection-slide.is-landscape-photo { grid-template-rows:160px minmax(0,1fr); height:var(--process-slide-height,440px); }
  .collection-slide-copy { padding:1rem; }
  .collection-facts { grid-template-columns:minmax(0,1fr); }
  .shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shop-photo .product-photo-media { height:auto; }
}
@media (max-width:820px) {
  .hero-copy { width:100%; margin:0; padding:2rem 1.5rem; background:#151a14; }
  .hero-copy h1 { font-size:clamp(3rem,6.5vw,4.2rem); }
}
@media (max-width:620px) {
  .collection-story.is-compact-story:not(.is-wide-story) { display:block; padding:1.2rem; }
  .is-compact-story:not(.is-wide-story) .collection-story-header { margin-bottom:1rem; }
  .is-compact-story:not(.is-wide-story) .collection-story-gallery { display:block; padding:0; }
  .is-compact-story .collection-finished { padding:0; }
  .is-compact-story .collection-concept-panel { padding:1rem 0 0; }
  .is-wide-story .collection-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .collection-story-header { padding:1.2rem; gap:.9rem; }
  .collection-story-intro h3 { font-size:2.15rem; }
  .collection-story-intro > [data-collection-detail] { font-size:.95rem; }
  .collection-story-gallery, .collection-story-gallery.is-concept, .is-compact-story .collection-story-gallery { display:block; padding:1rem; }
  .collection-finished > button img { max-height:380px; }
  .collection-process { margin-top:1.5rem; }
  .collection-process-top h4 { font-size:1.8rem; }
  .collection-slide { grid-template-rows:260px minmax(0,1fr); height:var(--process-slide-height,440px); }
  .collection-slide.is-landscape-photo { grid-template-rows:160px minmax(0,1fr); height:var(--process-slide-height,440px); }
  .collection-slide-copy h4 { font-size:1.6rem; }
  .collection-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .collection-concept-panel { padding:1.25rem 0 .5rem; }
  .shop-grid { grid-template-columns:minmax(0,1fr); grid-auto-rows:auto; padding-inline:1.1rem; }
  .shop-photo .product-photo-media { height:auto; }
  .shop-card h3 { font-size:1.85rem; }
  .catalog-scope { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
  .shop-section .catalog-scope a { grid-column:1/-1; }
  .catalog-scope button, .catalog-scope a { padding:.65rem .5rem; font-size:.84rem; }
  .collections-browser { display:block; padding:.85rem; }
  .collections-browser-sort { display:flex; align-items:center; gap:.75rem; margin-top:.85rem; }
  .collections-browser-sort label { margin:0; }
  .collections-browser-sort select { width:auto; flex:1; min-width:0; }
  .collections-browser-count { margin-top:.8rem; }
  .collections-filter-options, .shop-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
  .collections-filter-options button, .shop-filters button { padding:.55rem .4rem; font-size:.84rem; }
  .shop-toolbar { display:block; margin:1rem 1.1rem 0; }
  .shop-count { display:block; margin-top:.75rem; }
  .collection-zoom { width:96vw; }
  .collection-zoom-bar { gap:.4rem; padding:.4rem; }
  .collection-zoom-bar strong { font-size:.8rem; }
  .hero-copy { padding:1.6rem 1.25rem; }
  .hero-copy h1 { font-size:clamp(2.6rem,10.5vw,3.6rem); }
  .hero-copy .button-row { display:grid; grid-template-columns:minmax(0,1fr); }
  .hero-copy .button { width:100%; font-size:.78rem; }
}

/* A distinct stock notice keeps available customization separate from sold photos. */
.stock-notice { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin:0; padding:1.5rem; color:var(--ink); background:#f7efe0; border:1px solid #ba9e65; }
.stock-notice > div { min-width:0; max-width:42rem; }
.stock-notice .eyebrow { margin:0 0 .5rem; color:#725621; }
.stock-notice h3 { margin:0 0 .5rem; font:600 1.8rem/1.15 var(--serif); text-wrap:balance; }
.stock-notice p:last-child { margin:0; font-size:1rem; line-height:1.55; }
.stock-notice .button { flex-shrink:0; max-width:100%; text-align:center; min-height:44px; }
.collection-story > .stock-notice { margin:1.25rem; }
@media (max-width:768px) { .stock-notice { flex-direction:column; align-items:stretch; gap:1rem; padding:1.15rem; } .stock-notice .button { align-self:flex-start; } }

/* The featured gathering set is compact: natural photo, details, then stock band. */
.shop-grid .shop-card-featured { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); height:auto; }
.shop-card-featured .product-photo-media { height:auto; aspect-ratio:var(--catalog-ratio); }
.shop-card-featured figure.shop-photo { align-self:start; background:transparent; }
.shop-card-featured .shop-card-body { padding:1.25rem 1.5rem; }
.shop-card-featured .shop-card-end { margin-top:0; }
.shop-card-featured > .stock-notice { grid-column:1 / -1; border-width:1px 0 0; padding:1rem 1.5rem; gap:1rem; }
.shop-card-featured .stock-notice h3 { font-size:1.35rem; }
.shop-card-featured .stock-notice .eyebrow { font-size:.65rem; margin-bottom:.35rem; }
.shop-card-featured .stock-notice p:last-child { font-size:.9rem; }
.shop-card-featured .stock-notice .button { width:auto; margin:0; padding:.7rem .85rem; font-size:.73rem; background:var(--gold); }
.shop-card-featured .stock-notice p { min-height:0; }
.shop-card-featured .stock-notice > div { flex:1 1 auto; }
@media(max-width:620px) {
 .shop-grid .shop-card-featured { display:flex; }
 .shop-card-featured .shop-card-body { padding:1.2rem; }
 .shop-card-featured > .stock-notice { padding:1rem 1.2rem; }
 .shop-card-featured .stock-notice .button { align-self:stretch; }
}

/* Source-bound tall detail: keep the full roof, enclosure and legs visible. */
.shop-card[data-product-id="greenhouse-tall"] .product-photo-media { display:flex; justify-content:center; align-items:center; }
.tall-window-crop { display:block; position:absolute; left:50%; transform:translateX(-50%); height:100%; aspect-ratio:164 / 302; overflow:hidden; }
.shop-grid .shop-card[data-product-id="greenhouse-tall"] .tall-window-crop > img { position:absolute; top:0; left:-30.4878%; display:block; width:468.9024%; max-width:none; height:100%; object-fit:fill; }
@media(min-width:621px) { .shop-card:is([data-product-id="large-greenhouse"],[data-product-id="greenhouse"],[data-product-id="greenhouse-tall"]) .product-photo-media { height:380px; aspect-ratio:auto; } }

@media(max-width:360px){ .transformation-card h3 { font-size:clamp(1.5rem,7.2vw,1.8rem); } }

.completed-feature .eyebrow { letter-spacing:.08em; text-wrap:balance; }
.completed-feature > div > p:not(.eyebrow), .transformation-card > p { text-wrap:balance; }

.transformation-card > a, .completed-feature-detail > strong { text-wrap:balance; }

.brand-lockup small { font-size:.7rem; }
.transformation-card > span { font-size:.75rem; letter-spacing:.08em; }
.maker-methods figcaption { font-size:.75rem; }
