section {
    margin-top: 100px;
}
:where(p) {
    font-size: 20px;
    letter-spacing: 0.06em;
    line-height: 33px;
    color: #1C1B1B;
}
.content {
    padding-top: 100px;
    overflow-x: hidden;
    width: 100%;
    /* display: flex;
    flex-direction: column;
    align-items: center; */
    display: block;
}
.one-year-box {
    height: 6856px;
    width: 1110px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.one-year-box,
.oneday-container {
    margin: 0 auto !important; 
}
footer {
    margin-top: 0;
}
.start {
    height: 75px;
    width: 257px;
    background-color: #A93B3E;
    font-size: 40px;
    color: #FFFCFC;
    display: flex;
    text-align: center;
    justify-content: center;
    align-items: center;
}
.one-year-box h2 {
    color: #FFFCFC;
    font-size: 32px;
    margin: 0;
    font-weight: 500;
}
.card-header {
    text-align: center;
    height: 52px;
    background-color: #A93B3E;
    display: flex;
    align-items: center;
    justify-content: center;
}
.card-contents img {
    width: 100%;
    height: auto;
    margin: 25px auto 0;
}
.one-year-box p {
    color: #1C1B1B;
    margin: 20px 0 0 0;
}
.card-contents {
    padding: 0 28px;
}
.year-card {
    position: absolute;
    border: 4px solid #A93B3E;
    box-sizing: border-box;
    background-color: #FFFCFC;
}
.station-assign {
    height: 565px;
    width: 448px;
    left: 10%;
    top: 5%;
}
.welcome-event {
    height: 565px;
    width: 448px;
    left: 51%;
    top: 6.5%;
}
.team-assign {
    height: 565px;
    width: 448px;
    left: 45%;
    top: 18%;
}
.soukei-event {
    height: 565px;
    width: 448px;
    left: 3%;
    top: 19%;
}
.terakoya {
    height: 668px;
    width: 448px;
    top: 29.5%;
    left: 13%;
}
.OCPJ {
    height: 700px;
    width: 448px;
    top: 31%;
    left: 56%;
}
.flex-title {
    display: flex;
    align-items: center;
    justify-content: center;
}
.flex-title h3 {
    font-size: 15px;
    color: #FFFCFC;
    font-weight: 500;
}
.bottom-nav a {
    white-space: nowrap;
}
.tikansai {
    height: 563px;
    width: 448px;
    top: 46%;
    left: 50%;
}
.summer-camp {
    height: 555px;
    width: 448px;
    top: 48%;
    left: 5%;
}
.toumonsai {
    height: 552px;
    width: 448px;
    top: 59%;
    left: 15%;
}
.wasedasai img {
    width: 100%;
    height: auto;
}
.wasedasai {
    height: 826px;
    width: 833px;
    top: 70%;
    left: 20%;
}
.winter-camp {
    height: 613px;
    width: 448px;
    top: 86%;
    left: 5%;
}
.shinkan-PJ {
    height: 594px;
    width: 448px;
    top: 88%;
    left: 50%;
}
.month-card {
    position: absolute;
    font-size: 26px;
    color: #FFFCFC;
    background-color: #A93B3E;
    height: 62px;
    width: 100px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
}
.big-num {
    font-size: 48px;
    align-self: center;
    margin: 0 3px;
    margin-bottom: 3px;
}
.mon-tx {
    margin: 0 3px;
    padding-bottom: 6px;
}
.may {
    top: 5.2%;
    left: 52%;
}
.june {
    top: 18%;
    left: 30%;
}
.july {
    top: 29.7%;
    left: 56%;
}
.sept {
    top: 46.4%;
    left: 37%;
}
.oct {
    top: 57.7%;
    left: 31%;
}
.nov {
    top: 69%;
    left: 60%;
}
.feb {
    top: 86.4%;
    left: 50%;
}
.saikun-container {
    position: absolute;
    display: inline-block;
    top: 60%;
    right: 0;
}
.saikun-container img {
    width: 345px;
    display: block;
}
.ballon {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: -80px;
    background-image: url(../images/one-year/ballon-pc.svg);
    background-size: 100% 100%;
    padding: 20px 30px 40px;
    width: max-content;
    text-align: center;
}
.finish {
    height: 87px;
    width: 287px;
    background-color: #A93B3E;
    display: flex;
    text-align: center;
    justify-content: center;
    align-items: center;
    font-size: 40px;
    color: #FFFCFC;
    transform: translateX(-46px);
}
.oneday-container {
    width: 1034px;
    height: 1521px;
}
.schedule-box {
    border: 4px solid #A93B3E;
    width: 1023px;
    margin: 40px auto 0 auto;
    background-color: #FFFCFC;
    color: #1C1B1B;
}
.schedule-header {
    background-color: #A93B3E;
    color: #FFFCFC;
    text-align: center;
    padding: 15px;
    font-size: 32px;
    font-weight: 500;
}
.timeline-wrapper {
    position: relative;
    padding: 40px 20px;
}
.timeline-list {
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
    z-index: 2;
    height: 270px;
}
.timeline-line {
    position: absolute;
    top: 91px;
    left: 30px;
    right: 30px;
    height: 4px;
    background-color: #1C1B1B;
    z-index: 1;
}
.timeline-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 60px;
}
.timeline-item:nth-child(1)  { left: -1.3%;   transform: translateX(0); align-items: center; } /* 8:00（左端にピタッ！） */
.timeline-item:nth-child(2)  { left: 13%; } /* 10:30 */
.timeline-item:nth-child(3)  { left: 25.0%; } /* 12:20 */
.timeline-item:nth-child(4)  { left: 33.3%; } /* 13:10 */
.timeline-item:nth-child(5)  { left: 45.2%; } /* 15:00 */
.timeline-item:nth-child(6)  { left: 57.1%; } /* 17:00 */
.timeline-item:nth-child(7)  { left: 69.0%; } /* 19:00 */
.timeline-item:nth-child(8)  { left: 80.9%; } /* 21:00 */
.timeline-item:nth-child(9)  { left: 90.5%; } /* 22:30 */
.timeline-item:nth-child(10) { left: 101.3%; transform: translateX(-100%); align-items: center; }
.time {
margin-bottom: 8px;
text-align: center;
font-size: 24px;
}
.timeline-item:first-child .circle,
.timeline-item:last-child .circle,
.timeline-item2:first-child .circle,
.timeline-item2:last-child .circle{
    visibility: hidden;
}
.circle {
    width: 16px;
    height: 16px;
    background-color: #FFFCFC;
    border: 4px solid #1C1B1B;
    border-radius: 50%;
    margin-bottom: 9px;
    flex-shrink: 0;
}
.event {
    text-align: center;
    font-size: 24px;
    writing-mode: vertical-rl;
    text-align: left;
    letter-spacing: 0.2em;
}
.schedule-footer {
    border-top: 4px solid #A93B3E;
    padding: 25px 30px; /* 🌟 上下25px、左右30pxで少しゆとりを持たせる */
    font-size: 20px;    /* 🌟 20pxだと大きすぎてスマホで崩れやすいので少し小さめに */
    background-color: #FFFCFC;
}
.schedule-footer p:last-child {
    margin-bottom: 0; /* 一番最後の(3)の下には無駄な余白を作らない */
}
.timeline-item2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 60px;
}
.timeline-item2:nth-child(1)  { left: -1.3%;   transform: translateX(0); align-items: center; } /* 8:00（左端にピタッ！） */
.timeline-item2:nth-child(2)  { left: 13%; } /* 10:30 */
.timeline-item2:nth-child(3)  { left: 25.0%; } /* 12:20 */
.timeline-item2:nth-child(4)  { left: 33.3%; } /* 13:10 */
.timeline-item2:nth-child(5)  { left: 57.2%; } /* 15:00 */
.timeline-item2:nth-child(6)  { left: 80.9%; } /* 17:00 */
.timeline-item2:nth-child(7)  { left: 101.3%; transform: translateX(-100%); align-items: center; } /* 19:00 */
.num {
    text-combine-upright: all;
}
.top-text {
    margin-bottom: 60px;
}
.bottom-text {
    margin-top: 40px;
}
.sp-oneyear {
    display: none;
}
@media (max-width:1175px) {
    .content {
        padding: 0;
    }
    :where(p) {
        font-size: 14px;
        letter-spacing: 0.02em;
        line-height: 26px;
    }
    .sp-oneyear {
        display: block;
    }
    .pc-oneyear {
        display: none;
    }
    .one-year-box {
    height: fit-content;
    width: 350px;
    }
    .start {
    height: 39px;
    width: 166px;
    font-size: 25px;
    color: #FFFCFC;
    }
    .one-year-box h2 {
    font-size: 20px;
    }
    .card-header {
    height: 34px;
    }
    .card-contents img {
    width: 219px;
    height: auto;
    margin-top: 15px;
    }
    .one-year-box p {
    font-size: 14px;
    line-height: 26px;
    letter-spacing: 0.02em;
    margin: 14px 0 0 0;
    }
    .card-contents {
    padding: 0 20px;
    }
    .year-card {
    border: 2px solid #A93B3E;
    }
    .station-assign {
    height: 382px;
    width: 264px;
    left: 0%;
    top: 2%;
    }
    .welcome-event {
    height: 390px;
    width: 264px;
    left: auto;
    right: 0;
    top: 8.5%;
    }
    .team-assign {
    height: 441px;
    width: 264px;
    left: auto;
    right: 0;
    top: 17%;
    }
    .soukei-event {
    height: 395px;
    width: 264px;
    left: 0%;
    top: 24.4%;
    }
    .terakoya {
    height: 470px;
    width: 264px;
    top: 33%;
    left: 0%;
    }
    .OCPJ {
    height: 480px;
    width: 264px;
    top: 41%;
    left:auto;
    right: 0;
    }
    .flex-title h3 {
    font-size: 10px;
    color: #FFFCFC;
    }
    .tikansai {
    height: 385px;
    width: 264px;
    top: 50.5%;
    left: auto;
    right: 0;
    }
    .summer-camp {
    height: 386px;
    width: 264px;
    top: 57%;
    left: 0%;
    }
    .toumonsai {
    height: 386px;
    width: 264px;
    top: 65%;
    left: 2%;
    }
    .wasedasai img {
    width: 291px;
    height: auto;
    }
    .wasedasai {
    height: 457px;
    width: 341px;
    top: 73%;
    left: 2%;
    }
    .winter-camp {
    height: 420px;
    width: 264px;
    top: 83%;
    left: 24%;
    }
    .shinkan-PJ {
    height: 418px;
    width: 264px;
    top: 90.4%;
    left: 1%;
    }
    .month-card {
    position: absolute;
    font-size: 16px;
    height: 35px;
    width: 65px;
    }
    .big-num {
    font-size: 30px;
    margin: 0 2px;
    margin-bottom: 5px;
    }
    .mon-tx {
    margin: 0 2px;
    padding-bottom: 3px;
    }
    .may {
    top: 1.2%;
    left: 0%;
    }
    .june {
    top: 16%;
    left: auto;
    right: 0;
    }
    .july {
    top: 32%;
    left: 0%;
    }
    .sept {
    top: 49.5%;
    left: auto;
    right: 0;
    }
    .oct {
    top: 64.2%;
    left: 2%;
    }
    .nov {
    top: 72.3%;
    left: auto;
    right: 2%;
    }
    .feb {
    top: 82.3%;
    left: 24%;
    }
    .finish {
    height: 39px;
    width: 174px;
    font-size: 25px;
    transform: translateX(0px);
    }
    .saikun-container {
    display: none;
    }
    .oneday-container {
    width: 330px;
    height: fit-content;
    }
    .top-text {
        margin: 80px 0 40px;
    }
    .schedule-box {
    width: 326px; /* 赤い枠線を画面幅に合わせる */
    margin: 20px auto 0 auto;
    border: 2px solid #A93B3E;
}
.schedule-header {
    font-size: 20px;
    padding: 10px;
}
.timeline-wrapper {
    padding: 30px 10px;
}
.timeline-list {
    height: 540px;
    display: block;
    position: relative;
}
.timeline-line {
    top: 30px;
    bottom: 30px;
    left: 135px;   /* 左から80pxの位置に縦線を引く */
    right: auto;  /* PC版のrightを解除 */
    width: 2px;   /* 縦線なので高さを幅に */
    height: auto; /* PC版のheightを解除 */
}
.timeline-item,
.timeline-item2 {
    position: absolute !important; 
    left: 0 !important; /* PC版の横（left）の指定を無効化 */
    width: 100%;
    padding-left: 43px;
    flex-direction: row; /* 中身（時間・丸・予定）は左から右へ横並びに */
    align-items: center !important; /* 縦の中央揃え */
    transform: translateY(-50%) !important; 
}
.timeline-item:nth-child(1)  { top: 0%;   transform: translateX(0); align-items: center; } /* 8:00（左端にピタッ！） */
.timeline-item:nth-child(2)  { top: 13%; } /* 10:30 */
.timeline-item:nth-child(3)  { top: 25.0%; } /* 12:20 */
.timeline-item:nth-child(4)  { top: 33.3%; } /* 13:10 */
.timeline-item:nth-child(5)  { top: 45.2%; } /* 15:00 */
.timeline-item:nth-child(6)  { top: 57.1%; } /* 17:00 */
.timeline-item:nth-child(7)  { top: 69.0%; } /* 19:00 */
.timeline-item:nth-child(8)  { top: 80.9%; } /* 21:00 */
.timeline-item:nth-child(9)  { top: 90.5%; } /* 22:30 */
.timeline-item:nth-child(10) { top: 100%; transform: translateX(-100%); align-items: center; }
.timeline-item2:nth-child(1)  { top: 0%;   transform: translateX(0); align-items: center; } /* 8:00（左端にピタッ！） */
.timeline-item2:nth-child(2)  { top: 13%; } /* 10:30 */
.timeline-item2:nth-child(3)  { top: 25.0%; } /* 12:20 */
.timeline-item2:nth-child(4)  { top: 33.3%; } /* 13:10 */
.timeline-item2:nth-child(5)  { top: 57.2%; } /* 15:00 */
.timeline-item2:nth-child(6)  { top: 80.9%; } /* 17:00 */
.timeline-item2:nth-child(7)  { top: 100%; transform: translateX(-100%); align-items: center; } /* 19:00 */
.time {
    width: 60px; /* 文字数が違っても丸の位置が揃うように幅を固定 */
    text-align: right;
    margin-bottom: 0;
    font-size: 16px;
}
.circle {
    margin: 0 15px; /* 時間と予定の間の隙間 */
    z-index: 2; /* 黒い線より上に表示 */
    width: 13px;
    height: 13px;
    border: 2px solid #1C1B1B;
}
.event {
    writing-mode: horizontal-tb; /* 縦書きを横書きにリセット！ */
    letter-spacing: 0.02em;
    text-align: left;
    font-size: 15px;
    flex: 1; /* 余った右側の空間をすべて使う */
}
.schedule-footer {
    padding: 15px 20px;
    border-top: 2px solid #A93B3E;
}
}
@media (max-width:500px) {
    footer {
        margin-top: -280px;
    }
    .one-year-box {
        margin-top: 85px !important;
    }
}