.shop-body {
  --warm-white: #f1ece2;
  --charcoal: #15120f;
  background: var(--warm-white);
  color: var(--charcoal);
}

.shop-body::before { opacity: .022; }
.shop-body .site-header { color: var(--ivory); }
.shop-body .mobile-menu { color: var(--ivory); }
.shop-body .site-footer { color: var(--ivory); }
.shop-body .eyebrow { color: #7b6958; }
.shop-body .media-fallback { background: #d8d0c3; }
.shop-body .media-fallback.image-error { background: linear-gradient(135deg,#d8d0c3,#b5aa9b); }

.shop-hero {
  min-height: 74svh;
  display: grid;
  align-content: end;
  padding: calc(var(--header-h) + clamp(5rem,10vw,10rem)) var(--page-x) clamp(4rem,8vw,8rem);
  background: radial-gradient(circle at 82% 18%,#30271f 0%,#16120f 34%,#090807 72%);
  color: var(--ivory);
}
.shop-hero__inner { width: min(100%,1120px); }
.shop-hero h1 { max-width: 12ch; margin: 0 0 2rem; font-size: clamp(4.2rem,9vw,10.5rem); line-height: .88; }
.shop-hero .lead { max-width: 720px; margin: 0; color: #c3b9ac; font-family: var(--serif); font-size: clamp(1.25rem,2vw,1.8rem); }

.shop-catalogue { padding: clamp(5rem,9vw,9rem) var(--page-x) clamp(6rem,10vw,11rem); }
.catalogue-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(3rem,6vw,6rem); padding-bottom: 1.5rem; border-bottom: 1px solid rgba(21,18,15,.18); }
.catalogue-toolbar > p { margin: 0; color: #6f6257; font-size: .63rem; letter-spacing: .22em; text-transform: uppercase; }
.category-filters { display: flex; flex-wrap: wrap; gap: .55rem 1.5rem; }
.category-filters button { padding: .45rem 0; border: 0; border-bottom: 1px solid transparent; background: none; color: #766a5f; cursor: pointer; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; }
.category-filters button:hover,.category-filters button[aria-pressed="true"] { border-color: #17130f; color: #17130f; }

.product-grid,.related-product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(3.5rem,7vw,8rem) clamp(1.5rem,4vw,5rem); }
.product-card { min-width: 0; }
.product-card__image { display: block; position: relative; overflow: hidden; aspect-ratio: 2 / 3; background: #d7cfc2; }
.product-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 750ms cubic-bezier(.2,.65,.3,1); }
.product-card__image:hover img { transform: scale(1.018); }
.product-card__copy { padding: 1.4rem 0 0; }
.product-card__category { margin: 0 0 .65rem; color: #766a5f; font-size: .58rem; letter-spacing: .22em; text-transform: uppercase; }
.product-card h2 { margin: 0 0 1.15rem; font-size: clamp(2rem,3.2vw,3.9rem); line-height: 1; }
.product-card__copy > div { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding-top: 1rem; border-top: 1px solid rgba(21,18,15,.18); color: #62564b; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.product-card__note { margin: .75rem 0 0; color: #766a5f; font-size: .7rem; line-height: 1.5; }
.arrow-link { display: inline-flex; align-items: center; gap: .8rem; color: #17130f; }
.arrow-link:hover { color: #765334; }
.catalogue-note,.mockup-note { max-width: 720px; margin: clamp(4rem,7vw,7rem) 0 0; color: #74685e; font-size: .76rem; }

.product-main { padding: calc(var(--header-h) + clamp(2rem,5vw,5rem)) var(--page-x) 0; }
.product-breadcrumb { margin-bottom: 2rem; color: #756a60; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; }
.product-breadcrumb a { display: inline-block; padding: .4rem 0; border-bottom: 1px solid rgba(21,18,15,.24); }
.product-layout { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(330px,.72fr); gap: clamp(2.5rem,6vw,8rem); align-items: start; }
.product-gallery { min-width: 0; }
.product-gallery__stage { aspect-ratio: 2 / 3; overflow: hidden; }
.product-gallery__stage img { width: 100%; height: 100%; object-fit: cover; }
.product-gallery__stage img[src*="-detail"] { aspect-ratio: 1 / 1; object-fit: cover; }
.product-gallery__thumbs { display: grid; grid-template-columns: repeat(2,96px); gap: .8rem; margin-top: 1rem; }
.product-gallery__thumbs button { width: 96px; aspect-ratio: 1; padding: 0; overflow: hidden; border: 1px solid transparent; background: #d7cfc2; cursor: pointer; opacity: .55; }
.product-gallery__thumbs button.is-active { border-color: #17130f; opacity: 1; }
.product-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.product-info { position: sticky; top: calc(var(--header-h) + 2.5rem); padding: clamp(1rem,3vw,3rem) 0 5rem; }
.product-info h1 { max-width: 11ch; margin: 0; font-size: clamp(3.4rem,5.4vw,7rem); line-height: .91; }
.product-price { margin: 1.5rem 0 2.5rem; color: #63564a; font-size: .72rem; letter-spacing: .17em; text-transform: uppercase; }
.product-price-note { margin: -1.75rem 0 2.4rem; color: #766a5f; font-size: .75rem; line-height: 1.5; }
.product-description { margin: 0 0 1.5rem; font-family: var(--serif); font-size: clamp(1.25rem,1.8vw,1.65rem); line-height: 1.5; }
.product-details { margin: 0 0 2.5rem; color: #655b52; font-size: .92rem; }
.purchase-form { display: grid; grid-template-columns: 1fr; gap: .7rem; padding: 2rem 0; border-top: 1px solid rgba(21,18,15,.18); border-bottom: 1px solid rgba(21,18,15,.18); }
.purchase-form label { color: #655b52; font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; }
.purchase-form select { width: 100%; min-height: 48px; padding: 0 .9rem; border: 1px solid rgba(21,18,15,.28); border-radius: 0; background: transparent; color: #17130f; font: inherit; }
.checkout-button { min-height: 54px; display: flex; justify-content: space-between; align-items: center; margin-top: .8rem; padding: 0 1.2rem; border: 1px solid #17130f; background: #17130f; color: var(--ivory); cursor: pointer; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; transition: background 200ms ease,color 200ms ease; }
.checkout-button:hover:not(:disabled) { background: transparent; color: #17130f; }
.checkout-button:disabled { cursor: not-allowed; opacity: .46; }
.purchase-status { min-height: 2.4em; margin: .25rem 0 0; color: #766a5f; font-size: .72rem; line-height: 1.55; }
.purchase-status.is-error { color: #7b2824; }
.product-accordions details { padding: 1.1rem 0; border-bottom: 1px solid rgba(21,18,15,.18); }
.product-accordions summary { cursor: pointer; font-size: .67rem; letter-spacing: .18em; text-transform: uppercase; }
.product-accordions p { margin: 1rem 0 .3rem; color: #655b52; font-size: .86rem; }
.product-info .mockup-note { margin-top: 1.5rem; }
.related-products { margin: clamp(6rem,10vw,12rem) calc(-1 * var(--page-x)) 0; padding: clamp(5rem,9vw,9rem) var(--page-x) clamp(7rem,10vw,11rem); background: #ded7cb; }
.related-products > h2 { margin: 0 0 clamp(3rem,6vw,6rem); font-size: clamp(3rem,6.8vw,7.8rem); line-height: .9; }
.related-products .product-card h2 { font-size: clamp(2rem,3vw,3.6rem); }

.confirmation-main { min-height: 100svh; display: grid; place-items: center; padding: calc(var(--header-h) + 4rem) var(--page-x) 6rem; background: radial-gradient(circle at 22% 28%,#2d261f 0%,#0a0908 57%); color: var(--ivory); }
.confirmation-card { width: min(100%,850px); padding: clamp(2rem,6vw,6rem); border: 1px solid rgba(238,232,220,.18); }
.confirmation-card .eyebrow { color: var(--stone); }
.confirmation-card h1 { max-width: 11ch; font-size: clamp(3.8rem,8vw,8.5rem); line-height: .9; }
.confirmation-card p { max-width: 650px; color: #c3b9ac; font-family: var(--serif); font-size: clamp(1.1rem,2vw,1.4rem); }
.confirmation-card p a { color: var(--ivory); border-bottom: 1px solid var(--stone); }
.primary-link { display: inline-flex; align-items: center; gap: 1.5rem; margin-top: 2rem; padding: .8rem 0; border-bottom: 1px solid var(--stone); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; }

.legal-main { padding: calc(var(--header-h) + clamp(4rem,8vw,8rem)) var(--page-x) clamp(7rem,11vw,12rem); }
.legal-hero { max-width: 1120px; padding-bottom: clamp(4rem,7vw,7rem); border-bottom: 1px solid rgba(21,18,15,.18); }
.legal-hero h1 { max-width: 12ch; margin: 0; font-size: clamp(4rem,8vw,9rem); line-height: .9; }
.legal-intro { max-width: 790px; margin: 2rem 0 0; font-family: var(--serif); font-size: clamp(1.25rem,2vw,1.7rem); line-height: 1.5; }
.legal-intro a,.legal-copy a { border-bottom: 1px solid rgba(21,18,15,.36); }
.legal-updated { margin: 2rem 0 0; color: #766a5f; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.legal-layout { display: grid; grid-template-columns: minmax(190px,.34fr) minmax(0,1fr); gap: clamp(3rem,8vw,9rem); align-items: start; padding-top: clamp(4rem,7vw,7rem); }
.legal-local-nav { position: sticky; top: calc(var(--header-h) + 2rem); display: grid; gap: .9rem; color: #766a5f; font-size: .63rem; letter-spacing: .12em; line-height: 1.45; text-transform: uppercase; }
.legal-local-nav a { width: fit-content; padding-bottom: .3rem; border-bottom: 1px solid transparent; }
.legal-local-nav a:hover,.legal-local-nav a[aria-current="page"] { border-color: #17130f; color: #17130f; }
.legal-copy { max-width: 820px; }
.legal-copy section { padding: 0 0 clamp(3rem,5vw,5rem); }
.legal-copy h2 { margin: 0 0 1.2rem; font-size: clamp(2rem,3.4vw,3.6rem); line-height: 1; }
.legal-copy p { margin: 0 0 1rem; color: #51483f; font-size: clamp(.95rem,1.2vw,1.08rem); line-height: 1.75; }

@media (max-width: 1120px) {
  .shop-body .site-header { grid-template-columns: 1fr auto; }
}
@media (max-width: 820px) {
  .shop-hero { min-height: 68svh; }
  .catalogue-toolbar { display: block; }
  .category-filters { margin-top: 1.5rem; }
  .product-layout { grid-template-columns: 1fr; }
  .product-info { position: static; padding-top: 2rem; }
  .product-grid,.related-product-grid { gap: 4.5rem 1.1rem; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-local-nav { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .shop-hero h1 { font-size: clamp(3.9rem,17vw,6.2rem); }
  .product-grid,.related-product-grid { grid-template-columns: 1fr; }
  .product-card h2 { font-size: 2.6rem; }
  .product-card__copy > div { align-items: start; }
  .purchase-form { grid-template-columns: 1fr; }
  .checkout-button,.purchase-status { grid-column: 1; }
  .product-main { padding-top: calc(var(--header-h) + 1.5rem); }
  .product-gallery__thumbs { grid-template-columns: repeat(2,78px); }
  .product-gallery__thumbs button { width: 78px; }
  .legal-local-nav { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .product-card__image img { transition: none; }
  .product-card__image:hover img { transform: none; }
}
