/* Late-join banner + catch-up section: cb-dark = AISE C4 LP, cb-light = bootcamp details page.
   Utilities in the partials cover layout and spacing; only values without a utility live here. */

/* ---------- banner ---------- */
.cb-fest{gap:12px;border-radius:14px;padding:10px 16px 10px 10px;transition:border-color 150ms ease-out}
.cb-fest-ic{flex:0 0 42px;height:42px;border-radius:10px}
.cb-fest-t{font-size:17px;line-height:22px;letter-spacing:-.02em}

/* ---------- section ---------- */
.cb-cu{scroll-margin-top:90px;letter-spacing:-.02em}
.cb-cu-eye{letter-spacing:.04em}
.cb-cu .cb-cu-h{line-height:38px}
.cb-cu-sub{font-size:17px;line-height:26px}
.cb-cu-foot{gap:16px;font-size:15px}

/* ---------- steps ---------- */
.cb-steps{border-radius:14px;border:1px solid}
.cb-step{padding:20px 22px}
.cb-step+.cb-step{border-top:1px solid}
.cb-when{font-size:13px;padding:3px 10px}
.cb-when i{width:18px;height:18px}
.cb-step b{font-size:18px;line-height:24px;margin:12px 0 4px}
.cb-step p{font-size:15px;line-height:22px}
.cb-cu:target .cb-steps,.cb-cu.cb-arrive .cb-steps{animation:cbpulse 1.6s ease-out .5s 1}
@keyframes cbpulse{0%{box-shadow:0 0 0 0 rgba(59,130,246,.55)}100%{box-shadow:0 0 0 14px rgba(59,130,246,0)}}

/* desktop: steps side by side; below 992px they stack as rows */
@media(min-width:992px){
.cb-steps{grid-auto-flow:column;grid-auto-columns:1fr}
.cb-step+.cb-step{border-top:0;border-left:1px solid}
}

@media(max-width:767px){
.cb-fest{padding:8px 12px 8px 8px;gap:10px}
.cb-fest-ic{flex-basis:38px;height:38px}
.cb-fest-t{font-size:15px;line-height:20px}
.cb-cu .cb-cu-h{line-height:31px}
.cb-cu-sub{font-size:15px;line-height:22px}
.cb-step{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:12px 14px}
.cb-step b{margin:0;font-size:15px;line-height:20px}
.cb-when{font-size:12px;padding:2px 8px}
.cb-cu-foot{font-size:14px;gap:10px}
.cb-cu-foot .btn,.cb-cu-foot .da-btn,.cb-cu-foot>div{width:100%;justify-content:center}
}

/* small phones: badge above title so long badges never squeeze the title */
@media(max-width:479px){
.cb-step{display:block;padding:12px 14px}
.cb-step b{margin-top:8px}
}

/* ---------- dark theme ---------- */
.cb-fest.cb-dark{background:rgba(215,239,63,.06);border:1px solid rgba(215,239,63,.35)}
.cb-fest.cb-dark:hover{border-color:#D7EF3F}
.cb-dark .cb-fest-ic{background:rgba(253,126,21,.14)}
.cb-dark .cb-fest-t{color:#fff}
.cb-dark .cb-fest-go{color:#D7EF3F}
.cb-cu.cb-dark{background:#181830;color:#fff}
.cb-dark .cb-cu-eye{color:#20C997}
.cb-dark .cb-cu-h{color:#fff}
.cb-dark .cb-cu-sub{color:#B1B6C9}
.cb-dark .cb-steps{background:#20203d;border-color:#2E2E52}
.cb-dark .cb-step+.cb-step{border-color:#2E2E52}
.cb-dark .cb-when{background:#2A2A4A;color:#89B4FA}
.cb-dark .cb-when i{background:#3B82F6;color:#fff}
.cb-dark .cb-step b{color:#fff}
.cb-dark .cb-step p{color:#A9AEC2}
.cb-dark .cb-last{background:#25254a}
.cb-dark .cb-last .cb-when{background:#D7EF3F;color:#181830}
.cb-dark .cb-last .cb-when i{background:#181830;color:#D7EF3F}
.cb-dark .cb-cu-foot{color:#B1B6C9}
.cb-dark .cb-cu-foot b{color:#fff}

/* ---------- light theme ---------- */
.cb-fest.cb-light{background:#fff;border:1px solid #D8E6FD}
.cb-fest.cb-light:hover{border-color:#3B82F6}
.cb-light .cb-fest-ic{background:#FFEBD6}
.cb-light .cb-fest-t{color:#1C1D1F}
.cb-light .cb-fest-go{color:#3B82F6}
.cb-cu.cb-light{background:#F1F6FF}
.cb-light .cb-cu-eye{color:#3B82F6}
.cb-light .cb-cu-h{color:#1C1D1F}
.cb-light .cb-cu-sub{color:#3E4143}
.cb-light .cb-steps{background:#fff;border-color:#E4E8EB}
.cb-light .cb-step+.cb-step{border-color:#E4E8EB}
.cb-light .cb-when{background:#EBF2FE;color:#2F68C5}
.cb-light .cb-when i{background:#3B82F6;color:#fff}
.cb-light .cb-step b{color:#1C1D1F}
.cb-light .cb-step p{color:#54585B}
.cb-light .cb-last{background:#F5F9FF}
.cb-light .cb-last .cb-when{background:#3B82F6;color:#fff}
.cb-light .cb-last .cb-when i{background:#fff;color:#3B82F6}
.cb-light .cb-cu-foot{color:#3E4143}
.cb-light .cb-cu-foot b{color:#1C1D1F}
