/* A white editorial frame around the workshop and real GSP product stories. */
:root {
  color: #171b20;
  background: #fff;
  --red: #c8102e;
  --muted: #626b73;
  --line: #dadddf;
  --page-gutter: clamp(16px, 2vw, 32px);
}
body { background: #fff; }
em { color: #69727a; }
a:focus-visible, button:focus-visible { outline: 3px solid #c8102e; outline-offset: 5px; }
.skip { color: #fff; }
header, header.scrolled {
  background: #fff;
  color: #171b20;
  border-bottom: 1px solid #e1e4e6;
  backdrop-filter: none;
}
.brand img, footer img { filter: brightness(0); }
nav a { font-size: 14px; }
nav a.nav-shop { border: 0; color: var(--red); font-weight: 600; }
nav a.nav-shop:hover { background: var(--red); color: #fff; }
.hero {
  width: calc(100% - 2 * var(--page-gutter));
  margin: 100px auto 0;
  color: #171b20;
}
.hero h1 { color: #171b20; }
.hero-copy > .eyebrow, .hero-intro { color: #535e67; }
.shop-button, #load-facebook { background: var(--red); }
.shop-button:hover, #load-facebook:hover { background: #a80d26; }
.product-categories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 24px var(--page-gutter) 0;
  scroll-margin-top: 96px;
}
.category-card {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: 8px;
  min-height: 225px;
  padding: 26px;
  background: #f4f5f5;
  border: 1px solid transparent;
}
.category-card:hover { border-color: #b9c0c5; }
.category-copy { min-width: 0; }
.category-card h2 {
  margin: 0 0 12px;
  font-size: clamp(25px, 2.1vw, 36px);
  line-height: 1.05;
  font-weight: 700;
  text-transform: uppercase;
}
.category-card p { color: #535d65; font-size: 16px; line-height: 1.45; }
.category-link {
  display: inline-block;
  margin-top: 25px;
  font-size: 14px;
  color: #343c43;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.category-card img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; mix-blend-mode: multiply; }
.section-label { color: #626b73; font-size: 12px; letter-spacing: .13em; }
.philosophy { background: #fff; padding-bottom: 70px; }
.philosophy-copy .lead { color: #171b20; }
.philosophy-copy p, .philosophy-copy p.muted { color: #56616a; }
.philosophy-copy p.muted { font-size: 16px; }
.origin-line { color: #56616a; font-size: 12px; }
.facebook-updates { background: #f5f6f7; }
.updates-copy > .eyebrow { color: #626b73; font-size: 12px; }
.updates-copy > p:not(.eyebrow) { color: #535e67; }
.updates-facebook-link { border-color: #a2abb2; }
.updates-facebook-link:hover { color: var(--red); }
.updates-detail figcaption { color: #626b73; font-size: 12px; }
.facebook-placeholder { background: #fff; border-color: #d8dde1; }
.facebook-letter { background: #edf0f3; color: #303d49; }
.facebook-placeholder p { color: #535e67; font-size: 16px; }
.facebook-placeholder p.facebook-consent-note { color: #626b73; font-size: 12px; }
.facebook-placeholder > a { color: #45515a; font-size: 14px; }
.facebook-feed-note, .facebook-feed-note a, #unload-facebook { color: #535e67; }
#unload-facebook { font-size: 14px; }
.craft { background: #fff; }
.craft-heading > p, .process-card > p { color: #56616a; }
.process-type, .process-card > .process-type { color: #626b73; font-size: 12px; }
.image-note { font-size: 12px; letter-spacing: .07em; }
.craft-feature { margin: 0 0 44px; overflow: hidden; background: #151515; aspect-ratio: 2.65; }
.craft-feature img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.product-story { background: #f3f5f6; color: #171b20; }
.product-copy > .eyebrow { font-size: 12px; }
.product-copy > p { color: #535e67; }
.product-photo > span { font-size: 12px; }
.work-gallery { background: #fff; }
.gallery-heading > p, .project-card .project-summary { color: #56616a; }
.project-card .project-meta, .project-card .project-number { color: #626b73; }
.gallery-end p { font-size: 14px; color: #626b73; }
.owner-voices { background: #f5f6f7; }
.review-grid figure { border-color: #d2d8dd; }
.review-stars { color: var(--red); }
.review-grid figcaption span, .review-grid figcaption a { color: #626b73; font-size: 13px; }
.connect { background: #fff; }
.connect-heading p, .socials span, .socials small { color: #626b73; }
.socials small { font-size: 12px; }
footer p, footer p.hometown { color: #626b73; }
footer > div > span { color: #303940; }
.project-dialog { color: #171b20; background: #fff; border-color: #d7dce1; }
.project-dialog-copy > p:not(.eyebrow), .project-count { color: #56616a; }
.project-dialog-copy > .eyebrow { color: #626b73; }
.project-controls button { border-color: #b5bdc4; color: #20272d; }
.toast { background: #fff; color: #171b20; border: 1px solid #ccd3d8; box-shadow: 0 8px 30px #1112; }
@media (min-width: 701px) and (max-width: 1100px) {
  .category-card { grid-template-columns: 1fr; align-content: start; padding: 22px; }
  .category-card img { max-height: 160px; grid-row: 1; }
  .category-card p { min-height: 46px; }
  .category-link { margin-top: 16px; }
}
@media (max-width: 900px) {
  .hero { margin-top: 92px; background: #fff; color: #171b20; }
  .hero-copy { padding: 22px 8px 30px; }
  .hero h1 { color: #171b20; }
  .hero-copy > .eyebrow, .hero-intro { color: #535e67; }
  .craft-feature { aspect-ratio: 1.9; margin-bottom: 32px; }
}
@media (max-width: 800px) {
  .hero { margin-top: 84px; }
  nav a:not(.nav-shop) { display: none !important; }
  nav a.nav-shop { display: inline-block; font-size: 14px; }
  .section-label { flex-wrap: wrap; gap: 10px; }
}
@media (max-width: 700px) {
  .product-categories { grid-template-columns: 1fr; gap: 14px; margin-top: 16px; }
  .category-card { min-height: 205px; padding: 24px; }
  .category-card h2 { font-size: 30px; }
  .category-link { margin-top: 20px; }
  .origin-line { flex-wrap: wrap; gap: 14px; }
}
