/* =========================================================
   Online Program page (online-program.html) — parts only this page uses.
   Also loads term.css (facts strip, numbered steps) and camp.css (cards, gallery, FAQ).
   ========================================================= */
.mu-hero--online .mu-hero__content { padding-bottom: 196px; }
.mu-hero--online .mu-hero__photo > img { object-position: 55% 30%; }

/* Price plans */
.o-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.o-plan { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.o-plan h3 { font-size: 22px; font-weight: 900; }
.o-plan__price { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-variant-numeric: tabular-nums; }
.o-plan__price b { font-family: var(--font-display); font-size: 42px; font-weight: 900; color: var(--navy); line-height: 1; }
.o-plan__price span { font-size: 15px; color: var(--body); }
.o-plan__meta { font-size: 14px; color: var(--body); margin: 0; }
.o-plan__for { font-size: 14px; margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--soft); }
.o-plan__for b { color: var(--ink); }
.o-plan ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; font-size: 15px; }
.o-plan li { position: relative; padding-left: 26px; }
.o-plan li::before { content: ""; position: absolute; left: 0; top: .3em; width: 16px; height: 16px; border-radius: 50%; background: var(--gold-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2F5E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/10px no-repeat; }
.o-plan .mu-btn { margin-top: auto; }
.o-plan--main { background: var(--navy); color: #fff; border-color: var(--navy); box-shadow: var(--shadow); }
.o-plan--main .o-plan__price b { color: var(--gold); }
.o-plan--main .o-plan__price span, .o-plan--main .o-plan__meta { color: var(--muted-on-dark); }
.o-plan--main .o-plan__for { background: rgba(255, 255, 255, .1); }
.o-plan--main .o-plan__for b { color: #fff; }
.o-plan--main li::before { background-color: var(--gold); }
.o-plan__badge { align-self: flex-start; font-size: 12px; font-weight: 800; padding: 4px 12px; border-radius: 999px; background: var(--gold-soft); color: #7A5A12; }
.o-plan--main .o-plan__badge { background: var(--gold); color: var(--ink); }
.o-note { margin: 18px 0 0; font-size: 14px; color: var(--body); }

/* 4 steps instead of 5 */
.t-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.t-steps--4::before { right: calc(25% - 43px); }

/* What you need: 3 items */
.o-need { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.o-need li { display: flex; gap: 14px; align-items: flex-start; padding: 22px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.o-need .mu-features__icon { flex: none; }
.o-need div { display: flex; flex-direction: column; gap: 4px; }
.o-need b { font-size: 17px; }
.o-need span { font-size: 14px; color: var(--body); }

.o-gallery4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.o-gallery4 .mu-gallery__img img { object-position: 50% 30%; }

@media (max-width: 1080px) {
  .o-plans { grid-template-columns: 1fr; max-width: 560px; }
  .t-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .o-need { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .mu-hero--online .mu-hero__content { padding-bottom: 130px; }
}
@media (max-width: 600px) {
  .t-steps--4 { grid-template-columns: 1fr; }
  .o-plan { padding: 22px; }
  .o-plan__price b { font-size: 36px; }
}
