/* Little Bloom Stars Class Schedule: front-end section */
.lbs-schedule{
  --lbs-cs-ink:#22254F; --lbs-cs-ink-soft:#4A4E7A; --lbs-cs-line:#E4E1F0;
  --lbs-cs-sun:#FFC23A; --lbs-cs-pink:#D1306A; --lbs-cs-violet:#6D48D6; --lbs-cs-sky:#2462C9; --lbs-cs-leaf:#2E9460;
  --lbs-cs-bg:#FFF5D9;
  --lbs-cs-panel:#FFFFFF;
  --lbs-cs-active:#22254F;
  --lbs-cs-day-on:#FFC23A;
  --lbs-cs-cta:#FFC23A;
  --lbs-cs-radius:32px;
  background:var(--lbs-cs-bg);
  padding:clamp(3.5rem,8vw,6.5rem) 0;
  color:var(--lbs-cs-ink-soft);
  box-sizing:border-box;
}
.lbs-schedule *,.lbs-schedule *::before,.lbs-schedule *::after{box-sizing:border-box}
.lbs-schedule.lbs-cs-bg-pink{--lbs-cs-bg:#FDE8EF; --lbs-cs-day-on:#D1306A; --lbs-cs-cta:#D1306A}
.lbs-schedule.lbs-cs-bg-violet{--lbs-cs-bg:#EFE9FD; --lbs-cs-day-on:#6D48D6; --lbs-cs-cta:#6D48D6}
.lbs-schedule.lbs-cs-bg-sky{--lbs-cs-bg:#E9F1FD; --lbs-cs-day-on:#2462C9; --lbs-cs-cta:#2462C9}
.lbs-schedule.lbs-cs-bg-morning{--lbs-cs-bg:#F6F3FF}
.lbs-schedule.lbs-cs-bg-white{--lbs-cs-bg:#FFFFFF}
.lbs-schedule.lbs-cs-bg-none{--lbs-cs-bg:transparent}

.lbs-schedule .lbs-cs-wrap{max-width:1200px; margin:0 auto; padding:0 clamp(1.1rem,4vw,2rem)}

/* Heading ------------------------------------------------------------ */
.lbs-schedule .lbs-cs-head{max-width:40rem; margin-bottom:2.75rem}
.lbs-schedule .lbs-cs-title{
  margin:0; padding:0;
  font-family:var(--lbs-cs-title-font,inherit);
  font-size:var(--lbs-cs-title-size,clamp(2.1rem,3.8vw,3.1rem));
  font-weight:var(--lbs-cs-title-weight,800);
  line-height:var(--lbs-cs-title-lh,1.1);
  letter-spacing:var(--lbs-cs-title-ls,-.01em);
  text-transform:var(--lbs-cs-title-tt,none);
  font-style:var(--lbs-cs-title-fs,normal);
  color:var(--lbs-cs-title-color,var(--lbs-cs-ink));
}
.lbs-schedule .lbs-cs-subtitle{
  margin:.9rem 0 0;
  font-family:var(--lbs-cs-subtitle-font,inherit);
  font-size:var(--lbs-cs-subtitle-size,1.15rem);
  font-weight:var(--lbs-cs-subtitle-weight,400);
  line-height:var(--lbs-cs-subtitle-lh,1.6);
  letter-spacing:var(--lbs-cs-subtitle-ls,normal);
  text-transform:var(--lbs-cs-subtitle-tt,none);
  font-style:var(--lbs-cs-subtitle-fs,normal);
  color:var(--lbs-cs-subtitle-color,var(--lbs-cs-ink-soft));
}
.lbs-schedule .lbs-cs-sample-note{margin:1rem 0 0; padding:.5rem .75rem; border:1.5px dashed var(--lbs-cs-pink); border-radius:10px; font-size:.85rem; color:var(--lbs-cs-ink); background:rgba(255,255,255,.7)}

/* Planner ------------------------------------------------------------ */
.lbs-schedule .lbs-cs-planner{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  background:var(--lbs-cs-panel); border-radius:var(--lbs-cs-radius); overflow:hidden;
}
.lbs-schedule .lbs-cs-form{
  background:var(--lbs-cs-panel);
  padding:clamp(1.5rem,3.5vw,2.5rem);
  display:grid; gap:1.9rem; align-content:start; margin:0;
}
.lbs-schedule .lbs-cs-step{border:0; margin:0; padding:0; min-width:0}
.lbs-schedule .lbs-cs-step[hidden]{display:none}
.lbs-schedule .lbs-cs-legend{
  float:none; width:auto; margin:0 0 .8rem; padding:0;
  font-family:var(--lbs-cs-legend-font,inherit);
  font-size:var(--lbs-cs-legend-size,1.25rem);
  font-weight:var(--lbs-cs-legend-weight,700);
  line-height:var(--lbs-cs-legend-lh,1.3);
  letter-spacing:var(--lbs-cs-legend-ls,normal);
  text-transform:var(--lbs-cs-legend-tt,none);
  font-style:var(--lbs-cs-legend-fs,normal);
  color:var(--lbs-cs-legend-color,var(--lbs-cs-ink));
}
.lbs-schedule .lbs-cs-step-no{color:var(--lbs-cs-ink-soft)}
.lbs-schedule .lbs-cs-choices{display:flex; flex-wrap:wrap; gap:.6rem}
.lbs-schedule .lbs-cs-choice{position:relative; display:block; margin:0}
.lbs-schedule .lbs-cs-choice[hidden]{display:none}
.lbs-schedule .lbs-cs-choice input{position:absolute; inset:0; width:100%; height:100%; opacity:0; margin:0; cursor:pointer}
.lbs-schedule .lbs-cs-opt{
  display:block; padding:.7rem 1.15rem .6rem; border:2px solid var(--lbs-cs-line); border-radius:18px;
  line-height:1.3; cursor:pointer; background:transparent;
  transition:border-color .15s,background-color .15s,color .15s;
}
.lbs-schedule .lbs-cs-opt-name{
  display:block;
  font-family:var(--lbs-cs-option-font,inherit);
  font-size:var(--lbs-cs-option-size,1rem);
  font-weight:var(--lbs-cs-option-weight,600);
  line-height:var(--lbs-cs-option-lh,1.3);
  letter-spacing:var(--lbs-cs-option-ls,normal);
  text-transform:var(--lbs-cs-option-tt,none);
  font-style:var(--lbs-cs-option-fs,normal);
  color:var(--lbs-cs-option-color,var(--lbs-cs-ink));
}
.lbs-schedule .lbs-cs-opt-note{display:block; font-weight:400; font-size:.9rem; color:var(--lbs-cs-ink-soft)}
.lbs-schedule .lbs-cs-opt-note:empty{display:none}
.lbs-schedule .lbs-cs-choice:hover .lbs-cs-opt{border-color:#B9B4D6}
.lbs-schedule .lbs-cs-choice input:checked+.lbs-cs-opt{background:var(--lbs-cs-active); border-color:var(--lbs-cs-active)}
.lbs-schedule .lbs-cs-choice input:checked+.lbs-cs-opt .lbs-cs-opt-name{color:#fff}
.lbs-schedule .lbs-cs-choice input:checked+.lbs-cs-opt .lbs-cs-opt-note{color:rgba(255,255,255,.78)}
.lbs-schedule .lbs-cs-choice input:focus-visible+.lbs-cs-opt{outline:3px solid var(--lbs-cs-sky); outline-offset:2px}
/* Per-batch highlight colour on the small dot */
.lbs-schedule .lbs-cs-opt[class*="lbs-cs-c-"] .lbs-cs-opt-name::before{content:""; display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:.45rem; vertical-align:middle; background:var(--lbs-cs-dot,var(--lbs-cs-sun))}
.lbs-schedule .lbs-cs-c-sun{--lbs-cs-dot:var(--lbs-cs-sun)}
.lbs-schedule .lbs-cs-c-pink{--lbs-cs-dot:var(--lbs-cs-pink)}
.lbs-schedule .lbs-cs-c-violet{--lbs-cs-dot:var(--lbs-cs-violet)}
.lbs-schedule .lbs-cs-c-sky{--lbs-cs-dot:var(--lbs-cs-sky)}
.lbs-schedule .lbs-cs-c-leaf{--lbs-cs-dot:var(--lbs-cs-leaf)}

/* Result panel ------------------------------------------------------- */
.lbs-schedule .lbs-cs-result{
  background:var(--lbs-cs-ink); color:#fff;
  padding:clamp(1.5rem,3.5vw,2.5rem);
  display:flex; flex-direction:column; gap:1.5rem;
}
.lbs-schedule .lbs-cs-result-title{margin:0; font-size:1.2rem; font-weight:600; color:#C9CAE6}
.lbs-schedule .lbs-cs-week{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.4rem}
.lbs-schedule .lbs-cs-day-cell{
  text-align:center; padding:.85rem .1rem .7rem; border-radius:14px; background:rgba(255,255,255,.08);
  font-weight:600; font-size:.95rem; line-height:1.2; color:#A9ABCB;
  transition:background-color .2s,color .2s;
}
.lbs-schedule .lbs-cs-day-cell.is-on{background:var(--lbs-cs-day-on); color:var(--lbs-cs-ink)}
.lbs-schedule .lbs-cs-day-cell.is-closed{background:transparent; box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.lbs-schedule .lbs-cs-day-state{display:block; font-size:.7rem; font-weight:500; margin-top:.15rem}
.lbs-schedule .lbs-cs-day-state:empty{display:none}
.lbs-schedule .lbs-cs-summary{
  margin:0;
  font-family:var(--lbs-cs-summary-font,inherit);
  font-size:var(--lbs-cs-summary-size,clamp(1.45rem,2.4vw,1.8rem));
  font-weight:var(--lbs-cs-summary-weight,600);
  line-height:var(--lbs-cs-summary-lh,1.25);
  letter-spacing:var(--lbs-cs-summary-ls,normal);
  text-transform:var(--lbs-cs-summary-tt,none);
  font-style:var(--lbs-cs-summary-fs,normal);
  color:var(--lbs-cs-summary-color,#fff);
}
.lbs-schedule .lbs-cs-summary>*{display:block}
.lbs-schedule .lbs-cs-sum-name{font-weight:800; color:var(--lbs-cs-day-on)}
.lbs-schedule .lbs-cs-note{
  margin:0;
  font-family:var(--lbs-cs-note-font,inherit);
  font-size:var(--lbs-cs-note-size,.97rem);
  font-weight:var(--lbs-cs-note-weight,400);
  line-height:var(--lbs-cs-note-lh,1.55);
  letter-spacing:var(--lbs-cs-note-ls,normal);
  text-transform:var(--lbs-cs-note-tt,none);
  font-style:var(--lbs-cs-note-fs,normal);
  color:var(--lbs-cs-note-color,#C9CAE6);
}
.lbs-schedule .lbs-cs-note[hidden]{display:none}
.lbs-schedule .lbs-cs-cta{
  align-self:flex-start; margin-top:auto; display:inline-flex; align-items:center; justify-content:center;
  padding:1rem 1.6rem .9rem; border-radius:999px; border:0; text-decoration:none;
  background:var(--lbs-cs-cta); color:var(--lbs-cs-ink);
  font-family:var(--lbs-cs-cta-font,inherit);
  font-size:var(--lbs-cs-cta-size,1.08rem);
  font-weight:var(--lbs-cs-cta-weight,700);
  line-height:var(--lbs-cs-cta-lh,1);
  letter-spacing:var(--lbs-cs-cta-ls,normal);
  text-transform:var(--lbs-cs-cta-tt,none);
  font-style:var(--lbs-cs-cta-fs,normal);
  transition:filter .15s;
}
.lbs-schedule .lbs-cs-cta:hover,.lbs-schedule .lbs-cs-cta:focus{filter:brightness(.92); color:var(--lbs-cs-ink)}
.lbs-schedule .lbs-cs-cta:focus-visible{outline:3px solid #fff; outline-offset:3px}

/* Timetable ---------------------------------------------------------- */
.lbs-schedule .lbs-cs-timetable{
  margin-top:1.75rem;
  font-family:var(--lbs-cs-table-font,inherit);
  font-size:var(--lbs-cs-table-size,.98rem);
  font-weight:var(--lbs-cs-table-weight,400);
  line-height:var(--lbs-cs-table-lh,1.5);
  letter-spacing:var(--lbs-cs-table-ls,normal);
  text-transform:var(--lbs-cs-table-tt,none);
  font-style:var(--lbs-cs-table-fs,normal);
  color:var(--lbs-cs-table-color,var(--lbs-cs-ink));
}
.lbs-schedule .lbs-cs-summary-toggle{cursor:pointer; font-weight:600; display:inline-block; padding:.3rem 0; list-style:revert}
.lbs-schedule .lbs-cs-summary-toggle:hover{text-decoration:underline}
.lbs-schedule .lbs-cs-table-scroll{overflow-x:auto; margin-top:1rem; background:var(--lbs-cs-panel); border-radius:20px}
.lbs-schedule .lbs-cs-timetable table{width:100%; border-collapse:collapse; min-width:620px; margin:0; background:transparent; font-size:inherit}
.lbs-schedule .lbs-cs-timetable th,.lbs-schedule .lbs-cs-timetable td{padding:.85rem 1.1rem; text-align:left; border:0; border-bottom:1px solid var(--lbs-cs-line); background:transparent}
.lbs-schedule .lbs-cs-timetable thead th{font-weight:700; color:var(--lbs-cs-ink)}
.lbs-schedule .lbs-cs-timetable tbody tr:last-child>*{border-bottom:0}
.lbs-schedule .lbs-cs-ages{display:block; font-weight:400; font-size:.88em; color:var(--lbs-cs-ink-soft)}

.lbs-cs-empty{padding:1rem 1.25rem; border:2px dashed #D1306A; border-radius:12px; color:#22254F; background:#FDE8EF}

.lbs-schedule .screen-reader-text{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

/* Responsive --------------------------------------------------------- */
@media (max-width:960px){
  .lbs-schedule .lbs-cs-planner{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .lbs-schedule .lbs-cs-day-cell{font-size:.8rem; padding:.7rem .05rem .55rem; border-radius:10px}
  .lbs-schedule .lbs-cs-day-state{font-size:.6rem}
  .lbs-schedule .lbs-cs-choices{gap:.5rem}
}
/* Mobile font sizes */
@media (max-width:767px){
  .lbs-schedule .lbs-cs-title{font-size:var(--lbs-cs-title-size-m,var(--lbs-cs-title-size,2rem))}
  .lbs-schedule .lbs-cs-subtitle{font-size:var(--lbs-cs-subtitle-size-m,var(--lbs-cs-subtitle-size,1.02rem))}
  .lbs-schedule .lbs-cs-legend{font-size:var(--lbs-cs-legend-size-m,var(--lbs-cs-legend-size,1.1rem))}
  .lbs-schedule .lbs-cs-opt-name{font-size:var(--lbs-cs-option-size-m,var(--lbs-cs-option-size,1rem))}
  .lbs-schedule .lbs-cs-summary{font-size:var(--lbs-cs-summary-size-m,var(--lbs-cs-summary-size,1.4rem))}
  .lbs-schedule .lbs-cs-note{font-size:var(--lbs-cs-note-size-m,var(--lbs-cs-note-size,.95rem))}
  .lbs-schedule .lbs-cs-cta{font-size:var(--lbs-cs-cta-size-m,var(--lbs-cs-cta-size,1.02rem))}
  .lbs-schedule .lbs-cs-timetable{font-size:var(--lbs-cs-table-size-m,var(--lbs-cs-table-size,.95rem))}
}
@media (prefers-reduced-motion:reduce){
  .lbs-schedule *{transition:none !important}
}
