.prep-catalog-main {
  max-width: 1600px;
  margin: 0 auto;
  padding: 28px 32px 40px;
  color: #0b0b0b;
}
.prep-catalog-main > h1 {
  margin: 0 0 12px;
  color: #202b3d;
  text-align: center;
  font: 700 40px/1.2 var(--heading-font);
  letter-spacing: -1.2px;
}
.prep-catalog-main sup { font-size: .5em; vertical-align: super; line-height: 0; }
.prep-demo-note { margin: 0 0 30px; text-align: center; color: #676574; font-size: 12px; line-height: 1.5; }
.prep-catalog-section { margin-top: 38px; }
.prep-primary-section { margin-top: 0; }
.prep-catalog-section > h2 {
  margin: 0 0 24px;
  font: 700 28px/1.25 var(--heading-font);
  letter-spacing: -.8px;
}
.prep-primary-section > h2 { margin-bottom: 12px; }
.prep-intro { margin: 0 0 26px; font-size: 18px; line-height: 1.5; letter-spacing: -.35px; }
.prep-intro p { margin: 2px 0; }
.prep-product-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.prep-product {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 18px;
  border: 1px solid #373451;
  background: #fff;
}
.prep-product-paid { min-height: 470px; }
.prep-product-partner { min-height: 405px; }
.prep-product-free { min-height: 420px; }
.prep-art-wrap { position: relative; flex-shrink: 0; }
/* These are unchanged reference PNGs. Only their product artwork windows are
   shown; the surrounding catalog, prices, descriptions and controls are HTML. */
.prep-product-art { width: 100%; aspect-ratio: 396 / 322; background-repeat: no-repeat; background-color: #918bf9; }
.prep-product-paid .prep-product-art { background-image: url('/prep-products-reference.png'); background-size: 739.89899% 447.20497%; background-position-y: 43.29159%; }
.prep-art-practice { background-position-x: 4.81452%; }
.prep-art-trio { background-position-x: 25.01973%; }
.prep-art-six { background-position-x: 45.22494%; }
.prep-art-course { background-position-x: 65.43015%; }
.prep-art-guide { background-position-x: 85.63536%; }
.prep-product-partner .prep-product-art { aspect-ratio: 396 / 274; background-image: url('/prep-partners-reference.png'); background-size: 856.06061% 647.44526%; background-position-y: 12.26667%; }
.prep-art-partner-six { background-position-x: 19.03808%; }
.prep-art-partner-three { background-position-x: 36.13894%; }
.prep-product-free .prep-product-art { aspect-ratio: 396 / 274; background-image: url('/prep-free-reference.png'); background-size: 836.86869% 635.03650%; background-position-y: 29.33151%; }
.prep-art-sample { background-position-x: 20.42495%; }
.prep-art-test-one { background-position-x: 37.97121%; }
.prep-art-test-two { background-position-x: 55.51748%; }
.prep-enlarge { position: absolute; top: -6px; right: -6px; width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid #454089; background: #fff; color: #454089; }
.prep-enlarge svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.prep-product h3 { margin: 12px 0 5px; font: 700 20px/1.4 var(--heading-font); letter-spacing: -.65px; overflow-wrap: anywhere; }
.prep-price { margin: 0 0 12px; font-size: 19px; line-height: 1.4; letter-spacing: -.55px; }
.prep-description { margin: 0 0 24px; font-size: 14px; line-height: 1.6; letter-spacing: -.25px; }
.prep-display-button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 100%;
  min-height: 48px;
  margin-top: auto;
  padding: 11px 8px;
  border: 0;
  background: #393573;
  color: #fff;
  font: 700 14px/1.4 var(--body-font);
  text-align: center;
  cursor: default;
}
.prep-requirements { display: flex; align-items: center; gap: 10px; margin-top: 20px; padding: 20px; border: 1px solid #ace4fb; background: #f2fbfe; color: #202b3d; }
.prep-requirements > svg { flex-shrink: 0; width: 24px; height: 24px; fill: none; stroke: #50d3ff; stroke-width: 2; }
.prep-requirements > h2 { flex: 1; margin: 0; font: 700 25px/1.3 var(--heading-font); letter-spacing: -.8px; }
.prep-details-button { flex-shrink: 0; width: auto; min-width: 135px; min-height: 40px; margin: 0 0 0 16px; border: 1px solid #435066; background: transparent; color: #393573; font-size: 12px; }
@media (max-width: 1099px) {
  .prep-catalog-main { padding: 28px 24px 36px; }
  .prep-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .prep-catalog-main > h1 { font-size: 34px; }
  .prep-product-paid { min-height: 445px; }
  .prep-requirements > h2 { font-size: 22px; }
}
@media (max-width: 699px) {
  .prep-catalog-main { padding: 24px 18px 30px; }
  .prep-catalog-main > h1 { font-size: 29px; letter-spacing: -.8px; }
  .prep-demo-note { margin-bottom: 24px; }
  .prep-catalog-section { margin-top: 28px; }
  .prep-primary-section { margin-top: 0; }
  .prep-catalog-section > h2 { font-size: 25px; margin-bottom: 18px; }
  .prep-intro { font-size: 16px; }
  .prep-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .prep-product { padding: 14px; }
  .prep-product h3 { font-size: 19px; }
  .prep-price { font-size: 18px; }
  .prep-requirements { flex-wrap: wrap; padding: 16px; }
  .prep-requirements > h2 { min-width: 180px; font-size: 21px; }
  .prep-details-button { width: 100%; margin: 8px 0 0; }
}
@media (max-width: 479px) {
  .prep-product-grid { grid-template-columns: minmax(0, 1fr); }
  .prep-product { min-height: 0; padding: 18px; }
  .prep-product h3 { font-size: 21px; }
  .prep-price { font-size: 20px; }
  .prep-description { font-size: 15px; }
  .prep-enlarge { width: 42px; height: 42px; }
}
