.faqBox {
  width: 100%;
  margin: 0 auto;
  text-align: left;
}
.faqCategory {
  margin-bottom: 58px;
}
.faqCategory h2 {
  margin: 0 0 14px;
  padding-left: 14px;
  border-left: 4px solid #0b72b9;
  color: #123b61;
  font-size: 1.45rem;
}
.faqBox .qBox {
  border-bottom: 1px solid #dbe4ec;
  position: relative;
  transition: background-color 0.2s ease;
}
.faqBox .qBox:hover {
  background-color: #f4f8fb;
}
.faqBox .qBox button {
  width: 100%;
  padding: 20px 52px 20px 40px;
  border: 0;
  background: transparent;
  color: #25344a;
  font: inherit;
  font-weight: bold;
  line-height: 1.6;
  text-align: left;
  cursor: pointer;
}
.faqBox .qBox button::before {
  content: "Q";
  font-weight: bold;
  color: #0b72b9;
  position: absolute;
  left: 10px;
  top: 20px;
}
.faqBox .qBox::after {
  content: "";
  border-right: 2px solid #0b72b9;
  border-bottom: 2px solid #0b72b9;
  position: absolute;
  right: 18px;
  top: 22px;
  width: 9px;
  height: 9px;
  transform: rotate(45deg);
  pointer-events: none;
  transition: transform 0.2s ease;
}
.faqBox .qBox:has(button[aria-expanded="true"])::after {
  top: 26px;
  transform: rotate(225deg);
}
.faqBox .aBox {
  padding: 20px 40px 28px;
  color: #526274;
  line-height: 1.9;
  display: none;
}
.faqBox .aBox p {
  margin: 0 0 18px;
}
.faqBox .aBox p:last-child {
  margin-bottom: 0;
}
.faqBox .studentVoice {
  display: flex;
  align-items: center;
  gap: 18px;
  /*padding: 16px 0 0 16px;
  border-left: 3px solid #f2a65a;
  color: #42566c;*/
  font-size: 0.95rem;
}
.faqBox .studentVoiceProfile {
  flex: 0 0 auto;
  text-align: center;
}
.faqBox .studentVoicePhoto {
  width: 48px;
  height: 48px;
  display: block;
  margin: 0 auto 6px;
  border-radius: 50%;
  object-fit: cover;
  min-width: unset;
}
.faqBox .studentVoiceProfile strong {
  display: block;
  font-size: 0.75rem;
  line-height: 1.45;

}
.faqBox .studentVoiceText {
  flex: 1;
}

.daily-schedule {
  margin-top: 28px;
  padding: 20px;
  background: #f8fbfd;
}
.daily-schedule__heading h3 { margin: 0 0 24px; color: #123b61; font-size: 1.05rem; text-align: center; }
.daily-schedule__legend { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 18px 0px 18px 0px; color: #526274; font-size: 0.72rem; justify-content: center;}
.daily-schedule__legend span { display: inline-flex; align-items: center; gap: 5px; }
.daily-schedule__swatch { width: 10px; height: 10px; border-radius: 2px; }
.daily-schedule__swatch--sleep, .daily-schedule__event--sleep { background: #526a83; border-left-width:0px!important;}
.daily-schedule__swatch--class, .daily-schedule__event--class { background: #197bb5; }
.daily-schedule__swatch--work, .daily-schedule__event--work { background: #d9822b; }
.daily-schedule__swatch--club, .daily-schedule__event--club { background: #3c9b79; }
.daily-schedule__swatch--hobby, .daily-schedule__event--hobby { background: #7c6aae; }
.daily-schedule__swatch--free, .daily-schedule__event--free { background: #94a5b5; }
.daily-schedule__scroll { overflow-x: auto; }
.daily-schedule__chart { min-width: 620px; }
.daily-schedule__scale, .daily-schedule__row { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 12px; }
.daily-schedule__scale { margin-bottom: 6px; color: #7b8b9a; font-size: 0.68rem; }
.daily-schedule__scale > div { grid-column: 2; display: flex; justify-content: space-between; }
.daily-schedule__row { align-items: center; margin-bottom: 12px; }
.daily-schedule__profile { display: flex; align-items: center; gap: 8px; }
.daily-schedule__profile-icon {  width: 24%!important;  flex: 0 0 32px; min-width:unset!important;border-radius: 100%!important; object-fit: cover; align-self: unset!important; }
.daily-schedule__profile > div { display: flex; flex-direction: column; gap: 2px; }
.daily-schedule__profile strong { color: #25344a; font-size: 0.78rem; }
.daily-schedule__profile span { color: #7b8b9a; font-size: 0.68rem; line-height: 1.35; }
.daily-schedule__bar { position: relative; height: 34px; overflow: hidden; border-radius: 4px; background: repeating-linear-gradient(to right, #e7edf2 0, #e7edf2 calc(12.5% - 1px), #d5e0e8 calc(12.5% - 1px), #d5e0e8 12.5%); }
.daily-schedule__event { position: absolute; top: 0; bottom: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; border-width:0px 1px 0px 1px; border-color:white; border-style:solid; color: #fff; font-size: 0.67rem; font-weight: bold; line-height: 1.1; text-align: center; white-space: nowrap; text-overflow: ellipsis; }


.speechBubble:before{
  content: "Student's Voice";
  color: rgb(48, 128, 182);
  font-weight: bold;
  position: absolute;
  top: 0;
  right: 19px;
  transform: translateY(-60%);
  font-size: 1.1rem;
}

.speechBubble {
  position: relative;
  display: inline-block;
  margin-left: 12px;
  padding: 12px 19px;
  background-color: #e1f0fa;
  text-align: left;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #2c3e50;
}

.speechBubble::after {
  content: "";
  position: absolute;
  top: 30%;
  left: 0;
  border-style: solid;
  border-width: 6px 12px 6px 0;
  border-color: transparent #e1f0fa transparent transparent;
  translate: -100% -50%;
    transform: skew(0, 26deg);
    transform-origin: right;
}

@media (max-width: 600px) {
  .faqCategory {
    margin-bottom: 44px;
  }
  .faqCategory h2 {
    font-size: 1.25rem;
  }
  .faqBox .qBox button {
    padding: 17px 42px 17px 34px;
  }
  .faqBox .qBox button::before {
    left: 8px;
    top: 18px;
  }
  .faqBox .qBox::after {
    right: 12px;
    top: 20px;
  }
  .faqBox .qBox:has(button[aria-expanded="true"])::after {
    top: 24px;
  }
  .faqBox .aBox {
    padding: 18px 8px 24px 34px;
  }
  .faqBox .studentVoicePhoto {
    width: 42px;
    height: 42px;
  }
  .faqBox .studentVoice {
    align-items: flex-start;
    gap: 10px;
    padding-left: 10px;
  }
  .faqBox .studentVoiceProfile {
    flex-basis: 70px;
  }
  .faqBox .studentVoiceText {
    min-width: 0;
  }
}
