@charset "utf-8";

#program-list .l-filter {
    margin-top: var(--size-03);
    padding: var(--size-06);
    display: flex;
    flex-direction: column;
    gap: var(--size-02);
    background-color: var(--color-gray-50);
}


#program-list .l-filter-group {
    display: flex;
}

#program-list .l-filter-group label {
    display: inline-block;
    cursor: pointer;
    font-size: var(--font-size-s);
}

#program-list .l-filter-group label:not(:last-of-type) {
    margin-right: var(--size-03);
}

#program-list .l-filter-ttl {
    font-size: var(--font-size-s);
    font-weight: var(--font-weight-bold);
    min-width: calc(12em + var(--size-03));
    padding-left: var(--size-03);
    position: relative;
}


#program-list .l-filter-ttl::before {
    content: url(/program/img/icon-search.svg);
    position: absolute;
    left: 0;
    top: var(--size-005);
    width: var(--size-02);
    height: var(--size-02);
}


#program-list #sec-apply {
    position: relative;
    background-image: url(/common/assets/img/bg-wave.webp);
    background-position: top;
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
}


#program-list #sec-apply .l-apply-swiper {
    overflow: visible;
    width: calc(100vw - max(var(--size-02), (100vw - 1200px) / 2));
    margin-right: calc(-1 * max(var(--size-02), (100vw - 1200px) / 2));
}

#program-list #sec-apply .l-apply-swiper .swiper-wrapper {
    align-items: stretch;
    box-sizing: content-box;
}

#program-list #sec-apply .l-apply-swiper .swiper-slide {
    width: calc((1200px - 64px) / 3);
    flex-shrink: 0;
}

#program-list #sec-apply .l-apply-swiper .p-swiper-box {
    background-color: transparent;
}


#program-list .l-program-tabs {
    display: flex;
    gap: var(--size-01);
    margin: 0 var(--size-05);
    border-bottom: solid 3px var(--color-primary-500);
    position: relative;
}

#program-list .l-program-tabs::before {
    content: "";
    bottom: -3px;
    width: var(--size-05);
    height: 3px;
    background-color: var(--color-primary-500);
    left: var(--size--05);
    position: absolute;
}

#program-list .l-program-tabs::after {
    content: "";
    bottom: -3px;
    width: var(--size-05);
    height: 3px;
    background-color: var(--color-primary-500);
    right: var(--size--05);
    position: absolute;
}

#program-list .l-program-tab {
    padding: var(--size-03) var(--size-01);
    font-family: var(--font-family-serif);
    font-weight: var(--font-weight-bold);
    flex: 1;
    box-shadow: var(--box-shadow);
    border-radius: var(--size-01) var(--size-01) 0 0;
    margin-top: var(--size-02);
    position: relative;
    background-color: var(--color-gray-100);
}

#program-list .l-program-tab.is-active {
    margin-top: 0;
    background-color: var(--color-primary-500);
    color: var(--color-white);
}

#program-list .l-program-tab:not(:first-of-type)::before {
    bottom: 0;
    width: var(--size-015);
    height: 2px;
    background-color: var(--color-primary-500);
    left: var(--size--015);
    position: absolute;
}


#program-detail .l-head-pps {
    margin-bottom: var(--size-01);
}

#program-detail .l-intro {
    background-color: var(--color-gray-50);
    margin-top: var(--size-06);
}

#program-detail .l-label {
    display: flex;
}

#program-detail .l-label-status .p-label,
#program-detail .l-label-category .p-label {
    position: relative;
    margin-right: var(--size-01);
}

#program-detail .js-apply-btn,
#program-detail #sec-form {
    display: none;
}

#program-detail #sec-comp .c-head-sec {
    margin-bottom: 0;
}

#program-detail #sec-comp .c-head-sub {
    font-size: var(--font-size-s);
}

#program-detail #sec-comp .l-comp-ttl {
    font-size: var(--font-size-h4);
    margin-bottom: 0;
}

#program-detail #sec-comp .l-comp-sub {
    position: relative;
    font-size: var(--font-size-s);
    color: var(--color-primary-500);
    font-weight: var(--font-weight-bold);
    font-family: var(--font-family-serif);
}

#program-detail #sec-comp .l-comp-box {
    border-radius: var(--size-04) var(--size-005) var(--size-04) var(--size-005);
}

#program-detail #sec-comp .c-card.u-card-bg.u-card-text .l-comp-box .c-card-cnt {
    padding: var(--size-06) var(--size-04) var(--size-04);
}

#program-detail #sec-comp .l-comp-list ul {
    display: flex;
    flex-direction: column;
    gap: var(--size-01);
    font-size: var(--font-size-s);
}

#program-detail #sec-detail {
    background-image: url(/common/assets/img/bg-wave.png);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
}

#program-detail #sec-detail .p-box {
    background-color: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: solid 2px var(--color-white);
}

#program-detail #sec-detail .l-note {
    padding-top: var(--size-03);
    border-top: solid 1px var(--color-gray-100);
    margin-top: var(--size-06);
}

#program-detail #sec-detail .l-note-ttl {
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--size-01);
    font-size: var(--font-size-m);
}

#program-detail #sec-form .l-form {
    margin-top: var(--size-03);
}


@media only screen and (max-width:1024px) {
    #program-list .l-program-tabs {
        margin: 0;
    }

    #program-list .l-program-tabs::before,
    #program-list .l-program-tabs::after {
        content: none;
    }
}

@media only screen and (max-width:768px) {
    #program-list .l-filter {
        padding: var(--size-03);
    }

    #program-list .l-filter-group {
        flex-direction: column;
        gap: var(--size-01);
    }

    #program-list .l-filter-group label {
        padding: var(--size-005) 0;
    }

    #program-list .l-program-tabs {
        overflow-x: auto;
        overflow-y: hidden;
        flex-wrap: nowrap;
        gap: var(--size-01);
        padding-bottom: var(--size-01);
        -webkit-overflow-scrolling: touch;
    }

    #program-list .l-program-tab {
        flex: 0 0 auto;
        min-width: 10em;
        white-space: nowrap;
        box-shadow: none;
    }

    #program-detail .l-label {
        gap: var(--size-01);
        flex-direction: column;
    }

}

@media (max-width: 520px) {
    #program-list #sec-apply .l-apply-swiper .swiper-slide {
        width: calc(100vw - var(--size-15));
    }
}