/* Approved products and courses. Tokens only. */

.disclosure {
  max-width: 68ch;
  padding: var(--space-sm) var(--space-md);
  margin-bottom: var(--space-xl);
  border-left: var(--border-thick) solid var(--color-rule-strong);
  background-color: var(--color-surface-sunken);
  color: var(--color-ink-secondary);
  font-size: var(--text-xs);
}

.product-grid {
  list-style: none; margin: var(--space-xl) 0 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
  gap: var(--space-xl);
}

.product { min-width: 0; }
.product__image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-sm); }
.product__name { margin-top: var(--space-sm); font-size: var(--text-base); font-weight: var(--weight-semibold); }
.product__blurb { margin-top: var(--space-2xs); color: var(--color-ink-secondary); font-size: var(--text-sm); }

.product__code {
  margin-top: var(--space-2xs);
  font-size: var(--text-xs);
  color: var(--color-ink-secondary);
}

.product__code strong {
  color: var(--color-accent);
  letter-spacing: var(--tracking-wide);
}

.product__link { display: inline-block; margin-top: var(--space-2xs); font-size: var(--text-sm); }

.gym-list { list-style: none; margin: var(--space-lg) 0 0; padding: 0; display: grid; gap: var(--space-md); }
.gym { padding-block: var(--space-sm); border-bottom: var(--border-hairline) solid var(--color-rule); }
.gym__name { font-size: var(--text-sm); font-weight: var(--weight-semibold); }
.gym__blurb { margin-top: var(--space-3xs); color: var(--color-ink-secondary); font-size: var(--text-sm); }

/* --- courses ------------------------------------------------------------- */

.courses { display: grid; gap: var(--space-2xl); padding-bottom: var(--space-section); }

/* One column at every width: the banner is the sales artwork and leads,
   the body follows. */
.course {
  max-width: 52rem;
  margin-inline: auto;
  padding-top: var(--space-xl);
  border-top: var(--border-hairline) solid var(--color-rule);
}

.course__image { margin-bottom: var(--space-lg); }
.course__image img { width: 100%; height: auto; border-radius: var(--radius-sm); }

.course__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-sm) var(--space-md);
  margin-block: var(--space-md);
}

.course__cta .course__price { margin: 0; }

.course__cta--close {
  margin-top: var(--space-lg);
  padding-top: var(--space-md);
  border-top: var(--border-hairline) solid var(--color-rule);
}

/* Clamped description: one intact text block that fades out; the toggle
   button sits below it and stays below while the text grows above it. */
[data-collapsible-desc] {
  transition: max-height 0.35s ease;
}

.course__desc--clamped {
  position: relative;
  overflow: hidden;
}

.course__desc--clamped::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 4rem;
  background: linear-gradient(to bottom, transparent, var(--color-surface));
  pointer-events: none;
}

.course__readmore {
  margin-top: var(--space-sm);
  cursor: pointer;
}

.course:first-child { border-top: 0; padding-top: 0; }
.course__body { min-width: 0; }

.course__flag {
  display: inline-block;
  margin-bottom: var(--space-2xs);
  padding: 0.2rem 0.5rem;
  border-radius: var(--radius-sm);
  background-color: var(--color-ink);
  color: var(--color-on-accent);
  font-size: var(--text-2xs);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.course__title { font-size: var(--text-xl); line-height: var(--leading-snug); }
.course__subtitle { margin-top: var(--space-2xs); color: var(--color-ink-secondary); font-size: var(--text-md); }
.course__desc { margin-top: var(--space-md); color: var(--color-ink-secondary); max-width: var(--measure); }

.course__meta {
  display: flex; flex-wrap: wrap; gap: var(--space-lg);
  margin-block: var(--space-md);
  padding-block: var(--space-sm);
  border-block: var(--border-hairline) solid var(--color-rule);
}

.course__meta dt { color: var(--color-ink-faint); font-size: var(--text-2xs); letter-spacing: var(--tracking-caps); text-transform: uppercase; }
.course__meta dd { margin: var(--space-3xs) 0 0; font-size: var(--text-sm); font-weight: var(--weight-medium); }

.course__price { font-size: var(--text-xl); font-weight: var(--weight-semibold); margin-bottom: var(--space-sm); }
.course__preview { display: inline-block; margin-left: var(--space-sm); font-size: var(--text-sm); }
.course__note { margin-top: var(--space-sm); color: var(--color-ink-muted); font-size: var(--text-xs); }

.consult-fallback {
  margin-top: var(--space-lg);
  color: var(--color-ink-secondary);
  font-size: var(--text-sm);
}

/* Coming-soon capture: small, quiet, and clearly not a checkout. */
.course__notify {
  margin-top: var(--space-md);
  padding-top: var(--space-md);
  border-top: var(--border-hairline) solid var(--color-rule);
}

.course__notify-form {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-top: var(--space-xs);
}

.course__notify-form input[type="email"] {
  flex: 1 1 16rem;
  min-width: 0;
  padding: 0.55rem 0.7rem;
  border: var(--border-hairline) solid var(--color-rule-strong);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  font: inherit;
  font-size: var(--text-sm);
}

.course__note--ok { color: var(--color-accent-hover); font-weight: var(--weight-semibold); }
.course__note--error { color: var(--color-ink); font-weight: var(--weight-semibold); }
