/* Purchase price and curriculum remain separate, clearly named actions. */
.tariff-grid .course-bottom .purchase-button,
.guide-action .purchase-button {
  width: 100%;
  min-height: 88px;
  padding: 17px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  border-radius: 18px;
  text-align: center;
  background: linear-gradient(115deg, #b74c75, #a23862);
  border-color: #b64d73;
}

.purchase-current {
  font-size: 19px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: 0;
  white-space: nowrap;
}

.purchase-current strong { font-weight: 700; }
.purchase-discount-callout[hidden], .purchase-promo-note[hidden], .purchase-previous[hidden] { display: none; }

.purchase-previous {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 400;
  color: #fff2f6;
  letter-spacing: 0;
}

.purchase-previous s { text-decoration-thickness: 1px; }

.purchase-promo-note {
  margin: 11px 0 0;
  color: #89556d;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}

.purchase-discount-callout {
  position: relative;
  width: 100%;
  min-height: 65px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 0 0 14px;
  padding: 12px 10px;
  border: 1px solid #e9bfd1;
  border-radius: 13px;
  background: linear-gradient(110deg, #fff5ed, #f9e3ed);
  color: #9c3f67;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s, transform .2s, background .3s;
}
.purchase-discount-callout .icon { width: 21px; height: 21px; flex-shrink: 0; }
.discount-label { display: grid; }
.purchase-discount-callout strong { font-weight: 700; }
.purchase-discount-callout:not(:disabled):hover { border-color: #c36d92; box-shadow: 0 5px 18px #ae456f20; transform: translateY(-2px); }
.purchase-discount-callout:focus-visible { outline: 2px solid #a23862; outline-offset: 4px; }
.purchase-discount-callout:disabled { cursor: default; }
.purchase-discount-callout[data-discount-state="loading"] { opacity: .75; cursor: wait; }
.purchase-discount-callout[data-discount-state="applied"] { border-color: #b7d0bc; background: linear-gradient(110deg,#fff8ef,#edf5ed); }
.purchase-discount-callout[data-discount-state="applied"] .icon,
.purchase-discount-callout[data-discount-state="applied"] strong { color: #28734a; }
.course-discount-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.purchase-current strong { display: inline-block; font-variant-numeric: tabular-nums; }
.discount-celebrate { animation: discount-card-glow 1.1s ease-out; }
.discount-celebrate .purchase-current { animation: discount-price-pop .7s cubic-bezier(.2,.7,.3,1); }
.discount-celebrate .purchase-discount-callout .icon { animation: discount-check-pop .7s ease-out; }
.discount-celebrate .purchase-discount-callout::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(110deg,transparent 30%,#fff9 50%,transparent 70%); animation: discount-shine 1s ease-out both; }
@keyframes discount-card-glow { 0%,100% { box-shadow: 0 6px 20px #ae6b7d09; } 35% { box-shadow: 0 0 0 3px #dc99b540,0 12px 38px #ae456f24; } }
@keyframes discount-price-pop { 0% { transform: translateY(3px) scale(.95); } 45% { transform: translateY(-2px) scale(1.08); } 100% { transform: none; } }
@keyframes discount-check-pop { 0% { transform: rotate(-20deg) scale(.7); } 45% { transform: rotate(10deg) scale(1.3); } 100% { transform: none; } }
@keyframes discount-shine { from { transform: translateX(-110%); } to { transform: translateX(110%); } }
@media(prefers-reduced-motion:reduce) { .purchase-discount-callout { transition: none; } .discount-celebrate,.discount-celebrate .purchase-current,.discount-celebrate .purchase-discount-callout .icon,.discount-celebrate .purchase-discount-callout::after { animation: none; } }

.course-program-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  margin-top: 8px;
  color: #89556d;
  font-size: 13px;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: #c69eae;
  text-underline-offset: 4px;
}

.course-program-link span {
  font-size: 18px;
  text-decoration: none;
}

.course-program-link:hover { color: #a23862; }
.guide-action { min-width: 245px; }
.guide-action .purchase-button--guide { min-height: 76px; }

.course-program {
  display: grid;
  grid-template-columns: .85fr 1.45fr;
  gap: 80px;
  scroll-margin-top: 24px;
}

.course-program-heading { padding-top: 8px; }
.course-program-heading .eyebrow { margin-bottom: 20px; }
.course-program-heading h2 { font-size: 64px; }

.course-program-list { margin: 0; padding: 0; list-style: none; }

.course-program-item {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: start;
  column-gap: 22px;
  padding: 27px 0;
  border-bottom: 1px solid #ead8df;
}

.course-program-item:first-child { padding-top: 0; }
.course-program-item:last-child { padding-bottom: 0; border-bottom: 0; }

.program-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid #ead5dd;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: #a25e7a;
  background: #fcf0f4;
}

.course-program-item h3 {
  margin-top: 6px;
  font-family: var(--serif);
  font-size: 29px;
  line-height: 1.15;
  letter-spacing: -.3px;
}

.course-program-item p,
.program-materials {
  margin-top: 13px;
  color: #806674;
  font-size: 14px;
  line-height: 1.8;
}

.program-materials { display: grid; gap: 7px; }
.program-materials li { position: relative; padding-left: 17px; }
.program-materials li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .8em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #be8299;
}

@media (min-width: 761px) and (max-width: 1100px) {
  .purchase-current { font-size: 16px; }
  .purchase-previous { font-size: 12px; }
  .course-program-link { font-size: 12px; gap: 6px; }
  .guide-action { min-width: 205px; }
  .course-program { grid-template-columns: .8fr 1.5fr; gap: 38px; }
  .course-program-heading h2 { font-size: 53px; }
  .course-program-item { column-gap: 15px; }
  .course-program-item h3 { font-size: 26px; }
}

@media (max-width: 760px) {
  .course-program {
    max-width: 510px;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    scroll-margin-top: 12px;
  }
  .course-program-heading { padding: 0; }
  .course-program-heading .eyebrow { margin-bottom: 13px; font-size: 10px; }
  .course-program-heading h2 { font-size: 49px; }
  .course-program-item { grid-template-columns: 35px minmax(0, 1fr); gap: 15px; padding: 22px 0; }
  .program-number { width: 35px; height: 35px; font-size: 11px; }
  .course-program-item h3 { font-size: 27px; margin-top: 3px; }
  .course-program-item p, .program-materials { margin-top: 11px; font-size: 14px; line-height: 1.75; }
  .guide-action { min-width: 0; }
}

@media (max-width: 360px) {
  .purchase-current { font-size: 17px; }
  .course-program-link { font-size: 12px; }
  .course-program-heading h2 { font-size: 43px; }
  .course-program-heading .eyebrow { font-size: 9px; }
  .course-program-item { column-gap: 12px; }
  .course-program-item h3 { font-size: 25px; }
  .course-program-item p, .program-materials { font-size: 13px; }
}

/* Permanent lesson access and a concise music-module gift. */
.program-access{max-width:335px;margin-top:25px}
.program-access h3{display:flex;align-items:center;gap:9px;font-family:inherit;font-size:15px;font-weight:600;line-height:1.5;letter-spacing:0;color:#a3476d}
.program-access h3>.icon{width:23px;height:23px;flex-shrink:0;color:#b36687}
.program-access p{font-size:13px;line-height:1.8;color:#806674;margin-top:9px}
.course-program-item.program-bonus{margin-top:24px;padding:20px;border:1px solid #e4bfd0;border-radius:19px;background:linear-gradient(115deg,#fffaf8,#f9e8ef)}
.program-bonus .program-number{font-size:22px;background:#fffaf8;border-color:#e6c3d2}
.program-bonus-tag{display:block;font-size:10px;line-height:1.5;font-weight:600;letter-spacing:1.2px;color:#ac5d80}
.program-bonus h3{margin-top:6px}
@media(max-width:760px){.program-access{max-width:none;margin-top:19px}.course-program-item.program-bonus{padding:18px 15px;margin-top:22px}}
@media(max-width:360px){.program-access p{font-size:12px}.program-bonus-tag{font-size:9px;letter-spacing:.8px}}
