.title-line::after { bottom: -5px;}
.title-line + p { margin-top: var(--space-3);}
.text-justify { text-align-last: justify;}
.text-small { font-size: 14px; }
.text-medium { font-size: clamp(1rem, 1.3vw, 1.25em); }
.ml-1 { margin-left: 1rem;}


.bubble { --bubble-w: fit-content; padding: 1rem; }
#event-program .bubble, #teacher-event .bubble { left: 70px; }

.bubble-pop { 
    font-size: 14px;
    text-align: center;
}
.bubble-pop::before {
    content: '';
    display: block;
    width: 100%;
    height: 40px;
    background: url(../_img/about/daily/daily-bubble.svg) no-repeat top center / contain;
}
#schedule { overflow-x: hidden;}
#schedule .photo-left {
    width: clamp(300px, 50vw, 600px);
    position: absolute;
    left: clamp(-250px, -30vw, -290px);
    top: 0px;
    z-index: 1;
}
#open-schedule { padding-block: var(--pad-7);}
#open-schedule .radius-box { padding: var(--pad-3); }
#open-schedule .radius-box .content-title {
    border: var(--border-base);
    border-width: 2px;
    background-color: var(--main-color);
    width: 90px;
    height: 50px;
}
#open-schedule .text-justify { width: 80px;}
#open-schedule .radius-box > p:first-of-type { margin-top: var(--space-2);}

#schedule .schedule-pic {
    width: clamp(250px, 50vw, 333px);
    aspect-ratio: 333 / 100;
    position: absolute;
    bottom: 10px;
    right: 0;
}

.width-limiter:has(> .schedule) { padding-block: var(--pad-5);}
.schedule { padding: var(--pad-5) var(--pad-4);}
.schedule h3 {
    display: inline-block;
    z-index: 1;
    font-size: 1.25em;
    padding-inline: 1.5em;
    margin-bottom: var(--space-4);
}
.schedule h3::before {
    content: '';
    display: block;
    width: 100%;
    height: 60px;
    background: url(../_img/about/daily/daily-title.svg) no-repeat center / contain;
    position: absolute;
    inset: 0;
    top: 5px;
    margin: auto;
    z-index: -1;
}
.schedule h3 .round-box {
    font-size: 0.75em;
    border: 0;
    padding: 5px .5em;
    margin-left: .5rem;
}
.schedule h3 span.bg-pink { color: var(--color-black);}

.schedule-notice { padding-block: 0 var(--pad-8);}
.schedule-notice .grid { 
    grid-template-columns: 120px auto;
    row-gap: var(--gap-2);
    margin-top: var(--space-4);
}
.schedule-notice .radius-box {
    width: 120px;
    height: 60px;
    border: var(--border-base);
    border-width: 2px;
    border-radius: 10px;
    background-color: var(--main-color);
    font-size: 14px;
    text-align: center;
}
.schedule-notice dl + p { margin-top: var(--space-3);}
.schedule-notice .pink .radius-box { background-color: var(--color-pink);}
.schedule-notice dd { 
    font-size: 14px;
    padding-top: calc(var(--pad-1) / 2);
}



.activity-gallery { 
    padding-block: var(--pad-4);
}
.activity-gallery h3 {
    display: inline-block;
    font-size: 18px;
    padding-inline: 1.5em;
    z-index: 0;
    position: absolute;
    top: -65px;
}
.activity-gallery h3::after { 
    content: '';
    display: block;
    width: 100%;
    height: 50px;
    background: url(../_img/about/daily/title-bg-yellow.svg) no-repeat center / contain;
    position: absolute;
    inset: 0;
    margin: auto;
    z-index: -1;
}
.activity-gallery h3.green::after { background-image: url(../_img/about/daily/title-bg-green.svg);}
.activity-gallery h3.pink::after { background-image: url(../_img/about/daily/title-bg-pink.svg);}


.activity-gallery ul .g1 { 
    flex: 0 1 300px;
    max-width: 300px;
}

#event-program { overflow-x: hidden;}

#event-program .event-pic {
    width: clamp(300px, 55vw, 680px);
    aspect-ratio: 680 / 760;
    position: absolute;
    right: -200px;
    top: 0;
}
#event-program p { line-height: 2; }

#event-program .radius-box {
    padding: var(--pad-4);
}

#event-program .round-box { 
    background-color: var(--color-white);
    border: 0;
    gap: var(--gap-1);
    font-weight: bold;
    padding-left: .5em;
    --round-h: 50px;
}
#event-program .round-box figure {
    width: 39px;
    height: 39px;
}
#event-program .round-box figure img { vertical-align: unset;}
#event-program .round-box > .en { 
    font-size: 12px;
    text-transform: uppercase;
    margin-right: .6rem;
    width: 60px;
}
#event-program .round-box > .en::after {
    content: '';
    display: block;
    width: 2px;
    height: 44px;
    background-color: var(--bgc);
    position: absolute;
    inset: 0;
    right: -.4rem;
    margin: auto;
    left: unset;
}

#event-program .round-box.spring { --bgc: var(--main-color); }
#event-program .round-box.autumn { --bgc: rgb(231, 66, 153); }
#event-program .round-box.summer { --bgc: var(--color-yellow); }
#event-program .round-box.winter { 
    --bgc: rgb(0, 160, 233);
    letter-spacing: 0;
}




#teacher-event { padding-bottom: 0; }


#teacher-event .button.button-middle {
    --button-w: 200px;
}
#teacher-event .teacher-event-pic {
    width: clamp(300px, 50vw, 515px);
    aspect-ratio: 515 / 68;
}
#teacher-event .option { padding: var(--pad-3); }
#teacher-event .option > .round-box {
    --round-w: fit-content;
    --round-h: 27px;
    background-color: var(--color-black);
    color: var(--color-white);
    border: none;
    padding-inline: 1em;
}
#teacher-event .option ul { margin-top: var(--space-1);}


@media (max-width:920px) {
    .bubble { position: absolute; }
    #schedule .clear-tb { flex-direction: column-reverse; }
    #schedule .photo-left {
        position: relative;
        inset: 0;
        margin: auto;
    }

    .width-limiter.clear-tb:has( > #daily-schedule, > #holiday-schedule) { flex-direction: column;}
    #daily-schedule.g1, #daily-schedule-notice.g2,
    #holiday-schedule.g1, #holiday-schedule.g2 { width: 100%;}


    #event-program { padding-top: var(--pad-4);}
    #event-program .clear-tb, #teacher-event .clear-tb { flex-direction: column;}
    #event-program .event-pic {
        position: relative;
        inset: 0;
        margin: auto;
        margin-top: var(--space-3);
    }
}

@media (max-width:720px) {
    #open-schedule .radius-box { padding: var(--pad-3) var(--pad-2);}
}

@media (max-width:597px) {
    #open-schedule .radius-box .flex { gap: var(--gap-1);}
}
@media (max-width:520px) {
    #about .bubble { 
        position: relative;
        top: 20px !important;
    }
    .schedule { padding: var(--pad-5) 4%;}
    .schedule h3 { 
        width: 100%;
        height: 50px;
        font-size: 1rem;
        margin-bottom: var(--space-2);
    }

    .schedule h3::before { top: -25px;}
    #schedule .schedule-pic {
        position: relative;
        right: unset;
        left: 30%;
    }
    .schedule-notice .grid { gap: var(--gap-2);}

    #event-program .round-box p { font-size: 14px;}
}