@charset "UTF-8";
.schedule {
        margin: 0;
        background: #f4f7f4;
        color: #26332a;
        font-family:
          -apple-system, BlinkMacSystemFont, 'Noto Sans JP', 'Yu Gothic',
          sans-serif;
          border-radius: 20px;
      }
      .wrap {
        max-width: 930px;
        margin: auto;
        padding: 30px 18px 50px;
      }
      .head {
        text-align: center;
        margin-bottom: 10px;
      }
      .head h1 {
        color: #547058;
        margin: 0;
        font-size: clamp(18px, 5vw, 25px);
        letter-spacing: 0.12em;
        border: 1px solid;
        border-color: #547058;
        padding: 8px 40px;
        border-radius: 50px;
        text-align: center;
        display: inline;
        background-color: #ffffff;
      }
      .head p {
        margin: 5px 0 0;
        color: #718076;
        font-size: 13px;
        letter-spacing: 0.25em;
      }

      /* 2列：各列に一本の連続した縦線。左列10件→右列10件 */
      .timeline {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(10, 65px);
        grid-auto-flow: column;
        column-gap: 34px;
        position: relative;
      }
      .timeline:before,
      .timeline:after {
        content: '';
        position: absolute;
        top: 39px;
        height: calc(100% - 78px);
        width: 1px;
        background: #d3dfd4;
        z-index: 0;
      }
      .timeline:before {
        left: 78px;
      }
      .timeline:after {
        left: calc(50% + 94.5px);
      }

      .item {
        display: grid;
        grid-template-columns: 60px 38px 1fr;
        height: 60px;
        position: relative;
      }
      .time {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding-right: 0px;
        font-size: 13px;
        font-weight: 700;
        color: #547058;
        line-height: 2;
        white-space: nowrap;
        height: 70px;
      }
      .track {
        height: 70px;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .dot {
        z-index: 2;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background: #f4f7f4;
        color: #789b7c;
        display: grid;
        place-items: center;
        font-size: 18px;
        line-height: 1;
      }
      .line {
        display: none;
      }
      .card-sch {
        height: 60px;
        align-self: center;
        background: #fff;
        border: 1px solid #e0e8e1;
        border-radius: 15px;
        padding: 0px 8px;
        box-shadow: 0 4px 14px rgba(30, 50, 35, 0.07);
        display: flex;
        align-items: center;
        gap: 14px;
        min-width: 0;
      }
      .num {
        width: 38px;
        height: 38px;
        flex: 0 0 38px;
        border-radius: 11px;
        background: #e6f0e6;
        color: #45634a;
        display: grid;
        place-items: center;
        font-weight: 700;
      }
      .title {
        font-size: 15px;
        line-height: 1.6;
        white-space: nowrap;
        word-break: keep-all;
      }
       @media (max-width: 958px) {
        .item {
          grid-template-columns: 40px 27px 1fr;
          height: 62px;
        }
        .timeline:before {
        left: 52px;
      }
      .timeline:after {
        left: calc(50% + 69px);
      }
      .head h1 {
        margin: 0;
        font-size: clamp(16px, 5vw, 22px);
       }

      @media (max-width: 808px) {
        .wrap {
          padding: 22px 10px 40px;
        }
        .head {
          margin-bottom: 22px;
        }
        .timeline {
          display: grid;
          grid-template-columns: 1fr;
          grid-template-rows: none;
          grid-auto-flow: row;
          gap: 0px;
        }
        .timeline:before {
          left: 65px;
          top: 31px;
          height: calc(100% - 62px);
        }
        .timeline:after {
          display: none;
        }
        .item {
          grid-template-columns: 52px 27px 1fr;
          height: 62px;
        }
        .time {
          font-size: 12px;
          padding-right: 0px;
          height: 62px;
        }
        .track {
          height: 62px;
        }
        .dot {
          width: 22px;
          height: 22px;
          font-size: 16px;
        }
        .card-sch {
          height: 38px;
          padding: 10px 11px;
          gap: 10px;
          border-radius: 12px;
        }
        .num {
          width: 33px;
          height: 33px;
          flex-basis: 33px;
          font-size: 12px;
          border-radius: 9px;
        }
        .title {
          font-size: 13px;
          line-height: 1.5;
        }
      }
      @media (max-width: 390px) {
        .item {
          grid-template-columns: 48px 25px 1fr;
          height: 60px;
        }
        .track {
          height: 60px;
        }
        .time {
          font-size: 12px;
        }
        .card-sch {
          height: 38px;
          padding: 9px;
        }
        .title {
          font-size: 12.5px;
        }
        .num {
          width: 30px;
          height: 30px;
          flex-basis: 30px;
        }
        .timeline:before {
          left: 59px;
          top: 31px;
          height: calc(100% - 58px);
        }
      }
      @media (max-width: 390px) {
        .title {
          font-size: 10px;
        }
      }