.shop-grid-section {
  padding-bottom: 4rem;
}

.category-section { background:#0b0b0b; }
.category-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.category-links a { min-height:210px; padding:1.5rem; background:#101010; display:flex; flex-direction:column; position:relative; isolation:isolate; overflow:hidden; transition:background .2s ease,transform .2s ease; }
.category-links a::before { content:""; position:absolute; inset:0; z-index:-2; background-image:var(--category-image); background-size:cover; background-position:center; opacity:.5; filter:saturate(.82) contrast(1.08); transform:scale(1.01); transition:opacity .35s ease,transform .5s ease,filter .35s ease; }
.category-links a::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(7,7,7,.2) 0%,rgba(7,7,7,.48) 45%,rgba(7,7,7,.96) 100%); transition:background .35s ease; }
.category-links a:hover::before,.category-links a:focus-visible::before { opacity:.72; filter:saturate(1) contrast(1.1); transform:scale(1.06); }
.category-links a:hover::after,.category-links a:focus-visible::after { background:linear-gradient(180deg,rgba(7,7,7,.08) 0%,rgba(7,7,7,.35) 45%,rgba(7,7,7,.92) 100%); }
.category-links a:focus-visible { outline:2px solid var(--red); outline-offset:-2px; }
.category-links span { color:var(--red); font:800 .7rem Montserrat; text-shadow:0 1px 12px #000; }
.category-links strong { margin-top:auto; font:800 1.25rem Montserrat; text-transform:uppercase; text-shadow:0 2px 18px #000; }
.category-links small { margin-top:.5rem; color:#b6b6b6; font-size:.78rem; text-shadow:0 1px 12px #000; }

.hero-stack {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(.65rem, 1.2vw, 1.25rem);
  padding: 8rem 3vw 5rem;
  background: radial-gradient(circle at 50% 48%, #5b171b 0, #160a0b 46%, #080808 78%);
}

.hero-art .hero-sheet {
  width: min(29%, 300px);
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.2);
  box-shadow: 0 28px 60px rgba(0,0,0,.7);
}

.hero-art .hero-sheet-main {
  z-index: 1;
  width: min(38%, 390px);
  transform: translateY(-1rem);
}

.hero-art .hero-sheet-left {
  transform: rotate(-4deg) translateX(1rem);
}

.hero-art .hero-sheet-right {
  transform: rotate(4deg) translateX(-1rem);
}

.filters {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin: -1rem 0 1.25rem;
}

.catalog-tools { display:flex; justify-content:flex-end; margin:-1rem 0 1rem; }
.catalog-search { width:min(100%,520px); }
.catalog-search span { display:block; margin-bottom:.55rem; color:#888; font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.catalog-search input { width:100%; min-height:48px; padding:.8rem 1rem; border:1px solid #373737; border-radius:0; background:#0d0d0d; color:#fff; font:600 .9rem Manrope,sans-serif; }
.catalog-search input::placeholder { color:#666; }
.catalog-search input:focus { outline:2px solid var(--red); outline-offset:0; border-color:var(--red); }

.filter-button {
  appearance: none;
  padding: .72rem 1rem;
  border: 1px solid #373737;
  background: transparent;
  color: #aaa;
  font: 700 .73rem Manrope, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.filter-button:hover,
.filter-button:focus-visible {
  border-color: #888;
  color: #fff;
}

.filter-button.active {
  border-color: var(--red);
  background: var(--red);
  color: #fff;
}

.filter-status {
  margin: 0 0 1.25rem;
  color: #6f6f6f;
  font-size: .78rem;
}

.catalog-footer { display:flex; justify-content:center; align-items:center; gap:1.5rem; margin-top:2rem; }
.catalog-more { border:1px solid var(--red); background:var(--red); color:#fff; cursor:pointer; font:800 .78rem Manrope,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.catalog-more:hover,.catalog-more:focus-visible { background:#ff3942; }
.catalog-more[hidden] { display:none; }

.guide-section { background:#101010; }
.guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.guide-grid a { min-height:290px; padding:2rem; display:flex; flex-direction:column; background:#0b0b0b; transition:background .2s ease; }
.guide-grid a:hover { background:#151515; }
.guide-grid span { color:var(--red); font:800 .7rem Montserrat; letter-spacing:.12em; }
.guide-grid h3 { margin:3.5rem 0 .8rem; font:800 1.35rem Montserrat; text-transform:uppercase; }
.guide-grid p { margin:0 0 2rem; color:#888; line-height:1.7; }
.guide-grid b { margin-top:auto; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }

.mobile-shop-cta { display:none; }

.product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}

.product-card {
  min-width: 0;
  background: #0d0d0d;
  transition: background .25s ease;
}

.product-card.is-hidden {
  display: none;
}

.product-card:hover {
  background: #151515;
}

.product-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  background: #151515;
}

.product-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, .42), transparent 46%);
  pointer-events: none;
}

.product-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.product-card:hover .product-image img {
  transform: scale(1.025);
}

.product-image span {
  position: absolute;
  z-index: 1;
  left: 1rem;
  bottom: 1rem;
  padding: .48rem .65rem;
  border: 1px solid #555;
  background: rgba(7, 7, 7, .88);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.product-info {
  display: grid;
  min-height: 190px;
  padding: 1.35rem 1.4rem 1.55rem;
}

.product-info p {
  margin: 0 0 .65rem;
  color: var(--red);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
}

.product-info h3 {
  margin: 0;
  font: 800 clamp(1.25rem, 2vw, 1.75rem) Montserrat;
  letter-spacing: -.03em;
  text-transform: uppercase;
}

.product-info small {
  display: block;
  margin: .65rem 0 1.4rem;
  color: #888;
  font-size: .78rem;
}

.product-info b {
  align-self: end;
  color: #ddd;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.trust-strip {
  display: grid;
  grid-template-columns: .55fr .55fr .65fr 2fr;
  align-items: stretch;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #0d0d0d;
}

.trust-strip > div,
.trust-strip blockquote {
  margin: 0;
  padding: 2rem 2.2rem;
  border-right: 1px solid var(--line);
}

.trust-strip strong {
  display: block;
  margin-bottom: .35rem;
  color: #fff;
  font: 900 2rem Montserrat;
}

.trust-strip span,
.trust-strip cite {
  color: #777;
  font-size: .72rem;
  font-style: normal;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trust-strip blockquote {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #ddd;
  font-size: 1rem;
  line-height: 1.6;
}

.trust-strip cite {
  margin-top: .5rem;
}

.how-it-works {
  background: #101010;
}

.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}

.steps article {
  min-height: 280px;
  padding: 2rem;
  background: #0b0b0b;
}

.steps span {
  color: var(--red);
  font: 800 .72rem Montserrat;
}

.steps h3 {
  margin: 4rem 0 .8rem;
  font: 800 1.25rem Montserrat;
  text-transform: uppercase;
}

.steps p {
  color: #888;
  line-height: 1.7;
}

.faq {
  background: #eee;
  color: #090909;
}

.faq .section-head > p {
  color: #555;
}

.faq-list {
  border-top: 1px solid #aaa;
}

.faq-list details {
  border-bottom: 1px solid #aaa;
}

.faq-list summary {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.6rem 0;
  font: 800 1rem Montserrat;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary span {
  color: var(--red);
  font-size: 1.4rem;
  transition: transform .2s ease;
}

.faq-list details[open] summary span {
  transform: rotate(45deg);
}

.faq-list details p {
  max-width: 760px;
  margin: -.5rem 0 1.8rem;
  color: #505050;
  line-height: 1.75;
}

@media (max-width: 900px) {
  .category-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trust-strip {
    grid-template-columns: repeat(3, 1fr);
  }

  .trust-strip blockquote {
    grid-column: 1 / -1;
    border-top: 1px solid var(--line);
  }

  .steps {
    grid-template-columns: 1fr;
  }
  .guide-grid { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  .category-links { grid-template-columns:1fr; }
  .category-links a { min-height:150px; }
}

@media (max-width: 560px) {
  .product-grid {
    grid-template-columns: 1fr;
  }

  .hero-stack {
    padding: 5rem .9rem 3rem;
    gap: .35rem;
  }

  .hero-art .hero-sheet {
    width: 31%;
  }

  .hero-art .hero-sheet-main {
    width: 40%;
  }

  .trust-strip {
    grid-template-columns: 1fr;
  }

  .trust-strip > div,
  .trust-strip blockquote {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .trust-strip blockquote {
    grid-column: auto;
  }

  .product-info {
    min-height: 170px;
  }
  .catalog-tools { justify-content:stretch; }
  .catalog-footer { flex-direction:column; }
  .mobile-shop-cta { display:flex; position:fixed; z-index:20; left:1rem; right:1rem; bottom:1rem; min-height:52px; align-items:center; justify-content:space-between; padding:0 1rem; border:1px solid rgba(255,255,255,.25); background:rgba(240,38,47,.96); color:#fff; box-shadow:0 12px 35px rgba(0,0,0,.55); font:800 .78rem Montserrat; letter-spacing:.06em; text-transform:uppercase; transform:translateY(90px); opacity:0; pointer-events:none; transition:transform .25s ease,opacity .25s ease; }
  .mobile-shop-cta.is-visible { transform:translateY(0); opacity:1; pointer-events:auto; }
  body { padding-bottom:74px; }
}
