
/* CurioSpark v7.55 — member child-selection checkout */
.program-catalog-loading,
.program-catalog-empty {
  grid-column: 1 / -1;
  padding: 2rem;
  border: 1px solid #eadbf4;
  border-radius: 1.25rem;
  background: #fff;
  color: #4f176f;
}
.program-catalog-empty h3 { margin: .35rem 0 .6rem; font-family: Fraunces, Georgia, serif; }
.program-market-card .program-meta { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0; color: #655271; font-size: .9rem; font-weight: 700; }
.program-market-card .program-meta span { padding: .45rem .65rem; border-radius: 999px; background: #f6edf8; }
.program-setup-note { display: inline-flex; padding: .7rem .8rem; color: #6d5b77; font-size: .9rem; font-weight: 700; }
.program-enrollment-modal[hidden] { display: none; }
.program-enrollment-modal { position: fixed; z-index: 10050; inset: 0; display: grid; place-items: center; padding: 1rem; }
.program-enrollment-backdrop { position: absolute; inset: 0; background: rgba(35, 7, 54, .55); backdrop-filter: blur(2px); }
.program-enrollment-dialog { position: relative; width: min(100%, 34rem); max-height: min(90vh, 42rem); overflow: auto; background: #fffdf9; border: 1px solid #eadbf4; border-radius: 1.5rem; padding: clamp(1.25rem, 5vw, 2rem); box-shadow: 0 24px 70px rgba(42, 7, 62, .28); }
.program-enrollment-dialog h2 { margin: .3rem 2.4rem .75rem 0; color: #49136a; font-family: Fraunces, Georgia, serif; font-size: clamp(1.85rem, 6vw, 2.5rem); line-height: 1.06; }
.program-enrollment-dialog p { color: #5e4b68; line-height: 1.58; }
.program-modal-close { position: absolute; right: 1rem; top: 1rem; width: 2.25rem; height: 2.25rem; border: 0; border-radius: 50%; background: #f3e9f7; color: #4b176b; font-size: 1.7rem; cursor: pointer; }
.program-child-label { display: grid; gap: .45rem; margin: 1.25rem 0; color: #471569; font-weight: 800; }
.program-child-label select { width: 100%; min-height: 3.2rem; padding: .65rem .75rem; border: 1px solid #cfb1da; border-radius: .8rem; color: #33203e; background: #fff; font: inherit; }
.program-modal-note { margin: .85rem 0 1.25rem; padding: .85rem 1rem; border-radius: .8rem; background: #f7f0fc; font-size: .92rem; }
.program-modal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem; }
.program-child-empty { margin: 1rem 0; padding: 1rem; border: 1px dashed #c7a8d4; border-radius: .8rem; background: #fcf8ff; }
.program-child-empty p { margin: .35rem 0 .85rem; }
body.program-modal-open { overflow: hidden; }
@media (max-width: 520px) {
  .program-enrollment-modal { align-items: end; padding: .5rem; }
  .program-enrollment-dialog { width: 100%; border-radius: 1.35rem 1.35rem .8rem .8rem; }
  .program-modal-actions { display: grid; grid-template-columns: 1fr; }
  .program-modal-actions .button { width: 100%; }
}


/* v7.57 — clearer program copy and one decisive child-registration action */
.program-market-card .program-description { margin: .72rem 0 0; color: #5d4c66; line-height: 1.62; white-space: normal; }
.program-market-card .program-description + .program-description { margin-top: .95rem; }
.program-market-card .program-date-chip { line-height: 1.25; white-space: normal; }

/* v7.57.6 — registration overlay reliability on desktop and phones */
.program-enrollment-modal { z-index: 2147483000; }
.program-router-error { margin: .85rem 0 0; padding: .78rem .9rem; border: 1px solid rgba(165,39,65,.22); border-radius: .8rem; background: #fff0f1; color: #8e1f35; font-size: .92rem; line-height: 1.45; }
.program-market-card .program-card-actions { position: relative; z-index: 2; }
.program-market-card .program-card-actions .button { min-height: 3rem; }
@media (max-width: 600px) {
  .program-enrollment-modal { align-items: end; padding: max(.5rem, env(safe-area-inset-top)) .5rem max(.5rem, env(safe-area-inset-bottom)); }
  .program-enrollment-dialog { width: 100%; max-height: min(88dvh, 46rem); padding: 1.15rem; border-radius: 1.3rem 1.3rem .7rem .7rem; }
  .program-enrollment-dialog h2 { font-size: clamp(1.65rem, 8vw, 2.1rem); }
  .program-child-label select { min-height: 3.3rem; font-size: 1rem; }
  .program-modal-actions { display: grid; grid-template-columns: 1fr; }
  .program-modal-actions .button { width: 100%; min-height: 3.2rem; justify-content: center; text-align: center; }
  .program-modal-close { right: .75rem; top: .75rem; }
}


/* CurioSpark v7.57.7 — consistent visual marker for every program placard */
.program-market-card { position: relative; overflow: hidden; }
.program-card-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.program-card-heading-row > div:first-child { min-width: 0; }
.program-card-heading-row h2 { margin-bottom: .35rem; }
.program-card-visual {
  position: relative;
  width: 4.25rem;
  min-width: 4.25rem;
  height: 4.25rem;
  display: grid;
  place-items: center;
  border-radius: 1.3rem;
  border: 1px solid rgba(93, 37, 121, .12);
  box-shadow: 0 .65rem 1.5rem rgba(78, 24, 111, .11);
  overflow: hidden;
}
.program-card-visual--books { background: linear-gradient(145deg, #fff4c7, #f8e5a3); }
.program-card-visual--math { background: linear-gradient(145deg, #e4f7ff, #d9e9ff); }
.program-card-visual--nature { background: linear-gradient(145deg, #e6f7df, #d3f0c4); }
.program-card-visual--creative { background: linear-gradient(145deg, #ffe7f2, #eeddfd); }
.program-card-visual--wonder { background: linear-gradient(145deg, #f4e8ff, #e9dcff); }
.program-card-visual-icon { position: relative; z-index: 1; color: #501b72; font-size: 1.9rem; line-height: 1; filter: drop-shadow(0 .2rem .25rem rgba(67, 20, 92, .16)); }
.program-card-visual-spark { position: absolute; color: #75319a; font-size: .82rem; opacity: .78; }
.program-card-visual-spark--one { left: .48rem; top: .5rem; }
.program-card-visual-spark--two { right: .42rem; bottom: .42rem; color: #d79a16; font-size: 1.02rem; }
.program-market-card::after { content: ''; position: absolute; right: -4.25rem; top: 4.4rem; width: 10rem; height: 10rem; border-radius: 50%; border: 1px solid rgba(117, 49, 154, .07); pointer-events: none; }
@media (max-width: 600px) {
  .program-card-heading-row { gap: .7rem; }
  .program-card-visual { width: 3.45rem; min-width: 3.45rem; height: 3.45rem; border-radius: 1rem; }
  .program-card-visual-icon { font-size: 1.5rem; }
  .program-card-visual-spark--one { left: .32rem; top: .32rem; }
  .program-card-visual-spark--two { right: .28rem; bottom: .26rem; font-size: .8rem; }
}


/* CurioSpark v7.58 — literal first-ten-authored-lines preview, with remainder in normal flow. */
.program-description-group { margin-top: .72rem; }
.program-description-group .program-description { margin: 0; }
.program-description--extra { margin-top: .95rem !important; }
.program-description--extra[hidden] { display: none; }
.program-description-label,
.program-description-section-heading {
  color: #4f176f;
  font-weight: 800;
}
.program-details-toggle {
  display: inline-flex;
  align-items: center;
  margin: .3rem 0 0;
  padding: .2rem 0;
  border: 0;
  background: transparent;
  color: #4f176f;
  font: inherit;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: underline;
  text-underline-offset: .16em;
  cursor: pointer;
}
.program-details-toggle:hover { color: #75319a; }
.program-details-toggle:focus-visible { outline: 3px solid rgba(117, 49, 154, .36); outline-offset: .22rem; border-radius: .2rem; }
.program-market-card .program-card-actions { margin-top: 1rem; }
@media (max-width: 600px) {
  .program-details-toggle { min-height: 2.75rem; padding: .45rem 0; }
}


/* CurioSpark v7.58.2 — Parent enrollment helper (presentation and guidance only). */
.program-enrollment-nudge{display:grid;gap:.65rem;margin-top:.2rem;padding:.9rem 1rem;border:1px solid rgba(95,37,121,.15);border-radius:1rem;background:linear-gradient(145deg,#fffdf8,#fbf8ff)}
.program-enrollment-nudge p{margin:0;color:#64566e;font-size:.9rem;line-height:1.48}
.program-enrollment-nudge strong{color:#4a1766}
.program-enrollment-nudge.is-blocked{background:linear-gradient(145deg,#fff9e9,#fffdf8);border-color:rgba(184,124,13,.24)}
.program-enrollment-nudge.is-ready{background:linear-gradient(145deg,#f8fffa,#fdfcff);border-color:rgba(44,126,76,.2)}
.program-enrollment-nudge .button{justify-self:start}
.program-help-link{display:inline-flex;align-items:center;width:max-content;color:#531a74;font-size:.86rem;font-weight:800;text-decoration:underline;text-underline-offset:.18em}
.program-help-link:hover{color:#78339a}
.program-payment-note-actions{display:grid;gap:.65rem;justify-items:start}
.program-enrollment-dialog [data-program-modal-submit][hidden]{display:none!important}
.program-modal-note a{color:#4f176f;font-weight:800}
@media(max-width:600px){.program-enrollment-nudge .button{width:100%;justify-content:center}.program-help-link{min-height:2.5rem}.program-payment-note-actions .button{width:100%;justify-content:center}}


/* CurioSpark v7.74 — Program enrollment feedback and legacy learner compatibility */
.program-modal-feedback[hidden] { display: none; }
.program-modal-feedback { margin: .85rem 0 1rem; padding: .82rem .92rem; border-radius: .8rem; border: 1px solid rgba(140, 56, 56, .24); background: #fff2f3; color: #8a2537; font-size: .92rem; font-weight: 700; line-height: 1.45; }
.program-modal-feedback[data-tone="warn"] { border-color: rgba(168, 116, 24, .3); background: #fff8e8; color: #805316; }
.program-modal-feedback[data-tone="good"] { border-color: rgba(41, 123, 72, .24); background: #effbf3; color: #23623c; }
.program-child-label select:focus-visible { outline: 3px solid rgba(95, 37, 121, .3); outline-offset: 2px; }


/* CurioSpark v8.30.1 — Mobile registration activation guard.
   Keeps the card and checkout actions as explicit, dependable touch targets. */
.program-card-actions [data-program-select][aria-busy="true"],
.program-modal-actions [data-program-modal-submit][aria-busy="true"] { opacity: .74; }
@media (max-width: 820px) {
  .program-card-actions [data-program-select],
  .program-modal-actions [data-program-modal-submit],
  .program-modal-actions [data-program-plan-request] {
    min-height: 3.25rem;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(95,37,121,.16);
  }
  .program-enrollment-dialog { overscroll-behavior: contain; }
}


/* CurioSpark v8.50.1 - Waitlist modal payment isolation.
   Author button/panel display rules must never override the hidden state. */
.program-modal-actions [data-program-plan-request][hidden],
.program-plan-request[data-program-plan-request-panel][hidden],
.program-enrollment-modal[data-program-mode="waitlist"] [data-program-plan-request],
.program-enrollment-modal[data-program-mode="waitlist"] [data-program-plan-request-panel] {
  display: none !important;
}
.program-enrollment-modal[data-program-mode="waitlist"] .program-modal-actions {
  grid-template-columns: auto minmax(9rem, auto);
}
@media (max-width: 600px) {
  .program-enrollment-modal[data-program-mode="waitlist"] .program-modal-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
