.shop-body {
  --st-paper: #e7dfcf;
  --st-paper-deep: #d6cbb8;
  --st-ink: #1c1b17;
  --st-walnut: #785f36;
  --st-dark: #29231c;
  --st-line: rgba(27, 26, 22, .18);
  --header-h: 6rem;
  --pad: clamp(1.25rem, 4vw, 4.75rem);
  background: var(--st-paper);
  color: var(--st-ink);
}

html.shop-menu-open,
.shop-body.shop-menu-open,
.shop-body.shop-drawer-open { overflow: hidden; }
.shop-body button { cursor: pointer; }
.shop-body :focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
#shop-view { min-height: 70vh; padding-top: var(--header-h); outline: none; }

/* Shared Shakespeare & Taylor chrome */
.shop-header {
  position: fixed;
  z-index: 120;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  height: var(--header-h);
  align-items: center;
  gap: 2rem;
  padding: 0 var(--pad);
  border-bottom: 1px solid var(--st-line);
  background: rgba(231, 223, 207, .96);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.shop-wordmark { display: inline-flex; align-items: baseline; gap: .55rem; white-space: nowrap; }
.shop-wordmark span { font: italic 400 1.6rem/1 var(--serif); letter-spacing: -.035em; }
.shop-wordmark b { font: 600 .58rem/1 var(--sans); letter-spacing: .17em; text-transform: uppercase; }
.shop-nav { display: flex; align-items: center; gap: clamp(.7rem, 1.1vw, 1.3rem); margin-left: auto; font-size: .56rem; font-weight: 600; line-height: 1.55; letter-spacing: .085em; text-transform: uppercase; }
.shop-nav a,
.shop-nav button { position: relative; padding: .7rem 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; white-space: nowrap; }
.shop-nav a::after { position: absolute; right: 0; bottom: .35rem; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .3s; }
.shop-nav a:hover::after,
.shop-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.shop-nav .shop-nav-contact { display: inline-flex; min-height: 2.65rem; align-items: center; padding: 0 .9rem; border: 1px solid rgba(27, 26, 22, .48); transition: border-color .25s, background .25s, color .25s; }
.shop-nav .shop-nav-contact:hover,
.shop-nav .shop-nav-contact:focus-visible { border-color: var(--st-ink); background: var(--st-ink); color: var(--st-paper); }
.shop-nav .shop-corinthian { padding-left: 1.15rem; border-left: 1px solid rgba(27, 26, 22, .28); color: var(--st-walnut); }
.shop-nav .shop-corinthian::after { display: none; }
.shop-corinthian-mark,
.shop-corinthian-tagline { display: none; }
.shop-corinthian-copy { display: block; }
.shop-corinthian-label { position: relative; display: inline-block; }
.shop-corinthian-label::after { position: absolute; right: 0; bottom: -.32rem; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .3s; }
.shop-corinthian:hover .shop-corinthian-label::after,
.shop-corinthian:focus-visible .shop-corinthian-label::after { transform: scaleX(1); transform-origin: left; }
.shop-header-actions { display: none; align-items: center; gap: .8rem; }
.basket-link { display: flex; align-items: center; gap: .5rem; border: 0; background: transparent; color: inherit; font-size: .56rem; font-weight: 600; letter-spacing: .085em; text-transform: uppercase; }
.shop-nav .basket-link::after { display: none; }
.basket-label { position: relative; display: inline-block; }
.basket-label::after { position: absolute; right: 0; bottom: -.32rem; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .3s; }
.basket-link:hover .basket-label::after,
.basket-link:focus-visible .basket-label::after,
.basket-link[aria-current="page"] .basket-label::after { transform: scaleX(1); transform-origin: left; }
.basket-link [data-basket-count] { display: inline-grid; width: 1.45rem; height: 1.45rem; place-items: center; border-radius: 50%; background: var(--st-ink); color: var(--st-paper); font-size: .56rem; }
.basket-link--mobile { display: none; }
.shop-menu-toggle { position: relative; z-index: 140; display: none; width: 3rem; height: 3rem; padding: .7rem; border: 0; background: transparent; color: inherit; }
.shop-menu-toggle i { position: absolute; top: 50%; right: .7rem; display: block; width: 1.35rem; height: 1px; margin: 0; background: currentColor; transform-origin: center; transition: transform .3s; }
.shop-menu-toggle i:first-child { transform: translateY(calc(-50% - .22rem)); }
.shop-menu-toggle i:last-child { transform: translateY(calc(-50% + .22rem)); }

.shop-button { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; padding: .75rem 1.15rem; border: 1px solid currentColor; background: transparent; color: inherit; font-size: .61rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; transition: background .25s, color .25s; }
.shop-button:hover,
.shop-button:focus-visible { background: var(--st-ink); color: var(--st-paper); }
.shop-button--light:hover,
.shop-button--light:focus-visible { background: #f8f5ed; color: var(--st-ink); }
.shop-button--dark { border-color: var(--st-ink); color: var(--st-ink); }
.shop-text-link { display: inline-block; padding: .55rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: inherit; font-size: .61rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.shop-text-link:hover { color: var(--st-walnut); }

/* Home */
.shop-hero { display: grid; min-height: calc(100svh - var(--header-h)); grid-template-columns: .88fr 1.12fr; overflow: hidden; }
.shop-hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(4rem, 9vw, 9rem) var(--pad); }
.shop-hero-copy h1 { margin: 0; font: 400 clamp(4.8rem, 9vw, 9.5rem)/.82 var(--serif); letter-spacing: -.055em; }
.shop-hero-copy h1 span { display: block; margin-left: 1ch; font-style: italic; }
.shop-hero-copy > p:not(.kicker) { max-width: 28rem; margin: 2rem 0; font-family: var(--serif); font-size: 1.12rem; line-height: 1.6; }
.shop-hero-media { position: relative; min-height: 48rem; overflow: hidden; clip-path: inset(0 0 0 15% round 48% 0 0 0); }
.shop-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) contrast(.96); animation: shop-hero-enter 1.2s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes shop-hero-enter { from { opacity: .55; transform: scale(1.035); } to { opacity: 1; transform: none; } }

.edition-ticker { overflow: hidden; padding: 1rem 0; border-top: 1px solid var(--st-line); border-bottom: 1px solid var(--st-line); white-space: nowrap; }
.edition-ticker div { display: inline-flex; gap: 3rem; animation: ticker 30s linear infinite; font-size: .61rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.edition-ticker span::after { margin-left: 3rem; color: var(--st-walnut); content: "✦"; }
@keyframes ticker { to { transform: translateX(-50%); } }

.shop-section { padding: clamp(7rem, 11vw, 12rem) var(--pad); }
.shop-section-head { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: clamp(3rem, 6vw, 6rem); }
.shop-section-head h2 { margin: 0; font: 400 clamp(3.8rem, 7vw, 7rem)/.88 var(--serif); letter-spacing: -.05em; }
.shop-section-head > p { max-width: 27rem; margin: 0; font-family: var(--serif); font-size: 1.02rem; line-height: 1.65; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 2rem); }
.product-card[hidden] { display: none; }
.product-image { aspect-ratio: .82; overflow: hidden; background: var(--st-paper-deep); }
.product-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68); transition: transform .75s cubic-bezier(.2, .7, .2, 1), filter .45s; }
.product-image--contain { background: #f2f1ef; }
.product-image--contain img { object-fit: contain; }
.product-card:hover .product-image img { transform: scale(1.025); filter: saturate(.95); }
.product-info { display: grid; grid-template-columns: 1fr auto; gap: .4rem 1rem; padding: 1rem 0; border-bottom: 1px solid var(--st-line); }
.product-info h3 { margin: 0; font: 400 clamp(1.35rem, 2vw, 1.9rem)/1 var(--serif); }
.product-info p { grid-column: 1; margin: 0; color: #625d53; font-size: .72rem; }
.product-info b { grid-row: 1 / 3; grid-column: 2; font-size: .68rem; font-weight: 500; white-space: nowrap; }
.product-info small,
.product-price small,
.basket-row small { display: block; margin-top: .2rem; color: #6b6559; font-size: .56rem; font-weight: 400; text-align: right; }
.collection-link { margin: 3rem 0 0; text-align: right; }

.shop-editorial { display: grid; min-height: 92svh; grid-template-columns: 1.05fr .95fr; background: var(--st-dark); color: #f7f1e5; }
.shop-editorial-image { min-height: 70svh; overflow: hidden; }
.shop-editorial-image img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.62) saturate(.55); transition: filter .55s, transform 1s; }
.shop-editorial:hover .shop-editorial-image img { filter: brightness(.7) saturate(.78); transform: scale(1.008); }
.shop-editorial-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(5rem, 9vw, 10rem) var(--pad); }
.shop-editorial-copy .kicker { color: #c8ad7a; }
.shop-editorial-copy h2 { margin: 0; font: 400 clamp(4rem, 7vw, 7.4rem)/.9 var(--serif); letter-spacing: -.05em; }
.shop-editorial-copy > p:not(.kicker) { max-width: 31rem; color: rgba(255, 255, 255, .68); font-family: var(--serif); font-size: 1.05rem; line-height: 1.65; }
.shop-action-row { display: flex; flex-wrap: wrap; gap: 1.5rem; }

.corinthian-sister { display: grid; min-height: 85svh; grid-template-columns: .9fr 1.1fr; background: #08251f; color: #fbfaf6; }
.corinthian-sister-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(5rem, 9vw, 10rem) var(--pad); }
.corinthian-sister-copy > img { width: clamp(10rem, 16vw, 14rem); margin-bottom: clamp(4rem, 8vw, 8rem); }
.corinthian-sister-copy .kicker { color: #c7d2ce; }
.corinthian-sister-copy h2 { margin: 0 0 2rem; font: 400 clamp(3.6rem, 6vw, 6.5rem)/.92 var(--serif); letter-spacing: -.045em; }
.corinthian-sister-copy > p:not(.kicker) { max-width: 31rem; color: rgba(251, 250, 246, .7); font-family: var(--serif); font-size: 1.04rem; line-height: 1.65; }
.corinthian-sister figure { min-height: 70svh; margin: 0; overflow: hidden; }
.corinthian-sister figure img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.82) brightness(.66); }

/* Collections */
.collections-page { padding-bottom: clamp(7rem, 11vw, 12rem); }
.collections-hero { display: grid; min-height: 66svh; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; padding: clamp(5rem, 9vw, 9rem) var(--pad); border-bottom: 1px solid var(--st-line); }
.collections-hero h1 { margin: 0; font: 400 clamp(5.5rem, 10vw, 11rem)/.8 var(--serif); letter-spacing: -.06em; }
.collections-hero h1 em { color: var(--st-walnut); font-weight: 400; }
.collections-hero > p { max-width: 29rem; margin: 0; padding-bottom: 1rem; font-family: var(--serif); font-size: 1.14rem; line-height: 1.65; }
.collection-toolbar { position: sticky; z-index: 20; top: var(--header-h); display: grid; grid-template-columns: auto 1fr auto; gap: 2rem; align-items: center; padding: 1.3rem var(--pad); border-bottom: 1px solid var(--st-line); background: rgba(231, 223, 207, .96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.collection-toolbar > p { margin: 0; font-size: .58rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.collection-filters { display: flex; justify-content: center; gap: .45rem; }
.collection-filters button { padding: .55rem .75rem; border: 1px solid transparent; background: transparent; font-size: .58rem; letter-spacing: .08em; }
.collection-filters button:hover,
.collection-filters button.is-active { border-color: var(--st-ink); }
.collection-count { text-align: right; }
.collections-grid-wrap { padding: clamp(4rem, 7vw, 7rem) var(--pad) 0; }

/* Product */
.product-page { padding-bottom: clamp(7rem, 10vw, 11rem); }
.product-breadcrumb { display: flex; gap: .7rem; padding: 1.3rem var(--pad); border-bottom: 1px solid var(--st-line); color: #635e54; font-size: .58rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.product-breadcrumb a { border-bottom: 1px solid; }
.product-layout { display: grid; grid-template-columns: 1.08fr .92fr; align-items: start; }
.product-gallery { display: grid; gap: 1px; background: var(--st-line); }
.product-gallery figure { aspect-ratio: 1 / .86; margin: 0; overflow: hidden; background: var(--st-paper-deep); }
.product-gallery figure:nth-child(2) { aspect-ratio: 1 / .72; }
.product-gallery img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.product-summary { position: sticky; top: var(--header-h); padding: clamp(5rem, 8vw, 8rem) var(--pad); }
.product-summary h1 { max-width: 8ch; margin: 0; font: 400 clamp(4.2rem, 7vw, 7.4rem)/.86 var(--serif); letter-spacing: -.055em; }
.product-price { margin: 1.5rem 0 2.3rem; font-size: .82rem; }
.product-price small { display: inline; margin-left: .35rem; }
.product-description { max-width: 33rem; color: #554f46; font-family: var(--serif); font-size: 1.12rem; line-height: 1.65; }
.personalisation { width: 100%; margin: 2.3rem 0 1.5rem; padding: 1.4rem 0; border: 0; border-top: 1px solid var(--st-line); border-bottom: 1px solid var(--st-line); }
.personalisation legend { padding: 0 0 1rem; font-size: .58rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.personalisation label { display: flex; gap: .75rem; align-items: center; font-size: .8rem; }
.personalisation input[type="checkbox"] { width: 1.1rem; height: 1.1rem; accent-color: var(--st-ink); }
.engraving-field { display: grid !important; gap: .7rem !important; margin-top: 1.4rem; }
.engraving-field[hidden] { display: none !important; }
.engraving-field span { color: #625d53; font-size: .68rem; }
.engraving-field input { width: 100%; padding: .8rem 0; border: 0; border-bottom: 1px solid var(--st-line); border-radius: 0; background: transparent; }
.personalisation-note { margin: 2.2rem 0 1.5rem; color: #625d53; font-size: .76rem; }
.add-button { min-height: 3.5rem; padding: .9rem 1.4rem; border: 1px solid var(--st-ink); background: var(--st-ink); color: var(--st-paper); font-size: .61rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; transition: background .25s, color .25s; }
.add-button:hover:not(:disabled) { background: transparent; color: var(--st-ink); }
.add-button:disabled { cursor: not-allowed; opacity: .55; }
.shop-note { max-width: 31rem; margin: 1rem 0 0; color: #6b6559; font-size: .7rem; line-height: 1.55; }
.product-facts { margin-top: 3rem; border-top: 1px solid var(--st-line); }
.product-facts details { border-bottom: 1px solid var(--st-line); }
.product-facts summary { padding: 1.2rem 0; font-size: .64rem; font-weight: 600; letter-spacing: .12em; list-style: none; text-transform: uppercase; }
.product-facts summary::-webkit-details-marker { display: none; }
.product-facts summary::after { float: right; content: "+"; }
.product-facts details[open] summary::after { content: "−"; }
.product-facts details > div { display: grid; grid-template-columns: 1fr auto; gap: .8rem 2rem; padding: .4rem 0 1.3rem; font-size: .72rem; }
.product-facts details > div b { font-weight: 500; text-align: right; }
.product-facts details > p { max-width: 31rem; margin: 0 0 1rem; color: #625d53; font-size: .78rem; line-height: 1.65; }
.product-facts .shop-text-link { margin-bottom: 1.3rem; }
.related-products { padding: clamp(7rem, 11vw, 11rem) var(--pad) 0; }
.related-products .product-grid { grid-template-columns: repeat(3, 1fr); }

/* Custom furniture: the purpose-led editorial direction, owned by Shakespeare & Taylor */
.custom-furniture-hero { display: grid; min-height: calc(100svh - var(--header-h)); grid-template-columns: .8fr 1.2fr; background: var(--st-paper); }
.custom-furniture-hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(5rem, 9vw, 9rem) var(--pad); }
.custom-furniture-hero-copy h1 { margin: .8rem 0 2rem; font: 400 clamp(5.2rem, 8.4vw, 9.2rem)/.84 var(--serif); letter-spacing: -.055em; }
.custom-furniture-hero-copy h1 em { color: var(--st-walnut); }
.custom-furniture-hero-copy > p:not(.kicker) { max-width: 29rem; font-family: var(--serif); font-size: 1.12rem; }
.custom-furniture-hero-copy .shop-button { margin-top: 1rem; }
.custom-furniture-hero-images { display: grid; grid-template: repeat(12, 1fr) / repeat(12, 1fr); min-height: calc(100svh - var(--header-h)); gap: clamp(.7rem, 1.4vw, 1.4rem); padding: clamp(1rem, 2vw, 2rem); background: var(--st-dark); }
.custom-furniture-hero-images figure { margin: 0; overflow: hidden; }
.custom-furniture-hero-images figure:first-child { grid-area: 1 / 1 / 9 / 8; }
.custom-furniture-hero-images figure:nth-child(2) { grid-area: 2 / 8 / 7 / 13; }
.custom-furniture-hero-images figure:last-child { grid-area: 7 / 7 / 13 / 12; }
.custom-furniture-hero-images img { height: 100%; object-fit: cover; filter: saturate(.58) brightness(.78); }
.custom-furniture-hero-images figure:first-child img { object-position: center 54%; }
.custom-furniture-intro { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(4rem, 10vw, 11rem); align-items: end; padding: clamp(7rem, 11vw, 12rem) var(--pad); }
.custom-furniture-intro h2 { margin: 0; font: 400 clamp(4.2rem, 6.5vw, 7.2rem)/.92 var(--serif); letter-spacing: -.05em; }
.custom-furniture-intro > div > p:not(.custom-furniture-lede) { max-width: 35rem; color: #625d53; line-height: 1.8; }
.custom-furniture-lede { font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.45; }
.custom-furniture-study { display: grid; min-height: 82svh; grid-template-columns: 1.12fr .88fr; background: var(--st-dark); color: #f3ecdd; }
.custom-furniture-study-main { position: relative; min-height: 72svh; margin: 0; padding: clamp(1.5rem, 4vw, 4rem); background: var(--st-paper-deep); }
.custom-furniture-study-main img { height: 100%; object-fit: contain; filter: saturate(.52); }
.custom-furniture-study-main figcaption { position: absolute; right: 1.5rem; bottom: 1.5rem; left: 1.5rem; color: var(--st-ink); font-size: .56rem; letter-spacing: .13em; text-transform: uppercase; }
.custom-furniture-study-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(5rem, 9vw, 9rem) var(--pad); }
.custom-furniture-study-copy .kicker { color: #c8ad7a; }
.custom-furniture-study-copy h2 { margin: 0 0 2.5rem; font: 400 clamp(4rem, 6vw, 6.7rem)/.92 var(--serif); letter-spacing: -.05em; }
.custom-furniture-study-copy ol { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.custom-furniture-study-copy li { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.custom-furniture-study-copy li span { padding-top: .2rem; color: #c8ad7a; font-size: .55rem; letter-spacing: .12em; }
.custom-furniture-study-copy li p { margin: 0; color: rgba(243,236,221,.72); font-family: var(--serif); }
.custom-furniture-scope { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(4rem, 10vw, 11rem); align-items: center; padding: clamp(7rem, 11vw, 12rem) var(--pad); }
.custom-furniture-scope > div { max-width: 44rem; }
.custom-furniture-scope h2 { margin: 0 0 2rem; font: 400 clamp(4rem, 6.5vw, 7rem)/.9 var(--serif); letter-spacing: -.05em; }
.custom-furniture-scope > div > p:not(.kicker) { max-width: 34rem; color: #625d53; font-family: var(--serif); font-size: 1.08rem; }
.custom-furniture-scope dl { margin: 3rem 0 0; }
.custom-furniture-scope dl div { display: grid; grid-template-columns: .7fr 1.3fr; gap: 1.25rem; padding: 1rem 0; border-top: 1px solid var(--st-line); }
.custom-furniture-scope dt { font-family: var(--serif); }
.custom-furniture-scope dd { margin: 0; color: #625d53; font-size: .72rem; line-height: 1.7; }
.custom-furniture-scope figure { margin: 0; }
.custom-furniture-scope figure img { width: 100%; max-height: 78svh; object-fit: cover; filter: saturate(.58); }
.custom-furniture-scope figcaption { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--st-line); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.custom-furniture-close { padding: clamp(7rem, 11vw, 12rem) var(--pad); background: var(--st-paper-deep); text-align: center; }
.custom-furniture-close h2 { max-width: 70rem; margin: 0 auto 2.5rem; font: 400 clamp(3.4rem, 6vw, 6.8rem)/.92 var(--serif); letter-spacing: -.04em; }

.shop-story { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; padding: clamp(7rem, 11vw, 12rem) var(--pad); }
.shop-story header { position: sticky; top: calc(var(--header-h) + 3rem); align-self: start; }
.shop-story h1 { margin: 0; font: 400 clamp(4.4rem, 7vw, 8rem)/.86 var(--serif); letter-spacing: -.055em; }
.shop-story h1 em { color: var(--st-walnut); }
.shop-story article { max-width: 52rem; }
.shop-story article p { max-width: 41rem; font-size: 1.05rem; line-height: 1.8; }
.shop-story .story-lede { font-family: var(--serif); font-size: clamp(1.4rem, 2.2vw, 2.1rem); line-height: 1.4; }
.shop-story article img { width: 100%; margin: 4rem 0; filter: saturate(.72); }

/* Basket */
.basket-page { min-height: 72svh; padding: clamp(6rem, 9vw, 9rem) var(--pad); }
.basket-page > h1 { margin: 0 0 clamp(4rem, 8vw, 8rem); font: 400 clamp(5rem, 10vw, 10rem)/.82 var(--serif); letter-spacing: -.055em; }
.basket-empty { padding: 3rem 0; border-top: 1px solid var(--st-line); }
.basket-row { display: grid; grid-template-columns: 9rem 1fr auto auto; gap: 2rem; align-items: center; padding: 1.5rem 0; border-top: 1px solid var(--st-line); }
.basket-row > img { width: 9rem; aspect-ratio: 1; object-fit: cover; }
.basket-row h2 { margin: 0 0 .5rem; font: 400 1.7rem/1 var(--serif); }
.basket-row p,
.basket-row span { margin: 0; color: #625d53; font-size: .72rem; }
.basket-row > b { font-size: .74rem; font-weight: 500; }
.basket-row > button { padding: .3rem 0; border: 0; border-bottom: 1px solid; background: transparent; font-size: .62rem; }
.basket-summary { display: grid; max-width: 34rem; grid-template-columns: 1fr auto; gap: 1.5rem; margin: 4rem 0 0 auto; padding-top: 2rem; border-top: 1px solid var(--st-line); }
.basket-summary > b { text-align: right; }
.basket-summary .add-button,
.basket-summary p { grid-column: 1 / -1; }
.basket-summary p { margin: 0; color: #625d53; font-size: .72rem; text-align: right; }

/* Footer and contact drawer */
.shop-footer { padding: 6rem var(--pad) 2rem; background: var(--st-ink); color: #f3ecdd; }
.shop-footer-grid { display: grid; grid-template-columns: minmax(14rem, 1.45fr) minmax(9rem, .72fr) minmax(9rem, .82fr) minmax(15rem, 1.1fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; padding-bottom: 4rem; border-bottom: 1px solid rgba(255, 255, 255, .15); }
.shop-footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 1.35rem; }
.shop-footer-brand .shop-wordmark span { font-size: clamp(2.8rem, 4vw, 4.5rem); }
.shop-footer-brand .shop-wordmark b { font-size: clamp(.6rem, 1vw, .8rem); }
.shop-footer-brand p { max-width: 19rem; margin: 0; color: rgba(255, 255, 255, .55); font-family: var(--serif); font-size: .88rem; line-height: 1.6; }
.shop-footer-social { display: inline-flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; color: #c8ad7a; }
.shop-footer-social svg { width: 1.4rem; height: 1.4rem; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.5; }
.shop-footer-social .shop-footer-social-dot { fill: currentColor; stroke: none; }
.shop-footer-social:hover, .shop-footer-social:focus-visible { color: #f3ecdd; }
.shop-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.shop-footer-column span { margin-bottom: .8rem; color: #c8ad7a; font-size: .61rem; letter-spacing: .16em; text-transform: uppercase; }
.shop-footer-column a,
.shop-footer-column button,
.shop-footer-column p { margin: 0; padding: 0; border: 0; background: transparent; color: rgba(255, 255, 255, .68); font-size: .82rem; line-height: 1.7; text-align: left; }
.shop-footer-column a:hover,
.shop-footer-column button:hover { color: white; }
.shop-footer-contact a { overflow-wrap: anywhere; }
.shop-footer-base { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; color: rgba(255, 255, 255, .5); font-size: .61rem; letter-spacing: .1em; text-transform: uppercase; }

.shop-drawer-backdrop { position: fixed; z-index: 180; inset: 0; visibility: hidden; background: rgba(28, 27, 23, .72); opacity: 0; transition: opacity .4s, visibility .4s; }
.shop-contact-drawer { position: fixed; z-index: 190; top: 0; right: 0; display: flex; visibility: hidden; width: min(43rem, 100vw); height: 100dvh; flex-direction: column; overflow: hidden; background: var(--st-paper); color: var(--st-ink); box-shadow: -2rem 0 5rem rgba(0, 0, 0, .24); transform: translateX(102%); transition: transform .6s cubic-bezier(.76, 0, .18, 1), visibility 0s linear .6s; }
.shop-drawer-open .shop-drawer-backdrop { visibility: visible; opacity: 1; }
.shop-drawer-open .shop-contact-drawer { visibility: visible; transform: none; transition: transform .6s cubic-bezier(.76, 0, .18, 1), visibility 0s; }
.shop-contact-drawer > header { display: flex; height: var(--header-h); min-height: var(--header-h); flex: 0 0 var(--header-h); align-items: center; justify-content: space-between; padding: 0 var(--pad); border-bottom: 1px solid var(--st-line); }
.shop-contact-drawer > header button { padding: .6rem 0; border: 0; background: transparent; font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.shop-drawer-body { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 6vw, 4.5rem); }
.shop-drawer-body h2 { margin: 0 0 1.5rem; font: 400 clamp(4rem, 8vw, 7rem)/.88 var(--serif); letter-spacing: -.05em; }
.shop-drawer-body > p:not(.kicker) { max-width: 31rem; font-family: var(--serif); font-size: 1.05rem; line-height: 1.65; }
.shop-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2.5rem; }
.shop-form label { display: grid; gap: .55rem; }
.shop-form .shop-conditional-field[hidden] { display: none; }
.shop-form label.wide { grid-column: 1 / -1; }
.shop-form label span { color: #625d53; font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.shop-form label span small { margin-left: .35rem; opacity: .68; font: inherit; letter-spacing: .06em; }
.shop-form input,
.shop-form select,
.shop-form textarea { width: 100%; padding: .75rem 0; border: 0; border-bottom: 1px solid var(--st-line); border-radius: 0; background: transparent; }
.shop-form input::placeholder { color: currentColor; opacity: .42; }
.shop-form textarea { min-height: 8rem; resize: vertical; }
.shop-form .shop-button { justify-self: start; }
.shop-form-note { align-self: center; margin: 0; color: #625d53; font-size: .68rem; }
.shop-form-privacy { grid-column: 1 / -1; max-width: 32rem; margin: -.4rem 0 0; color: #625d53; font-size: .68rem; line-height: 1.55; }
.shop-form-privacy a { border-bottom: 1px solid currentColor; }
.shop-drawer-mobile-action { display: none; }

.shop-policy-page { min-height: calc(100svh - var(--header-h)); padding: clamp(5rem, 9vw, 9rem) var(--pad) clamp(6rem, 10vw, 11rem); }
.shop-policy-page > header { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: end; padding-bottom: clamp(4rem, 7vw, 7rem); }
.shop-policy-page > header .kicker { grid-column: 1 / -1; margin: 0; }
.shop-policy-page > header h1 { margin: 0; font: 400 clamp(5rem, 9vw, 9rem)/.84 var(--serif); letter-spacing: -.055em; }
.shop-policy-page > header > p:last-child { max-width: 31rem; margin: 0 0 .8rem; font-family: var(--serif); font-size: 1.1rem; font-style: italic; line-height: 1.65; }
.shop-policy-sections { border-top: 1px solid var(--st-line); }
.shop-policy-sections section { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: 2rem; padding: 2.25rem 0; border-bottom: 1px solid var(--st-line); }
.shop-policy-sections section > span { padding-top: .35rem; color: var(--st-walnut); font-size: .58rem; letter-spacing: .12em; }
.shop-policy-sections h2 { margin: 0 0 .6rem; font: 400 clamp(2.1rem, 3.5vw, 3.8rem)/.95 var(--serif); }
.shop-policy-sections p { max-width: 46rem; margin: 0; color: #625d53; line-height: 1.75; }
.shop-policy-status { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 3rem; }
.shop-policy-status p { max-width: 48rem; margin: 0; color: #625d53; font-size: .8rem; line-height: 1.7; }

.reveal { opacity: 0; transform: translateY(2rem); transition: opacity .8s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
  .shop-body { --header-h: 5rem; }
  .shop-header { gap: 1rem; }
  .shop-wordmark,
  .shop-header-actions { position: relative; z-index: 140; }
  .shop-header-actions { display: flex; margin-left: auto; }
  .shop-menu-toggle { display: block; }
  .shop-nav { position: fixed; z-index: 130; inset: 0; visibility: hidden; height: 100dvh; flex-direction: column; align-items: flex-start; justify-content: center; gap: .65rem; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: calc(var(--header-h) + 1rem) var(--pad) 8.5rem; background: var(--st-paper); opacity: 0; transform: translateY(-1rem); transition: opacity .4s, transform .4s, visibility .4s; font-family: var(--serif); font-size: clamp(2.35rem, 7vw, 4.3rem); font-weight: 400; letter-spacing: -.025em; text-transform: none; }
  .shop-menu-open .shop-nav { visibility: visible; opacity: 1; transform: none; }
  .shop-nav .basket-link--nav { display: none; }
  .basket-link--mobile { display: flex; }
  .shop-nav > a:not(.basket-link, .shop-corinthian) { transform: translateY(.65rem); opacity: 0; transition: opacity .35s, transform .4s; }
  .shop-menu-open .shop-nav > a:not(.basket-link, .shop-corinthian) { transform: none; opacity: 1; }
  .shop-menu-open .shop-nav > a:nth-child(2) { transition-delay: .04s; }
  .shop-menu-open .shop-nav > a:nth-child(3) { transition-delay: .08s; }
  .shop-nav .shop-nav-contact { display: flex; width: 100%; min-height: 3.75rem; justify-content: center; margin-top: .9rem; padding: .9rem 1.25rem; border: 1px solid var(--st-ink); background: var(--st-ink); color: var(--st-paper); font-family: var(--sans); font-size: .65rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; transition: border-color .25s, background .25s, color .25s, opacity .35s .12s, transform .4s .12s; }
  .shop-nav .shop-nav-contact:hover,
  .shop-nav .shop-nav-contact:focus-visible { border-color: var(--st-walnut); background: var(--st-walnut); color: #fff; }
  .shop-nav .shop-corinthian { position: absolute; right: 0; bottom: 0; left: 0; display: flex; min-height: 7rem; flex-direction: column; align-items: flex-start; justify-content: center; gap: .3rem; padding: 1.15rem var(--pad); border: 0; background: #08251f; color: #fbfaf6; font-family: var(--sans); text-transform: none; }
  .shop-nav .shop-corinthian::before { position: absolute; top: 50%; right: var(--pad); width: 1.1rem; height: 1.1rem; border-top: 1px solid currentColor; border-right: 1px solid currentColor; content: ""; transform: translateY(-50%) rotate(45deg); transition: transform .3s; }
  .shop-nav .shop-corinthian:hover::before,
  .shop-nav .shop-corinthian:focus-visible::before { transform: translate(.2rem, -50%) rotate(45deg); }
  .shop-corinthian-mark { display: block; width: clamp(8.5rem, 28vw, 11rem); }
  .shop-corinthian-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .shop-corinthian-tagline { display: block; max-width: 20rem; color: rgba(251,250,246,.68); font-size: .62rem; letter-spacing: .02em; line-height: 1.4; }
  .shop-corinthian-label::after { display: none; }
  .shop-menu-open .shop-menu-toggle i:first-child { transform: translateY(-50%) rotate(45deg); }
  .shop-menu-open .shop-menu-toggle i:last-child { transform: translateY(-50%) rotate(-45deg); }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .collection-preview .product-grid { grid-template-columns: repeat(2, 1fr); }
  .shop-hero,
  .shop-editorial,
  .corinthian-sister,
  .collections-hero,
  .product-layout,
  .custom-furniture-hero,
  .custom-furniture-intro,
  .custom-furniture-study,
  .custom-furniture-scope,
  .shop-story { grid-template-columns: 1fr; }
  .shop-hero-media { min-height: 68svh; clip-path: inset(0 5% 0 14% round 48% 48% 0 0); }
  .shop-editorial-image,
  .corinthian-sister figure { min-height: 65svh; }
  .corinthian-sister-copy { order: 2; }
  .collection-toolbar { grid-template-columns: 1fr auto; }
  .collection-toolbar > p:first-child { display: none; }
  .collection-filters { justify-content: flex-start; overflow-x: auto; }
  .collection-filters button { flex: 0 0 auto; }
  .product-summary { position: relative; top: auto; }
  .product-gallery { grid-template-columns: 1fr 1fr; }
  .product-gallery figure,
  .product-gallery figure:nth-child(2) { aspect-ratio: .84; }
  .shop-story header { position: relative; top: auto; }
  .custom-furniture-hero-copy { min-height: 64svh; }
  .custom-furniture-hero-images { min-height: 72svh; }
  .custom-furniture-study-main { min-height: 62svh; }
  .custom-furniture-scope figure { width: min(100%, 46rem); margin-left: auto; }
  .shop-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1120px) and (max-height: 700px) {
  .shop-nav { justify-content: flex-start; gap: .3rem; padding-top: calc(var(--header-h) + .75rem); padding-bottom: 6.7rem; font-size: clamp(1.9rem, 7vh, 3rem); }
  .shop-nav .shop-nav-contact { min-height: 3.25rem; margin-top: .45rem; }
  .shop-nav .shop-corinthian { min-height: 5.8rem; padding-top: .75rem; padding-bottom: .75rem; }
}

@media (max-width: 760px) {
  .shop-body { --header-h: 4.7rem; --pad: 1.25rem; }
  .shop-header { gap: .55rem; }
  .shop-wordmark { gap: .36rem; }
  .shop-header > .shop-wordmark span,
  .shop-contact-drawer > header .shop-wordmark span { font-size: 1.22rem; }
  .shop-header > .shop-wordmark b,
  .shop-contact-drawer > header .shop-wordmark b { font-size: .43rem; letter-spacing: .11em; }
  .shop-header-actions { gap: .25rem; }
  .basket-link { min-height: 2.65rem; gap: .3rem; padding: .5rem 0; font-size: .52rem; }
  .basket-link [data-basket-count] { width: 1.25rem; height: 1.25rem; font-size: .49rem; }
  .shop-menu-toggle { width: 2.65rem; padding-right: 0; }
  .shop-menu-toggle i { right: 0; }
  .shop-hero-copy { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .shop-hero-copy h1 { font-size: clamp(4.3rem, 20vw, 6.2rem); }
  .shop-hero-copy > p:not(.kicker) { font-size: 1rem; }
  .shop-hero-media { min-height: 58svh; }
  .shop-section-head { display: grid; gap: 1.5rem; }
  .shop-section-head h2 { font-size: clamp(3.8rem, 16vw, 5.6rem); }
  .product-grid,
  .collection-preview .product-grid,
  .related-products .product-grid { grid-template-columns: 1fr; }
  .collection-preview .product-card:nth-child(n + 4) { display: none; }
  .collection-link { text-align: left; }
  .shop-editorial-copy h2 { font-size: clamp(4rem, 17vw, 5.8rem); }
  .corinthian-sister-copy > img { margin-bottom: 4rem; }
  .corinthian-sister-copy h2 { font-size: clamp(3.5rem, 15vw, 5rem); }
  .collections-hero { min-height: 64svh; }
  .collections-hero h1 { font-size: clamp(5.2rem, 22vw, 7rem); }
  .collections-hero > p { font-size: 1rem; }
  .collection-toolbar { grid-template-columns: 1fr; gap: .8rem; padding-right: 0; }
  .collection-filters { padding-right: var(--pad); }
  .collection-count { padding-right: var(--pad); text-align: left; }
  .product-gallery { grid-template-columns: 1fr; }
  .product-layout { display: flex; flex-direction: column; }
  .product-gallery { display: contents; }
  .product-gallery figure,
  .product-gallery figure:nth-child(2) { width: 100%; aspect-ratio: .9; }
  .product-gallery figure:first-child { order: 0; }
  .product-summary { order: 1; }
  .product-gallery figure:nth-child(2) { order: 2; }
  .product-summary h1 { font-size: clamp(4.2rem, 18vw, 6rem); }
  .related-products { padding-top: 6rem; }
  .custom-furniture-hero-copy { min-height: 70svh; padding-top: 5rem; padding-bottom: 4rem; }
  .custom-furniture-hero-copy h1 { font-size: clamp(4.3rem, 17vw, 6rem); }
  .custom-furniture-hero-images { min-height: 68svh; }
  .custom-furniture-hero-images figure:first-child { grid-area: 1 / 1 / 9 / 9; }
  .custom-furniture-hero-images figure:nth-child(2) { grid-area: 2 / 9 / 7 / 13; }
  .custom-furniture-hero-images figure:last-child { grid-area: 8 / 7 / 13 / 13; }
  .custom-furniture-intro h2,
  .custom-furniture-study-copy h2,
  .custom-furniture-scope h2 { font-size: clamp(3.8rem, 15vw, 5.3rem); }
  .custom-furniture-study-main { min-height: 55svh; }
  .custom-furniture-scope dl div { grid-template-columns: 1fr; gap: .35rem; }
  .shop-story h1 { font-size: clamp(4.2rem, 18vw, 6rem); }
  .basket-row { grid-template-columns: 6rem 1fr auto; gap: 1rem; }
  .basket-row > img { width: 6rem; }
  .basket-row > button { grid-column: 2; justify-self: start; }
  .shop-footer-grid { grid-template-columns: 1fr; gap: 2.75rem; }
  .shop-footer-base { display: grid; }
  .shop-form { grid-template-columns: 1fr; }
  .shop-form label.wide { grid-column: 1; }
  .shop-contact-drawer .shop-drawer-body { padding: 2.5rem var(--pad) calc(7rem + env(safe-area-inset-bottom)); }
  .shop-drawer-inline-action { display: none; }
  .shop-drawer-mobile-action { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; display: block; padding: .75rem var(--pad) calc(.75rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--st-line); background: rgba(231,223,207,.96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  .shop-drawer-mobile-action .shop-button { width: 100%; min-height: 3.5rem; background: var(--st-ink); color: var(--st-paper); }
  .shop-policy-page { padding-top: 4rem; }
  .shop-policy-page > header { grid-template-columns: 1fr; gap: 2rem; }
  .shop-policy-page > header .kicker { grid-column: 1; }
  .shop-policy-page > header h1 { font-size: clamp(4.2rem, 18vw, 6rem); }
  .shop-policy-sections section { grid-template-columns: 2.5rem 1fr; gap: 1rem; }
  .shop-policy-status { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .edition-ticker div,
  .shop-hero-media img { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .product-image img,
  .shop-editorial-image img,
  .shop-nav,
  .shop-nav > a:not(.basket-link, .shop-corinthian),
  .shop-nav .shop-nav-contact,
  .shop-nav .shop-corinthian::before,
  .shop-contact-drawer,
  .shop-drawer-backdrop,
  .basket-link,
  .basket-label::after,
  .shop-corinthian-label::after,
  .basket-link [data-basket-count] { transition: none; }
  .product-card:hover .product-image img,
  .shop-editorial:hover .shop-editorial-image img { transform: none; }
}
