/* Schedule badges + status chips */
.schedule-class-list{
  display:grid;
  gap:1rem;
}

.schedule-class-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  grid-template-rows:auto auto 2.8em 1fr;
  gap:.72rem;
  height:100%;
  padding:clamp(1rem, 2vw, 1.25rem);
  transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

@media (hover:hover){
  .schedule-class-card:hover{
    border-color:var(--accent-200);
    background:color-mix(in srgb, var(--bg-200) 94%, var(--accent-200));
    box-shadow:0 10px 24px rgba(0,0,0,.16);
    transform:translateY(-3px);
  }
}

.schedule-class-card__link{
  position:absolute;
  z-index:1;
  inset:0;
  border-radius:inherit;
}

.schedule-class-card__link:focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:3px;
}

.schedule-class-card h3,
.schedule-class-card p{
  margin-top:0;
  margin-bottom:0;
}

.schedule-class-card__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.55rem 1rem;
  flex-wrap:wrap;
  padding:0 0 .3rem;
  border-bottom:1px solid color-mix(in srgb, var(--line-muted) 65%, transparent);
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  z-index:auto;
}

.schedule-class-card__time-group,
.schedule-class-card__schedule{
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:0;
}

.schedule-class-card__header h3{
  font-size:clamp(1.35rem, 2.2vw, 1.6rem);
  font-weight:900;
  letter-spacing:-.025em;
  line-height:1.05;
}

.schedule-class-card__duration{
  flex:0 0 auto;
  margin-left:0;
  padding:.14rem .4rem;
  color:var(--text-200);
  font-size:.65rem;
  font-weight:700;
  background:color-mix(in srgb, var(--bg-300) 75%, transparent);
}

.schedule-class-card__recurrence{
  margin-left:0;
  padding:.16rem .45rem;
  color:color-mix(in srgb, var(--text-200) 78%, transparent);
  font-size:.67rem;
  font-weight:600;
  background:transparent;
}

.schedule-class-card__availability{
  padding:.13rem .4rem;
  font-size:.63rem;
}

.schedule-class-card__metadata{
  display:flex;
  align-items:center;
  gap:clamp(.9rem, 3vw, 1.5rem);
  flex-wrap:wrap;
  margin-bottom:.4rem;
}

.schedule-class-card__meta-item{
  display:flex;
  align-items:center;
  gap:.5rem;
  min-width:0;
}

.schedule-class-card__meta-item svg{
  flex:0 0 auto;
  width:1.15rem;
  height:1.15rem;
  fill:none;
  stroke:var(--accent-200);
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.schedule-class-card__meta-item > span{
  display:grid;
  min-width:0;
  line-height:1.15;
}

.schedule-class-card__meta-item small{
  color:color-mix(in srgb, var(--text-200) 72%, transparent);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.schedule-class-card__meta-item strong{
  overflow:hidden;
  font-size:.9rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.schedule-class-card__description{
  display:-webkit-box;
  overflow:hidden;
  min-height:2.8em;
  max-height:2.8em;
  color:color-mix(in srgb, var(--text-200) 78%, transparent);
  font-size:.88rem;
  line-height:1.4;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.schedule-class-card__footer{
  position:relative;
  display:flex;
  align-self:end;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding-top:.85rem;
  border-top:1px solid var(--line-muted);
}

.schedule-class-card__price{
  display:grid;
  gap:.15rem;
  color:color-mix(in srgb, var(--text-200) 72%, transparent);
  font-size:.75rem;
  line-height:1.2;
}

.schedule-class-card__price strong{
  color:var(--status-info);
  font-size:1.28rem;
  font-weight:900;
  letter-spacing:.01em;
}

.schedule-class-card__actions{
  position:relative;
  z-index:2;
  justify-content:flex-end;
  gap:.5rem;
}

.schedule-class-card__member-action{
  color:var(--text-200);
  font-size:.84rem;
  font-weight:600;
}

.badge{
  display:inline-block;
  align-self:start;
  justify-self:start;
  width:fit-content;
  max-width:100%;
  margin-left:.5rem;
  padding:.2rem .6rem;
  border-radius:var(--radius-status);
  font-size:.8em;
  line-height:1.4;
  background:rgba(0,0,0,.06);
}
.muted{ opacity:.8; }
.status-row{
  display:flex;
  align-items:center;
  gap:.35rem;
  flex-wrap:wrap;
  margin-bottom:.25rem;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.18rem .5rem;
  border-radius:var(--radius-status);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1.15;
  text-decoration:none;
}
@media (prefers-color-scheme: dark){
  .schedule-class-card__price strong{
    color:var(--status-info);
  }
}

@media (min-width: 840px){
  .schedule-class-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px){
  .schedule-class-card__footer{
    align-items:stretch;
    flex-direction:column;
  }

  .schedule-class-card__actions{
    justify-content:flex-start;
  }
}

/* Collapsible schedule block (archive schedule) */
details.schedule-collapse{
  background: var(--bg-200);
  border: 1px solid var(--bg-300);
  border-radius: 16px;
  overflow: hidden;
}
details.schedule-collapse[open]{ border-color: var(--primary-200); }
details.schedule-collapse summary{ list-style: none; }
details.schedule-collapse summary::-webkit-details-marker{ display:none; }

.schedule-summary{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
}
.schedule-summary .left strong{ display:block; }
.schedule-summary .left span{ color: var(--text-200); font-size: .92rem; }

.schedule-body{ padding: 0 1.15rem 1.15rem; }
/* Stacked copy button (subhead + main CTA) */
.btn-secondary.btn-stack{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  line-height:1.1;
  text-align:center;
  padding:.55rem 1.35rem;
}
.btn-secondary.btn-stack .btn-sub{
  font-size:.68rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:.78;
}

.waiver-banner{
  margin:1rem 0 1.5rem;
}

.waiver-banner__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem 1rem;
  border-radius:14px;
  background:rgba(255,206,107,.16);
  border:1px solid rgba(255,206,107,.45);
  color:var(--text);
  font-weight:600;
}

.booking-disabled{
  opacity:.6;
  cursor:not-allowed;
}

@media (max-width: 720px){
  .waiver-banner__inner{
    flex-direction:column;
    align-items:flex-start;
  }
}
.btn-secondary.btn-stack .btn-main{
  font-weight:700;
  font-size:.95rem;
}
