/* main visual */
#main_visual { position: relative; background-color: #fff; z-index: 1; }

#main_visual .img-box { position: absolute; bottom: 0; left: 0; display: flex; align-items: flex-end; width: 100%; height: 100%; overflow: hidden; z-index: -1; }
#main_visual .img-box > img { width: auto; max-width: none; width: 100%; height: 70%; object-fit: cover; object-position: bottom; user-select: none; }
#main_visual .img-box > p { position: absolute; bottom: 10%; left: 50%; font-size: 2.7rem; }
#main_visual .img-box > p > img { vertical-align: middle; }

#main_visual .decoration > img.star { position: absolute; z-index: -1; top: calc(var(--t) * 1%); left: calc(var(--l) * 1%); transform: translate(-50%, -50%) scale(calc(var(--s) * 1%)); animation: blinked calc(1s * calc(var(--s) / 100)) infinite .1s; }

@keyframes blinked {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

#main_visual .content-wrap { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); }

#main_visual .content-wrap .text-box { grid-column: 7 / -1; text-align: center; padding: 40% 0; }
#main_visual .content-wrap .text-box p { font-size: 6.375rem; color: #0e63ad; }
#main_visual .content-wrap .text-box h2 { font-size: 11.7rem; line-height: 1; margin-top: .2em; }
#main_visual .content-wrap .text-box h2 > span:nth-of-type(1) { color: #007638; }
#main_visual .content-wrap .text-box h2 > span:nth-of-type(2) { color: #b80000; }

@media screen and (max-width: 1200px) {
    #main_visual .img-box { padding-bottom: 30px; }
    #main_visual .img-box > img { height: 50%; object-position: calc(-50px + 10%) center; }
    #main_visual .img-box > p { bottom: 0%; transform: translateX(-50%); width: 100%; text-align: center; }
    #main_visual .img-box > p > img { transform: rotate(90deg); }

    #main_visual .content-wrap .text-box { grid-column: 1 / -1; padding: 150px 0 480px; }
}

@media screen and (max-width: 768px) {
    #main_visual .content-wrap .text-box { padding-bottom: calc(50vw + 10%); }
    #main_visual .img-box > img { object-position: calc(-80px + 10%) center; }
}

@media screen and (max-width: 540px) {
    #main_visual .content-wrap .text-box { padding-bottom: calc(70vw + 10%); }
    #main_visual .img-box > img { height: 70vw; object-position: calc(-50px + 10%) center; }
    #main_visual .img-box > p {  }

    #main_visual .content-wrap .text-box { padding-top: 120px; }
    #main_visual .content-wrap .text-box h2 { font-size: 8.5rem; }
    #main_visual .content-wrap .text-box p { font-size: 4.5rem; }
}



/* section01 */
#section01 { padding-bottom: 5%; }

#section01 .content-wrap .video-box { position: relative; }
#section01 .content-wrap .video-box picture { position: relative; display: block; aspect-ratio: 16 / 9; }
#section01 .content-wrap .video-box picture::before { content: ''; display: block; position: absolute; top: 7%; left: 0; width: 10%; height: 100%; background: url(../img/main/video_left_bg.png) no-repeat center center/contain;  }
#section01 .content-wrap .video-box picture::after { content: ''; display: block; position: absolute; top: -5%; right: 0; width: 10%; height: 100%; background: url(../img/main/video_right_bg.png) no-repeat center center/contain;  }
#section01 .content-wrap .video-box picture iframe { position: absolute; left: 50%; transform: translateX(-50%); width: 80%; height: 80%; margin: 5% 0; border-radius: 3rem; }

#section01 .content-wrap .text-box { text-align: center; }
#section01 .content-wrap .text-box p { font-size: 4.5rem; }

#section01 .content-wrap .button-box { text-align: center; margin-top: 5%; }
#section01 .content-wrap .button-box a { display: inline-block; padding: 2rem 15rem; font-size: 6.3rem; font-weight: 700; color: #fff; background: #edb56b; border-radius: 2rem; }

@media screen and (max-width: 1200px) {
    #section01 { padding-top: 50px; }
}

@media screen and (max-width: 768px) {
    #section01 .content-wrap .text-box p { font-size: 3.5rem; }

    #section01 .content-wrap .button-box a { font-size: 5rem; padding: 2rem 12rem; }
}

@media screen and (max-width: 540px) {
    #section01 .content-wrap .text-box p { font-size: 2.8rem; }

    #section01 .content-wrap .button-box a { font-size: 3.7rem; padding: 2rem 10rem; }
}



/* section02 */
#section02 { padding: 5% 0 0; background: url(../img/main/section02_bg.png) no-repeat bottom center/cover; }

#section02 .content-wrap .text-box { text-align: center; }
#section02 .content-wrap .text-box h2 { font-size: 4.5rem; }
#section02 .content-wrap .text-box h2 > b { font-weight: 700; color: #9b6d36; }
#section02 .content-wrap .text-box h2 > strong { font-weight: 700; color: #5d3d16; }

#section02 .content-wrap .img-box { padding: 5% 0 3%; }
#section02 .content-wrap .img-box > ul { display: flex; gap: 5%; }
#section02 .content-wrap .img-box > ul > li { flex: 1; }
#section02 .content-wrap .img-box > ul > li > img { width: 100%; height: 100%; object-fit: cover; }

@media screen and (max-width: 768px) {
    #section02 .content-wrap .text-box h2 { font-size: 3.5rem; }
}

@media screen and (max-width: 540px) {
    #section02 .content-wrap .text-box h2 { font-size: 2.8rem; }
}



/* section03 */
#section03 { background: url(../img/main/section03_bg.png?v=24111502) no-repeat top center/cover; }

#section03 .content-wrap .img-box { padding: 3% 0 15%; text-align: center; }
#section03 .content-wrap .img-box img { width: 80%; }

#section03 .content-wrap .text-box { text-align: center; padding: 18% 0 5%; }
#section03 .content-wrap .text-box h2 { font-size: 7rem; font-weight: 700; color: #f7dab4; }
#section03 .content-wrap .text-box h2 > b { color: #a0e2bc; font-weight: inherit; }
#section03 .content-wrap .text-box p { font-size: 4.5rem; color: #fff; margin-top: 5%; }

@media screen and (max-width: 768px) {
    #section03 .content-wrap .text-box h2 { font-size: 5.8rem; }
    #section03 .content-wrap .text-box p { font-size: 3.5rem; }
}

@media screen and (max-width: 540px) {
    #section03 .content-wrap .text-box h2 { font-size: 4.6rem; }
    #section03 .content-wrap .text-box p { font-size: 2.8rem; }
}



/* section04 */
#section04 { padding: 5% 0; background-color: #050403; }

#section04 .content-wrap .text-box { text-align: center; }
#section04 .content-wrap .text-box p { font-size: 4.5rem; font-weight: 500; color: #fff; }

#section04 .content-wrap .content-box { background: url(../img/main/section04_img01.png) no-repeat center left/60% auto; max-width: 1900px; margin: 4rem auto 0; }
#section04 .content-wrap .content-box .flex-box { display: flex; flex-direction: column; gap: 4rem; align-items: flex-end; padding-bottom: 5%; margin-bottom: -5%; }
#section04 .content-wrap .content-box .flex-box > picture { display: block; width: 60%; text-align: center; }
#section04 .content-wrap .content-box .flex-box > picture img { width: 45%; height: 100%; object-fit: contain; object-position: left center; }
#section04 .content-wrap .content-box .flex-box > .img-txt { display: block; width: 100%; color: #fff; text-align: right; }
#section04 .content-wrap .content-box .flex-box > .img-txt h4 { font-size: 4.5rem; font-weight: 700; margin-bottom: .5em; }
#section04 .content-wrap .content-box .flex-box > .img-txt h4 > span { font-size: 3.1rem; font-weight: 400; }
#section04 .content-wrap .content-box .flex-box > .img-txt p { font-size: 4.5rem; font-weight: 700; margin: .2em 0; }
#section04 .content-wrap .content-box .flex-box > .img-txt p > b { color: #f7b52c; font-weight: inherit; }
#section04 .content-wrap .content-box .flex-box > .img-txt > span { font-size: 2.2rem; }

#section04 .content-wrap .des-box { text-align: right; margin-top: 1%; }
#section04 .content-wrap .des-box p { font-size: 2.2rem; color: #fff; }

@media screen and (max-width: 1500px) {
    #section04 .content-wrap .content-box .flex-box > .img-txt p { font-size: 4.2rem; }
}

@media screen and (max-width: 1050px) {
    #section04 .content-wrap .content-box .flex-box > .img-txt h4,
    #section04 .content-wrap .content-box .flex-box > .img-txt p { font-size: 3.8rem; }
    #section04 .content-wrap .content-box .flex-box > .img-txt h4 > span { font-size: 2.5rem; }
}

@media screen and (max-width: 768px) {
    #section04 .content-wrap .text-box p { font-size: 3.5rem; }

    #section04 .content-wrap .content-box .flex-box > .img-txt p { font-size: 3.5rem; }

    #section04 .content-wrap .des-box p { font-size: 2rem; }
}

@media screen and (max-width: 540px) {
    #section04 .content-wrap .text-box p { font-size: 2.8rem; }

    #section04 .content-wrap .content-box .flex-box > .img-txt p { font-size: 2.8rem; }
    #section04 .content-wrap .content-box .flex-box > .img-txt > span { font-size: 2rem; }
}



/* section05 */
#section05 { padding: 5% 0 10%; background-color: #050403; }

#section05 .content-wrap .text-box { text-align: center; }
#section05 .content-wrap .text-box p { font-size: 4.5rem; font-weight: 500; color: #fff; }

#section05 .content-wrap .content-box { background: url(../img/main/section05_img01.png) no-repeat center right/60% auto; max-width: 1900px; margin: 4rem auto 0; }
#section05 .content-wrap .content-box .flex-box { display: flex; flex-direction: column; }
#section05 .content-wrap .content-box .flex-box > picture { display: block; width: 35%; text-align: center; }
#section05 .content-wrap .content-box .flex-box > picture img { width: 65%; height: 100%; object-fit: contain; object-position: left center; }
#section05 .content-wrap .content-box .flex-box > .img-txt { display: block; width: 100%; color: #fff; }
#section05 .content-wrap .content-box .flex-box > .img-txt h4 { font-size: 4.5rem; font-weight: 700; margin-bottom: .5em; }
#section05 .content-wrap .content-box .flex-box > .img-txt h4 > span { font-size: 3.1rem; font-weight: 400; }
#section05 .content-wrap .content-box .flex-box > .img-txt p { font-size: 4.5rem; font-weight: 700; margin: .2em 0; }
#section05 .content-wrap .content-box .flex-box > .img-txt p > b { color: #f7b52c; font-weight: inherit; }
#section05 .content-wrap .content-box .flex-box > .img-txt > span { font-size: 2.2rem; }

@media screen and (max-width: 1500px) {
    #section05 .content-wrap .content-box .flex-box > .img-txt h4 { padding: 3% 0; }
    #section05 .content-wrap .content-box .flex-box > .img-txt h4,
    #section05 .content-wrap .content-box .flex-box > .img-txt p { font-size: 4.2rem; }
}

@media screen and (max-width: 1200px) {
    #section05 .content-wrap .content-box .flex-box > .img-txt h4 > span { font-size: 3rem; }
}

@media screen and (max-width: 1050px) {
    #section05 .content-wrap .content-box .flex-box > .img-txt h4,
    #section05 .content-wrap .content-box .flex-box > .img-txt p { font-size: 3.8rem; }
    #section05 .content-wrap .content-box .flex-box > .img-txt h4 > span { font-size: 2.5rem; }
}

@media screen and (max-width: 768px) {
    #section05 .content-wrap .text-box p { font-size: 3.5rem; }

    #section05 .content-wrap .content-box .flex-box > .img-txt h4,
    #section05 .content-wrap .content-box .flex-box > .img-txt p { font-size: 3.5rem; }
}

@media screen and (max-width: 540px) {
    #section05 .content-wrap .text-box p { font-size: 2.8rem; }

    #section05 .content-wrap .content-box .flex-box > .img-txt h4,
    #section05 .content-wrap .content-box .flex-box > .img-txt p { font-size: 2.8rem; }
    #section05 .content-wrap .content-box .flex-box > .img-txt h4 > span,
    #section05 .content-wrap .content-box .flex-box > .img-txt > span { font-size: 2rem; }
}



/* section06 */
#section06 { padding: 110vw 0 max(15rem, 10%); background: url(../img/main/section06_bg.png) no-repeat bottom center/cover; }

#section06 .content-wrap .text-box { text-align: center; }
#section06 .content-wrap .text-box h2 { font-size: 7.4rem; font-weight: 500;
    color: transparent;
    background-color: rgba(0, 0, 0, .6);
    text-shadow: 2px 2px 3px rgb(95, 137, 163);
    -webkit-background-clip: text;
    -moz-background-clip: text;
    background-clip: text;
}
#section06 .content-wrap .text-box h2 > b { text-shadow: .05em .05em .06em rgb(120, 108, 90); font-weight: inherit; }
#section06 .content-wrap .text-box h2 > strong { text-shadow: .05em .05em .06em rgb(140, 193, 137); font-weight: inherit; }
#section06 .content-wrap .text-box p { font-size: 4.3rem; margin-top: 5%; }

#section06 .content-wrap .item-box { margin-top: 15%; }
#section06 .content-wrap .item-box > ul { display: flex; flex-direction: column; }
#section06 .content-wrap .item-box > ul > li { display: flex; align-items: center; gap: 4%; background: url(../img/main/section06_item_bg.png) no-repeat center center/cover; margin: 2% 0; padding: 2% 3%; min-height: 76.7rem; box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .3); z-index: 1; }

#section06 .content-wrap .item-box > ul > li .item-img { flex: 1; z-index: -1; }
#section06 .content-wrap .item-box > ul > li:nth-of-type(1) .item-img img { transform: translateY(8%) rotate(-17deg); }
#section06 .content-wrap .item-box > ul > li:nth-of-type(2) .item-img img { transform: translateY(4%) rotate(10deg); }

#section06 .content-wrap .item-box > ul > li .item-text { flex: 1; }
#section06 .content-wrap .item-box > ul > li .item-text p { font-size: 4.5rem; font-weight: 500; padding: 5% 0; }
#section06 .content-wrap .item-box > ul > li .item-text p > mark { color: #fff; font-weight: inherit; background-color: #4da0ec; padding: 0 .3em; }
#section06 .content-wrap .item-box > ul > li .item-text span { display: block; font-weight: 300; font-size: 4.5rem; padding: 5% 0; }

#section06 .content-wrap .item-box > ul > li:nth-of-type(1) .item-text { text-align: left; }
#section06 .content-wrap .item-box > ul > li:nth-of-type(2) .item-text { text-align: right; }

@media screen and (max-width: 1500px) {
    #section06 .content-wrap .item-box > ul > li { min-height: auto; }
    #section06 .content-wrap .item-box > ul > li .item-text { flex: 1.5; }
    #section06 .content-wrap .item-box > ul > li .item-text p { font-size: 4.2rem; padding: 3% 0; }
    #section06 .content-wrap .item-box > ul > li .item-text span { font-size: 4.2rem; padding: 3% 0; }
}

@media screen and (max-width: 1050px) {
    #section06 .content-wrap .item-box > ul > li .item-text p { font-size: 3.8rem; }
    #section06 .content-wrap .item-box > ul > li .item-text span { font-size: 3.8rem; }
}

@media screen and (max-width: 900px) {
    #section06 .content-wrap .item-box > ul > li .item-text p { font-size: 3.5rem; }
    #section06 .content-wrap .item-box > ul > li .item-text span { font-size: 3.5rem; }
}

@media screen and (max-width: 810px) {
    #section06 { padding-top: 200vw; }

    #section06 .content-wrap .item-box > ul > li { flex-direction: column; align-items: stretch; }
    #section06 .content-wrap .item-box > ul > li .item-img { width: 50%; min-width: 200px; }
    #section06 .content-wrap .item-box > ul > li:nth-of-type(1) .item-img { margin-left: auto; }
}

@media screen and (max-width: 768px) {
    #section06 .content-wrap .text-box h2 { font-size: 5.8rem; }
    #section06 .content-wrap .text-box p { font-size: 3.5rem; }

    #section06 .content-wrap .item-box > ul > li .item-text p { font-size: 3.5rem; }
    #section06 .content-wrap .item-box > ul > li .item-text span { font-size: 3.5rem; }
}

@media screen and (max-width: 540px) {
    #section06 { padding-top: 220vw; }

    #section06 .content-wrap .text-box h2 { font-size: 4.6rem; }
    #section06 .content-wrap .text-box p { font-size: 2.8rem; }

    #section06 .content-wrap .item-box > ul > li .item-text p { font-size: 2.8rem; }
    #section06 .content-wrap .item-box > ul > li .item-text span { font-size: 2.8rem; }
}



/* section07 */
#section07 { padding: max(8rem, 5%) 0 15%; background: url(../img/main/section07_bg.png) no-repeat center center/cover; }

#section07 .content-wrap .img-box > ul { display: flex; gap: 3%; margin-bottom: 3%; }
#section07 .content-wrap .img-box > ul > li { flex: 1; }

#section07 .content-wrap .item-box { background-color: #fff; border-radius: 4rem; padding: 5% 10%; box-shadow: .5rem .5rem 2rem rgba(0, 0, 0, .3); }
#section07 .content-wrap .item-box h2 { font-size: 4.6rem; font-weight: 600; color: #fff; text-align: center; background-color: #4da0ec; padding: .5em; border-radius: 1000px; box-shadow: .5rem .5rem 1rem rgba(0, 0, 0, .3); }

#section07 .content-wrap .item-box .flex-box { display: flex; gap: 5%; margin-top: 5%; }

#section07 .content-wrap .item-box .item-text { flex: 1.5; text-align: center; }
#section07 .content-wrap .item-box .item-text p { font-size: 3.3rem; font-weight: 300; }
#section07 .content-wrap .item-box .item-text p > b { color: #4da0ec; font-weight: 700; }
#section07 .content-wrap .item-box .item-text p > strong { font-weight: 700; }
#section07 .content-wrap .item-box .item-text p ~ p { margin-top: 8%; }

#section07 .content-wrap .item-box .item-img { flex: 1; text-align: center; }
#section07 .content-wrap .item-box .item-img img { width: 100%; max-width: 505px; }

@media screen and (max-width: 1200px) {
    #section07 .content-wrap .item-box .flex-box { flex-direction: column; }

    #section07 .content-wrap .item-box .item-text p ~ p { margin-top: 5%; }

    #section07 .content-wrap .item-box .item-img { margin-top: 5%; }
}

@media screen and (max-width: 768px) {
    #section07 .content-wrap .item-box h2 { font-size: 3.5rem; }

    #section07 .content-wrap .item-box .item-text p { font-size: 2.8rem; }
}

@media screen and (max-width: 540px) {
    #section07 .content-wrap .item-box h2 { font-size: 2.8rem; }

    #section07 .content-wrap .item-box .item-text p { font-size: 2.2rem; }
}



/* section08 */
#section08 { padding: 5% 0; background: url(../img/main/section08_bg.png) no-repeat left center/cover; }

#section08 .content-wrap { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); }

#section08 .content-wrap .text-box { grid-column: 5 / -1; text-align: center; }
#section08 .content-wrap .text-box blockquote { display: block; font-size: 3rem; font-weight: 300; color: #fff; letter-spacing: 0; margin: 0; }
#section08 .content-wrap .text-box blockquote span { font-size: 8.5rem; }
#section08 .content-wrap .text-box blockquote span.sub { font-size: 5.5rem; display: block; }

#section08 .content-wrap .text-box strong { display: block; font-size: 9rem; font-weight: 800; color: #fff; margin-top: 5%; }
#section08 .content-wrap .text-box strong > b:nth-of-type(1) { color: #6cf36f; font-weight: inherit; }
#section08 .content-wrap .text-box strong > b:nth-of-type(2) { color: #fb8282; font-weight: inherit; }

#section08 .content-wrap .text-box p { font-size: 4.2rem; color: #fff; margin-top: 5%; }

#section08 .content-wrap .button-box { grid-column: 5 / -1; text-align: center; }
#section08 .content-wrap .button-box > ul { display: flex; gap: 5%; margin-top: 5%; }
#section08 .content-wrap .button-box > ul > li { flex: 1; }
#section08 .content-wrap .button-box > ul > li > a { display: block; padding: 4rem 1rem; border-radius: 4rem; }
#section08 .content-wrap .button-box > ul > li > a h3 { font-size: 7rem; font-weight: 800; }
#section08 .content-wrap .button-box > ul > li > a p { font-size: 2.2rem; font-weight: 500; margin-top: .2em; }
#section08 .content-wrap .button-box > ul > li:nth-of-type(1) > a { background-color: #6cf36f; }
#section08 .content-wrap .button-box > ul > li:nth-of-type(2) > a { background-color: #fb8282; }

@media screen and (max-width: 1500px) {
    #section08 .content-wrap .text-box blockquote span { font-size: 7rem; }

    #section08 .content-wrap .text-box strong { font-size: 8rem; }

    #section08 .content-wrap .text-box p { font-size: 3.5rem; }

    #section08 .content-wrap .button-box > ul > li > a h3 { font-size: 5.5rem; }
    #section08 .content-wrap .button-box > ul > li > a p { font-size: 2rem; }
}

@media screen and (max-width: 1200px) {
    #section08 .content-wrap .text-box blockquote span { font-size: 6rem; }

    #section08 .content-wrap .text-box strong { font-size: 7rem; }

    #section08 .content-wrap .text-box p { font-size: 3rem; }

    #section08 .content-wrap .button-box > ul > li > a h3 { font-size: 5rem; }
    #section08 .content-wrap .button-box > ul > li > a p { font-size: 2rem; }
}

@media screen and (max-width: 950px) {
    #section08 .content-wrap .text-box blockquote span { font-size: 4.7rem; }

    #section08 .content-wrap .text-box strong { font-size: 6rem; }

    #section08 .content-wrap .text-box p { font-size: 2.5rem; }

    #section08 .content-wrap .button-box > ul > li > a h3 { font-size: 4.2rem; }
    #section08 .content-wrap .button-box > ul > li > a p { font-size: 2rem; }
}

@media screen and (max-width: 768px) {
    #section08 { padding-top: 80%; }

    #section08 .content-wrap .text-box { grid-column: 1 / -1; }
    #section08 .content-wrap .text-box blockquote span.sub { font-size: 2.2rem; }

    #section08 .content-wrap .button-box { grid-column: 1 / -1; }
}

@media screen and (max-width: 540px) {
    #section08 { padding-top: 100%; }

    #section08 .content-wrap .text-box blockquote span { font-size: 4rem; }

    #section08 .content-wrap .text-box strong { font-size: 5rem; }

    #section08 .content-wrap .text-box p { font-size: 2rem; }

    #section08 .content-wrap .button-box > ul > li > a h3 { font-size: 3.6rem; }
    #section08 .content-wrap .button-box > ul > li > a p { font-size: 1.8rem; }
}

@media screen and (max-width: 400px) {
    #section08 .content-wrap .text-box blockquote span { font-size: 3.5rem; }

    #section08 .content-wrap .text-box strong { font-size: 4.2rem; }

    #section08 .content-wrap .text-box p { font-size: 2rem; }

    #section08 .content-wrap .button-box > ul > li > a h3 { font-size: 3.6rem; }
    #section08 .content-wrap .button-box > ul > li > a p { font-size: 1.8rem; }
}