.affiliate-products { margin-block: 18px; }
.affiliate-products h2 { font-size: clamp(1.15rem, 2.8vw, 1.5rem); line-height: 1.5; }
.affiliate-products h2 small { font-size: .8em; white-space: nowrap; }
.affiliate-products .affiliate-note { line-height: 1.8; margin-bottom: 18px; }
.affiliate-products .affiliate-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 14px; }
.affiliate-products .affiliate-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.affiliate-products .affiliate-card p { margin: 0; line-height: 1.7; }
.affiliate-products .affiliate-card h3 { margin: 0; font-size: 1.1rem; overflow-wrap: anywhere; }
.affiliate-products .affiliate-card > img:not(.affiliate-pixel) { display: block; width: 160px; height: 120px; max-width: 100%; object-fit: contain; align-self: center; background: white; border-radius: 6px; padding: 6px; }
.affiliate-products .affiliate-purpose { font-size: .85rem; font-weight: 700; }
.affiliate-products .affiliate-detail { font-size: .85rem; opacity: .8; }
.affiliate-products .affiliate-link { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid currentColor; border-radius: 8px; padding: 9px 12px; text-align: center; text-decoration: none; }
.affiliate-products .affiliate-link:hover { text-decoration: underline; }
.affiliate-products .affiliate-link:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.affiliate-products .affiliate-disclaimer { font-size: .82rem; line-height: 1.7; margin: 16px 0 0; opacity: .8; }
.affiliate-products .affiliate-pixel { width: 1px; height: 1px; border: 0; }

/* Existing media and speaker page palettes; no changes outside the product block. */
.lab-page .affiliate-products {
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(111, 228, 255, .18);
  border-radius: 14px;
  background: rgba(8, 20, 28, .78);
}
.lab-page .affiliate-card {
  padding: 18px;
  border: 1px solid rgba(111, 228, 255, .18);
  border-radius: 10px;
  background: rgba(3, 12, 19, .5);
}
.speaker-page .affiliate-products {
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
}
.speaker-page .affiliate-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}
.speaker-page .affiliate-link { color: var(--teal); }
@media (min-width: 600px) {
  .affiliate-products .affiliate-card:only-child {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    column-gap: 24px;
  }
  .affiliate-products .affiliate-card:only-child > :not(img) { grid-column: 2; }
  .affiliate-products .affiliate-card:only-child > img:not(.affiliate-pixel) { grid-column: 1; grid-row: 1 / 6; }
}
