.gs-shell {
  width: min(100% - (2 * var(--gs-gutter)), var(--gs-container));
  margin-inline: auto;
}

.gs-main { min-height: 60vh; }
.gs-eyebrow {
  margin: 0 0 .8rem;
  color: var(--gs-color-caption);
  font: 400 .72rem/1.4 var(--gs-font-mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.gs-text-link {
  display: inline-flex;
  gap: .6rem;
  align-items: center;
  width: fit-content;
  padding-block: .35rem;
  border-bottom: 1px solid currentColor;
  text-decoration: none;
}
.gs-text-link span { transition: transform var(--gs-motion-base) var(--gs-ease-standard); }
.gs-text-link:hover span, .gs-text-link:focus-visible span { transform: translate(.2rem, -.2rem); }

.gs-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  margin-bottom: clamp(2.5rem, 6vw, 5rem);
}
.gs-section-heading h2 {
  max-width: 15ch;
  margin: 0;
  font: 400 clamp(2.3rem, 5vw, 5rem)/.98 var(--gs-font-serif);
}
.gs-section-heading__body { max-width: 42rem; margin: 1.2rem 0 0; color: var(--gs-color-ink-muted); }
.gs-content-section { padding-block: clamp(5rem, 10vw, 10rem); }
.gs-content-section--tint { background: var(--gs-color-surface); }

.gs-content-grid, .gs-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 3rem) clamp(1rem, 2vw, 2rem);
}
.gs-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gs-content-card h3, .gs-product-card h3 { margin: .5rem 0; font: 400 clamp(1.45rem, 2vw, 2rem)/1.12 var(--gs-font-serif); }
.gs-content-card h3 a, .gs-product-card h3 a { text-decoration: none; }
.gs-content-card__media, .gs-product-card__media { display: block; overflow: hidden; background: var(--gs-color-line-soft); }
.gs-content-card__media { aspect-ratio: 4/3; }
.gs-product-card__media { aspect-ratio: 4/5; }
.gs-content-card__media img, .gs-product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--gs-ease-standard); }
.gs-content-card:hover img, .gs-product-card:hover img { transform: scale(1.025); }
.gs-content-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--gs-color-line-soft), var(--gs-color-paper)); }
.gs-content-card__body, .gs-product-card__body { padding-top: 1.25rem; }
.gs-content-card__body > p:last-child { margin: .8rem 0 0; color: var(--gs-color-ink-muted); }
.gs-product-card { position: relative; }
.gs-product-card__media { position: relative; }
.gs-product-card__era, .gs-product-card__sale { position: absolute; z-index: 1; top: .8rem; padding: .35rem .55rem; color: var(--gs-color-paper); background: rgba(26,24,18,.86); font: 400 .62rem/1 var(--gs-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.gs-product-card__era { left: .8rem; }
.gs-product-card__sale { right: .8rem; background: #9d4b32; }
.gs-product-card__price { display: flex; gap: .5rem; align-items: baseline; margin: .5rem 0 0; font-size: .88rem; }
.gs-product-card__price small { color: var(--gs-color-ink-muted); font-size: .68rem; }
.gs-product-card__swatches { display: flex; gap: .45rem; flex-wrap: wrap; margin-top: 1rem; }
.gs-product-card__swatch { width: 1.75rem; height: 1.75rem; padding: 0; overflow: hidden; border: 1px solid var(--gs-color-line); border-radius: 50%; background: var(--gs-swatch-image) center/cover; cursor: pointer; }
.gs-product-card__swatch.is-active { outline: 1px solid var(--gs-color-ink); outline-offset: 3px; }
.gs-product-card__actions { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: center; margin-top: 1rem; }
.gs-product-card__sample { min-height: 2.7rem; padding: .55rem .8rem; border: 1px solid var(--gs-color-ink); color: var(--gs-color-ink); background: transparent; font: 400 .72rem/1.3 var(--gs-font-sans); cursor: pointer; }
.gs-product-card__actions > a, .gs-product-card__detail { font-size: .74rem; text-decoration: none; white-space: nowrap; }

.gs-sample-tray-tab { position: fixed; z-index: 90; right: 1.25rem; bottom: 1.25rem; min-height: 3rem; padding: .8rem 1rem; border: 1px solid var(--gs-color-ink); color: var(--gs-color-paper); background: var(--gs-color-ink); font: 400 .72rem/1 var(--gs-font-mono); letter-spacing: .05em; cursor: pointer; }
.gs-sample-tray-tab b { margin-left: .35rem; font-weight: 400; }
.gs-sample-tray-overlay { position: fixed; z-index: 98; inset: 0; background: rgba(20,18,13,.4); }
.gs-sample-tray { position: fixed; z-index: 99; top: 0; right: 0; display: grid; grid-template-rows: auto 1fr auto; width: min(30rem, 100%); height: 100dvh; border-left: 1px solid var(--gs-color-line); color: var(--gs-color-ink); background: var(--gs-color-paper); box-shadow: -1rem 0 3rem rgba(20,18,13,.12); transform: translateX(100%); transition: transform .3s var(--gs-ease-standard); }
.gs-sample-tray.is-open { transform: translateX(0); }
.gs-sample-tray > header { display: flex; align-items: flex-start; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid var(--gs-color-line); }
.gs-sample-tray h2 { margin: 0; font: 400 2rem/1 var(--gs-font-serif); }
.gs-sample-tray > header button { padding: .25rem; border: 0; background: transparent; font-size: 1.8rem; cursor: pointer; }
.gs-sample-tray__body { overflow: auto; padding: 1.5rem; }
.gs-sample-tray__note { margin: 0 0 1.25rem; padding: 1rem; color: var(--gs-color-ink-muted); background: var(--gs-color-surface); font-size: .8rem; }
.gs-sample-tray__empty { color: var(--gs-color-ink-muted); text-align: center; }
.gs-sample-tray__item { display: grid; grid-template-columns: 4rem 1fr auto; gap: 1rem; align-items: center; padding: .8rem 0; border-bottom: 1px solid var(--gs-color-line); }
.gs-sample-tray__item img { width: 4rem; height: 4rem; object-fit: cover; }
.gs-sample-tray__item div { display: grid; gap: .25rem; }
.gs-sample-tray__item strong { font-size: .82rem; }
.gs-sample-tray__item span { color: var(--gs-color-ink-muted); font-size: .75rem; }
.gs-sample-tray__item button { border: 0; background: transparent; font-size: 1.25rem; cursor: pointer; }
.gs-sample-tray > footer { padding: 1.5rem; border-top: 1px solid var(--gs-color-line); }
.gs-sample-tray > footer > p:first-child { display: flex; justify-content: space-between; margin: 0 0 1rem; }
.gs-sample-tray > footer > button { width: 100%; min-height: 3.2rem; border: 1px solid var(--gs-color-ink); color: var(--gs-color-paper); background: var(--gs-color-ink); cursor: pointer; }
.gs-sample-tray > footer > button:disabled { cursor: not-allowed; opacity: .45; }
.gs-sample-tray__error { margin: .8rem 0 0; color: #8a3027; font-size: .76rem; }
.gs-sample-toast { position: fixed; z-index: 110; left: 50%; bottom: 1.25rem; padding: .8rem 1rem; color: var(--gs-color-paper); background: var(--gs-color-ink); font-size: .78rem; transform: translateX(-50%); }
body.gs-sample-tray-open { overflow: hidden; }

.gs-shop-hero { padding-block: clamp(7rem, 12vw, 11rem) clamp(4rem, 8vw, 7rem); }
.gs-shop-hero__heading { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 4rem; align-items: end; margin-bottom: clamp(3rem, 6vw, 6rem); }
.gs-shop-hero__heading .gs-eyebrow { grid-column: 1 / -1; }
.gs-shop-hero__heading h1 { max-width: 11ch; margin: 0; font: 400 clamp(3rem, 6vw, 6.5rem)/.92 var(--gs-font-serif); }
.gs-shop-hero__heading > p:last-child { max-width: 35rem; margin: 0 0 .4rem; color: var(--gs-color-ink-muted); }
.gs-shop-story { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: clamp(1rem, 3vw, 3rem); }
.gs-shop-story__panel { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; color: white; }
.gs-shop-story__panel::after { content:""; position:absolute; inset:50% 0 0; background:linear-gradient(transparent, rgba(0,0,0,.7)); }
.gs-shop-story__panel img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--gs-ease-standard); }
.gs-shop-story__panel:hover img { transform:scale(1.025); }
.gs-shop-story__panel > span { position:absolute; z-index:1; left:1.5rem; bottom:1.2rem; font:400 clamp(1.5rem,3vw,3rem)/1 var(--gs-font-serif); }
.gs-shop-story__panel small { display:block; margin-bottom:.5rem; font:400 .68rem/1.2 var(--gs-font-mono); letter-spacing:.08em; text-transform:uppercase; }
.gs-shop-story__arrow { font-size: 2rem; }
.gs-samplebook-banner { display:grid; grid-template-columns:1fr 1fr auto; gap:2rem; align-items:center; margin-top:2rem; padding:1.5rem 1.75rem; border:1px solid var(--gs-color-line); text-decoration:none; transition:background var(--gs-motion-base); }
.gs-samplebook-banner:hover { background:var(--gs-color-surface); }
.gs-samplebook-banner small { display:block; font:400 .68rem/1.3 var(--gs-font-mono); letter-spacing:.08em; }
.gs-samplebook-banner strong { font:400 1.5rem/1.2 var(--gs-font-serif); }
.gs-samplebook-banner > span:nth-child(2) { color:var(--gs-color-ink-muted); font-size:.9rem; }
.gs-samplebook-banner b { font-weight:400; white-space:nowrap; }
.gs-product-listing, .gs-archive-index { padding-bottom:clamp(6rem,10vw,10rem); }
.gs-filter-bar { display:flex; gap:.5rem; overflow-x:auto; margin-bottom:2.5rem; padding-bottom:.75rem; border-bottom:1px solid var(--gs-color-line); scrollbar-width:none; }
.gs-filter-bar a { flex:0 0 auto; padding:.5rem .85rem; color:var(--gs-color-ink-muted); text-decoration:none; border:1px solid transparent; border-radius:999px; font-size:.84rem; }
.gs-filter-bar a:hover, .gs-filter-bar a.is-active { color:var(--gs-color-ink); border-color:var(--gs-color-ink); }
.gs-product-listing__tools { display:flex; justify-content:flex-end; margin-bottom:1.5rem; }
.gs-product-listing ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3rem 1.5rem; }
.gs-product-listing ul.products::before, .gs-product-listing ul.products::after { display:none; }
.gs-product-listing ul.products li.product { float:none !important; width:auto !important; margin:0 !important; }
.gs-archive-title { padding-block:8rem 4rem; }
.gs-archive-title h1 { margin:0; font:400 clamp(3rem,6vw,6rem)/1 var(--gs-font-serif); }

.gs-archive-hero { position:relative; min-height:min(48rem,82svh); overflow:hidden; background:#c6ad86; }
.gs-archive-hero__visual, .gs-archive-hero__visual img { position:absolute; inset:0; width:100%; height:100%; }
.gs-archive-hero__visual img { object-fit:cover; }
.gs-archive-hero__layer { animation:gs-layer-breathe 8s var(--gs-ease-standard) infinite alternate; }
.gs-archive-hero__layer--2, .gs-archive-hero__layer--5 { animation-delay:-3s; }
.gs-archive-hero__layer--3, .gs-archive-hero__layer--7 { animation-delay:-6s; }
.gs-archive-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,18,13,.78),rgba(20,18,13,.08)); }
.gs-archive-hero__copy { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:flex-end; min-height:min(48rem,82svh); padding-block:8rem 4rem; color:white; }
.gs-archive-hero h1 { max-width:13ch; margin:0; font:400 clamp(3rem,6.5vw,6.8rem)/.92 var(--gs-font-serif); }
.gs-archive-hero__copy > p:last-child { max-width:40rem; margin:2rem 0 0; color:rgba(255,255,255,.8); }
.gs-archive-index { padding-top:clamp(3rem,6vw,6rem); }
.gs-pagination { display:flex; justify-content:center; gap:.4rem; margin-top:4rem; }
.gs-pagination .page-numbers { min-width:2.4rem; padding:.4rem .7rem; text-align:center; text-decoration:none; border:1px solid var(--gs-color-line); }
.gs-pagination .current { color:var(--gs-color-surface); background:var(--gs-color-ink); border-color:var(--gs-color-ink); }

.gs-discovery-hero { padding-block: clamp(5rem, 10vw, 9rem) clamp(3rem, 6vw, 5rem); border-bottom: 1px solid var(--gs-color-line); }
.gs-discovery-hero h1 { max-width: 20ch; margin: 0; font: 400 clamp(2.8rem, 6vw, 6rem)/1 var(--gs-font-serif); }
.gs-discovery-hero > p:not(.gs-eyebrow), .gs-discovery-description { max-width: 44rem; margin: 1.5rem 0 0; color: var(--gs-color-ink-muted); }
.gs-search-form { max-width: 46rem; margin-top: 2.5rem; }
.gs-search-form > label { display: block; margin-bottom: .65rem; font-size: .78rem; }
.gs-search-form__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-bottom: 1px solid var(--gs-color-ink); }
.gs-search-form input { min-width: 0; min-height: 3.2rem; border: 0; padding: .75rem 0; background: transparent; color: var(--gs-color-ink); }
.gs-search-form button { min-height: 3.2rem; border: 0; padding: .75rem 1rem; background: transparent; color: var(--gs-color-ink); cursor: pointer; }
.gs-discovery-results { padding-block: clamp(3.5rem, 8vw, 8rem); }
.gs-discovery-count { margin: 0 0 2rem; color: var(--gs-color-caption); font: 400 .72rem/1.4 var(--gs-font-mono); letter-spacing: .08em; }
.gs-discovery-empty { max-width: 44rem; padding-block: clamp(2rem, 6vw, 5rem); }
.gs-discovery-empty h2 { margin: 0; font: 400 clamp(2rem, 4vw, 3.7rem)/1.08 var(--gs-font-serif); }
.gs-discovery-empty > p { margin: 1.25rem 0 0; color: var(--gs-color-ink-muted); }
.gs-discovery-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 2rem; }
.gs-discovery-links a { padding-block: .4rem; border-bottom: 1px solid currentColor; text-decoration: none; }
.gs-not-found-page .gs-discovery-hero { min-height: 62vh; }

@keyframes gs-layer-breathe { from { transform:scale(1); } to { transform:scale(1.012); } }

@media (max-width: 64rem) {
  .gs-product-grid, .gs-product-listing ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gs-content-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gs-content-card:last-child:nth-child(3) { grid-column:1 / -1; max-width:calc(50% - .75rem); }
}

@media (max-width: 47.938rem) {
  .gs-section-heading { grid-template-columns:1fr; align-items:start; }
  .gs-content-grid, .gs-product-grid, .gs-product-listing ul.products { grid-template-columns:1fr; }
  .gs-content-card:last-child:nth-child(3) { grid-column:auto; max-width:none; }
  .gs-shop-hero__heading { grid-template-columns:1fr; }
  .gs-shop-story { grid-template-columns:1fr; }
  .gs-shop-story__arrow { transform:rotate(90deg); justify-self:center; }
  .gs-samplebook-banner { grid-template-columns:1fr; gap:.8rem; }
  .gs-archive-hero, .gs-archive-hero__copy { min-height:42rem; }
  .gs-product-card__actions { grid-template-columns: 1fr; }
  .gs-product-card__actions > a { padding-block: .4rem; }
  .gs-sample-tray-tab { right: .75rem; bottom: .75rem; }
	.gs-search-form__row { grid-template-columns: minmax(0, 1fr); }
	.gs-search-form button { justify-self: start; padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .gs-archive-hero__layer { animation:none; }
  .gs-content-card__media img, .gs-product-card__media img { transition:none; }
  .gs-sample-tray { transition:none; }
}
