.section {
  padding: 15px 2% 40px 2%;
  margin-bottom: 4rem;
}

main {
  padding-left: 2%;
  padding-right: 2%;
}

/* 固定ヘッダーに重ならないようアンカー位置を調整 */
.section[id] {
  scroll-margin-top: 70px;   /* ヘッダーの高さに合わせる */
}

.section-nav--with-mntk {
  padding-top: 0;
  padding-bottom: clamp(1.2rem, 4.5vw, 1.8rem);
}

.section-nav--with-mntk .section-lead {
  --mntk-lead-start: clamp(0.1rem, 1vw, 0.3rem);
  --mntk-lead-end: 0;
}

.section-nav--with-mntk {
  margin-top: 0;
  padding-top: clamp(0.35rem, 1.4vw, 0.6rem);
}

/* ✅ スマホ表示時に余白を小さくする */
@media (max-width: 768px) {
  .section {
    padding: 10px 2% 20px 2%;
    margin-bottom: 2rem;
  }

  main {
    padding-left: 2%;
    padding-right: 2%;
  }

    .section-nav--with-mntk{
    margin-top: 0;
    padding-top: clamp(0.35rem, 1.4vw, 0.6rem);
  }
    }




.schedule {
  position: relative;
  font-size: 14px;
}

.schedule::before {
  position: absolute;
  top: 0px;
  left: 6.5em;
  width: 2px;
  height: 100%;
  background-color: #c4d0fae1;
  content: "";
}

.schedule ul {
  padding: 0px;
  margin: 0px;
  list-style: none;
}

.schedule li {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.schedule li+li {
  margin-top: 1em;
}


/* Date divider inside schedule */
.schedule-day-divider {
  position: relative;
  height: 1.5em;
  list-style: none;
}

.schedule-day-divider::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 5.85em;
  transform: translateY(-50%);
  width: calc(100% - 6em);
  height: 2px;
  background-color: #c4d0fae1;
}

.schedule-day-divider .schedule-day {
  position: absolute;
  left: 0;
  width: 6em;
  text-align: right;
  font-weight: 700;
  color: #4770f7;
}

.schedule-day-top {
  bottom: 20%;
  transform: translateY(-0.2em);
  margin-left: -1rem;
  font-size: 1rem;
}

.schedule-day-bottom {
  top: 20%;
  transform: translateY(0.2em);
  margin-left: -1rem;
  font-size: 1rem;
}

.schedule_time {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 5.2em;
  height: 4em;
  border-radius: 6px;
  background-color: var(--color-primary);
  color: #fff;
  text-align: center;
  /* Shift bubble slightly left on PC to create space before the dot */
  margin-left: -0.3rem;
}

.schedule_time::before {
  position: absolute;
  top: 50%;
  right: 1px;
  transform: translateX(50%) translateY(-50%) rotate(45deg);
  width: 0.4em;
  height: 0.4em;
  z-index: -1;
  background-color: var(--color-primary);
  content: "";
}

.schedule_time::after {
  position: absolute;
  top: 50%;
  left: 5.45rem;
  /* keep dot aligned after shifting bubble */
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  border: 2px solid #fff;
  border-radius: 50%;
  background-color: var(--color-primary);
  content: "";
}

.schedule_content_title {
  font-weight: 700;
  color: #4770f7;
}

.schedule_content {
  margin: 0px 0 1rem 3.2rem;
  width: calc(100% - 10em);
}

.heading-leftline {
    margin-top: 2.5rem;
}

.li-white-box-tx {
    margin-top: 4.5rem;
}

.li-white-box-tx--mt-02 {
  margin-top: 0.2rem;
}


@media screen and (max-width: 768px) {


  .schedule_time {
    width: 5em;
    height: 3.8em;
    border-radius: 6px;
    margin-left: 0;
  }

.schedule-day-divider .schedule-day {
font-size: clamp(0.65rem, 3.5vw, 0.85rem);
top: 8%;
left: 2%;
}

  .schedule_time::after {
    left: 5.6rem;
  }

  .schedule-day-divider::before {
  left: 6em;
  transform: translateY(-50%);
  width: calc(100% - 6em);
  height: 2px;
  background-color: #c4d0fae1;
}


  .li-white-box-tx {
    line-height: 1.42;
    padding: 1rem 2%;
    font-weight: 600;
    margin-top: 0.1rem;
  }

  .schedule_content {
    margin-left: 3rem;
    /* narrower margin on phone */
    width: calc(100% - 8rem);
    /* adjust width so the text area is wider */
  }
    .schedule_content_detail p {
    font-size: clamp(0.75rem, 2.8vw, 0.8rem);
    line-height: 1.3;
    font-weight: 700;
  }

  
.li-white-box-tx--mt-02 {
  margin-top: 0.2rem;
}

}

.section-nav--with-mntk .mntk-walk__track {
  /* ランナーの高さに少し余裕を足した分だけに縮める */
  min-height: calc(var(--mntk-runner-size) + 24px);
}

/* ✅ スマホ表示時に余白を小さくする */
@media (max-width: 768px) {

    /* さらに下げたい場合は位置を数ピクセル調整 */
  .section-nav--with-mntk .mntk-walk__group {
    top: calc(50% + 10px);
  }
}

/* ✅ スマホ表示時に余白を小さくする */
@media (max-width: 600px) {

    /* さらに下げたい場合は位置を数ピクセル調整 */
  .section-nav--with-mntk .mntk-walk__group {
    top: calc(50% + 35px);
  }
}

#calendar-plan {
  scroll-margin-top: 0.5rem; /* ヘッダー高さ＋余白ぶん。適宜調整 */
}


#avatar-info {
  scroll-margin-top: 0.1rem; /* ヘッダー高さ＋余白ぶん。適宜調整 */
}