/* Homepage-only typography refinement; retain the shared palette and font. */
.home-page .section { padding-block: clamp(44px, 5.5vw, 80px); }
.home-page .category-grid { gap: 0 36px; }
.home-page .category-grid > a { padding: 26px 28px 28px 0; }
.home-page .category-grid h3 { padding-right: 0; font-size: 18px; margin-bottom: 10px; }
.home-page .category-grid p { padding: 0; font-size: 14px; line-height: 1.75; }
.home-page .category-grid svg { top: 30px; }
.home-page .category-grid > a:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 5px;
}
.home-page .product-grid { gap: 40px 28px; }
.home-page .product-card { display: flex; flex-direction: column; min-width: 0; }
.home-page .product-card h3 {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -.01em;
  min-height: 3em;
  margin-bottom: 6px;
}
.home-page .product-image { aspect-ratio: 1; }
.home-page .product-meta { font-size: 12px; letter-spacing: 0; margin-top: 10px; }
.home-page .product-card p { font-size: 14px; margin-bottom: 10px; }
.home-page .product-card strong { font-size: 17px; margin-top: auto; }
.home-page .product-card > .text-link {
  font-size: 14px;
  min-height: 46px;
  margin-top: 20px;
  padding-inline: 16px;
}
.home-page .story-strip { align-items: start; gap: 48px; }
.home-page .story-strip p { max-width: 64ch; font-size: 16px; }
.home-page .faq {
  max-width: 1280px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  column-gap: 48px;
  align-items: start;
}
.home-page .faq > h2 { grid-row: 1 / span 5; max-width: 14ch; }
.home-page .faq > details { grid-column: 2; padding-block: 6px; }
.home-page .faq summary { min-height: 48px; }
.home-page + .site-footer {
  background: var(--surface);
  padding-block: 48px 28px;
  margin-top: 0;
  gap: 32px 56px;
  grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr));
}
.home-page + .site-footer > div { max-width: 38ch; }
.home-page + .site-footer h2 { font-size: 16px; font-weight: 500; letter-spacing: 0; margin: 12px 0 16px; }
.home-page + .site-footer nav a { display: flex; align-items: center; min-height: 44px; line-height: 1.6; padding-block: 8px; }
.home-page + .site-footer nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.home-page + .site-footer small { border-top: 1px solid var(--line); padding-top: 24px; line-height: 1.8; }

@media (max-width: 1024px) {
  .home-page .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .home-page .category-grid { gap: 0 20px; }
  .home-page .category-grid > a { padding: 20px 0; }
  .home-page .category-grid h3 { font-size: 16px; padding-right: 20px; }
  .home-page .category-grid p { font-size: 13px; }
  .home-page .category-grid svg { top: 25px; }
  .home-page .product-grid { gap: 32px 16px; }
  .home-page .product-card h3 { font-size: 16px; }
  .home-page .product-card p { font-size: 13px; }
  .home-page .product-card strong { font-size: 16px; }
  .home-page .product-card > .text-link { padding-inline: 10px; font-size: 13px; margin-top: 16px; }
  .home-page .story-strip { gap: 16px; }
  .home-page .faq { grid-template-columns: minmax(0, 1fr); }
  .home-page .faq > h2 { grid-row: auto; max-width: none; }
  .home-page .faq > details { grid-column: 1; }
  .home-page + .site-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; padding-block: 36px 24px; }
  .home-page + .site-footer > div { grid-column: 1 / -1; }
}
@media (max-width: 359px) {
  .home-page .product-grid { grid-template-columns: minmax(0, 1fr); }
  .home-page .product-card h3 { min-height: 0; }
}

.home-page .snack-hero {
  grid-template-columns: minmax(0, 1.45fr) minmax(0, .85fr);
  gap: clamp(40px, 6vw, 88px);
  padding-block: clamp(64px, 6vw, 88px);
  align-items: center;
}

.home-page .snack-hero h1 {
  max-width: none;
  font-size: clamp(44px, 4.8vw, 68px);
  font-weight: 420;
  line-height: 1.14;
  letter-spacing: -.025em;
  margin-bottom: 28px;
  text-wrap: balance;
}

.home-page .snack-hero > div:first-child > p {
  max-width: 44ch;
  font-size: 17px;
  line-height: 1.8;
  margin-bottom: 30px;
}

.home-page .hero-index h2 {
  font-size: 21px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -.015em;
}

.home-page .section-heading h2,
.home-page .story-strip h2,
.home-page .faq > h2 {
  font-size: clamp(28px, 2.6vw, 34px);
  font-weight: 450;
  line-height: 1.28;
  letter-spacing: -.02em;
  text-wrap: balance;
}

.home-page .section-heading { margin-bottom: 36px; }
.home-page .category-grid h3 {
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.4;
}

@media (min-width: 701px) and (max-width: 1024px) {
  .home-page .snack-hero {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr);
    gap: 32px;
    padding-block: 56px;
  }
  .home-page .snack-hero h1 { font-size: clamp(34px, 4.4vw, 46px); }
  .home-page .snack-hero > div:first-child > p { font-size: 16px; }
  .home-page .hero-index h2 { font-size: 19px; }
}

@media (max-width: 700px) {
  .home-page .snack-hero {
    grid-template-columns: minmax(0, 1fr);
    padding-block: 40px;
    gap: 36px;
  }
  .home-page .snack-hero h1 {
    font-size: clamp(32px, 9.2vw, 46px);
    line-height: 1.18;
    letter-spacing: -.02em;
    margin-bottom: 24px;
  }
  .home-page .snack-hero > div:first-child > p {
    font-size: 16px;
    line-height: 1.75;
    margin-bottom: 26px;
  }
  .home-page .section-heading h2,
  .home-page .story-strip h2,
  .home-page .faq > h2 { font-size: clamp(26px, 6.8vw, 30px); }
  .home-page .section-heading { margin-bottom: 28px; }
}
