.shop-shell{width:min(1240px,calc(100% - 48px));margin:auto;padding:clamp(64px,8vw,112px) 0 88px}
.shop-hero{max-width:900px;margin-bottom:clamp(76px,10vw,130px)}
.shop-hero h1{font:normal clamp(3.5rem,8vw,7.7rem)/.98 var(--reading);letter-spacing:-.055em;margin:22px 0 26px}
.shop-hero .lede{max-width:620px;color:var(--soft-white);font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.6}
.shop-section{scroll-margin-top:100px}
.shop-section+.shop-section{margin-top:clamp(88px,11vw,150px)}
.shop-section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:28px;border-top:1px solid var(--line);padding-top:24px}
.shop-section-heading .eyebrow{align-self:flex-start;min-width:180px}
.shop-section-heading h2{font:normal clamp(2.6rem,5vw,4.5rem)/1.06 var(--reading);letter-spacing:-.045em;margin:0}
.shop-section-heading>p:last-child{color:var(--soft-white);max-width:28ch;margin:0}
.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.shop-card{border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}
.shop-card-body{padding:clamp(24px,3vw,38px);display:flex;flex-direction:column;align-items:flex-start;flex:1}
.shop-card h3{font:normal clamp(2rem,3.5vw,3.2rem)/1.1 var(--reading);letter-spacing:-.035em;margin:10px 0 14px}
.shop-card-body>p:not(.eyebrow){color:var(--soft-white);max-width:55ch}
.shop-price{margin-top:auto;padding-top:16px}
.shop-action,.public-shop-link{display:inline-flex;justify-content:space-between;align-items:center;gap:45px;padding:14px 19px;background:var(--white);color:var(--black);text-decoration:none;font-weight:650;margin-top:12px}
.shop-action:hover,.public-shop-link:hover{background:var(--soft-white)}
.shop-secondary{margin-top:19px;text-underline-offset:4px}
.shop-note{color:var(--muted);max-width:85ch;margin-top:28px}
@media(max-width:900px){.shop-section-heading{display:block}.shop-section-heading h2{margin:12px 0}.shop-section-heading>p:last-child{max-width:65ch}}
@media(max-width:760px){.shop-grid{grid-template-columns:1fr}.shop-hero{margin-bottom:70px}.shop-section+.shop-section{margin-top:80px}}

.shop-product-image{aspect-ratio:1;background:#f5f5f5;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--line)}
.shop-product-image img{width:100%;height:100%;object-fit:contain}
.shop-options{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:16px;width:100%;margin-top:20px}
.shop-options label,#shop-checkout label{display:grid;gap:8px;font-size:.9rem}
.shop-options select,#shop-checkout input,#shop-checkout select{font:inherit;width:100%;padding:12px;border:1px solid var(--line);border-radius:0;background:var(--panel);color:var(--white);box-sizing:border-box}
.shop-buy{border:0;cursor:pointer}
#shop-checkout{position:fixed;box-sizing:border-box;width:min(600px,calc(100% - 24px));max-height:90dvh;overflow:auto;padding:32px;border:1px solid var(--line);background:var(--panel);color:var(--white)}
#shop-checkout::backdrop{background:#000b}
#shop-checkout h2{font:normal 2.4rem/1.1 var(--reading);margin:20px 0}
#shop-checkout [hidden],.shop-page [hidden]{display:none!important}
#shop-checkout .checkout-close{float:right}
#checkout-fields{border:0;padding:0;display:grid;gap:16px;margin-top:24px;min-width:0}
#checkout-fields legend{font-weight:600;padding:0 0 20px}
.checkout-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.checkout-total{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:16px 0}
.checkout-total p{display:flex;justify-content:space-between;gap:16px;margin:8px 0}
#shop-checkout .checkout-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.5}
#shop-checkout .checkout-consent input{width:18px;height:18px;flex:none;margin-top:3px}
#shop-checkout button:disabled{opacity:.5;cursor:wait}
#checkout-message{line-height:1.6}
#checkout-orders{display:block}
.shop-page :focus-visible{outline:2px solid var(--white);outline-offset:4px}
@media(max-width:480px){#shop-checkout{padding:24px}.shop-options{grid-template-columns:1fr 90px}}

.shop-custom-note{border-top:1px solid var(--line);margin-top:64px;padding-top:24px;color:var(--muted);font-size:.95rem}
.shop-custom-note a{color:var(--white);text-underline-offset:4px}

/* Compact storefront product layouts. */
.shop-shell{padding-top:36px}
.shop-hero{max-width:900px;margin-bottom:36px}
.shop-hero h1{font-size:clamp(2.8rem,5vw,4.5rem);line-height:1.05;margin:12px 0 16px;letter-spacing:-.04em}
.shop-hero .lede{font-size:1.05rem;margin:0;max-width:65ch}
.shop-section-heading{padding-top:18px;margin-bottom:20px;align-items:center}
.shop-section-heading h2{font-size:1.35rem;letter-spacing:0;font-family:inherit}
.shop-section-heading>p:last-child{max-width:none;font-size:.9rem}
.shop-card-body{padding:22px}
.shop-card h3{font-size:2rem;margin:8px 0}
.shop-card-body>p{margin:6px 0}
.shop-product-image{border:0;border-bottom:1px solid var(--line);padding:0;cursor:zoom-in;width:100%}
.shop-product-image img{transition:transform .2s}
.shop-product-image:hover img{transform:scale(1.025)}
.shop-card .shop-price{font-weight:600;padding-top:8px}
.shop-card .shop-action{margin-top:16px}
.shop-card .shop-secondary{font-size:.9rem}
#shop-detail{position:fixed;box-sizing:border-box;width:min(1040px,calc(100% - 24px));max-height:92dvh;overflow:auto;padding:28px;border:1px solid var(--line);background:var(--panel);color:var(--white)}
#shop-detail::backdrop{background:#000b}
#shop-detail .checkout-close{display:block;margin-left:auto;margin-bottom:20px}
.detail-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;clear:both}
.detail-photo{background:#f5f5f5;align-self:start}
.detail-photo img{width:100%;height:auto;display:block}
.detail-copy h2{font:normal 2.6rem/1.1 var(--reading);margin:12px 0}
.detail-copy p{line-height:1.6}
.detail-copy details{border-top:1px solid var(--line);padding:16px 0}
.detail-copy summary{cursor:pointer;font-weight:600}
.detail-copy details p{font-size:.95rem;color:var(--soft-white)}
.tee-size-chart{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:.85rem}
.tee-size-chart caption{margin-bottom:8px;color:var(--muted);text-align:left;font-size:.78rem}
.tee-size-chart th,.tee-size-chart td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.tee-size-chart th:first-child{width:22%}
.tee-size-chart thead th{color:var(--muted);font-size:.75rem}
.detail-copy .shop-action{width:100%;box-sizing:border-box}
.detail-copy .shop-note{font-size:.85rem}
@media(max-width:760px){.shop-shell{width:calc(100% - 32px);padding-top:28px}.shop-hero{margin-bottom:28px}.shop-section-heading{display:flex;align-items:start;gap:16px}.shop-section-heading h2{margin:0}.shop-section-heading>p:last-child{text-align:right}.detail-layout{grid-template-columns:1fr}.detail-photo{max-width:480px}.detail-copy h2{font-size:2.1rem}#shop-detail{padding:20px}}
@media(prefers-reduced-motion:reduce){.shop-product-image img{transition:none}}

.shop-story{border-top:1px solid var(--line);margin-top:clamp(64px,8vw,100px);padding-top:30px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(28px,5vw,80px);align-items:start}
.shop-story h2{font:normal clamp(2.1rem,4vw,3.9rem)/1.08 var(--reading);letter-spacing:-.04em;max-width:16ch;margin:22px 0 0}
.shop-story p:not(.eyebrow){color:var(--soft-white);line-height:1.7;max-width:50ch;margin:0 0 22px}
.shop-story a{color:var(--white);text-underline-offset:5px}
@media(max-width:760px){.shop-story{grid-template-columns:1fr}.shop-story h2{margin-top:14px}.shop-story p:not(.eyebrow){margin:0 0 18px}}


/* Studio prints preserve the complete, bordered print layout. */
.art-introduction{max-width:72ch;color:var(--soft-white);line-height:1.7;margin-bottom:28px}
.art-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.art-card h3{font-size:1.55rem;line-height:1.2}
.art-image{aspect-ratio:5/7;background:#fff}
.art-image img{object-fit:contain}
.art-detail-photo{background:#fff}
.art-card .shop-action{gap:16px;font-size:.9rem}
@media(max-width:1000px){.art-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.art-grid{grid-template-columns:1fr}}

.product-mockup{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;background:#e9e8e5;color:#222}
.mockup-scene{position:absolute;inset:0;display:block}
.mockup-object{position:absolute;left:27%;top:12%;width:46%;aspect-ratio:5/7;background:white;transform:perspective(1000px) rotateY(-10deg) rotateZ(-5deg);box-shadow:12px 20px 22px #0002,0 1px 2px #0002}
.mockup-art{display:block;width:100%;height:100%;object-fit:fill}
.mockup-paper .mockup-object{transform:perspective(1000px) rotateX(8deg) rotateY(-12deg) rotateZ(-7deg);box-shadow:9px 17px 19px #0002,0 1px 1px #0002}
.mockup-board .mockup-object{transform:perspective(1000px) rotateY(-18deg) rotateZ(-4deg);box-shadow:3px 1px 0 #d5d0c5,5px 2px 0 #a7a292,18px 24px 24px #0003}
.mockup-board .mockup-art{border:1px solid #dedbd2;box-sizing:border-box}
.mockup-board-stand .mockup-scene{background:url('/product-mockups/prodigi-small-oak-stand.jpg') center/100% 100% no-repeat;transform:scale(1.32) translateY(-8.3%);transform-origin:50% 50%}
.mockup-board-stand .mockup-object{left:31.1%;top:36.15%;width:35.65%;height:49.65%;aspect-ratio:auto;transform:none;box-shadow:none;background:transparent;overflow:hidden}
.mockup-board-stand .mockup-art{mix-blend-mode:multiply}
.art-image{aspect-ratio:1}
.art-image .product-mockup img{transition:none}
.art-image:hover .product-mockup img{transform:none}
.art-detail-media{min-width:0;align-self:start}
.art-detail-media .product-mockup{border:1px solid var(--line);box-sizing:border-box}
.mockup-caption{font-size:.9rem;line-height:1.5;margin:14px 0 0}
#flat-art-preview{margin-top:18px;background:#fff}
#flat-art-preview img{width:100%;height:auto;display:block}
.art-detail-media .shop-note{font-size:.8rem;line-height:1.5;margin-top:14px}

/* Apparel leads; personal prints and the studio collection stay compact. */
.shop-hero{max-width:900px;margin-bottom:32px}
.shop-hero h1{font-size:clamp(2.4rem,5vw,4rem);line-height:1.08;margin:12px 0 16px}
.shop-hero .lede{max-width:65ch;line-height:1.6}
.personal-print-feature{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center;border-top:1px solid var(--line);padding-top:28px;margin-top:64px}
.personal-print-feature h2{font:normal clamp(1.8rem,3vw,2.5rem)/1.15 var(--reading);margin:12px 0}
.personal-print-feature p:not(.eyebrow){color:var(--soft-white);line-height:1.65;max-width:60ch}
.dream-print-actions .shop-action{margin-bottom:18px}
.dream-print-actions p{font-size:.9rem;margin-bottom:0}
.dream-print-actions p + p{margin-top:12px}
.dream-print-actions a:not(.shop-action){color:var(--white);text-underline-offset:4px}
.collection-section{margin-top:36px}
.collection-browser{border:1px solid var(--line);background:var(--panel)}
.collection-summary{display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:28px;padding:20px;cursor:pointer;list-style:none}
.collection-summary::-webkit-details-marker{display:none}
.collection-example{display:block;overflow:hidden}
.collection-copy{display:grid;gap:9px;max-width:58ch}
.collection-copy h2{font:normal 1.8rem/1.15 var(--reading);margin:0}
.collection-copy>span:not(.eyebrow){color:var(--soft-white);font-size:.95rem;line-height:1.5}
.collection-copy .collection-price{font-size:.85rem}
.collection-toggle{display:flex;align-items:center;gap:14px;font-size:.9rem;font-weight:600}
.collection-chevron{font-size:1.4rem}
.collection-close-label{display:none}
.collection-browser[open] .collection-close-label{display:inline}
.collection-browser[open] .collection-open-label{display:none}
.collection-browser[open] .collection-chevron{transform:rotate(180deg)}
.collection-content{padding:0 24px 24px;border-top:1px solid var(--line)}
.collection-content .art-introduction{margin-top:24px;font-size:.95rem}
@media(max-width:760px){.personal-print-feature{grid-template-columns:1fr;gap:4px;margin-top:48px}.collection-summary{grid-template-columns:96px minmax(0,1fr);gap:18px;padding:16px}.collection-toggle{grid-column:1/-1;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.collection-copy h2{font-size:1.5rem}.collection-copy>span:not(.eyebrow){font-size:.85rem}.collection-content{padding:0 16px 16px}}
