.schedule-card{
      position:relative;
      background:#fff;
      border: 1px solid #CCCCCC;
      padding:40px 30px 30px 30px;
      min-height:120px;
      box-shadow:0 0 0 rgba(0,0,0,0);
      margin-bottom: 50px;
    }
   
    /* ribbon heading */
    .ribbon{
      position:absolute;
      left:50%;
      transform:translateX(-50%);
      top:-30px;
      display:inline-block;
      padding:10px 40px;
      background:var(--theme);
      color:#fff;
      font-weight:400;
      letter-spacing:1px;
      box-shadow:0 1px 0 rgba(0,0,0,0.05);
    }
    .schedule-card.gray-bg {
    background: #F5F7FC;
}
.block{
  font-weight: 500;
}
.black-color{
  color: var(--black);
}
.class-name span {
    display: block;
}
    /* smaller ribbons for narrower cards */
    .ribbon.small{padding:25px 40px}
    .time{font-weight:500 !important; margin-bottom: 0;}
    .entry{
      display:flex;
      align-items:center;
      padding:18px 0;
      border-bottom:1px dashed transparent;
    }
    .entry:last-child{border-bottom:0}
    .teacher{flex:1; text-align:center; margin-bottom: 0;}
    .class-name{width:200px; text-align:right; margin-bottom: 0;}
    /* Friday full-width ribbon */
    .full-ribbon{
      display:block;
      margin:30px 0 0 0;
      padding:12px 20px;
      background:var(--theme);
      color:#fff;
      text-align:center;
      font-weight:600;
      letter-spacing:1px;
    }
    /* responsiveness tweaks */
    @media (max-width:991.98px){
         .ribbon {
        left: 0;
        transform: none;
        right: 0;
        top: -22px;
        margin: 0 auto;
        width: 200px;
        text-align: center;
        display: inline-block;
    }
      .schedule-card {
        padding-top: 20px;
    }
      .class-name{width:130px}
      .schedule-card {
    margin-bottom: 50px;
}
.full-ribbon {
        margin-bottom: 30px;
        margin-top: 0;
    }
section.timetable.gray-bg.sec-pad {
    padding-bottom: 30px;
}
    }
    @media (max-width:575.98px){
      .time-col{width:75px;}
      .class-name{width:110px;}
      .ribbon{padding:8px 16px}
    }
     /* Accordion outer look */
    .day-header {
      font-family: "Jost", sans-serif;
    position: relative;
    background: var(--theme);
    color: #fff;
    padding: 15px 20px;
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: 1px;
    display: flex
;
    align-items: center;
    justify-content: space-between;
}
    .day-header .day-title { margin: 0; }

    /* chevron box like screenshot */
    .chev-box {
      width: 46px;
      height: 46px;
      background: rgba(255,255,255,0.12);
      border-radius: 4px;
      display:flex;
      align-items:center;
      justify-content:center;
      color: rgba(255,255,255,0.95);
    }
    .chev-box svg { width:18px; height:18px; }

    /* Accordion body: dark rows */
    .timetable-body {
      background: transparent;
      border: 0;
      padding: 0;
    }
   .class-row {
    color: #fff;
    display: grid
;
    grid-template-columns: 400px 1fr 175px;
    align-items: center;
    gap: 12px;
    padding: 20px 18px;
    border-bottom: 1px solid #CCCCCC;
}
.time-col2 span {
    display: block;
}
    .class-row .time { font-weight:500; color: var(--dark); }
   .class-row .teacher {
    text-align: center;
    color: var(--gray);
    display: inline-flex;
    align-items: center;
    grid-gap: 10px;
    justify-content: center;
}
    .class-row .level { text-align:right; color: var(--gray); }

    .note { font-size: 13px; color: rgba(255,255,255,0.32); margin-top:6px; }

    /* statuses */
    .status{
      font-weight: 400;
    font-size: 15px;
    }
    .status-green {
    color: #00A407;
}
    .status-red { color: #00A407; }   /* class full */
    .status-black {
    color: #000000;
}

    /* Make the header look like ribbon sitting above (optional) */
    .accordion-item { margin-bottom: 18px; border:0; background:transparent; }
   .accordion-button::after {
    display: none;
   }
   p.teacher svg {
    width: 1.1rem;
    height: 1.1rem;
}
    /* responsive adjustments */
    @media (max-width: 767.98px){
      .class-row { grid-template-columns: 90px 1fr 120px; padding: 16px; }
      .day-header { padding: 18px 12px; font-size: 18px; }
      .chev-box { width:40px; height:40px; }
    }
    @media (max-width: 420px){
      .class-row { grid-template-columns: 1fr; text-align:left; gap:6px; padding:14px; }
      .class-row .teacher, .class-row .level { text-align:left;}
      .class-row .level { margin-top:6px; }
    }

    /* visually collapse content area padding like the screenshot */
    .accordion-collapse { box-shadow: none; }

    .term-title{
      font-family: "Playfair Display", serif;
      font-size: clamp(2.4rem, 4.8vw, 4.2rem); /* responsive large serif */
      font-weight: 400;
      letter-spacing: 1px;
      color: rgba(88,120,154,0.95);
      text-align: center;
      margin-bottom: 18px;
    }

    .term-date{
      text-align:center;
      font-weight:300;
      margin-bottom: 32px;
      color:var(--black);
    }

    .price-wrap{
      max-width:820px;
      margin:0 auto 36px;
      position:relative;
      padding-top: 50px; /* allow ribbon overlap */
    }

    /* ribbon */
    .price-wrap .ribbon{
      top:10px;
    }

    /* the card that contains price */
    .price-card{
      background:#F5F7FC;
      border:1px solid rgba(0,0,0,0.08);
      border-radius:2px;
      padding:36px 28px;
      max-width: 500px;
      margin: 0 auto;
      text-align:center;
      box-shadow: 0 0 0 rgba(0,0,0,0);
    }

    .price-number{
      font-weight:600;
      font-size: clamp(1.6rem, 4.2vw, 2.6rem);
      color: var(--gray);
      display:inline-block;
      margin-right:10px;
      vertical-align:middle;
    }

    .price-unit {
    font-weight: 500;
    font-size: 1.5rem;
    color: var(--gray);
    vertical-align: middle;
    margin-right: 10px;
}

    .include-vat{
      display:block;
      font-size:0.95rem;
      color: var(--gray);
      font-weight:400;
    }
    .info-text p {
    color: var(--black);
}
.class-row p {
    margin-bottom: 0;
}

    /* small screens adjustments */
    @media (max-width:540px){
      .ribbon{
        padding:8px 18px;
        font-size:.95rem;
      }
      .price-card{
        padding:28px 16px;
      }
      .class-row .teacher {
    justify-content: left;
}
    }
@media (min-width:1900px){
    .schedule-card {
    padding: 60px 40px 40px 40px;
    min-height: 150px;
    margin-bottom: 100px;
}
.ribbon {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -45px;
}
p.teacher svg {
    width: 1.4rem;
    height: 1.4rem;
}
.status{
      font-weight: 300;
    font-size: 18px;
    }
    .price-card {
    background: #F5F7FC;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 2px;
    padding: 80px 28px;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}
.include-vat {
    display: block;
    font-size: 1.2rem;
    color: var(--gray);
    font-weight: 400;
}
}

@media (min-width:2200px){
    .schedule-card {
    padding: 60px 40px 40px 40px;
    min-height: 150px;
    margin-bottom: 100px;
}
.price-card {
    background: #F5F7FC;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 2px;
    padding: 80px 28px;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}
p.teacher svg {
    width: 1.6rem;
    height: 1.6rem;
}
.include-vat {
    display: block;
    font-size: 1.35rem;
    color: var(--gray);
    font-weight: 400;
}
.status{
      font-weight: 300;
    font-size: 22px;
    }
}