@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@700&display=swap');

/* common rule
**********************************************************/

.c-c24400 {
    color: #c24400;
}

.c-ff575c {
    color: #ff575c;
}

.c-9c4997 {
    color: #9c4997;
}

.c-2c8738 {
    color: #2c8738;
}

.c-557321 {
    color: #557321;
}

.c-ff0000 {
    color: #FF0000;
}

.pink {
    color: #ff575c;
}

.basewidth {
    max-width: 954px;
    padding-left: 64px;
    padding-right: 64px;
}

.basewidth.--large {
    max-width: 954px;
    padding-left: 18px;
    padding-right: 18px;
}


.full {
    position: relative;
    display: block;
    width: 100%;
}

.full::after {
    padding: 0 5px;
    width: 100%;
    content: "満席になりました";
    font-size: 2rem;
    font-weight: bold;
    font-family: "Zen Maru Gothic", serif;
    color: #fff;
    text-align: center;
    background-color: rgba(21, 96, 130, .5);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}


header {
    background-color: #e8cefb;
    width: 100%;
    height: 693px;
    position: relative;
}

header::before {
    content: "";
    background-image: url(../images/bg_mv.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    width: 1600px;
    height: 798px;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

@media screen and (max-width:1600px) {
    header::before {
        width: 100vw;
        height: auto;
        aspect-ratio: 1600 / 798;
    }
}

@media screen and (max-width:1166px) {
    header {
        aspect-ratio: 1270 / 755;
        height: auto;
    }
}

header .main_lead {
    position: absolute;
    top: 77px;
    left: 50%;
    transform: translateX(-50%);
    width: 1270px;
}

header .main_lead span {
    display: block;
    margin-left: 154px;
}

header .main_lead span img {
    width: 100%;
}

@media screen and (max-width:1270px) {
    header .main_lead {
        top: 80px;
    }

    header .main_lead span {
        margin-left: 13.208vw;
    }
}

@media screen and (max-width:1166px) {
    header .main_lead {
        top: 6vw;
        width: 100vw;
    }

    header .main_lead span {
        margin-left: 4.288vw;
    }
}

.parallax {
    position: relative;
}

.parallax:before {
    background: url(../images/bg__sec04.jpg) no-repeat center;
    background-size: cover;
    content: "";
    display: block;
    position: fixed;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    z-index: -1;
}

.parallax:after {
    content: "";
    background-color: rgba(255, 255, 255, 0.7);
    display: block;
    position: fixed;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    z-index: -1;
}

.sec {
    padding-top: 80px;
    padding-bottom: 80px;
}

.sec_title {
    font-size: 4.3rem;
    font-family: "Zen Maru Gothic", serif;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}

.sec_title.line_dotted {
    margin-bottom: 48px;
    padding-left: 48px;
    padding-right: 48px;
    display: inline-block;
    position: relative;
    z-index: 1;
}

.sec_title.line_dotted::before {
    content: "";
    background: url(../images/line_dotted-left.svg) no-repeat center;
    background-size: contain;
    width: 30px;
    height: 60px;
    position: absolute;
    left: 0;
}

.sec_title.line_dotted::after {
    content: "";
    background: url(../images/line_dotted-right.svg) no-repeat center;
    background-size: contain;
    width: 30px;
    height: 60px;
    position: absolute;
    right: 0;
}

.sec .text {
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.6;
    font-feature-settings: "palt";
    text-align: center;
}

.sec_form {
    background-color: #FFFEF2;
}


/* sec01 */
.sec01 {
    padding-top: 100px;
    background-color: #fff;
    position: relative;
    z-index: -1;
}

.sec01 .scheduleCardBlock {
    margin-bottom: 56px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.sec01 .scheduleCard__item {
    margin-bottom: 35px;
    padding: 10px;
    width: calc((100% - 60px) / 3);
    position: relative;
    display: flex;
    flex-direction: column;
    background: none;
}

.sec01 .scheduleCard__item img {
    padding: 20px 10px 20px 20px;
}

.sec01 .scheduleCard__item p {
    font-size: 2.6rem;
    font-weight: 600;
    margin-bottom: 10px;
}

.sec01 .scheduleCard__item p span {
    margin-top: 5px;
    display: block;
    font-size: 2rem;
    font-weight: 400;
}

.sec01 .scheduleCard__item::before {
    position: absolute;
    top: 7px;
    right: -7px;
    content: "";
    height: 100%;
    width: 100%;
    z-index: -1;
}

.sec01 .scheduleCard__item::after {
    content: "";
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 35px 35px 0 0;
    transform: rotate(0deg);
    position: absolute;
    top: 0;
    left: 0;
}

.sec01 .scheduleCard__item.--green {
    border: 2px solid #99E777;
}

.sec01 .scheduleCard__item.--green:before {
    background-color: #D0E7AC;
}

.sec01 .scheduleCard__item.--green:after {
    border-color: #99E777 transparent transparent transparent;
}

.sec01 .scheduleCard__item.--yellow {
    border: 2px solid #FFDD00;
}

.sec01 .scheduleCard__item.--yellow:before {
    background-color: #FDFD8E;
}

.sec01 .scheduleCard__item.--yellow:after {
    border-color: #FFDD00 transparent transparent transparent;
}

.sec01 .scheduleCard__item.--yellow p {
    color: #f15a24;
}

.sec01 .scheduleCard__item.--purple {
    border: 2px solid #DEA8FF;
}

.sec01 .scheduleCard__item.--purple:before {
    background-color: #FCE2F7;
}

.sec01 .scheduleCard__item.--purple:after {
    border-color: #DEA8FF transparent transparent transparent;
}

.sec01 .scheduleCard__item.--purple p {
    color: #ab40a5;
}

.sec01 .scheduleCard__item.--orange {
    border: 2px solid #fbdbbe;
}

.sec01 .scheduleCard__item.--orange:before {
    background-color: #fef0e0;
}

.sec01 .scheduleCard__item.--orange:after {
    border-color: #c24400 transparent transparent transparent;
}

.sec01 .scheduleCard__item.--orange p {
    color: #c24400;
}

.sec01 .scheduleCard__item.--blue {
    border: 2px solid #77B5C6;
}

.sec01 .scheduleCard__item.--blue:before {
    background-color: #B0EBFF;
}

.sec01 .scheduleCard__item.--blue:after {
    border-color: #45C6E5 transparent transparent transparent;
}

.sec01 .scheduleCard__item.--pink {
    border: 2px solid #F973AA;
}

.sec01 .scheduleCard__item.--pink:before {
    background-color: #FFCCE1;
}

.sec01 .scheduleCard__item.--pink:after {
    border-color: #F973AA transparent transparent transparent;
}

.sec01 .scheduleCard__item.--pink:after {
    border-color: #F973AA transparent transparent transparent;
}

.sec01 .scheduleCard__item .timelineBlock {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding-left: 5px;
}

.sec01 .scheduleCard__item .timelineBlock dl {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


.sec01 .scheduleCard__item .timelineBlock .border-bottom {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid #1A1A1A;
}

.sec01 .scheduleCard__item .timelineBlock dd {
    padding-left: 8px;
    font-size: 1.4rem;
    line-height: 1.2;
    /*font-family: "Zen Maru Gothic", serif;
    font-weight: 700;*/
    font-weight: 600;
    text-align: left;
}

.sec01 .scheduleCard__item .timelineBlock dt {
    padding-left: 8px;
    padding-right: 8px;
    font-size: 2.3rem;
    /*font-family: "Zen Maru Gothic", serif;
    font-weight: 700;*/
    font-weight: 600;
}

.sec01 .flex {
    margin-left: -53px;
}

.sec01 .flex .imgWrapper {
    margin-right: 40px;
    max-width: 363px;
}


.sec01 .flex .textBlock {
    display: flex;
    flex-direction: column;
}

.sec01 .flex .textBlock .text {
    font-size: 1.8rem;
    line-height: 1.66;
    text-align: left;
}

.sec01 .flex .textBlock .text+.text {
    margin-top: 1em;
}

.sec01 .flex .textBlock .text:last-of-type {
    margin-bottom: 0;
}


/* sec02 */

.sec02 {
    padding-top: 48px;
    padding-bottom: 0;
    background-color: #dcf5fb;
    text-align: center;
}



/* sec03 */
.sec03 {
    background-color: #fff;
    text-align: center;
}

.sec03 .sec_title .border-bottom {
    position: relative;
}

.sec03 .sec_title .border-bottom::before {
    content: "";
    width: calc(100% + 86px);
    height: 20px;
    background-color: #FFEBB9;
    display: block;
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: -1;
}

.sec03 .text {
    margin-bottom: 75px;
    line-height: 2.1;
}

.sec03 .text strong {
    font-size: 2rem;
}

.sec03 .course-pc {
    display: block;
}

.sec03 .course-sp {
    display: none;
}

.sec03 .courseBlock {
    display: flex;
    justify-content: space-between;
}

.sec03 .course__item {
    width: calc(33% - 20px);
}

.sec03 .course__item .upper {
    margin-bottom: 60px;
    padding: 0 24px 24px;
    border-radius: 16px;
    height: 250px;
    display: flex;
    flex-direction: column;
    position: relative;
}


.sec03 .course__item .upper img {
    margin: -44px auto 0;
}

.sec03 .course__item .upper .text {
    margin-bottom: 0;
    margin-left: 16px;
    font-size: 1.3rem;
    font-weight: bold;
    font-family: "Zen Maru Gothic", serif;
    line-height: 1.6;
    letter-spacing: 0.01em;
    text-align: left;
    position: relative;
}

.sec03 .course__item .upper .text span {
    text-decoration: underline #fff 8px;
    text-underline-offset: -2px;
}

.sec03 .icon__checkbox::before {
    content: "";
    background: url(../images/icon__checkbox.png) no-repeat center;
    background-size: contain;
    width: 18px;
    height: 18px;
    display: block;
    position: absolute;
    top: 0.25rem;
    left: -24px;
}

.sec03 .course__item.--yellow .upper {
    background-color: #FEF0E0;
}

.sec03 .course__item.--yellow .upper img {
    margin-bottom: 10px;
    width: 163px;
}

.sec03 .course__item.--purple .upper {
    background-color: #F4E6F4;
}

.sec03 .course__item.--purple .upper .text {
    letter-spacing: -0.1em;
}

.sec03 .course__item.--purple .upper img {
    margin-bottom: 10px;
    width: 180px;
}

.sec03 .course__item.--green .upper {
    background-color: #e6f1d3;
}

.sec03 .course__item.--green .upper .text {
    letter-spacing: -0.1em;
}

.sec03 .course__item.--green .upper img {
    margin-bottom: 20px;
    width: 225px;
}

.sec03 .course__item .upper:after {
    content: "";
    width: 133px;
    height: 51px;
    position: absolute;
    bottom: -36px;
    left: 50%;
    transform: translateX(-50%);
}

.sec03 .course__item.--yellow .upper:after {
    background: url(../images/sec03_img01-sub.png) no-repeat center;
    background-size: contain;
}

.sec03 .course__item.--purple .upper:after {
    width: 181px;
    background: url(../images/sec03_img02-sub.png) no-repeat center;
    background-size: contain;
}

.sec03 .course__item.--green .upper:after {
    width: 135px;
    background: url(../images/sec03_img03-sub.png) no-repeat center;
    background-size: contain;
}

.sec03 .course__item-bottom {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
}

.sec03 .course__item-bottom .bottom {
    width: calc(50% - 20px);
    border-radius: 24px;
}

.sec03 .bottom .title {
    margin-bottom: 24px;
    font-size: 2.4rem;
    font-family: "Zen Maru Gothic", serif;
    font-weight: 700;
    line-height: 1.333;
}

.sec03 .bottom .text {
    margin-bottom: 0;
    text-align: justify;
    font-size: 1.4rem;
    line-height: 1.75;
    letter-spacing: -0.025rem;
}

.sec03 .bottom .text span.row {
    display: block;
    height: 1.7em;
}

.sec03 .grad-border-block {
    border-radius: 16px;
    padding: 5px;
    height: 100%;
}

.sec03 .grad-border-content {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px;
}

.sec03 .grad-border-block.--yellow {
    background: linear-gradient(135deg, #FBCC94 0%, #c24400 100%);
}

.sec03 .grad-border-block.--purple {
    background: linear-gradient(135deg, #DCBAE6 0%, #9c4997 100%);
}

.sec03 .grad-border-block.--green {
    background: linear-gradient(135deg, #b6dd82 0%, #8cc63f 100%);
}

.sec03 .caution {
    font-size: 1.4rem;
    padding-top: 40px;
}

/* sec04 */

.sec04 .sec_title {
    margin-bottom: 32px;
    font-size: 3.4rem;
    color: #ff575c;
    letter-spacing: 3rem;
}

.sec04 .outlineBlock {
    padding: 40px 65px;
    border-radius: 16px;
    background-color: #fff;
}

.sec04 .outline__item {
    margin-bottom: 16px;
    padding-bottom: 24px;
    border-bottom: 1px solid #1A1A1A;
    display: flex;
}

.sec04 .outline__item:last-of-type {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.sec04 .outline__item .title {
    margin-right: 24px;
    font-size: 1.8rem;
    font-weight: normal;
    min-width: 106px;
    height: 106px;
    border-radius: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.sec04 .outline__item.--date .title {
    background-color: #FCE2CB;
}

.sec04 .outline__item.--program .title {
    background-color: #caf8fc;
}

.sec04 .outline__item.--koushi .title {
    background-color: #fccaec;
}

.sec04 .outline__item.--place .title {
    background-color: #FFFBC4;
}

.sec04 .outline__item.--capacity .title {
    background-color: #F3E7F2;
}

.sec04 .outline__item.--apply .title {
    background-color: #EBF9D4;
}

.sec04 .outline__item .desc {
    margin-top: 16px;
}

.sec04 .outline__item .desc .text {
    margin-bottom: 16px;
    font-size: 1.8rem;
    text-align: left;
}

.sec04 .outline__item .desc .caution {
    font-size: 1.6rem;
    text-align: left;
}

.sec04 .outline__item .desc .text:last-of-type {
    margin-bottom: 0;
}


.sec04 .outline__item.--date .desc .text strong,
.sec04 .outline__item.--program .desc .text strong,
.sec04 .outline__item.--koushi .desc .text strong {
    font-size: 2.7rem;
}

.sec04 .outline__item.--place .desc .date {
    margin-bottom: 12px;
    font-size: 2.2rem;
    font-weight: bold;
    font-family: "Zen Maru Gothic", serif;
    text-align: left;
}

.sec04 .outline__item.--place .desc {
    display: flex;
    flex-direction: column;
}

.sec04 .outline__item.--place .desc .cnt:first-of-type {
    margin-bottom: 36px;
}

.sec04 .outline__item.--place .desc .googlemap {
    margin-bottom: 12px;
    width: 420px;
    height: 244px;
    overflow: hidden;
}

.sec04 .outline__item.--capacity .desc .text strong {
    font-size: 1.8rem;
}

.sec04 .outline__item.--capacity .desc .text span {
    font-size: 3rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.sec04 .outline__item.--apply .desc .text strong {
    font-size: 2rem;
}

.sec04 .outline__item.--apply .desc .text a {
    text-decoration: underline 1px #2c8738;
}

.sec04 .outline__item.--apply .desc .btnBlock {
    margin-top: 24px;
    text-align: center;
    font-size: 1.6rem;
}

.sec04 .outline__item.--apply .desc .btnBlock .btn {
    margin-bottom: 8px;
    padding: 8px 24px;
    font-size: 1.8rem;
    font-weight: bold;
    color: #fff;
    background: #d81b60;
    /* background: linear-gradient(0deg, rgba(255, 103, 135, 1) 0%, rgba(255, 148, 157, 1) 100%); */
    border-radius: 8px;
    display: inline-block;
    text-decoration: none;
}

/* ぜひこの機会にご活用ください */
.sec_opportunity {
    padding-top: 160px;
    padding-bottom: 160px;
    background-color: #fffecd;
    position: relative;
}

.sec_opportunity::before {
    content: "";
    background: url(../images/bg_opportunity.png) no-repeat center;
    background-size: contain;
    width: 612px;
    height: 305px;
    display: block;
    position: absolute;
    top: 75px;
    left: 50%;
    transform: translateX(-50%);
}

.sec_opportunity .basewidth {
    position: relative
}

.sec_opportunity .text {
    font-size: 2.6rem;
    font-family: "Zen Maru Gothic", serif;
    font-weight: 700;
}

.sec_opportunity .text strong {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    font-size: 4.2rem;
}

.sec_opportunity .basewidth::before {
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50px;
    transform: translateY(-50%);
    width: 140px;
    height: 140px;
    content: "";
    background: url(../images/opportunity_img01.png) no-repeat;
    background-size: contain;
}

.sec_opportunity .basewidth::after {
    position: absolute;
    bottom: -160px;
    right: -50px;
    content: "";
    background: url(../images/opportunity_img02.png) no-repeat;
    background-size: contain;
    width: 249px;
    height: 328px;
    display: inline-block;
}

aside {
    padding-top: 100px;
    padding-left: 20px;
    padding-right: 20px;
    background-color: #fff;
}

@media screen and (max-width:767px) {
    .basewidth {
        max-width: calc(100% - 5vw);
        margin: 0 auto 12.5vw;
        padding: 0 2.5vw;
    }

    .basewidth.--large {
        max-width: calc(100% - 5vw);
        margin: 0 auto 12.5vw;
        padding: 0 2.5vw;
    }

    header::before {
        width: 100%;
        height: 100%;
        background-size: cover;
    }

    header .main_lead {
        margin-bottom: -17vw;
    }

    .sec {
        padding-top: 10vw;
        padding-bottom: 10vw;
    }

    .sec_title {
        font-size: 5.5vw;
    }

    .sec_title.line_dotted {
        margin-bottom: 10vw;
        padding-left: 10vw;
        padding-right: 10vw;
        display: inline-block;
        position: relative;
        z-index: 1;
    }

    .sec_title.line_dotted::before {
        top: -15px;
    }

    .sec_title.line_dotted::after {
        top: -15px;
    }

    .sec .text {
        font-size: 4.5vw;
        line-height: 2;
    }

    .sec_form {
        background-color: #FFFEF2;
    }


    /* sec01 */
    .sec01 {
        padding-top: 12.5vw;
    }

    .sec01 .scheduleCardBlock {
        margin-bottom: 10vw;
        flex-direction: column;
    }

    .sec01 .scheduleCard__item {
        margin-bottom: 5vw;
        padding: 20px;
        width: 100%;
    }

    .sec01 .scheduleCard__item img {
        width: 70%;
        margin: 0 auto;
    }

    .sec01 .scheduleCard__item p {
        font-size: 7vw;
    }

    .sec01 .scheduleCard__item p span {
        font-size: 6vw;
    }

    .sec01 .scheduleCard__item .timelineBlock dt {
        padding-left: 5vw;
        padding-right: 5vw;
        font-size: 7.5vw;
    }

    .sec01 .scheduleCard__item .timelineBlock dd {
        padding-left: 5vw;
        font-size: 5vw;
    }


    .sec01 .flex {
        flex-direction: column;
        margin: 0 auto;
    }

    .sec01 .flex .imgWrapper {
        margin-left: auto;
        margin-right: auto;
        max-width: 80%;
    }

    .sec01 .flex .textBlock {
        margin-top: 40px;
        display: flex;
        flex-direction: column;
    }

    .sec01 .flex .textBlock .text {
        margin-bottom: 7vw;
        font-size: 4.5vw;
        text-align: justify;
    }

    .sec01 .flex .textBlock .text+.text {
        margin-top: 0;
    }

    .sec01 .flex .textBlock .text br {
        display: none;
    }




    /* sec02 */

    .sec02 {
        padding-top: 48px;
        /*padding-bottom: 36px;*/
        padding-bottom: 0;
        text-align: center;
    }

    .sec02 .basewidth.--large {
        margin-bottom: 0;
    }


    /* sec03 */
    .sec03 {
        background-color: #fff;
        text-align: center;
    }
    .sec03 .basewidth{
        margin-bottom: 0;
    }

    .sec03 .text {
        margin-bottom: 15vw;
        text-align: justify;
    }

    .sec03 .text strong {
        font-size: 5.5vw;
    }
    .sec03 .text br{
        display: none;
    }

    .sec03 .course-pc {
        display: none;
    }

    .sec03 .course-sp {
        display: block;
    }

    .sec03 .course-sp__item + .course-sp__item {
        margin-top: 80px;
    }

    .sec03 .course-sp__image {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .sec03 .course-sp__image .image-item {
        padding: 0 10px 10px;
        border-top-right-radius: 16px;
        border-top-left-radius: 16px;
        height: 135px;
    }

    .sec03 .course-sp__image .image-item img {
        width: 163px;
        margin-top: -50px;
    }
    .sec03 .course-sp__image .image-item.--green img{
        width: 180px;
        margin-top: -30px;
    }

    .sec03 .course-sp__image .image-item.--yellow {
        background-color: #FEF0E0;
    }

    .sec03 .course-sp__image .image-item.--purple {
        background-color: #F4E6F4;
    }

    .sec03 .course-sp__image .image-item.--green {
        background-color: #e6f1d3;
    }
    .sec03 .course-sp__text{
        margin-bottom: 20px;
    }
    .sec03 .course-sp__text .text-item{
        padding: 20px;
    }
    .sec03 .course-sp__text .text-item.--yellow {
        background-color: #FEF0E0;
    }

    .sec03 .course-sp__text .text-item.--purple {
        background-color: #F4E6F4;
    }

    .sec03 .course-sp__text .text-item.--green {
        background-color: #e6f1d3;
    }

    .sec03 .course-sp__item.--01 .text-item.--purple{
        border-bottom-left-radius: 16px;
        border-bottom-right-radius: 16px;
    }
    .sec03 .course-sp__item.--02 .text-item.--green{
        border-bottom-left-radius: 16px;
        border-bottom-right-radius: 16px;
    }

    .sec03 .course-sp__text .text {
        margin-bottom: 0;
        margin-left: 16px;
        font-size: 4.5vw;
        font-weight: bold;
        font-family: "Zen Maru Gothic", serif;
        line-height: 1.6;
        letter-spacing: 0.01em;
        text-align: left;
        position: relative;
    }

    .sec03 .course-sp__text .text span {
        text-decoration: underline #fff 8px;
        text-underline-offset: -2px;
    }

    .sec03 .icon__checkbox::before {
        content: "";
        background: url(../images/icon__checkbox.png) no-repeat center;
        background-size: contain;
        width: 18px;
        height: 18px;
        display: block;
        position: absolute;
        top: 0.75rem;
        left: -24px;
    }
    .sec03 .bottom .title {
        font-size: 6vw;
    }
    .sec03 .bottom .text {
        font-size: 4.5vw;
    }

    .sec03 .caution {
        text-align: left;
        font-size: 1.6rem;
    }

    .sec03 .sec_title .border-bottom::before {
        width: calc(100% + 2.5vw);
    }

    /* sec04 */

    .sec04 .sec_title {
        margin-bottom: 10vw;
        font-size: 6.5vw;
    }

    .sec04 .outlineBlock {
        padding: 10vw 5vw;
        display: flex;
        flex-direction: column;
    }

    .sec04 .outline__item {
        margin-bottom: 8vw;
        padding-bottom: 8vw;
        display: flex;
        flex-direction: column;
    }

    .sec04 .outline__item .title {
        margin-right: 0;
        font-size: 5.5vw;
    }

    .sec04 .outline__item .desc {
        margin-top: 16px;
    }

    .sec04 .outline__item .desc .text {
        margin-bottom: 16px;
        font-size: 1.8rem;
        text-align: left;
    }

    .sec04 .outline__item .desc .text:last-of-type {
        margin-bottom: 0;
    }

    .sec04 .outline__item.--date .desc .text {
        line-height: 1.75;
    }

    .sec04 .outline__item.--date .desc .text strong {
        font-size: 7.5vw;
    }

    .sec04 .outline__item.--place .desc .text {
        margin-bottom: 10vw;
    }

    .sec04 .outline__item.--place .desc .googlemap {
        width: 100%;
        height: 70vw;
        overflow: hidden;
    }

    .sec04 .outline__item.--capacity .desc .text strong {
        font-size: 5.5vw;
    }

    .sec04 .outline__item.--capacity .desc .text span {
        font-size: 8.5vw;
    }

    .sec04 .outline__item.--apply .desc .text strong {
        font-size: 5.5vw;
        letter-spacing: 0.1rem;
    }

    .sec04 .outline__item.--apply .desc .text a {
        display: block;
    }

    .sec04 .outline__item.--apply .desc .btnBlock {
        margin-top: 10vw;
        font-size: 4.5vw;
    }

    .sec04 .outline__item.--apply .desc .btnBlock .btn {
        font-size: 6.5vw;
    }

    .sec_opportunity {
        padding-bottom: 50.954vw;
    }



    .sec_opportunity::before {
        top: 10vw;
        width: 100%;
        height: auto;
        aspect-ratio: 2450 / 1221;
    }

    .sec_opportunity .basewidth {
        position: relative;
        margin-bottom: 0;

    }

    .sec_opportunity .basewidth::before {
        width: 22.042vw;
        height: 22.042vw;
        bottom: -43.954vw;
        right: 48vw;
        left: auto;
        top: auto;
        transform: translateY(0);
    }

    .sec_opportunity .basewidth::after {
        width: 32.422vw;
        height: 42.708vw;
        bottom: -50.954vw;
        right: 8.76vw;
    }

    .sec_opportunity .text {
        font-size: 5.5vw;
        line-height: 2;
        text-align: center;
    }

    aside {
        padding-top: 40px;
        padding-left: 2.5vw;
        padding-right: 2.5vw;
    }
}

footer .basewidth {
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 20px;
}